Ultralytics YOLO 数据集格式指南

在机器学习和计算机视觉领域,数据集的格式对于训练高效的对象检测模型至关重要。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数据集示例中,展示了如何组织训练和验证图像及标签。

支持的数据集

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

  • Argoverse:包含城市环境中的3D跟踪和运动预测数据,具有丰富的注释。
  • COCO:通用对象在上下文中(COCO)是一个大规模的对象检测、分割和描述数据集,包含80个对象类别。
  • LVIS:一个大规模的对象检测、分割和描述数据集,包含1203个对象类别。
  • COCO8:COCO训练和验证数据集的前4张图像的较小子集,适合快速测试。
  • COCO128:COCO训练和验证数据集的前128张图像的较小子集,适合测试。
  • Global Wheat 2020:包含2020年全球小麦挑战的小麦头图像的数据集。
  • Objects365:一个高质量、大规模的对象检测数据集,包含365个对象类别和超过600K张注释图像。
  • OpenImagesV7:谷歌提供的全面数据集,包含1.7M训练图像和42k验证图像。
  • SKU-110K:一个在零售环境中进行密集对象检测的数据集,包含超过11K张图像和170万个边界框。
  • VisDrone:包含无人机捕获图像中的对象检测和多对象跟踪数据的数据集,包含超过10K张图像和视频序列。
  • VOC:Pascal视觉对象类别(VOC)数据集,用于对象检测和分割,包含20个对象类别和超过11K张图像。
  • xView:一个用于头顶图像中的对象检测的数据集,包含60个对象类别和超过100万个注释对象。
  • Roboflow 100:一个包含100个数据集的多样化对象检测基准,涵盖七个图像领域,用于全面模型评估。
  • Brain-tumor:一个用于检测脑肿瘤的数据集,包括MRI或CT扫描图像,详细说明肿瘤的存在、位置和特征。
  • African-wildlife:一个包含非洲野生动物图像的数据集,包括水牛、大象、犀牛和斑马。
  • Signature:一个包含各种文档图像的数据集,带有注释的签名,支持文档验证和欺诈检测研究。

如果有自己的数据集,并希望使用它来训练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支持多种数据集,包括:

  • Argoverse
  • COCO
  • LVIS
  • COCO8
  • Global Wheat 2020
  • Objects365
  • OpenImagesV7

每个数据集页面都提供了详细的结构和使用信息,专为高效的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进行对象检测的实用示例?

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485