技术文库

基于深度学习的视频帧内插技术

前面介绍了利用空间几何关系的视图扩展(IBR),现在讨论如何利用时域运动关系的视图扩展,俗称为视频内插或者视频帧率转换(frame rate up conversion,FRUC)。

深度学习,人工智能,自动驾驶

本文作者:黄浴(自动驾驶科学家/工程师)

前面介绍了利用空间几何关系的视图扩展(IBR),现在讨论如何利用时域运动关系的视图扩展,俗称为视频内插或者视频帧率转换(frame rate up conversion,FRUC)。这个问题的本质是运动估计和补偿/预测的应用,因为深度学习可以用于运动估计,故也可以看到其在FRUC中的继续。

• Adaptive Convolution

视频帧插值通常涉及两个步骤:运动估计和像素合成。该方法将这两个步骤组合到一个过程中,即将内插帧的像素合成视为两个输入帧的局部卷积。卷积核捕获输入帧之间的局部运动和像素合成的系数。它采用深度全卷积神经网络(FCN)来估计每个像素的空间自适应卷积核。其训练可以是在广泛可用的视频数据端到端进行,不需要任何难以获得的基础事实(GT)数据,如光流。

关于像素插值通过卷积实现的原理见下图。 对于每个输出像素(x,y),估计卷积核K并与两个输入帧以(x,y)为中心的两个补丁P1和P2卷积产生插值图像I ˆ(x,y)。

 

 

下图进一步介绍卷积做像素内插的原理。给定两个视频帧I1和I2,那么任务就是在时域两个输入帧的中间插入新帧Iˆ。传统的插值方法分两步估计插值帧中像素Iˆ(x,y)的颜色:光流估计和像素插值,如图(a)所示。当光流由于遮挡、运动模糊和纹理缺乏而不可靠时,这种两步法可能性能会受到影响。另外,对坐标进行舍入(rounding)得到I1(x1,y1)和I2(x2,y2)的颜色,很容易产生混叠(aliasing),而使用固定内核进行重采样也不能很好地保留尖锐的边缘信息。

而解决方法就是将运动估计和像素合成集成到一个步骤,并将像素插值定义为输入图像I1和I2的局部卷积。如图(b)所示,通过在相应输入图像中以(x,y)为中心的补丁P1(x,y)和P2(x,x)和适当的核K卷积获得插值目标图像的像素(x,y)值。卷积核K捕获像素合成的运动和重采样系数。

 

像素插值的卷积实现有一些优点:1)将运动估计和像素合成组合到一步提供了比两步程序更稳健的解决方案;2)卷积内核提供了解决诸如遮挡等困难情况的灵活性,一种数据驱动的方法直接估计卷积核并为遮挡区域产生视觉上合理的插值结果;3)这种卷积公式可以无缝集成其他重采样技术,如边缘觉察(edge-aware)滤波法,以提供清晰的插值结果。

• Super SloMo

这是一种用于可变长度多帧视频插值的端到端卷积神经网络(CNN)方法,其中联合建模运动估计和遮挡分析过程。首先使用U-Net架构计算图像之间的双向光流(bi-directional optical flow)。然后,在每个时间步线性地组合这些光流以近似中间(intermediate)双向光流。然而,这些近似光流仅在局部平滑区域中很好地工作并且在运动边界周围产生伪影(artifacts)。为此,采用另一个U-Net来改进近似光流并预测软可见性图(soft visibility maps)。最后,两个输入图像被变形并线性方式融合形成每个中间帧。在融合之前应用这种可见性图于变形图像,好处是排除了被遮挡像素对插入中间帧的贡献以避免伪像(artifacts)出现。训练网络的数据是1,132个240-fps视频剪辑,包含300K帧。

整个网络结构归纳一下,如下图所示。对于光流计算和光流插值CNN,采用U-Net架构。 U-Net是一个全卷积网络,由编码器和解码器组成,在相同的空间分辨率下,编码器和解码器之间有跳连接(skip connection)。在这两个网络,编码器有6层,包括两个卷积层和一个Leaky ReLU(α= 0.1)层。 除最后一层之外,每层次末尾,用步幅为2的平均池化层(averaging pooling)来减小空间维度。 解码器部分有5层,在每层开始,双线性上采样层用于增加空间维度2倍,然后是两个卷积层和一个Leaky ReLU层。

• MEMC-Net

现有的基于学习的方法通常估计光流运动或运动补偿内核,从而限制了计算效率和插值精度的性能。MEMC-Net是一种用于视频帧插值的运动估计和补偿(MEMC)驱动的神经网络。其中设计一种自适应变形层(adaptive warping layer),以集成光流和内插核技术来合成目标图像帧。该层完全可微分,因此可以光流和内核估计网络可以联合优化。受益于运动估计和补偿方法的优点,该网络不使用人为设计(hand-crafted)的特征。下图是MEMC网络的比较。传统的MEMC方法包括运动估计、运动补偿和后处理,如图(a)所示。另一方面,有两种基于神经网络的视频帧插值的代表性方法。一种简单的方法是顺序组合上述三个模块,如图(b)所示。然而,由于不完美的光流估计,变形的帧(Iˆ t-1和Iˆ t + 1)通常质量较低。因此,横向核(lateral kernel)估计、核卷积和后处理不能基于变形帧得到好结果。相比之下,第三种算法同时估计相对于原始参考帧的光流和补偿内核,要求在变形层内执行基于流和补偿内核的帧内插,如图(c)所示。

整个视频帧插值算法执行的任务如下:给定两个输入帧,首先分别通过运动估计和核估计网络估计光流和空域变化的插值核;然后,基于自适应变形层内的光流和内核来变形输入帧;接下来,通过将变形的输入帧与学习的遮挡掩码混合来生成中间帧;然后,将中间帧以及估计的内核、光流和掩码馈送到后处理网络以生成最终输出帧。该网络模型称为MEMC-Net,架构示意图见下图。

另外还有一个增强模型,在后处理网络中使用上下文信息获得更好的性能。把预训练的分类网络提取的上下文信息和残差块作为卷积层的替代方案有助于提高性能。增强型模型命名为MEMC-Net *。如下图显示了MEMC-Net和MEMC-Net *网络模型。其中虚线框是上下文提取模块(context extraction module )。其中光流估计用FlowNetS,核和掩码估计基于UNet,上下文提取模块基于ResNet18,而后处理基于多个卷积层的网络。

• IM-Net

IM-Net是一种运动插值神经网络。它使用经济的结构化架构和端到端的训练模式,以及定义的修正多尺度损失函数。 特别是,IM-Net将插值运动估计表示为分类而不是回归问题。

IM-Net是一个全卷积神经网络,用于估计插值运动矢量场(interpolated motion vector field,IMVF)和遮挡图。它不是逐像素而是逐图像块的版本。由于运动的分段平滑性,这对于高分辨率是合理的。然后,将估计的IMVF和遮挡图与输入帧一起传递给合成内插中间帧的经典视频帧内插(VFI)方法。

在VFI域中广泛使用的架构选择是编码器-解码器模块。如图所示,IM-Net网络架构由三种类型的模块组成:特征提取、编码器-解码器和估计。编码器-解码器子网络接收从连续输入帧对中提取的特征。它们的输出合并为高维表示,并传递给估计子网络。为了实现多尺度处理,构造输入帧的三级金字塔图像表示。六个输入帧中的每一个(每个金字塔层是一对)由特征提取模块处理,每个输入产生25个特征通道。由于所有输入都经过相同的层,并且这些层共享其参数,称为Siamese。

从每个金字塔层提取的特征作为输入传递给其编码器-解码器模块。用一个稍微不同的架构来设计每个编码器-解码器模块,以便所有解码器输出的大小为W/8 × H/8 × 50,其中图像帧大小是W x H。接下来,使用局部(逐像素)自适应(学习过)权重来合并三个解码器输出。为此,解码器输出被传递到级联的卷积层,接着是SoftMax层。然后,将合并输出为三个解码器输出通道的加权平均值。

最后,合并的输出被发送到三个并行的Estimation估计路径,每个路径由卷积层组成,并以SoftMax层结束:前两个路径每个产生25个归一化权重(分辨率W/8 × H/8)。这些权重分别与IMVF的水平和垂直分量估计相关联;第三条路径生成两个归一化权重(分辨率还是W/8 × H/8),与遮挡图的估计相关联。

• Depth-Aware Video Frame Interpolation

这是一种通过挖掘深度信息来明确检测遮挡的视频帧插值方法。具体而言,它设计了一种深度觉察的光流投影层来合成中间光流,其优先采样那些更近的物体。此外,系统学习一种分层特征(hierarchical feature),能以从相邻像素中收集上下文信息。然后,该模型基于光流和内插内核变形输入帧、深度图和上下文特征得以合成输出帧。如图是该方法的一些视频内插帧的例子,可以看到估计的光流、深度图、内插帧和基础事实(GT)帧。

 

给定两个输入帧I0(x)和I1(x),其中x∈[1,H]×[1,W]是图像2D空间坐标,H和W是图像的大小,而任务是在时间t∈[0,1]处合成一个中间帧。深度觉察的帧内插方法需要光流来变形输入帧以合成中间帧。首先,估计双向光流,分别用F0→1和F1→0表示。为合成中间帧,有两种常见的策略:1)第一种策略可以应用前向变形,基于F0→1变形I0并且基于F1→0变形I1,然而前向变形可能导致变形图像出现“洞”;2)第二种策略是先近似中间流,即Ft→0和Ft→1,然后应用后向变形对输入帧采样,而为了近似中间流量,可以从F0→1和F1→0 中的相同网格坐标借用光流矢量,或者聚合通过同一位置的光流向量。该框架也采用了光流投影层(flow projection layer)设计来聚合光流向量,同时考虑深度顺序来检测遮挡。

获得中间光流后,在自适应变形层(adaptive warping layer)内基于光流和插值内核对输入帧、上下文特征和深度图变形。最后,采用帧合成网络(frame synthesis network)来生成内插帧。

下图是深度觉察光流投影方法示意图。光流投影层通过 “反转” 在时间t通过位置x的光流向量来近似给定位置x的中间光流。 如果流F0→1(y)在时间t通过x,则可以将Ft→0(x)近似成-tF0→1(y)。类似地,我们将Ft→1(x)近似为–(1-t)F1→0(y)。以前的光流投影方法获得的平均光流向量可能不指向正确的目标或像素。相反,根据深度值重写光流能够生成指向更近像素的光流向量。这样,投影的光流向量

其中设D0是图像I0的深度图,而权重计算如下

对于没有光流通过的位置,其形成的“洞”可以通过邻域的光流平均填补,计算为

所提出的深度觉察光流投影层完全可微分,这样在训练期间可以联合优化光流和深度估计网络。 而整个帧内插模型的框架如图,模型包括以下子模块:光流估计、深度估计、上下文提取、核估计和帧合成网络。深度觉察光流投影层获得中间流,然后变形输入帧、深度图和上下文特征。最后,通过残差学习帧合成网络生成输出帧。光流估计采用PWC-Net,深度估计采用沙漏模型,上下文特征提取采用预训练的ResNet,核估计和自适应变形层基于U-Net,最后帧合成网络基于三个残差块,以增强合成帧的细节。

下图是上下文提取网络架构。

下图是深度觉察光流投影层的效果展示例子:DA-Scra模型无法学习任何有意义的深度信息;DA-Pret模型从预训练模型初始化深度估计网络,并为帧插值生成清晰的运动边界;DA-Opti模型进一步优化了深度图并生成更清晰的边缘和形状。

下图是提取上下文特征的效果例子。与其他两个,即预训练卷积特征(PCF)和学习的卷积模型(LCF)相比,使用学习的分层特征(LHF)和深度图(D)进行帧合成,产生更清晰和更清晰的内容。

 
 自动驾驶 人工智能 深度学习