前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CV学习笔记(二十三):发票类OCR识别

CV学习笔记(二十三):发票类OCR识别

作者头像
云时之间
发布2020-06-04 10:21:20
1.5K0
发布2020-06-04 10:21:20
举报
文章被收录于专栏:云时之间云时之间

在基本完成了银行卡识别之后,开始新的任务:发票类OCR识别。发票类OCR识别一直以来也是OCR之中的热点,包括证件类识别等等,后续都要一步步来。

一:发票格式解析

现在随着无纸化办公的推行,电子发票的使用率越来越多,纸质发票的数量越来越少,一般来说,我们现在的发票分为三大类:

①:增值税电子普通发票 ②:增值税普通发票 ③:增值税专用发票

现在以我在京东购物的发票为例:

发票的尺寸为24*14cm,都是比较规范的标准。

二:发票识别分析

我们识别一张发票,我们一定是想从当中查询到那些信息,那些信息有用我们着重识别,那些信息没用我们可以暂且放在一边。在国家税务总局全国增值税查验平台上,我们来验证一张发票是否合法,着重要注意四项:

①发票代码,②:发票号码,③:开票日期,④开票金额

只要找到这四项,基本上一张发票的利用价值就结束了。

那问题来了,如何找到这四项,现在有两个思路:

第一种,识别发票二维码。第二种,直接全局识别发票内容(最全,也是最麻烦)

当然,为了保证代码的有效性,这两种我们肯定都得做。

第一种:识别发票二维码

识别左上角的二维码,二维码中包含发票里面大部分有用信息,并且识别的结果基本上无误差。我写了个小代码识别了一下:

01,10,011002000111,31015945,251.77,20200407,68212483303223031362,A6CA,

这里边的信息需要说一下:

发票二维码中一共有8个属性:

以我识别出来的为例:

其中第二项:不同的代码表示的发票类型不一样

10表示的是增值税电子发票, 04表示的增值税普通发票(纸票),01表示增值税专用发票

微信识别结果:

但是二维码识别的问题在于,如果上传的都是电子版截图,效果很不错,很好识别,但是如果上传的是拍照的纸质发票,这种识别方法需要做一些图像处理后再去识别,并且很多情况下识别二维码是无效的。这是需要改进的地方。使用pyzbar

识别的成功率在65%左右。

第二种:OpenCV+神经网络

第二种方法使用的方法和之前识别银行卡的架构很相似,但是处理起来会更麻烦,原因有几点:

①:银行卡只需要识别卡号,而发票信息需要定位更多地方

②:需要标注数据量很多,人力要求高

初步思路:

读入图片-> 边缘检测->二值化->轮廓检测->筛选结果融合->定位->数据集制作->模型训练->识别

先慢慢进行,一点点摸索吧~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文字识别
文字识别(Optical Character Recognition,OCR)基于腾讯优图实验室的深度学习技术,将图片上的文字内容,智能识别成为可编辑的文本。OCR 支持身份证、名片等卡证类和票据类的印刷体识别,也支持运单等手写体识别,支持提供定制化服务,可以有效地代替人工录入信息。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档