ICCV 2021 基于动态图神经网络的图像修复方法
论文地址:https://openaccess.thecvf.com/content/ICCV2021/papers/Mou_Dynamic_Attentive_Graph_Learning_for_Image_Restoration_ICCV_2021_paper.pdfhttps://openaccess.thecvf.com/content/ICCV2021/papers/Mou_Dynamic_Attentive_Graph_Learning_for_Image_Restoration_ICCV_2021_paper.pdfgithub地址: GitHub - jianzhangcs/DAGL: Dynamic Attentive Graph Learning for Image Restoration, ICCV2021 [PyTorch Code]
多数现有的non-local方法为每个query分配固定数量的非局部连接,忽略了非局部关联的动态性。此外,非局部相关性通常是基于像素的,但容易因图像退化而产生偏差。为了克服这些缺陷,本文提出了一种动态的图注意力模型,该模型在图像去噪、图像去马赛克、和图像去块效应等图像重建任务中取得目前最优的性能。
摘要
自然图像的非局部自相似性已被证明是图像恢复的有效先验。然而,大多数现有的non-local方法为每个query分配固定数量的非局部连接,忽略了非局部关联的动态性。此外,非局部相关性通常是基于像素的,但容易因图像退化而产生偏差。为了克服这些缺陷,这篇文章提出了一种动态的图注意力模型(DAGL),研究图像恢复过程中块级别的动态非局部相似性。具体地说,文章中提出了一种动态的图模型,可以以执行patch-wise的图卷积,每个节点具有动态的和自适应的邻节点数量。这样,局部图像内容可以通过其连接的邻节点自适应地调节重建过程。基于块的非局部连接也可以强化消息传递的过程。文章中提出的模型在图像去噪、图像去马赛克、和图像去块效应等图像重建任务中取得目前最优的性能。
Introduction
图像恢复(IR)通常是一个不适定的反问题,目的是通过被各种退化因素从其退化的测量中恢复高质量的图像。退化过程可以定义为:。其中H为线性退化矩阵,n表示附件的噪声。根据H,IR可以分为许多子任务,如去噪、压缩伪影减少、去马赛克、超分辨率、压缩感知等。
大多数图像恢复算法学习大量外部的数据,没有使用到图像内部的先验!
自相似假设相似的内容会在整个图像中再次出现,并且局部内容可以在其他相似的地方帮助下恢复。
非局部神经网络通过深度网络利用自相似性,随后将其引入许多图像恢复任务。然而,这些像素级的非局部方法很容易受到损坏图像中的噪声信号的影响。
在N3Net中,提出了一种可微k近邻(KNN)方法。然而,由于信道特征融合的限制,N3Net只能在一个小的搜索区域(10×10)和少量的匹配patches内执行非局部操作。
最近的一些方法提出了更有效的patch-wise非局部方法。但他们遵循与现有的非局部方法相同的范式来构建完全连接的相关性。
一般来说,不同图像内容的可重复性是不同的,导致在恢复不同图像内容时对非局部相关性的要求不同。
图卷积网络(GCN)是一种特殊的非局部方法,旨在通过建立非欧几里得空间中的长程相关性来处理图数据。
受GAT的启发,本文提出了一种用于图像恢复的动态注意图学习模型(DAGL)。本文提出的DAGL中,损坏的图像在一个基于局部特征块构建的图像自适应图中恢复。
DAGL 结构如图1所示,主要由两个组件组成。特征提取模块feature extraction module(FEM),多头基于图的特征融合模块 graph-based feature aggregation module (GFAM)with multiple heads(M-GFAM)。与很多图像恢复任务相似,添加global pathway from input to the final output,这可以鼓励网络绕过低频信息。特征提取模块由几个残差块组成(RBs),残差块去除了batch normalization (BN)层!基于图的特征融合模块是所提出DAGL的核心,它是基于图注意网络(GAT)来实现的。
网络使用的是L2损失函数进行优化!
H代表DAGL网络,θ代表学习的参数。
现有的深度非局部方法和基于图的图像恢复方法为每个查询/节点分配了固定数量的邻居。主要的区别是,深度非局部方法涉及搜索区域中的所有项来更新一个查询query项,并且基于图形的方法为每个节点选择K个最近邻。GFAM基于三维特征patch构建长程相关,并为每个查询patch分配动态的邻居数量。
GFAM如图2所示,主要包含三个阶段:
- Initialization
- Dynamic Graph Construction
- Feature aggregation
Dynamic Graph Construction.
图节点直接由G‘’中的特征块分配:
在建立图连接时,根据最近的原理为每个节点选择一个动态的邻居数。为此,作者设计了一个动态KNN模块,为每个节点生成一个自适应阈值,以选择相似性高于阈值的邻居。
具体来说,给定特征块G‘集,我们首先将每个特征块展平(Flatten)为一个特征向量。通过点积可以有效地计算成对相似性,得到相似性矩阵。让我们考虑,M的第i行,表示第i个节点与其他节点之间的相似性。的平均值是不同节点对第i个节点的相当平均的重要性。因此恰当的阈值选择Ti如图2(b)所示。
为了提高适应性,我们进一步应用节点特异性仿射变换来计算Ti:
【提出的方法以特征块为基本单元计算两两之间的相似度,通过一个动态自适应的阈值过滤掉低相似度的非局部链接,生成一个动态Graph。为了保证可学习,阈值的计算方式和阶段过程如下,巧妙的运用了ReLU来截断低相似度非局部连接。】
Feature aggregation.
在邻接矩阵A的指导下,特征聚合过程是所有连通邻居的加权和,表示为:
然后我们从图中提取所有的特征块,使用torch.nn.Fold 操作将这个更新的局部patches数组组合到一个特征图中,这可以看成是Unfold 的逆操作。特征块之间存在重叠,使用平均操作来处理重叠的区域。此外,在GFAM中还使用了全局残差来增强输出。
为了稳定图卷积的训练过程,作者扩展了该方法,使用多头图是有益的,在图中用M-GFAM表示。多头设计允许我们的方法在不同位置联合聚合来自不同表示子空间的信息。
K个结果被连接在一起,并再次由一个1×1的卷积层(融合)。
Experiments
PPT获取:my_code/DAGL-李强-11.2.pptx at main · LiQiang0307/my_code · GitHub