Tesseract OCR 3.05.01 VS2015编译 及 字库训练

来源:互联网 发布:阿拉伯 联邦 知乎 编辑:程序博客网 时间:2024/05/22 13:05

Tesseract OCR 3.05.01 VS2015编译 及 字库训练

tesseract-ocr 源码
https://github.com/tesseract-ocr/tesseract
tesseract-ocr build it from source for windows(windows 源码编译)
https://github.com/tesseract-ocr/tesseract/wiki/Compiling#windows
Tesseract OCR 3.05.01 exe安装文件下载地址
http://download.csdn.net/download/u011607273/10037974
下面说正事

一、最新版本 Tesseract OCR EXE文件生成
1、下载vs2015工程文件
https://github.com/peirick/VS2015_Tesseract
2、下载对应版本的tesseract ocr源码并放入vs2015工程对应文件夹
https://github.com/tesseract-ocr/tesseract或https://github.com/UB-Mannheim/tesseract
3、下载leptonica 源码并放入vs2015工程对应文件夹内
https://github.com/DanBloomberg/leptonica
4、用vs2015或更高版本打开工程进行编译
注意:如果出现缺少文件请查看tesseract ocr或leptonica 源码版本是否匹配,
如果缺少strcasestr.cpp请到tesseract ocr4.0源码中对应文件下获取,
如遇到乱码问题将乱码文件重新保存为工程编码格式GB2312或UTF-8
5、添加变量TESSDATA_PREFIX指向tessdata上级目录
注:如果不添加此步骤在图片识别过程中可能报错
6、添加PATH指向tesseract.exe所在文件夹
7、编译成功后运行test_tesseract.bat进行测试。

二、字符识别基础及训练字库
1、下载jTessBoxEditor(需要安装jdk才能使用)
2、准备好需训练的图片
3、将每个需训练的图片进行识别查看识别效果

tesseract 1.jpg 1 // 后面的1为文本文件名称

4、用jTessBoxEditor将jpg转换为tif文件
这里写图片描述
这里写图片描述

5、将生成所有的tif文件合成一个tif图片集文件,并规范命名
例如red.font.exp0
重复第四步操作,这次选得是tif文件,记得将所有需要训练的tif文件都选上。
这里写图片描述
6、生成box文件

tesseract red.font.exp0.tif red.font.exp0 batch.nochop makebox 

这里写图片描述

7、调整,因为 tesseract 识别的不准确,所以我们用 jTessBoxEditor来调整识别文字的位置、结果
用 jTessBoxEditor打开生成的图片集red.font.exp0.tif ,注意red.font.exp0.tif 对应的box文件一定要和他处于同一个文件夹下(请保持文件名),否则,用jTessBoxEditor打开没有 位置、识别结果等信息,然后就可以调整了,调整完之后保存;注意多个tif文件生成的tif图片集在打开后是分页的。
这里写图片描述
8、生成.tr文件

tesseract red.font.exp0.tif  red.font.exp0   nobatch box.train

这里写图片描述
9、计算字符集,从生成的 box文件中提取

unicharset_extractor red.font.exp0.box

这里写图片描述
注意:unicharset_extractor在vs2015项目中是没有的,请下载tesseract3.05.exe安装文件,解压缩exe文件后将除tesseract.exe外的exe文件复制到vs2015中tesseract.exe文件路径下即PATH下。
10、生成字体特征文件
在tif文件夹下创建font_properties.txt 内容
定义字体特征文件,Tesseract-OCR 3.01 以上的版本在训练之前需要创建一个名称为 font_properties 的字体特征文件。font_properties 不含有 BOM 头,文件内容格式如下:

font 0 0 0 0 0

创建后执行命令

mftraining -F font_properties.txt -U unicharset red.font.exp0.tr

这里写图片描述

11、聚集tesseract 识别的训练文件

cntraining red.font.exp0.tr

这里写图片描述
执行完这一步之后发现文件夹下生产了许多文件,把unicharset, inttemp, normproto, pfftable,shapetable这几个文件加上前缀 red.
12、最后一步,合并相关文件,生成字典文件

combine_tessdata red.

这里写图片描述
好了,至此字典文件就生产了,我们把生成的字典文件red.traineddata放入到 vs2015中 tessdata文件夹下开始使用我们训练过得字体库,找到之前的jpg图片测试一下识别成功率

如果想更好的识别图片,可以试试将图片二值化处理,可以提高识别率

原创粉丝点击