JAVA OCR图片识别

时间:2021-01-04 09:16:09

今天闲来无聊,尝试了一下OCR识别,尝试了以下三种方案:

1.直接使用业界使用最广泛的Tesseract-OCR。

Tesseract项目最初由惠普实验室支持,1996年被移植到Windows上,1998年进行了C++化。在2005年Tesseract由惠普公司宣布开源。2006年到现在,都由Google公司开发及维护。

2.使用基于Tesseract-OCR封装的Tess4j

3.调用百度云OCR服务实现(AT两家太贵,百度云文字识别服务提供每个月15000次的免费调用)。

先说测试结果:

毫无意外的,百度识别率最高,如果要自己实现,原生tesseract-ocr比tess4j识别率高出很多。


具体实现:

1.百度云OCR地址:https://cloud.baidu.com/product/ocr.html

JAVA开发指南:https://cloud.baidu.com/doc/OCR/OCR-Java-SDK.html

2.直接使用Tesseract-OCR,还有一个好处就是可以进行针对性的训练,提高识别率,我没有尝试过。

参考:

Windows环境安装tesseract-ocr 4.00并配置环境变量

注意:可以去github下载最新语言包文件,语言包是放在 tessdata文件夹,文件比较大,下载比较慢。

java文字识别技术(亲测,识别率很高)

java 图片文字识别 ocr

备注:截止到笔者写文时已发布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文件,无需再单独配置。

2.Java OCR tess4j 图片识别技术(三)

3.验证码识别(Tess4J初体验)

4.tess4j正确的使用 OCR