读论文|【读论文】基于改进特征金字塔的无监督光流估计

基于改进特征金字塔的无监督光流估计 论文原文请看这里
摘要 ? 用于光流估计的深度学习方法通常通过降低图像分辨率来增加卷积的感受野,从而导致特征提取过程中空间细节信息的丢失。 在本文中,我们将扩张卷积引入到特征金字塔网络中,可以提取包含更多运动细节的多尺度特征,并可以进一步提高光流估计的准确性。 无监督损失函数基于前向-后向一致性检查和稳健普查变换(robust census transform),在光照变化(illumination changes)的情况下具有良好的约束性能,可以训练更准确的无监督学习光流模型。 我们的网络在 FlyingChairs 和 KITTI 原始数据集上以无监督方式进行训练,并在 MPI-Sintel、KITTI 2012 和 KITTI 2015 基准测试上进行测试。 实验结果显示了我们的方法在无监督学习方法中的优势。
1 引言 ? 光流估计是处理动态图像序列的重要技术手段,具有广泛的应用。 Horn 和 Schunck [1] 首次使用变分方法估计光流,为传统光流研究的工作奠定了基础。 大多数传统方法通过对能量函数添加各种新的约束来提高光流估计的精度,可以很容易地整合运动的先验知识。 但这种方法总是计算量大,不适合实时应用。
? 近年来,随着深度学习的发展,卷积神经网络(CNN)在目标识别[2]、图像分类[3]、语义分割[4]等计算机视觉的诸多领域取得了重大突破,其影响已成为 逐渐渗透到光流估计。 多斯维茨基等。 [5]首先提出了两种用于光流估计的端到端 CNN 模型,称为 FlowNetS 和 FlowNetC,使用通用编码器 - 解码器 CNN 架构。 FlowNet 提出后,更多基于深度学习的光流估计方法逐渐被提出,如[6-8]。
? 虽然基于深度学习的光流估计方法在训练阶段比较耗时,但在测试阶段比传统方法更快。 然而,用于光流估计的监督学习方法总是需要大量标记数据,而这些数据对于真实世界的序列往往难以获得,因此深度学习方法通常在合成数据集上进行训练,导致在真实序列上的表现不佳 . 为了解决这个问题,最近的工作[9-11,13-15]以无监督的方式训练光流网络,可以解决在真实场景中获取ground truth的困难,但这些无监督方法的准确性无法与有监督的方法相媲美。 学习光流网络通常使用标准卷积来提取特征,因此随着特征的减少,大量的运动细节信息逐渐丢失,这限制了无监督学习网络的特征提取能力。 此外,遮挡问题也会影响无监督学习方法对光流估计的准确性。
? 为了解决上述问题,我们在无监督学习网络中引入了扩张卷积,可以保持特征图的分辨率,避免细节丢失。 我们将扩张卷积引入到特征金字塔中,可以提高特征提取的能力,学习更丰富、更有效的信息。 除此之外,前向和后向一致性算法被集成到无监督学习网络中,以消除遮挡区域的影响。 此外,我们基于稳健的普查变换构建了无监督的损失函数,可以提高无监督光流网络的学习能力。
? 本文的其余部分组织如下:Sect。 2 介绍了相关工作的概述。 第 3 节主要描述了所提出的方法。 实验和结果见Sect。 4. 最后,我们在sect 5.中给出一个简短的结论
2 相关工作 ? 2.1. 中我们简要回顾了第 1 节中光流的传统方法。然后我们在Sect.2中主要介绍监督学习光流方法。 Sect. 2.3中介绍无监督学习光流方法.
2.1 传统方法
? Horn 和 Schunck [1] 首先使用变分方法通过基于亮度恒定性和空间平滑性假设构建能量函数来估计光流。 特雷蒂亚克等人。 [18] 使用梯度恒常性来设计数据项。 布洛克斯等人。 [19]将亮度恒常性与梯度恒常性结合起来构建更稳健的数据项,并提出了一种由粗到细的变形策略来解决大位移问题。 布鲁恩等人。 [20] 结合了局部方法和全局方法,Papenberg 等人。 [21]使用Hessian和Laplacian的恒常性来设计数据项。 Brox 和 Malik [22] 在变分框架中引入了图像描述符匹配项,它可以约束图像序列和运动对象之间的对应关系。 Weinzaepfel 等。 [23]将匹配算法与光流的大位移变分方法相结合,Revaud [24]通过将边缘保留插值算法引入光流方法对其进行改进。 Nagel 和 Enkelmann [25] 首先使用图像驱动的各向异性平滑约束来提高在移动边缘的光流估计的准确性。 孙等人。 [26] 分析了经典能量函数的特点,并提出了一种防止局部边界过度平滑的方法。 华等人。 [27]提出了一个边缘感知约束项,将其添加到变分模型中以提高边缘光流估计的准确性。
2.2 监督学习光流方法
? 最近,深度学习的成功推动了光流估计学习方法的发展。 FlowNet [5] 首先使用端到端学习监督网络来估计光流,称为 FlowNetS 和 FlowNetC,使用通用的编码器 - 解码器 CNN 架构。 程等人。 [28]提出了一种端到端的训练多任务网络,结合目标分割网络和光流网络来改善光流的最终结果。 Gadot [29] 等。 使用孪生网络独立计算两幅图像的匹配关系,结合块匹配算法和光流插值技术计算密集光流。 法特玛等人。 [30] 提出了一个上下文感知学习光流网络,并使用离散优化计算光流。 FlowNet2.0 [6] 堆叠了多个 FlowNetC 和 FlowNetS 以获得更精确和准确的流场。 Ranjan 和 Black [7] 通过结合传统的从粗到细的金字塔方法和光流学习网络,构建了一个名为 SpyNet 的空间金字塔网络。 戴等人。 [31]进一步提出了一种基于空间金字塔的新网络架构,通过移动信息来约束视频中的时间信息。 胡等人。 [32] 设计了一个圆形空间金字塔网络,用于学习光流估计。 PWC-Net [8] 将特征金字塔和特征扭曲与光流学习网络相结合。 监督式深度学习方法通常在合成数据集上进行训练,这会导致在真实序列上的表现不佳。
2.3 无监督学习光流方法
? 最近,Ahmadi 和 Patras [9] 提出了一种无监督学习光流方法,并命名为 USCNN。 余等人。 [10] 提出了一种基于 FlowNetS 的无监督学习网络,并设计了一种新的损失函数,结合了亮度恒定性约束和空间平滑性约束。 Zhu 和 Newsam [11] 将 DenseNet [12] 引入全卷积网络,并以无监督的方式学习光流。 任等人。 [13] 提出了一种基于 FlowNet 的无监督学习网络,它使用传统方法的数据项和空间平滑项来约束训练过程。 Unflow [14] 利用 flownet2.0 中的堆叠架构和更稳健的损失函数来提高无监督学习光流网络的学习能力。 杨等人。 [15]将一种可以计算遮挡区域的算法引入到无监督学习网络中,以解决遮挡区域对光流估计的影响。 刘等人。 [16] 提出了一种从未标记数据中学习光流估计的数据蒸馏方法,该方法可以从教师网络(teacher network)中提取可靠的预测,并使用这些预测来指导学生网络(student network)学习光流。
3 方法 ? 在 Sect。 3.1,我们介绍了本文提出的无监督学习光流网络的整体架构。 在3.2节,我们给出了基于扩张卷积的改进特征金字塔估计器的细节。 在3.3节,我们给出了光流估计网络的细节。 在3.4节,我们给出了基于普查变换的无监督训练损失的细节。
3.1 无监督学习光流网络
? 本文提出的无监督学习光流网络可以分为三部分:改进的特征金字塔网络、光流估计网络和无监督损失函数。 我们提出的网络的整体架构如图 1 所示。首先,结合扩张卷积的改进特征金字塔由两个共享权重的分支网络组成。 每个分支网络使用几个卷积层来提取金字塔不同层的特征。 接下来,我们通过计算金字塔顶部两幅图像的多尺度特征之间的相关性来获得成本量,我们计算第二张图像的特征和第一张图像的在金字塔的其他层经过光流扭曲的特征之间的成本量 。 然后将每一层金字塔上计算的代价量作为光流估计网络的输入,推断出每一层特征金字塔对应的光流。 整个网络在无监督损失函数的指导下进行训练。 下一节介绍这三个部分的具体细节,并分析每个部分的作用。

读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

图 1 我们提出的基于特征金字塔的网络概述
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片
图 2 改进后的特征金字塔网络
3.2 改进的特征金字塔估计器
? 我们选择特征金字塔网络作为骨干网络,并使用扩张卷积来改进特征金字塔网络。 改进的特征金字塔网络由两个具有相同架构并共享权重的分支网络组成。 改进后的特征金字塔网络结合扩张卷积的整体架构如图2所示。 从特征金字塔的第一层到第四层,每个分支通过连续的卷积层逐渐提取两幅图像的低层特征图 ,其中卷积层由标准卷积层组成。 网络底部的低层特征图的大小会随着金字塔层级的增加而逐渐减小。 从特征金字塔的第五层到第六层,通过连续的卷积层提取两帧的高层特征图,其中不仅包括标准卷积层,还包括扩张卷积层。 也就是说,每个骨干网络的第九层和第十一层都是扩张卷积层,整个特征金字塔估计器由四层扩张卷积组成。 空洞卷积的核大小为3*3,空洞率设置为2和4。
? 光流估计需要详细的空间信息。 使用扩张卷积可以避免由于卷积步幅和反卷积操作而导致的运动细节丢失。 如果直接保持特征图的分辨率不变,会增加模型的参数数量和计算负担。 此外,在网络中使用扩张卷积可以在保持特征图的空间分辨率不变的情况下提取更全面的特征信息,这对于密集光流估计具有重要意义。扩张卷积通过在元素内核之间插入空间来增加卷积核的感受野,即内核元素的覆盖范围更大,即使内核元素数量不变。
? 为了提取更高层次的光流特征,我们必须增加卷积核的感受野。 学习光流方法通常通过增加卷积的步幅来增加标准卷积的感受野,这会导致特征分辨率下降。 如果这里仍然使用标准卷积,那么特征图会缩小到原始图像分辨率的1/128,随着特征图的急剧缩小,大量的运动细节信息会逐渐减少,导致 特征金字塔网络提取特征的能力受限。 将标准卷积替换为空洞卷积后,金字塔高层的特征图像尺寸将不再减小,从而减少了细节信息的损失。
3.3 光流估计网络
? 从图1可以看出,每个金字塔层对应的光流估计网络的结构是一样的,由五个卷积层组成。 具体参数设置如图1所示。在金字塔顶层,我们计算两幅图像的特征之间的相关性以获得成本量。 成本量定义为,
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

其中 Fi1(x1) 和 Fi2(x2) 分别是金字塔第 i 层的两幅图像的特征。 M是特征Fi1(x1)和Fi2(x2)的长度,T是向量的转置操作。 Fci(x1, x2) 是金字塔第 l 层的成本量。
? 除了金字塔的第一层,我们使用第 l -1 层的光流在第 l 层扭曲第二张图像的特征,并计算扭曲特征和第一张图像特征之间的成本量。 从特征金字塔的第一层到第四层,特征的大小随着金字塔等级的增加而逐渐减小,所以我们首先在l-1层对光流进行上采样,然后用它来扭曲特征,
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

其中 Ol?1§ 表示从 l ? 1 级光流估计网络计算的光流,ψ 表示上采样操作,Fl2§ 表示第二张图像的特征,Fwl § 表示扭曲的特征 .
? 之后,我们通过计算扭曲特征 Flw§ 与第一张图像 Fl1§ 的特征之间的相关性来获得成本量,然后将其输入到光流估计网络中以学习光流。
3.4 无监督损失函数
? 本文采用稳健的普查变换构造损失函数,以避免光照变化的影响,在光照变化的情况下具有稳定的约束性能[17]。 首先,我们将第一张图像和第二张图像输入网络以获得正向光流,然后再次交换输入图像的序列以获得反向光流。 之后,我们使用前向和后向光流通过前向-后向一致性检查算法推断前向遮挡区域和后向遮挡区域。 我们使用 K f 和 Kb 表示前进和后退标志。 对于前向的遮挡,我们将前向遮挡标志K f 设置为1。对于向后方向的遮挡,我们将向后遮挡标志Kb 设置为1。本文只计算 在无遮挡区域的无监督像素损失。 无监督损失的示意图如图 3 所示。
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

图 3 无监督损失示意图
? 公式(3)可以通过将普查变换嵌入到无监督损失函数中得到。
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

其中 p 是图像中的像素,w§ 是像素 p 处的光流。 Ci census 是图像的 census 变换, ?(x) = (x2 + μ2)λ 是鲁棒的广义 Charbonnier 惩罚函数。
? 我们计算金字塔第二层到第六层的无监督损失,将不同层次对应的损失相加得到最终的损失,所以最终的损失可以用公式(4)表示。
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

? 每个普查损失函数在不同分辨率下的权重设置为 12.7、4.35、3.9、3.4 和 1.1。 我们参考对比方法PWC-Net[8]中每个损失函数的权重,并使用相同的参数来设置每个损失函数的权重。
4 实验结果 ? 在本节中,我们介绍了实验方法并给出了我们网络的实验结果。
4.1 设置
? 实验硬件环境为NVIDIA Geforce GTX 1080Ti图像处理器(GPU),网络在Tensorflow中实现。 我们将合成数据集 FlyingChairs 和 KITTI raw 用于无监督训练网络。 首先,我们在合成数据集 FlyingChairs 上训练我们的网络。 批量大小设置为 4,训练迭代次数为 60k,初始学习率为 1e?4。 训练到 200K 后,每 100k 次迭代学习率就会降低。 然后我们在由真实道路场景组成的 KITTI 原始数据集上训练网络。 批量大小设置为 4,迭代次数为 40k,初始学习率设置为 1e?5。 100k 次迭代后,每 100k 次迭代减少一次迭代次数。 我们分别在 MPI-Sintel、KITTI 2012 和 KITTI 2015 基准测试上测试我们的两个模型,并将结果与近年来有监督和无监督学习光流方法进行比较,以分析该方法的性能。 终点误差(EPE)用于度量误差。
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

其中 (u(x,y), v(x,y)) 表示像素 p = (x, y) 处的预测光流,(u(gx,y) , v(gx,y)) 表示地面实况在像素 p = (x, y) 处,H 和 W 分别表示图像的高度和宽度。
4.2 结果
? 我们首先在公共数据集的 FlyingChairs 上训练我们的网络,并在 MPI Sintel clean 和 final versions 数据集上对其进行测试。 终点误差(EPE)用于测量误差。 表 1 显示了对 MPI-Sintel 数据集的定量评估。 Ours-chairs 表示在 FlyingChairs 数据集上训练的模型。
表 1 MPI-Sintel 性能对比
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

? 我们将我们的方法与近年来在 MPI-Sintel 数据集上的有监督和无监督学习光流方法进行了比较。 表1中列出的FlowNetS [5]、FlowNetC [5]、SpyNet [7]是监督学习光流方法,以及USCNN [9]、DenseFlow [11]、DSTFlow [13]、UnFlow [14]、OccAware [15] , DDFlow [16] 是无监督学习光流方法。 表1中的数字是每种方法的终点误差。 从表 1 可以看出,我们的方法优于大多数无监督方法,如 USCNN [9]、DenseFlow [11]、DSTFlow [13]、UnFlow [14]、OccAware [15],这证明我们的方法 方法在无监督学习方法中具有很大的优势。 同时,本文提出的无监督方法更接近监督方法的准确性,包括 FlowNetS [5]、FlowNetC [5]、SpyNet [7],以及我们的方法在训练数据集上的性能 优于所选的监督方法。
? 图 4 和图 5 显示了无监督学习方法 DSTFlow [13]、OccAware [15] 和我们的方法在 Sintel clean 训练数据集上的视觉比较。 图 6 显示了监督学习方法 FlowNetS、FlowNetC [5] 和我们的方法在 Sintel final 的训练数据集上的视觉比较。 图 7 显示了监督学习方法 SpyNet [7] 和我们的方法在 Sintel clean 的训练数据集上的视觉比较。 可以看出,我们方法的光流更流畅,更准确,尤其是在细节上。
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

图 4 DSTFlow [13] 和我们的方法的视觉比较
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

图 5 FlowNetS [5]、FlowNetC [5] 和我们的方法的视觉比较
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

图 6 SpyNet [7] 和我们的方法的视觉比较
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

图 7 监督方法 [5] 和我们在 KITTI 2012 上的方法的视觉比较
? 我们进一步使用未标记的真实场景数据集 KITTI raw 来训练我们的模型并在 KITTI 2012 和 KITTI 2015 基准上对其进行评估。 表 2 显示了对 KITTI 2012 和 KITTI 2015 数据集的定量评估。 Ours-raw 表示在 KITTI 原始数据集上训练的模型。
表 2 KITTI 2012 和 2015 的定量评价
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

? 表2中的数字是每种方法的终点误差。 如表 2 所示,我们的方法在 KITTI 2012 上的性能优于包含 FlowNetS [5]、FlowNetC [5]、SpyNet [7]、FlowNet2.0-css [6] 和 PWC-Net [8] 的监督学习网络方法 和 KITTI 2015 数据集,证明与监督方法相比,我们的无监督方法更适合解决实际应用问题。
? 图 7 展示了监督学习方法和我们的方法在 KITTI 2012 上的视觉对比。从对比图片可以看出,我们的方法在细节上可以获得更准确的光流,树木的形状和轮廓更加明显。 图 8 显示了我们的方法在 KITTI 2015 数据集上的视觉结果。
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

图 8 我们的方法在 KITTI 2015 上的可视化结果
4.3 消融研究
? 在本节中,我们对我们方法的不同组成部分进行消融分析。 我们在 Sintel Clean 和 Sintel Final 数据集上测试了我们的网络,并显示了对消融实验结果的定量评估,如表 3 所示。第一行的结果显示了使用标准卷积层和亮度恒定损失函数的 EPE。 第二行的结果显示了使用扩张卷积层和亮度恒定损失函数的 EPE。 第三行的结果显示了使用扩张卷积层和普查变换损失函数的 EPE。 以上实验均使用前向和后向一致性检查。
? 从表 3 的对比结果可以看出,基于改进特征金字塔的方法在 Sintel clean 和 Sintel final 数据集上的端点误差分别降低了 14% 和 8%,证明在 特征金字塔可以提高性能。 添加普查变换损失函数后,扩张+普查(dilated+census)方法的终点误差在 Sintel clean 和 Sintel final 数据集上分别降低了 16% 和 9%,这显示了我们的无监督损失函数的有效性。
表3 消融实验定量评价
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

【读论文|【读论文】基于改进特征金字塔的无监督光流估计】? 测试时间也是光流估计的一个重要因素。 我们在 KITTI 2012 训练数据集上测试了我们的模型。 请注意,表 4 中的测试时间是测试时间(194 个图像对)的平均值。 此外,我们在 GPU (NVIDIA 1080Ti) 上进行了测试,并在表 4 中进行了比较。从表 4 中,我们可以发现我们的模型比 PWC-Net 花费更多的时间,因为我们的网络比 PWC-Net 更复杂。
表 4 测试时间(KITTI 2012)
读论文|【读论文】基于改进特征金字塔的无监督光流估计
文章图片

5 结论 ? 我们提出了一种基于改进的特征金字塔和普查变换的无监督学习光流网络。 首先将扩张卷积融入到特征金字塔网络中,使网络既可以提取特征又可以避免图像分辨率的损失,从而有效地学习更多的运动细节,提高提取特征的能力。 其次,在光流估计网络的训练过程中融入了前向和后向一致性检查算法,可以计算遮挡区域,从而消除遮挡区域对光流计算的影响。 此外,使用在光照变化情况下具有稳定约束性能的普查变换构造无监督损失函数,可以提高无监督光流网络的学习能力。 我们使用 FlyingChairs 和 KITTI 原始数据集来训练我们的网络,并分别在 MPI-Sintel、KITTI 2012 和 KITTI 2015 基准测试上测试模型。 然后我们将我们的方法与其他有监督和无监督的光流估计方法进行比较,这证明了我们的无监督方法的有效性。

    推荐阅读