数据增强实测之RICAP

RICAP是2019年发表在TCSVT期刊上的一种数据增强方法,看论文发现RICAP在目标检测中的用法和YOLOv4中的mosaic增强几乎是完全一样的。从时间上来看,YOLOv4是2020年出来的,比RICAP晚了一年,不确定作者是否看过RICAP这篇论文。

Data Augmentation using Random Image Cropping and Patching for Deep CNNs

paper: https://arxiv.org/pdf/1811.09030

code: https://github.com/jackryo/ricap


RICAP与mixup比较类似,都是从多张图像合成新图像来训练。他们的不同之处,主要有三点:(1)RICAP选择4张图像来合成,而mixup是2张;(2)RICAP从空间上合成图像,即通过拼接的方式,而mixup是通过按比例相加的合成方式;(3)RICAP在拼接图像前加入了crop操作,而mixup直接混合两张原图像。

RICAP的图像合成示例图如下,还是很容易理解的。

RICAP实现代码如下:

beta = 0.3 # 默认为0.3
criterion = nn.CrossEntropyLoss()
for (inputs, labels) in train_loader:
    # size of image
    I_x, I_y = inputs.size()[2:]

    # generate boundary position (w, h)
    w = int(np.round(I_x * np.random.beta(beta, beta)))
    h = int(np.round(I_y * np.random.beta(beta, beta)))
    w_ = [w, I_x - w, w, I_x - w]
    h_ = [h, h, I_y - h, I_y - h]

    # select four images
    cropped_images = {}
    c_ = {}
    W_ = {}
    for k in range(4):
        index = torch.randperm(inputs.size(0))
        x_k = np.random.randint(0, I_x - w_[k] + 1)
        y_k = np.random.randint(0, I_y - h_[k] + 1)
        cropped_images[k] = inputs[index][:, :, x_k:x_k + w_[k], y_k:y_k + h_[k]]
        c_[k] = labels[index]
        W_[k] = (w_[k] * h_[k]) / (I_x * I_y)  # 根据面积分配权重

    # patch cropped images
    patched_images = torch.cat(
                (torch.cat((cropped_images[0], cropped_images[1]), 2),
                torch.cat((cropped_images[2], cropped_images[3]), 2)), 3)

    outputs = model(patched_images)
    _, preds = torch.max(outputs, 1)
    loss = sum([W_[k] * criterion(outputs, c_[k]) for k in range(4)])

计算loss的时候,是根据每个patch的面积来分配对应权重的。


训练的参数配置与mixup相同,结果见下表。

Method CIFAR-10 CIFAR-100
ResNet-50 96.76/96.82/96.81/96.79
96.72/96.69/96.60/96.82
(96.75)
83.80/83.66/84.19/83.26
83.89/83.90/83.57/83.69
(83.74)
ResNet-50+RICAP 96.73/96.72/96.64/96.61
96.71/96.69/96.78/96.84
(96.71)
83.11/83.05/83.74/83.29
83.06/83.25/83.37/83.36
(83.28)

从上表中的结果来看,在CIFAR10和CIFAR100两个数据集上使用RICAP也没能提高模型的性能。具体原因应该与mixup类似。


数据增强实测之mixup_一个菜鸟的奋斗-CSDN博客

数据增强实测之Random Erasing_一个菜鸟的奋斗-CSDN博客

数据增强实测之cutout_一个菜鸟的奋斗-CSDN博客

数据增强实测之GridMask_一个菜鸟的奋斗-CSDN博客

数据增强实测之Hide-and-Seek_一个菜鸟的奋斗-CSDN博客

你可能感兴趣的:(数据增强,图像分类,深度学习,ricap,数据增强,图像分类,深度学习)