# SuperPage交互-OCR识别
SuperPage中提供了OCR识别交互,利用互联网上的OCR服务(使用OCR服务需要系统配置好外部服务信息,在系统设置>更多>外部服务>文字识别中启用相应服务并添加对应参数,可参考文档文字识别)识别证件图片中的文字信息。如点击按钮上传身份证照片后获取身份证号码和姓名:
# 使用OCR识别身份证
OCR识别交互执行过程中会依次执行如下流程:
- 获取用户的证件图片,通过附件组件或者直接上传,具体见支持的文件类型。
- 压缩并上传图片给互联网OCR服务。
- 获取互联网OCR服务返回的信息并设置给指定的参数,此时用户可以根据识别信息进行数据库查询以便校验识别结果的合法性,根据用户设置的校验公式进行校验,校验失败会提示用户并不再执行下面的步骤,具体见对返回的信息做数据校验。
- 设置识别结果和数据库查询结果给参数、输入组件、或者给指定数据集增加一行数据,可参考将识别返回信息设置给参数或组件。
- 完成识别。
如下是使用上传身份证按钮识别身份证信息的具体步骤:
- 添加上传身份证正面照按钮:在组件区>常用分组下将按钮组件拖入到画布中,可参考文档按钮。
- 添加OCR识别交互:选中按钮,在属性栏>交互下点击添加动作,选择OCR识别。
- 设置交互属性:
- 设置识别的文件类型为上传图片、设置识别设备为阿里云证照识别,场景为身份证。
- 将返回信息设置给参数或组件:勾选将返回内容设置给参数,并点击组件设置添加目标组件和值。
# 支持的文件类型
OCR识别的来源文件包括上传图片、附件组件,在OCR识别交互下的文件属性中选择对应的文件类型即可:
- 可以设置图片质量,即图片压缩后的大小质量,输入大于0的数字即可。当为0.1时,压缩比最大。
- 通过附件组件上传的图片,可以进行预览;通过按钮点击上传的图片直接进行信息识别。
TIP
上传的图片会保存在工作目录workdir的\clusters-share\upload-files
路径下
# 支持的证照识别类型
OCR识别提供了2种证照识别设备,包括阿里云证照识别、百度证照识别。在OCR识别交互下的设备属性中选择即可,证照识别设备不同可识别的证照场景也不同:
- 阿里云证照识别:身份证、银行卡、二维码
- 百度证照识别:身份证、驾驶证、行驶证、银行卡、二维码、营业执照
TIP
不同的证照场景返回内容的辅助输入结果不一致,可参考将识别返回信息设置给参数或组件
# 将识别返回信息设置给参数或组件
通过OCR识别返回的信息,可以设置给全局参数或者页面中的组件,组件设置的值类型可选表达式或辅助输入结果:
- 表达式:当选择表达式时,可以通过输入表达式函数获取交互结果的值,如使用PARSE_JSON()函数获取交互数据中的姓名
PARSE_JSON([事件].[交互数据],'姓名')
- 辅助输入结果:即通过OCR识别返回的结果,辅助输入结果返回的值与识别的证照场景相关:
- 身份证:姓名、性别、民族、出生、住址、公民身份号码
- 驾驶证:姓名、性别、住址、证号、国籍、准驾车型、初次领证日期、出生日期、有效期限、至
- 行驶证:号牌号码、车辆类型、所有人、住址、使用性质、品牌型号、车辆识别代码、发动机号码、注册日期、发证日期
- 银行卡:银行卡卡号、有效日期、银行名称、银行卡类型
- 二维码:类型、文本
- 营业执照:社会信用代码、经营范围、单位名称、证件编号、注册资本、法人、地址
# 对返回的信息做数据校验
OCR交互支持对返回的信息做数据校验。在数据校验开始前和校验后两个阶段,都可以将返回的信息填充到参数或组件,而校验通过的数据才可填充到组件或插入到数据集中,校验设置如下:
- 校验表达式:在校验表达式中可输入校验公式,如校验识别的证件ID(公民身份号码)不为空且数据集中不存在该条数据,表达式示例
len(filter(select([OCR识别信息].[证件ID]),[sfz_baidu_id]=@))=0 AND [sfz_baidu_id] is not NULL
- 校验成功提示设置:勾选校验成功提示并输入提示信息内容即可,如
上传成功!
- 校验失败提示设置:校验表达式返回是
false
,则校验失败。勾选校验失败提示并输入提示信息内容即可,如身份信息已存在,或公民身份号码未获取到,请上传有效的证件图片!
TIP
校验后将结果填充到组件中的设置,在如下两种场景下生效:
- 没有添加校验表达式:表示不需要对识别结果进行校验,直接将返回信息填充到组件中。
- 设置了校验表达式:当返回结果校验通过时,会把识别返回的信息填充到组件中显示,只能传递到参数或输入组件中,若返回结果校验失败,则不会将识别结果填充到组件中显示。
# 将校验前的结果设置给参数
当有返回结果时,会将返回信息传递给设置的参数或组件。在OCR识别交互下,勾选将返回内容设置给参数,并在组件设置中选择填充到的目标参数和组件:
# 将校验后的结果填充到组件
在校验表达式中设置了校验规则,只有在校验通过后才会将返回信息传递给设置的参数或组件。在OCR识别交互下,勾选结果填充到组件属性,并在组件设置中选择填充到的目标参数和组件:
# 将识别返回信息写入到数据库中
可将OCR识别的结果信息存储到数据集中,在OCR识别交互下勾选结果插入到数据集属性,并选择需要插入的数据模型及字段设置即可,可对返回信息添加校验,将校验通过的结果插入到数据集中,参考对返回的信息做数据校验。
- 数据:即需要插入的数据集模型,需要在页面中引用该模型。
- 字段设置:将返回信息插入的目标字段设置,插入的数据模型结构需包含要插入的字段内容。
- 覆盖模式:当插入的数据主键重复时,数据的覆盖模式包含2种:合并、追加,默认为合并。