Ultralytics YOLO模型支持多种数据集格式,每种格式都有其特定的结构和使用方式。了解这些格式对于构建高效的对象检测模型至关重要。本指南将带了解如何准备数据集,以及如何将数据集转换为Ultralytics YOLO模型所需的格式。
数据集的结构通常包括数据集根目录、训练/验证/测试图像目录的相对路径或文件,以及包含类别名称的字典。例如,对于COCO数据集,可以这样定义:
path: ../datasets/coco8
train: images/train
val: images/val
test:
names:
0: person
1: bicycle
2: car
...
77: teddy bear
78: hair drier
79: toothbrush
在这种格式中,标签需要以YOLO格式导出。对于没有对象的图像,需要添加一个空的.txt文件。每个图像的标签文件应包含一个对象的一行,格式为:
class x_center y_center width height
坐标应使用0到1之间的归一化xywh格式。如果框是以像素为单位,则需要分别除以图像的宽度和高度来归一化x_center和width,以及y_center和height。类别编号应从0开始的整数索引。
使用这些格式的数据集来训练模型是一个直接的过程。以下是使用Python CLI进行训练的一个示例:
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
确保数据集格式正确,并且路径在YAML配置文件中定义。使用上述脚本开始训练。
以下是支持的数据集列表以及每个数据集的简要描述:
- Argoverse: 包含城市环境的3D追踪和运动预测数据,具有丰富的注释。
- COCO: 包含80个对象类别的大型对象检测、分割和描述数据集。
- LVIS: 包含1203个对象类别的大型对象检测、分割和描述数据集。
- COCO8: 适合快速测试的COCO训练和COCO验证的前4张图像的小型子集。
- COCO128: 适合测试的COCO训练和COCO验证的前128张图像的更小的子集。
- Global Wheat 2020: 包含全球小麦挑战赛2020的小麦头图像的数据集。
- Objects365: 包含365个对象类别和60万个以上标注图像的高质量大型对象检测数据集。
- OpenImagesV7: 包含170万个训练图像和42,000个验证图像的Google的全面数据集。
- SKU-110K: 包含11K个以上图像和170万个边界框的零售环境中的高密度对象检测功能的数据集。
- VisDrone: 包含10K以上图像和视频序列的由无人机捕获的图像的对象检测和多对象跟踪数据集。
- VOC: 包含20个对象类别和11,000个以上图像的对象检测和分割的PASCAL视觉对象类别(VOC)数据集。
- xView: 包含60个对象类别和100万个以上标注的头顶图像中的对象检测数据集。
- Roboflow 100: 为了全面模型评估,包含7个图像领域的100个数据集的多样化对象检测基准。
- Brain Tumor: 包含MRI或CT扫描图像,其中包含有关肿瘤存在、位置和特征的详细信息,用于检测脑肿瘤的数据集。
- African Wildlife: 包含非洲野生动物图像的数据集,如水牛、大象、犀牛、斑马等。
- Signatures: 由带有注释的签名组成的各种文档图像的数据集,支持文档验证和欺诈检测研究。
如果有自己的数据集并希望将其用于Ultralytics YOLO模型的训练,请确保它遵循上述“Ultralytics YOLO格式”中指定的格式。将注释转换为所需的格式,并在YAML配置文件中指定路径、类别数量和类别名称。
要将COCO数据集格式转换为YOLO格式,可以使用以下Python代码片段:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")
这个转换工具可以将COCO数据集或COCO格式的数据集转换为Ultralytics YOLO格式。
Q: Ultralytics YOLO数据集格式是什么,如何配置?
A: 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格式?
A: 可以使用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支持哪些数据集用于对象检测?
A:Ultralytics YOLO支持多种数据集,包括Argoverse、COCO、LVIS、COCO8、Global Wheat 2020、Objects365、OpenImagesV7等。每个数据集页面都提供了详细的结构和使用信息,专为高效的YOLO11训练量身定制。在“支持的数据集”部分探索完整列表。
Q: 如何开始使用数据集训练YOLO11模型?
A: 要开始使用数据集训练YOLO11模型,请确保数据集格式正确,并且在YAML文件中定义了路径。使用以下脚本来开始训练:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=path/to/your_dataset.yaml model=yolo11n.pt epochs=100 imgsz=640
有关CLI命令和其他模式使用详细信息,请参阅“使用”部分。