Ultralytics YOLO模型数据集指南

在进行计算机视觉任务,尤其是目标检测时,一个全面的、高质量的数据集是至关重要的。本文将介绍与Ultralytics YOLO模型兼容的数据集格式,并深入探讨它们的结构、如何使用以及不同格式之间的转换方法。

数据集格式概览

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

Ultralytics YOLO格式是一种数据集配置方式,它允许定义数据集的根目录、训练/验证/测试图像的相对路径以及类别名称的字典。例如:

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

在这种格式中,每个图像的标签需要导出为一个YOLO格式的.txt文件。如果没有物体出现在图像中,则不需要对应的.txt文件。.txt文件的路径应按照每行一个物体的格式,包含类别、中心点的x和y坐标以及宽度和高度。坐标应为归一化值(0到1之间)。如果坐标是以像素为单位,需要将x坐标除以图像宽度,将y坐标除以图像高度。类别索引应从0开始。

例如,对于包含两个人(类别0)和一顶帽子(类别27)的图像,对应的标签文件内容如下:

0 0.5 0.5 0.2 0.2 27 0.1 0.1 0.3 0.3

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

一旦数据集按照Ultralytics YOLO格式组织好,就可以使用以下Python代码来训练模型:

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

或者,如果更喜欢使用命令行界面(CLI),可以使用以下命令:

yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

这些命令将从预训练的模型开始训练,并在指定的数据集上进行迭代优化。

Ultralytics YOLO模型支持多种数据集,包括但不限于:

  • Argoverse:城市环境中的3D跟踪和运动预测数据集。
  • COCO:大规模的目标检测、分割和字幕数据集,包含80个类别。
  • LVIS:大规模的目标检测、分割和字幕数据集,包含1203个类别。
  • COCO8:COCO训练和验证集的前4张图像的子集,适合快速测试。
  • COCO128:COCO训练和验证集的前128张图像的子集,适合测试。
  • Trigo Global 2020:包含小麦头图像的2020年全球小麦挑战数据集。
  • Objects365:大规模、高质量的目标检测数据集,包含365个类别和超过60万张标注图像。
  • OpenImagesV7:Google提供的广泛数据集,包含170万张训练图像和4.2万张验证图像。
  • SKU-110K:商业环境中的密集目标检测数据集,包含超过1.1万张图像和170万个边界框。
  • VisDrone:包含由无人机拍摄的图像的目标检测和多目标跟踪数据集,包含超过1万张图像和视频序列。
  • VOC:Pascal Visual Object Classes(VOC)数据集,用于目标检测和分割,包含20个类别和超过1.1万张图像。
  • xVer:用于航空图像中目标检测的数据集,包含60个类别和超过100万个标注对象。
  • Roboflow 100:包含100个数据集的目标检测比较测试,涵盖七个图像领域,用于全面评估模型。
  • Brain Tumor:用于检测脑肿瘤的数据集,包括磁共振成像或计算机断层扫描图像,以及肿瘤的存在、位置和特征的详细信息。
  • African Wildlife:包含非洲野生动物图像的数据集,如水牛、大象、犀牛和斑马。
  • Signature:包含带有签名标注的各种文档图像的数据集,支持文档验证和欺诈检测研究。

这些数据集为使用Ultralytics YOLO模型进行目标检测提供了丰富的资源。每个数据集页面都提供了详细的结构和使用说明,以实现高效的YOLO11训练。

如果有自己的数据集并希望使用它来训练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格式。

Q: Ultralytics YOLO格式的数据集是什么样的,如何构建? 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格式? 可以使用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支持哪些数据集进行目标检测? Ultralytics YOLO支持广泛的数据集,包括Argoverse、COCO、LVIS、COCO8、Trigo Global 2020、Objects365、OpenImagesV7等。每个数据集页面都提供了详细的结构和使用说明,以实现高效的YOLO11训练。探索完整的列表,请访问“支持的数据集”部分。

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

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

或者,如果更喜欢使用命令行界面(CLI),可以使用以下命令:

yolo detect train data=path/to/your_dataset.yaml model=yolo11n.pt epochs=100 imgsz=640

更多关于使用不同模式的详细信息,包括CLI命令,请访问“使用”部分。

Q: 可以在哪里找到使用Ultralytics YOLO进行目标检测的实际示例? Ultralytics提供了许多示例和实用指南,用于在各种应用中使用YOLO11。要获得全面的概览,请访问Ultralytics博客,可以在那里找到案例研究、详细教程和社区故事,展示使用YOLO11进行目标检测、分割等。有关特定示例,请检查文档中的“使用”部分。

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