Skip to content

目标检测数据集概述

训练一个鲁棒且准确的目标检测模型需要一个全面的数据集。本指南介绍了与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_centerwidth除以图像宽度,将y_centerheight除以图像高度。类别编号应从零开始(从0开始)。

示例标注图像

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

示例标签文件

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

示例数据集目录结构

使用方法

以下是如何使用这些格式来训练您的模型:

Example

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

支持的数据集

以下是支持的数据集列表及其简要描述:

  • 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

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

此转换工具可用于将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

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命令。

在哪里可以找到使用Ultralytics YOLO进行目标检测的实际示例?

Ultralytics提供了许多使用YOLO11在各种应用中的示例和实用指南。有关全面概述,请访问Ultralytics博客,您可以在其中找到案例研究、详细教程和社区故事,展示使用YOLO11进行目标检测、分割等。有关具体示例,请查看文档中的使用部分。


📅 Created 11 months ago ✏️ Updated 13 days ago

Comments