OneNET应用开发环境 由浅入深应用开发环境
应用开发环境介绍 初识应用开发环境 开发入门 开发进阶
开发指南
开发应用 定义数据对象 创建聚合对象 开发脚本 管理事件 开发流 配置审批流程 开发标准页面 开发高级页面 开发商业流 配置连接器 开发Email发送功能 配置工作流 开发报表 自定义BO 管理平台

对接OCR实现图片上文字识别功能

通过应用开发环境与OCR(Optical Character Recognition)对接,实现图片或扫描件中文字识别功能。

背景信息

OCR(Optical Character Recognition),即文字识别,就是将图片或扫描件中的文字识别成可编辑的文本。可代替人工录入,提升业务效率。

场景描述

识别某用户上传到OBS上的身份证图片的全部信息。

前提条件

  1. 已申请服务,此场景需要申请身份证识别服务。

    1. 登录云,单击右上角的“控制台”,进入“管理控制台”界面。
    2. 单击页面最上方的“服务列表”,选择“EI企业智能 > 文字识别”,进入“文字识别”界面。
    3. 选择要使用的服务,例如“身份证识别”,单击“申请服务”,进行服务使用申请。
    4. 完成“申请服务”之后,即完成该服务的开通操作。
  2. 已获取AK(Access Key ID)、SK(Secret Access Key)。

    1. 登录云,单击右上角的“控制台”,进入“管理控制台”界面。
    2. 鼠标移动至用户名处,在下拉列表中单击“我的凭证”,进入“我的凭证”页面。
    3. 选择“管理访问密钥”页签,单击“新增访问秘钥”按钮。
    4. 输入当前用户的登录密码。通过邮箱或者手机进行验证,输入对应的验证码。
    5. 单击“确定”,下载认证账号的AK、SK,请妥善保管AK、SK信息。
  3. 已将身份证照片上传到云的OBS存储桶上,并获取到图片的URL。

配置Connector操作步骤

  1. 在APP开发界面左侧列表单击,选择“连接 > 连接器”。

  2. 在Connectors配置界面中单击“OCR”图标,打开Connector列表。

  3. 单击“新建”。
  4. 在页面中输入与OCR对接的参数,单击“保存”。

    图 1 新建Connector

    表 1 新建Connector页面参数说明

    参数

    说明

    名称

    Connector的名称。

    示例:OCR_Test

    区域

    OCR服务的区域。

    访问密钥

    访问密钥ID。与私有访问密钥关联的唯一标识符,访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。

    请与前提条件中的“AK”取值保持一致。

    密钥

    私有访问密钥。与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。

    请与前提条件中的“SK”取值保持一致。

  5. (可选)创建Connector后,您可进行简单的测试,测试是否能可识别身份证照片。

    1. 在该Connector详情页面单击“Test”。
    2. “选择类型”中可配置为“图片URL”或者“图片文件”,输入图片URL或者选择身份证图片,单击“测试”。

      图 2 配置身份证

      若弹出“成功”弹框,成功识别出身份证信息,表示测试成功。

      图 3 测试成功

脚本中调用Connector

您可以在脚本中调用Connector实现与OCR的对接,这里以新建一个脚本实现身份证识别为例进行举例说明。

  1. 鼠标放在APP下的Logic文件夹旁会出现加号,单击加号,选择“脚本”。
  2. 选择“创建一个新脚本”,输入基本信息,单击“保存”。
  3. 编辑代码如下:

    //导入该脚本所依赖的标准库文件。ocr是系统预置的标准库。
    import * as ocr from 'ocr';
    
    let cli = ocr.newClient("OCR_Test");
    try {
        let url = "https://obs-b330.obs.cn-north-1.myhuaweicloud.com:443/1.PNG?AccessKeyId=ZK87UUIONJF5ZHWBINUO&Expires=1556001233&Signature=DOwO6djb4Q3EBvCieQFaO3T2GKU%3D&x-obs-security-token=gQpjbi1ub3J0aC0xipYOeC2mcbefHh5I_aMr6DEWQ8-iFyxqatavdiFtYowH-lpJCcxeTynsV_4PTJe9QIx85mlDIDo3sU9PUv3hFtRjQORjGE2PqA4hEtozvMuWxXb5b6RKiFT37-z7NoI4R85XmlTmZGQ6OUZ92bercG5DWEBTDVd3I_UYuNGzF20q6S2COP__Z-uqkhhw8nATd3k6GaIfCqxjcOih_juHBBoM1ON74vpKxCl1sJxnEYbZfkf6FO_xuGaJD7-J7OzD8tsSmFf4jR1TqZFZzrPEc9bkd2bPr8pwOCdDp8Yy0EVauKDvtIXsvzFollOR0rUvZol1sIsQU0gVpFpZyIqYqG6C_qQfXmr5DQwXTsQyifKjXLSj2MbPs6FKLYqu7mj0NhxUVcK5EQh5Vl5x5VHvYGRwgWJL078oXVBKGnQnr05EDHcCiW-6Gris2mHBYdcNmuhJ1UwNekeumBc0S6_33yK-U8OGYLMpR6HnLooyFmtmnOBIIQIkzWfWUNM7nIdWWcPmozJcBZ8iyawE0Cxgz5Xf56hPi-YZda0d1Xu387GA8PBkEPVct1yo5nh2bmVfRH6z0zWzhN-vbFcIHsfYv776DDLKQdSH0Sn-8bHdvPLPd2QieBkgS6wfvTcKMeBA6PwwNBl0Xqds6vQPpSZe6cYyplNuJoY05VLd8tLZMy_bR8Dmf1kArQaSquBzw2eDCfJAazjA4wTnkbccr38k7eM%3D"
        let resp = cli.idCardWithURL(url, "front");
        console.log(resp);
    } catch (e) {
        console.log("error: ", e)
    }
    

    其中ocr.newClient("OCR_Test")中“OCR_Test”为Connector的名称。url取值是图片的URL, "front"表示识别的是身份证正面。

  1. 单击代码编辑页面上方图标,保存脚本。
  2. 运行测试脚本。

    1. 单击编辑器上方执行图标。
    2. 在页面底部单击测试窗口右上角图标。
    3. 检查输出是否识别出身份证上文字信息。

      识别出表示成功调用Connector。

  1. 单击代码编辑页面上方图标,激活脚本。

Flow中调用Connector

您可以在业务Flow中调用Connector实现与OCR的对接,这里以新建一个Flow实现身份证识别为例进行举例说明。

  1. 鼠标放在APP下的Logic文件夹旁会出现加号,单击加号,选择“流”。
  2. 系统弹出“添加流程”的对话框,选择“创建一个新的流”,填入Flow名称等信息,单击“添加”。
  3. 在Flow编辑器页面左侧选择“连接器 > AI > OCR”,拖拽“ OCR”图标至画布中。

    “ OCR”是系统预置的与 OCR对接的接口。

  4. 在“基本信息”页面进行配置。

    参数说明如下。

    • 标签:该图元的展示名。
    • 名称:该图元的唯一标识,不能和其他图元相同。
    • 连接器:该Flow使用的Connector的名称。选择刚刚创建的“OCR_Test”。

  5. 设置动作参数。

    参数

    说明

    动作

    系统提供了两个动作。

    • id_card_with_url:根据图片的URL路径识别身份证。目前仅支持云上OBS提供的临时授权或者匿名公开授权访问的URL。
    • id_card_with_image:根据base64编码后的图像数据识别身份证。要求base64编码后大小不超过10M。图像各边的像素大小在15到8000之间。支持JPG/PNG/BMP/TIFF格式。

    输入参数

    输入参数。

    • 当动作为“id_card_with_url”时,输入参数说明如下:
      • “目标”取值为“url”时:请在“源”里配置图片的URL路径,目前仅支持云上OBS提供的临时授权或者匿名公开授权访问的URL
      • “目标”取值为“side”时:请在“源”里配置身份证正面还是反面,“源”配置为“front”,表示为身份证正面,“源”配置为“back”,表示为身份证背面。
    • 当动作为“id_card_with_image”时,输入参数说明如下:
      • “目标”取值为“image”时:请在“源”里配置图像数据,base64编码,要求base64编码后大小不超过10M。图像各边的像素大小在15到8000之间。支持JPG/PNG/BMP/TIFF格式。
      • “目标”取值为“side”时:请在“源”里配置身份证正面还是反面,“源”配置为“front”,表示为身份证正面,“源”配置为“back”,表示为身份证背面。

    单击“新增行”可进行添加。

    输出参数

    输出参数。

    • “源”从下拉框选择为“result”,“目标”用于调用成功时的调用结果。必须定义一个如下表的结构变量来进行接收。
    • “源”从下拉框选择为“error”,“目标”用于调用失败时的错误码

    表 2 result结构体成员变量说明

    名称

    类型

    说明

    name

    String

    姓名。

    sex

    String

    性别。

    birth

    String

    出生日期。

    ethnicity

    String

    民族。

    address

    String

    地址。

    number

    String

    身份证号。

    issue

    String

    发证机关。

    valid_from

    String

    有效起始日期。

    valid_to

    String

    有效结束日期。

  6. 连接开始和OCR图元。

  7. 单击,保存Flow。
  8. 单击,运行Flow。

    若输出身份证识别信息,表示成功调用Connector。

results matching ""

    No results matching ""