Ultralytics YOLO模型数据集指南

在进行对象检测模型的训练之前,需要准备一个全面的、与模型兼容的数据集。本指南将介绍Ultralytics YOLO模型支持的数据集格式,包括它们的结构、如何使用以及如何在不同格式之间进行转换。

Ultralytics YOLO格式是一种数据集配置格式,它允许定义数据集的根目录,以及相对于根目录的图像训练、验证和测试目录的路径。此外,还包括一个类别名称的字典。例如,一个典型的YAML配置文件可能如下所示:

path: ../datasets/coco8 # 数据集根目录 train: images/train # 训练图像(相对于'path') val: images/val # 验证图像(相对于'path') 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 # 类别中心坐标宽度高度

坐标值需要是归一化的(0到1之间)。如果框是以像素为单位,需要将x_center和width除以图像的宽度,将y_center和height除以图像的高度。类别编号需要从零开始索引。

例如,如果使用Ultralytics YOLO格式,需要按照COCO8数据集示例中的方式组织训练和验证图像及其标签。

以下是如何使用这些格式来训练模型的示例。首先,需要加载一个预训练的模型,然后使用数据集进行训练。在Python中,可以使用以下代码来实现:

from ultralytics import YOLO # 加载模型 model = YOLO("yolo11n.pt") # 使用预训练模型进行训练(推荐) results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

在命令行界面(CLI)中,也可以使用类似的命令来开始训练:

yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

Ultralytics YOLO支持多种数据集,以下是一些支持的数据集及其简要描述:

  • Argoverse:包含来自城市环境的3D跟踪和运动预测数据的数据集,具有丰富的注释。
  • COCO:Common Objects in Context(COCO)是一个大规模的数据集,涵盖对象检测、分割和字幕,包括80个对象类别。
  • LVIS:一个大规模的数据集,用于对象检测、分割和字幕,包括1203个对象类别。
  • COCO8:COCO训练和验证的前4张图像的较小子集,适合快速测试。
  • COCO128:COCO训练和验证的前128张图像的较小子集,适合测试。
  • Global Wheat 2020:包含2020年全球小麦挑战的小麦穗图像的数据集。
  • Objects365:一个大规模的高质量对象检测数据集,包含365个对象类别和超过600K张注释图像。
  • OpenImagesV7:Google的完整数据集,包含170万张训练图像和42000张验证图像。
  • SKU-110K:包含零售环境中密集对象检测的数据集,超过11000张图像和170万个边界框。
  • VisDrone:包含来自无人机捕获的图像的多对象检测和跟踪数据的数据集,超过10000张图像和视频序列。
  • VOC:Pascal Visual Object Classes(VOC)数据集,用于对象检测和分割,包含20个对象类别和超过11000张图像。
  • xView:包含航空图像中的对象检测数据集,60个对象类别和超过一百万注释对象。
  • Roboflow 100:一个多样化的对象检测基准测试,涵盖七个成像领域的100个数据集,用于全面评估模型。
  • 脑部肿瘤:一个用于检测脑部肿瘤的数据集,包括MRI或CT图像,详细说明肿瘤的存在、位置和特征。
  • 非洲野生动物:包含非洲野生动物图像的数据集,特别是水牛、大象、犀牛和斑马。
  • 签名:包含带有注释签名的各种文档图像的数据集,支持文档验证研究和欺诈检测。

如果有自己的数据集并希望使用它来训练对象检测模型,确保它遵循上述“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格式。

请确保想要使用的数据集与模型兼容,并遵循必要的格式约定。正确格式化的数据集对于训练高性能的对象检测模型至关重要。

有关Ultralytics YOLO数据集格式的常见问题解答(FAQ):

Q: Ultralytics YOLO数据集格式是什么,如何构建?

A: 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数据集示例。

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)

在CLI中,也可以使用类似的命令来开始训练:

yolo detect train data=path/to/your_dataset.yaml model=yolo11n.pt epochs=100 imgsz=640

有关使用不同模式的更多详细信息,请参阅文档中的“使用”部分。

Q: 在哪里可以找到使用Ultralytics YOLO进行对象检测的实用示例?

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