在机器学习和计算机视觉领域,数据集的格式对于训练高效的对象检测模型至关重要。Ultralytics YOLO模型支持多种数据集格式,本指南将详细介绍这些格式,并提供如何结构化、使用以及在不同格式间转换的见解。
Ultralytics YOLO格式是一种数据集配置格式,它允许定义数据集根目录、训练/验证/测试图像目录的相对路径或包含图像路径的*.txt文件,以及类别名称的字典。例如:
path: ../datasets/coco8 # 数据集根目录
train: images/train # 训练图像(相对于'path')
val: images/val # 验证图像(相对于'path')
test: # 可选的测试图像
names: # 类别名称
0: person
1: bicycle
2: car
# ...
在此格式中,标签应导出为每个图像一个*.txt文件的YOLO格式。如果图像中没有对象,则不需要*.txt文件。*.txt文件应按每行一个对象的格式格式化,类别 x_center y_center width height。框坐标必须是归一化的xywh格式(从0到1)。如果框是以像素为单位的,应该将x_center和width除以图像宽度,将y_center和height除以图像高度。类别编号应从零开始索引(从0开始)。
以下是如何使用这些格式来训练模型的示例:
from ultralytics import YOLO # 导入YOLO模型
# 加载模型
model = YOLO("yolo11n.pt") # 加载预训练模型(推荐用于训练)
# 训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640) # 使用预训练的*.pt模型开始训练
在COCO8数据集示例中,展示了如何组织训练和验证图像及标签。
以下是支持的数据集列表及其简要描述:
如果有自己的数据集,并希望使用它来训练Ultralytics YOLO格式的检测模型,请确保它遵循上述"Ultralytics YOLO格式"中指定的格式。将注释转换为所需的格式,并在YAML配置文件中指定路径、类别数量和类别名称。
如果有自己的数据集,并希望使用它来训练检测模型,确保它遵循上述"Ultralytics YOLO格式"中指定的格式。将注释转换为所需的格式,并在YAML配置文件中指定路径、类别数量和类别名称。
可以使用以下代码片段轻松地将标签从流行的COCO数据集格式转换为YOLO格式:
from ultralytics.data.converter import convert_coco # 导入转换工具
convert_coco(labels_dir="path/to/coco/annotations/") # 转换COCO数据集或任何COCO格式的数据集到Ultralytics YOLO格式
这个转换工具可以用来将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数据集或任何COCO格式的数据集到Ultralytics YOLO格式
这段代码将把COCO注释转换为YOLO格式,实现与Ultralytics YOLO模型的无缝集成。有关更多详细信息,请访问"端口或转换标签格式"部分。
哪些数据集支持Ultralytics YOLO进行对象检测?
Ultralytics YOLO支持多种数据集,包括:
每个数据集页面都提供了详细的结构和使用信息,专为高效的YOLO11训练量身定制。在"支持的数据集"部分探索完整列表。
如何开始使用数据集训练YOLO11模型?
要开始使用YOLO11模型训练,请确保数据集格式正确,路径在YAML文件中定义。使用以下脚本来开始训练:
from ultralytics import YOLO # 导入YOLO模型
model = YOLO("yolo11n.pt") # 加载预训练模型
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640) # 使用预训练的*.pt模型开始训练
有关使用不同模式的更多详细信息,包括CLI命令,请参考"使用"部分。
在哪里可以找到使用Ultralytics YOLO进行对象检测的实用示例?