1. 功能介绍
百度已经推出了iOCR财会票据识别,针对财会报销场景提出的专项解决方案,可对各类财务票据、报销单、银行回单、对账单进行自动分类及结构化识别,并支持用户为固定版式的新票据/单据自定义结构化识别模板及分类器。百度iOCR财会票据识别功能非常的强大,我在:
https://ai.baidu.com/forum/topic/show/955803
这篇文章里面已经进行了比较详细的介绍,大家有兴趣可以看一下。

iOCR财会票据识别内置了7种票据格式,如果我们要对其他的票据识别,比如机票行程单,要怎么办呢? 这就是我们今天要介绍的自定义模板功能:百度iOCR自定义模板文字识别,针对未预置且版式固定的票据单据,用户只需上传一张模板图片,即可自助制作模板,建立图片中文字的Key-Value对应关系,实现对相同版式图片的结构化识别。

我们在今天的这篇文章里会带大家自定义一个机票行程单模板,包括相关的调用步骤、代码及使用方案。

2.模板定义及平台接入
自定义模板的功能地址为: https://ai.baidu.com/iocr#/templatelist
进入界面后,如果以前没有定义过模板会提示大家建立模板,界面如图:

大家按照提示进行操作,首先上传模板图片,这里选择一张机票行程单上传。

然后是定义参考字段,注意参考字段不是识别的内容,而是程序用来定位及判断是否为模板,还是别的内容的依据。

然后是选择识别的内容,这个是要识别的数据。本例子中选择了姓名,总金额和机票号码,3个字段。

选择后可以点击“试一试”看一下模板的效果

如果满意,可以点击发布,将模板发布出去。要记录提示信息里面的模板ID,这个在下一步调用的时候要使用。

具体接入方式比较简单,可以参考我的另一个帖子,这里就不重复了:
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 pythonimport 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_secretrequest = 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#/iOCR-General-API/top

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

请求参数:

大家注意templateSign就是我们在提交定义模板的时候返回的ID。

返回参数:

Python3调用代码如下:

#财会票据
#filename:图片名(本地存储包括路径),template模板号
def recognise(filename,template):request_url = "https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise"print(filename)# 二进制方式打开图片文件f = open(filename, 'rb')img = base64.b64encode(f.read())params = dict()params['image'] = imgparams['templateSign'] = templateparams = 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)

4.功能评测:
选一张机票对效果进行测试,具体效果如下(以下例子均来自网上):

处理时长:5.03秒
返回JSON为
{'data': {'ret': [{'probability': {'average': 0.952863, 'min': 0.495304, 'variance': 0.01743}, 'location': {'height': 13, 'left': 88, 'top': 332, 'width': 127}, 'word_name': 'Number', 'word': '8472412222853'}, {'probability': {'average': 0.903623, 'min': 0.725142, 'variance': 0.012429}, 'location': {'height': 13, 'left': 821, 'top': 303, 'width': 87}, 'word_name': 'Total', 'word': 'cNY320.0'}, {'probability': {'average': 0.991988, 'min': 0.976156, 'variance': 0.000125}, 'location': {'height': 16, 'left': 26, 'top': 112, 'width': 45}, 'word_name': 'Name', 'word': '刘凯敏'}], 'templateSign': '6def20f811df8072292e39aa2ea382cb', 'templateName': 'airticket', 'scores': 1.0, 'isStructured': True, 'logId': '156862155738090', 'clockwiseAngle': 0.0}, 'error_code': 0, 'error_msg': ''}

提取内容为:
Name:刘凯敏
Total: cNY320.0
Number: 8472412222853

测试下来,整体识别效果不错。

5.测试结论和建议
经过测试发现,整体识别效果很好。对于自定义票据有很强的识别能力。该功能大大的扩展了iOCR的识别范围,对业务中的各种票据都可以进行识别。对各类发票、收据、银行对账单、承兑汇票等常用财务票据进行模板制作,实现自动分类和结构化识别及财税场景的自动化,可以有效降低企业人力成本,控制业务风险。

还有一个建议就是希望能在录入模板的时候,提供智能选择功能,一键把所有识别出来的内容都选出来,然后让用户在这个基础上进行调整,加快模板的开发速度。

百度AI攻略:iOCR自定义模板功能相关推荐

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

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

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

    [使用攻略]+[iOCR财会票据] 1.功能描述: 对各类财务票据.报销单.银行回单.对账单进行自动分类及结构化识别,并支持用户为新票据/单据创建结构化模板和调整分类器.具体包括: 票据.单据识别:结 ...

  3. 百度AI攻略:实现人体姿态判定打分

    [使用攻略][人体关键点识别] 1.方案介绍 百度推出了人体关键点识别,检测图像中的人体并返回人体矩形框位置,精准定位21个核心关键点,包含头顶.五官.颈部.四肢主要关节部位,支持多人检测.大动作等复 ...

  4. access百度翻译 get_百度AI攻略:智能上色

    1.功能描述: 想必大家家里都有很多黑白的老照片,里面有着满满的回忆.百度智能识别黑白图像内容并填充色彩,使黑白图像变得鲜活,让老照片重新焕发活力.说干就干,攻略和代码奉上. 2.平台接入 黑白图像上 ...

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

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

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

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

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

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

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

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

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

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

  10. 百度AI攻略:黑白图像上色

    1.功能描述: 想必大家家里都有很多黑白的老照片,里面有着满满的回忆.百度智能识别黑白图像内容并填充色彩,使黑白图像变得鲜活,让老照片重新焕发活力.说干就干,攻略和代码奉上. 2.平台接入 黑白图像上 ...

最新文章

  1. 『Python Web框架之Django』第几节: AJAX
  2. 传说中的“智能袖套”:把柔性手机戴在手腕上
  3. opencv读取手机摄像头
  4. Spring如何加载XSD文件
  5. TreeView 实现单选与多选!
  6. Linux用find查找指定文件的操作
  7. 在python中、正确的函数定义格式为_Python函数的定义与实现
  8. 普通RNN的缺陷—梯度消失和梯度爆炸
  9. markdown文件便捷说明
  10. ​asp家教交流平台系统设计网站作品
  11. MySQL Workbench 使用 (3):数据库备份与恢复
  12. 这20个常规Python语法你都搞明白了吗?
  13. html中的css样式表达式,CSS表达式
  14. python谐音梗_谐 音 梗 生 成 器
  15. 智能家庭本周锋闻:小米终于还是做了空气净化器
  16. 与CVTE的完美“邂逅”
  17. 立秋至,暑难消,e安在线信息安全快讯
  18. 如何在嵌入式fpga系统下关闭pcap打开icap核用以重构
  19. 西西吹雪:从程序员到项目经理(一)
  20. 生物类研究所如何提升数据安全性?

热门文章

  1. 从《征途》看互联网盈利模式的设计
  2. matlab xlswrite函数,matlab打开excel (xlsread、xlswrite)实用方法...
  3. 有源滤波器: 基于UAF42的50Hz陷波器设计
  4. win10桌面新建|解压文件夹不自动显示|需要自动刷新
  5. 限流算法:滑动时间窗口算法。
  6. python(三):时间窗口
  7. linux下查看设备的接口,linux 查看sdio接口有哪些设备?
  8. Ubuntu1804安装ROS(melodic版本)
  9. python+django+vue酒店入住客房管理系统
  10. 让“施工进度计划”真正产生价值——不是为了做计划而计划