[YOLO专题-13]:YOLO V5 - ultralytics制作自己的训练数据集
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[YOLO专题-13]:YOLO V5 - ultralytics制作自己的训练数据集相关的知识,希望对你有一定的参考价值。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122288423
目录
步骤3:把json格式的标签文件转换成yolo-v5所需格式的标签文件
3.1 Yolo Text格式:(Cx, Cy, W, H) , 且需要归一化后的数据格式
前言:
在实际项目中,有时候,没有开源的数据集可用,或者开源的数据集与我们自己业务需要的数据集不同,因此,我们需要自定义我们的数据集,为我们自己的数据集打标签。
不同的公开数据集有不同的数据集格式,YOLO对数据集也有自身的要求,不同版本,也有不同格式要求。本文探讨如何为YOLO V5制作自己的自定义数据集。
制作过程如下:
步骤1:采集自己的自定义数据集的图片数据
(1)方法1:人工拍照片,每一张照片就是数据集中的一张图片。
(2)方法2:拍视频,把视频转换成一张张图片(通过工具,截取视频帧,转换成原始图片)
(3)方法3:数据增强,基于已有的图片数据,通过数据集增强处理,生成新的图片。
备注:
- 采集到所有原始图片,会存放在同一个目录中:xxx.jpg
步骤2:为自己的自定义图片数据集打标签
(1)使用labelme工具,选择合适的图片,为他们进行目标框和分类的标注
具体操作方法如下:
[人工智能-深度学习-68]:数据集 - 如何使用labelme给自定义图片打标签_文火冰糖(王文兵)的博客-CSDN博客
(2)输出:labelme工具生成的标签文件是Json格式的。
- 标签文件与图片文件同名:xxx.json
- 标签文件与图片文件在同一个目录中
这种格式的标签,可视化好,易读,但文本信息比较多,如下图所示:
"version": "4.6.0",
"flags": ,
"shapes": [
"label": "circal",
"points": [
[
280.66666666666663,
721.6666666666666
],
[
424.66666666666663,
868.3333333333334
]
],
"group_id": null,
"shape_type": "rectangle",
"flags":
],
"imagePath": "173_1384.jpg",
"imageData":
"imageHeight": 1282,
"imageWidth": 720
Json格式:(x1, y1, x2, y2) ,实际坐标数据格式。这与yolo-v3所期望的格式并不相同。
步骤3:把json格式的标签文件转换成yolo-v5所需格式的标签文件
3.1 Yolo Text格式:(Cx, Cy, W, H) , 且需要归一化后的数据格式
通过图片的尺寸信息和实际坐标数据,就可以对标签数据进行转换。
5 0.229438 0.16684 0.000854 0.001
5 0.202522 0.183007 0.000977 0.001333
3.2 转换工具:基于现有的工具进行转换
3.3 转换后图片与标签,按照YOLO的方式进行组织
XXX/train/
-----/train/images/
-----/train/labels/
XXX/valid/
-----/valid/images/
-----/valid/labels/
XXX/test/ # 可选
-----/test/images/
-----/test/labels/
三个数据的比例 = train:valid:test = 9 :3:1, 基本上是3 :1的阶梯
第4步骤:为数据创建YOLO的配置文件
按照如下的案例:创建数据集的配置文件,并放在数据的根目录中:
- path(可选):数据集的根目录
- train(必选):训练图片的子目录
- val(必选):验证图片的子目录
- nc(必选):分类的数目
- names(必选):每个分类的名称
- download(可选):远程下载数据集的路径(如果本地没有,则从网络下载)
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122288423
以上是关于[YOLO专题-13]:YOLO V5 - ultralytics制作自己的训练数据集的主要内容,如果未能解决你的问题,请参考以下文章
[YOLO专题-18]:YOLO V5 - ultralytics代码解析-总体架构
[YOLO专题-22]:YOLO V5 - ultralytics代码解析-超参数详解
[YOLO专题-21]:YOLO V5 - ultralytics代码解析-网络配置文件与总体结构
[YOLO专题-19]:YOLO V5 - ultralytics代码解析-dataloader数据加载机制