Fy J
CS专业扫雷学深造学者互联网冲浪一级选手
FRIENDS
jhn

论文研读:IGNN

06-21-2021 16:40:41 论文研读 图像超分辨率
Word count: 1.4k | Reading time: 5min

原创文章,转载、引用请注明出处!


Cross-Scale Internal Graph Neural Network for Image Super-Resolution

Nips 2020

立意

和CS-NL那篇相似,都是利用一张图片中的相似patch做超分。

解决了两个问题:

  • 怎么准确地找到这些相似的patch?

  • 怎么合理地融合这些patch?

Non-local

思想

Non-local在图像重建中用的很多。许多经典的方法如非局部均值和BM3D,将相似的patch聚集起来进行图像去噪。

相似patch聚集的过程可表述为:

其中,XiYi是第i个位置(聚集中心)的输入和输出patch;Xj是第i个位置的相邻特征patch集Si中包含的第j个邻居;Q(·)将输入X变换到另一个特征空间;C(·,·)根据Xj和Xi的相关性得到的权重,越相关权重越大;δi(X)给前面的和项做归一化。

将patch和权重看作图结构的顶点和边,那么上面的过程可以看作是一个GNN。

The above aggregation can be treated as a GNN if we treat the feature patches and weighted connections as vertices and edges respectively. The non-local neural networks actually model a fully-connected self-similarity graph. They estimate the aggregation weights between the query item Xi and all the spatially nearby patches Xj in a d × d window (or within the whole features). To reduce the memory and computational costs introduced by the above dense connection, some k-nearest neighbor based networks, e.g., GCDN and N3Net, only consider k (k ≪ d2) most similar feature patches for aggregation and treat them as the neighbors in Si for every query Xi. For all the above mentioned non-local methods, the aggregated neighboring patches are all in the same scale of the query and no HR information is incorporated, thus leading to a limited performance improvement for SISR.

一般化图像是否泛用?

论文中给出的图片是比较特殊的一类。实际拍摄图像中往往不会特别多重复的图像块(一栋大楼上都是一模一样的窗户,但拍大楼的图片只是极狭窄的题材)。

真实算法中考虑的图像块非常小,往往只是很小的重复纹理repetitive texture、边edge或角corner,所以Non-local patch复现的性质对于任何一般图片都是成立的。

Zontak and Irani, Internal statistics of a single natural image
CVPR 2011

模型

Graph Construction

这部分的过程如下:

  • 对LR下采样(指向左边的黑色箭头):先使用双三次将输入的LR图像IL下采样,倍率为s,表示为IL↓s。s的取值所需的上采样的倍率。且文章指出对于上采样,s=2比s=4好。

  • 特征提取:用VGG19对ILIL↓s进行特征提取得到对应特征图。

  • 查找相似patch:对于EL中要搜索的一个patch,在下采样特征图EL↓s中以MSE作为metric,搜索到k个相似patch,然后按位置对应回EL(图中红色虚线Vertex Mapping),这样对于一个搜索patch就得到了k个EL中的相似patch。

要搜索的patch和得到的k个相似patch是图的节点,搜索patch和相似patch的差是图的边,逐个patch进行搜索完成,图就构建完毕了。

根据对图片的统计验证,图像的相似patch很多。也就是说Graph Construction这部分如果按照最朴素的想法来做的话,计算量会很大。

设定k和s就是为了保证模型速度。

  • s:选定在IL下采样s倍的特征图上做搜索,而不是IL本身对应的特征图中去搜索;

  • k:只选k个相似的patch,减少后面聚合的计算量。

Patch Aggregation

这部分是对前面获得的相似patch信息的应用。本质和一开始列的那个non-local聚合公式是一样的,都是加权,只不过形式复杂一点:这里是对于要搜索patch的对应k个相似patch进行加权,权重就是前面说到的图结构的边,将边值送至网络的输出取对数作为权。

跳转连接

通过跨不同规模的跳转连接,聚合HR功能中的丰富HR信息↑s在网络中直接从中间位置传递到后面位置。这种机制允许HR信息帮助网络生成更详细的输出。

实验

实验设置

  • 骨干网络:为了证明GraphAgg模块的有效性,选择了EDSR作为骨干网络,它包含32个ResBlock。所提出的GraphAgg模块在IGNN中只使用一次,并且插入在第16个ResBlock之后

  • 图构造:使用VGG19的前三层和固定的预训练参数来嵌入图像IL和IL↓s到EL和EL↓s。

  • 训练集:800 high-quality (2K resolution) images from DIV2K dataset

  • 测试集:Set5, Set14, BSD100, Urban100 and Manga109 in three upscaling factors: ×2, ×3 and ×4.

定量实验

定性试验

window size d 和 neighbor k 的取值

windos size 实验中固定为60 × 60。

其他

感想

看这篇是因为跟CS-NL那篇的思想相似,想做一对儿文章来讲。但实际上看的顺序反了,应该先看这篇。

IGNN这篇对于我来说,最大的好处就是解释清楚了Non-local的前世今生。这一点CS-NL没太解释也没太重视。

思路方面的评价是一样的,Non-local这个思路的有效性之前就说过。这类通过对LR-HR exemplars的挖掘,可以在一定程度上缓解超分任务中ill-posed的问题。

以及还是比较在意效率问题,这点文章没提,估计也是效率方面差,扬长避短了。虽然在Graph Construction那边做了限制,但以图结构的复杂度,还是平方级别的计算量增长。这一点好像避不开,那么后面的优化就需要多做一做了。

结构方面,这一篇做的就不如CS-NL的解释性好了。

< PreviousPost
论文研读:LIIF
NextPost >
论文研读:CSNLA
CATALOG
  1. 1. 立意
  2. 2. Non-local
    1. 2.1. 思想
    2. 2.2. 一般化图像是否泛用?
  3. 3. 模型
    1. 3.1. Graph Construction
    2. 3.2. Patch Aggregation
    3. 3.3. 跳转连接
  4. 4. 实验
    1. 4.1. 实验设置
    2. 4.2. 定量实验
    3. 4.3. 定性试验
    4. 4.4. window size d 和 neighbor k 的取值
  5. 5. 其他
  6. 6. 感想