更新时间:2024-12-03 GMT+08:00
分享

其他类数据集格式要求

除文本、图片、视频、气象、预测类数据集外,用户训练模型时如果使用较特殊的数据集,ModelArts Studio大模型开发平台支持导入用户自定义的数据集。

例如,在训练CV类算法(如图片分类、图片分割、图片检测等任务)时,用户需使用“其他”类型的数据集。

其他类数据集可直接执行发布操作,但暂不支持数据加工、标注、评估等操作。

具体格式要求详见表1

表1 其他类数据集格式要求

文件内容

文件格式

文件要求

图片+CV标注

图片+分割标注(图片+xml格式)

  • 要求用户将标注对象和标注文件存储在同一目录,并且一一对应,如标注对象文件名为“IMG_2.jpg”,那么标注文件的文件名应为“IMG_2.xml”。具体示例如下:
    ├─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
  • 数据集最大100万个文件,单文件最大10GB,整个数据集最大10TB。xml标注文件的详细说明请参见图像分割数据集标注文件说明

图片+分类标注(图片+txt格式)

  • 要求用户将标注对象和标注文件存储在同一目录,并且一一对应,标注文件txt中可以放单标签,也可以放多标签。具体示例如下:
    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
  • 数据集最大100万个文件,单文件最大10GB,整个数据集最大10TB。详细标注说明请参见图像分类数据集标注文件说明

图片+二分类标注(图片+txt格式)

  • 要求用户将标注对象和标注文件存储在同一目录,并且一一对应,标注文件txt中可以放单标签,也可以放多标签。具体示例如下:
    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
  • 数据集最大100万个文件,单文件最大10GB,整个数据集最大10TB。详细标注说明请参见图像分类数据集标注文件说明

图片+检测标注(图片+xml格式)

  • 要求用户将标注对象和标注文件存储在同一目录,并且一一对应,如标注对象文件名为“IMG_2.jpg”,那么标注文件的文件名应为“IMG_2.xml”。具体示例如下:
    ├─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
  • 数据集最大100万个文件,单文件最大10GB,整个数据集最大10TB。xml标注文件的详细说明请参见物体检测数据集标注文件说明

图片+语义分割标注

  • 训练数据为纯图片,要求为png格式。
  • 数据集最大100万个文件,单文件最大10GB,整个数据集最大10TB。

图片+骨骼关键点坐标标注(图片+json)

  • 基于开源COCO人物关键点标注格式对数据集进行标注,需包含annotations,train,val文件夹,annotations文件夹下用train.json和val.json记录训练集和验证集标注,train和val文件夹下保存具体的图片。具体示例如下:
    ├─annotations
    │      train.json 
    │      val.json
    ├─train
    │      IMG_20180919_114745.jpg 
    ├─val
    │      IMG_20180919_114945.jpg 
  • 数据集最大100万个文件,单文件最大10GB,整个数据集最大10TB。json标注文件的详细说明请参见骨骼关键点坐标标注json文件说明

视频+CV标注

视频+分类标注

  • 数据源样本格式为.mp4格式,标注格式为.txt。每种类别的视频数需要大于50个,类别数量需要大于2,才能进行模型训练。数据集最大100万个文件,单文件最大10GB,整个数据集最大10TB。
  • 用文本标签对视频文件进行标识,文本和视频放在同一目录下且同名。具体示例如下:
    dataset-import-example 
    ├─import-dir-1
    │      10.mp4
    │      10.txt    
    │      11.mp4 
    │      11.txt
    │      12.mp4 
    │      12.txt
    └─import-dir-2
            1.mp4 
            1.txt
            2.mp4 
            2.txt
  • 标签文件示例,如1.txt文件内容如下所示:
    Running

视频+事件起止时间与类别标注

  • 数据源样本为.avi或.mp4格式,标注格式为.json。必须包含两个及以上后缀名字为avi或mp4的文件。
  • 每个视频时长要大于128s,FPS>=10,且测试集训练集都要有视频。数据集最大100万个文件,单文件最大10GB,整个数据集最大10TB。
  • 支持视频的格式包括常见的mp4和或avi格式文件,每个视频时长要大于128s,FPS>=10,用annotation.json对文件进行标注。具体示例如下:
    ├─file
    │      1.mp4
    │      2.avi 
    │      annotation.json
  • 具体的json标注文件参考如下:
    {
        'version': 'dataset_name_v.x.x',// 数据集版本信息。
        'classes': [category1',category2', ...],// 所有类别名称的列表,每个类别对应一个 label,用于标注视频中的事件或动作。
        'database': {
            'video_name':{
                // 训练集 train 测试集 test。
                'subset': 'train',
                'duration': 1660.3, // 视频总时长 seconds。
                'fps': 30.0,// 视频帧率。
                'width': 720,// 视频宽度,单位像素。
                'height': 1280,// 视频高度,单位像素。
                'ext': 'mp4',//视频文件扩展名。
                // 标注 34.5, 42.4 分别表示起始时间和结束时间,单位为s。
                // label 表示分类,必须是classes列表中的一个元素,表示该视频片段对应的事件或动作类型。
                'annotations': [
                    {'label': 'category1', 'segment': [34.5, 42.4]},
                    {'label': 'category1', 'segment': [124.4, 142.9]},
                    ...
                ]
            },
            'video_name':{
                'subset': xxx,//视频文件名称,不包括扩展名。
                'duration': xxx,
                'fps': xxx,
                'width': xxx,
                'height': xxx,
                'ext': xxx,
                'annotations': [
                    {'label': xxx, 'segment': xxx},
                    {'label': xxx, 'segment': xxx},
                    ...
                ]
            },
            ...
        }
    }

图像分割数据集标注文件说明

图像分割的数据支持格式为ModelArts image segmentation 1.0。

要求用户将标注对象和标注文件存储在同一目录,并且一一对应。如标注对象文件名为“IMG_20180919_114746.jpg”,那么标注文件的文件名应为“IMG_20180919_114746.xml”。

图像分割的标注文件基于PASCAL VOC格式增加了字段mask_source和mask_color,格式详细说明请参见表2

具体示例如下:

├─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

标注文件的内容示例如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<annotation>
    <folder>NA</folder>
    <filename>image_0006.jpg</filename>
    <source>
        <database>Unknown</database>
    </source>
    <size>
        <width>230</width>
        <height>300</height>
        <depth>3</depth>
    </size>
    <segmented>1</segmented>
    <mask_source>obs://xianao/out/dataset-8153-Jmf5ylLjRmSacj9KevS/annotation/V001/segmentationClassRaw/image_0006.png</mask_source>
    <object>
        <name>bike</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <mask_color>193,243,53</mask_color>
        <occluded>0</occluded>
        <polygon>
            <x1>71</x1>
            <y1>48</y1>
            <x2>75</x2>
            <y2>73</y2>
            <x3>49</x3>
            <y3>69</y3>
            <x4>68</x4>
            <y4>92</y4>
            <x5>90</x5>
            <y5>101</y5>
            <x6>45</x6>
            <y6>110</y6>
            <x7>71</x7>
            <y7>48</y7>
        </polygon>
    </object>
</annotation>
表2 PASCAL VOC格式说明

字段

是否必选

说明

folder

表示数据源所在目录。

filename

被标注文件的文件名。

size

表示图像的像素信息。

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

图像的通道数是指图像中每个像素的颜色信息的维度。常用的RGB图像默认有3个通道。3通道表示彩色图像,每个像素有三个值表示红、绿、蓝三个色彩通道的亮度。常用的还有1通道,表示灰度图像,每个像素只有一个值表示亮度或灰度级别。4通道表示带有透明度的彩色图像,每个像素有四个值表示红、绿、蓝三个色彩通道的亮度以及透明度。

segmented

表示是否用于分割。“是”取值为1,“否”取值为0。

mask_source

表示图像分割保存的mask路径。

object

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

  • name:必选字段,标注内容的类别。
  • pose:必选字段,标注内容的拍摄角度。
  • truncated:必选字段,标注内容是否被截断(0表示完整)。
  • occluded:必选字段,标注内容是否被遮挡(0表示未遮挡)。
  • difficult:必选字段,标注目标是否难以识别(0表示容易识别)。
  • confidence:可选字段,标注目标的置信度,取值范围0-1之间。
  • bndbox:必选字段,标注框的类型,可选值请参见表3
  • mask_color:必选字段,标签的颜色,以RGB值表示。
表3 标注框类型描述

type

形状

标注信息

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>

<x7>100<x7>

<y7>100<y7>

图像分类数据集标注文件说明

图像分类数据集支持格式为ModelArts image classification 1.0。

要求用户将标注对象和标注文件存储在同一目录,并且一一对应,标注文件txt中可以放单标签,也可以放多标签。

  • 当目录下存在对应的txt文件时,以txt文件内容作为图像的标签。

    示例如下所示,import-dir-1和import-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文件内容如下所示:

    Cat

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

    Cat
    Dog

物体检测数据集标注文件说明

物体检测数据集支持格式为ModelArts PASCAL VOC 1.0。

要求用户将标注对象和标注文件存储在同一目录,并且一一对应,如标注对象文件名为“IMG_20180919_114745.jpg”,那么标注文件的文件名应为“IMG_20180919_114745.xml”。

物体检测的标注文件需要满足PASCAL VOC格式,PASCAL_VOC是一个公开的图像标注数据集,它提供了一个统一的XML格式来存储标注信息。PASCAL_VOC文件格式包含图像目录、图像文件、图像尺寸、图像中目标信息等元素,详细格式说明请参见表4

OBS文件上传示例:

├─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

标注文件(.xml文件)示例:

<?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>
        <bndbox>
            <xmin>279</xmin>
            <ymin>52</ymin>
            <xmax>474</xmax>
            <ymax>278</ymax>
        </bndbox>
    </object>
    <object>
        <name>Cat</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <occluded>0</occluded>
        <bndbox>
            <xmin>279</xmin>
            <ymin>198</ymin>
            <xmax>456</xmax>
            <ymax>421</ymax>
        </bndbox>
    </object>
</annotation>
表4 PASCAL VOC格式说明

字段

是否必选

说明

folder

表示图像所在的目录名称。

filename

被标注文件的文件名。

size

表示图像的像素信息。

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

segmented

表示是否用于分割,取值为0或1。0表示没有分割标注,1表示有分割标注。

object

目标对象信息,包括被标注物体的类别、姿态、是否被截断、是否识别困难以及边界框信息,多个物体标注会有多个object体。

  • name:必选字段,标注内容的类别。
  • pose:必选字段,标注内容的拍摄角度。
  • truncated:必选字段,取值0或1,表示标注内容是否被截断(0表示被截断、1表示没有截断)。
  • occluded:必选字段,取值0或1,表示标注内容是否被遮挡(0表示未遮挡、1表示遮挡)。
  • difficult:必选字段,取值0或1,表示标注目标是否难以识别(0表示容易识别、1表示难易识别)。
  • confidence:可选字段,标注目标的置信度,取值范围0-1之间,越接近1,表示标注越可信。
  • bndbox:必选字段,标注框的类型,可选值请参见表5
表5 标注框类型描述

type

形状

标注信息

point

点的坐标。

<x>100<x>

<y>100<y>

line

线

各点坐标。

<x1>100<x1>

<y1>100<y1>

<x2>200<x2>

<y2>200<y2>

bndbox

矩形框

左上和右下两个点坐标。

<xmin>100<xmin>

<ymin>100<ymin>

<xmax>200<xmax>

<ymax>200<ymax>

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>

circle

圆形

圆心坐标和半径。

<cx>100<cx>

<cy>100<cy>

<r>50<r>

骨骼关键点坐标标注json文件说明

骨骼关键点坐标标注基于开源coco人物关键点标注格式对数据集进行标注,需包含annotations,train,val文件夹。annotations文件夹下用train.json和val.json记录训练集和验证集标注,train和val文件夹下保存具体的图片,示例如下所示:

├─annotations
│      train.json 
│      val.json
├─train
│      IMG_20180919_114745.jpg 
├─val
│      IMG_20180919_114945.jpg 

具体的json标注文件具体示例:

{
    "images": [
        {
            "license": 2,
            "file_name": "000000000139.jpg",
            "coco_url": "",
            "height": 426,
            "width": 640,
            "date_captured": "2013-11-21 01:34:01",
            "flickr_url": "",
            "id": 139
        }
    ],
    "annotations": [
        {
            "num_keypoints": 15,
            "area": 2913.1104,
            "iscrowd": 0,
            "keypoints": [
                427,
                170,
                1,
                429,
                169,
                2,
                0,
                0,
                0,
                434,
                168,
                2,
                0,
                0,
                0,
                441,
                177,
                2,
                446,
                177,
                2,
                437,
                200,
                2,
                430,
                206,
                2,
                430,
                220,
                2,
                420,
                215,
                2,
                445,
                226,
                2,
                452,
                223,
                2,
                447,
                260,
                2,
                454,
                257,
                2,
                455,
                290,
                2,
                459,
                286,
                2
            ],
            "image_id": 139,
            "bbox": [
                412.8,
                157.61,
                53.05,
                138.01
            ],
            "category_id": 1,
            "id": 230831
        },
    ],
    "categories": [
        {
            "supercategory": "person",
            "id": 1,
            "name": "person",
            "keypoints": [
                "nose",
                "left_eye",
                "right_eye",
                "left_ear",
                "right_ear",
                "left_shoulder",
                "right_shoulder",
                "left_elbow",
                "right_elbow",
                "left_wrist",
                "right_wrist",
                "left_hip",
                "right_hip",
                "left_knee",
                "right_knee",
                "left_ankle",
                "right_ankle"
            ],
            "skeleton": [
                [
                    16,
                    14
                ],
                [
                    14,
                    12
                ],
                [
                    17,
                    15
                ],
                [
                    15,
                    13
                ],
                [
                    12,
                    13
                ],
                [
                    6,
                    12
                ],
                [
                    7,
                    13
                ],
                [
                    6,
                    7
                ],
                [
                    6,
                    8
                ],
                [
                    7,
                    9
                ],
                [
                    8,
                    10
                ],
                [
                    9,
                    11
                ],
                [
                    2,
                    3
                ],
                [
                    1,
                    2
                ],
                [
                    1,
                    3
                ],
                [
                    2,
                    4
                ],
                [
                    3,
                    5
                ],
                [
                    4,
                    6
                ],
                [
                    5,
                    7
                ]
            ]
        }
    ]
}
表6 COCO格式说明

字段

是否必选

说明

images

图片信息。

license

图像的许可证标识符。

file_name

图像的文件名。

coco_url

图像在COCO官方数据集中的URL。

height

图像的高度,以像素为单位。

width

图像的宽度,以像素为单位。

date_captured

图像捕获的日期和时间。

flickr_url

图像在Flickr网站上的URL。

id

图像的唯一标识符。

annotations

标注信息。

num_keypoints

标注的关键点数量。

area

边界框的面积,以像素平方为单位。

iscrowd

表示标注是否为复杂的群体场景(如拥挤的人群)。0表示不是拥挤场景,1表示是拥挤场景。

keypoints

标注的关键点坐标及其可见性,按顺序列出所有关键点,每个关键点用三个数值表示 [x, y, v]。x和y是关键点的像素坐标,v是可见性(0:不可见且不在图像中;1:不可见但在图像中;2:可见且在图像中)。

image_id

与该标注相关联的图像的ID,必须与images字段中的id对应。

bbox

目标物体的边界框,用[x, y, width, height]表示,其中,x,y是边界框左上角的坐标,width和height是边界框的宽度和高度。

category_id

标注类别的ID,对于人体姿态估计,通常为1(表示person)。

id

标注的唯一标识符。

categories

标注类型信息。

supercategory

类别的上级分类,通常为person。

id

类别的唯一标识符,对于人体姿态估计,通常为1。

name

类别的名称,通常为person。

keypoints

关键点的名称列表,COCO格式中通常定义了17个关键点,如nose、left_eye、right_eye、left_ear、right_ear、left_shoulder、right_shoulder、left_elbow、right_elbow、left_wrist、right_wrist、left_hip、right_hip、left_knee、right_knee、left_ankle、right_ankle。

skeleton

定义骨架连接的列表,用于表示关键点之间的连接关系。每个连接用一对关键点索引表示,如 [1, 2],表示鼻子(nose)到左眼(left_eye)的连线。

相关文档