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 图像信息与位置相关联,从而模型不仅需要去学习超分过程,还需要学习如何根据当前位置信息进行判断是否进行超分。想法确实很新奇,值的好好去思考思考。

相关文章
|
21天前
|
机器学习/深度学习 人工智能 编解码
OminiControl:AI图像生成框架,实现图像主题控制和空间精确控制
OminiControl 是一个高度通用且参数高效的 AI 图像生成框架,专为扩散变换器模型设计,能够实现图像主题控制和空间精确控制。该框架通过引入极少量的额外参数(0.1%),支持主题驱动控制和空间对齐控制,适用于多种图像生成任务。
62 10
OminiControl:AI图像生成框架,实现图像主题控制和空间精确控制
|
机器学习/深度学习
深度学习数据增强方法-内含(亮度增强,对比度增强,旋转图图像,翻转图像,仿射变化扩充图像,错切变化扩充图像,HSV数据增强)七种方式进行增强-每种扩充一张实现7倍扩)+ 图像缩放代码-批量
深度学习数据增强方法-内含(亮度增强,对比度增强,旋转图图像,翻转图像,仿射变化扩充图像,错切变化扩充图像,HSV数据增强)七种方式进行增强-每种扩充一张实现7倍扩)+ 图像缩放代码-批量
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
图像数据增强库综述:10个强大图像增强工具对比与分析
在深度学习和计算机视觉领域,数据增强是提升模型性能和泛化能力的关键技术。本文全面介绍了10个广泛使用的图像数据增强库,分析其特点和适用场景,帮助研究人员和开发者选择最适合需求的工具。这些库包括高性能的GPU加速解决方案(如Nvidia DALI)、灵活多功能的Albumentations和Imgaug,以及专注于特定框架的Kornia和Torchvision Transforms。通过详细比较各库的功能、特点和适用场景,本文为不同需求的用户提供丰富的选择,助力深度学习项目取得更好的效果。选择合适的数据增强库需考虑性能需求、任务类型、框架兼容性及易用性等因素。
407 11
|
7月前
|
机器学习/深度学习 编解码 自然语言处理
YOLOv8改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
YOLOv8改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
471 2
|
7月前
|
机器学习/深度学习 自然语言处理
YOLOv5改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
YOLOv5改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)
359 2
|
5月前
|
人工智能 自然语言处理 测试技术
将图像自动文本化,图像描述质量更高、更准确了
【7月更文挑战第11天】AI研究提升图像文本化准确性:新框架IT融合多模态大模型与视觉专家,生成详细无幻觉的图像描述。通过三个阶段—全局文本化、视觉细节提取和重描述,实现更高质量的图像转文本。研究人员建立DID-Bench、D2I-Bench和LIN-Bench基准,展示描述质量显著提升。尽管有进步,仍面临幻觉、细节缺失及大规模处理挑战。[论文链接](https://arxiv.org/pdf/2406.07502v1)**
45 1
|
7月前
|
机器学习/深度学习 算法 搜索推荐
【实操】数据扩增:Retinex算法用于图像颜色恢复和对比度增强
【实操】数据扩增:Retinex算法用于图像颜色恢复和对比度增强
133 0
【实操】数据扩增:Retinex算法用于图像颜色恢复和对比度增强
带你读《5G大规模天线增强技术》——2.4.8 小尺度计算增强(2)
带你读《5G大规模天线增强技术》——2.4.8 小尺度计算增强(2)
带你读《5G大规模天线增强技术》——2.4.8 小尺度计算增强(2)
|
5G 定位技术 Windows
带你读《5G大规模天线增强技术》——2.4.8 小尺度计算增强(1)
带你读《5G大规模天线增强技术》——2.4.8 小尺度计算增强(1)
|
传感器 机器学习/深度学习 算法
CVPR 2023 | 移动传感器引导的跨时节六自由度视觉定位,准确且高效
CVPR 2023 | 移动传感器引导的跨时节六自由度视觉定位,准确且高效
232 0