文章链接:
https://arxiv.org/pdf/2402.19289
开源地址:
https://github.com/icandle/CAMixerSR
为满足对大尺寸图像(2K-8K)超分辨率(SR)不断增长的需求,主流方法遵循两个独立的路径:
尽管这些方法直接,但它们会遇到无法避免的缺陷(例如,不灵活的路线或非判别性处理),从而限制了进一步改善质量-复杂度权衡。为了消除这些缺点,本文将这些方案集成在一起,提出了内容感知混合器(CAMixer),它为简单的上下文分配卷积,为稀疏纹理提供额外的可变形窗口注意力。
具体而言,CAMixer使用可学习的预测器生成多个引导,包括用于窗口warping的偏移量,用于分类窗口的mask,以及用于赋予卷积动态属性的卷积注意力,这可以自适应地调节注意力以包含更多有用的纹理,并提高卷积的表示能力。进一步引入全局分类损失以提高预测器的准确性。通过简单地堆叠CAMixer,获得了CAMixerSR,它在大尺寸图像SR、轻量级SR和全景图像SR方面实现了卓越的性能。
先来看看效果图:
介绍
近年来,神经网络的研究显著提高了图像超分辨率(SR)的质量。然而,现有方法在生成视觉上令人愉悦的高分辨率(HR)图像的同时,在现实世界的应用中遭遇了密集的计算负担,特别是对于2K-8K分辨率的输入。为了减轻这种开销,许多
加速框架
和
轻量级网络
被引入用于实际的超分辨率应用。然而,这些方法是完全独立的,缺乏协作。
第一个策略,
加速框架
,基于这样一个观察:不同的图像区域需要不同的网络复杂性,这从变化的模型内容感知路线的角度解决了问题。如下图1中的中间图所示,它们将大输入图像分解为固定的块,并通过额外的分类网络将块分配给网络。ARM通过引入基于查找表的分类器和参数共享设计进一步发展了这一策略以提高效率。
尽管这些策略对所有神经网络都是通用的,但仍存在两个不可避免的缺陷。一是糟糕的分类和不灵活的分区。如图1所示,具有少量细节的窗口被错误地发送到简单模型。
另一个是有限的感受野。如下表2所示,将图像裁剪成块会限制感受野,从而影响性能。
第二个策略,
轻量级模型设计
,侧重于改进神经运算器(自注意力或卷积)和主干结构,以在有限的层内具有更强的特征表示能力,即利用更多的内部信息重构图像。例如,NGswin利用N-Gram自注意力来减少计算量并扩大感受野。IMDN引入了信息多重蒸馏以实现高效的块设计。尽管这些轻量级方法在720p/1080p图像上取得了令人印象深刻的效率,但它们很少用于更大的输入(2K-8K)。此外,这些方法忽略了不同内容可以被有区别地处理的内在特性。
本文首先整合了上述策略,其基础是得出的观察结论:不同特征区域需要不同级别的token混合器复杂性。如下表1所示,简单卷积(Conv)可以在简单块中与复杂卷积+自注意力(SA)表现类似。因此,这里提出了一个内容感知混合器(CAMixer),根据内容路线具有不同复杂性的token混合器。
如前面图1所示,CAMixer对于复杂的窗口使用复杂的自注意力(SA),对于简单的窗口使用简单的卷积。此外,为了解决ClassSR的局限性,引入了一个更复杂的预测器。这个预测器利用多种条件生成额外的有价值信息,从而增强CAMixer的分区准确性和表示效果。
基于CAMixer,构建了用于超分辨率任务的CAMixerSR。为了充分评估CAMixer的性能,进行了轻量级SR、大输入(2K-8K)SR和全方位图像SR的实验。如下图2所示,CAMixerSR在轻量级SR和加速框架上都取得了巨大的进步。
本文的贡献总结如下:
-
提出了一种内容感知混合器(CAMixer),整合了卷积和自注意力,可以通过将简单区域分配给卷积和复杂区域分配给自注意力,自适应地控制推理计算。
-
提出了一个强大的预测器,用于生成偏移、mask和简单的空间/通道注意力,调节CAMixer以更少的计算量捕获更长距离的相关性。
-
基于CAMixer,构建了CAMixerSR,展示了在三个具有挑战性的超分辨率任务上的最新质量-计算权衡:轻量级SR、大输入SR和全方位图像SR。
相关工作
超分辨率加速框架
。随着为了获得更好的恢复质量而不断增加的复杂性,超分辨率模型的实际应用变得更加困难,特别是对于2K-8K超分辨率。近期的研究从不同的角度解决了这个问题。他们不是设计轻量级模型,而是使用内容感知路线动态地将裁剪后的块发送到具有不同复杂性的模型。ClassSR 利用了一个3类分类器来确定由复杂/中等/简单网络计算的子图像,这使得在8K数据集上为RCAN节省了50%的计算量。PathRestore学习选择特征路径以根据上下文调整FLOPs。
轻量级超分辨率
。自从第一个使用卷积神经网络(ConvNet)进行超分辨率任务的作品SRCNN以来,为了更轻量级的推理,已经提出了许多减少复杂性的策略。早期的DRCN和DRRN尝试通过使用循环块来减少参数,但是遭受了密集的计算。为了减轻这个缺点,IDN和IMDN采用了高效的信息融合结构来减少参数和计算量。后来的ConvNet,如EFDN和RLFN进一步简化了信息蒸馏过程,并引入了重新参数化来在移动设备上实现实时推理。随着Transformer的快速发展,各种强大的token混合器,例如自注意力和大核卷积被引入到了轻量级超分辨率中。例如,SwinIR利用基于窗口的自注意力,MAN采用了大核卷积,这两种方法都取得了SOTA性能。尽管这些神经运算器能够捕获长距离的相关性,但它们耗费了大量计算。因此,本文将内容感知路线整合到token混合器设计中,该设计对于信息丰富的区域采用复杂的运算器,对于简单的区域采用简单的运算器。
方法
内容感知混合
CAMixer的概述如下图3所示。
CAMixer由三个主要组件组成:预测模块、注意力分支和卷积分支。给定输入特征
,首先通过逐点卷积投影到值
:
预测器
。基于局部条件
, 全局条件
,以及线性位置编码
,预测器首先计算共享的中间特征图F,然后生成偏移图、混合器mask和简单的空间/通道注意力:
其中,
是用于warp具有更复杂结构的窗口的与内容相关的偏移矩阵。
是一个标量, 用于控制偏移量的范围。
是根据注意力窗口大小
减少并重新排列的中间特征。
是决定裁剪窗口是否由注意力还是卷积计算的mask。
和
是用于增强卷积分支的空间和通道注意力。
注意力分支。
为了计算复杂区域的稀疏注意力, 使用偏移
来调制原始输入
, 通过双线性插值
来在所选窗口中包含更多有用的内容:
接下来, 根据窗口形状
重新排列
,
。在训练阶段, 应用Gumbel Softmax来计算二元mask
gumble softmax (m)用于困难和简单的token采样。在推理阶段, 通过对maskm进行降序排序
, 获得了稀疏注意力的前
个相关窗口的索引
, 以及其他
个用于卷积的
窗口的索引,其中
。将注意力补丁的比例表示为
根据这些索引, 通过以下方式将
和V分割:
在获得了
之后query
和键
是通过线性层生成的。
基于上述推导,复杂窗口的自注意力可以表示为:
对于用于轻量操作的
, 使用重新排列的
来通过逐元素乘法实现简单的注意力
总的来说, 利用这些索引将
和
整合在一起, 以获得注意力分支的输出
。
卷积分支
。利用深度可分离卷积和预先生成的通道注意力来捕获局部相关性,可以表示为
最后,CAMixer的输出通过逐点卷积进行投影,如下所示:
CAMixer
。总的来说,通过控制自注意力比例γ,调整了内容感知混合。当γ = 1时,CAMixer是自注意力和卷积的组合,类似于ACMix。当γ = 0时,CAMixer是一个纯卷积token混合器,复杂度较低。对于γ ∈ (0,1),CAMixer学习了内容感知混合,对于复杂区域使用复杂模式,对于普通区域使用简单模式。
复杂度分析
。在下表3中理论比较了卷积、基于窗口的自注意力和CAMixer的复杂度。
具体来说, CAMixer的FLOP包括三个部分: 卷积、注意力和预测器。给定C
的输入, 卷积分支利用深度可分离卷积, 计算成本为
。对于注意力分支, 四个投影操作的成本为
, 而注意力计算成本为
, 其中
是困难窗口的比例。对于预测器模块, 它添加了一系列计算:共享头部的
, mask的Mhw, 偏移量的
, 空间注意力的
, 以及通道注意力的
, 其中
是减少计算的缩减比例。
网络架构
通过修改SwinIR-light来构建CAMixerSR。通常,CAMixerSR包括四个组件,其中三个来自SwinIR:浅层特征提取器、深层特征提取器、重构模块,以及额外的全局预测器模块。此外,用CAMixer替换了基于窗口的自注意力,并减少了block数。
训练损失
这里描述了CAMixerSR的训练目标, 包括超分辨率框架和预测器的优化。跟随先前的工作[23, 37], 我们采用主要的
损失来训练主干网络。假设输入批次包含
个图像对, 即