数据增强论文CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features
论文地址:CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features
代码地址:https://github.com/clovaai/CutMix-PyTorch
摘要
区域退出(丢失)策略提高了cnn分类器的性能。事实证明,它们可以有效地引导模型关注对象不那么有辨别力的部分部分(例如腿,而不是人的头部),从而让网络更好地泛化,并具有更好的对象定位能力。另一方面,现有的区域丢失方法通过叠加黑色像素或随机噪声来去除训练图像上的信息像素。这种删除是不可取的,因为它会导致训练期间的信息丢失以及效率低下。因此,论文作者提出了CutMix增强策略:在训练图像中删除并粘贴补丁,其中地面真相标签也与补丁的面积成比例地混合。
CutMix在cifar-10、cifar-100和ImageNet分类任务以及ImageNet弱监督定位任务上是较为先进的增强策略。
方法
CutMix与Mixup相似,后者通过插值图像和标签来混合两个样本。虽然确实提高了分类性能,但混合样本往往不自然(如下图第二个)。CutMix用另一张训练图像中的patch替换图像区域,从而克服了这个问题。CutMix不是简单地移除像素,而是用另一幅图像的patch去替换移除的区域(如下图第四个)。标签也会与组合图像的像素数成比例地混合。CutMix在训练过程中没有非信息像素,使得训练效率更高,同时保留了区域退出的优势,以处理对象的非歧视性部分。它通过要求模型从局部视图识别对象,添加的patch进一步增强了定位能力。训练和推理成本保持不变。
合并操作:
从训练样本中随机抽取两个样本进行简单的随机加权求和,同时样本的标签也对应加权求和。再随机生成一个裁剪框Box,裁剪掉A图的相应位置,然后用B图片相应位置的区域放到A图中被裁剪的区域形成新的样本,最后采用加权求和的方式计算损失。
其中M∈ {0,1}(W×H)表示一个二进制掩码矩阵(M中数值不是0就是1),表示从两个图像中丢失和填充的位置(比如在A图像丢失某块区域就给这块区域乘以一个M,也就是相当于把这一块区域的像素全部致0了相当于丢失了这块区域),1表示一个二进制掩码,M和xA以及1-M和xB之间是元素级乘法。与Mixup类似,两个样本标签之间的组合比λ从β分布并从β(α,α)中取样。在论文的实验中,作者将α设置为1,即从均匀分布(0,1)中采样λ。请注意,CutMix与Mixup的主要区别在于CutMix使用另一个训练图像的patch来替换丢失的图像区域,并生成比Mixup更多的局部自然图像。
为了对M进行采样,我们首先对边界框坐标B=(rx,ry,rw,rh)进行采样,该坐标表示xA和xB上的裁剪区域。其中rx、ry是边界框中心点的坐标,rw、rh分别是裁剪的边界框的宽高。移除xA中的区域B,并用从xB中的裁剪的patch填充。在实验中对长宽比与原始图像成正比的M进行采样。最后,使裁剪区域与图像面积比为1-λ。
裁剪框B坐标值代码如下:
def rand_bbox(size, lam