跳至内容

物体检测数据集概述

训练一个强大而准确的物体检测模型需要一个全面的数据集。本指南介绍了与Ultralytics YOLO 模型兼容的各种格式的数据集,并对其结构、使用方法以及如何在不同格式之间进行转换进行了深入介绍。

支持的数据集格式

Ultralytics YOLO 格式

Ultralytics YOLO 格式是一种数据集配置格式,允许您定义数据集根目录、训练/验证/测试图像目录的相对路径或 *.txt 文件(包含图像路径)和类名字典。下面是一个例子:

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8  # dataset root dir
train: images/train  # train images (relative to 'path') 4 images
val: images/val  # val images (relative to 'path') 4 images
test:  # test images (optional)

# Classes (80 COCO classes)
names:
  0: person
  1: bicycle
  2: car
  # ...
  77: teddy bear
  78: hair drier
  79: toothbrush

该格式的标签应导出为YOLO 格式,并带有一个 *.txt 文件。如果图像中没有对象,则没有 *.txt 文件是必需的。文件 *.txt 文件格式,每个对象在 class x_center y_center width height 格式。方框坐标必须使用 归一化 xywh 格式(从 0 到 1)。如果您的方框以像素为单位,则应将其除以 x_centerwidth 图像宽度,以及 y_centerheight 由图像高度决定。类号应为零索引(从 0 开始)。

标注图像示例

上述图像对应的标签文件包含 2 个人(类别 0)和平局(班级 27):

标签文件示例

使用Ultralytics YOLO 格式时,请按下例所示组织训练和验证图像及标签。

数据集目录结构示例

使用方法

下面介绍如何使用这些格式来训练模型:

示例

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640

支持的数据集

下面是支持的数据集列表和每个数据集的简要说明:

  • 阅览室:自动驾驶汽车传感器数据集。它包含汽车物体的三维跟踪注释。
  • COCO:Common Objects in Context (COCO) 是一个大规模物体检测、分割和字幕数据集,包含 80 个物体类别。
  • COCO8:COCO8 是 COCO 数据集的一个较小的子集,更加轻便,训练速度更快。
  • 全球小麦 2020:包含 2020 年全球小麦挑战赛小麦头图像的数据集。
  • 对象365:大规模物体检测数据集,包含 365 个物体类别和 600k 幅图像,旨在推动物体检测研究。
  • OpenImagesV7:谷歌提供的综合数据集,包含 170 万张训练图像和 4.2 万张验证图像。
  • SKU-110K:该数据集包含密集包装的零售产品图像,用于零售环境物体检测。
  • VisDrone:这是一个基于无人机的图像数据集,包含汽车、行人和骑自行车者等各种物体类别。
  • VOC:PASCAL VOC 是一种流行的物体检测数据集,包含车辆、动物和家具等 20 个物体类别。
  • x 查看:包含高分辨率卫星图像的数据集,用于检测俯视图中的各种物体类别。

添加自己的数据集

如果您有自己的数据集,并希望将其用于使用Ultralytics YOLO 格式训练检测模型,请确保该数据集遵循上文 "Ultralytics YOLO format "中指定的格式。将注释转换为所需格式,并在 YAML 配置文件中指定路径、类数和类名。

移植或转换标签格式

将 COCO 数据集格式转换为YOLO 格式

使用以下代码片段,您可以轻松地将标签从流行的 COCO 数据集格式转换为YOLO 格式:

示例

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir='path/to/coco/annotations/')

该转换工具可用于将 COCO 数据集或任何 COCO 格式的数据集转换为Ultralytics YOLO 格式。

切记仔细检查您要使用的数据集是否与您的模型兼容,并遵循必要的格式约定。格式正确的数据集对于训练成功的物体检测模型至关重要。



创建于 2023-11-12,更新于 2024-01-14
作者:glenn-jocher(6)

评论