[YOLO专题-20]:YOLO V5 - ultralytics代码解析-马赛克数据增强mosaic augment
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[YOLO专题-20]:YOLO V5 - ultralytics代码解析-马赛克数据增强mosaic augment相关的知识,希望对你有一定的参考价值。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122365378
目录
1.2 Random Erasing Data Augmentation(随机擦除数据增强)
第2章 Mosaic Data Augmentation(马赛克数据增强)
第1章 什么是传统的数据增强augment
数据增强是一种数据扩充技术,指的是利用以后的有限的数据创造尽可能多的新的数据。
因为虽然现在各种任务的公开数据集有很多,但是其实数据量也远远不够,而公司或者学术界去采集、制作这些数据的成本其实是很高的,像人工标注数据的任务量就很大,因此,只能通过一些方法去更好的利用现有的数据,数据增强便“粉墨登场”。
数据增强可以增加模型的泛化能力,提升模型的性能
以下列举几种数据增强方式:
1.1 传统数据增强
方式有随机翻转、旋转、裁剪、变形缩放、添加噪声、颜色扰动等等。
1.2 Random Erasing Data Augmentation(随机擦除数据增强)
随机的删除图片中部分区域,增强模型的泛化能力。
1.3 RandAugment(随机增强)
随机增强的意思是提前列举出几种数据增强的方式,如下图所示:
1.4 混合数据增强Mixup、Cutout、CutMix
Mixup是将两张图像以一定的概率凑到了一起,例如图中猫和狗各占一半,会显示一半像猫一半像狗;
Cutout是只一张图,但是随机选择一块区域进行丢弃;
CutMix则整合两种方法,仍然是两种图像各自占一定概率,然后丢弃一块区域的像素,用其中一张图像进行填充。
第2章 Mosaic Data Augmentation(马赛克数据增强)
2.1 什么是马赛克数据增强
该方法被应用到YOLO-V4当中扩充数据!
Mosaic借鉴了CutMix增强的方法,只不过本方法采用了4张图片,对其进行了随机裁剪、缩放、旋转等操作,合成1张图像,这种方式达到了如下的效果:
2.2 基本原理
(1)扩充了数据集的数量
(2)增加了小样本的数量:把大样本随机放缩成了小样本,因此增加了小样本的数量。
(3)小样本更小:由于采用随机放缩,合并后,导致小样本的尺寸更小。
第3章 YOLO V5 - ultralytics代码解析
3.1 使能马赛克数据增强
超参数:hyp['mosaic']
3.2 load_mosaic(self, index)
def load_mosaic(self, index)
# 该函数会4张图片,先进行随机增强,然后合并成一张图片。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122365378
以上是关于[YOLO专题-20]:YOLO V5 - ultralytics代码解析-马赛克数据增强mosaic augment的主要内容,如果未能解决你的问题,请参考以下文章
[YOLO专题-18]:YOLO V5 - ultralytics代码解析-总体架构
[YOLO专题-22]:YOLO V5 - ultralytics代码解析-超参数详解
[YOLO专题-21]:YOLO V5 - ultralytics代码解析-网络配置文件与总体结构
[YOLO专题-19]:YOLO V5 - ultralytics代码解析-dataloader数据加载机制