目标检测数据集概述
训练一个鲁棒且准确的目标检测模型需要一个全面的数据集。本指南介绍了与Ultralytics YOLO模型兼容的各种数据集格式,并提供了关于其结构、使用方法以及如何在不同格式之间进行转换的见解。
支持的数据集格式
Ultralytics YOLO格式
Ultralytics YOLO格式是一种数据集配置格式,允许您定义数据集根目录、训练/验证/测试图像目录或包含图像路径的*.txt文件的相对路径,以及类名字典。以下是一个示例:
# 训练/验证/测试集,可以是1) 目录: path/to/imgs, 2) 文件: path/to/imgs.txt, 或 3) 列表: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8 # 数据集根目录
train: images/train # 训练图像(相对于'path')4张图像
val: images/val # 验证图像(相对于'path')4张图像
test: # 测试图像(可选)
# 类别(80个COCO类别)
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除以图像高度。类别编号应从零开始(从0开始)。

与上述图像对应的标签文件包含2个人(类别0)和一个领带(类别27):

使用Ultralytics YOLO格式时,请按照COCO8数据集示例所示组织您的训练和验证图像及标签。

使用方法
以下是如何使用这些格式来训练您的模型:
Example
支持的数据集
以下是支持的数据集列表及其简要描述:
- Argoverse: 包含城市环境中3D跟踪和运动预测数据的带有丰富注释的数据集。
- COCO: 包含80个对象类别的用于目标检测、分割和字幕生成的大规模数据集。
- LVIS: 包含1203个对象类别的用于目标检测、分割和字幕生成的大规模数据集。
- COCO8: COCO训练集和验证集的前4张图像的较小子集,适合快速测试。
- COCO128: COCO训练集和验证集的前128张图像的较小子集,适合测试。
- Global Wheat 2020: 包含用于2020年全球小麦挑战赛的麦穗图像的数据集。
- Objects365: 用于目标检测的高质量、大规模数据集,包含365个对象类别和超过60万张带注释的图像。
- OpenImagesV7: 由Google提供的综合数据集,包含170万张训练图像和4.2万张验证图像。
- SKU-110K: 包含零售环境中密集目标检测的数据集,包含超过1.1万张图像和170万个边界框。
- VisDrone: 包含无人机拍摄图像中的目标检测和多目标跟踪数据的数据集,包含超过1万张图像和视频序列。
- VOC: 用于目标检测和分割的Pascal视觉对象类别(VOC)数据集,包含20个对象类别和超过1.1万张图像。
- xView: 一个用于航拍图像中目标检测的数据集,包含60个目标类别和超过100万个标注目标。
- Roboflow 100: 一个多样化的目标检测基准,包含100个数据集,涵盖七个图像领域,用于全面模型评估。
- Brain-tumor: 一个用于检测脑肿瘤的数据集,包括MRI或CT扫描图像,详细标注了肿瘤的存在、位置和特征。
- African-wildlife: 一个包含非洲野生动物图像的数据集,包括水牛、大象、犀牛和斑马。
- Signature: 一个包含各种文档图像的数据集,标注了签名,支持文档验证和欺诈检测研究。
添加您自己的数据集
如果您有自己的数据集并希望使用它来训练Ultralytics YOLO格式的检测模型,请确保它遵循上述“Ultralytics YOLO格式”中指定的格式。将您的标注转换为所需格式,并在YAML配置文件中指定路径、类别数量和类别名称。
转换或转换标签格式
COCO数据集格式到YOLO格式
您可以使用以下代码片段轻松将流行的COCO数据集格式中的标签转换为YOLO格式:
Example
此转换工具可用于将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标注转换为YOLO格式,使与Ultralytics YOLO模型的无缝集成成为可能。有关更多详细信息,请访问转换或转换标签格式部分。
Ultralytics YOLO支持哪些目标检测数据集?
Ultralytics YOLO支持广泛的数据集,包括:
每个数据集页面提供了针对高效YOLO11训练的结构和使用方法的详细信息。在支持的数据集部分探索完整列表。
如何使用我的数据集开始训练YOLO11模型?
要开始训练YOLO11模型,请确保您的数据集格式正确,并在YAML文件中定义了路径。使用以下脚本开始训练:
Example
有关更多详细信息,请参阅使用部分,了解不同模式的使用方法,包括CLI命令。
在哪里可以找到使用Ultralytics YOLO进行目标检测的实际示例?
Ultralytics提供了许多使用YOLO11在各种应用中的示例和实用指南。有关全面概述,请访问Ultralytics博客,您可以在其中找到案例研究、详细教程和社区故事,展示使用YOLO11进行目标检测、分割等。有关具体示例,请查看文档中的使用部分。