OCR技术探讨(一)

[作者:令狐冲]

原文标题:OCR工具对比与tesseract简明教程

原文链接:OCR工具对比与tesseract简明教程 - 知乎
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

OCR工具对比与tesseract简明教程

OCR工具对比与tesseract简明教程

令狐冲

令狐冲

在机器学习门口徘徊的迷途小书童

一、OCR工具对比

经过预处理后,tesseract识别率达到100%,tesseract-fast错误均为人名,tesseract-best/tesseract-fast仅用LSTM。CLSTM已经年久失修,docker镜像都404了。tesseract对清晰度不高的图片识别出现很多拒识,百度OCR-API准确率还在95%以上

结论:tesseract较多人使用,有比较多资料可查,目前由google提供支持,暂定它了,优化方向:通过训练微调、想办法提速。

二、tesseract-ocr使用流程

安装

支持windows、linux,注意要安装4.0版,准确率有较大提升,安装后需要添加中文词库。

安装教程地址:https://github.com/tesseract-ocr/tesseract/wiki

中文词库地址:chi_sim.traineddata

运行

假设当前目录下有test.jpg(注意要先把pdf文件转为图片),生成的文件名是result.txt,执行如下命令:

tesseract test.jpg result -l chi_sim

其中-l代表使用的词库,chi_sim是简体中文。

tesseract生成的结果包括可搜索pdf文档(文本双层pdf),在命令结尾加上pdf即可

tesseract test.jpg result -l chi_sim pdf

tesseract的python接口:pytesseract

pip install pytesseract

简单调用:

import pytesseractfrom PIL import Imageim=Image.open('test.jpg')print(pytesseract.image_to_string(im))

训练

所需工具:

  1. jTessBoxEditor
  2. java虚拟机

1. 根据图片生成BOX文件

tesseract myfontlab.normal.exp0.jpg myfontlab.normal.exp0 -l chi_sim batch.nochop makebox

注意图片与box文件名需保持一致,box文件格式如下

字 x坐标 y坐标 宽度 高度

2. 修正BOX文件

使用jTessBoxEditor打开图片文件修正box错误

3.进行训练

训练,生成.tr文件

tesseract myfontlab.normal.exp0.jpg myfontlab.normal.exp0 nobatch box.train

生成一个unicharset文件

unicharset_extractor myfontlab.normal.exp0.box

新建一个font_properties.txt文件,里面内容写入 normal 0 0 0 0 0 表示默认普通字体

shapeclustering -F font_properties.txt -U unicharset myfontlab.normal.exp0.trmftraining -F font_properties.txt -U unicharset -O unicharset myfontlab.normal.exp0.trcntraining myfontlab.normal.exp0.tr

在这五个文件前加上normal.进行重命名

combine_tessdata normal.

得到训练好的字库,normal.traineddata,复制到Tesseract-OCRt程序目录下的“tessdata”目录即可,使用时可以多个字库并用

tesseract test.jpg result -l chi_sim+normal

优化方向

当文字内容比较模糊不清时,按行模式来识别能够大大提高识别率和准确率,如使用默认参数,下图基本识别不出来

当把按照行切开后,使用单行识别模式,Page segmentation modes:Treat the image as a single text line

shell tesseract test_singleline.png single -l chi_sim --psm 7 #促进节约集约用地,国土资源部

识别率大大提高

4.0的LSTM引擎不支持常用字典、黑名单、白名单,综合来看还是4.0的LSTM识别率高。

提高准确率的方法:图像预处理

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值