关于现阶段java调用OCR文字识别技术的总结
经过这么多年的技术发展,ocr文字识别技术依然步入正轨,不过知识就是财富,要想精准的识别还是得购买大公司的成熟技术,已知的有阿里ocr、腾讯ocr、百度ocr、搜狗ocr、有道ocr等等,本次就说说有哪些开源的ocr
1.Google开源OCR Tesseract
Tesseract 是一个 开源的OCR引擎,由 Google 赞助。Tesseract 是目前公认最优秀、最精确的开源 OCR 系统,除了较高的精确度外,Tesseract 也具有很高的灵活性。它可以通过训练识别出任何字体,也可以识别出任何 Unicode 字符。
不过说实话,没有经过训练得Tesseract语言库识别率真的不怎么样,大概有30%的样子吧。
maven依赖
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.4.0</version>
</dependency>
下面说一下如何提高识别率
- Tesseract 更新到4.0以上版本
- 图像前处理
做好图片的二值化
合理的降噪
图片resize
图片旋转到合适的角度
图片切割
具体如何操作就不一一描述了 - 通过训练字库来提高识别率
重点说一下Tesseract训练方法,虽然有点繁琐,但这个才是提高识别率的主要方向
1.安装 jTessBoxEditor
2.【train.bat】打开 jTessBoxEditor >【Tools】>【Merge TIFF】
注意:tif文面命名格式[lang].[fontname].exp[num].tif
lang是语言,fontname是字体,num为自定义数字
3.保存为 num.font.exp1.tif
4.运行以下命令生成.box文件
tesseract num.font.exp1.tif nu