问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

YOLOv5数据集的文件结构和文件格式以及标注工具LabelImg的说明文档

创作时间:
作者:
@小白创作中心

YOLOv5数据集的文件结构和文件格式以及标注工具LabelImg的说明文档

引用
CSDN
1.
https://blog.csdn.net/LJX_ahut/article/details/139299087

YOLOv5是一个采用深度学习技术的目标检测模型。在训练这个模型时,需要创建一个特定格式的数据集。这篇文章将详细介绍YOLOv5训练数据集的创建方法、文件结构及其格式说明。

一、概述

YOLOv5是一个采用深度学习技术的目标检测模型。在训练这个模型时,需要创建一个特定格式的数据集。这篇文章将详细介绍YOLOv5训练数据集的创建方法、文件结构及其格式说明。

二、文件结构与数据格式

YOLOv5采用了.txt文件来描述同名图像文件中目标的类别和位置信息。.txt文件中的每一行代表图像中的一个目标,多个目标采用多行数据来保存。

2.1 数据集的文件结构

一般情况下,一个完整的数据集包含三部分内容:

  • classes.txt文件,用于记录类别名称
  • images文件夹,用于保存图片文件
  • labels文件夹,用于保存标注文件

注:images和labels文件夹中的文件名应该一一对应,即images文件夹中的图片文件和labels文件夹中的标注文件应该同名。

其中,数据集中对应的训练集、验证集和测试集分别放在train、val和test文件夹中。同样,images和labels文件夹中的结构应该一一对应。数据比例建议:70%用于训练,20%用于验证,10%用于测试。

文件结构如下:

dataset/
├── classes.txt
├── images
│   ├── train
│   │   ├── image1.jpg
│   │   └── ...
│   ├── val
│   │   ├── image3.jpg
│   │   └── ...
│   └── test
│       ├── image5.jpg
│       └── ...
└── labels
    ├── train
    │   ├── image1.txt
    │   └── ...
    ├── val
    │   ├── image3.txt
    │   └── ...
    └── test
        ├── image5.txt
        └── ...

2.2 数据格式

举例说明,假设我们的任务是检测5个类别的目标:狗(dog)、人(person)、猫(cat)、电视(tv)和汽车(car)。那么classes.txt文件内容如下:

dog
person
cat
tv
car

.txt文本中记录的并非类别名称,而是类别的索引,从0开始。例如,dog的索引为0,person的索引为1,以此类推。

索引 类别
0 dog
1 person
2 cat
3 tv
4 car

.txt文本中,每行记录一个目标对象的类别索引和位置信息,包含五个字段:

  • class:类别索引,整数,从0开始。
  • cx、cy:浮点数,表示目标中心点的横坐标和纵坐标,归一化到图像宽高的比例,范围为[0, 1]
  • width、height:浮点数,表示目标的宽度和高度,归一化到图像宽高的比例,范围为[0, 1],

标注示意图如下:

注意:cx、cy、width、height都是相对于图像宽高的比例,而不是绝对像素值。例如,如果一个目标的中心点位于图像的正中心,且占据了整个图像区域,格式为0 0.5 0.5 1 1(假设目标类别为0)。

2.3 标注文件的注意事项

  • 所有数值使用空格隔开
  • 文件结束时可选一个空行,但不是必须的
  • 每行末尾不能有空格
  • 行与行之间不能有空行

注:标注文件不符合上述格式要求时,会导致在标注可视化或训练时出现错误。

三、手动标注YOLOv5数据集

训练所需要的图像可以从各种来源获取,例如公开数据集、互联网或者自己进行图片标注。如果你打算从网上收集图片,注意版权和使用许可。

接下来,需要在每张图像中标注出我们想要检测的目标。可以使用各种标注工具,如labelImg。每张图片的标注结果会生成一个对应的.txt文件。

3.1 标注工具的选择

这里我们选用labelImg作为标注工具一个开源的图像标注工具,易于使用,支持Pascal VOC、YOLO等多种格式。软件使用界面如下图所示:

3.2 标注流程

  1. 打开labelImg软件,点击Open Dir打开图像文件夹。
  2. 点击Change Save Dir设置标注文件保存路径。用于保存.txt标注文件
  3. 选择一张图像,点击Create RectBox按钮,然后在图像上框选目标,目标框选定后,在弹出的类别框中选择对应的类别即可,如下图所示:

  1. 点击Save保存标注结果,软件会自动生成一个同名的.txt文件,保存了目标的类别和位置信息。

四、总结与注意事项

4.1 labelImg的使用技巧与说明

  • 快捷键:w新建矩形框,d下一张图片,a上一张图片,s保存标注结果,del删除当前矩形框
  • 自动保存: 点击工具栏的View,在下拉菜单中勾选Auto Save mode即可开启自动保存模式
  • 类别显示: 点击工具栏的View,在下拉菜单中勾选Display Labels,即可在画面中对应的标注框中显示当前类别的名称
  • 默认类别设置: 当标注单个类别目标时,设置默认类别,每次就不需要选择目标类别,工具自动填充,如下如所示,设置并勾选默认类别为person后,每次拉框直接默认类别,不需要再手动选择了

4.2 注意事项

  • 文件格式:标注文件的格式必须符合YOLOv5的要求,否则LabelImg无法可视化标注框。参考[[#2.3 标注文件的注意事项]]
  • 中文路径:无论是文件夹路径还是图片名称,均不能包含中文字符,否则会导致标注文件保存失败
  • classes.txt: classes.txt文件一定要放置在与标注文件同一级的目录中,否则LabelImg无法可视化标注框。
  • 标注提示文件: LabelImg自带一个标注提示文件,用来填充标注时的标注提示框,文件位置处理data/predefined_classes.txt,确保文件中的类别名称与classes.txt文件中的类别名称一致。labelImg会自动读取这个文件,用于填充标注提示框。文件结构如下所示:
LabelImg
|__data
|   |__predefined_classes.txt
|__labelImg.exe

以上便是关于YOLOv5数据集的文件结构和数据格式的简要说明,关于如何使用yaml文件配置训练时的训练集与测试集路径、以及多个数据集文件夹组合的配置方法,会通过另一篇文档详细记录与说明。

本文原文来自CSDN博客

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号