CVPR2020丨重新思考图像超分辨率的数据增强:综合分析和一个新的策略

简介: 从表3中可以看到,当使用了 CutBlur 对模型进行训练,模型在测试集上的性能得到了明显的提升,尤其是在 RealSR 数据集上,所有模型至少得到了0.22dB 的提升。而 CARN则能够在 RealSR测试集上达到 SOTA 性能(RCAN basline),性能与 LP-KPN近似,使用参数量仅为 LP-KPN 的22%。从图7也可以看到,残差强度图在使用 CutBlur 方法后得到误差明显的下降。

640.jpg


CPVR2020论文:Rethinking Data Augmentation for Image Super-resolution: A Comprehensive Analysis and a New Strategy


数据增强是一种被认为能够有效提高模型性能的方法,而许多数据增强的方法也都是用于High-level 的视觉任务,并不适合图像超分辨率任务。这篇论文对现有目前应用于图像超分辨率任务的数据增强方法进行了综合的分析,发现通过对图像像素或者特征操作或者丢弃的方法会严重影响图像复原,这是因为图像的空间关系很重要,但是这些操作破坏了图像的空间关系。


640.jpg

                                                图1. CutBlur与其他方法对比


基于这样的分析,论文提出了新的数据增强方法——CutBlur。它通过将低分辨率图像中的图像块裁剪并张贴在高分辨率图像中的对应位置,反之也一样。CurBlur 的关键在于让模型不仅知道如何超分,同时也知道哪里需要超分。


通过这样的方法,模型能够自适应地去决定图像多大程度上去应用超分而不是盲目地对所有像素进行超分。


640.jpg

                                                                      图2. CutBlur 操作


CurBlur

假设给定LR 图像image.png 和 HR 图像块image.png ,其中s 是放大倍数。如图2所示,由于 CurBlur 需要匹配LR 图像和 HR图像的分辨率,所以会对 LR 图像进行 s 倍的双三次插值。CurBlur 然后就会生成成对的训练样本  :


image.png


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


源码如下:

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


需要注意的是:输入两个图像的维度必须一样,生成的结果示例如下图所示。


640.jpg

                                                              图3.CutBlur 最终效果


数据增强相关方法分析


640.jpg

                                        表1.不同数据增强方法对 SR 性能的影响

640.jpg

                                                               图4. 不同 DA 方法效果图


图4展示了不同 DA 方法处理图像之后的结果。Blend 方法和 RGB permute 方法会改变图像的色彩信息,但不会去改变图像的结构信息。Cutout 方法则通过裁剪矩形区域使得一部分区域的图像像素值为0,这里裁剪比例控制为0.1%,这是因为裁剪比例过大会导致 SR 性能的急剧下降 (25%会使得性能下降0.1dB)。Mixup、CutMix、CutMixup(由论文作者提出) 则通过组合不同的图像内容信息进行混合,同时改变图像的色彩和结构信息。


为了对比现有数据增强方法对 SR 模型性能的影响,论文应用不同的数据增强方法和DIV2K 数据集和 RealSR 数据集,从头开始训练 EDSR x4模型。


PS:由于 CutBlur 生成的图像与 GT 图像尺寸相同,因此论文中用于训练的SR模型+CutBlur 网络前端会加入一个 desubpixel 层(逆次像素卷积),用于将输入image.png转为image.png


从表1可以看到,不同的数据增强方法也都能在一定程度上提升SR 模型性能。不过CutMix提升较为微弱,这可能是因为CutMix 方法使得图像内容信息变化较为剧烈,生了明显的边界。Mixup 虽然能够提升性能,但是它也会存在图像内容混淆,从而使得模型无法很好地分辨图像内容信息。


于是作者提出了Mixup和CutMix的变体,CutMixup能够取得比 Baseline以及前两个 DA 方法更好的性能。CutMixup 能够最小化边界效应以及混合图像上下文信息的比率。最后RGB permute和 Blend 方法 能够明显提升 SR 性能。


当应用CutBlur时,比其它DA 方法更能明显提升SR 性能,并且真实数据集RealSR上的提升比模拟数据集更大。


为什么 CutBlur 适用于 SR?


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


CutBlur能够满足以上的条件:


1.它仅仅在 HR 和 LR 图像块之间进行裁剪和粘贴,因此能够最小化边界效应。


2.它可以利用整个图像信息,同时由于样本具有随机的HR比率和位置,CutBlur具有正则化效果。

640.jpg

640.jpg

640.jpg

                                  图5. w/o CutBlur 和 w/ CutBlur SR 生成图像的定性比较。


640.jpg

                              图6. w/o CutBlur 和 w/ CutBlur SR 生成图像的定性比较。


模型通过CutBlur 能够学习到什么?


与其他DA 方法防止分类模型过分自信地做出决策的相似,CurBlur 可以很好地避免SR 模型过度锐化图像。图 5 和图 6可以看到,当直接使用HR 图像作为输入时,模型会产生过度锐化的结果,在边缘位置尤为明显。CutBlur可以通过在训练阶段直接向模型提供此类示例来解决此问题。因为 HR 图像是 CutBlur 方法生成的图像的特殊样例。


使用 CutBlur的 EDSR 方法能够大大降低残差强度图中的数值,意味着与GT图像之间的误差更小。因此,CurBlur很可能是通过约束SR模型以区别地将超分辨率应用于图像,实现了这样的效果。这是因为模型同时需要去学习如何以及在哪里超分图像,从而使得模型需要多大程度去应用超分,从而为 SR 模型训练提供了有益的正则化效果。


实验

首先论文研究了不同模型和数据集使用 CutBlur 的影响。


不同规模的SR模型

对于小模型如 SRCNN和CARN,使用 DA 的概率为p=0.2  ,对于大模型EDSR 和 RCAN,p=1 。可以看到,CutBlur在小模型上的提升并不明显。这主要是模型严重的欠拟合,模型表征不足使得 DA 的作用非常小。这也可以看到RCAN 和 EDSR 在使用了 CutBlur 之后,性能得到了明显的提升。


不同规模的数据集


当训练数据的规模不同的时候,可以看到 SRCNN 和 CARN的提升并不明显,甚至在 SRCNN 上还会有下降,但是另外一方面,Cutblur 能够使得RCAN 和 EDSR 得到较大的提升,并且 RCAN 仅仅使用一半的数据进行训练就能够达到原有的性能表现。


640.jpg

                                      表2.不同 规模 SR模型和数据规模应用 CutBlur后的效果


Benchmark 对比


从表3中可以看到,当使用了 CutBlur 对模型进行训练,模型在测试集上的性能得到了明显的提升,尤其是在 RealSR 数据集上,所有模型至少得到了0.22dB 的提升。而 CARN则能够在 RealSR测试集上达到 SOTA 性能(RCAN basline),性能与 LP-KPN近似,使用参数量仅为 LP-KPN 的22%。从图7也可以看到,残差强度图在使用 CutBlur 方法后得到误差明显的下降。


640.jpg

                                                 表3. Benchmark数据集对比

640.jpg

                                      图7. CutBlur 方法和 不同baseline生成结果可视化对比。


CutBlur应用于真实图像


640.jpg

图8.CutBlur 方法和 EDSR baseline 在 真实图像上的生成结果可视化对比。LR 图像是通过biucbic 2倍降采样获得。


图8对比了不同的 baseline 和 CutBlur 模型在真实图像上生成结果。左边图来源于互联网,右边图则直接由 iphone11 pro 直接拍摄。可以看到baseline 模型在草丛上添加额外不真实的细节(左边),而在右边图像中会在硬币和字体周围生成明显的鬼影。而CutBlur模型适当地对图像的前景和背景进行超分,并且不会添加任何不真实的失真。


除了超分之外,论文还将 CutBlur 方法应用于其它 Low-level的任务。以下是一些效果对比图,具体的细节就不过多介绍了,有兴趣的小伙伴可以去阅读原 Paper。


640.jpg

                                                     Color Gaussian denoising


640.jpg

                                                    Color JPEG artifact removal


总结


论文提出了一个新的数据增强方法 CutBlur ,用于有监督的训练 SR 模型。通过学习如何以及在哪里对图像进行超分,模型能够根据区域内的图像信息进行判断,多大程度上去应用超分辨率。因而实验证明,CutBlur 能够明显提升 SR 模型的性能,尤其是在 Real-world 数据集上效果更优。除此之外,在其他 Low-level 任务如图像去噪,JPEG 伪影去除等上都表现出出色的性能增强。


因此它是一种非常有效的,用于SR 任务的数据增强方法。其实仔细去想,CutBlur之所以有效,一个不可忽视的点在于,它将 HR 图像部分信息引入到 LR 图像,而这些信息也包涵LR 图像中丢失的高频信息,并且将HR 图像信息与位置相关联,从而模型不仅需要去学习超分过程,还需要学习如何根据当前位置信息进行判断是否进行超分。想法确实很新奇,值的好好去思考思考。

相关文章
|
机器学习/深度学习 自然语言处理 算法
浅述几种文本和图像数据增强的方法
在现实场景中,我们往往收集不到太多的数据,那么为了扩大数据集,可以采用数据增强手段来增加样本,那么平常我们应该怎么做数据增强的呢? 什么是数据增强 数据增强也叫数据扩增,意思是在不实质性的增加数据的情况下,让有限的数据产生等价于更多数据的价值。
|
机器学习/深度学习 传感器 编解码
一文详解视觉Transformer在CV中的现状、趋势和未来方向(分类/检测/分割/多传感器融合)(中)
本综述根据三个基本的CV任务和不同的数据流类型,全面调查了100多种不同的视觉Transformer,并提出了一种分类法,根据其动机、结构和应用场景来组织代表性方法。由于它们在训练设置和专用视觉任务上的差异,论文还评估并比较了不同配置下的所有现有视觉Transformer。此外,论文还揭示了一系列重要但尚未开发的方面,这些方面可能使此类视觉Transformer能够从众多架构中脱颖而出,例如,松散的高级语义嵌入,以弥合视觉Transformer与序列式之间的差距。最后,提出了未来有前景的研究方向。
一文详解视觉Transformer在CV中的现状、趋势和未来方向(分类/检测/分割/多传感器融合)(中)
|
机器学习/深度学习
深度学习数据增强方法-内含(亮度增强,对比度增强,旋转图图像,翻转图像,仿射变化扩充图像,错切变化扩充图像,HSV数据增强)七种方式进行增强-每种扩充一张实现7倍扩)+ 图像缩放代码-批量
深度学习数据增强方法-内含(亮度增强,对比度增强,旋转图图像,翻转图像,仿射变化扩充图像,错切变化扩充图像,HSV数据增强)七种方式进行增强-每种扩充一张实现7倍扩)+ 图像缩放代码-批量
|
3月前
|
机器学习/深度学习 编解码 自然语言处理
YOLOv8改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
YOLOv8改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
154 2
|
3月前
|
机器学习/深度学习 自然语言处理
YOLOv5改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
YOLOv5改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
140 2
|
29天前
|
机器学习/深度学习 编解码 人工智能
什么样才算好图——从生图模型质量度量方法看模型能力的发展(下)
什么样才算好图——从生图模型质量度量方法看模型能力的发展(下)
23 1
|
29天前
|
机器学习/深度学习 数据采集 计算机视觉
什么样才算好图——从生图模型质量度量方法看模型能力的发展(上)
什么样才算好图——从生图模型质量度量方法看模型能力的发展
41 1
|
2月前
|
机器学习/深度学习 算法 定位技术
医学图像增强系统的设计_kaic
医学图像增强系统的设计_kaic
|
9月前
|
存储 传感器 编解码
苹果、俄勒冈州立提出AutoFocusFormer: 摆脱传统栅格,采用自适应下采样的图像分割
苹果、俄勒冈州立提出AutoFocusFormer: 摆脱传统栅格,采用自适应下采样的图像分割
|
12月前
|
编解码 数据可视化 UED
图像大面积缺失,也能逼真修复,新模型CM-GAN兼顾全局结构和纹理细节(2)
图像大面积缺失,也能逼真修复,新模型CM-GAN兼顾全局结构和纹理细节
230 0