Fy J
CS专业扫雷学深造学者互联网冲浪一级选手
FRIENDS
jhn

论文研读:SISR数据增广的一种新思路

12-04-2020 20:40:23 论文研读 图像超分辨率
Word count: 1.8k | Reading time: 7min

原创文章,转载、引用请注明出处!


Rethinking Data Augmentation for Image Super-resolution: A Comprehensive Analysis and a New Strategy
2020 cvpr

立意

数据扩充(DA)是在不增加计算成本的情况下提高模型性能的最实用的方法之一。但现在许多数据增强的方法也都是用于High-level的cv任务,并不适合图像超分辨率任务。

像超分辨率这样的图像恢复研究,非常依赖于合成数据集。最常见的做法是通过模拟系统退化函数(bicubic),可以增加训练样本的数量。但这样的做法欠缺考虑:由于模拟数据分布与实际数据分布之间存在差距,在模拟数据集上训练的模型在实际环境中并没有表现出最佳性能。

这方面的相关工作很少有人做,[24]首先做了这个事情,但不过也就是通过旋转和翻转。也有部分论文提到过这个观点,但是要么就是给出的例子太少,要么就是使用的baseline比较老旧(SRCNN级别的这种)。总之这方面研究还比较稀少。

[24]Seven ways to improve example-based single image super resolution.
2016cvpr

为了更好地理解低水平视觉中的DA方法,对最初为高级视觉任务开发的各种DA方法的效果进行了全面分析(第2节)。首先根据方法的应用领域将现有的增强技术分为两类:像素域和特征域。当直接应用于SISR时,发现有些方法会损害图像恢复结果,甚至阻碍训练,特别是当一种方法在很大程度上导致相邻像素之间的空间信息丢失或混淆时。

在分析的基础上,提出了CutBlur。具体做法是:剪切模糊剪切并粘贴LR图像补丁到其对应的真实HR图像补丁,反之也一样。CurBlur的关键在于让模型不仅知道如何超分,同时也知道哪里需要超分。通过这样的方法,模型能够自适应地去决定图像多大程度上去应用超分而不是盲目地对所有像素进行超分。

CurBlur

算法

假设给定LR图像xlr(whc)和xhr(swshc)图像块,其中s是放大倍数。由于 CurBlur需要匹配LR图像和HR图像的分辨率,所以会LR图像进行s倍的双三次插值。CurBlur然后就会生成成对的训练样本lr->hr和hr->lr :

其中,M为二值Mask,用于决定哪里需要被替换掉。

源码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def cutblur(im1, im2, prob=1.0, alpha=1.0):
if im1.size() != im2.size():
raise ValueError("im1 and im2 have to be the same resolution.")

if alpha <= 0 or np.random.rand(1) >= prob:
return im1, im2

cut_ratio = np.random.randn() * 0.01 + alpha

h, w = im2.size(2), im2.size(3)
ch, cw = np.int(h*cut_ratio), np.int(w*cut_ratio)
cy = np.random.randint(0, h-ch+1)
cx = np.random.randint(0, w-cw+1)

# apply CutBlur to inside or outside

if np.random.random() > 0.5:
im2[..., cy:cy+ch, cx:cx+cw] = im1[..., cy:cy+ch, cx:cx+cw]
else:
im2_aug = im1.clone()
im2_aug[..., cy:cy+ch, cx:cx+cw] = im2[..., cy:cy+ch, cx:cx+cw]
im2 = im2_aug

return im1, im2

为什么CutBlur适用于SR?

从之前不同DA方法对比,可以看到,图像内容信息的急剧变化,图像块的混叠,或者是丢失像素的相关性都能够损害SR的性能。因此,用于SR的良好的DA方法不应存在不符合实际的模式或信息丢失,并且应该为SR模型良好的正则。

CutBlur能够满足这样的条件:首先,它仅仅在HR和LR图像块之间进行裁剪和粘贴,因此能够最小化边界效应;其次,它可以利用整个图像信息,同时由于样本具有随机的HR比率和位置,CutBlur具有正则化效果。

CutBlur satisfies these conditions because it performs cut-and-paste between the LR and HR image patches of the same content. By putting the LR (resp. HR) image region onto the corresponding HR (resp. LR) image region, it can minimize the boundary effect, which majorly comes from a mismatch between the image contents (e.g., Cutout and CutMix). Unlike Cutout, CutBlur can utilize the entire image information while it enjoys the regularization effect due to the varied samples of random HR ratios and locations.

模型从CutBlur中学到了什么?

与其他DA方法防止分类模型过分自信地做出决策的相似,CurBlur可以很好地避免SR模型过度锐化图像。

现在,模型必须同时学习“如何”和“何处”来超分辨率图像,这将导致模型学习“多少”它应该应用超分辨率,这为训练提供了有益的正则化效果。

When the SR model takes HR images at the test phase, it commonly outputs over-sharpened predictions, especially where the edges are (Figure 2). CutBlur can resolve this issue by directly providing such examples to the model during the training phase. Not only does CutBlur mitigate the over-sharpening problem, but it enhances the SR performance on the other LR regions, thanks to the regularization effect (Figure 3). Note that the residual intensity has significantly decreased in the CutBlur model. We hypothesize that this enhancement comes from constraining the SR model to dis- criminatively apply super-resolution to the image. Now the model has to simultaneously learn both “how” and “where” to super-resolve an image, and this leads the model to learn “how much” it should apply super-resolution, which pro- vides a beneficial regularization effect to the training.

实验

SR模型和数据集的规模影响

不同规模的SR模型

众所周知,一个大模型比一个小模型受益更多。为了验证这在SR中是否正确,根据模型大小设置不同的扩展应用概率:对于小模型(SRCNN和CARN)p=0.2,对于大模型(RCAN和EDSR),p=1.0。

对于小模型,这个方法没有提供任何好处,或者只是略微提高了性能。这表明了小型模型的严重不拟合,导致DA的影响很小。EDSR规模尚可,因此有所提升。

不同规模的数据集

减少了用于训练的数据量。使用数据集的50%,10%,和15%。

SRCNN和CARN提升很小或者干脆没有提升。培训时的验证曲线也可以看出这一点(图4a和4b)。RCAN和EDSR提升很大带来了巨大的好处。

不同数据集的比较

当使用了 CutBlur 对模型进行训练,模型在测试集上的性能得到了明显的提升,尤其是在RealSR数据集上,所有模型至少得到了0.22dB 的提升。而 CARN则能够在 RealSR测试集上达到SOTA性能(RCAN basline),性能与LP-KPN近似,使用参数量仅为LP-KPN的22%。

野外环境下的CutBlur

其他的一些low-level的视觉任务

贡献

来自原文叙述的主要贡献:

  • To the best of our knowledge, we are the first to provide comprehensive analysis of recent data augmentation methods when directly applied to the SISR task.

  • We propose a new DA method, CutBlur, which can reduce unrealistic distortions by regularizing a model to learn not only “how” but also “where” to apply the super-resolution to a given image.

  • Our mixed strategy shows consistent and significant improvements in the SR task, achieving state-of-the-art (SOTA) performance in RealSR [4].

其他

文章:
https://openaccess.thecvf.com/content_CVPR_2020/papers/Yoo_Rethinking_Data_Augmentation_for_Image_Super-resolution_A_Comprehensive_Analysis_and_CVPR_2020_paper.pdf

code:https://github.com/clovaai/cutblur

感想

  • 思路非常的新颖,也许会对目前所做的工作有所启发。

  • 比较简单。

< PreviousPost
论文研读:SISR-DRN
NextPost >
Clang+OpenMP:初步
CATALOG
  1. 1. 立意
  2. 2. CurBlur
    1. 2.1. 算法
    2. 2.2. 为什么CutBlur适用于SR?
    3. 2.3. 模型从CutBlur中学到了什么?
  3. 3. 实验
    1. 3.1. SR模型和数据集的规模影响
      1. 3.1.1. 不同规模的SR模型
      2. 3.1.2. 不同规模的数据集
    2. 3.2. 不同数据集的比较
    3. 3.3. 野外环境下的CutBlur
    4. 3.4. 其他的一些low-level的视觉任务
  4. 4. 贡献
  5. 5. 其他
  6. 6. 感想