TTSR(CVPR2020)——Ref超分辨
TTSR:Learning Texture Transformer Network for Image Super-Resolution(CVPR2020论文连接)
CrossNet
采用光流将LR和Ref图像在不同尺度上对齐,并将其拼接到解码器的相应层中。但是这些方法的性能很大程度上取决于LR和Ref图像的对齐质量。而且在面对LR和Ref图像之间的大视点变化时,通常会搜索和传输不准确的纹理。此外,光流等对准方法耗时较长,不利于实际应用。
SRNTT
采用预训练模型VGG来提取特征和内容,然而,这种高级语义特征并不能有效地表示HR纹理,从而产生不可信的结果。SRNTT忽略了原始特性和交换的特性之间的相关性,并将所有交换的特性平等地提供给主网络(这里个人感觉)
为了解决这些问题,提出TTSR。
- 首先,我们提出了一个可学习的纹理提取器,其中的参数将在端到端训练期间更新。这样的设计使得LR和Ref图像的联合特征嵌入成为可能,这为在SR任务中应用注意机制打下了坚实的基础。
- 其次,我们提出了一个相关性嵌入(插入)模块来计算LR和Ref图像之间的相关性。更具体地说,我们将从LR和Ref图像中提取的特征表示为查询操作中的键,以获得硬注意图和软注意map。
- 最后,我们提出了一个硬注意力模块和一个软注意模块。通过注意力map将HR特征从Ref图像融合到LR特征中(从主干网络DNN中提取出的特征)。
TTSR的设计鼓励了一种更准确的方法来搜索和传输相关纹理从Ref到LR的图像。此外,我们提出了一个跨尺度的特征集成模块来堆叠纹理转换器(简单点儿CSFI就是把TTSR当做他的结构单元)
纹理转换器(texture transformer)
就是TTSR重要的网络结构,包含四个部分,下面展开说。
网络有四个输入:LR,LR
↑
\uparrow
↑(4倍,双三次上采样),Ref,Ref
↑
↓
\uparrow\downarrow
↑↓(用同样的双三次方法,先下采样再三采样,为了得到一样的值域)
Learnable Texture Extractor.(可学习的纹理提取器,区别SRNTT的VGG)
分别得到Ref,Ref
↑
↓
\uparrow\downarrow
↑↓,LR
↑
\uparrow
↑特征,结果为V,K,Q
Relevance Embedding.(相关信息嵌入,插入?)
通过估计Q和K之间的相似度
r
i
,
j
r_{i,j}
ri,j来嵌入LR和Ref图像之间的相关信息(纹理)。把Q,K当中的patch(块)做归一化处理,并且计算他们的相关度(内积的方法)。这相关系数
r
i
,
j
r_{i,j}
ri,j,下面两种注意力机制会用到。
Hard-Attention.(硬注意力机制,H)
用来转移Ref特征V,传统的注意机制对每个查询
q
i
q_i
qi取V的加权和(这里就是说的SRNTT的传输相关纹理的同时抑制不相关纹理处理方法?没看代码不知道是不是加权的方式)。但是,这样的操作可能会产生模糊效果,缺乏传递HR纹理特征的能力。因此,在我们的硬注意力机制模块中,对于每个查询
q
i
q_i
qi,我们只从V中最相关的位置j进行转移特征。(最,体现了这里的强注意意思
我们先通过相关系数计算出H,在得到Ref和LR中最相关(相似)的位置i,然后用
H
i
H_i
Hi去Ref特征中V中去索引这个最优块,得到
T
i
T_i
Ti(就是HR特征表示,后来用于重构输出HR的)
soft-Attention.(软注意力机制,S)
用软注意力机制,来进行T,F的特征合成。F是LR经过DNN得到特征。在合成过程中,需要加强相关纹理的传输,对不相关的纹理进行处理。(这句话,我翻译出的感觉跟SRNTT合成的时候一样的感觉)。从相关系数
r
i
,
j
r_{i,j}
ri,j中计算一个软注意S,表示转移纹理特征T中每个位置的置信度。
*[个人感觉公式作者不小心笔误了]:
这里没有直接将注意力图S应用到T上,而是首先融合HR纹理特征T和LR特征F,这样是为了从LR图像中获取更多信息。T,F融合后的特征进一步在像素级别上和S相乘(点乘操作),再加回F,得到纹理转换器的最终输出。