增值税发票内容的识别

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

解决思路: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接口实现,文字识别,大大减轻工作量,开箱即用,非常简单。

示例:


  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值