美文网首页
CV学习笔记(二十三):发票类OCR识别

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

作者: 云时之间 | 来源:发表于2020-06-02 14:40 被阅读0次

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

    一:发票格式解析

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

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

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

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

    二:发票识别分析

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

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

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

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

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

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

    第一种:识别发票二维码

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

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

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

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

    以我识别出来的为例:

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

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

    微信识别结果:

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

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

    第二种:OpenCV+神经网络

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

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

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

    初步思路:

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

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/cfpuzhtx.html