更新时间:2022-12-14 GMT+08:00
分享

准备数据

在使用通用图像分类工作流开发应用之前,您需要提前准备用于模型训练的数据,上传至OBS服务中。

设计图像分类标签

首先使用的数据需要考虑好分类的标签类型,即希望识别出图片中的一种结果。例如对天气现象图片进行分类时,标签可以以“snow”(雪)、“rainy”(雨)等作为分类的类别。

数据集要求

  • 文件名规范,不能有中文,不能含有空格、制表符及除中划线下划线外的特殊符号。
  • 保证图片质量:不能有损坏的图片;目前支持的格式包括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格式的图片。
  • 针对已标注数据,通用图像分类工作流仅支持一张图片识别单个标签,支持如下两种数据格式。
    • 相同标签的图片放在一个目录里,并且目录名字即为标签名。当存在多层目录时,则以最后一层目录为标签名。

      示例如下所示,其中“snow”“rainy”分别为标签名。

      dataset-import-example 
      ├─snow 
      │      10.jpg 
      │      11.jpg 
      │      12.jpg 
      │ 
      └─rainy 
              1.jpg 
              2.jpg 
              3.jpg
    • 当目录下存在对应的txt文件时,以txt文件内容作为图像的标签,优先级高于第一种格式。

      示例如下所示,“import-dir-1”“imort-dir-2”为导入子目录。

      dataset-import-example 
      ├─import-dir-1
      │      10.jpg
      │      10.txt    
      │      11.jpg 
      │      11.txt
      │      12.jpg 
      │      12.txt
      └─import-dir-2
              1.jpg 
              1.txt
              2.jpg 
              2.txt

      单标签的标签文件示例,如1.txt文件内容如下所示:

      rainy

      只支持JPG、JPEG、PNG、BMP格式的图片。单张图片大小不能超过5MB,且单次上传的图片总大小不能超过8MB。

上传数据至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工具指南》。

相关文档