疫情期间,为了照顾不会使用电子产品的老年人,社区准备了纸质登记表,为了便捷且无误地将信息录入系统,将登记表设置为文字识别模板,拍照上传即可录入纸质登记表信息。
1、实现效果
填写表单,上传或拍摄来访人员登记表,点击按钮,连接成功后,将返回数据填充至指定表单字段。
2、配置账户
注册百度AI开放平台账户,在百度AI开放平台进入“文字识别”服务,创建应用(接口选择勾选iOCR通用版),获取应用的API Key和Secret Key,前往氚云配置账户。
注:IOCR按量收费,价格约为0.05-0.02元/次,请自行查看计费规则,开通付费后,默认使用按量后付费形式进行阶梯计费。
3、自定义识别模板
前往iOCR通用版模板管理平台,创建自定义模板,上传健康证图片。
框选参照字段:用于对后续传入的图片进行模板匹配和矫正
框选识别区:图片中需要进行识别的字段,通过框选及命名构建 「字段名称 : 识别区内容」 的 Key : Value 对应关系,用于对后续传入的相同版式图片的相同位置内容进行结构化识别
通过右上角“试一试”,上传图片测试,数据无误点击“立即发布”
返回模板列表,获取模板ID
4、配置连接
根据iOCR自定义模板文字识别的API文档,配置连接
请求
账户:配置好的百度AI开放平台账户
请求:
请求URL:https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise
请求方式:POST
Header:无
Body:
templateSign:配置上一步创建的模板ID
url:识别图片的链接,在此无需配置,之后在表单配置,将图片控件填充至此参数即可
返回:根据识别字段设置返回参数
日期:$.data.ret[?(@.word_name == '日期')].word
负责人:$.data.ret[?(@.word_name == '负责人')].word
来访时间:$.data.ret[2,6,10,14,18,22,26].word
姓名:$.data.ret[3,7,11,15,19,23,27].word
电话:$.data.ret[4,8,12,16,20,24,28].word
体温:$.data.ret[5,9,13,17,21,25,29].word
识别错误:$.error_msg
注:如需使用分类器,将templateSign替换为classifierId即可
如何配置Json Path
iOCR服务无论模板和识别字段如何,返回数据结构一致(可通过api文档的返回示例数据得知),返回参数设置为识别字段,配置JsonPath
JsonPath的格式为:$.data.ret[?(@.word_name == '识别字段名称')].word,替换识别字段名称即可。
识别字段为表格列字段时,Json Path的格式为:$.data.ret[2,6,10,14,18,22,26].word,[]中的数字为识别字段值的位置,模板中第一个识别字段值的位置为0,从第一个识别字段值开始计数,所有“来访时间”列字段的值位置为2、6、10、14、18、22、26。因为表格列字段的word_name是变化的,因此才用列字段值的位置来获取值word。
调试
因为请求参数url指的是图片url,没法获取图片url进行调试。可以将API文档中的返回示例复制到Json Path在线解析进行调试,或者在百度模板管理平台中“试一试”获取图片识别返回的Json,根据Json编辑JsonPath。
注:了解更多JsonPath用法
5、表单配置
在表单添加按钮控件,扩展配置选择刚配置的连接,配置表单与连接请求返回的数据关联规则,因为“来访时间”、“姓名”等返回参数拥有多个值,建议填充至子表字段。
文章反馈
*请选择您遇到的问题类型?
*请描述问题详情
支持上传9张图片且单张大小不超过3M
此文档是否有帮助?
请选择您遇到的问题类型?
您还有其他建议吗
{{ inputErrorTexts[inputErrorTypes[0]] }}
没有解决问题?请联系在线客服