论文阅读笔记:Image Processing GNN: Breaking Rigidity in Super-Resolution

论文阅读笔记:Image Processing GNN: Breaking Rigidity in Super-Resolution

  • [1 背景](#1 背景)
  • [2 创新点](#2 创新点)
  • [3 方法](#3 方法)
  • [4 模块](#4 模块)
    • [4.1 以往SR模型的刚性](#4.1 以往SR模型的刚性)
    • [4.2 图构建](#4.2 图构建)
      • [4.2.1 度灵活性](#4.2.1 度灵活性)
      • [4.2.2 像素节点灵活性](#4.2.2 像素节点灵活性)
      • [4.2.3 空间灵活性](#4.2.3 空间灵活性)
    • [4.3 图聚合](#4.3 图聚合)
    • [4.4 多尺度图聚合模块MGB](#4.4 多尺度图聚合模块MGB)
    • [4.5 图聚合层GAL](#4.5 图聚合层GAL)
  • [5 效果](#5 效果)
    • [5.1 和SOTA方法比较](#5.1 和SOTA方法比较)
    • [5.2 消融实验](#5.2 消融实验)

论文:https://openaccess.thecvf.com//content/CVPR2024/papers/IPG

代码:https://github.com/huawei-noah/Efficient-Computing/tree/master/LowLevel/IPG

1 背景

人们理所当然的认为主流SR模型以相当严格的方式对待所有像素。如图1。

  • 在基于CNN的SR模型VDSR的卷积层中,同一个卷积核扫描特征图的所有像素,即每个特征被严格制定与他的最近邻进行通信;

  • 在基于Transformer的模型SwinIR中,所有像素被分配到大小相同的注意力网格中进行自注意力操作。

这两个例子中,每个像素都聚集了固定大小的领域内的固定数量的像素信息。

在SR任务中,只有小比例的高频像素需要付出艰苦的重建努力;大部分像元位于平坦的低频区域,因此几乎完好无损。为了应对这种不平衡,SR方法在理想情况下,应该更多关注细节丰富的区域,而更少的关注平坦,细节匮乏的图像部分。然而,现有的基于k近邻图的方法将所有图像节点同等对待。也就是说所有节点共享相同的预设度k,没有考虑SR的不平衡性。事实上,当从图的角度考察SR中的典型操作范式时,作者发现度等价刚性也表现在卷积和窗口注意力中:在这些范式中,图像上的每个像素聚集了相同数量的像素,而不管图像内容如何,因此,在图术语中共享"等度"。严格分配给节点或像素的相等节点度与SR中不相等的重建需求不匹配,从而影响SR性能。

2 创新点

本文提出了基于图的图像处理神经网络 IPG,以挖掘图的灵活性潜力。

  • 为了打破卷积,窗口注意力和K近邻图的度等价刚性,利用度的灵活性,基于SR的非平衡性提出了一种新的度变图解决方案。具体来说,设计了一个细节感知度量来衡量图像节点的重要性,其中较大的度被分配给高频节点。

  • 与基于图的模型不同,IPG采用像素而非块作为图像的图节点,避免了块刚性导致错位问题。

  • 为了不因为像素级搜索空间大而牺牲效率的同时又获取局部和全局感知,作者采用局部和全局节点采样策略。可以有效地从小像素子集建立图,即可以专注于细节重建的局部信息,也可以横跨整个图像,以获得空间上遥远但至关重要的特征。

3 方法

IPG的总体架构遵循主流的SR模型,如图3所示。当一个LR图像输入到模型中时,它首先被传递到 c o n v conv conv 层来提取浅层特征。然后将特征通过一系列多尺度图聚合块MGB,借助灵活的图进行有效的深度特征提取。每个MGB由一系列图聚合层GAL堆叠组成,GAL在局部和全局尺度进行图聚合。最后通过 p i x e l s h u f f l e pixelshuffle pixelshuffle 上采样队图像进行空间重构。

4 模块

4.1 以往SR模型的刚性

卷积和窗口注意力是SR模型设计的两个主要途径。在一次卷积操作中,每个输出的像素聚集了一个小窗口内的信息,每个像素只能访问他的领域像素,例如标准的3×3卷积中,单个像素的感受野被限制在一个3×3的窗口中,图像上的所有像素从各自的8邻域和他自己那里手机信息。窗口注意力也有类似的刚性,虽然通常采用较大的窗口(相比于卷积),但窗口注意的感知域仍然局限在窗口边界内。在8×8的窗口注意力中,所有像素聚集在其所属窗口内的64个像素。

除了卷积和窗口注意力的刚性外,一些工作在SR模型中考虑了窗口之外的方案,并采用了图。与卷积和窗口注意力不同的是,这些基于图的工作在空间上更灵活,每个节点可以从具有宽松空间约束的最适合的 topk 个节点中聚合信息,这个意义上,图聚合不局限于预设的刚性模式,相比于卷积和窗口注意力机制,它更具有动态性和可扩展性。

然而,尽管先前的基于图的方法突破了硬聚合边界,但作者认为图的灵活性在SR任务中没有得到充分的利用:

  • 首先,如图1所示,以前的方法的度刚性的。SR重建需求在不同图像的不同部分之间应该是不平衡的。但是在以前的方法中,图像上的所有像素或节点都是聚合相同数量的像素或节点,也就是说,在图论中,他们具有相同的集合度。

  • 其次,以往基于图的工作都是基于块(patch)的,虽然块通常被视为图像节点,但块的聚合通常要进行严格的像素级对其。低级特征在图像块中可能出现的错位情况使得SR模型的性能变差。

  • 第三,先前的基于图的工作严格的使用全局或局部尺度上的图,但这两种尺度的信息对SR重建都具有潜在的重要性。

4.2 图构建

为了打破这些刚性,作者在IPG模型中构建了局部和全局尺度上的度柔性像素图。通过这种方式,可以挖掘图的灵活性,并在SR任务中取得优异的性能。

4.2.1 度灵活性

首先基于SR任务特有的非均衡性,作者尝试提出一种度灵活的图解决方案。SR是一个长尾问题,其中只有一小部分高频像素需要重建,图像的其余部分只需要极小的恢复。先前的工作试图通过设计损失来解决这个问题,而不是从模型设计的角度来考虑。在不平衡SR问题中,将图像上的所有像素或部分像素等效的处理是不合适和低效的。

这个观点出自论文CVPR2023论文《Rethinking Image Super Resolution From Long-Tailed Distribution Learning Perspective》,提出的损失函数可以用于其他超分论文的改进,如下:

  1. 结构先验( f B I f_{BI} fBI 为bicubic差值):
  2. 可学习的结构先验( f f f 为超分网络):
  3. 损失如下:





    α , γ \alpha,\gamma α,γ 是超参,为了灵活控制 W ( z ) W(z) W(z)。

为此,作者选择基于一个细节丰富度指标为像素分配不同的节点度,该指标标志着需要付出多少努力去重建当前像素。指标设计规则如下:给定特征图 F ∈ R H × W × C F∈R^{H×W×C} F∈RH×W×C 和下采样比例 s s s,所有像素的细节丰富度度量 D F ∈ R H × W D_F∈R^{H×W} DF∈RH×W 为双线性下采样再上采样特征图和特征图本身之间的绝对差值:

其中 s s s 取2,以避免严重的信息丢失。虽然已经有一些可解释的SR工作提出了度量指标来衡量输出中某一部分的重要性,但这些措施是基于梯度的,需要花费高昂的后向过程。相比而言提出的 D F D_F DF 是廉价的,因为它只要两次双线性差值。

基于 D F D_F DF 为每个像素分配整体的度预算。特征图上的像素节点 v ∈ F v∈F v∈F 的度与他在 D F D_F DF 处的像素值成正比:

不同MGB块中的细节丰富度 D F D_F DF 可视化后如图2所示,细节丰富的部分具有响应性,边缘和角点具有较高的 D F D_F DF,而平坦色块的 D F D_F DF 较低,可以看出 D F D_F DF 反映的是图像中的高频部分。

直接通过sobel算子求边缘获得 D F D_F DF 感觉也可以。而且 D F D_F DF 可以在原图上只求一次,然后插值到各个低分辨率上,因为高频部分是不会变的。

4.2.2 像素节点灵活性

确定完每个像素点的度后,还面临着如何图中顶点的表述问题。在之前的基于图的视觉工作中,图节点通常被设置为图像块,在图集合过程中,图像块以逐像素的方式进行加权求和,然而在聚合过程中,对块进行强制的像素级对齐并不适用于特征图具有丰富低级特征的SR任务。对象在低级图像块内的偏移和旋转是造成块错位的两个主要问题,对于对象的偏移,在块中的位置可能会发生变化,位置不对齐的块对象可能会引入噪声。对象旋转是块聚合的另一个错误方面。

为了避免节点聚合过程的上述问题,作者认为在低级视觉任务中更细粒度的像素节点是更好地解决方案。每个像素节点可以直接在聚合中找到相关的像素,避免错误问题。

但是必须承认的是,与像素图相比,图像块具有更大的感知域,并且由于总节点数量少更容易构建,这意味着边链接的搜索空间较小。因此需要构建一种灵活有效的像素图。

4.2.3 空间灵活性

作者通过在局部和全局上有效地搜索像素节点连接来开发IPG图的空间灵活性,这对SR重建至关重要,虽然有损图像部分可以从局部领域重建自己,但他们也可以从遥远的相似特征中学习以进行细化。

通过搜索全部图像节点来构建全局图的代价较高,作为一种补救措施,通常采用跨步抽样法。选择像素作为图的节点使得图的构建更加具有挑战,因为节点空间被进一步扩大,并且很难通过搜索所有像素来构建图。

为了提高效率,并在SR任务重收集有助于细节重建的局部级别的周围特征和全局级别的远程特征,作者使用两种采样方式来聚合局部和全局信息,如图4所示。局部采样关注于像素点周围的领域,围绕某个节点选择一个局部尺度的搜索空间;对于全局采样,采样的节点以扩张的模式覆盖在图像上。

总结:

  • 图的节点:图像的像素而非块

  • 图的每个节点的出度:正比于细节丰富度指标

  • 图的每个节点搜索空间:当前节点的局部邻域采样像素点和全局扩张采样像素点

基于上述准则构建图。代码中是将丰富度指标归一化后乘上一个topk来确定每个节点的出度,见 https://github.com/huawei-noah/Efficient-Computing/blob/master/LowLevel/IPG/basicsr/archs/IPG_arch.py#L731

复制代码
maskarray = (X_diff/X_diff.sum(dim=-1,keepdim=True)) * D.size(1) * self.top_k

最终通过 Bool 图来确定邻接关系:

复制代码
 graph = (D > MAT[..., 0:1]).unsqueeze(1) # add head dim

最终的搜索空间是领域中有邻接关系的节点集合。

4.3 图聚合

在构建了灵活的图以后,使用图聚合将每个节点和与其相连的节点进行通信,并利用他们的信息在SR中进行自细化。在图的视觉应用中,最大池化或边缘条件的聚合形式最受欢迎。本文倾向于采用边缘条件聚合,因为最大池化会导致至关重要的近邻像素信息的显著丢失。由于SR中的像素重建严重依赖于丰富的领域信息,边缘条件聚合被采用,因为它关注像素之间的相互关系,并保持更多的领域信息以及进行有效的重建。

边缘条件聚合概念如下,在IPG的第 k k k 层,给定节点特征 h k − 1 h^{k-1} hk−1 ,邻域中有邻接关系的节点集合 N ( v ) N(v) N(v) ,计算节点 v v v 的输出 h v k h_v^k hvk:

其中 f k : R d × R d → R f^k: R^d×R^d→R fk:Rd×Rd→R 是一个衡量节点对 ( u , v ) (u,v) (u,v) 之间相关性的参数化函数,本文采用余弦相似度, C k : = ∑ u ∈ N ( v ) e x p ( f k ( u , v ) ) C^k := \sum_{u∈N(v)}exp(f^k(u,v)) Ck:=∑u∈N(v)exp(fk(u,v)) 是一个归一化常数。

为了避免所有节点被同等对待,作者在聚合前对节点特征添加了相对位置编码,以增强位置信息。

4.4 多尺度图聚合模块MGB

多尺度图聚集模块( MGB )同时收集局部和全局尺度信息,用于有效的图像SR重建。每个模块的局部像素图和全局像素图都是根据当前模块输入计算的。分模块计算可以使整个模型中的图进行有规律的更新。其中局部采样和全局采样分别用于局部或全局图的构建。然后将两种类型的图(局部/全局)分布到整个模块的GAL中进行聚合操作。局部和全局图以顺序交替的方式分布,以确保局部和全局尺度的信息都得到充分的聚合。

4.5 图聚合层GAL

图集合层GAL包含Grapher模块,CA模块(通道注意力),ConvFFN模块和两个LayerNorm层。Grapher基于当前图的类型收集局部或全局的信息。接着紧跟高效的通道注意力模块,ConvFFN和LayerNorm。

CA模块出自论文《Activating more pixels in image superresolution transformer》,如下图:

ConvFFN出自论文《SRformer: Permuted selfattention for single image super-resolution》,即在 FFN 块的两个线性层之间添加一个局部深度可分离卷积分支来辅助编码更多细节。

5 效果

5.1 和SOTA方法比较

和SOTA方法的计算量对比。

和SOTA方法的指标对比。

和SOTA方法的可视化效果对比。

和轻量级SOTA方法的指标对比。

5.2 消融实验

使用图像块还是像素作为图的节点的消融实验。

使用KNN和度自由图的消融实验。

可视化细节丰富和细节少节点所关联的节点。

像素局部采样和全局采样的消融实验。

相关推荐
degen_1 天前
PEIM安装PPI和调用其他PPI的相关函数
c语言·笔记
一只侯子1 天前
Tuning——CC调试(适用高通)
开发语言·图像处理·笔记·学习·算法
迷途呀1 天前
Latex中的错误汇总
论文阅读·笔记·学习·其他·编辑器
Larry_Yanan1 天前
QML学习笔记(四十六)QML与C++交互:Q_PROPERTY宏映射
c++·笔记·qt·学习·ui·交互
JJJJ_iii1 天前
【机器学习07】 激活函数精讲、Softmax多分类与优化器进阶
人工智能·笔记·python·算法·机器学习·分类·线性回归
新子y1 天前
【小白笔记】最大化安全评分
笔记
新子y1 天前
【小白笔记】关于 Python 类、初始化以及 PyTorch 数据处理的问题
pytorch·笔记·python
DuHz1 天前
频率分集阵列雷达——论文阅读
论文阅读·算法·汽车·信息与通信·毫米波雷达
报错小能手1 天前
linux学习笔记(51)Redis发布订阅 主从复制 缓存 雪崩
linux·笔记·学习
Cathy Bryant1 天前
大模型微调(四):人类反馈强化学习(RLHF)
笔记·神经网络·机器学习·数学建模·transformer