跳到主要内容

数据集格式

这个功能解决什么问题

创建数据集需要上传一个 ZIP 压缩包,但 ZIP 内部怎么组织目录、标注文件怎么写,平台有一套明确的要求。本页说明 VortLab 支持的四种数据集格式及其目录结构,帮助你提前准备合规的 ZIP 包,避免上传后校验失败。

支持的格式

四种格式
  • YOLO 格式(推荐):平台原生支持,识别最准确。
  • COCO 格式:常见于公开数据集,导入时自动转换为 YOLO。
  • VOC 格式:基于 XML 的标注格式,导入时自动转换为 YOLO。
  • 纯图片:只有图片没有标注,作为无标签数据导入。

上传后系统会自动识别 ZIP 内的格式,无需手动声明。识别完成后,COCO 和 VOC 会在后台自动转换成 YOLO 格式存储。

格式对比

字段类型必填默认值说明
YOLO格式可选推荐使用包含 classes.txt、train/images、train/labels 等目录;平台原生支持,识别最准确,无需转换。
COCO格式可选包含 images 目录和含 images / annotations / categories 字段的 JSON 标注文件;导入时自动转换为 YOLO 格式。
VOC格式可选包含 JPEGImages 目录和 Annotations/*.xml 标注文件;导入时自动转换为 YOLO 格式。
纯图片格式可选仅图片无标注;作为无标签图片导入,后续可在标注工作台补充标注。

YOLO 格式目录结构(推荐)

YOLO 格式结构(推荐)

推荐使用以下目录结构组织 ZIP 包。train / val / test 三个子集可以只提供其中一两个,但每个子集内部的 images/labels/ 目录需要成对出现。

dataset.zip
├── classes.txt # 每行一个类别名,行号即类别 ID(从 0 开始)
├── dataset.yaml # 可选,平台会以 classes.txt 为准
├── train/
│ ├── images/ # 图片文件(jpg / jpeg / png / bmp / webp)
│ └── labels/ # 标注文件(txt)
├── val/
│ ├── images/
│ └── labels/
└── test/
├── images/
└── labels/
YOLO 格式 ZIP 结构示例
图1:YOLO 格式 ZIP 的典型目录树

classes.txt 要求

classes.txt 要求
  • 文件名固定为 classes.txt,放在 ZIP 根目录。
  • 每行一个类别名,行号即类别 ID(第一行为 0,第二行为 1,以此类推)。
  • 缺失 classes.txt 不会报错,系统会自动生成一个默认类别(默认类别名为 object),但这样无法正确还原你标签里的类别含义。
  • 建议始终提供 classes.txt,确保类别名和类别 ID 的对应关系正确。

classes.txt 示例:

person
car
bicycle
traffic_light

上面这份文件表示:类别 0 = person,类别 1 = car,类别 2 = bicycle,类别 3 = traffic_light。标签文件里写的 class_id 必须与这里的行号一一对应。

支持的图片扩展名

支持的图片扩展名

数据集导入时识别的图片扩展名为:jpg、jpeg、png、bmp、webp

其他扩展名(如 tif、tiff、gif)在数据集导入流程中不会被识别。如果你的原始数据是其他格式,请先转换成上述五种之一再打包。

标注文件格式说明

YOLO 格式的标注文件是纯文本(.txt),每个图片对应一个同名 .txt 文件,放在对应的 labels/ 目录下。不同任务类型的标注行格式不同,不能混用。

不同任务类型的标注格式不同
  • 检测(detect):每行 class_id x_center y_center width height,所有坐标都是归一化到 0 到 1 之间的相对值。
  • 实例分割(segment):每行 class_id x1 y1 x2 y2 ... xn yn,归一化的多边形顶点坐标,每个实例至少 3 个点(6 个数值)。
  • 旋转框(obb):每行 class_id 后跟 8 个坐标值(4 个角点的归一化坐标)。
  • 姿态(pose):边界框后跟关键点坐标。
  • 同一个数据集里不能混用不同任务类型的标注格式,否则训练或校验会失败。

检测标签示例(一行代表一个目标):

0 0.512 0.433 0.224 0.178
1 0.207 0.612 0.095 0.141

实例分割标签示例(一行代表一个多边形):

0 0.10 0.20 0.30 0.20 0.35 0.80 0.05 0.75

COCO 和 VOC 自动转换

COCO 和 VOC 自动转换
  • 如果你已有 COCO 或 VOC 格式的数据,不需要手动转换,直接按原格式打包上传即可。
  • 系统会在导入时自动识别并转换为 YOLO 格式存储。
  • 转换过程中页面会显示转换进度,转换完成后类别名、图片数、标注数都会重新统计。
  • 转换是单向的:导入后数据集内部统一以 YOLO 格式存储,原始 COCO / VOC 文件不再保留。

纯图片数据

如果你的 ZIP 包里只有图片、没有任何标注文件,系统会把它识别为纯图片数据:

  • 所有图片会被收集到 train/images/ 下。
  • 系统会生成一个默认类别(默认类别名为 object)。
  • 这类数据适合后续用标注工作台补充标注,再发布版本用于训练。

常见问题

校验提示「无法识别格式」

最常见的原因是目录层级不对:图片和标签必须分别放在 images/labels/ 子目录下,而不是直接堆在 ZIP 根目录或 train/ 下。请对照上面的 YOLO 目录结构示例调整。

类别 ID 和 classes.txt 对不上

标签文件里的 class_id 必须严格对应 classes.txt 的行号(从 0 开始)。如果标签里出现了 class_id = 5classes.txt 只有 3 行,校验会报错。请在打包前确认两者一致。

能否同时上传多个子集

可以。train/val/test/ 三个子集可以同时存在于同一个 ZIP 里,也可以只提供 train/。如果只上传了训练集又想划分验证集,可以在创建数据集时勾选「启用自动分割」让平台自动划分。