上一期中讲解了图像分类和目标检测中的数据增强的区别和联系,这期讲解数据增强的进阶版- yolov4中的Mosaic数据增强方法以及CutMix。
前言
Yolov4的mosaic数据增强参考了CutMix数据增强方式, 是CutMix数据增强方法的改进版。不同于一般的数据增强的方式是对一张图片进行扭曲、翻转、色域变化,CutMix数据增强方式是对两张图片进行拼接变为一张新的图片,然后将拼接好了的图片传入到神经网络中去学习,如下图。
CutMix的处理方式比较简单,对一对图片做操作,简单讲就是随机生成一个裁剪框Box,裁剪掉A图的相应位置,然后用B图片相应位置的ROI放到A图中被裁剪的区域形成新的样本,计算损失时同样采用加权求和的方式进行求解。就是将图A一部分区域cut掉但不填充0像素,然后随机填充训练集中的其他数据的区域像素值,分类结果按一定的比例分配。
下图是使用CutMix方法对常见的数据集进行数据增强的表现,可以看到有明显的提升。
Mosaic数据增强方法
mosaic数据增强则利用了四张图片,对四张图片进行拼接,每一张图片都有其对应的框框,将四张图片拼接之后就获得一张新的图片,同时也获得这张图片对应的框框,然后我们将这样一张新的图片传入到神经网络当中去学习,相当于一下子传入四张图片进行学习了。论文中说这极大丰富了检测物体的背景!且在标准化BN计算的时候一下子会计算四张图片的数据!如下图所示:
实现过程
这里以对Voc2007数据集进行随机数据增强为例进行讲解,大致分为四步:
第一步:从Voc数据集中每次随机读取四张图片
第二步:分别对四张图片进行翻转(对原始图片进行左右的翻转)、缩放(对原始图片进行大小的缩放)、色域变化(对原始图片的明亮度、饱和度、色调进行改变)等操作。
操作完成之后然后再将原始图片按照 第一张图片摆放在左上,第二张图片摆放在左下,第三张图片摆放在右下,第四张图片摆放在右上四个方向位置摆好。
3、进行图片的组合和框的组合
完成四张图片的摆放之后,我们利用矩阵的方式将四张图片它固定的区域截取下来,然后将它们拼接起来,拼接成一 张新的图片,新的图片上含有框框等一系列的内容。
如上图可以看到我们将四张图片进行拼接的时候有很明显的边缘,横线和竖线就是分割的线,这个分割线是由我们人为事先预先设定好了的,在代码中由min_off