Ultralytics YOLO 数据集格式指南

在进行对象检测模型的训练时,一个全面的数据集是必不可少的。本指南将介绍与Ultralytics YOLO模型兼容的各种数据集格式,并深入探讨它们的结构、使用方式以及如何在不同格式之间进行转换。

支持的数据集格式

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

# 数据集路径配置示例 path: ../datasets/coco8 # 数据集根目录 train: images/train # 训练图片(相对于'path') val: images/val # 验证图片(相对于'path') test: # 测试图片(可选) names: # 类别名称 0: person 1: bicycle 2: car # ...

对于Ultralytics YOLO格式,标签应该导出为YOLO格式,每个图片对应一个*.txt文件。如果没有图像中的对象,则不需要*.txt文件。*.txt文件应该按照每行一个对象的格式进行格式化。

标签格式

标签文件应包含每个对象的类别、中心点的x和y坐标、宽度和高度,格式如下:

class x_center y_center width height

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

使用指南

了解如何使用这些格式来训练模型:

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

以上示例展示了如何使用Python CLI来加载预训练模型并开始训练。

支持的数据集

以下是Ultralytics YOLO支持的数据集列表及其简要描述:

  • Argoverse:城市环境中的3D跟踪和运动预测数据集,包含丰富的注释。
  • COCO:Common Objects in Context (COCO)是一个大规模的对象检测、分割和标注数据集,包含80个对象类别。
  • LVIS:一个大规模的对象检测、分割和标注数据集,包含1203个对象类别。
  • COCO8:COCO训练和验证集中前4张图片的较小子集,适合快速测试。
  • COCO128:COCO训练和验证集中前128张图片的较小子集,适合测试。
  • Global Wheat 2020:用于Global Wheat Challenge 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万张图像。
  • xView:用于航拍图像中的对象检测数据集,包含60个对象类别和超过100万个标注对象。
  • Roboflow 100:一个多样化的对象检测基准测试,包含来自七个图像领域的100个数据集,用于全面模型评估。
  • Hirntumor:用于检测脑肿瘤的数据集,包含MRT或CT图像,详细描述肿瘤的存在、位置和特征。
  • Afrikanische Wildtiere:包含非洲野生动物图像的数据集,如水牛、大象、犀牛和斑马。
  • Unterschrift:包含不同文档图像和标注签名的数据集,支持文档鉴定和欺诈检测研究。

添加自己的数据集

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

标签格式迁移或转换

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

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

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

常见问题解答

什么是Ultralytics YOLO数据集格式,如何构建?

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

path: ../datasets/coco8 # 数据集根目录 train: images/train # 训练图像(相对于'path') val: images/val # 验证图像(相对于'path') test: # 可选测试图像 names: # 类别名称 0: person 1: bicycle 2: car # ...

标签存储在*.txt文件中,每个图像一个文件,格式为class x_center y_center width height,使用归一化坐标。有关详细信息,请参见COCO8数据集示例。

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

使用Ultralytics的转换工具,可以将COCO数据集转换为YOLO格式。以下是一种快速方法:

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

此代码将COCO注释转换为YOLO格式,从而实现与Ultralytics YOLO模型的无缝集成。有关更多信息,请参见“迁移或转换标签格式”部分。

Ultralytics YOLO支持哪些对象检测数据集?

Ultralytics YOLO支持广泛的数据集,包括:

  • Argoverse
  • COCO
  • LVIS
  • COCO8
  • Global Wheat 2020
  • Objects365
  • OpenImagesV7

每个数据集页面都提供了针对高效YOLO11训练的结构和使用详细信息。在“支持的数据集”部分探索完整列表。

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

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

from ultralytics import YOLO model = YOLO("yolo11n.pt") # 加载预训练模型 results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640) # 从预训练的*.pt模型开始训练 yolo detect train data=path/to/your_dataset.yaml model=yolo11n.pt epochs=100 imgsz=640
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485