跳转至

CUST : Clustered Unit-level Similarity Transformer for Lightweight Image Super-Resolution

会议: ECCV 2026
Paper: https://eccv.ecva.net/virtual/2026/poster/4220
PDF: https://media.eventhosts.cc/Conferences/ECCV2026/pdfs/4987.pdf
代码: https://github.com/jwgdmkj/CUST
领域: 图像恢复 / 轻量图像超分辨率
关键词: 相似性聚类、跨窗口注意力、高频残差、重叠窗口、硬件效率

一句话总结

CUST 先按窗口代表特征把远处相似 patch 聚在一起做注意力,再以降采样重建误差引导局部细节修复,使 CUST-Base 在五个 ×4 基准上较 CATANet 平均提高 0.094 dB,同时由另一个配置 Base+ 展示显存与延迟的实用折中。

研究背景与动机

单图像超分辨率需要从低分辨率输入恢复边缘、线条与重复纹理。卷积网络擅长局部处理,但难以直接借用远处的相似结构;全局注意力可以连接远程位置,却要承担随空间 token 数平方增长的代价。SwinIR 等窗口方法降低了注意力成本,也把信息交换限制在局部窗口内。对于建筑立面和漫画线条,真正有帮助的参考纹理未必位于相邻空间位置,单纯扩大窗口又会增加显存与运行时间。

超像素或代表 token 路线尝试按内容组织交互,但代表 token 的生成、全图相似度以及数据搬运也可能成为实际瓶颈。CUST 因而没有只追求更少参数或 FLOPs,而是把问题拆成两种互补的信息需求:在比窗口更大的有限区域内找到相似结构,再在局部恢复被平滑过程抹去的高频细节。前者不必构造全图两两关系,后者也不必靠持续增大注意力窗口解决。

核心 idea:用窗口池化代表引导跨窗口内容聚类,以有掩码的邻簇扩展保持相关信息连通,再用特征的降采样重建残差补偿小窗口丢失的高频细节。

方法详解

整体框架

输入为低分辨率 RGB 图像,先经过一个 3×3 卷积提取浅层特征。随后堆叠深层提取块,每块按 CANA、ConvFFN、MEDA、ConvFFN 的顺序处理,配有四个 LayerNorm。CANA 负责跨窗口内容交互,MEDA 负责误差引导的局部纹理修复;最后由重建模块上采样,并与输入的全局残差支路融合得到高分辨率结果。

下面将 CANA 内部的聚类路由与邻簇注意力分开呈现,MEDA 的误差提取、门控和重叠注意力合为一个设计。图中三项贡献按实际顺序相接,ConvFFN 是块内通用的特征加工环节。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["低分辨率输入<br/>3×3 浅层卷积"] --> B["窗口代表聚类<br/>CANA 路由"]
    B --> C["邻簇扩展与掩码<br/>CANA 注意力"]
    C -->|ConvFFN| D["高频误差补偿<br/>MEDA 重叠注意力"]
    D -->|ConvFFN 后继续堆叠| B
    D -->|最后一块经 ConvFFN| E["重建与上采样<br/>融合全局残差"]
    A -->|输入残差支路| E

关键设计

1. 窗口代表聚类:把空间邻接改为搜索区域内的内容邻接

CANA 首先将特征图分成大小为 \(GS\times GS\) 的搜索区域,每个区域再划成 \(ws\times ws\) 的窗口。以窗口大小为核与步长做非重叠平均池化,每个窗口得到一个代表 token,因此每个搜索区域有 \((GS/ws)^2\) 个代表。代表只是内容匹配的参照,不是把所有原始 patch 永久压缩掉的输出。接着计算区域内每个 patch 与所有窗口代表的点积相似度,用 argmax 给 patch 分配一个代表 ID,再按该 ID argsort,把分散在不同窗口、却认同同一个代表的 patch 排到一起。

关键区别在于搜索范围和交互对象:跨越的是原始窗口边界,但单次路由仍限于搜索区域,不能把它描述成无限制的全图注意力。默认 \(ws=8\)\(gs=GS/ws=10\),对应 \(80\times80\) 区域和 100 个窗口代表。排序后的序列以预设容量分块用于注意力,同一代表下的 patch 太多时可以占据多个相邻块。因此“同一语义组”与“一个固定容量计算块”不能简单画等号。池化、一次相似度计算与排序避免了迭代生成代表,但并不意味着路由与排序没有开销。

2. 邻簇扩展与掩码:修补固定容量分块造成的相关信息断裂

同一个代表 ID 下的 patch 若在计算块边界被截断,只在块内做注意力仍会漏掉相关结构。CANA 以当前块作为 Query,把上一块的后半部分、当前整块和下一块的前半部分拼成扩展 Key/Value 候选。如果块长相同,内部块的候选长度是原块的两倍,而不是对整个搜索区域做稠密注意力。这里“邻簇”指排序后的相邻计算块,不是图像中的上下左右邻域;对边缘块的具体补齐策略,缓存正文没有给出。

按代表 ID 排序并不保证不同 ID 之间的数字距离有语义意义,因此扩展之后必须过滤。掩码只允许 Query 与 Key 的分配代表 ID 相同;它检查的不是二者最初来自哪个空间窗口。依据正文定义,核心运算可以写成以下可读形式:

\[ Y_n=\operatorname{GELU}\!\left[\operatorname{Softmax}\!\left(\frac{Q_nK_{\mathrm{exp}}^\top}{\sqrt d}+M\right)V_{\mathrm{exp}}\right]\odot G_n, \qquad M_{ij}=\begin{cases}0,&a_i=a_j,\\-\infty,&a_i\ne a_j.\end{cases} \]

其中 \(a_i\) 是分配的窗口代表 ID,\(d\) 是注意力缩放维度,\(G_n\) 是可学习门控。缓存公式排版中的部分运算符缺失,上式按正文对加性掩码的定义整理,并非新增方法。门控调节聚合后的响应;原文没有在此交代门控的完整参数化,不能自行指定其激活或投影结构。聚类只改变交互组织,接入后续空间模块时仍需对应回原空间位置,具体重排实现也未由正文展开。

3. 高频误差补偿:先标出平滑丢失的信息,再做局部重叠注意力

MEDA 的出发点不是“再扩大一次全局感受野”,而是让有限的局部注意力更容易识别该修什么。先将 CANA 后的特征降采样再上采样,所得平滑特征与原特征相减,得到 \(X_{\mathrm{error}}=X-\operatorname{Up}(\operatorname{Down}(X))\)。这个误差发生在特征空间,不是超分输出与高分辨率真值之间的监督误差;它突出了平滑操作难以保留的边缘、细纹理等信息,也不是严格的频域分解。

误差随后走两条支路:Refiner 使用 3×3 空洞卷积、GELU 和 1×1 卷积,将逐点差异扩展成带邻域纹理上下文的校正;Spatial Gate 通过 1×1 卷积与 sigmoid 确定校正位置和强度。两路逐元素相乘,再乘可学习系数 \(\alpha\) 加回原特征。最后对补偿特征做源自 HPI-Net 的重叠窗口自注意力,恢复局部关联。把流程写在一起是:

\[ X_{\mathrm{refined}}=X+\alpha\left[\operatorname{Conv}_{1\times1}\!\left(\operatorname{GELU}(\operatorname{DilConv}_{3\times3}(X_{\mathrm{error}}))\right)\odot\sigma\!\left(\operatorname{Conv}_{1\times1}(X_{\mathrm{error}})\right)\right]. \]

算法 1 的前五步即误差提取与补偿,在消融中称为 MFA;第六步才是重叠注意力。因此移除 MFA 不等于移除整个 MEDA。CANA 的代表窗口默认为 8,MEDA 的窗口却在不同块间循环使用 12、14、16、18,二者不能混用。正文没有说明降采样倍率、插值方式、空洞率或重叠比例,不能根据“多频”命名推断另有多个并行频带分支。

一个完整示例

以一个完整的 \(80\times80\) 搜索区域为例,默认 CANA 先将 6,400 个空间 patch 汇总出 100 个窗口代表,再对每个 patch 从这 100 个代表中选择最相似的一个。假设建筑图像中两个相距较远的竖直窗框 patch 被分到同一代表,它们就会在排序后进入同一段序列;这是机制示例,并非论文提供的某个实际分配结果。

如果这一段跨越计算块边界,邻块半段扩展可以让 Query 看到边界另一侧的同 ID patch;扩入的其他 ID 会被掩掉。聚合结果经过 ConvFFN 后进入 MEDA,窗框锐边在降采样再上采样中被平滑,残差因而提示这些位置需要校正。Refiner 提供邻域方向信息,Gate 控制补偿强度,重叠注意力再整合局部结构。最终重建头输出 ×4 图像;单独把该区域当成输入时,尺寸对应 \(320\times320\),这里只说明倍率关系,不声称实际推理逐区域独立裁切。

损失函数 / 训练策略

训练使用 DIV2K 的 800 张训练图像,数据集另有 100 张验证图像;输入 patch 为 64×64,batch size 为 32,随机水平翻转与 90 度旋转增强,训练 500,000 次迭代。优化器为 Adam,\(\beta_1=0.9\)\(\beta_2=0.99\),初始学习率 \(5\times10^{-4}\),warm-up 20,000 次;随后在 250,000、400,000、450,000、475,000 次迭代将学习率减半,梯度裁剪阈值为 0.1。

Base 使用 40 通道、12 个块,Small 使用 30 通道、8 个块。带“+”的版本保持通道数与块数不变,只把 MEDA 窗口统一设为 18,并非测试时自集成。缓存正文未明确给出监督损失、降质核及 PSNR/SSIM 的颜色通道和边界裁剪约定,因此这里不按常见超分配置默认补成 L1 或特定评测协议。

实验关键数据

主实验

下表摘录原文表 1、表 2 的 ×4 结果,单元格为 PSNR(dB)/SSIM,越高越好。作者说明这些轻量对比方法均采用 DIV2K 训练口径;FLOPs 保留原表单位与数值,但正文没有在该表处完整说明其计算输入尺寸。

方法 参数 / FLOPs Set5 Set14 B100 Urban100 Manga109
SwinIR-light 930K / 64G 32.44/0.8976 28.77/0.7858 27.69/0.7406 26.47/0.7980 30.92/0.9151
CATANet 535K / 34G 32.58/0.8998 28.90/0.7880 27.75/0.7427 26.87/0.8081 31.31/0.9183
CUST-Base 740K / 91G 32.70/0.9008 29.00/0.7899 27.81/0.7441 26.92/0.8085 31.45/0.9190
CUST-Base+ 740K / 98G 32.59/0.9000 28.94/0.7893 27.81/0.7444 26.91/0.8086 31.48/0.9191
LMLT-Base 672K / 41G 32.38/0.8971 28.79/0.7859 27.70/0.7403 26.44/0.7947 31.09/0.9139
CUST-Small 309K / 42G 32.46/0.8982 28.85/0.7862 27.73/0.7411 26.60/0.7995 31.14/0.9145

Base 相对 CATANet 的五项 PSNR 增量为 0.12、0.10、0.06、0.05、0.14 dB,算术平均为 0.094 dB。但它的参数与 FLOPs 均更多,贡献不能概括为“计算量全面降低”。Small 相对 LMLT-Base 的表中差值平均为 0.076 dB;原文叙述写成 0.063 dB,与所列五项数据不符,本笔记采用可由表格核算的数值。

下表摘录原文表 3 的 ×4 硬件结果,测量设备为 NVIDIA RTX 3090,输入为 320×180,时间为随机选取 50 张图像的平均运行时间。显存按原表 Mem(M) 标度保留,通过 torch.cuda.max_memory_allocated() 监测。

方法 峰值显存 Mem(M) 推理时间(ms)
SwinIR-light 350.57 195.89
SRFormer-light 329.08 197.18
HIT-SIR 1331.16 143.74
MambaIR-light 438.25 130.08
CATANet 1818.34 144.89
CUST-Base+ 328.17 146.04

Base+ 相对 CATANet 在此尺度显存降低约 81.95%,时间却略长;相对 SRFormer-light 延迟降低约 25.94%。作者报告跨 ×2、×3、×4 平均节省约 82.8% 显存是另一个统计口径。该表没有 Base 的延迟,不能将 Base 的最佳精度直接配上 Base+ 的运行时间。

消融实验

下表摘录原文表 4,均为 ×4。扩深的单模块版本使用 12 个块以接近 Small 的参数预算,而不是严格同参数、同 FLOPs;完整 Small 为 8 个块。

配置 参数 / FLOPs Urban100 PSNR/SSIM Manga109 PSNR/SSIM
完整 CUST-Small 309K / 42G 26.60/0.7995 31.14/0.9145
仅 CANA,未扩深 227K / 29G 26.31/0.7914 30.80/0.9118
仅 MEDA,未扩深 214K / 27G 26.21/0.7871 30.61/0.9087
仅 CANA,扩深 307K / 38G 26.51/0.7966 30.98/0.9133
仅 MEDA,扩深 288K / 35G 26.38/0.7926 30.81/0.9113

移除 CANA 在 Urban100/Manga109 上损失 0.39/0.53 dB,比移除 MEDA 的 0.29/0.34 dB 更大。即使增加单模块深度,完整模型仍领先,支持远程内容交互与局部细节修复具有互补性,但不能完全排除剩余计算预算差异的影响。

关键发现

  • 原文表 5 中,用 Swin Attention 替换 CANA 后 Urban100 从 26.60/0.7995 降到 26.53/0.7975;去掉 KV 扩展为 26.58/0.7985,搜索倍率从 10 降为 5 为 26.59/0.7987。整体路由方式的影响大于单独邻簇扩展的 PSNR 增益。
  • 原文表 6 中,窗口 [14,16,18,20] 加 MFA 得到 26.64/0.8002、314.6M 显存;更大窗口 [16,18,20,22] 不加 MFA 为 26.62/0.7994、343.2M。前者显存少约 8.3%,说明补偿可替代一部分窗口扩张。
  • 这个趋势不是“所有指标总是更好”:默认窗口加 MFA 为 26.60/0.7995,窗口加大 2 但不加 MFA 为 26.61/0.7989。前者 PSNR 略低、SSIM 略高;Base+ 也并非处处优于 Base。

亮点与洞察

  • 聚类的价值在于重组原始 patch 的交互,而非仅压缩成少量代表。固定容量分块便于计算,掩码邻簇扩展则修补这种分块制造的相关性断裂。
  • MEDA 把“高频定位”和“局部关系建模”分开:残差先指出平滑丢失了哪里,重叠注意力再决定如何整合细节。这解释了为何较小窗口仍可能获得更好的精度与显存折中。
  • 硬件评估比参数量更能揭示部署价值。CUST-Base+ 的 FLOPs 高于 CATANet,却能在所测 GPU 上达到相近延迟和明显更低的峰值分配显存,说明不能只按 FLOPs 排序。

局限与展望

  • 作者承认,随机或不规则纹理会让 patch 与窗口代表的亲和度变得模糊,削弱聚类效果。可进一步按纹理类型评估硬分配失败,并研究低置信度时的局部回退机制;这是后续设想,不是已验证结果。
  • 作者尚未充分探索去模糊、去噪与多种真实退化。本文的五个标准超分基准不能支持其已经具备医学图像或手机真实场景鲁棒性的结论。
  • 本笔记判断:单次 CANA 只覆盖有限搜索区域,代表 ID 的硬分配也会丢弃次优但有用的联系。分组大小、排序开销及不同尺寸下的吞吐需要更完整的分项分析。
  • 本笔记判断:RTX 3090 的显存与延迟结果不等于移动端部署验证;Base+ 也不是表中最快模型。缓存包含正文至参考文献,未包含文中指向的附录 B–E,故无法核查 Test2k、缩放曲线和额外可视化,不虚构其数值。
  • 复现仍需核对未交代的损失、采样算子、重叠比例与评测预处理。原文 Small 平均增益的算术不一致也提醒读者优先检查逐项数据。

相关工作与启发

  • 对比 CATANet:CUST 明确借鉴其相似性聚类思路,但将窗口代表与有限搜索区域结合,再用同 ID 的邻簇扩展维持连通。结果更适合解释为内容聚合的硬件实现改进,而非首次提出语义聚类注意力。
  • 对比 SwinIR / SRFormer:这些方法以窗口内或重排后的注意力降低成本,CANA 则按内容亲和度重新安排可交互对象。它改善了窗口范围限制,但仍保留搜索区域边界与路由成本。
  • 对比 HPI-Net:MEDA 采用其重叠注意力,新增重点是注意力前的高频误差细化与门控补偿。迁移到其他恢复任务时,应先验证该残差在噪声下是否仍能可靠表示有用细节。

评分

  • 新颖性: 3.5/5。已有内容聚类与重叠注意力上的针对性组合,邻簇掩码和误差补偿提供了明确增量。
  • 实验充分度: 4/5。三种倍率、五个基准、硬件测量和多层消融较充分,但缺少运行方差、移动端与真实退化证据。
  • 写作质量: 3.5/5。算法与消融支持主要逻辑,但部分复现细节缺失,个别平均增益与表格不一致。
  • 价值: 4/5。对实测显存受限的轻量超分有参考价值,尤其适合借鉴“内容路由加误差补偿”的协同方式。