今天闲来无聊,尝试了一下OCR识别,尝试了如下三种方案:html
1.直接使用业界使用最普遍的Tesseract-OCR。java
Tesseract项目最初由惠普实验室支持,1996年被移植到Windows上,1998年进行了C++化。在2005年Tesseract由惠普公司宣布开源。2006年到如今,都由Google公司开发及维护。git
2.使用基于Tesseract-OCR封装的Tess4jgithub
3.调用百度云OCR服务实现(AT两家太贵,百度云文字识别服务提供每一个月15000次的免费调用)。maven
先说测试结果:测试
毫无心外的,百度识别率最高,若是要本身实现,原生tesseract-ocr比tess4j识别率高出不少。ui
具体实现:.net
1.百度云OCR地址:https://cloud.baidu.com/product/ocr.htmlhtm
JAVA开发指南:https://cloud.baidu.com/doc/OCR/OCR-Java-SDK.htmlblog
2.直接使用Tesseract-OCR,还有一个好处就是能够进行针对性的训练,提升识别率,我没有尝试过。
参考:
Windows环境安装tesseract-ocr 4.00并配置环境变量
注意:能够去github下载最新语言包文件,语言包是放在 tessdata文件夹,文件比较大,下载比较慢。
备注:截止到笔者写文时已发布4.00版本。
3.使用Tess4j,(不建议使用,我在试用过程当中发现错误率极高)
不过目前网上能找到的比较多的资料都是Tess4j。
有如下可参考:
直接可运行的项目:https://gitee.com/zhaohuihbwj/Tess4JDemo
注意:该项目可直接运行测试。建议在maven中将tess4j升级到最新版本。
该项目直接包含了语言包,tess4j依赖包比较多,克隆过程会比较漫长。
若本地已有语言包chi_sim.traineddata,eng.traineddata,osd.traineddata
可克隆我fork的版本,https://gitee.com/huanghongbo/Tess4JDemo,将以上语言包放入/src/resources/tessdata目录。
其余参考资料:
1.官方参考:http://tess4j.sourceforge.net/
最新官方Tess4j包中已包含了对应dll文件,无需再单独配置。