Ultralytics YOLO数据集格式指南

在进行对象检测模型的训练之前,需要准备一个全面的数据集。本文将介绍与Ultralytics YOLO模型兼容的数据集格式,并提供对其结构、使用方式以及不同格式间转换的深入理解。

Ultralytics YOLO格式是一种数据集表示方法,它包含了数据集根目录、训练/验证/测试图像目录的相对路径或图像路径列表,以及类别名称字典。例如,一个典型的YOLO格式配置如下所示:

path: ../datasets/coco8 # 数据集根目录 train: images/train # 训练图像(相对于'path') val: images/val # 验证图像(相对于'path') test: # 可选的测试图像 # 类别(80个COCO类别) names: 0: person 1: bicycle 2: car ... 77: teddy bear 78: hair drier 79: toothbrush

在这种格式中,每个图像对应一个标签文件,如果图像中没有对象,则不需要任何标签文件。每个标签文件应按照每行一个对象的格式进行格式化,格式如下:

class x_center y_center width height

这里的框坐标应该是归一化的xywh格式(从0到1)。如果框坐标是以像素为单位的,则x_center和width应除以图像宽度,y_center和height应除以图像高度。类别编号应从0开始索引。

例如,对于包含2个人的图像(类别0)和1辆汽车(类别27),对应的标签文件如下:

0 0.34 0.44 0.22 0.33 0 0.5 0.56 0.24 0.45 27 0.6 0.7 0.28 0.37

使用Ultralytics YOLO格式时,需要按照COCO8数据集示例中所示的方式组织训练和验证图像及其标签。

以下是如何使用这些格式来训练模型的示例:

from ultralytics import YOLO # 加载模型 model = YOLO("yolo11n.pt") # 训练模型 results = model.train(data="coco8.yaml", epochs=100, imgsz=640) # 从预训练的*.pt模型开始训练 yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

以下是支持的数据集列表及其简要说明:

  • Argoverse:包含3B跟踪和运动预测数据的城市环境数据集,具有丰富的注释。
  • COCO:Common Objects in Context (COCO),是一个大规模的对象检测、分割和字幕数据集,包含80个对象类别。
  • LVIS:一个大规模的对象检测、分割和字幕数据集,包含1203个对象类别。
  • COCO8:COCO训练和COCO验证的前4个图像的更小子集,适合快速测试。
  • COCO128:COCO训练和COCO验证的前128个图像的更小子集,适合测试。
  • Global Wheat 2020:包含小麦头部图像的数据集,用于Global Wheat Challenge 2020。
  • Objects365:一个高质量的大规模数据集,包含365个对象类别和600K以上的标注图像,用于对象检测。
  • OpenImagesV7:由Google提供的全面数据集,包含170万训练图像和4.2万验证图像。
  • SKU-110K:包含超过11K图像和170万边界框的数据集,具有零售环境中密集的对象检测功能。
  • VisDrone:包含超过10K图像和视频序列的数据集,包含无人机捕获的图像中的对象检测和多对象跟踪数据。
  • VOC:Pascal Visual Object Classes (VOC)数据集,包含20个对象类别和超过11K图像,用于对象检测和分割。
  • xView:包含60个对象类别和超过100万个标注对象的图像的数据集,用于头顶图像中的对象检测。
  • Roboflow 100:包含100个数据集的广泛对象检测标准,涵盖七个图像领域,用于全面模型评估。
  • Brain Tumor:包含MRI或CT扫描图像的数据集,用于检测脑肿瘤,包括肿瘤存在、位置和特征的详细信息。
  • African Wildlife:包含非洲野生动物图像的数据集,包括水牛、长颈鹿、狮子和斑马等。
  • Signature:包含各种文档的图像的数据集,支持文档验证和欺诈检测研究,包含标注的签名。

如果有自己的数据集,并希望使用它来训练Ultralytics YOLO格式的检测模型,请确保它符合上述“Ultralytics YOLO格式”下指定的格式。将注释转换为所需的格式,并在YAML配置文件中指定路径、类别数量和类别名称。

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

from ultralytics.data.converter import convert_coco convert_coco(labels_dir="path/to/coco/annotations/")

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

请务必再次检查要使用的数据集是否与模型兼容,并遵守所需的格式规则。正确格式化的数据集对于成功训练对象检测模型至关重要。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485