OCR(Optical Character Recognition)识别的使用流程包括创建数据集、标注数据、创建任务、训练模型及部署模型。

前提条件

  • 完成OSS授权,详情请参见OSS授权
  • 创建实例,详情请参见创建实例
  • 上传训练图像至OSS存储。 建议使用图形化管理工具ossbrowser批量上传图片数据,详情请参见快速开始

背景信息

  • 数据集要求
    • 图像质量:无损坏图像,且图像分辨率高于30像素。系统支持JPG及JPEG格式。
    • 数据均衡:建议训练数据集每类目标大于50张,且不同种类的数据保持均衡。
    • 泛化能力:选择实际场景的多角度样本进行训练。
  • 数据集规范
    |-- your_image_dir /
        | -- a.jpg
        | -- a.xml
        | -- b.png
        | -- b.xml
        | -- c.png
        ...            
    存储在OSS中的训练图片必须满足上述格式要求。其中your_image_dir表示存储所有训练图片的文件夹。标注结果存储为XML文件,满足PASCAL(Pattern Analysis, Statistical Modelling and Computational Learning)VOC(Visual Object Classes)XML标注格式 。
    XML 标注格式的示例如下。
    <?xml version="1.0" encoding="utf-8"?>
    <annotation>
        <size>
            <width>1280</width>
            <height>720</height>
            <depth>3</depth>
        </size>
        <object>
            <name>手机号</name>
            <bndbox>
                <xmin>549</xmin>
                <xmax>715</xmax>
                <ymin>257</ymin>
                <ymax>289</ymax>
            </bndbox>
            <truncated>0</truncated>
            <difficult>0</difficult>
        </object>
        <object>
            <name>18600000000</name>
            <bndbox>
                <xmin>842</xmin>
                <xmax>1009</xmax>
                <ymin>138</ymin>
                <ymax>171</ymax>
            </bndbox>
            <truncated>0</truncated>
            <difficult>0</difficult>
        </object>
        <segmented>0</segmented>
    </annotation>            
    该示例标注了两个文本内容:手机号18600000000

测试数据:OCR Demo数据

步骤一:创建数据集

  1. 进入视觉模型训练页面。
    1. 登录PAI控制台
    2. 在PAI控制台首页,选择AutoLearning > 视觉模型训练
  2. 视觉模型训练页面,单击操作列下的打开
  3. 数据准备配置向导页面,单击新建数据集
  4. 新建数据集页面,配置参数。
    参数 描述
    数据集名称 长度为1~30个字符,以大写字母、小写字母、数字或中文开头,可以包含下划线(_)或短划线(-)。
    描述 数据集的简要说明,便于区分各数据集。
    存储类型 系统默认OSS,不支持修改。
    OSS路径 选择OSS存储训练图片的路径。
  5. 单击提交
    PAI-AutoLearning会对图像及标注信息进行索引(不会转存图像,只对数据进行索引,模型训练时才会授权访问图像),您可以在数据集列表区域,查看数据集信息。

步骤二:标注数据

如果数据集中有尚未标注的图像,可以在线标注。

  1. 数据准备配置向导页面的数据集列表区域,单击操作列下的标注
  2. 标注页面,对每张图像进行标注,并单击提交OCR标注图片
  3. 单击预览,查看标注结果。标注结果

步骤三:创建任务

  1. 数据准备配置向导页面,单击上方的训练任务
  2. 训练任务配置向导页面,单击新建任务
  3. 新建任务页面,配置参数。
    区域 参数 描述
    基本信息 任务名称 长度为1~30个字符,以大写字母、小写字母、数字或中文开头,可以包含下划线(_)或短划线(-)。
    描述 任务的简要说明,便于区分各任务。
    数据集 选择数据集 选择训练数据集。
    算法与训练 选择算法 OCR-高性能算法:兼顾客户端与云端推理性能,预测速度快。
    资源配置 选择训练任务使用的GPU数量GPU类型
  4. 单击开始训练

步骤四:查看训练详情

  1. 训练任务配置向导页面,单击操作列下的训练详情
  2. 训练详情页面,您可以进行如下操作。
    操作 描述
    查看训练进度 训练过程页签,查看训练进度及训练基本信息OCR训练详情
    终止任务 训练过程页签,单击终止任务
    查看节点训练信息
    1. 训练过程页签,单击节点图标。
    2. 节点信息页面,查看节点运行进度、基本信息步骤信息
    查看训练日志
    1. 训练过程页签,单击节点图标。
    2. 节点信息页面,单击日志页签。

步骤五:客户端预览模型

  1. 训练详情页面,单击体验及发布
  2. 体验及发布配置向导页面,使用支付宝扫描生成的二维码。ORC模型试用
    如下模型指标是在验证集上的结果。验证集是指从总训练数据中随机抽取的部分数据,默认抽取10%的数据。
    • loss:在标注真值(Groud Truth)与预测值之间,使用损失函数计算得到的损失。损失越低,表示模型效果越好。
    • model_size:通过训练、量化及编码等优化方法,获得的模型大小。
  3. 使用客户端识别物体,体验实时识别效果。OCR识别效果

步骤六:服务端部署

  1. 体验及发布配置向导页面,单击前往PAI-EAS部署
  2. 资源和模型页面,选择资源种类,并单击下一步
  3. 部署详情及配置确认页面,输入自定义模型名称
  4. 实例数Quota调整框,单击上箭头下箭头图标调整资源数量。
  5. 单击部署
    进入PAI EAS模型在线服务页面。如果模型状态变为运行中,则模型部署成功。
  6. 调用模型。
    API调用说明
    • HTTP方法:POST。
    • 请求URL:服务端部署成功后,系统会自动生成公网访问地址 。您可以通过如下方式获取访问地址Token
      1. PAI EAS模型在线服务页面,单击服务方式下的调用信息
      2. 调用信息页面的公网地址调用页签,查看访问地址Token
    • Body请求。
      {
        "dataArray":[
          {
            "name":"image",
            "type":"stream",
            "body":"base64数据"
          }
        ]
      }
      参数 是否必选 类型 说明
      name string
      type string 数据类型。系统默认stream,不支持修改。
      body string 图像数据。使用Base64编码,支持JPG、PNG及BMP等格式。
    • 返回说明。
      参数 类型 说明
      success bool 调用是否成功
      result object 返回结果
      output array OCR结果数组
      label string OCR识别结果
      conf number 置信度
      pos array 检测框的相对坐标(x,y),按照左上、右上、右下及左下的顺序存储。
      meta object 图片信息
      height number 图片高度
      width number 图片宽度
    • 错误码。
      错误码 错误信息 描述
      1001 INPUT_FORMAT_ERROR 输入格式有误。例如,缺少必要参数,请检查输入格式是否符合规范。
      1002 IMAGE_DECODE_ERROR 图片解码失败(非JPG或PNG等常见图片格式),请检查图片格式。
      2001 UNKNOWN_ERROR 服务器内部错误。
      2002 GET_INSTANCE_ERROR 实例获取失败。通常是由于资源不足,请尝试增大CPU或内存等资源配置。
      2003 MODEL_FORWARD_ERROR 服务器内部错误,模型推理失败。
    调用示例
    • 请求示例。
      curl http://****.cn-shanghai.pai-eas.aliyuncs.com/api/predict/**** -H 'Authorization:****==' -d '{"dataArray": [{"body": "****", "type": "stream", "name": "image"}]}'
      需要将示例中的URL、Token及图片Base64信息替换为实际值。
    • 返回示例。
      {
        "success":true,
        "result":{
          "output":[
            {
              "type":"cv_common",
              "body":[
                {
                  "label":"06174727742034996",
                  "conf":0.95,
                  "pos":[[468,992],[976,1012],[972,1072],[464,1052]]
                }
              ]
            }
          ],
          "meta":{
            "height":1920,
            "width":1080
          }
        }
      }
    • 请求错误的返回示例。
      如果请求错误,返回结果包含以下参数:
      • errorCode:错误码。
      • errorMsg:错误描述信息。
      例如,输入参数中缺少dataArray字段,返回结果如下。
      {
        "success":false,
        "errorCode":"1001",
        "errorMsg":"INPUT_FORMAT_ERROR"
      }