Tesseract-OCR的训练

经过参照多方资源视频,最终得出最后版本Tesseract-OCR的训练模型:

准备工作:

下载:Testeract下载:https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.0.0.20190623.exe

Java-jdk下载:https://download.oracle.com/otn-pub/java/jdk/15.0.1+9/51f4f36ad4ef43e39d0dfdbaf6549e32/jdk-15.0.1_windows-x64_bin.exe?AuthParam=1605080278_e0ff372e5b0d7a2e8354448c3be0b2a4

testeract的训练工具下载:https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/

Tesseract-OCR的训练_第1张图片

切记一定要选择不带FX的文件!!!!

.

.

.

1、安装:

Tesseract-OCR安装:

直接傻瓜式安装,切记一定要记住安装的目录,然后在电脑的系统环境变量中进行编辑Tesseract-OCR的训练_第2张图片

Tesseract-OCR的训练_第3张图片

系统环境中进行添加编辑

Java环境配置:

因为jTessBoxEditor 是Java开发的,所以必须配置Java的环境
下载完毕之后傻瓜式安装,然后还是记住安装的目录,同样配置环境变量:

例如:Tesseract-OCR的训练_第4张图片

我的安装位置在F盘,记住位置即可,在用户变量中添加:JAVA_HOME

使得在使用Java环境时候能迅速找到,不需要进行查找,结果:
Tesseract-OCR的训练_第5张图片

在系统环境变量中添加

Tesseract-OCR的训练_第6张图片

安装jTessBoxEditor:
提醒:因为是国外网站,所以我们在下载的时候速度为异常的缓慢,可以安装迅雷软件,然后复制到下载地址在迅雷中下载,速度将会百倍提升(切记:不要下载结尾为FX的文件,安装之后也无法使用,不知道为什么)
下载完毕之后直接解压即可

Tesseract-OCR的训练_第7张图片

双击直接打开Tesseract-OCR的训练_第8张图片

2、训练

1)点击Merge TIFF。Tesseract-OCR的训练_第9张图片
2)文件类型选择All Image Files,选择样本图片,点击打开。
Tesseract-OCR的训练_第10张图片
3)文件名输入num.font.exp0.tif,文件类型选择TIFF,点击保存。
Tesseract-OCR的训练_第11张图片
4)在文件保存的目录中执行cmd以管理员身份运行
Tesseract-OCR的训练_第12张图片
5)进入Tesseract-OCR安装目录。
Tesseract-OCR的训练_第13张图片
执行命令:

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为序号,可以随便定义。

生成文件

Tesseract-OCR的训练_第14张图片
6)运行jTessBoxEditor工具,点击Box Editor。
Tesseract-OCR的训练_第15张图片
7)点击Open。
Tesseract-OCR的训练_第16张图片
8)选择之前生成的num.font.exp0.tif,点击打开。
Tesseract-OCR的训练_第17张图片
9)可以看出有些字符识别的位置不准确,可以通过该工具手动对每张图片中识别错误的字符和位置进行校正。校正完成后保存即可。

最重要的一步,可以点击下一页,图片越多准确率越高

注: 这里必须修改识别错误的字符,否则做出来的traineddata文件也是错的。可以在下面的界面中修改并保存,也可以直接在traineddata文件中修改。
Tesseract-OCR的训练_第18张图片
10)创建一个font_properties.txt的文件,创建一个名称为font_properties的字体特征文件。font_properties不含有BOM头,文件内容格式如下:

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

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

font 0 0 0 0 0

这里全取值为0,表示字体不是粗体、斜体等等。Tesseract-OCR的训练_第19张图片

一定要把.txt文件后缀删除,否则无法生成训练结束的字体文件Tesseract-OCR的训练_第20张图片

11)执行批处理文件
在目标目录下生成一个批处理文件

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. 
echo. & pause

Tesseract-OCR的训练_第21张图片

双击执行

最终获得:num.traineddata

Tesseract-OCR的训练_第22张图片
此文件即为语言模块,直接复制到你安装的Tesseract-OCR文件中:例如:

F:\python_other\Tesseract-OCR\tessdata

复制到tessdata文件中即可使用:
如何查看:tesseract --list-langs在这里插入图片描述
可看到自己的语言已经多出来num这个语言,所以为自定义名称。

如果说没有找到num.traineddata,那么看看你的font_properties文件是不是携带了.txt后缀

今日份分享结束。如过哪里有问题可以留言评论,大家一起探讨

你可能感兴趣的:(python,深度学习)