Ultralytics YOLO数据集格式指南

机器学习和计算机视觉领域,对象检测是一个重要的任务,而Ultralytics YOLO模型是这一领域的佼佼者。为了充分利用YOLO模型的强大功能,了解并掌握不同数据集格式及其转换方法至关重要。本文将详细介绍与Ultralytics YOLO模型兼容的数据集格式,包括它们的结构、使用方式,以及如何在不同格式之间进行转换。

支持的数据集格式

Ultralytics YOLO模型支持多种数据集格式,每种格式都有其特定的结构和用途。以下是一些常见的数据集格式及其简要说明:

Ultralytics YOLO格式是一种数据集设置格式,它允许定义数据集的根目录、训练/验证/测试图像目录的相对路径,或者定义数据集的根目录。这种格式的示例如下:

path: ../datasets/coco8 train: images/train val: images/val test: names: 0: person 1: bicycle 2: car # ... 79: toothbrush

在这种格式中,标签需要导出为YOLO格式的*.txt文件。如果图像中没有对象,则需要*.txt文件。在该*.txt文件中,每个对象必须以class x_center y_center width height格式指定。框坐标必须使用正则化xywh格式(从0到1)指定。如果框的单位是像素,则如下划分:x_center和width相对于图像的宽度,y_center和height相对于图像的高度。类别编号必须从零开始索引。

介绍了如何使用这些格式训练模型。例如,使用Python CLI进行训练的示例代码如下:

from ultralytics import YOLO model = YOLO("yolo11n.pt") results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

上述代码展示了如何从预训练的*.pt模型开始训练。

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

  • Argoverse:包含城市环境的3D跟踪和运动预测数据,具有丰富的注释。
  • 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提供的全面数据集,包含1.7M个训练图像和42k个验证图像。
  • SKU-110K:一个以零售环境中的高密度对象检测为特色的数据集,包含1万1000多张图像和170万个边界框。
  • VisDrone:包含从无人机拍摄的10K多个图像和视频序列中的对象检测和多对象跟踪数据的数据集。
  • VOC:Pascal Visual Object Classes (VOC)数据集,包含20个对象类别和11K多个图像,用于对象检测和分割。
  • xView:一个用于俯瞰图像中的对象检测的数据集,包含60个对象类别和100多万个注释对象。
  • Roboflow 100:一个由100个数据集组成的多样化对象检测基准,涵盖7个图像领域,用于进行全面的模型评估。
  • Brain Tumor:一个用于检测脑肿瘤的数据集,包含有关肿瘤有无、位置、特征的详细信息,包括MRI或CT扫描图像。
  • African-wildlife:一个收集了非洲野生动物图像的数据集,包括水牛、大象、长颈鹿、斑马等。
  • Signatures:一个在各种文档图像上标注签名的数据集,支持文档验证和欺诈检测研究。

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

如果数据集是COCO数据集格式,可以使用以下Python代码片段轻松将其转换为YOLO格式:

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

使用此转换工具,可以将COCO数据集或COCO格式的数据集转换为Ultralytics YOLO格式。

Q: Ultralytics YOLO数据集的格式和结构是什么?

A:Ultralytics YOLO格式是一种结构化的设置,用于在训练项目中定义数据集。它设置了训练图像、验证图像、测试图像的路径和相应的标签。例如:

path: ../datasets/coco8 train: images/train val: images/val test: names: 0: person 1: bicycle 2: car # ...

每个图像都有一个对应的*.txt文件,显示class x_center y_center width height的正则化坐标。有关详细指南,请参见COCO8数据集示例。

Q: 如何将COCO数据集转换为YOLO格式?

A: 使用Ultralytics转换工具,可以将COCO数据集转换为YOLO格式。简单的方法如下:

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

这段代码将COCO注释转换为YOLO格式,并允许与Ultralytics YOLO模型无缝集成。有关详细信息,请参见“标签格式迁移或转换”部分。

Q:Ultralytics YOLO支持哪些数据集进行对象检测?

A: Ultralytics YOLO支持广泛的数据集,包括Argoverse、COCO、LVIS、COCO8、Global Wheat 2020、Objects365、OpenImagesV7等。每个数据集页面都提供了针对高效YOLO11训练的结构和使用说明。在“支持的数据集”部分查看完整列表。

Q: 如何使用数据集开始训练YOLO11模型?

A: 要开始训练YOLO11模型,请确保数据集格式正确,并在YAML文件中定义了路径。使用以下脚本来开始训练:

from ultralytics import YOLO model = YOLO("yolo11n.pt") results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

有关CLI命令包含的每种模式的详细信息,请参阅“使用方式”部分。

Q: 在哪里可以找到使用Ultralytics YOLO进行对象检测的实用示例?

A: Ultralytics提供了许多示例和实用指南,用于在各种应用中使用YOLO11。有关全面概述,请访问Ultralytics博客,可以在那里找到案例研究、详细教程和社区故事,展示使用YOLO11进行对象检测、分割等。有关特定示例,请查看文档中的“使用方式”部分。

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