一、准备工作
1、下载Tesseract-OCR引擎,注意要3.0以上才支持中文哦,按照提示安装就行。
2、下载chi_sim.traindata字库。要有这个才能识别中文。下好后,放到Tesseract-OCR项目的tessdata文件夹里面。
3、下载jTessBoxEditor,这个是用来训练字库的。
以上的几个在百度都能找到下载,就不详细讲了。
二、识别
1、进入cmd,进入到要识别的图片的路径下。
2、输入命令
1 | tesseract 图片名称 生成的结果文件的名称 字库 |
例如我的图片识别就是:
1 | tesseract test.jpg result -l chi_sim |
识别完后会生成result.txt文件
当然啦效果不太理想。所以我们要训练自己的字库。
三、训练
为了方便 tif文面命名格式[lang].[fontname].exp[num].tif
lang是语言 fontname是字体
比如我们要训练自定义字库 mjorcen字体名normal
那么我们把tif文件重命名 mjorcen.normal.exp0.jpg
1、生成.box
图片文件夹下Shift+右键shell命令行中执行1:
tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 -l chi_sim batch.nochop makebox
box文件和对应的tif一定要在相同的目录下,不然后面打不开。
2、用jTessBoxEditor.jar打开tif文件,然后根据实际情况修改box文件
3、打开jTessBoxEditor矫正错误并训练
打开train.bat
找到tif图,打开,并校正。
4、训练。
5、 生成 .tr文件
执行2:
tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 nobatch box.train
6、成一个unicharset文件
执行3:
unicharset_extractor mjorcen.normal.exp0.box
7、新建一个font_properties文件
里面内容写入 normal 0 0 0 0 0 表示默认普通字体
echo font 0 0 0 0 0>font_properties
注意 : 这里输入的 “font” 名称必须与 “mjorcen.normal.exp0.box” 中两个点号之间的 “font” 名称保持一致。
8、运行命令
执行1:
shapeclustering -F font_properties -U unicharset mjorcen.normal.exp0.tr
执行2:
mftraining -F font_properties -U unicharset -O unicharset mjorcen.normal.exp0.tr
执行3:
cntraining mjorcen.normal.exp0.tr
9、最后会生成五个文件,把目录下的unicharset、inttemp、pffmtable、shapetable、normproto这五个文件前面都加上normal.
10、合并五个文件:
执行:
combine_tessdata normal.
得到训练好的字库。
四、测试
1、把 normal.traineddata 复制到Tesseract-OCR 安装目录下的tessdata文件夹中
2、识别命令:
1 | tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 -l normal |