百度AI攻略:iOCR财会票据识别

【使用攻略】+【iOCR财会票据】

1.功能描述:

对各类财务票据、报销单、银行回单、对账单进行自动分类及结构化识别,并支持用户为新票据/单据创建结构化模板和调整分类器。具体包括:
票据、单据识别:结构化识别增值税发票、行程单、出租车票、火车票、定额发票等报销类票据,关键字段准确率达99%,银行回单、对账单,字段准确率达95%
报销单识别:针对黏贴在一张纸上的多张票据自动查找边缘,切割后自动分类到对应垂类模板并依次输出结构化识别结果。
票据、单据自动分类:预置分类器可以对各类报销票据、四大行主流的银行单据进行自动分类并输出识别结果,同时用户可以自助上传新票单的训练集对分类器进行个性化定制
自定义模板文字识别:针对未预置且版式固定的票据单据,用户只需上传一张模板图片,即可自助制作模板,建立图片中文字的Key-Value对应关系,实现对相同版式图片的结构化识别

2.平台接入

具体接入方式比较简单,可以参考我的另一个帖子,这里就不重复了:
http://ai.baidu.com/forum/topic/show/943327

3.调用攻略(Python3)及评测

3.1首先认证授权:

在开始调用任何API之前需要先进行认证授权,具体的说明请参考:

http://ai.baidu.com/docs#/Auth/top

具体Python3代码如下:

# -*- coding: utf-8 -*-
#!/usr/bin/env python

import urllib
import base64
import json
#client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id =【百度云应用的AK】
client_secret =【百度云应用的SK】

#获取token
def get_token():
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret
request = urllib.request.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib.request.urlopen(request)
token_content = response.read()
#print (token_content)
if token_content:
token_info = json.loads(token_content)
token_key = token_info['access_token']
return token_key


3.2财会票据识别分析接口调用:

详细说明请参考: https://ai.baidu.com/docs#/OCR-iOCR-caikuaiban-API/top

调用地址:https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise/finance

请求参数:

返回参数:

 

Python3调用代码如下:

#财会票据
#filename:图片名(本地存储包括路径),
def finance(filename):
    request_url = "https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise/finance"
    
    # 二进制方式打开图片文件
    f = open(filename, 'rb')
    img = base64.b64encode(f.read())
    
    params = dict()
    params['image'] = img
    params['detectorId'] = 0
    params = urllib.parse.urlencode(params).encode("utf-8")
    
    access_token = get_token()
    
    begin = time.perf_counter()
    request_url = request_url + "?access_token=" + access_token
    request = urllib.request.Request(url=request_url, data=params)
    request.add_header('Content-Type', 'application/x-www-form-urlencoded')
    response = urllib.request.urlopen(request)
    content = response.read()
    end = time.perf_counter()

    print('处理时长:'+'%.2f'%(end-begin)+'秒')
    
    if content:
        #print(content)
        content=content.decode('utf-8')
        #print(content)
        data = json.loads(content)
        #print(data)  
        result=data['data']['ret']
        i=1
        print ("共有发票:"+str(len(result))+"张")
        for ret in result:
            print ("发票No."+str(i))
            print ("模板:",ret["templateSign"])
            print ("置信度:",ret["scores"])
            for detail in ret['ret']:
                print(detail['word_name'],":",detail['word'])
            print ("\n")
            i=i+1

finance('../img/finance4.jpg')

4.功能评测:
选用不同的数据对效果进行测试,具体效果如下(以下例子均来自网上):

案例1,同种多张票据

处理时长:5.96秒
共有发票:6张

发票No.1
模板: quota_invoice
置信度: 0.78680795431137
invoice_code : 151191856001
invoice_rate : 伍拾元整
invoice_number : 01317497


发票No.2
模板: quota_invoice
置信度: 0.7889256477356
invoice_code : 151191856001
invoice_rate : 伍拾元整
invoice_number : 01317496


发票No.3
模板: quota_invoice
置信度: 0.78182858228683
invoice_code : 151191856001
invoice_rate : 伍拾元整
invoice_number : 01317499


发票No.4
模板: quota_invoice
置信度: 0.79168099164963
invoice_code : 151191856001
invoice_rate : 伍拾元整
invoice_number : 01317495


发票No.5
模板: quota_invoice
置信度: 0.79618501663208
invoice_code : 151191857001
invoice_rate : 壹佰元整
invoice_number : 00868805


发票No.6
模板: quota_invoice
置信度: 0.79390239715576
invoice_code : 151191856001
invoice_rate : 伍拾元整
invoice_number : 01317498

 

案例2:不同类型票据:

处理时长:17.81秒
共有发票:5张
发票No.1
模板: taxi
置信度: 0.77734917402267
TaxiNum : 00000000
InvoiceCode : 144131770155
Time : 16:48-16:54
FuelOilSurcharge : ¥0.00
Date : 2019-03-02
Fare : ¥9.00元
InvoiceNum : 00271519
CallServiceSurcharge : ¥0.00

发票No.2
模板: taxi
置信度: 0.75509601831436
TaxiNum : 代码144131970169
InvoiceCode : 144131970169
Time :
FuelOilSurcharge : ¥0.00
Date :
Fare : ¥2.40元
InvoiceNum : 00059622
CallServiceSurcharge : ¥0.00

发票No.3
模板: train_ticket
置信度: 0.78016191720963
date : 2019年03月01日
seat_category : 新空调硬座
starting_station : 广州东站
ticket_num : G041515
train_num : K675
ticket_rates : ¥395元
name : 邓爽
destination_station : 惠州站

发票No.4
模板: taxi
置信度: 0.78751403093338
TaxiNum : A2A7X3
InvoiceCode : 144011870374
Time : 07:07-07:15
FuelOilSurcharge : ¥0.00
Date : 2019-03-01
Fare : ¥16.00元
InvoiceNum : 13896497
CallServiceSurcharge : ¥2.73

发票No.5
模板: taxi
置信度: 0.77666300535202
TaxiNum : B002494
InvoiceCode : 144011870349
Time : 19:32-19:50
FuelOilSurcharge : ¥0.00
Date : 2019-03-02
Fare : ¥31.00元
InvoiceNum : 06562694
CallServiceSurcharge : ¥0.00

测试下来,整体识别效果不错。对于财会票据有较强的识别能力,效果很好,速度也很快,准确率非常高。

4.竞品对照分析

现在也有一些其他企业提供财会票据识别功能,这里也与竞品进行了简单的对比分析。薪火科技也提供票据识别,并且支持线上测试,它对案例2的识别效果如下:

具体识别内容如下:

 识别结果
序号 内容
1单据:共(肆)张 金额:¥19元
2GD.IDANGZHOUTAREDTP
3D002449
4检票:二层2B
5发画
6厂州南站D7269坏海站 144011921qo
7661A73
82019年01月31日10:22开10车01C号
9UU
10¥70.0元 网一寺住
11限乘当日当次车
12限限
135101066983****6229邓晓
14S20140105190974023)
15票有到12306发真有到95306
16
17658483305701月1D002449广州南售
18此发票手写无效
19电话号阳958018
2017:41
21单价2.60元
22田尘11.1Rm
2339.00元
2421439
25税元车筑票
26GD:UANEAITAREIPT
27久州新联
2801085099
29州通用机打发票
30广州市作糖高速公略有限公司
31监督电话:86231800
32发发票务联
33国天有公限四
34发票代码144011871314
35914010172900203
36发票专用章
37发票号码19846221
38入口4A车型限重-.
39出口8收费员十204
40
41时间19181131092:44
42
43本发票手写及涂改无效)
44(超万元无效)
4513打
46候时
47批接号:税云税自组102015106号13118人印X288
481元行

对比可以发现百度票据识别将的更加准确,而且将不同的票据内容很准确的识别为一张票据。显然百度票据识别的功能更加准确、强大。

5.测试结论和建议
测试下来,整体识别效果不错。对于财会票据有较强的识别能力,效果很好,速度也很快,准确率非常高。同时支持票单自动分类,预置报销票据票据、银行单据分类器,针对不支持的分类仅需提供30张相同版式图片,即可自助定制分类器,节省人工分类的成本。支持报销单自动切分,针对单张纸上多张票据的情况,可以实现自动票据定位裁切,自动匹配模板进行识别并输出结构化结果。综上所述我认为该功能对于提高财会工作效率会有很大的帮助。

建议在返回内容上增加每一张票据的bounding box便于进行验证。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值