在使用Tesseract进行图像识别时,对在识别汉字或一些字符时会出现识别不正确的情况。此时就需要自己调整训练生成新的语言库,本片文章用来简单介绍使用jTessBoxEditor进行训练生成新的语言库。
一.前期准备:
1.jdk1.8或1.8以上。
2.jTessBoxEditor,下载地址:https://sourceforge.net/projects/vietocr/?source=typ_redirect
3.Tesseract,下载地址:https://code.google.com/p/tesseract-ocr/
二.训练语言库:
(1)将图片转换成tif格式,用于后面生成box文件。可以通过画图,然后另存为tif即可。更改图片名字,这个是有要求的。tif文面命名格式[lang].[fontname].exp[num].tif,其中lang是语言 fontname是字体。
(2)生成box文件(注意jpg文件路径):
tesseractd:\Tesseract-OCR\testdata\mjorcen.normal.exp0.jpg d:\Tesseract-OCR\testdata\mjorcen.normal.exp0 -l chi_sim batch.nochop makebox
(3)打开jTessBoxEditor矫正错误并训练(关于jTessBoxEditor的使用,下一篇文章介绍)
打开train.bat
点击“open”,打开tif文件进行校正
(4)显示分析修正的字(生成*.tr文件):
tesseractd:\Tesseract-OCR\testdata\mjorcen.normal.exp0.jpg d:\Tesseract-OCR\testdata\mjorcen.normal.exp0 nobatch box.train
(5)生成unicharset文件,在tesseract.exe同级目录
unicharset_extractor d:\Tesseract-OCR\testdata\mjorcen.normal.exp0.box
(6)生成shap文件:注意font_properties、unicharset、mjorcen.normal.exp0.tr文件路径(在tesseract.exe同级目录)
shapeclustering-F d:\Tesseract-OCR\testdata\font_properties -U d:\Tesseract-OCR\unicharset d:\Tesseract-OCR\testdata\mjorcen.normal.exp0.tr
(7)生成inttemp、pffmtable
mftraining -F d:\Tesseract-OCR\testdata\font_properties-U d:\Tesseract-OCR\unicharset -O d:\Tesseract-OCR\unicharset d:\Tesseract-OCR\testdata\mjorcen.normal.exp0.tr
(8)生成normproto文件
cntraining d:\Tesseract-OCR\testdata\mjorcen.normal.exp0.tr
(9)将上面生成的5个文件重命名为“normal.原文件名”,便于合并
(10)合并5个文件
combine_tessdata d:\Tesseract-OCR\testdata\normal.
注意:
新建一个font_properties(没有后缀)文件。里面内容写入 normal 0 00 0 0 表示默认普通字体
三.测试:把 normal.traineddata 复制到Tesseract-OCR 安装目录下的tessdata文件夹中,此时可使用自己生成的文字库进行图像识别。
喜欢我的文章希望和我一起成长的宝宝们,可以搜索并添加公众号TryTestwonderful ,或者扫描下方二维码添加公众号