tesseract ocr 入门

环境vs2008 c++

写本文的时候,tess已经4.0,但是因为不再支持vs2008,我只能找到支持我IDE最后一个版本,3.0.2,庆幸它支持识别中文。

为什么不用vs2015,因为他要用到stdint.h(是c99中引进的一个标准C库的文件),我不要,因为升上去,字符集会变化,我代码量太多,改动太大对生产系统有风险,无法在有限的时间完成全量测试。



因为我要用api,分为几步:

1、下载

到了2017年某法规实施后,googlecode早就连不上了,原因大家懂的。

(***)源代码可以通过github下载。https://github.com/tesseract-ocr/tesseract/tree/3.02.02

(***)语言文件可以通过sourceforge下载,https://sourceforge.net/projects/tesseract-ocr-alt/files/?source=navbar

(***)环境安装步骤,可以参照


2、编译

需要leptonica-1.68-win32-lib-include-dirs.zip,因为我只需要调用api,不需要跨IDE编译,所以不写了


3、调用api

这没难度,不写了

init完记得end,否则内存不够你用。

多线程:记得在项目属性中,x86编译记得打开【支持大于 2 GB 的地址(/LARGEADDRESSAWARE)】,否则多线程内存地址不够用,40个线程,瞬间撑爆,异常退出,本机16G内存,所以不是物理内存不足的问题,而是编译时的问题。是不是这个问题可以做个试验,vector<int> vet_test;   while(1) {vet_test.push_back(1);}    崩溃时去任务管理器看看内存占用多少,基本在2G边缘。


4、训练

(***)官方指导性文章,强烈建议完整阅读,https://github.com/tesseract-ocr/tesseract/wiki/Training-Tesseract-3.00%E2%80%933.02

(***)中文优秀范例,感谢,给了很大启发,http://www.cnblogs.com/zhongtang/p/5555950.html

(***)中文说明(文中第一部分),http://blog.csdn.net/tuling_research/article/details/41091163

注意:训练时,报错就是错了,一定有问题,不要再继续训练了,无用功。


5、思路

(***)数字,中规中矩的字,用eng训练,修正,导出自己的语言包1。再用语言包1+eng再次验证,修正,导出自己的语言包2。再用语言包2+语言包1+eng再次验证,修正,导出自己的语言包3。。。。。以此类推,直至完美

(***)汉字,中规中矩的字,如果是有限集合的字,用chi_sim解包,利用chi_sim.unicharambigs去修正【一个字拆分成2个字的情况】

(***)自己创造语言?多次尝试失败,搁置。

训练的要点:每次训练的样本必须全量,对于同一个字,样本越多越好,官网说10个比较合适







猜你喜欢

转载自blog.csdn.net/u014265135/article/details/77899506