跳至内容

物体检测数据集概览

训练一个强大而准确的物体检测模型需要一个全面的数据集。本指南介绍了与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 格式时,请按照下面COCO8 数据集示例中的方法组织训练和验证图像及标签。

数据集目录结构示例

使用方法

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

示例

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

支持的数据集

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

  • Argoverse:该数据集包含来自城市环境的三维跟踪和运动预测数据,并附有丰富的注释。
  • COCO:Common Objects in Context (COCO) 是一个大型物体检测、分割和字幕数据集,包含 80 个物体类别。
  • LVIS:大规模物体检测、分割和字幕数据集,包含 1203 个物体类别。
  • COCO8:COCO train 和 COCO val 中前 4 幅图像的较小子集,适合快速测试。
  • 全球小麦 2020:包含 2020 年全球小麦挑战赛小麦头图像的数据集。
  • 对象 365:用于物体检测的高质量大规模数据集,包含 365 个物体类别和 600K 多张注释图像。
  • OpenImagesV7:谷歌提供的综合数据集,包含 170 万张训练图像和 4.2 万张验证图像。
  • SKU-110K:这是一个以零售环境中密集物体检测为特色的数据集,包含超过 11K 幅图像和 170 万个边界框。
  • VisDrone:这是一个数据集,包含来自无人机捕获图像的物体检测和多物体跟踪数据,有超过 10K 幅图像和视频序列。
  • VOC:用于物体检测和分割的 Pascal Visual Object Classes (VOC) 数据集,包含 20 个物体类别和超过 11K 幅图像。
  • xView:用于高空图像中物体检测的数据集,包含 60 个物体类别和 100 多万个注释物体。
  • Roboflow 100:一个多样化的物体检测基准,包含 100 个数据集,横跨 7 个图像领域,用于综合模型评估。
  • 脑肿瘤用于检测脑肿瘤的数据集包括核磁共振成像或 CT 扫描图像,其中包含有关肿瘤存在、位置和特征的详细信息。
  • 非洲野生动物非洲野生动物:非洲野生动物图像数据集,包括水牛、大象、犀牛和斑马。
  • 签名这是一个数据集,收录了带有签名注释的各种文件图像,支持文件验证和欺诈检测研究。

添加自己的数据集

如果您有自己的数据集,并希望将其用于使用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 格式。

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



Created 2023-11-12, Updated 2024-06-02
Authors: glenn-jocher (9), RizwanMunawar (2), IvorZhu331 (1), Laughing-q (1)

评论