[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章 什么是传统的数据增强augment

1.1 传统数据增强

1.2 Random Erasing Data Augmentation(随机擦除数据增强)

1.3 RandAugment(随机增强)

1.4 混合数据增强Mixup、Cutout、CutMix 

第2章 Mosaic Data Augmentation(马赛克数据增强)

2.1 什么是马赛克数据增强

2.2 基本原理

第3章 YOLO V5 - ultralytics代码解析

3.1 使能马赛克数据增强

3.2 load_mosaic(self, index)


第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数据加载机制

[YOLO专题-16]:YOLO V5 - 如何把labelme json训练数据集批量转换成yolo数据集

[YOLO专题-17]:YOLO V5 - 如何把YOLO训练数据集批量转换成带矩形框的图片