【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)

一、论文简述

1. 第一作者:Deqing

2. 发表年份:2018

3. 发表期刊:CVPR

4. 关键词:光流估计、端到端训练、代价体、金字塔

5. 探索动机:大多数性能最好的方法都采用能量最小化方法,然而对于实时应用,优化一个复杂的能量函数通常计算成本太高。FlowNet2证明了串联多个网络可以提高光流估计的质量,但是这样的后果是训练复杂和参数量成倍增加。

6. 工作目标:SpyNet展示了将经典原理与CNNs相结合的潜力,我们也认为它与FlowNets和FlowNet2的性能上的差距是由于部分经典原理的使用。对于光流的CNN模型,有没有可能既提高精度又减小尺寸?我们发现将领域知识与深度学习相结合可以同时实现这两个目标。

7. 核心思想:实现了一个用于光流的小型但有效的CNN模型,使用了简单和既定的原理:金字塔处理,形变和代价体。在一个可学习的特征金字塔中投影,PWC-Net使用当前的光流估计来形变第二张图像的CNN特征。然后,它使用形变后的特征和第一个图像的特征来构造一个代价体,由CNN处理以估计光流。

8. 实现方法:

  • 特征金字塔提取器。给定两个输入图像I1和I2,我们生成L层的特征表示金字塔,底部(第零)层是输入图像,从第一层到第六层,特征通道数分别为16、32、64、96、128和196。
  • 形变层。在第L层,我们使用从L+1层上采样2倍的光流将第二个图像的特征向第一个图像形变。
  • 代价体层。构建第一幅图像的特征和第二幅图像的形变特征之间的相关体
  • 光流估计器。多层CNN,它的输入是代价体、第一个图像的特征和上采样后的光流,它的输出是第l层的光流Wl。不同层的估计器有自己的参数,而不是共享相同的参数。重复估计过程直到层L0。
  • 上下文网络。使用上下文信息对光流进行后处理。
  • 训练损失。使用FlowNet中提出的相同的多尺度训练损失,计算每一层金字塔层的光流场。

9. 实验结果​​​​​​​将深度学习与领域知识相结合,不仅减小了模型的大小,而且提高了模型的性能。PWC-Net比近期的FlowNet2模型体积小17倍,推断速度快2倍,并且更容易训练。此外,在MPI Sintel Final Pass和Kitti 2015基准测试中,它超过了迄今为止所有已公布的光流方法,运行Sintel分辨率(1024x436)的图像上约35fps。

10.论文下载:

https://openaccess.thecvf.com/content_cvpr_2018/papers/Sun_PWC-Net_CNNs_for_CVPR_2018_paper.pdf

GitHub - sniklaus/pytorch-pwc: a reimplementation of PWC-Net in PyTorch that matches the official Caffe version

二、论文翻译

PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume

摘要

我们提出了一个小型而有效的网络模型,称为PWC-Net。PWC-Net是根据简单和既定原则设计的:金字塔过程,形变,并使用一个代价体。在一个可学习的特征金字塔中投影,PWC-Net使用当前的光流估计来形变第二张图像的CNN特征。然后,它使用形变后的特征和第一个图像的特征来构造一个代价体,由CNN处理以估计光流。PWC-Net比近期的FlowNet2模型体积小17倍,并且更容易训练。此外,在MPI Sintel Final Pass和KITTI 2015基准测试中,它的性能超过了所有现有的光流方法,运行Sintel分辨率(1024x436)的图像上约35fps。我们的模型可以在我们的项目网站上找到。

1. 介绍

光流估计是计算机视觉的一个核心问题,在动作识别、自动驾驶、视频编辑等领域有着广泛的应用。几十年的研究成果在具有挑战性的基准上取得了令人印象深刻的表现。大多数性能最好的方法都采用Horn和Schunck提出的能量最小化方法。然而,对于实时应用,优化一个复杂的能量函数通常计算成本太高。

一种很有前景的方法是采用快速、可扩展和端到端可训练的卷积神经网络(CNN)框架,近年来该框架在计算机视觉领域取得了很大进展。受深度学习在高层级的视觉任务中成功的启发,Dosovitskiy等人提出了两种光流的CNN模型,即FlowNetS和FlowNetC,并引入了范式转换。他们的工作表明,使用通用的U-Net CNN结构从原始图像直接估计光流具有可行性。虽然它们的性能不如目前最先进的方法,但是FlowNetS和FlowNetC模型是同期实时方法中最好的。

最近,ILG等人堆栈几个FlowNetS和FlowNetC形成了一个大的模型,称为FlowNet2,它的表现与最先进的方法相当,但运行得更快(图1)。 然而,大型模型更容易出现过拟合问题,因此FlowNet2的子网络必须按顺序训练。此外,FlowNet2需要640MB的内存空间,不太适合移动和嵌入式设备。

【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)_第1张图片

图1.左图:在MPI Sintel Final Pass基准测试中,PWC-Net在精度和运行时间上都优于已发布的所有方法。右图:在现有的光流的端到端CNN模型中,PWC-Net在精度和尺寸之间达到了最佳平衡。

SpyNet通过将深度学习与两种经典的光流估计原理相结合来解决模型大小问题。SpyNet使用一个空间金字塔网络,并利用初始光流将第二个图像形变向向第一个形变。第一个图像和形变图像之间的运动通常很小。因此,SpyNet只需要一个小网络就可以从这两张图像中估计出运动。SpyNet的性能与FlowNetC相当,但不如FlowNets和FlowNet2(图1)。FlowNet2和SpyNet的结果展示了精度和模型大小之间明显的平衡。

对于光流的CNN模型,有没有可能既提高精度又减小尺寸?原则上,模型大小和精度之间的平衡为普遍的机器学习算法施加了一个不可避免的限制。然而,我们发现将领域知识与深度学习相结合可以同时实现这两个目标。

SpyNet展示了将经典原则与CNNs相结合的潜力。然而,我们认为它与FlowNets和FlowNet2的性能上的差距是由于部分经典原理的使用。首先,传统的光流方法通常对原始图像进行预处理,以提取对阴影或光照变化不敏感的特征。另外,在立体匹配的特殊情况下,相比原始图像或特征,代价体更能区分视差(1D光流)的表示。虽然对实时光流估计来说,构造一个全代价体在计算上是难以实现的,但这项工作通过在每个金字塔层级上限制搜索范围来构造了一个部分代价体。我们可以用形变层将不同的金字塔水平连接起来,以估计大位移光流。

我们的网络,称为PWC-Net,设计目的是充分利用这些简单而成熟的原理。与现有光流的CNN模型相比,在模型大小和精度方面它有了显著的改进(图1和2)。在撰写本文时,在MPI Sintel Final Pass和Kitti 2015基准测试上PWC-Net的性能优于所有已发布的光流方法。此外,PWC-Net的尺寸比FlowNet2小17倍,推断速度是FlowNet2的2倍。它也比SpyNet和FlowNet2更容易训练,在Sintel分辨率(1024x436)的图像上以每秒35帧(FPS)的速度运行。

【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)_第2张图片

图2.在 Sintel Final Pass(上)和Kitti 2015(下)测试集上PWC-Net的结果。 它的性能超过了迄今为止已发布的所有光流方法。

2. 以前的工作

变分法。Hom和Schunck通过使用能量函数结合亮度一致性和空间平滑假设,开创了光流的变分方法。Black和Anandan首次提出了一个鲁棒的框架来处理异常值,即亮度不一致和空间不连续。由于执行全搜索在计算量上是不切实际的,所以通常采用从粗糙到精细、基于形变的方法。Brox等人从理论上证明基于形变的估计过程是正确的。Sun等人回顾了从Horn和Schunck得到的方法的模型、优化和实现细节,并提出了一个非局部项来恢复模型细节。从粗糙到精细、变分的方法是最流行的光流框架。它可以解决复杂的优化问题,但对于实时应用程序来说计算成本很高。

从粗糙到精细的方法的一个难以解决的问题是在粗糙的层次上小而快速移动的物体消失了。为了解决这个问题,Brox和Malik将特征匹配嵌入到变分框架中,并通过后续方法对其进行了进一步的改进。特别是,Epicflow方法可以有效地将稀疏匹配插值到密集光流中,被广泛用作后处理方法。Zweig和Wolf利用CNNs进行稀疏到稠密插值,并在Epicflow上获得了一致性的提高。

大多数性能最好的方法都使用CNNs作为其系统中的一个组成部分。例如,到目前为止在MPI Sintel Final Pass上已公布的最好的方法DCFlow,它学习CNN特征来构建全代价体,并使用包括EpicFlow也使用的复杂的后处理技术来估计光流。第二好的方法是FlowFieldsCNN,它学习CNN特征进行稀疏匹配,并通过EpicFlow提高匹配的密度。第三好的方法是MRFlow,它使用CNN将场景分为刚性和非刚性区域,并使用平面+视差公式估计刚性区域的几何形状和相机运动。然而,它们都不是实时的或端到端可训练的。

早期学习光流的工作。Simoncelli和Adelson研究了光流的数据匹配误差。 Freeman等人使用合成二进制世界例子学习用于图像运动的MRF模型的参数。Roth和Black通过深度图产生的序列研究了光流的空间统计。Sun等人学习一个完整的光流模型,但学习仅限于几个训练序列。Li和Hutten-Locker使用随机优化来调整Black和Anandan方法的参数,但所学参数的数量是有限的。Wulff和Black学习光流的PCA运动基础,光流是在真实电影上通过GPU-Flow估计的。他们的方法速度很快,但会产生过平滑的光流。

最新学习光流的工作。受CNNs在高层级视觉任务上成功的启发,Dosovitskiy等人构造两个CNN网络,FlowNetS和FlowNetC,基于U-Net去噪自动编码器,用来估计光流。该网络是在大型合成FlyingChairs数据集上预训练的,但可以在Sintel数据集上获得快速移动物体的运动。然而,网络的原始输出在平滑的背景区域中具有很大的误差,并需要变分改进。Mayer等人将FlowNet结构应用于视差和场景流估。Ilg等人将几个基本的FlowNet模型堆叠成一个大模型,即FlowNet2,在Sintel基准测试上它的性能与最先进水平的方法相当。Ranjan和Black开发了一个小型的空间金字塔网络,称为SpyNet。在Sintel基准测试上SpyNet实现了与FlowNetC模型相似的性能,很好但不是最好的。

另一项有趣的研究方向是采用无监督学习方法。Memisevic和Hinton提出了门限Boltzmann机器以无监督的方式学习图像变换。Long等人通过插值帧来学习用于光流的CNN模型。Yu等人训练模型使损失项最小化,该损失项将数据一致性项与空间平滑性项相结合。虽然不如在具有标记训练数据的数据集上进行监督的方法,但现有的无监督方法可以在未标记数据上(预)训练CNN模型。

代价体。代价体存储了将像素与下一帧中对应像素相关联的数据匹配代价。它的计算和处理是立体匹配的标准组成部分,这是光流的一个特例。最近的方法研究了光流的代价体处理。所有的方法都是在单个尺度上建立全代价体,计算成本高和内存占用也高。相比之下,我们的工作展示了在多个金字塔层级上构建部分代价体可以得到有效且高效的模型。

数据集。与其他许多视觉任务不同,获得现实世界序列的真实光流是极其困难的。早期关于光流的工作主要依赖于合成数据集,例如著名的Yosemite。这些方法可能对合成数据过拟合,在真实数据上也表现不佳。Baker等人在受控的实验室环境中,在环境光和紫外光下拍摄真实序列以获得真实值,但该方法不适用于室外场景。Liu等人使用人工标注来获得自然视频序列的真实运动,但标记过程耗时。

KITTI和Sintel是目前最具挑战性和应用最广泛的光流基准。 KITTI基准是针对自动驾驶应用的,并使用LI-DAR收集半稠密的真实值。2012年的集合只包含静态场景。2015年的集合通过人工标注扩展到动态场景,对现有方法更具挑战性,因为大运动、严重的光照变化和遮挡。Sintel基准测试使用开源图形电影“Sintel”创建的,有两个通道,clean and final。final pass包含强烈的空气效果、运动模糊和相机噪声,这给现有方法带来了严重的麻烦。所有已发表的、性能最好的方法都非常依赖于传统的技术。通过将经典原理加入到网络结构中,我们表明在KITTI2015和Sintel final pass基准测试中完全端到端的方法能够优于所有已发布的方法。

视觉中用于密集预测任务的CNN模型。去噪自动编码器通常用于计算机视觉中的密集预测任务,尤其是在编码器和解码器之间具有跳跃连接的任务。近期的工作表明,扩张卷积层可以更好地利用上下文信息和改进用于语义分割的细节。这里我们使用扩张卷积来整合用于光流的上下文信息,并获得适度的性能提高。DenseNet结构以前馈的方式直接将每一层连接到其他每一层,在图像分类任务中已经展示出比传统的CNN层更准确,也更容易训练。我们将此思想用于密集光流预测。

3. 方法

图3总结了PWC-Net的关键组成部分,并将其与传统的从粗糙到精细的方法进行了比较。首先,由于原始图像是阴影和光照变化的变体,我们用可学习的特征金字塔代替不变的图像金字塔。其次,我们将传统方法中的形变操作作为网络中的一层来估计大运动。第三,由于代价体是一种比原始图像更能辨别光流的表示,我们的网络有一个层来构造代价体,然后由CNN层处理代价体来估计光流。形变层和代价体层没有可学习的参数,减小了模型的大小。最后,传统方法的一个常见做法是利用上下文信息对光流进行后处理,如中值滤波和双边滤波。因此,PWC-Net使用上下文网络来利用上下文信息改进光流。与能量最小化相比,形变、代价体和CNN层的计算量都很小。

接下来,我们将解释每个组成部分的主要思想,包括金字塔特征提取器、光流模型和上下文网络。有关网络的详细信息,请参阅补充材料。

特征金字塔提取器。 给定两个输入图像I1和I2,我们生成L层的特征表示金字塔,底部(第零)层是输入图像,即Ct0=It,为了生成第L层的特征表示CtL,我们使用多个卷积滤波器层将第L-1金字塔层的特征clt−1进行2倍的下采样。从第一层到第六层,特征通道数分别为16、32、64、96、128和196。

【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)_第3张图片

图3.传统的从粗糙到精细的方法vs.PWC-Net。左:图像金字塔和通过能量最小化方法改进一个金字塔层级。右图:特征金字塔和通过PWC-Net改进一个金字塔层级。PWC-Net使用上采样光流形变第二张图像的特征,计算代价体,并使用CNNs处理代价体。后处理和上下文网络在每个系统中都是可选的。箭头表示光流估计的方向,金字塔在相反的方向上构造。有关网络的详细信息请参阅正文。

形变层。在第L层,我们使用从L+1层上采样2倍的光流将第二个图像的特征向第一个图像形变:

其中x是像素索引,并且上采样光流up2(Wl+1)在顶层被设置为零。我们使用双线性插值来实现形变操作,并根据[24, 25]计算输入CNN特征和光流的梯度用于反向传播。对于非平移运动,形变可以补偿一些几何畸变,并使图像块处于正确的比例。

代价体层。接下来,我们使用这些特征来构造一个代价体,该代价体存储了像素与下一帧中对应的像素相联系的匹配代价。我们将匹配代价定义为第一幅图像的特征和第二幅图像的形变特征之间的相关

其中T是转置运算符,N是列向量cl1(x1)的长度。对于L层金字塔设置,我们只需要计算有限范围d像素的部分代价体,即|x1-x2|

光流估计器。它是一个多层CNN。它的输入是代价体、第一个图像的特征和上采样后的光流,它的输出是第l层的光流Wl。每个卷积层的特征通道数分别为128、128、96、64和32,这些特征通道数在所有金字塔层都保持不变。不同层的估计器有自己的参数,而不是共享相同的参数。重复估计过程直到层L0。

通过DenseNet的连接可以增强估计器结构。每个卷积层的输入是前一层的输出和输入。DenseNet比传统层有更多的直接连接,并在图像分类上有显著提高。我们在稠密光流预测中验证了这一思想。

上下文网络。传统的光流方法往往使用上下文信息对光流进行后处理。因此,我们使用一个子网络,称为上下文网络,在期望的金字塔层次上有效地扩大每个输出单元的感受野大小。它从光流估计器中提取第二个图像的最后一层的估计光流和特征,并输出一个改进的光流。

上下文网络是一个前馈CNN,它是基于扩张卷积设计的。它由7个卷积层组成。每个卷积层的空间核是3×3。这些层有不同的膨胀常数。具有膨胀常数k的卷积层意味着,在垂直和水平方向上该层中的滤波器的输入单元与该层中的滤波器的其他输入单元都是k个单元。具有较大膨胀常数的卷积层在不增加较大的运算负担的情况下,扩大了每个输出单元的感受野。膨胀常数从下到上依次为1、2、4、8、16、1和1。

训练损失。设Θ是我们最终网络中所有可学习参数的集合,它包括特征金字塔提取器和不同金字塔层级的光流估计器(形变层和代价体层没有可学习参数)。设W表示网络预测的第L层金字塔层的光流场,Wl表示对应的监督信号。我们使用FlowNet中提出的相同的多尺度训练损失:

其中I•I2计算向量的L2范数,第二项正则化模型参数。对于微调,我们使用以下鲁棒训练损失:

其中I•I表示L1范数,q<1对离群值的惩罚较小,ǫ是一个小常数。

4. 实验结果

实施细节。训练损失(3)的权重设置为a6=0.32,a5=0.08,a4=0.02,a3=0.01,和a2=0.005。平衡权重y设置为0.0004。我们将真实光流缩放20倍,并下采样,以获得不同层级下的监督信号。注意,与[15]相同,我们不会进一步缩放每个层级的监督信号。因此,我们需要缩放在每个金字塔层级上用于形变层的上采样后的光流。例如,在第二层,我们将第三层的上采样光流缩放5倍(= 20/4),然后再对第二幅图像的特征进行形变。我们使用7层金字塔,将L0设为2,即我们的模型输出四分之一分辨率的光流,并使用双线性插值来获得全分辨率的光流。我们使用4像素的搜索范围来计算每个层级的代价体。

我们首先使用Caffe中的FlyingChairs数据集,和[24]中提出的S学习率计划来训练模型,即从0.0001开始,在0.4M、0.6M、0.8M和1M迭代后将学习率降低一半。数据增强方案与[24]的相同。我们在数据增强过程中裁剪了448×384大小的图像块,批次设置为8。然后,我们在FlyingThings3D数据集上使用S计划微调模型,同时排除具有极端运动(幅度大于1000像素)的图像对。裁剪后的图像大小为768 x 384,批次大小为4。最后,我们使用Sintel和Kitti训练集对模型进行微调,并将在下面解释细节。

4.1. 主要结果

MPI Sintel。在Sintel上进行微调时,我们裁剪了768×384的图像块,增加了水平翻转,并在数据增强过程中消除了添加的噪声。批大小为4。我们使用等式4中的鲁棒损失函数,其中E=0.01,q=0.4。我们验证了两种微调方案。第一个是PWC-Net-ft,在整个微调过程中使用Sintel训练数据的clean和final pass。第二个是PWC-Net-ft-final,只使用final pass用于微调第二部分。我们测试第二个方案是因为DCFlow方法只使用训练数据的final pass来学习特征。因此,当训练数据的final pass被赋予更多的权重时,我们验证了PWC-Net的表现。

在撰写本文时,在MPI-Sintel基准测试的final pass上PWC-Net的平均端点错误(EPE)比所有已公布的方法都要低(表1)。在这个基准上,端到端方法首次超越了精心设计和高度微调的传统方法。此外,PWC-Net是所有表现最好的方法中最快的(图1)。 我们可以通过去掉DenseNet连接来进一步减少运行时间。由此产生的PWC-Net-Small模型精度比PWC-Net小约5%,但快40%。

【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)_第4张图片

表1.在MPI Sintel集上的平均EPE结果。“-ft"表示在MPI Sintel训练集上进行微调,括号中的数字是对这些方法在这些数据上微调后的结果。ft-final是微调时给final pass更多的权重。

PWC-Net在clean pass上不如传统方法准确。许多传统的方法使用图像边缘来改进运动边界,因为两者在clean pass中是完美对齐的。然而,final pass中的图像边缘会被运动模糊、空气变化和噪声破坏。因此,final pass更加真实并富有挑战性。clean pass和final pass的结果表明,PWC-Net可能更适合于图像边缘尝尝被破坏的真实图像。

与FlowNet2相比,PWC-Net在训练集上有更高的误差,但在测试集上有更低的误差,这表明PWC-Net可能有更合适的能力来完成这项任务。表2汇总了不同区域的误差。PWC-Net在运动较大的区域和远离运动边界的区域表现相对较好,这可能是因为它只使用了运动较大的数据进行训练。图4显示了PWC-Net的不同变体在MPI Sintel的训练和测试集上的可视化结果。PWC-Net可以恢复尖锐的运动边界,但在小而快速运动的物体上可能会失败,如Market 5中的左臂。

【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)_第5张图片

表2. 关于在Sintel基准上不同区域、速度(s)和运动边界(d)的距离的详细结果。

【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)_第6张图片

图4.在Sintel训练和测试集上的结果。上下文网络、DenseNet连接和微调都可以改善结果。

KITTI。在KITTI上进行微调时,我们裁剪了896×320大小的图像块,减少了数据增强过程中的旋转、缩放和压缩。批量大小也是4。在KITTI数据集中大图像块可以获得大型运动。由于真实值是半稠密的,我们将四分之一分辨率的预测光流进行上采样,与全分辨率下缩放的真实值进行比较。在计算损失函数时,我们去除了无效像素。

在撰写本文时,在2015数据集上PWC-Net超越了所有发布的两帧光流方法,如表3所示。在所有和非遮挡像素中它都有最低的光流离群值百分比(Fl-all)(表4)。在2012数据集上PWC-Net的非遮挡区域(Fl-noc)中的离群值百分比是第二低的,仅低于SDF,它对背景进行了刚性约束。尽管在2012数据集上的静态场景中刚性假设执行很好,但在2015数据集上PWC-Net优于SDF,2015数据集主要由动态场景组成,更具挑战性。图5的视觉效果定性演示了分别使用上下文网络、DenseNet连接和微调的好处。特别是,微调修复了测试集中的大面积误差,当训练和测试数据共享相似的统计信息时,证明了学习的好处。

【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)_第7张图片

表3.KITTI数据集的结果。“ft”表示在KITTI训练集上进行微调,括号中的数字是在数据上已微调方法的结果。

【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)_第8张图片

图5.KITTI 2015训练和测试集的结果。微调修复了大面积误差,并恢复了尖锐的运动边界。

如表4所示,FlowNet2和PWC-Net在前景区域有最准确的结果,两者都优于已发表的最佳场景流方法ISF。然而,场景流方法在静态背景区域的误差要低得多。结果表明,光流和场景流的协同进行可以产生更准确的结果。

【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)_第9张图片

表4.在KITTI 2015基准测试中,前三个光流和两个场景流方法的详细结果。

4.2. 消融实验

特征金字塔提取器。PWC-Net使用两层CNN在每个金字塔层次上提取特征。表5a总结了分别使用一层(↓)和三层(↑)的两个变体的结果。在训练数据集和验证数据集上容量更大的特征金字塔提取器都始终能取得更好的结果。

【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)_第10张图片

表5.消融实验。除非明确说明,否则模型已经在FlyingChairs数据集上进行了训练。

光流估计器。PWC-Net在每一层级光流估计器中使用五层CNN。表5b显示了分别使用四层(↓)和七层(↑)的两个变体的结果。一个大容量的光流估计器产生更好的性能。然而,我们在实验中观察到,一个更深的光流估计器可能陷入糟糕的局部极小值,这可以通过在几千次迭代后检查验证误差来检测,并通过从不同的随机初始化运行来修复。

在训练和验证集上去掉上下文网络会产生更大的误差(表5c)。当模型在FlyingChairs上训练时,去除DenseNet连接会产生更高的训练误差,更低的验证误差。然而,在FlyingThings3D上对模型进行微调后,DenseNet导致了更低的误差。

我们还测试了光流估计器的残差版本,它估计了一个光流增量,并将其添加到初始光流中,以获得改进后的光流。如表5f所示,该残差版本略微改善了性能。

代价体。我们测试搜索范围以计算代价体,如表5d所示。较大的范围会产生较低的训练误差。然而,这三种设置在Sintel上都有相似的性能,因为每层级上2的范围可以处理在输入分辨率下高达200像素的运动。在KITTI上较大的范围有较低的EPE,可能是因为来自KITTI数据集的图像比来自Sintel的图像有更大的位移。然而,更小的范围似乎迫使网络忽略具有非常大的运动的像素,而更多地关注小运动的像素,从而获得较低的Fl-all分数。

形变。形变让每个金字塔水平上估计的小的光流(增量)来处理大的光流。去除形变层会导致相当大的精度损失(表5e)。没有形变层,PWC-Net仍然产生合理的结果,因为计算代价体的默认搜索范围为4,足以获得低分辨率金字塔水平上大多数序列的运动。

数据集计划。我们还使用不同数据集计划方案,如表6所示。在FlyingChairs、FlyingThings3d和Sintel依次训练,逐渐提高了性能,与[24]中的观察一致。直接使用测试数据进行训练会得到很好的“过拟合”结果,但训练过的模型在其他数据集上表现不佳。

【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)_第11张图片

表6.训练数据集计划产生更好的局部最小值。()表示该方法在数据集上进行训练的结果。

模型大小和运行时间。表7总结了不同CNN模型的模型大小。PWC-Net拥有的参数大约比FlowNet2小17倍。通过删除DenseNet连接进一步将PWC-Net-Small减少了2倍,更适合于内存有限的应用程序。

时间是在同一台式机用NVIDIA Pascal Titanx GPU获得。为了更精确地计算时间,我们去除了基准测试前向和后向推断期间的读写时间。与Flownet2相比,PWC-Net的前向推断速度快2倍,训练速度至少快3倍。

【论文简述及翻译】PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume(CVPR 2018)_第12张图片

表7. 模型大小和运行时间。PWC-Net-small去掉DenseNet连接。对于训练,FlowNet2的14天的下限为6(FlowNetC) + 2×4 (FlowNetS)。

讨论。PWC-Net和SpyNet都受到光流和立体的经典原理的启发,但有显著的差异。SpyNet使用图像金字塔,而PWC-Net学习特征金字塔。SpyNet为CNNs提供图像,而PWC-Net提供代价体。因为代价体是光流搜索空间的一个更具辨别性的表示,因此CNN的学习任务变得更容易。就性能而言,PWC-Net的性能明显优于SpyNet。此外,SpyNet已经进行了顺序训练,而PWC-Net可以从头进行端到端训练。

FlowNet2通过将几个基本模型堆叠成一个大容量模型,实现了令人印象深刻的性能。规模小得多的PWC-Net通过将经典原理加入到网络结构中来获得类似或更好的性能。使用PWC-Net作为构建块来设计大型网络是很有趣的。

5. 结论

我们已经开发了一个用于光流的小型但有效的CNN模型,使用了简单和既定的原理:金字塔处理,形变和使用一个代价体。将深度学习与领域知识相结合,不仅减小了模型的大小,而且提高了模型的性能。PWC-Net的大小比Flownet2小17倍,推断速度快2倍,并且更容易训练。在Sintel final pass和KITTI 2015基准测试上,它超过了迄今为止所有已公布的光流方法,在Sintel分辨率(1024x436)图像上以大约35 fps的速度运行。

鉴于PWC-Net的简洁性、效率和有效性,我们期望它成为许多视频处理系统的有用组成部分。为了便于比较和进一步创新,我们在项目网站上提供我们的模型。

你可能感兴趣的:(光流,图像处理,cnn,计算机视觉,神经网络,深度学习)