1. Bidirectional Recurrent Convolutional Networks for Multi-Frame Super-Resolution
以往的subpixel motions estimation只适用于小的运动,同时这种做法计算量大。
作者设计的网络包括三个要点:前馈卷积模拟低分辨率帧与其高分辨率结果之间的视觉空间依赖性。循环卷积连接连续帧的隐藏层以了解时间依赖性。条件卷积连接之前时间戳的输入和和现在的隐藏层。
使用MSE训练网络。
数据集 25YUV
2. SUPER-RESOLUTION OF COMPRESSED VIDEOS USING CONVOLUTIONAL NEURAL NETWORKS(ICIP 2016)
使用一个在压缩视频的时间和空间维度上训练的CNN来增加空间分辨率。连续帧输入作为运动补偿输入网络。网络先在图片上做预训练。
Adaptive Motion Compensation
y
t
−
T
a
m
c
(
i
,
j
)
=
(
1
−
r
(
i
,
j
)
)
y
t
(
i
,
j
)
+
r
(
i
,
j
)
y
t
−
T
m
c
(
i
,
j
)
y_{t-T}^{amc}(i, j) = (1 - r(i,j))y_t(i,j) + r(i,j)y_{t-T}^{mc}(i, j)
yt−Tamc(i,j)=(1−r(i,j))yt(i,j)+r(i,j)yt−Tmc(i,j)
r
(
i
,
j
)
r(i,j)
r(i,j)控制凸组合,
y
t
y_t
yt是中间帧,
y
t
−
T
m
c
y_{t-T}^{mc}
yt−Tmc是前面的愚弄的那个补偿,
r
(
i
,
j
)
=
e
x
p
(
−
k
e
(
i
,
j
)
)
r(i, j) = exp(-k e(i,j))
r(i,j)=exp(−ke(i,j))
k是常数,
e
(
i
,
j
)
e(i,j)
e(i,j)是运动补偿或者配准错误。
3. Building an End-to-End Spatial-Temporal Convolutional Network for Video Super-Resolution(STCN AAAI2017)
作者这个网络有三个组件:空间信息提取,时序信息提取(LSTM),重建部分。先用空间组件提取每张图片的特征,然后送入时序信息,这个时候不仅可以提取到运动信息,还有颜色信息的时序变化、实例物体的patch相似性等等。
3.1 The Spatial Component
堆叠一个足够深的非线性网络。
3.2 The Temporal Component
使用LSTM为主架构,同时要实现multi-scale的空间信息和双向的时序信息,双向的时序操作感觉第一篇文章理解了这里没什么问题。
3.3 重建模块
3.4 SRCN训练
作者后来发现用
(
Y
0
−
X
0
)
(Y_0 - X_0)
(Y0−X0)和
(
Y
i
−
X
i
)
(Y_i - X_i)
(Yi−Xi)取代
Y
0
Y_0
Y0和
Y
i
Y_i
Yi效果更好。(残差学习,收敛快)
4.Real-Time Video Super-Resolution with Spatio-Temporal Networks and Motion Compensation(ICCV 2017)
之前的ESPCN(sub-pixel convolution network)只用于处理图片,使用spatial transformer networks可以对两张图做空间映射,同时已经被应用于光流特征编码。所以作者提出了一个组合了sub-pixel convolution和运动补偿的时空网络,可以快速准确处理视频超分。并分析了几种fusion方式,early fusion, slow fusion and 3D convolutions。
4.1 Method
作者的输入是y通道
Sub-pixel convolution SR
主要是这篇文章的思路
Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network
相关的笔记在 ESPCN
作者认为如果存在比bibubic upsampling更好的上采样操作,网络可以学习。
Spatio-temporal networks
以当前帧为中心,前后的帧数为半径,网络的训练加入了时序的深度
I
t
S
R
=
f
(
I
[
t
−
R
:
t
+
R
]
L
R
;
θ
)
I_t^{SR} = f(I_{[t-R:t+R]}^{LR}; \theta)
ItSR=f(I[t−R:t+R]LR;θ)
所以权重滤波器扩展成
d
l
×
n
l
−
1
×
n
l
×
k
l
×
k
1
d_l \times n_{l-1} \times n_l \times k_l \times k_1
dl×nl−1×nl×kl×k1,作者认为可以同时重加超过一帧的图像。并探索了几种融合方法。
Early fusion
折叠第一层中的所有时间信息,其余操作与单个图像SR网络中的操作相同。这种方法在视频分类和动作识别里面有应用到,也是VSRnet提出的结构之一。
slow fusion
通过分层的方式,逐渐合并时序信息。一些层之间还有时序信息,直到所有的信息根据某个融合速度,合并成一个深度,这种方法在视频分类效果更好。
3D fusion
这种方法是slow fusion的变种。如果slow fusion同一层在temporal维度上参数共享,就成了3D convolution。
Spatial transformer motion compensation
首先引入两帧之间的运动补偿。找到两帧之间最好的(pixel-wise dense)光流表示。
先得到预测光流,
Δ
t
+
1
\Delta_{t+1}
Δt+1得到
x
x
x,
y
y
y处的偏移量。所以一个补偿图像可以表示为
I
t
+
1
′
(
x
,
y
)
=
I
(
I
t
+
1
(
x
+
Δ
t
+
1
x
,
y
+
Δ
t
+
1
y
)
)
I^{'}_{t+1}(x, y) = I(I_{t+1}(x+\Delta_{t+1}x, y + \Delta_{t+1} y))
It+1′(x,y)=I(It+1(x+Δt+1x,y+Δt+1y)),
I
(
.
)
I(.)
I(.)是双线性插值操作。
首先是一个4倍的由两帧早期融合得到的稀疏光流估计,然后通过stride 为2的卷积下采样,通过sub-pixel convolution估计光流,得到的
Δ
t
+
1
c
\Delta_{t+1}^c
Δt+1c用在目标帧上,产生
I
t
+
1
′
c
I^{'c}_{t+1}
It+1′c,接下来是一个fine flow估计模块。得到最终的运动补偿帧
I
t
+
1
′
I^{'}_{t+1}
It+1′。激活函数使用tanh。
作者训练这个模块的时候用上了Huber loss
之后再网络后面可以加上SR模块。由于这两个模块都是可差分的,所以可以实现端到端的训练。