你是否曾放大一张照片,结果只看到一团模糊、充满像素块的马赛克?将低分辨率 (LR) 图像转换为清晰、高分辨率 (HR) 杰作的探索,是单图像超分辨率 (SISR) 的核心挑战。这项技术应用广泛——从增强医学扫描以获得更准确的诊断,到为安全目的澄清监控录像。

多年来,深度学习模型在 SISR 领域一直处于领先地位,它们学习将低分辨率图像映射到高分辨率输出。一个重大的突破是非局部注意力 (NLA) 的引入。其思想看似简单: 为了重建图像的一个小块 (例如,墙上的一块砖) ,模型可以在图像的其他地方寻找视觉上相似的砖块,并借鉴它们的细节。这使得模型能够全局性地利用图像的内部相关性和纹理,远远超出了其局部感受野。

然而,NLA 有两大弱点:

  1. 二次方计算复杂度: 随着图像尺寸的增加,将每个像素与所有其他像素进行比较的成本会迅速增长。
  2. 噪声聚合: NLA 会为所有像素 (包括不相关的像素) 分配权重,这可能会引入伪影并降低重建质量。

正是在这里,2022 年的论文《用于图像超分辨率的高效非局部对比注意力》(Efficient Non-Local Contrastive Attention for Image Super-Resolution) 提供了一种颠覆性的方法。作者提出了高效非局部对比注意力 (ENLCA) ,这是一种既快速精确的方法,直面 NLA 的效率和噪声问题。

不同注意力机制在蝴蝶翅膀上的相关性图谱可视化。非局部注意力是分散的,NLSA 错失了一些特征,而 ENLCA 则聚焦于相关的翅脉纹理。

图 1: 标准 NLA (b) 的注意力分散在不相关区域。NLSA (c) 更具选择性,但错失了重要模式。ENLCA (d) 精准地锁定了蝴蝶翅膀上的关键翅脉结构。

在本文中,我们将剖析 ENLCA 的核心组成部分——它如何实现线性复杂度,如何强制稀疏注意力,以及如何利用对比学习来进一步锐化焦点。


背景: 非局部注意力的优势与陷阱

想象一下修复一幅画。要修复一块褪色的蓝天,你不会只看它旁边的像素——你会在画作中寻找其他蓝天区域作为参考。

NLA 的工作原理与此相同。对于每个像素或特征位置 \(i\) (查询 Query) ,它会与所有其他位置 \(j\) (键 Keys) 进行比较,计算相似度得分。这些得分决定了权重,用于形成所有特征 (值 Values) 的加权和,从而使模型能够整合来自整个图像的信息。

形式上:

\[ \boldsymbol{Y}_i = \sum_{j=1}^{N} \frac{\exp\left( \boldsymbol{Q}_i^{T} \boldsymbol{K}_j \right)}{\sum_{\hat{j}=1}^{N} \exp\left( \boldsymbol{Q}_i^{T} \boldsymbol{K}_{\hat{j}}\right)} \boldsymbol{V}_j \]

其中:

\[ \boldsymbol{Q} = \theta(\boldsymbol{X}), \quad \boldsymbol{K} = \delta(\boldsymbol{X}), \quad \boldsymbol{V} = \psi(\boldsymbol{X}) \]

NLA 为何陷入困境

  1. 二次方复杂度: 构建一个 \(N \times N\) 的相似度矩阵意味着随着 \(N\) 的增长,成本会爆炸式增加。图像的宽和高都翻倍会使 \(N\) 增加四倍,从而使成本增加 16 倍
  2. 噪声聚合: Softmax 会为所有特征 (即使是不相关的特征) 分配非零权重,从而将不必要的噪声引入重建过程。

之前的工作如非局部稀疏注意力 (NLSA) 使用哈希方法来降低成本,但这有可能会错失关键的相关性。ENLCA 的设计旨在解决这两个局限性。


ENLCA 的两大步骤

ENLCA 的设计包含两个关键阶段:

  1. 高效非局部注意力 (ENLA) ,以降低复杂度。
  2. 稀疏聚合对比学习,以过滤噪声。

第一部分: 高效非局部注意力 (ENLA)

ENLA 解决了二次方复杂度问题。标准的 NLA 需要构建一个巨大的 \(N \times N\) 矩阵 \( \exp(\boldsymbol{Q}^T \boldsymbol{K})\)。而 ENLA 则使用核方法——特别是指数核的随机傅里叶特征近似——来近似这一项。

关键结果如下:

\[ K(\boldsymbol{Q}_i, \boldsymbol{K}_j) = \exp\left( \boldsymbol{Q}_i^{T} \boldsymbol{K}_j \right) \approx \phi(\boldsymbol{Q}_i)^{T} \phi(\boldsymbol{K}_j) \]

这里,\(\phi(\cdot)\) 使用高斯随机投影将特征转换到一个新的空间,得益于矩阵乘法的结合律,可以重新排列计算顺序。这意味着我们完全避免显式计算完整的 \(N \times N\) 注意力矩阵。

高效非局部注意力 (ENLA) 模块的架构。

图 2: ENLA 架构。通过先计算 \(\phi(K)V\),再乘以 \(\phi(Q)\),消除了二次方复杂度的瓶颈,将计算成本降至与 \(N\) 呈线性关系。

近似的注意力输出:

\[ \hat{Y} = D^{-1} \left( \phi(Q)^{\top} \left( \phi(K) V^{\top} \right) \right) \]

\[ \boldsymbol{D} = \operatorname{diag}\left[ \phi(\boldsymbol{Q})^{\top} \left( \phi(\boldsymbol{K}) \boldsymbol{1}_N \right) \right] \]

有了 ENLA,计算量从 \(O(N^2)\) 降至 \(O(N)\),使得在更大尺寸的图像上应用全局注意力成为可能。


第二部分: 稀疏聚合 + 对比学习

即使是高效的注意力机制,仍然可能聚合不相关的特征。ENLCA 通过两个步骤来强制实现稀疏性:

步骤 1: 放大因子 \(k\)

对向量进行缩放:

\[ \boldsymbol{Q} = \sqrt{k} \frac{\theta(\boldsymbol{X})}{\|\theta(\boldsymbol{X})\|}, \quad \boldsymbol{K} = \sqrt{k} \frac{\delta(\boldsymbol{X})}{\|\delta(\boldsymbol{X})\|} \]

这增强了真正相关特征之间的相似性,并抑制了较弱、不相关的特征——从而驱动注意力权重趋向于稀疏分布。

然而,增加 \(k\) 也会使核近似的方差呈指数级增长:

\[ \operatorname{Var}\left(\phi(\boldsymbol{Q}_i)^{T}\phi(\boldsymbol{K}_j)\right) = \frac{1}{m}K^2(\boldsymbol{Q}_i, \boldsymbol{K}_j) \left( \exp(\|\boldsymbol{Q}_i + \boldsymbol{K}_j\|^{2}) - 1 \right) \]

因此,虽然 \(k\) 有帮助,但过大的值会破坏近似的稳定性。

步骤 2: 对比学习

为了在将 \(k\) 推得过高的情况下更好地区分相关和不相关特征,ENLCA 整合了对比学习

对于每个查询 \(Q_i\):

  1. 计算与所有键 \(K_j\) 的归一化点积相似度:
    \[ T_{i,j} = k \frac{\boldsymbol{Q}_i^{\top}}{\|\boldsymbol{Q}_i\|} \frac{\boldsymbol{K}_j}{\|\boldsymbol{K}_j\|} \]
  2. 按降序对相似度进行排序:
    \[ T'_i = \operatorname{sort}(T_i, \text{Descending}) \]
  3. 将前 \(n_1\%\) 的样本视为正样本 (相关的) ,并从 \(n_2\%\) 处取一部分作为负样本 (不相关的) 。
  4. 应用一个自定义的对比损失函数,以拉近正样本并推远负样本。

对比学习方案示意图。

图 4: 绿色 = 相关特征 (正样本) ,蓝色 = 不相关特征 (负样本) 。对比损失增大了特征空间中的分离度,有助于实现稀疏性。

最终损失函数:

\[ \mathcal{L} = \mathcal{L}_{rec} + \lambda_{cl} \mathcal{L}_{cl} \]

ENLCN: 整合一切

作者将五个 ENLCA 模块嵌入到一个标准的 EDSR 主干网络 (32 个残差块) 中,构建了高效非局部对比网络 (ENLCN)

ENLCN 网络架构。

图 3: ENLCN 在 EDSR 网络中每隔八个残差块插入一个 ENLCA 模块。


结果: 效率与准确性的结合

定量性能

在与 13 种最先进算法的对比中,ENLCN 在 ×2 和 ×4 放大倍数的基准测试中占据主导地位。

定量结果表。

表 1: ENLCN 在各个数据集上始终能取得最好或次好的 PSNR/SSIM 值。


定性性能

在 Urban100 数据集上,ENLCN 生成了更清晰、更自然的纹理。

Urban100 数据集中建筑图像的超分辨率结果视觉对比。

图 5: ENLCN 更好地重建了窗户格栅和建筑立面等精细结构。


消融研究洞见

为了验证每个设计选择的有效性,作者进行了有针对性的消融研究。

消融研究表。

表 2: 每个组件都提升了性能;仅 ENLA 就带来了 +0.16 dB 的提升,而完整的 ENLCA 相较于基线模型提升了 +0.27 dB。

寻找最优 \(k\)

放大因子权衡图。

图 6: PSNR 在 \(k=6\) 时达到峰值,此时稀疏性强且方差仍在可控范围内。

稀疏聚合的可视化

使用 k 和对比学习后注意力图的演变。

图 7: 放大因子 \(k\) 使注意力更集中;对比学习则进一步优化了相关区域与不相关区域的分离。


效率提升

ENLCA 不仅更准确——它的效率也大大提高。

效率表: GFLOPs vs PSNR。

表 4: ENLCA-m128 以 0.66 GFLOPs 的计算量实现了最高的准确率——其成本与卷积相当,但性能优于 NLA 和 NLSA。


结论: 更清晰的视觉,更智能的聚焦

高效非局部对比注意力框架优雅地解决了 NLA 的双重问题: 计算效率低下和噪声聚合。通过结合:

  • **基于核的近似 **(线性复杂度) ,
  • **通过放大因子实现稀疏聚合 **(聚焦) ,
  • **对比学习 **(精细分离) ,

ENLCA 以速度和精度实现了最先进的超分辨率性能。

除了 SISR,ENLCA 的原理——高效的全局注意力和内容驱动的稀疏性——可能会改变其他领域,如视频分析、医学成像,以及任何需要智能长程特征建模的任务。有时候,看清全局的关键在于确切地知道哪些像素最重要