发票图像识别,如何提高识别率?
作者:互联网
做的一个项目需要对发票图片做识别,理想情况下当然是能做到对手机拍摄的发票图片做识别,难度比较大,主要是发票套印套打严重,字体打印质量不高,全国发票格式多样不统一。开这个话题跟感兴趣的朋友交流。
我觉得有两个难点:第一拍的照片是否对齐,没对齐怎么判断, 还有就是折叠影响,如何处理?
第二个识别,这个上深度学习就行了,如果是机打发票没有手写的话要简单很多。
19 人赞同了该回答
不知道题主是否已经解决这个问题,恰好我也正在研究这方面的问题,以下是我的思路,希望能做到抛砖引玉的效果。
首先是提高源图的清晰度,例如将扫描仪200分辨率改为300的分辨率,存jpg格式图片时不要进行压缩。对于人眼来说,清晰度模糊一点并不影响阅读。但是对算法来说,高清晰高质量图片处理起来会容易的多。
然后是图片预处理,对文字区域检测时可采用高斯滤波,文字识别时候采用锐化处理。
另外一个细节就是识别左上角的二维码,二维码中包含发票里面大部分有用信息,并且识别的结果基本上无误差。因为二维码模糊,残缺等问题,直接采用zxing进行识别,大约仅有40%的识别率。通过分析zxing源码,修改关键点定位算法,轻微残缺补齐等,最后整体能达到60%左右的识别率。
最后就是文字区域的二值化,当二值化效果比较理想时,采用tesseract能够达到一个非常好的效果。
最后补充一点,若题主有足够的人力和物力可采用深度学习算法。文字检测可采用CTPN算法,文字识别可采用ResNet+LSTM+CTC,预计能够达到一个非常高的准确率。
-------------------------------------分割线-------------------------------------------------
后来我采用深度学习方式去做ocr,用2000左右张图片做训练,200张做测试。最后大概的识别率在90%左右,不过我识别的是发票扫描件,200dpi,70%压缩的jpg格式图片。
这个问题也许可以参考下 :干货帖 | 各种PDF表单的疑难杂症怎么解决?
PDFelement 移动端可以直接拍照扫描制成PDF。
然后在桌面端打开。
或者可以直接将手机和电脑USB连接起来,打开程序 - “从扫描仪” - 扫描仪选项中选择自己的设备 - 扫描
如果连接的是手机,可以访问手机相册,选择图片进行 PDF 创建。
完成扫描以后,就可以进行下一步数据提取,由于是扫描件,要用到OCR进行字符识别。
数据批量提取到 Excel 非常快捷。
标签:图像识别,扫描,采用,识别率,发票,识别,图片 来源: https://blog.csdn.net/javastart/article/details/112485123