tesseract5.0+tesstrain+tess4j识别验证码

tesseract5.0+tesstrain+tess4j识别验证码,第1张

1、Java项目中引入tess4j库,用gradle配置如下:

    implementation 'net.sourceforge.tess4j:tess4j:5.2.0'

2、安装Tesseract5.0

因Tess4j无法在mac系统使用,报错找不到一些依赖的类库,所以必须安装tesseract5.0.

安装可以用:

brew install tesseract

如果要用图片训练tesstrain,则需要从github下源代码编译(GitHub - tesseract-ocr/tesseract: Tesseract Open Source OCR Engine (main repository)),本人这里需要用训练,所以是下载代码编译的,过程比较复杂,可以直接它的安装文档进行安装。

3、设置java运行变量tessdata的位置,如下。

 4、以上步骤完成,运行java就能识别图片了。

这个识别对于干净整洁的英文数字图片识别效果不错,但是像验证码这种有很多干扰项的图片,识别正确率就很低了,可以运动训练工具提高识别率。

补充:遇到运行时报错找不到libtesseract.5.dylib(根据自己的版本确定具体的文件),需要把libtesseract.5.dylib这个文件手工添加到tess4j的jar包中。

5、下载tesstrain工具

GitHub - tesseract-ocr/tesstrain: Train Tesseract LSTM with make

6、进行图片识别训练

6.1、收集若干识别的图片,图片格式为.tif,翻译图片内容保存到同名txt(文件格式.gt.txt),如下:

6.2、在tesstrain安装目录(本地源码目录)下data中创建一个文件夹,名为“xxx-ground-truth”,xxx是自己的命名,xxx是tesstrain的MODEL_NAME,后续命令中用到。比如:

 

6.3、运行命令训练

运行terminal先cd到tesstrain目录下,再运行如下目录:

make training MODEL_NAME=hx

MODEL_NAME的“hx”与文件夹“hx-ground-truth” 前面部分一致。

上面命令运行结束,如果没有错误,将会在"hx-ground-truth"文件夹同目录下生成hx.traineddata文件。

 7、使用训练的文件识别图片

训练完成的hx.traineddata可以拷贝到前面提到的tessedata目录中与tessact系统的其他训练文件一起,亦可以保留在其他位置(使用时需要指定tessdata目录).

没有拷贝traineddata到tessdata的命令如下:

tesseract --tessdata-dir /本地安装路径/tesstrain/data 本地图片名.jpg stdout -l hx --psm 6

拷贝traineddata到tessdata的命令:

tesseract 本地图片名.jpg stdout -l hx --psm 6
问题补充

2022/4/27

1、tif图片的dpi的为72以上(70dpi也勉强),低于这个值生成的训练文件无法识别出正确结果。

2、如何将jpg转tif,用图片处理工具导出,设置dpi为72以上,本文用的是GIMP-2.10处理的。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/790026.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存