yolo数据集格式

介绍

YOLO(You Only Look Once)数据集格式是一种用于物体检测任务的数据格式。YOLO要求训练数据集以特定的方式组织和标记,以便模型能够有效地学习如何检测不同类别的物体。以下是YOLO数据集的基本格式和组成部分。

数据集结构

  1. 数据文件夹:通常,数据集会被放置在一个文件夹中,其中包含图像文件(如.jpg, .jpeg, .png等)。
  2. 标签文件夹:与图像对应的标签文件(.txt)通常放在另一个文件夹中,或者与图像文件夹并列存放。

标签文件格式

每个图像都有一个对应的标签文件(.txt),文件名与图像文件相同,只是扩展名不同。标签文件中的每一行对应图像中的一个物体,并且每一行包含五个数值:

  • 类别索引:表示物体所属类别的整数索引(从0开始)。
  • 中心点 x 坐标:相对于图像宽度的归一化坐标。
  • 中心点 y 坐标:相对于图像高度的归一化坐标。
  • 宽度:相对于图像宽度的归一化宽度。
  • 高度:相对于图像高度的归一化高度。

浅色版本

0 0.45 0.50 0.35 0.30  # 第一个物体,类别0,中心点在(0.45, 0.50),宽度0.35,高度0.30
1 0.75 0.60 0.20 0.15  # 第二个物体,类别1,中心点在(0.75, 0.60),宽度0.20,高度0.15

示例

假设我们有一个名为image.jpg的图像文件,其中包含两个物体:一个猫和一个狗。图像尺寸为640x480像素,猫的边界框为(120, 150, 200, 200),狗的边界框为(380, 240, 100, 120)

  • 猫的归一化坐标为:
    • 中心点 (120 + 200/2, 150 + 200/2) = (220, 250)
    • 归一化后为 (220/640, 250/480) = (0.34375, 0.52083)
    • 归一化宽度和高度为 (200/640, 200/480) = (0.3125, 0.41667)
  • 狗的归一化坐标为:
    • 中心点 (380 + 100/2, 240 + 120/2) = (430, 290)
    • 归一化后为 (430/640, 290/480) = (0.671875, 0.604167)
    • 归一化宽度和高度为 (100/640, 120/480) = (0.15625, 0.25)

因此,对应的标签文件image.txt将包含以下内容:

0 0.34375 0.52083 0.3125 0.41667  # 猫
21 0.671875 0.604167 0.15625 0.25  # 狗

假设类别0表示猫,类别1表示狗。

其他文件

除了图像和标签文件外,YOLO还需要一些额外的文件来定义数据集和模型的配置:

  • 数据配置文件:如data/coco.data,用于定义数据集的路径和其他相关信息。
  • 模型配置文件:如cfg/yolov3.cfg,用于定义YOLO模型的架构。
  • 预训练权重文件:如weights/yolov3.weights,用于初始化模型的权重。

确保所有的文件和文件夹路径都在相应的配置文件中正确指定。这样,YOLO框架就可以正确加载数据集并进行训练。