【Paper Thought】CVPR2025 超分论文心得分享:CATANet

91 阅读8分钟

博主是今年新入学的超分方向的萌新博士,对AI领域有过接触但不多,超分也是第一次接触,这也是我在网上第一次发表博客。我的想法是记录一下我每周看的论文的心得和内容,以此来激励和巩固自己的学习。有兴趣的小伙伴们可以一起交流学习。

做为一个超分方向的萌新,导师分配的研究方向就是超分辨率,所以就只有从最近的CVPR2025上,先广泛涉猎一下超分方向的论文,看看大家都在研究什么内容。

本来为了避免被打水印,将图片托管到GitHub,但是由于社区机制无奈还是重新上传了。图片侵删。

论文要解决的问题

目前AI领域比较流行的两大类算法分别是Transformer和Mamba。Transformer在超分任务中面临的一个核心矛盾全局计算带来过高的计算量,而局部窗口计算又会损失长程依赖。 现有的许多工作可以看作是在这个矛盾中寻找平衡点。

CATANet的解决方法很巧妙,既然无法让所有的Token都相互“看见”,那就先把语义相似的Token“聚合成班”,现在“班级内”交流,再派“班长”去参加“全校大会”。 这样既保证了效率,又实现了全局的信息流动。

核心思想:CATANet通过一种内容感知的Token聚类机制,将图像Token动态分组,并在此基础上设计了组内和组间的交叉注意力,从而在轻量级计算预算下高效地捕获全局依赖关系。

我们主要理解和关注其中的方法论部分,所以引言和实验部分就省略掉了,有兴趣的小伙伴可以自己下载查看。

毕竟只要发论文就是SOTA,所以我认为在学习阶段,应当更关注其方法论的核心创新点。引言和相关工作部分可以阅读,可以帮助你快速的了解一个行业的大致内容。

文章贡献

根据文章内容,作者认为本文的贡献如下:

  • 提出轻量化的 CATA Net,结合了token聚合通过注意力机制,来处理长程依赖,以确保高的推理效率。
  • 仅在训练阶段更新聚类中心C。
  • 提出组内自注意和组间交叉注意,有效捕获远程和全局依赖,减少无关信息干扰。

方法论

该网络的总体设计如下图(截自论文):

catanet.png

网络的结构整体包含三个模块:

  • 浅层特征提取

    这一层包含一个3*3 卷积,将输入图像映射到高维空间(channel维度变高,例:从原3通道变为64通道,h, w不变)。 X0=FS(ILR)X_0 = F_S(I_{LR}) 其中,X0表示浅层特征,FS为提取函数,ILR表示输入的低分辨率图像

  • 深层特征提取(核心,先全局,后局部(先TAB,后LRSA))

    这是整个机制的“分班”阶段。其目标是忽略Token的空间距离,完全根据其语义相似度进行分组。包含K个连续的残差组(Residual Group, RG),每个RG都包含三个组件:TAB,LRSA,一个3*3的卷积

    • token聚合块(Token-Aggregation Block, TAB),捕捉长程依赖

      包含四个部分:内容感知token聚合(CATA)、组内自注意力(Intra-Group Self-Attention,IASA)、组间交叉注意力(Inter-Group Cross-Attention,IRCA)、1*1卷积

      1. CATA:将语义上相似的部分划分到一个组中,而忽略其距离

        这一部分的算法详细内容如下图。

        cata算法1.png

        其中,cj 为通过 平均池化 初始获得的token中心,for 循环为类似于k-means风格的一个迭代更新中心的过程,D为计算当前token于当前中心的余弦相似度, gj 为按照 相似度 结果,以当前中心划分组,cj‘ 为 重新通过均值计算当前组的中心,再次进行迭代。T为迭代次数。

        12行 cj 为根据指数移动平均(Exponential Moving Average, EMA)来平滑地更新全局中心。新全局中心 = λ * 旧全局中心 + (1-λ) * 当前图像计算出的中心。

        加入此平均的目的在于:避免每个batch的训练数据完全替换上一批次训练得到的中心,即 中心的更新绝大部分取决于上一个批次的结果,0.999的概率取决于当前批次计算得到的中心(λ的取值)

        13、14行为最终计算相似度,并划分分组。推理阶段直接跳转12行。

        对于token中心的个人理解:其实是一组pattern,比如 某个pattern可以匹配边缘、某个pattern可以匹配建筑、某个pattern可以匹配花花草草等,每个pattern就是一个中心,所以针对整个数据集,训练出一组pattern,可以针对所有的图像进行匹配。即全局token中心。需要注意,每张图并不会使用到所有的pattern,所以某几个pattern就可以组合并识别出一张图片的信息。

        这一部分的关键在于子组划分,由于每个pattern的长度可能不一致,如第一个pattern 为 100个token, 第二个pattern 50 个token,那么这样就很难进行下一步计算,因此先将所有的pattern顺序排列,按固定长度进行划分子组。

        这样可能会产生新的问题,即一个子组中可能无法完全包含一个pattern或者一个子组可能包含两个pattern的各自一部分,这一问题则由下一个阶段解决。

        综上,内容感知 token聚合体现在:通过聚类找到一类token的中心,并划分为一个组

      2. IASA,解决“一个pattern被割裂”的问题

        这一部分用于解决子组划分操作中可能产生的一个pattern被划分到两个子组中的现象。

        首先根据子组Sj 的信息计算 Qj Kj Vj 矩阵,其次,针对每一个 Qj 矩阵,在进行 操作时,与当前的 Kj 和下一个 kj+1 进行操作,得到 Vj 和 Vj+1 ,将Kj 和 Kj+1 拼接记为 Kj' , Vj' 同理,然后进行 MHA计算。随后将得到的结果按原图像索引进行排序,得到Xo1。如遇到边界问题,即 j 为最后一组时,kj+1 = kj-1

        这个过程同样也存在一个问题,在极端情况下,如一个 token中心可能横跨三个pattern,这样在进行IASA计算时,就无法关注到第三个pattern中的信息,该问题在下一步中进行优化。

      3. IRCA,解决“全局信息流通”问题。

        token中心 C 已经集合了全部中心 cj 的所有信息,因此在进行注意力计算时,根据当前子组 Sj 计算权重矩阵 Wq ,根据 C 计算 Wk Wv,之后进行MHA计算和pushback,得到 Xo2

        这一环节中,注意 token中心的数量 M 要远远小于 所有token总数N,以提高计算效率。

      以上操作完成之后,进行第四步操作,即:将 Xo1 Xo2 相加,通过一个卷积输出 Xo

      在上述的所有操作中,本文的创新点集中于IASA和IRCA的处理上,IASA是一个分组内的交流,确保内容一致性;IRCA是全局下的注意力,确保全局最优。二者互补

    • 局部自注意力(Local-Region Self-Attention, LRSA),增强局部区域token之间的依赖

      这一部分相对简单,核心为标准的局部窗口注意力(window attention),简而言之,就是将一个完整的矩阵Xo 划分为多个窗口,窗口之间可以重叠也可以不重叠,之后在每个窗口中独立计算 MHA,完成后将结果进行合并。

    • 一个3*3的卷积,进一步细化特征,隐式学习位置嵌入

    综上,第 i 个RG的完整处理流程:Xi=Xi1+FConv(FLRSA(FTAB(Xi1)))X_i = X_{i-1} + F_{Conv}(F_{LRSA}(F_{TAB}(X_{i-1}))) ,其中 Xi表示第 i 个RG的输出

  • 图像重建

    K个RG之后,通过获取全局的残差信息,添加到 ILR的上采样图像中,获取高分辨率图像 ISR

    ISR=FUp(ILR)+FIR(XK)I_{SR} = F_{Up}(I_{LR}) + F_{IR}(X_K)

结语

以上就是这篇文章的核心方法,代码复现操作目前还没做,不过作者已经将代码开源出来,大家也可以积极尝试。

CATANet为我们提供了一个设计轻量级Transformer模型的优秀范例: “先聚类,后交互” 。其核心在于利用动态分组和层次化注意力,巧妙地绕开了全局注意力计算量的瓶颈。

全文思路清晰,创新点扎实。通过仅训练阶段更新聚类中心,将大部分聚类计算成本置于训练阶段,推理时直接使用学到的模式,非常高效。

作为本系列的开篇,CATANet的设计哲学给了我很多启发。希望这篇解读也能对你有所帮助,博主可能也有一些理解不全面的地方,欢迎在评论区一起交流讨论!