做的一个项目需要对发票图片做识别,理想情况下当然是能做到对手机拍摄的发票图片做识别,难度比较大,主要是发票套印套打严重,字体打印质量不高,全国发票格式多样不统一。开这个话题跟感兴趣的朋友交流。

我觉得有两个难点:第一拍的照片是否对齐,没对齐怎么判断, 还有就是折叠影响,如何处理?

第二个识别,这个上深度学习就行了,如果是机打发票没有手写的话要简单很多。

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 非常快捷。


发票图像识别,如何提高识别率?相关推荐

  1. 搜狗语音输入提示服务器繁忙,讯飞语音输入如何提高识别率 提高方法

    讯飞语音是一款语音输入软件,能够帮助用户进行通过语音说话,进行智能识别,帮助用户在繁忙的时候,直接语音输入,不过语言描述要清晰哦!小编在这里分享一下识别率提高方法,不要错过哦! 讯飞语音输入如何提高识 ...

  2. Android二维码识别率优化,Android Zxing 转换竖屏扫描且提高识别率的方法

    最近的一个Android需要用到扫码功能,用的是Zxing开源库.Zxing的集成就不说了,但是Zxing默认的是横屏扫码,在实际生产中并不适用,需要改为竖屏扫描. 转竖屏步骤: 1>. And ...

  3. matlab识别图像,基于MATLAB神经网络图像识别的高识别率代码

    MATLAB神经网络图像识别高识别率代码 I0=pretreatment(imread('Z:\data\PictureData\TestCode\SplitDataTest\0 (1).png')) ...

  4. 计算识别率的matlab代码,基于MATLAB神经网络图像识别的高识别率代码

    更新时间: 2019年3月14日10:50:04作者: 钱190 今天,我将与您分享一个基于MATLAB神经网络图像识别的高识别代码. 我认为内容非常好. 现在我与大家分享. 具有很好的参考价值. 需 ...

  5. 使用tesseract训练自己的字库提高识别率

    问题描述:想使用tesseract识别中文,但是发现有一个字tesseract自带的库会识别错误或者不识别.比如下图的左图,其结果是"肇"变成"告",明显是识别 ...

  6. 国税总局发票查验平台验证码识别方案,识别率达98%

    全国增值税发票查验平台验证码 2020.04.30 已经同步更新,测试网址不变 手动置顶:验证码识别测试页面(可视化操作) 识别率97.5%,图片接口支持手动测试,以图片形式返回结果:文本接口需要联系 ...

  7. 核酸扫码登记体验有感(如何提高OCR的文字正确识别率)

    近几年,新冠疫情持续反复,核酸检测已成为了我们日常生活的一部分,甚至有人开玩笑说朋友邻居见面问候语从"吃了吗你?"变成了"今儿核酸了?".核酸检测全员常态化,需 ...

  8. 图像文字识别(三):Tesseract4.0训练字库,提高正确识别率

    由于tesseract的中文语言包"chi_sim"对中文手写字体或者环境比较复杂的图片,识别正确率不高,因此需要针对特定情况用自己的样本进行训练,提高识别率,通过训练,也可以形成 ...

  9. Java中识别二维码并且提高二维码的识别率

    我们在Java开发的时候,发现对二维码的识别是不足的.所以我们需要提高识别率. 第一步.识别图片二维码.准备相应的jar包.我们在gradle+idea中开发. compile group: 'com ...

最新文章

  1. 如何快速融入团队并成为团队核心?(九)
  2. SIFT特征提取分析 sift算子
  3. 小白的算法初识课堂(part4)--快速排序
  4. ios点击大头针气泡不弹出_iOS高德地图之自定义大头针and泡泡view
  5. Python3中的yield from语法
  6. JavaScript(四)——具体对象(Math、字符串对象、Date对象、Number对象及Boolean对象)
  7. 趋势程序大赛第 六七 天
  8. PMP试题 | 每日一练,快速提分 7.5
  9. 基于区块链的融合通信初探(一)
  10. 浅析显卡市场的未来走向:现在可以抄底了吗?
  11. 小米路由器安装mysql_小米路由器安装和设置方法(图文教程)
  12. PPT无法插入页码解决办法
  13. UG8.5 正式版安装方法
  14. 九宫锁屏图案有多少种c语言编程,手机九宫格图案解锁问题,编程高手戳进来!...
  15. eclipse 配置字符集 字体大小 护眼
  16. 内置CRC于文本文件中的方法
  17. [C#]JCoder.Mock4Net,可用于模拟数据的c#类库
  18. 西安理工大学-计算机学院-863电子信息-各年份真题
  19. 「视频直播技术详解」系列之三:编码和封装
  20. bkt项目 (一)设计

热门文章

  1. 使用ZRender类库画直线、圆弧、曲线以及点在线上的运动
  2. 时差法超声波测流系统
  3. 国内智能手机数据有盟指数
  4. 联网游戏怎样修改服务器,Kaillera—-游戏联网服务器搭建
  5. Android评分栏示例
  6. 内网远程桌面控制软件推荐
  7. 提高中小企业ERP快速实施的八大准则
  8. c语言十进制转二进制两种方法
  9. 夜晚的风,教会了我如何写散文诗
  10. 最新、最全、最详细的 MySQL 数据库学习笔记总结(2021最新版)