SRNTT

发布于:2022-08-04 ⋅ 阅读:(746) ⋅ 点赞:(0)

论文全称:Image Super-Resolution by Neural Texture Transfer  (cvpr)

目录

主要贡献:

模型架构:

数据准备:

模块解析:


主要贡献:

  1. LR(低分辨图像)与ref之间的对应,,在patch尺度的对应,而不是像素级对应
  2. 多尺度特征融合,将不同深度的信息融合,以学习更多的纹理信息
  3. 提出了CUFED5数据集,现在的参考图超分的benchmark数据集

模型架构:

 其中,LR为低分辨率图像,Lref是参考图像,HR为高分辨率图像(一般作为label计算损失)。

数据准备:

首先,对LR进行上采样,得到ILR↑,使得其大小与HR大小一致。同时也对Ref进行下采样后再上采样,得到I Ref↓↑,将Ref做了模糊化,具有更强的泛化性(个人理解)。更好的理解就是把LR当作HR的下采样HR↓,那么LR↑就是HR↓↑,Ref↓↑与之保持了一致性。

模块解析:

Feature Swapping模块

用于LR↑与Ref↓↑在patch上的对应,通过计算两者各个patch之间的相似性来完成匹配,公式如下:

 φ(I)相当于对I做了特征映射,论文里面称为自然纹理空间,其实就是VGG19的relu1_1, relu2_1, and relu3_1分别提取三个深度的纹理信息,对应上图的三个箭头。

1.首先,将LR↑和Ref↓↑等分成一个个patch,然后对两者的patch做两两内积,可以得到一个相似性矩阵。[si,j](论文里patch是dense(稠密)的,并且是可以overlap(重叠)的,对于重叠部分计算平均值)。对ref里的patch做了norm归一化,以避免patch本身值大小对相似性影响。

2.实际运算时,其实是用与ref的patch对应的卷积代替的,ref的每个块就是一个卷积核,与LR的每个patch做卷积,就可以得到ref里每个patch在LR整个特征空间的相似性。公式如下:

3.对于LR↑任意一个像素点,我们可以找到一个以它为中心的patch,并找到与之最相似的位置j*,将原生ref对应块经过非线性映射后,赋值给M,遍历所有像素点就得到了特征图M,M就是从ref中提取的纹理,每个尺度的M最终与Texture Transfer中的特征cat到一起(在通道方向拼接)。

 Neural Texture Transfer模块

 很简单,每层的特征输出与M进行CAT后放入残差网络,最后再与上层特征输出相加(此操作可以让残差块只关注于基于上层特征的额外纹理,更易于收敛)

后面就是一些实验设置以及消融实验了,相对crossnet的提升主要是用了patch match,相比于optical flow 匹配性能更优秀。optical flow在视频超分比较好用,因为临近帧变化不大,而cufed5的参考图与LR的相似度从高到低分了L1-L4四个等级,而最高的L1与LR差异也很明显。


本文含有隐藏内容,请 开通VIP 后查看