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

相关文章
|
机器学习/深度学习 SQL 分布式计算
Spark核心原理与应用场景解析:面试经验与必备知识点解析
本文深入探讨Spark核心原理(RDD、DAG、内存计算、容错机制)和生态系统(Spark SQL、MLlib、Streaming),并分析其在大规模数据处理、机器学习及实时流处理中的应用。通过代码示例展示DataFrame操作,帮助读者准备面试,同时强调结合个人经验、行业趋势和技术发展以展现全面的技术实力。
1313 0
|
数据采集 存储 人工智能
TripoSR开源!从单个图像快速生成 3D 对象!(附魔搭社区推理实战教程)
近期,VAST团队和Stability AI团队合作发布了TripoSR,可在一秒内从单个图像生成高质量3D对象。
uView time 时间格式
uView time 时间格式
232 0
|
9月前
|
机器学习/深度学习 编解码 人工智能
InvSR:开源图像超分辨率生成模型,提升分辨率,修复老旧照片为超清图像
InvSR 是一个创新的图像超分辨率模型,基于扩散模型的逆过程恢复高分辨率图像。它通过深度噪声预测器和灵活的采样机制,能够高效地提升图像分辨率,适用于老旧照片修复、视频监控、医疗成像等多个领域。
1606 9
InvSR:开源图像超分辨率生成模型,提升分辨率,修复老旧照片为超清图像
|
开发者
LaTeX高效写作系列:word表格转LaTeX
Fancy版本见九天学者的个人博客,关注文集博士干点啥或者微信公众号九天学者及时获取连载更新。 如何将word表格转为格式 迫于无奈从刚开始学习计算机就上了某软这条贼船,不少情况下,将表格写为了word文件。
3541 0
LaTeX高效写作系列:word表格转LaTeX
|
机器学习/深度学习 开发框架 .NET
YOLOv5的Tricks | 【Trick6】学习率调整策略(One Cycle Policy、余弦退火等)
YOLOv5的Tricks | 【Trick6】学习率调整策略(One Cycle Policy、余弦退火等)
3889 0
YOLOv5的Tricks | 【Trick6】学习率调整策略(One Cycle Policy、余弦退火等)
|
5月前
|
人工智能 自然语言处理 API
8.6K star!完全免费+本地运行+无需GPU,这款AI搜索聚合神器绝了!
FreeAskInternet是一款革命性的开源项目,它完美结合了多引擎搜索和智能语言模型,让你在不联网、不花钱、不暴露隐私的情况下,获得媲美ChatGPT的智能问答体验。这个项目最近在GitHub上狂揽8600+星,被开发者称为"本地版Perplexity"。
201 2
|
10月前
|
人工智能 运维 Serverless
Serverless GPU:助力 AI 推理加速
近年来,AI 技术发展迅猛,企业纷纷寻求将 AI 能力转化为商业价值,然而,在部署 AI 模型推理服务时,却遭遇成本高昂、弹性不足及运维复杂等挑战。本文将探讨云原生 Serverless GPU 如何从根本上解决这些问题,以实现 AI 技术的高效落地。
921 42
|
12月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的反诈视频宣传系统
基于Java+Springboot+Vue开发的反诈视频宣传系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的反诈视频宣传管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
209 4
基于Java+Springboot+Vue开发的反诈视频宣传系统
|
12月前
|
机器学习/深度学习 数据采集 计算机视觉
深度学习之缺失数据的图像修复
基于深度学习的缺失数据图像修复是一种通过深度学习技术填补图像中缺失或损坏部分的过程。这种技术在图像处理领域具有重要意义,能够改善图像的视觉质量,并在许多实际应用中发挥作用,如图像恢复、视频编辑和图像生成等。
302 4