超分论文笔记之纹理迁移2019-2020CVPR:Image SRby Neural Texture Transfer -Learning Texture Transformer Network

1. Image Super-Resolution by Neural Texture Transfer

代码地址

1.1 总结

使用RefS方法,当参考图像很相似时,超分的结果还不错。但是参考图像对超分结果影响很大,特别是当参考图像相似性比较低时,效果不佳。作者通过纹理细节,根据纹理相似性做超分的方法,让RefSR方法受参考图像的相似性影响比较少。相比以往在输入做match,作者在多个level做match,利用多尺度神经迁移,模型能够从具有语义相关性的Ref patches获益更多,在输入的ref image只有小相关时,性能降低不会太严重。
在作者的设置里,Ref images并不需要对齐良好或者内容相似,作者只打算将语义相关的纹理从Ref图像传输到输出SR图像。作者提出了SRNTT,在特征空间做局部纹理的匹配,并将匹配的纹理迁移到输出。纹理传递模型学习了LR和Ref纹理之间复杂的依赖关系,并利用相似的纹理抑制不相似的纹理。
同时作者还提出了一个数据集CUFED5,这个数据集对于参考的提供了不同的相似度的参考图片。

1.2 方法

SRNTT的问题设置时,从对应的ILRI^{LR}IRefI^{Ref}得到ISRI^{SR}
SRNTT的主要思想是在特征空间从IRefI^{Ref}找到匹配特征,然后用multi-scale的方式做特征迁移。特征迁移考虑了语义(高层)和纹理(底层)相似性。然后对ISRI^{SR}IRefI^{Ref}纹理一致性做了正则化。
超分论文笔记之纹理迁移2019-2020CVPR:Image SRby Neural Texture Transfer -Learning Texture Transformer Network

1.2.1 Feature Swapping

对整个IRefI^{Ref}搜索局部相似纹理,使用的是HR空间坐标可用于后续的转换。所以先将ILRI^{LR}上采样到ILRI^{LR\uparrow},对于IRefI^{Ref},先降采样再上采样,得到和IRefI^{Ref \downarrow\uparrow},得到和ILRI^{LR\uparrow}一样的频率带。再神经特征空间Φ(I)\Phi(I)做相似性匹配,强调了纹理和结构的匹配。使用内积衡量相似性,所以有
si,j=<Pi(Φ(ILR)),Pj(Φ(IRef))Pj(Φ(IRef))>s_{i,j} = < P_i(\Phi(I^{LR\uparrow})),\frac{P_j(\Phi(I^{Ref \downarrow \uparrow}))}{||P_j(\Phi(I^{Ref \downarrow \uparrow}))||}>
Pi()P_i(\cdot)表示从neural feature map采样第i个patch。所以对于所有LR patches到每一个Ref patch,有
Sj=Φ(ILR)Pj(Φ(IRef))Pj(Φ(IRef))S_j = \Phi(I^{LR\uparrow})* \frac{P_j(\Phi(I^{Ref \downarrow \uparrow}))}{||P_j(\Phi(I^{Ref \downarrow \uparrow}))||}
基于相似性score,构建一个swapped feature map MMMM中每个(x,y)(x,y)点表示为:Pω(x,y)(M)=Pj(Φ(IRef)),j=argmaxjSj(x,y)P_{\omega(x,y)}(M) = P_j*(\Phi(I^{Ref})), j^{*} = argmax_j S_j(x,y)
ω(x,y)\omega(x,y)表示每个patch的中心点

1.2.2 Neural Texture Transfer

如图的蓝色模块。将上面得到的特征融进generative网络对应不同大小的特征层。使用residual blocks和skip connections构建生成网络,第ll层的输出
ψl[Res(ψl1Ml1)+ψl1]2×\psi_l[Res(\psi_{l-1}||M_{l-1}) + \psi_{l-1}]\uparrow_{2\times}
||表示channel-wise concate。
最后的超分图像
ISR=Res(ψL1ML1)+ψL1I^{SR} = Res(\psi_{L-1}||M_{L-1}) + \psi_{L-1}
超分论文笔记之纹理迁移2019-2020CVPR:Image SRby Neural Texture Transfer -Learning Texture Transformer Network于为了让网络考虑进ISRI^{SR}IRefI^{Ref}纹理差异,定义了一个纹理loss
Ltex=lλlGr(ϕl(ISR)Sl)Gr(MlSl)FL_{tex} = \sum_l \lambda_l||Gr(\phi_l(I^{SR})\cdot S_{l}^*) - Gr(M_l \cdot S_l^*)||_F
Gr()Gr(\cdot)是Gram matrix,SlS_l^*是weighting map

1.1.3 Training Object

  • preserve the spatial structure of the LR image
  • improve the visual quality of the SR image
  • take advantage of the rich texture from Ref images
    Reconstruction loss
    Lrec=IHRISR1L_{rec} = ||I^{HR} - I^{SR}||_1
    Perceptual loss
    Lper=1V1Cϕi(IHR)ϕi(ISR)FL_{per} = \frac{1}{V} \sum_1^C ||\phi_i(I^{HR})-\phi_i(I^{SR})||_F
    Adversarial loss
    作者是采用WGAN-GP
    Ladv=Ex^Pg[D(x^)]L_{adv} = -E_{\hat x \sim P_g}[D(\hat x)]
    minGmaxDDExPr[D(x)]Ex^g[D(x^)]min_G max_{D \in \mathcal{D}}E_{x \sim P_r}[D(x)] - E_{\hat x \sim g}[D(\hat x)]
    D\mathcal{D}是1-Lipschitz函数,PrP_r,PgP_g模型分布和真实分布

2.Learning Texture Transformer Network for Image Super-Resolution

2.1 总结

现有的SR方法忽略了使用注意机制做纹理迁移。作者提出一个TTSR(Texture Transformer Network)
之前的方法:
Zheng 采用基于光流的方法会迁移不准确纹理
Zhang 的方法使用一个pre-trained的特征空间,但是太高层的语义特征不能有效表示HR的纹理信息。
所以作者提出了一个新的框架,包含了四个模块。
一个可学习的纹理提取器,在训练过程中会得到更新。这样的设计实现了LR和REF图像的联合特征嵌入,这为应用注意机制创造了坚实的基础。
一个关联嵌入模块,计算LR和Ref图片的关联性。将LR和Ref 图片当作transformer里面的query和key.
最后一个hard-attention模块和一个soft-attention没款,迁移和融合从Ref 图片得到的HR特征到LR特征。
作者还提出了纹理变换器的跨尺度特征集成模块。特征可以跨不同的尺度(例如从1×到4×)学习特征,得到更强的特征表示。

2.2 方法

超分论文笔记之纹理迁移2019-2020CVPR:Image SRby Neural Texture Transfer -Learning Texture Transformer Network

2.2.1 Texture Transformer

包括了

  • learnable texture extractor (LTE)
  • relevance embedding module (RE)
  • hard-attention module for fea- ture transfer (HA)
  • soft-attention module for feature synthesis (SA)

Learnable Texture Extractor
作者设计了一个可学习的纹理提取器,得到了Q,K,VQ,K,VQQ(query),KK(key), VV(value)是transformer里面注意机制的三个基础模块
Relevance Embedding
相关嵌入的目的是通过估计Q和K之间的相似性来嵌入LR和Ref图像之间的相关性,将QQKK张开成K patch,记成qi(i[1,HLR×WLR]),kjq_i(i\in[1, H_{LR} \times W_{LR}]), k_j,对于每个patch计算相关性
ri,j=<qiqi,kjkj>r_{i,j} = <\frac{q_i}{||q_i||},\frac{k_j}{||k_j||}>
Hard-Attention
使用一个hard-attention模块从Ref image迁移HR纹理特征V。传统的注意机制对每个查询qiq_i取一个VV的加权和。但是这种会产生模糊的效果。
计算一个hard-attention map H,对于hi(i[1,HLR×WLR])h_i(i \in [1, H_{LR}\times W_{LR}])hi=argminjri,jh_i = argmin_j r_{i,j}
hih_i表示Ref图片里面和LR图片里面第i个patch最相关的部分。