在最新的cvpr2021 oral——LIIF上做的改进
LIIF好像是任意倍数超分,用的NeRF那套方法,发现可以用低分辨率图像特征+坐标来还原高分辨率图像,之前是低分辨率图像特征+卷积来还原,这里相当于是用MLP代替卷积,并且主动加入位置信息,其实照理说应该跟卷积差不多。不过卷积的方法不能适应任意scale的超分,一般一个模型对应一个scale,LIIF用MLP可以进行任意倍数超分,看了再说。
如何SR
δ
x
\delta x
δx是低分辨率特征图上某一特征向量的坐标与高分辨率特征图上的坐标的距离,知道HR图像的放缩scale,这个距离自然能算出来,距离和特征向量一起,放进MLP训练,得到对应位置的HR图像?(这篇还没开源,大概猜着是这样?)
上面都是LIIF的内容
ϕ
(
δ
x
)
\phi(\delta x)
ϕ(δx)是对上面的距离做positional encoding,还是cos(wx), sin(wx)那一套,目的是给坐标升维?
作者认为位置信息比低维特征更重要,原因是低维特征在放缩时额外的部分都要靠位置信息来补?(不应该是位置信息+原来的特征嘛)所以希望给MLP更多位置信息,于是做了上面这个positional encoding,同时给MLP加了各种残差连接,把位置信息直接送到后面的层。
作者说单纯加这个positional encoding用处不大,还是后面的这个concat,然后残差连接用处大,具体也没做消融实验,估计是论文还没写完,实验还没跑完,或者效果不好不知道咋编?
代码也还没开源,不过是在LIIF上做的,应该改动不大,直接先看LIIF吧
LIIF
Encoder是EDSR的encoder,输入输出大小相等,等于是做了特征提取,同时尽量不损失信息
Feature Unfolding
就是把每个点周围的8个点concat到这个点的后面,相当于通道数变成了原来的9倍,增加每个点的信息
Local Implicit Image Function
就是LIIF
(1)把LR图片放大到HR大小,不做插值
如上图所示,上面是做了插值的例子,黑色点是LR的点,橙色点是HR的点,现在直接把黑色点的坐标放缩到右图而不做插值
(2)
X
h
r
X_{hr}
Xhr是橙色点的坐标,LIIF就是根据橙色点的坐标,找到其最近的4个黑色点
(3)将这四个黑色点的feature和
X
h
r
X_{hr}
Xhr的坐标一起送入MLP,得到
X
h
r
X_{hr}
Xhr的RGB值(即橙色点的值),与gt算loss
注意,这四个黑色点(
z
t
z_t
zt)并不是一起送入MLP,而是分别送入MLP(和到
x
q
x_q
xq的距离一起送入),并且求加权平均
S为4个黑点围成的方形面积,
S
t
S_t
St为小正方形的面积,见(2)中示例
可以看到,
Z
00
∗
Z^*_{00}
Z00∗对应
S
11
S_{11}
S11,即距离橙点(
x
q
x_q
xq)越远,权重越低