• 通过自适应卷积的视频帧插值——CGB


    论文链接:https://arxiv.org/abs/1703.07514

     

     

    论文题目:Video Frame Interpolation via Adaptive Convolution(通过自适应卷积的视频帧插值)

    发表时间:2017CVPR

     

    作者及其背景:Simon Niklaus, Long Mai, Feng Liu(波特兰州立大学Portland State University

     

    1.提出问题

      传统视频帧插值方法是两步走:运动估计和像素合成。运动估计一般使用光流法optical flow,光流法的难点在于遮挡,污渍和突然的光环境变化。基

    于流的像素综合也不能很可靠地处理遮挡的问题。

     

    2.解决办法

      之前的插值是两步走的:运动估计motion estimation 和像素合成pixel synthesis。文章提出了一种鲁棒的视频帧插值方法,该方法使用深度卷积神经

    网络实现帧插值,而无需将其明确划分为单独的步骤。这个方法中用来生成插值帧interpolated frame的“像素合成”法pixel synthesis,就是作用在个输

    入图像之间局部卷积local convolution也就是说,对两张输入图片进行像素级别的卷积,可以生成一张插值图片)。这个卷积核作者号称可以捕获两帧

    图片之间的局部运动local motion,并且得到像素合成法的系数。这个卷积核是在一个全卷积神经网络里面估计的,它稀疏,可适应且是针对每一个像素

    的(其实是以该像素点为中心的像素区域)。

      具体来说,对于内插帧中的像素(xy),此深度神经网络将以该像素为中心的两个接受域斑块R1R2作为输入,并估计卷积核K。该卷积内核用

    输入补丁P1P2卷积以合成输出像素,如图1所示。

     图1

      通过卷积进行像素插值。对于每个输出像素(xy),文章的方法是估计卷积核K并使用它与输入帧中以(xy)为中心的色块P1P2进行卷积以产

    其颜色ˆIxy)。

     

    3.算法原理

      给定两个视频帧I1I2,那么任务就是在时域两个输入帧的中间插入新帧。传统的插值方法分两步估计插值帧中像素xy)的颜色:光流估计和

    像素插值,如图2a)所示。当光流由于遮挡、运动模糊和纹理缺乏而不可靠时,这种两步法可能性能会受到影响。另外,对坐标进行舍入(rounding

    得到I1x1y1)和I2x2y2)的颜色,很容易产生混叠(aliasing),而使用固定内核进行重采样也不能很好地保留尖锐的边缘信息。

      文章解决方法就是将运动估计和像素合成集成到一个步骤,并将像素插值定义为输入图像I1I2的局部卷积。如图2b)所示,通过在相应输入图像

    中以(xy)为中心的补丁P1xy)和P2xx)和适当的核K卷积获得插值目标图像的像素(xy)值。卷积核K捕获像素合成的运动和重采样系

    数。

     

    图2 

      像素插值的卷积实现的优点:

     1)将运动估计和像素合成组合到一步提供了比两步程序更稳健的解决方案;

     2)卷积内核提供了解决诸如遮挡等困难情况的灵活性,一种数据驱动的方法直接估计卷积核并为遮挡区域产生视觉上合理的插值结果;

     3)这种卷积公式可以无缝集成其他重采样技术,如边缘觉察(edge-aware)滤波法,以提供清晰的插值结果。

     

    3.1 卷积核估计

     文章设计了一个全卷积神经网络来估计单个输出像素的卷积核。该神经网络的架构在表1中进行了详细说明。具体来说,为了估计输出像素(xy

    的卷积核K,该的神经网络将接受场斑R1xy)和R2xy)作为输入。 R1xy)和R2xy)在各自的输入图像中均以(xy)为中心。

    1所示,输出内核将进行卷积以产生输出像素(xy)颜色的色块P1P2在与这些接受场相同的位置处共同居中,但尺寸较小。使用比贴片更大的

    场来更好地处理运动估计中的孔径问题。在文章的实现中,接收域大小为79×79像素卷积补丁大小为41×41内核大小为41×82,因为它用于与两

    个补丁进行卷积。该方法将相同的卷积核应用于三个颜色通道中的每一个

     

    表1

      如表1所示,卷积神经网络由几个卷积层以及向下卷积组成,作为最大池层的替代方案。作者使用整流线性单位作为激活函数,并使用Batch

    Normalization(批处理规范化)以进行正则化。文章指出可以通过水平和垂直翻转训练样本以及颠倒其顺序来广泛利用数据增强。由于神经网络是完全卷

    积的。因此它不仅限于固定大小的输入,

      文章使用平移和拼接shift-and-stitch 技术(?),同时产生多个K,提高算法速度同时生成多个像素的内核。

      一个关键的约束是输出卷积核的系数应为非负数且总和为1,因此将最终的卷积层连接到空间softmax层,以输出卷积核。

    3.2损失函数

      分别设计了 color loss gradient loss,最终的损失函数是 combine the color and gradient loss as the final loss

      其中下标i表示第i个训练示例,输入的两个patch Pi1Pi2在插值帧中(xiyi)处插值产生的像素,Ki是神经网络输出的卷积核。~Ci 表示the

    ground-truth color。实验表明,仅使用这种颜色损失(插值产生的像素和真实像素的差值),会导致结果模糊,通过在损失函数中加入图像梯度可以缓解

    这种模糊问题,这在文章的逐像素插值方法中很难做到这一点,因为无法从单个像素直接计算图像梯度。

      由于微分也是卷积,假设内核局部变化缓慢,文章通过使用卷积的关联属性来解决此问题:首先计算输入色块的梯度,然后使用估计的核进行卷积,

    得到感兴趣像素处插值图像的梯度。由于一个像素(xy)具有八个直接相邻的像素,文章使用有限差分(finite difference?)计算八个梯度,并将它们

    全部合并:

     

     

      Gki1Gki2是输入块Pi1Pi2的梯度,〜Gkithe ground-truth color的梯度。将上述颜色和渐变损失合并为最终损失Ec +λ·Eg。 实验发现λ= 1

    效果最好,能够产生更清晰的插值结果。

     

    4.实验

     

      1)训练

     

      只需要真实视频。使用了具有共享许可的Flickr公开提供的视频,下载了3,000个使用关键字的视频, 例如开车跳舞冲浪

     

    滑雪,将下载的视频缩放到1280×720像素的固定大小。不使用隔行扫描视频,这些视频有时质量比逐行扫描格式的视频低。

     

    将每个视频中的所有帧分为三帧组,每个组包含视频中的三个连续帧,每个三帧组中随机选取一个像素,然后根据上面的规则选取对应的patch。通过比

     

    较第一和第三张图的光流,选择运动更明显三帧组。

      

      为了数据扩充,选择的patch要比神经网络的接受域receptive-field大,为150×150(超过图片的部分用0填充)。通过随机裁剪、在水平和垂直方

     

    向随机翻转、随机交换其时间顺序,让样本中光流对称分布,使神经网络不会偏向某个方向。

      

      超参的选择:卷积核大小和接收域大小是文章的深度神经网络的两个重要超参数。理论上,卷积核必须大于两个帧之间的像素运动才能捕获运动以

     

    产生良好的插值结果。为了神经网络对大运动具有鲁棒性同时包含大量要估计的值,因此选择一个足够大的卷积核,以捕获训练数据集中最大的运动。文

     

    章系统中的卷积内核大小为41×82,将应用于两个41×41色块。同时,接收域要比卷积核大,才能很好地处理孔径问题,但是,较大的接收场需要更多

     

    的计算并且对运动不太敏感。 经过实验,发现79×79达到了良好的平衡。

      

      Shift-and-stitch减轻冗余计算的问题。全卷积神经网络不需要固定大小的输入,因此它可以通过提供比产生一个卷积核K所需的更大的输入,一

     

    次为多个输出像素计算K。通过这种方式获得的输出像素不相邻,而是稀疏分布(卷积核是连着的,对应像素都在卷积核的中心位置,像素是稀疏分布

     

    的)

      

      边界处理:由于网络的接收场以及卷积核的大小,需要填充输入帧以合成内插帧的边界像素。在文章的实现中,采用零填充。这种方法通常效果很

     

    好,并且不会引入明显的伪像。

    2)对比实验

      与最新的视频帧插值方法进行了比较,包括最新的基于相位的插值方法和一些基于光流的方法:MDP-Flow2Brox等人的方法,以及最近两种基于

    深度学习的方法,即DeepFlow2 FlowNetS

     

    5.不足

      目前仅能够在两个给定帧之间插入单个帧,虽然可以递归地继续合成以在例如t = 0.25t = 0.75处插入帧,但是无法在任意时间插入帧。

     

    6.总结

      文章提出了一种视频帧插值方法,该方法将帧插值算法的两个步骤(运动估计和像素插值)组合到具有两个输入帧的局部卷积的单个步骤中。卷积核

    捕获运动信息和重新采样系数以进行适当的像素插值。开发了一个深层的全卷积神经网络,该网络能够估计空间自适应的卷积核,从而使边缘感知像素合

    成可以产生清晰的插值结果。可以直接从广泛可用的视频数据中训练该神经网络。文章的实验表明,该方法可以实现高质量的帧插值,并能够很好地处理

    具有挑战性的情况,例如遮挡,模糊和亮度突然变化。

     

     

     

     

  • 相关阅读:
    删除重复行的DataFrame
    http各个版本(1/1.1/2)对比
    merge()、. join()和concat()合并Pandas中的数据
    openssl windows 平台编译x86 x64
    openssl windows 平台使用 VS2017 编译openssl源码
    openssl des CBC
    openssl des ECB
    ffmpeg des
    网狐棋牌游戏用户数据库 开发文档
    cmake 附加库目录 附加包含头文件目录 链接库 镜像不安全 宏定义 一个完整的cmake小项目
  • 原文地址:https://www.cnblogs.com/bupt213/p/11777697.html
Copyright © 2020-2023  润新知