更新时间:2022-04-26 GMT+08:00
分享

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

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

背景信息

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

场景描述

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

前提条件

  • 已申请身份证识别服务。
    1. 单击此处,根据页面提示,登录华为云,单击右上角的“控制台”,进入“管理控制台”界面。
    2. 单击管理控制台左上角的,选择区域和项目。
    3. 单击管理控制台左上角的,选择“EI 企业智能 > 文字识别”,进入“文字识别”界面。
    4. 选择要使用的服务,例如“身份证识别”,单击“申请服务”,进行服务使用申请。
    5. 完成“申请服务”之后,即完成该服务的开通操作。
  • 参考获取AK/SK获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对
  • 已将身份证照片上传到华为云的OBS存储桶上,并获取到图片的URL。具体操作请参考如何上传文件

新建OCR连接器

  1. 在App开发界面左侧列表单击,选择“AI > OCR”。
  2. 单击“+”,输入与OCR对接的参数,并单击“保存”。

    表1 新建连接器页面参数说明

    参数

    说明

    名称

    连接器的名称。

    名称必须以英文字母开头,且只能由英文字母,数字和单下划线(_)组成。

    示例:OCR_Test

    区域

    OCR服务的区域。

    访问密钥

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

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

    密钥

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

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

    打包当前配置

    默认为选中,对信息敏感的场景,建议不勾选。

    选中该选项后,应用打包时会将当前配置的连接器信息一并打出。例如,如果应用包发布到运行环境,当前配置默认为被同步到运行环境中。

  3. (可选)创建连接器后,可进行简单的测试,测试是否能可识别身份证照片。

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

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

      图2 测试成功

脚本中调用连接器

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

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

    //导入该脚本所依赖的标准库文件。ocr是系统预置的标准库。
    import * as ocr from 'ocr';
     
    let cli = ocr.newClient("OCR_Test");
    try {
        let url = "https://obs-XXXX.obs.cn-north-1.testXXXX.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”为连接器的名称。url取值是图片的URL"front"表示识别的是身份证正面。

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

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

      识别出表示成功调用连接器。

  6. 单击代码编辑页面上方图标,启用脚本。

Flow中调用连接器

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

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

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

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

    参数说明如下。

    • 标签:该图元的展示名。
    • 名称:该图元的唯一标识,不能和其他图元相同。
    • 连接器:该服务编排使用的连接器的名称。选择刚创建的“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. 单击保存图标,保存服务编排。
  8. 单击,运行服务编排。

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

分享:

    相关文档

    相关产品

close