IOCR自定义模板文字识别
更新时间: 2022-05-09 浏览次数: {{ hits }}

iOCR自定义模板文字识别是一款针对固定版式卡证票据提供的 OCR 定制化产品,可自助创建识别模板分类器,实现对任意版式卡证票据进行自动分类并结构化输出识别结果。以健康证为例,介绍如何配置IOCR。


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[?(@.word_name == '年龄')].word

    • 编号:$.data.ret[?(@.word_name == '编号')].word

    • 发证机构:$.data.ret[?(@.word_name == '发证机构')].word

    • 有效期限:$.data.ret[?(@.word_name == '有效期限')].word

    • 识别错误:$.error_msg

注:如需使用分类器,将templateSign替换为classifierId即可

如何配置Json Path

iOCR服务无论模板和识别字段如何,返回数据结构一致(可通过api文档的返回示例数据得知),返回参数设置为识别字段,配置JsonPath

  • JsonPath的格式为:$.data.ret[?(@.word_name == '识别字段名称')].word,替换识别字段名称即可。

  • 识别字段包含表格列时,请查看另一个例子


调试

因为请求参数url指的是图片url,没法获取图片url进行调试。可以将API文档中的返回示例复制到Json Path在线解析进行调试,或者在百度模板管理平台中“试一试”获取图片识别返回的Json,根据Json编辑JsonPath。

注:了解更多JsonPath用法


5、表单配置

在表单添加按钮控件,扩展配置选择刚配置的连接,配置表单与连接请求返回的数据关联规则。