技术支持
在基础售后支持以外,业务系统复杂的客户或对服务有更高要求的客户, 还可选择我们
提供的专属技术保障通道、技术服务经理等多种企业IT专家级服务
   技术支持   >  超级详细的Tesseract-OCR样本训练方法

超级详细的Tesseract-OCR样本训练方法

一、简介

Tesseract是一个开源的OCR(Optical Character Recognition,光学字符识别)引擎,可以识别多种格式的图像文件并将其转换成文本,目前已支持60多种语言(包括中文)。 Tesseract最初由HP公司开发,后来由Google维护。

二、下载

1.从https://github.com/UB-Mannheim/tesseract/wiki下载tesseract安装包,目前最新的版本是tesseract-ocr-w64-setup-v4.0.0.20181030.exe。

2.从https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/下载jTessBoxEditor训练工具,目前最新的版本是jTessBoxEditor-2.2.0.zip。

3.由于jTessBoxEditor是用Java开发的,需要安装Java虚拟机才能运行。从https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载Java JDK,目前最新的版本事jdk-8u191-windows-x64.exe。

三、安装tesseract

1.双击tesseract-ocr-setup-4.00.00dev.exe运行。

https://www.pianshen.com/images/917/1f45d1e070ea9064df5b05575733575d.png

2.点击Next。

https://www.pianshen.com/images/830/93687fc6a33dcfb7c12249e50693fbde.png

3.I accept the terms of the License Agreement前的复选框打勾,点击Next。

https://www.pianshen.com/images/320/37f852535cd0f3a9338ff1d8b520cab8.png

4.Install for anyone using this computer前的复选框打勾,点击Next。

https://www.pianshen.com/images/44/10c8baf9be223d89c96d8d61b22f1fac.png

5.选择需要安装的内容,点击Next。

https://www.pianshen.com/images/727/830802d18b456469c59b1eb89869fe57.png

6.点击Browse…选择安装路径,默认安装在C:\Program Files(x86)\Tesseract-OCR,点击Next。

https://www.pianshen.com/images/830/9cd656bf970b69e76965e38ee35d82e6.png

7.点击Install。

https://www.pianshen.com/images/548/e15e433867f742bbc86aed94f8715e0c.png

8.等待安装完成。

https://www.pianshen.com/images/213/88a139f32b877d3980ad668714863ab5.png

9.点击Next。

https://www.pianshen.com/images/174/5a22c8113a35f16c6784312f36101416.png

10.Show README前的复选框取消打勾,点击Finish。

https://www.pianshen.com/images/3/34c8429915daa8190eca670cb2c96293.png

四、安装Java JDK

1.双击jdk-8u191-windows-x64.exe运行。

https://www.pianshen.com/images/406/99ce88e68e6ae6007c3c62abf1025296.png

2.点击下一步。

https://www.pianshen.com/images/536/e1de553d333a5535443961fbc71ea4f0.png

3.点击更改。

https://www.pianshen.com/images/28/b6969f9cdef986596b90872dc5634704.png

4.输入安装路径后,点击确定。

https://www.pianshen.com/images/789/ceacd232c631c8f73c6de30185f73755.png

5.点击下一步。

https://www.pianshen.com/images/461/b0731ee6146ba6869aae70b2f01f691d.png

6.等待安装完成。

https://www.pianshen.com/images/958/9e59b9c35f8cba8e2461c8d58c4cc536.png

7.点击关闭。

https://www.pianshen.com/images/489/9a31a70c5e192ab41df3f5a1cf0b77c9.png

五、配置Java环境变量

1.此电脑右键。

https://www.pianshen.com/images/692/0333bc28b58a4dea98d560bc03e0025c.png

2. 点击属性。

https://www.pianshen.com/images/215/cc915baa2bcd15e461e37d67fc780e87.png

3.点击高级系统设置。

https://www.pianshen.com/images/142/976cc4a9a25cca4a32d6b8019fe7ea6e.png

4.选择高级->环境变量。

https://www.pianshen.com/images/939/eec91887d38c1fe751163f6be4129f4b.png

5.点击新建。

https://www.pianshen.com/images/795/e24c9e5169a89d814734849c23624abb.png

6.变量名输入JAVA_HOME,变量值输入JDK安装目录,点击确定。

https://www.pianshen.com/images/648/4b408013392b5d2ac70c9554f6a7b888.png

7.系统变量中,选择Path,点击编辑。

https://www.pianshen.com/images/830/4792bc22c6f53a9688021f2f5b681986.png

8.点击新建。

https://www.pianshen.com/images/127/820873f3ab1f37c0a6806241df761cbf.png

9.输入%JAVA_HOME%\bin,点击确定。

https://www.pianshen.com/images/507/551930222e4af123d518e98df852845b.png

10.点击确定。

https://www.pianshen.com/images/688/74cb9076baf4600acc2f06f263ccf748.png

11.点击确定。

https://www.pianshen.com/images/384/021796c436d7189ebd40b22abf149248.png

12.重启电脑。

六、安装jTessBoxEditor

1.解压

https://www.pianshen.com/images/735/1dd416db310cae3d7a0981e05b4baf2f.png

2.双击jTessBoxEditor-2.2.0

https://www.pianshen.com/images/908/a8d6825f64fdefebfd1429e33f8db4a4.png

3.双击jTessBoxEditor

https://www.pianshen.com/images/716/1e47f46833e59027a883b9c64ea90a14.png

4.双击jTessBoxEditor,jar运行

https://www.pianshen.com/images/310/3c735a35156182658c47de77b7a14c7e.png

5.出现以下界面则安装成功。

https://www.pianshen.com/images/190/c9b0870b7035fd475fc281c3d7e3798e.png

七、制作训练样本

1. 运行jTessBoxEditor工具,点击Tools。

https://www.pianshen.com/images/488/16ad26567e2db6cc0dad36d512d489c0.png

2.点击Merge TIFF。

https://www.pianshen.com/images/928/5eeef89c55a8fa69a60a2db81b153b20.png

3.文件类型选择All Image Files,选择样本图片,点击打开。

https://www.pianshen.com/images/723/fc5b6b90d16273245fa59606bf02bf0b.png

4.文件名输入num.font.exp0.tif,文件类型选择TIFF,点击保存。

https://www.pianshen.com/images/313/59ffd826f936176d3f9807dea1165b39.png

5.点击确定。

https://www.pianshen.com/images/283/af360fbc1f24d74ec4ae27838c45d013.png

6. 将num.font.exp0.tif文件复制到Tesseract-OCR安装目录。

https://www.pianshen.com/images/173/6953b3819b146dc4b7c4413122949d2d.png

7. 生成Box File文件。打开cmd命令行,以管理员身份运行。

https://www.pianshen.com/images/222/57af5ffe20609acbaba56559d7655d7e.png

8.进入Tesseract-OCR安装目录。

https://www.pianshen.com/images/726/de67e6d0073566d299d0fe16b83f30fe.png

9.执行命令:

tesseract.exe num.font.exp0.tif num.font.exp0 batch.nochop makebox 

生成的box文件为num.font.exp0.box,box文件为Tesseract识别出的字符及其坐标。

注:Make Box File 文件名有一定的格式,不能随便乱取名字,命令格式为:

tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox

其中lang为语言名称,fontname为字体名称,num为序号,可以随便定义。

https://www.pianshen.com/images/294/3849a35aee4deef207fec42c002bc43e.png

10. 将上一步生成的.box和.tif样本文件放在同一目录。我是放在Tesseract-OCR默认安装目录下。

https://www.pianshen.com/images/758/1556b642eca7a8d53b4c9f267c58e61e.png

11.运行jTessBoxEditor工具,点击Box Editor。

https://www.pianshen.com/images/78/0aba5ff9e6ce12c83a36f19656acbd86.png

12.点击Open。

https://www.pianshen.com/images/328/0dbeac38ef6a74253efe01d3a1e0e570.png

13.选择之前生成的num.font.exp0.tif,点击打开。

https://www.pianshen.com/images/70/ef93fa0fd71657180c76b489ded8a98e.png

14. 可以看出有些字符识别的位置不准确,可以通过该工具手动对每张图片中识别错误的字符和位置进行校正。校正完成后保存即可。

注: 这里必须修改识别错误的字符,否则做出来的traineddata文件也是错的。可以在下面的界面中修改并保存,也可以直接在traineddata文件中修改。

https://www.pianshen.com/images/920/cbc68e2a8c73081dea8ca7d122a4cd28.png

15. 定义字体特征文件。创建一个名称为font_properties的字体特征文件。font_properties不含有BOM头,文件内容格式如下:

<fontname> <italic> <bold> <fixed> <serif> <fraktur>  

其中fontname为字体名称,必须与[lang].[fontname].exp[num].box中的名称保持一致。<italic> 、<bold> 、<fixed> 、<serif>、 <fraktur>的取值为1或0,表示字体是否具有这些属性。

这里在样本图片所在目录下创建一个名称为font_properties的文件,用记事本打开,输入以下下内容:

font 0 0 0 0 0

这里全取值为0,表示字体不是粗体、斜体等等。

https://www.pianshen.com/images/201/6d65b40b4728019d433187287f150df9.png

16. 生成语言文件。在样本图片所在目录下创建一个批处理文件,输入如下内容:

rem 执行改批处理前先要目录下创建font_properties文件 

 

echo Run Tesseract for Training.. 

tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train 

 

echo Compute the Character Set.. 

unicharset_extractor.exe num.font.exp0.box 

mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr 

 

echo Clustering.. 

cntraining.exe num.font.exp0.tr 

 

echo Rename Files.. 

rename normproto num.normproto 

rename inttemp num.inttemp 

rename pffmtable num.pffmtable 

rename shapetable num.shapetable  

 

echo Create Tessdata.. 

combine_tessdata.exe num.

https://www.pianshen.com/images/614/edccd30bd369cffb4620ff97a48c7ca6.png

17. 执行批处理文件, num.traineddata便是最终生成的语言文件,将生成的num.traineddata拷贝到程序的样本文件夹里,就可以使用了。

https://www.pianshen.com/images/561/9da04cf4fcbec8af304291ce923af4d1.png