在机器学习和计算机视觉领域,数据集的格式对于模型的训练和性能至关重要。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)