增值税发票内容的识别技术在当今社会识别越来越普遍,我们今天就来看看这项技术是怎么实现的?欢迎光临

解决思路:1.发票矫正   2.文字检测   3.文字识别  4.版面分析

这是一张增值税发票

定位发票边框的四个点

透视变换之后,做文字检测

文字识别,版面分析

结果:

{   

    "发票代码": "3200153160",    

     "发票代码": "00352801",    

    "日期": "2014年04月21日",    

    "金额": "19417.48",    

     "税额": "582.52",   

     "税价合计": "20000.00",   

      "校验码": "",

}

原图地址:http://n1.itc.cn/img8/wb/recom/2016/04/27/146175098939471750.JPEG

下面我们用Python3来做一下:

调用地址:https://ocrapi-invoice.taobao.com/ocrservice/invoice
请求方式:POST
返回类型:JSON

请求参数(body):

{//图像数据:base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,和url参数只能同时存在一个"img": "",//图像url地址:图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,和img参数只能同时存在一个"url": ""
}

请求代码Python3版:

import urllib.request
import urllib.parse
import json
import time
import base64
with open('1.jpg', 'rb') as f:  # 以二进制读取本地图片data = f.read()encodestr = str(base64.b64encode(data),'utf-8')
#请求头
headers = {'Authorization': 'APPCODE 你自己的AppCode','Content-Type': 'application/json; charset=UTF-8'}
def posturl(url,data={}):try:params=json.dumps(dict).encode(encoding='UTF8')req = urllib.request.Request(url, params, headers)r = urllib.request.urlopen(req)html =r.read()r.close();return html.decode("utf8")except urllib.error.HTTPError as e:print(e.code)print(e.read().decode("utf8"))time.sleep(1)
if __name__=="__main__":url_request="https://ocrapi-invoice.taobao.com/ocrservice/invoice"dict = {'img': encodestr}html = posturl(url_request, data=dict)print(html)

正常返回示例:

{"发票代码": "032001500XXX","发票号码": "25272XXX","开票日期": "2017年XX月XX日","校验码": "15922733756000XXXXXX","发票金额": "XXX.00","发票税额": "XXX.43","不含税金额": "XXX.57","受票方名称": "XXX","受票方税号": "XXXX","受票方地址、电话": "XXX","受票方开户行、账号": "XXX","销售方名称": "XXX","销售方税号": "913201043023368XXX","销售方地址、电话": "XXX","销售方开户行、账号": "XXX"
}

失败返回示例:

{"error_code": 400,"error_msg": "img和url参数不能同时存在"
}

错误代码定义:

错误码 错误信息 描述
400 参数错误 具体错误请参考返回的error_msg
401 您无该功能的权限,请开通后使用 您无该功能的权限,请开通后使用
403 购买的容量已用完或者签名错误 购买的容量已用完或者签名错误
500 服务器错误,请稍后重试 服务器错误,请稍后重试

当然也可以不用写代码,比如阿里云自己开发,调用API接口实现,文字识别,大大减轻工作量,开箱即用,非常简单。

示例:

增值税发票内容的识别相关推荐

  1. 利用OCR解决增值税发票内容文本识别

    增值税发票文本识别 对于增值税发票文本识别这个问题,许多大公司都有现成的API可以调用,比如百度.京东等等. 但是我们并不知道里面的方法,况且调用是要Money的,那么怎么实现一个属于自己的模型呢? ...

  2. 给满分为其点赞的增值税发票OCR扫描识别系统

    财务管理是企业管理中至关重要的组成部分,每个企业的生存与发展都需要良好完善的财务管理.作为企业进销存活动的重要凭证,发票尤为重要.随着企业活动的增加,企业内部充斥着大量发票,这些发票纸张轻薄,采用专门 ...

  3. 关于增值税发票内容识别

    请教各位大神 增值税发票有没有稽核内容的软件或方式 如图像识别技术,扫描转换文字等技术,或税务局是否有稽核机器 如有请帮忙告知 万般感谢!

  4. python获取网页文本框内容_python识别html主要文本框

    在抓取网页的时候只想抓取主要的文本框,例如 csdn 中的主要文本框为下图红色框: 抓取的思想是,利用 bs4 查找所有的 div,用正则筛选出每个 div 里面的中文,找到中文字数最多的 div 就 ...

  5. html邮件内容能识别么,【外贸技巧】HTML邮件之扫盲篇

    按照邮件的撰写形式大体可以分为两类:纯文字邮件&HTML邮件. 平常我们所采用的大部分是纯文字邮件,顶多在里面插入一个图片之类:而HTML邮件则是使用HTML语言编辑或者撰写的邮件,说的通俗一 ...

  6. ubuntu18.04 (rk3399pro) U盘内容不能识别

    问题: Ubuntu18.04 插入存储设备后,会自动识别,但是挂载目录下内容识别不了 vaild 解决方案:手动挂载 lsblk # 显示设备信息 sudo mkdir temp_usb # 新建临 ...

  7. 人工智能学习梳理和总结

    人工智能学习梳理和总结 今天笔者专门做一期发文的目录,算是对之前的学习的回顾.梳理和总结吧! 入门篇 人工智能学习心得 人工智能入门书籍推荐 深度学习框架的比较(1) 深度学习的框架比较(2) 深度学 ...

  8. 成长了,记录一下,增值税发票识别写入excel文件里

    在写博客方面,我有一点点成长了,现在能够把话讲得更简洁了,而且能够让别人复用我代码的难度降低了,这得记录一下,哈哈哈哈 之前写过一篇增值税发票ocr的博客,是我写的这些文章里获赞最多的,哈哈哈,虽然也 ...

  9. IDEA无法识别pom.xml文件,内容全部显示为灰色,或者无颜色

    具体表现为:新建maven工程后,pom.xml文件内容显示为灰色,具体内容无法识别.如下: 原因分析: idea无法识别xml文件. 解决步骤: 1.选择File->Settings: 2.选 ...

最新文章

  1. vue前端用服务器上路径的图片展示_5分钟教你用nodeJS手写一个mock数据服务器
  2. 相见恨晚的 Python 内置库:itertools
  3. #20071-[NOIP2020模拟赛B组Day6]礼物购买【二分】
  4. (转)基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用...
  5. China’s movie heroes 《红海行动》展现中国英雄本色
  6. LeetCode - Two Sum
  7. 无缝对接数据、制图成果无损转换——MapGIS 10.5 Pro制图成果转换工具
  8. 《相关性准则——大数据时代的高效能之道》一一1.6 相关性准则
  9. Python的excel工作簿写入与读取操作
  10. 让耳机有个思想准备 趣谈煲耳机方法
  11. 【互动媒体技术】有关十二个“一”的文艺创作-拓展
  12. 总结:Grafana
  13. homeassistant添加米家空调伴侣
  14. 【saltstack】配置salt-master端REDIS_RETURN
  15. Kotlin扩展方法进化之Context Receiver
  16. miui 9 android pay,小米9多功能NFC再升级,Mi Pay线上支付上线
  17. 热图(Heat Map)的绘制
  18. java中创建对象的一般格式是什么_Java零基础快速入门|对象的创建和使用(下)...
  19. 小米mix3 android os是什么,小米MIX 3
  20. 想听一首歌好难?程序员教你一键下载

热门文章

  1. JS替换字符串中的指定字符
  2. 计算机组成原理移位运算实验报告,计算机组成原理移位运算实验报告
  3. 【ArcGIS】ArcGIS Pro和ArcMap的简单对比
  4. 风机效率计算的python代码
  5. 性能监视器- Performance Monitor
  6. c程序语言捉迷藏,捉迷藏幼儿园小班语言教案
  7. 【图像重建】基于matlab BP神经网络双基地SAR成像图像重建【含Matlab源码 1950期】
  8. Pythonxy'import sitecustomize'错误的解决办法
  9. 顺序栈计算器 中缀转后缀表达式
  10. cocos2dx基础篇(20) 扩展动作CCGridAction