这两天在写识别身份证信息,发现tesseract-ocr识别字库中的中文chi_sim识别字体仍然有乱码出现,识别率不是很高,所以各种百度找准确率高的字库,结果就是自己创造,下面就说步骤,很简单哦,大家直接按照步骤完成就好啦!

第一步:找到jTessBoxEditor压缩包,解压到你想放到的路径,这里提供的版本为2.2.0版本

注意:这里也必须你的电脑上要有jre,而且版本必须为1.8.0以上

tesseract ocr中文库训练 tesseract训练自己的字库_tesseract ocr中文库训练


第二步:首先准备一张地址图片,放在自定义的文件夹下,命名为address.normal.exp0.jpg,并且复制一份命名为address.normal.exp0.tif

说明:1、 .jpg命名要与.tif命名相同,不然一会识别tif文件识别不出来

2、 .tif命名格式是有规定的:

[lang].[fontname].exp[num].tif

lang是语言 fontname是字体

例如:训练自定义库名为address

字体名为normal

所以将address.normal.exp0.jpg重命名为.tif。

tesseract ocr中文库训练 tesseract训练自己的字库_库文件_02


第三步:生成box文件,执行命令

tesseract address.normal.exp0.jpg address.normal.exp0 -l chi_sim batch.nochop makebox

tesseract ocr中文库训练 tesseract训练自己的字库_库文件_03


执行成功,我们用记事本看一下box文件,发现是乱七八糟的

tesseract ocr中文库训练 tesseract训练自己的字库_tesseract ocr中文库训练_04


说明:box文件一定要与tif文件放在同一个文件夹下

第四步:接下来就要用jTessBoxEditor进行纠错训练,打开jTessBoxEditor文件下的train.bat

选择Box Editor->open,打开address.normal.exp0.tif文件

注意:下图的内容是我操作完的,未操作的图片其实就是左侧的char为识别出来的乱码,大 家在红框地方进行操作就可以得到正确的结果

操作完成后,点击save保存box文件

tesseract ocr中文库训练 tesseract训练自己的字库_自定义_05


第五步:用echo命令创建字体特征文件

echo address 0 0 0 0 0>font_properties

tesseract ocr中文库训练 tesseract训练自己的字库_库文件_06


执行完成之后,在当前文件夹下生成font_properties文件

tesseract ocr中文库训练 tesseract训练自己的字库_自定义_07


第六步:用tesseract生成.tr训练文件

tesseract address.normal.exp0.tif address.normal.exp0 nobatch box.train

成功后看到:

tesseract ocr中文库训练 tesseract训练自己的字库_tesseract ocr中文库训练_08


tesseract ocr中文库训练 tesseract训练自己的字库_自定义_09


第七步:生成字符集文件

unicharset_extractor address.normal.exp0.box

tesseract ocr中文库训练 tesseract训练自己的字库_tesseract ocr中文库训练_10


tesseract ocr中文库训练 tesseract训练自己的字库_java_11


第八步:生成数据字典

mftraining -F font_properties -U unicharset -O address.unicharset address.normal.exp0.tr

tesseract ocr中文库训练 tesseract训练自己的字库_tesseract ocr中文库训练_12

cntraining address.normal.exp0.tr

执行后,会生成四个文件:inttemp、pffmtable、normproto、shapetable

tesseract ocr中文库训练 tesseract训练自己的字库_tesseract ocr中文库训练_13


tesseract ocr中文库训练 tesseract训练自己的字库_tesseract ocr中文库训练_14


tesseract ocr中文库训练 tesseract训练自己的字库_自定义_15


这里需要手动修改成为:address.inttemp、address.pffmtable、address.normproto、address.shapetable

tesseract ocr中文库训练 tesseract训练自己的字库_tesseract ocr中文库训练_16


第九步:合并数据文件,生成字库文件

combine_tessdata address.

tesseract ocr中文库训练 tesseract训练自己的字库_tesseract ocr中文库训练_17


成功后会在当前文件夹下生成address.traineddata文件,这个语言就是跟我们下载的官方字库一样,例如eng,chi_sim一样,不过这个字库专门用于识别纠正图片中那种数字字体。

tesseract ocr中文库训练 tesseract训练自己的字库_数据文件_18


我们把这个字库address放到tesseract-ocr的tessdata目录下C:\Program Files (x86)\Tesseract-OCR\tessdata

tesseract ocr中文库训练 tesseract训练自己的字库_tesseract ocr中文库训练_19


第十步:测试结果,完全的将文字正确的识别出来了

tesseract ocr中文库训练 tesseract训练自己的字库_自定义_20


tesseract ocr中文库训练 tesseract训练自己的字库_自定义_21