在进行对象检测任务时,一个全面的数据集是必不可少的。本指南将介绍与Ultralytics YOLO模型兼容的各种数据集格式,并深入探讨它们的结构、使用方法以及如何在不同格式之间进行转换。
Ultralytics YOLO数据集格式
Ultralytics YOLO格式是一种用于配置数据集的格式,它允许指定数据集的根目录或训练/验证/测试图像的相对路径。此外,还包括一个包含图像路径和类别名称字典的.txt
文件。以下是一个配置示例:
# 数据集的根目录
path: ../datasets/coco8
# 训练图像(相对于'path')
train: images/train
# 验证图像(相对于'path')
val: images/val
# 测试图像(可选)
test: images/test
# 类别名称
names:
0: person
1: bicycle
2: car
# ...
77: teddy bear
78: hair drier
79: toothbrush
每个图像的标签需要导出为YOLO格式的.txt
文件。如果没有图像中的物体,则不需要.txt
文件。每个.txt
文件应该按照class x_center y_center width height
的格式进行格式化,其中坐标应为归一化的xywh格式(从0到1)。如果框是像素单位,需要将x_center
和width
除以图像的宽度,将y_center
和height
除以图像的高度。类别编号应从零开始索引。
支持的数据集
以下是支持的数据集列表及其简要描述:
- Argoverse: 包含3D追踪和动作预测数据的城市环境数据集,具有丰富的注释。
- COCO: 广泛用于对象检测、分割和标记的数据集,包含80个类别的对象。
- LVIS: 广泛用于对象检测、分割和解释的数据集,包含1203个类别的对象。
- COCO8: 一个较小的COCO训练和验证图像的子集,适合快速测试。
- COCO128: 一个较小的COCO训练和验证图像的子集,适合测试。
- 全球小麦2020: 包含小麦头图像的全球小麦2020挑战数据集。
- Objects365: 高质量和广泛的对象检测数据集,包含365个类别的对象和超过600,000张标记图像。
- OpenImagesV7: Google提供的全面数据集,包含1.7百万训练图像和42,000张验证图像。
- SKU-110K: 在零售环境中检测密集物体的数据集,包含超过11,000张图像和170万个边界框。
- VisDrone: 包含由无人机拍摄的图像中的对象检测和多对象跟踪数据的数据集,包含超过10,000张图像和视频序列。
- Pascal VOC车辆: Pascal视觉对象类别(VOC)数据集,用于对象检测和分割,包含20个类别的对象和超过11,000张图像。
- xView: 在航拍图像中检测对象的数据集,包含60个类别的对象和超过100万个标记对象。
- Roboflow 100: 用于对象检测的多样化标准,涵盖七个图像领域的100个数据集,以进行全面的模型评估。
- 脑瘤: 用于检测脑瘤的数据集,包括MRI或CT扫描图像,以及有关肿瘤存在、位置和属性的详细信息。
- 非洲野生动物: 包含非洲野生动物图像的数据集,包括长颈鹿、犀牛、角马和野驴。
- 签名: 包含不同文档图像的数据集,标记有签名,支持文档验证和欺诈检测研究。
添加数据集
如果有自己的数据集并希望使用它来训练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: images/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、全球小麦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)
有关使用不同命令行选项的详细信息,请访问文档中的“使用”部分。