【使用攻略】+【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'] = imgparams['detectorId'] = 0params = urllib.parse.urlencode(params).encode("utf-8")access_token = get_token()begin = time.perf_counter()request_url = request_url + "?access_token=" + access_tokenrequest = 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=1print ("共有发票:"+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+1finance('../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便于进行验证。

百度AI攻略:iOCR财会票据识别相关推荐

  1. 百度AI攻略:驾驶行为识别

    1.功能描述: 针对车载场景,识别驾驶员使用手机.抽烟.不系安全带.双手离开方向盘等动作姿态,分析预警危险驾驶行为,提升行车安全性 2.平台接入 具体接入方式比较简单,可以参考我的另一个帖子,这里就不 ...

  2. 百度AI攻略:人体关键点识别

    第四期[百度大脑新品体验]人体关键点识别 1.功能描述: 检测图像中的人体并返回人体矩形框位置,精准定位21个核心关键点,包含头顶.五官.颈部.四肢主要关节部位,支持多人检测.大动作等复杂场景 2.平 ...

  3. 百度AI攻略:车辆属性识别

    1.功能描述: 检测图像中的各类车辆,并针对小汽车识别11种外观属性,包括:是否有车窗雨眉.是否有车顶架.副驾驶是否有人等,可用于交通安防场景的特定车辆检测追踪. 2.平台接入 车辆属性识别接入网址: ...

  4. 百度AI攻略:识别火车票的多种方法

    1. 简介 百度OCR提供多种场景下精准的图像文字识别技术服务,让您的应用看图识字,提升输入效率,优化用户体验.现在百度OCR的全系列39款产品,开放使用!希望大家能一起来测试,使用.本篇评测介绍了通 ...

  5. 百度AI攻略:手写文字识别

    1.功能描述: 支持对图片中的手写中文.手写数字进行检测和识别,针对不规则的手写字体进行专项优化,识别准确率可达90%以上 2.平台接入 具体接入方式比较简单,可以参考我的另一个帖子,这里就不重复了: ...

  6. 百度AI攻略:行驶证识别

    1.功能描述: 对机动车行驶证主页及副页所有21个字段进行结构化识别,包括号牌号码.车辆类型.所有人.品牌型号.车辆识别代码.发动机号码.核定载人数.质量.检验记录等.可应用于网约车或货车司机身份审查 ...

  7. 百度AI攻略:银行卡识别

    1.功能描述: 支持对主流银行卡的卡号.有效期.发卡行.卡片类型4个关键字段进行结构化识别,识别准确率超过99% 2.平台接入 具体接入方式比较简单,可以参考我的另一个帖子,这里就不重复了: http ...

  8. 百度AI攻略:植物识别

    1.功能描述: 该请求用于识别一张图片,即对于输入的一张图片(可正常解码,且长宽比较合适),输出植物识别结果.近期植物识别进行了能力升级--模型升级,Top1准确率绝对值提升11.76%,精度保持业界 ...

  9. 百度AI攻略:红酒识别

    1.功能描述: 现在随着大家生活水准的不断提高,红酒消费也越来越多.不过大家现在对红酒还都不是十分的了解,正好现在红酒识别升级,识别结果增加更丰富的信息,包括:红酒的国家.产区.酒庄.类型.糖分.色泽 ...

最新文章

  1. 微软已经宣布自2009年4月14日起放弃对windows xp的主流支持
  2. 第一百一十四节,JavaScript文档对象,DOM进阶
  3. 会签 数据库表设计_关于数据库表设计和实体类设计的思考
  4. python图片转字符_二十行python代码实现图片转字符
  5. parceljs 中文文档24小时诞生记
  6. 智能优化算法:花授粉算法-附代码
  7. Arm云游戏及虚拟化技术沙龙,Arm中国,NVIDIA,腾讯及百度等为你分享超强技术干货
  8. Python语言实现用于动物分类的产生式系统
  9. Dominating Patterns(Aho_corasick入门)
  10. 解决SQLServer复制到Excel中内容换行问题
  11. 小饭馆促销活动流程,小饭馆网络营销方案
  12. linux 用谷歌浏览器总是崩溃,谷歌浏览器显示喔唷崩溃啦(谷歌浏览器经常崩溃怎么办)...
  13. 设备管理器的蓝牙设备卸载了,找不到蓝牙
  14. 神经网络与傅立叶变换到底有没有关系?
  15. gradle版本与android的gradle插件版本兼容Unable to find method org.gradle.api.tasks.compile.CompileOptions.setB
  16. 如何自己烧制全文RSS(打造自己RSS源)
  17. java 矫正鱼眼图像_鱼眼图像校正
  18. java 时间纪元与时区介绍
  19. U盘显示打开设备和打印机--Linux系统(Ubuntu18.04)解决方案
  20. 万网虚拟主机版本php5.5,虚拟主机如何改成php5.6版本

热门文章

  1. 【AI算法推荐】智慧社区——电动车进电梯识别
  2. 租房有哪些安全注意事项
  3. VUE前端的简单设计技巧
  4. python虚拟环境配置
  5. 男人必修的十堂电影课
  6. 为什么防火墙重启docker容器连接不上网络?
  7. 战前准备03-字符输入输出
  8. 构建智能家居的神器HomeAssistant
  9. 航天宏图高级副总裁王涛:元宇宙发展关键是“融合”与“超越”
  10. 【日语】记单词的学习笔记