作者单位:北京邮电大学、Intel中国研究院
论文链接:https://arxiv.org/abs/2108.08202
代码链接:https://github.com/Neural-video-delivery/CaFM-Pytorch-ICCV2021
译者言:本文没有以网络结构的创新为切入点,而是利用超分辩率算法去优化神经网络视频传输任务,开辟了一个可以和工业界对接的新的研究方向。
看点
本文首先研究了在神经视频传输中不同块的模型之间的关系,然后设计了一个拥有内容感知特征调制层(CaFM)的联合训练框架来压缩这些模型。使得每个视频块只需要不到1%的原始参数就可以进行流处理,并且获得了更好的SR性能。此外,本方法也可以看作是一种新的视频编码方法,在存储成本相同的情况下视频质量优于H.264和H.265标准。
方法
神经视频传输
神经视频传输通过用LR视频和内容感知模型取代HR视频来节省传输带宽。整个过程如下图所示,共包括三个阶段:
- 在服务器上对视频块进行模型训练
- 将LR块与同内容感知模型从服务器传输到客户端
- 在客户端上解析LR块
在该过程中每个块都需要一个模型,这带来了额外的带宽成本。
动机实验
本实验中采用EDSR对不同视频块训练的模型进行分析。首先将一个视频拆分成
n
n
n个视频块,并训练
n
n
n个EDSR模型
S
1
,
S
2
.
.
.
S
n
S_1,S_2...S_n
S1,S2...Sn。然后本文对这些模型输入随机的DIV2K图像,将得到的特征图可视化,如下图。
定义特征图
f
i
,
j
,
k
∈
R
H
×
W
f_{i,j,k}\in R^{H×W}
fi,j,k∈RH×W,其中
i
i
i表示第i个模型,
j
j
j为通道指数,
k
k
k为EDSR中的第k层。通过计算特征图之间的余弦距离来度量它们的相似性,
f
1
,
:
,
k
f_{1,:,k}
f1,:,k,
f
2
,
:
,
k
f_{2,:,k}
f2,:,k和
f
3
,
:
,
k
f_{3,:,k}
f3,:,k之间的余弦距离矩阵如下图所示
根据图上图中矩阵的对角值,观察到虽然
S
1
,
S
2
.
.
.
S
n
S_1,S_2...S_n
S1,S2...Sn在不同的块上训练,但是对应通道之间的余弦距离非常小。不同模型的所有层之间的平均余弦距离分别约为0.16和0.04。这表明
f
1
,
j
,
k
f_{1,j,k}
f1,j,k和
f
2
,
j
,
k
f_{2,j,k}
f2,j,k之间的关系可以用一个线性函数来近似建模。这使得本文提出了共享大多数参数,并用CaFM私有化每个网络块的方案。
CaFM
我们将CaFM层引入到baseline模型中,以私有化每个视频块的网络。总体框架如下图所示。
CaFM表示为一个通道线性函数:
C
a
F
M
(
x
j
)
=
a
j
∗
x
j
+
b
j
,
0
<
j
≤
c
CaFM(x_j)=a_j*x_j+b_j,0<j\leq c
CaFM(xj)=aj∗xj+bj,0<j≤c其中
x
j
x_j
xj表示第j个输入的特征图,C表示特征通道的个数,
a
j
a_j
aj和
b
j
b_j
bj表示通道缩放比例和偏置值。对于每个滤波器输出的特征都使用CaFM来进行调制。以EDSR为例,CaFM的参数约占EDSR的0.6%。因此,对于一个有n块的视频,我们可以将模型的大小从n个EDSR减少到1个共享EDSR加上n个私有CaFM,这显著降低了带宽和存储成本。
联合训练框架
与单独训练的模型相比,添加微调过的CaFM的模块并不能获得有竞争力的结果。因此,本文进一步提出了一个联合训练框架来同时训练视频块模型。给定LR帧 I L R i , s I_{LR}^{i,s} ILRi,s, s s s表示该块中的第s个样本,SR帧的生成表示为: I S R i , s = g ( I L R i , s ; W s , W i ) I_{SR}^{i,s}=g(I_{LR}^{i,s};W_s,W_i) ISRi,s=g(ILRi,s;Ws,Wi)其中 W s W_s Ws为共享参数, W i W_i Wi为CaFM参数。对于每个视频块,重建损失定义为: L i = ∑ s = 1 S ∥ I S R i , s − I L R i , s ∥ 1 S L_i=\frac {\sum_{s=1}^S\Vert I_{SR}^{i,s}-I_{LR}^{i,s}\Vert_1}{S} Li=S∑s=1S∥ISRi,s−ILRi,s∥1因此,联合训练的损失表示为: L = ∑ i = 1 n L i L=\sum_{i=1}^nL_i L=i=1∑nLi在训练时,所有图像用于更新共享参数 W s W_s Ws,第i块的图像用于更新相应的CaFM参数 W i W_i Wi。
实验
VSD4K数据集
公共数据集如Vimeo-90K和REDS只包含相邻帧序列,不适合视频传输。因此,本文从YouTube上收集了一些4K视频来模拟实际的视频传输场景,命名为VSD4K。它包含6个流行的视频类别,每个类别包含不同的视频长度,包括:15秒、30秒、45秒、1分钟、2分钟、5分钟。使用BI的降质方法来获取LR。
内容感知学习
在大规模数据集上训练网络模型,并使用训练后的模型对LR进行超分辨,本文定义这种训练为外部学习。然而,在神经视频传输任务中,视频是事先知道的。因此,我们可以训练模型对每个视频都进行拟合,从而获得更好的SR性能。这种训练定义为内容感知学习。除此之外,还可以将视频进一步划分为多个视频块,并针对每个视频块进行分别训练,用‘*’表示。实验结果如下:
CaFM中不同核大小的影响
联合训练的消融实验
在一个特定的视频上从零开始训练的网络表示M0。然后我们冻结参数并为每个块添加CaFM,对CaFM的参数进行微调以拟合每个块,这表示为FT。对每个chunk单独训练网络表示为
S
1
−
n
S_{1-n}
S1−n,消融实验如下图:
与H.264/H.265的对比实验
在Vimeo-90K上的定量评估
VSD4K上的评估
M0表示为整个视频训练一个模型,
S
1
−
n
S_{1-n}
S1−n是将视频分割成块,并为每个块训练一个模型,定量评估如下:
定性评估如下: