前言
常用数据增强方式和yolov4中使用的数据增强方式及其有效性。
加油啊,还没总结完~
1,常用数据增强方式
1.1 畸变
- 光照畸变
- 几何畸变
1.2 图像遮挡
1.2.1 随机擦除
- 做法
选定图像一块区域,用随机像素或者平均像素来填充; - 功能
防止模型记忆训练数据和过拟合;
1.2.2 cutout
- 做法
训练中掩盖一个正方形区域,只对CNN第一层遮挡,填充使用的仍然是常数像素; - 功能
防止过拟合;
1.2.3 Hide and Seek
- 做法
将图像分割成s*s的patch,每个patch以一定概率隐藏 - 功能
让模型了解物体是什么样子,而不只是学习单个部分是什么样子
1.2.4 Grid Mask
- 做法
mask的网格,将图像隐藏其中 - 功能
让模型学习组成物体的做成部分
1.2.5 MixUp
- 做法
图像对及其标签的凸叠加 - 功能
2,yolov4数据增强
2.1 CutMix
做法
功能
问题思考?
对比mixup和cutout,为什么cutmix会好?
2.2 Mosaic
做法
把4张图片,通过随机缩放、随机裁减、随机排布的方式进行拼接优点
学习到比正常尺寸小的物体;
可以“省”训练数据或迭代次数;
丰富了检测物体的背景和小目标,并且在计算Batch Normalization的时候一次会计算四张图片的数据,使得mini-batch大小不需要很大,一个GPU就可以达到比较好的效果;
丰富数据集:随机使用4张图片,随机缩放,再随机分布进行拼接,大大丰富了检测数据集,特别是随机缩放增加了很多小目标,让网络的鲁棒性更好;
减少GPU:直接计算4张图片的数据,使得Mini-batch大小并不需要很大,一个GPU就可以达到比较好的效果;缺点
如果我们的数据集本身就有很多的小目标,那么Mosaic数据增强会导致本来较小的目标变得更小,导致模型的泛化能力变差问题思考