Ultralytics YOLO 数据集格式指南

机器学习和计算机视觉领域,数据集的格式对于模型的训练和性能至关重要。Ultralytics YOLO模型支持多种数据集格式,以适应不同的应用场景和需求。本篇文章将详细介绍这些数据集格式,包括它们的结构、如何使用以及如何在不同格式之间进行转换。

首先,来了解Ultralytics YOLO格式。这种格式允许定义数据集的根目录,以及训练、验证和测试图像或包含图像路径的.txt文件的相对路径,还有一个类别名称的字典。例如,可以这样配置:

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

对于这种格式,标签应该以YOLO格式导出,每个图像一个.txt文件。如果图像中没有对象,则不需要.txt文件。每个.txt文件应该按照以下格式进行格式化,每个对象一行:

class x_center y_center width height

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

例如,对于上面图像的标签文件,包含2个人(类别0)和1辆自行车(类别27),标签文件将如下所示:

0 0.5 0.3 0.2 0.1 0 0.7 0.4 0.3 0.1 27 0.2 0.6 0.1 0.1

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

接下来,来看看如何使用这些格式来训练模型。以下是一个使用Python CLI的示例:

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

此外,Ultralytics YOLO支持多种数据集,包括Argoverse、COCO、LVIS、COCO8、COCO128、Global Wheat 2020、Objects365、OpenImagesV7、SKU-110K、VisDrone、VOC、xView、Roboflow 100、脑部肿瘤和非洲野生动物等。每个数据集页面都提供了详细的结构和使用信息,以实现高效的YOLO11训练。

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

还可以使用Ultralytics提供的工具轻松地将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、Global Wheat 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)
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485