更新时间:2023-01-31 GMT+08:00
分享

准备数据

在使用零售商品识别工作流开发应用之前,您需要提前准备用于模型训练的数据,上传至OBS服务中。

设计商品标签

首先需要考虑好商品标签,即希望识别出商品的一种结果。例如识别蛋糕店蛋糕的种类,则可以以“cream_cake”“fruit_cake”“cheese_cake”等分别作为一个蛋糕的种类。零售商品识别工作流可以识别出单张图片中的多个商品。

数据集要求

  • 文件名规范,不能有中文,不能有+、空格、制表符。
  • 保证图片质量:不能有损坏的图片;目前支持的格式包括JPG、JPEG、PNG、BMP。
  • 为了保证模型的预测准确度,训练样本跟真实使用场景尽量相似。
  • 为保证模型的泛化能力,数据集尽量覆盖所有标签的图片。
  • 基于已设计好的商品标签准备图片数据。每个商品标签需要准备20个数据以上,为了训练出效果较好的模型,建议每个商品标签准备200个以上的数据。
  • 针对未标注数据,要求将图片放在一个目录里,示例如下所示。
    ├─dataset-import-example 
    │      IMG_20180919_114732.jpg 
    │      IMG_20180919_114745.jpg 
    │      IMG_20180919_114945.jpg 
    • 如果导入位置为OBS,用户需具备此OBS路径的读取权限。
    • 只支持JPG、JPEG、PNG、BMP格式的图片。
  • 针对已标注数据,要求用户将标注对象和标注文件存储在同一目录,并且一一对应,如标注对象文件名为“IMG_20180919_114745.jpg”,那么标注文件的文件名应为“IMG_20180919_114745.xml”

    物体检测的标注文件需要满足PASCAL VOC格式,格式详细说明请参见表1

    零售商品工作流标注时需要勾勒出商品形状,必须使用多边形标注框。如果标注框坐标超过图片,将无法识别该图片为已标注图片。

    示例:

    ├─dataset-import-example 
    │      IMG_20180919_114732.jpg 
    │      IMG_20180919_114732.xml 
    │      IMG_20180919_114745.jpg 
    │      IMG_20180919_114745.xml 
    │      IMG_20180919_114945.jpg 
    │      IMG_20180919_114945.xml

    标注文件的示例如下所示:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <annotation>
        <folder>NA</folder>
        <filename>bike_1_1593531469339.png</filename>
        <source>
            <database>Unknown</database>
        </source>
        <size>
            <width>554</width>
            <height>606</height>
            <depth>3</depth>
        </size>
        <segmented>0</segmented>
        <object>
            <name>Dog</name>
            <pose>Unspecified</pose>
            <truncated>0</truncated>
            <difficult>0</difficult>
            <occluded>0</occluded>
            <polygon>
                <x1>100<x1>
                <y1>100<y1>
                <x2>200<x2>
                <y2>100<y2>
                <x3>250<x3>
                <y3>150<y3>
                <x4>200<x4>
                <y4>200<y4>
                <x5>100<x5>
                <y5>200<y5>
                <x6>50<x6>
                <y6>150<y6>
            </polygon>
        </object>
        <object>
            <name>Cat</name>
            <pose>Unspecified</pose>
            <truncated>0</truncated>
            <difficult>0</difficult>
            <occluded>0</occluded>
            <polygon>
                <x1>100<x1>
                <y1>100<y1>
                <x2>200<x2>
                <y2>100<y2>
                <x3>250<x3>
                <y3>150<y3>
                <x4>200<x4>
                <y4>200<y4>
                <x5>100<x5>
                <y5>200<y5>
                <x6>50<x6>
                <y6>150<y6>
            </polygon>
        </object>
    </annotation>
    
    • 只支持JPG、JPEG、PNG、BMP格式的图片,单张图片大小不能超过5MB,且单次上传的图片总大小不能超过8MB。
      表1 PASCAL VOC格式说明

      字段

      是否必选

      说明

      folder

      表示数据源所在目录。

      filename

      被标注文件的文件名。

      size

      表示图像的像素信息。

      • width:必选字段,图片的宽度。
      • height:必选字段,图片的高度。
      • depth:必选字段,图片的通道数。

      segmented

      表示是否用于分割。

      object

      表示物体检测信息,多个物体标注会有多个object体。

      • name:必选字段,标注内容的类别。
      • pose:必选字段,标注内容的拍摄角度。
      • truncated:必选字段,标注内容是否被截断(0表示完整)。
      • occluded:必选字段,标注内容是否被遮挡(0表示未遮挡)
      • difficult:必选字段,标注目标是否难以识别(0表示容易识别)。
      • confidence:可选字段,标注目标的置信度,取值范围0-1之间。
      • polygon:必选字段,标注框的类型。零售商品工作流标注时需要勾勒出商品形状,必须使用多边形标注框,即标注框类型选择“polygon”,标注信息为各点坐标,如下所示。
        <x1>100<x1>
        <y1>100<y1>
        <x2>200<x2>
        <y2>100<y2>
        <x3>250<x3>
        <y3>150<y3>
        <x4>200<x4>
        <y4>200<y4>
        <x5>100<x5>
        <y5>200<y5>
        <x6>50<x6>
        <y6>150<y6>

上传数据至OBS

使用ModelArts Pro进行应用开发时,您需要将数据上传至OBS桶中。

  1. 首先需要获取访问OBS权限,在未进行委托授权之前,无法使用此功能。您需要提前获得OBS授权,详情请见配置访问权限
  2. 已创建用于存储数据的OBS桶及文件夹,且数据存储的OBS桶与ModelArts Pro在同一区域(目前仅支持华为-北京四),详情请见创建OBS桶
  3. 上传数据至OBS,OBS上传数据的详细操作请参见《对象存储服务快速入门》
    • 您在创建OBS桶时,需保证您的OBS桶与ModelArts Pro在同一个区域。
    • 建议根据业务情况及使用习惯,选择OBS使用方法。
      • 如果您的数据量较小(小于100MB)或数据文件较少(少于100个),建议您使用控制台上传数据。控制台上传无需工具下载或多余配置,在少量数据上传时,更加便捷高效。
      • 如果您的数据量较大或数据文件较多,建议选择OBS Browser+或obsutil工具上传。OBS Browser+是一个比较常用的图形化工具,支持完善的桶管理和对象管理操作。推荐使用此工具创建桶或上传对象。obsutil是一款用于访问管理OBS的命令行工具,对于熟悉命令行程序的用户,obsutil是执行批量处理、自动化任务较好的选择。
      • 如果您的业务环境需要通过API或SDK执行数据上传操作,或者您习惯于使用API和SDK,推荐选择OBS的API或SDK方法创建桶和上传对象。

      上述说明仅罗列OBS常用的使用方式和工具,更多OBS工具说明,请参见《OBS工具指南》。

相关文档