视觉模型训练插件支持视觉领域常用模型的标注、训练及发布,并针对移动端场景进行了模型深度优化,您可以通过手机扫码快速体验模型效果,也可以将模型部署在移动设备上。本文介绍使用视觉模型训练插件进行图像分类的详细流程。

前提条件

  • 已完成OSS授权,详情请参见OSS授权
  • 已创建图像分类实例,详情请参见创建实例
  • 已将训练图像上传至OSS,且满足OCR识别的数据集要求和规范,详情请参见使用限制。建议使用图形化管理工具ossbrowser批量上传图片数据,详情请参见快速使用ossbrowser

背景信息

测试数据:下载图像分类的DEMO数据

使用限制

进行图像分类的数据集需要满足以下要求及规范:
  • 数据集要求
    • 图像质量:无损坏图像。系统支持JPG、JPEG及PNG格式。
    • 数据均衡:建议训练数据集每类图像均大于20张,且不同种类的数据保持均衡。
    • 数据分布:训练样本与实际场景相似。
    • 泛化能力:选择实际场景的多角度样本进行训练。
  • 数据集规范
    |-- your_image_dir /
        |-- label_1 /
            | -- a.jpg
            | -- b.png
        | -- label_2 /
            | -- c.jpg
            | -- d.png
        |-- test_1.png
        ...
    存储在OSS中的训练图片必须满足上述格式要求。其中your_image_dir表示保存图片的文件夹,该文件夹下可以存在多个子文件夹,分别存储不同类别的图片。例如,your_image_dir/label_1表示类别为label_1的图片。对于未确定类别的图片,也可以存储在your_image_dir目录下。例如,your_image_dir/test_1.png表示test_1.png 图片尚未标注。
    说明 子文件夹名称(label_1,label_2,……)仅支持英文,即标签仅支持英文。

操作流程

使用视觉模型训练插件进行图像分类的流程如下:
  1. 步骤一:创建数据集

    创建用于图像分类的训练数据集。

  2. 步骤二:标注数据

    如果有未标注的数据,可以在线标注。

  3. 步骤三:创建任务

    创建模型训练任务。

  4. 步骤四:查看训练详情

    训练过程中,您可以查看节点训练进度、节点详情信息及训练日志。

  5. 步骤五:客户端预览模型

    您可以通过手机支付宝扫描二维码。快速体验模型效果。

  6. 步骤六:服务端部署

    视觉模型训练插件与PAI-EAS高效对接,您可以一键将模型部署为RESTful服务。

步骤一:创建数据集

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

步骤二:标注数据

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

  1. 数据准备配置向导页面的数据集列表区域,单击目标数据集操作列下的标注去标注
  2. 标注页签,对每张图像进行标注(选择对应的标签),并单击提交标注图像
  3. 单击预览页签,可以查看标注结果。

步骤三:创建任务

  1. 数据准备配置向导页面,单击页面上方的训练任务配置向导。
  2. 训练任务配置向导页面,单击创建任务
  3. 创建任务面板,配置参数。
    区域 参数 描述
    基本信息 任务名称 长度为1~30个字符,以大写字母、小写字母、数字或中文开头,可以包含下划线(_)或中划线(-)。
    描述 任务的简要说明,便于区分各任务。
    数据集 选择数据集 选择已创建的数据集作为训练数据集。
    选择标签 至少选择两项分类标签。
    算法与训练 选择算法 根据实际需要选择以下算法:
    • 分类-高性能:兼顾客户端与云端推理性能,预测速度快。
    • 分类-高精度:预测速度低于高性能算法,但准确率更高。
    资源配置 选择训练任务使用的GPU数量GPU类型
    显示高级设置 单击显示高级设置,可以自定义模型训练过程中涉及的算法参数,详情请参见下面的表 1。如果没有设置高级参数,则使用默认参数。
    表 1. 高级参数
    参数 描述 默认值
    数据增强 系统支持以下数据增强方法:
    • Rotate:旋转
    • Blur:模糊
    • Noise:加噪音
    • Shear:错切
    • FlipLR:左右翻转
    • FlipUD:上下翻转
    RotateNoiseShearFlipLR
    模型宽度 系统支持0.35、0.5、0.75及1共四种模型宽度。 1
    训练Epoch 训练的Epoch数量。 10
    优化器 系统支持以下优化器:
    • Adam
    • RmsProp
    • Momentum
    Adam
    初始化学习率 训练时,初始的学习率。 0.001
    量化压缩 是否进行量化压缩。
  4. 单击开始训练

步骤四:查看训练详情

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

步骤五:客户端预览模型

  1. 训练完成后,在训练详情页面,单击右侧的体验及发布
  2. 体验及发布配置向导页面,使用支付宝扫描生成的二维码。体验模型
  3. 使用客户端识别物体,体验实时预测效果。体验模型

步骤六:服务端部署

  1. 体验及发布配置向导页面,单击前往PAI-EAS部署
  2. 配置模型参数。
    1. 模型配置面板,输入自定义模型名称,并选择资源种类,其他参数系统自动代入。
    2. 单击下一步
  3. 部署详情及配置确认面板,配置参数。
    参数 描述
    实例数 单击上箭头下箭头图标调整资源数量。
    Quota 资源种类CPU时配置。1 Quota等于1核、4 GB内存。
    单实例运行的机器资源 资源种类GPU时配置,表示GPU服务器的规格。
  4. 单击部署
    进入 PAI EAS模型在线服务页面。如果 模型状态变为 运行中,则模型部署成功。
  5. 调用模型。
    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 分类结果数组
      label STRING 分类类别
      conf NUMBER 置信度
      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":"hua","conf":0.8},
                {"label":"feihua","conf":0.2}
              ]
            }
          ],
          "meta":{
            "height":1920,
            "width":1080
          }
        }
      }                                    
    • 请求错误的返回示例。
      如果请求错误,返回结果包含以下参数:
      • errorCode:错误码。
      • errorMsg:错误描述信息。
      例如,输入参数中缺少 dataArray字段,返回结果如下。
      {
        "success":false,
        "errorCode":"1001",
        "errorMsg":"INPUT_FORMAT_ERROR"
      }