@[TOC] 解读2022年新作:HIPA: Hierarchical Patch Transformer for
Single Image Super Resolution,效果超过SwinIR
原文链接
现在很多paper开始将Transformer用在SISR中,并且也取得了还算满意的效果。但是,由于大部分的视觉Transformer都是将图像划分成相同数量的、固定尺寸的patch,这就导致了在处理具有不同丰富度的纹理细节时,不能取得最优的效果。所以本文应运而生了HIPA,它是全新的Transformer架构,使用分层的patch划分方式,逐步恢复高分辨率图像。
本文交替堆叠CNN和Transformer,利用了CNN在局部特征提取的优势以及transformer在构建长距离依赖的优势,极大的发挥了网络性能。
我会依次从以下几个方面介绍这篇论文:
整体流程、网络结构、实验(定量和定性的分析)、同以往方法的对比和突破。
其中,在尽可能不影响对整体网络介绍的前提下,为了便于读者理解我会在每个[注]部分粗略的介绍所涉及的有关知识,具体的可以看“同以往方法的对比”部分。
首先来看一下网络的整体结构,直观的感受一下分层的patch划分方式。所谓分层,就是将低分辨率图像经过三个阶段,分别是stage1、stage2和stage3,逐步修复成对应的高分辨率图像的过程。这三个阶段,分别将图像划分成4个patch、2个patch和整张图像,作为各阶段的输入。
这样的方式颠覆了以往使用transformer方法的缺陷,因为以往方法只能使用相同数量、固定尺寸的patch作为输入,这不利于修复具有不同丰富度的纹理细节,而该方法不仅可以针对不同的图像区域,自适应性的学习特征,如对于精细的细节使用更小的patch,而对于无纹理区域使用更大的patch,还能够很容易的处理来自一个LR图像的不同尺寸的patch
介绍记号:
首先对于stage 1,使用了一个卷积层从LR提取浅层的特征,
再将提取出来的浅层特征送入MRFAG中提取深层特征,
提取出的深层特征会被送入APE-ViT中学习全局依赖,
之后垂直合并学习到的依赖(patch1和patch3,patch2和patch4),并且将提取出的浅层特征也垂直合并,最后将二者相加。
[注]:这里的垂直合并是为了适应stage2的输入。因为stage 2的patch划分是根据stage 1的patch进行垂直(1、3和2、4)合并得到的,而stage1的第一个合并结果是会输入到stage 2,与stage2提取出的浅层特征进行concatenate操作。这里使用垂直合并而不是水平合并是因为在stage2,水平合并被证明没有什么效果。
最后,会将Fmer_11和Fmer_12合并,再依次经过上采样、卷积,得到最后的stage1修复图像。
对于stage2和stage3而言,所提取的浅层特征都是先同上一阶段的输出特征进行concatenate,再进行同stage1相似的过程。
三个阶段的结果是逐渐提升改善的,stage2的结果是stage1结果的精炼,stage3的结果是stage2d的精炼。随着多阶段的修复,会逐步的修复成HR。
训练损失:
θ是整个网络的参数,个人疑惑?第二个损失中真实值的写法是笔误,因为同网络结构图中的不同
拆分网络:
首先看一下网络中的新成员:
multi-reception field attention module (MRFAM) 、
attention-based position encoding vision Transformer (APE-ViT)
接下来我大体介绍一下这两部分的主要作用,之后再串联整个网络。
[注]:stage1、stage2 中的MRFAG是由G个MRFAM组成的。
顾名思义,MRFAM是多感受野模块,而以往CNN-based(如RCAN)的使用单一感受野的方法,这会不可避免的错过LR图像中的一些重要信息,所以本文提出了从不同的分支扩大感受野的方式,这些分支利用了不同空洞因子的空洞卷积(图像当中的深蓝色块)。
[注]:以往的方法证明了,虽然加深CNN和卷积数可以分别增加感受野和提取LR图像中更多的信息,但是这不仅会带来过重的参数量而且也会增加计算复杂度,所以本文利用了基于通道注意力的空洞卷积来增加感受野,这个方法不会增加计算复杂度,这一点也是最区别于SENet的部分,关于SE网络,会在后续简要介绍。
每一个MRFAM块是由基于通道注意力的三个并行连接的空洞卷积分支、融合模块和局部特征跳跃连接(LFS)组成。此外,我们还发现简单的将MRFAM块进行堆叠是不会有更好的结果,所以引进了LFS连接去确保网络训练的稳定性,并且绕过包含在低质图像的大量信息。
最后MRFAG(多个MRGAM组成)的结果是:
ω代表MRFAG的卷积层权重,F(MRFAG)和F(MRFAMG)分别代表了MRFAG的输出和第G个MRFAM的输出。
相似于ViT,我们的APE-ViT也由三部分组成: patch embedding, attention-based position encoding (APE)和Transformer encoder。
APE通过将注意力引入到position embedding,它能够连续、动态的对位置信息进行建模,使得Transformer可以更加关注重要的token。
[注]:APE解决了ViT和CPE的问题,具体问题见下文
首先,patch embedding块将MRFAG提取出来的特征重塑到展平的二维patch(其实就是处理单元token),之后,这些展平的token会被重塑到二维的图像空间。在二维图像空间中,会使用卷积和通道注意力(channel attention)生成最后的位置编码position encoding。正是由于这个attention,才会让最后的位置编码更关注于重要的token。
之后,patch embedding和attention-based position encoding两部分的和会被送到transformer encoder中
其中,MLP有两个完全连接的层,它们之间有一个非线性激活GELU。MHA由一系列并行的self-attention(SA)模块组成。利用点乘计算不同token之间的相似性,得到最后的long-range和全局关注。MLP对每个token进行了维数放大和非线性变换的作用,以提高token的表示能力。
整个encoder的输出:
在stage1和stage2中都有MRFAG和APE-ViT,而stage3没有APE-ViT,是因为第三部分输入的是整张图像,此时再使用APE,这会极大的增加计算时间和消耗更多的内存。
具体的实验数据参考论文,这里不展开。只将关键的部分以文字方式阐述。
训练集:DIV2K
测试集:Set5 、Set14, B100, Urban100, and Manga109
所有的退化数据集都是由双三次插值获得。
采用PSNR和SSIM,根据恢复的RGB结果的YCbCr空间的亮度通道进行计算。
在原论文的表一中,值得注意的是,PSNR值,HIPA超过了swinir0.18db,这是极其重要的突破。原因可能是1.所设计的多级渐进式模型不仅可以利用transformer不同尺寸patch的特征,还可以逐步将HR图像从粗恢复到细;2.所提出的MRFAG可以使网络基于不同空洞因子的展开卷积,从不同的感受野中详尽地挖掘原始LR图像中包含的局部特征。
消融实验:
· 利用了可变的patch
定量比较了固定尺寸的patch和变化尺寸的patch作为网络的输入,具体体现在了是否运用了分层的子块,即stage1、2、3.
其主要原因是子块的层次结构使网络从不同的大小中学习一个LR图像,并提高了最终结果的整体性能,我们的结果不仅验证了所提出的可变大小的patch的有效性,而且进一步验证了所提出的分层的多阶段结构的(hierarchical multi-stage)有效性。
· 利用了APE-VIT:
随着APE-VIT结构的增大,PSNR也越来越好,但是随之而来的是参数量的增加,所以为了平衡性能和模型尺寸,选用medium,其中的head number ?
验证APE的有效性:定量比较了在APE-VIT结构上使用PE、CPE和APE的编码方式。
· 验证MRFAM:
随着空洞卷积分支数量的增加,性能越来越好,所以本文将三个分支都使用了。
我们展示了残差块(RB)数M在MRFAM中、MRFAM数G和通道数C的影响,可以观察到,PSNR与这三个参数呈正相关。然而,所提出的MRFAG的参数总数也随着这三个参数的增加而增加。为了在性能和模型大小之间进行权衡,除非另有说明,我们为其余的实验设置了M=5、G=20和C=64。
关于扩大感受野的同时不增加计算量的情况,我简要的阅读了SENet论文,它是通过信道依赖的方式来增大感受野,其中有压缩、加权、缩放等一些列会增加计算复杂度的操作,个人感觉就是在用计算复杂度来换取大的感受野,感兴趣的可以参考原文。而空洞卷积不会增加复杂度。
与ViT最不同的地方就是position embedding部分,ViT的position embedding是预定义好并且独立于输入的token,这就会导致当输入的LR尺寸变化时,patch数量和大小就会和之前训练好的不一样,并且也会使学习到的position embedding的维数不匹配。
CPE条件位置编码(conditional position encoding)解决了ViT的问题,它通过将2维卷积嵌入到位置编码中,这可以很容易的泛化到输入图像的尺寸变化的情况。利用条件位置编码生成器(PEG)来生成位置编码,由于位置编码是自适应生成的(动态生成的),可以适用于不同尺寸大小的输入,它具有平移不变性,可以使模型保持更好的性能。利用了全局平均池化(GAP)替代了原来ViT中的分类class token部分,使得在分类效果中显著提升。然而,CPE会同等的对待所有的输入token,这就可能会忽略这些token间的内部依赖关系。由此,APE,一个基于注意力的位置编码,应运而生。
深层特征提取的方式: swinir使用的是transformer,它的patch是固定的;而HIPA 用的是多分支的MRFAG,并且可以处理不同尺寸的patch。
重构的方式:HIPA是使用多阶段重构方式,即在一个阶段重构后,再将结果传递到下一个阶段继续重构,最后获得HR图像,还用了APE机制学习多关注于更重要的token;而swinir重构的方式就是一个卷积+上采样,不涉及分阶段。
关于增大感受野:ELAN应用移位卷积增加感受野,而HIPA使用空洞卷积增加感受野。
深度特征提取方式:ELAN使用的是ELAB块,其中包含移位卷积,为了高效的实现长距离建模,提出了GMSA(多尺度注意力).为了加速SA的计算,还提出了共享注意力。HIPA没有对SA进行特殊操作。
在进行滑动窗口计算时,ELAN使用circular shift代替mask机制和相对位置编码。而HIPA使用了基于注意力的位置编码使得网络可以关注更需要注意的token。
· 本文建立了一个级联模型,该模型在多个阶段处理输入图像,其中我们以小patch的token开始,然后逐渐融合到全分辨率。
· 还首次提出了一个全新的基于注意力(attention-based)的位置编码(利用连续的动态模型对位置信息进行建模),它的作用机制是通过将不同的权重分配给不同的token使得网络可以关注到更需要被注意的token。此外它还能很容易的处理输入的不同大小的低分辨率图像,这要比使用固定的patch高效很多。
· 提出了一个全新的多感受野注意力模块,基于空洞卷积(dilated convolution)去增大来自不同分支(branch)的感受野。
本人第一次写总结,不足之处还请指正,也欢迎讨论!