Every Pixel Counts ++: Joint Learning of Geometry and Motion with 3D Holistic Understanding(2018.10)

计算每个像素:使用3D整体理解对几何与运动一同学习

摘要:

学习从一帧图片估计三维几何,以及通过观察未标注的视频的连续帧学习光流取得重大进步。其中深度估计方法最重要的假设前提是:对场景中不包含移动物体,可以通过计算光流来补充。

本文将同时估计来自一帧图像估计出的3D几何结构,以及连续帧估计出光流,消除固定场景假设的假设,并且在训练过程中增强了固有的几何连续性,在每个任务中都取得了进步。

在训练中,从视频中选出两个连续帧, 然后采用三个平行网络,去估计(1)相机运动 (MotionNet)(2)稠密深度图 (DepthNet)(3)两帧间的每个像素的光流图 (FlowNet) 

2D光流、相机位姿、深度图这三种信息被喂入一个整体3D运动分析器中(HMP),并且对固定背景运动物体的每个像素的3D运动进行分离与恢复。构造了许多损失部分一同监督这三个网络。

最后,为了解决单目视频中一些3D运动混乱问题,我们使用立体视频对作为训练。

以五项任务展示效果:

1)深度估计 (2) 光流估计 (3) 里程计(4) 移动物体语义 (5) 场景光流估计

 

一、介绍

  人们十分擅长将三维成精模型和目标运动在很小误差下进行还原,他们通过视觉方面对运动物体和三维几何结构有着丰富的理解。从图像和视频中获得的三维信息对现实生活许多人物都有着广泛应用,比如:增强现实、视频分析和机器人导航。

  本文,我们在不使用标注训练数据的情况下,目的在于训练出能够同时推导出稠密三维几何信息以及运动物体的框架。相反,我们只使用未标注的视频去提供自监督,三维几何估计包括从单张图像推出每个像素的深度估计以及运动信息包括:2D光流、相机运动以及三维物体运动

  最近的无监督单目深度估计取得进步,只使用未标注的样本作为输入并且使用三维重建作为监督,其深度估计结果超过了采用监督方法的室内场景结果。

  监督方法的核心思想:通过刚体SFM变换合成图像来深度估计进行监督。依据目标图像估计的深度图和三维相机相对运动,将原始图像转换到目标图像。转换后的图像与目标图像的像素差被用来监督学习,双目也有用这种方法的。然而,真实世界视频中可能含有运动体,这与大多数框架中假设的固定场景假设不同。

  Zhou: 尝试通过引入一个解释性的掩膜来消除误差,在训练中忽略运动物体以及遮挡区域的图像像素,

  Vijayanarasimhan: 从运动网络中使用多刚体模型估计出了k个物体掩膜以及k个物体轴心解决了移动物体问题。这个系统需要对物体数量设定一个方位,并且产生的几何估计结果比Zhou或其他没有明确建模移动对象的系统更差

 

  如图1(d)所示,我们从同时估计的深度图1(b)以及光流图1(c)中,准确计算出了运动物体掩膜,区分除了在相机与运动物体直接引起的运动

  另一方面,光流估计的2D像素运动,对场景中的刚体与非刚体运动进行建模:

     Ren:首先通过图像合成来监督光流网络

     Wang:提出了一个学习方法,找到受遮挡区避免不成功的图像匹配

然而,这些系统缺乏对三维几何结构的整体了解,导致学习过程中的正则化部分造成困难,不同于之前的方法,本文通过同事考虑深度和光流来促进它们之间的一致性,对基于无监督/自监督学习的稠密三维运动进行建模。

  特别是,给定两个连续帧图像,我们将二维像素的运动看作是由三维点云移动造成的。然后,这个三维点的运动被分解为相机运动物体运动,图像中的每个像素都是被整体考虑的,因此可以计算三维估计。


  

图2说明了EPC++的结构,其中连续帧图像为It 和Is。

    首先,我们引入光流网络产生两张光流图:Ft→s,Fs→t。然后,对两张图像经过一个运动网络输出相机的相对运动Tt→s,以及一个单图像深度网络输出深度图Dt,Ds。 这三种信息被喂入到一个整体运动解析器(HMP)中, 其中可见/非遮挡掩膜V移动物体语义掩膜S,对于固定背景Mb的每个像素的三维运动,以及运动物体Md的运动将依据几何规则和一致性进行恢复。

    固定背景Mb的3D运动光流由目标图像It的深度和相对相机位姿Tt→s计算得到。此外,一个完整的3D场景流由光流Ft→s和两个深度图Dt,Ds计算。原则上,对于Is中非遮挡部分 (V=1),减去两个固定区域的3D流得到的误差应为‘0’。然而,在运动物体区域里,残差就是运动物体Md的3D运动,它比背景明显大很多,因此生成了运动物体的掩膜。

    对于遮挡的像素Is,我们利用深度信息的线索,拿Mb去修复光流,这样的结果比双线性插值要准得多。

  对于单目视频来说,深度和运动物体一直以来很难分开,比如:从相机的角度来看,一个与相机运动非常近的物体,等同于与它保持同样相对运动的远处物体,这会产生深度估计的尺度混乱。因此,通过在训练过程将立体视频对喂入训练网络来解决。

    EPC++成功将前景运动与背景进行分割,因此每个像素造成的图像所示可以被明确解释,得到更好的深度、光流和语义信息结果比只专做其中一个的任务要好。

 

2. 相关工作

(1)SFM和单目几何

   基于几何的方法从视频中估计3D信息使用特征匹配或者块匹配的方法,比如:PatchMatch Stereo [17], SfM [12], SLAM [18],[19] and DTAM [1]。 当动态运动出现在单目视频中时,对于每个非刚体运动将会出现尺度模糊这一问题,比如:低秩正则化 [20], (正交相机)orthographic camera [21], 刚性化 [22] 或者固定数量的移动物体[23] 对于获得一个唯一结果都很好用。然而,这些方法的前提是2D匹配是准确的,当出现低纹理,视觉方面的不正常变化等情况会失败,更重要的是,这些方法不能扩展单目重建上。

   传统上,特殊和严格的假设对于从单目几何中估计深度是有必要的,比如:computing vanishing point (计算消失点)[24], 遵循BRDF的假设 [25], [26], or extract the scene layout with major plane and box representations(或者使用主平面和box表示来提取场景布局) [27], [28],这些方法主要只能得到稀疏几何表示,并且有些需要特定的假设 (e.g. Lambertian, Manhattan world)

(2)用CNN监督深度估计

Deep neural networks (DCN)深层神经网络在近几年提供强大的特征提取。稠密几何,即从单目图像估计出像素级的深度和法线图 [ 29], [ 30], [ 31],[ 32], [ 33],并且训练在端到端的方法,CNN学习的方法比手工特征有明显优势。其他方法通过添加条件随机场
conditional random fifield (CRF) [ 37 ], [ 38 ], [ 39 ], [ 40 来增加估计效果。然,需要稠密的标注数据,很难获得。

(3)无监督单目深度估计

1. 利用双目相机,依据已知基线将一张图片变化到另一侧[8], [41], [42]

2. 依据单目视频,通过一个运动网络合并出3D相机位姿[5], [9], [10], [43], [44], [45] 。然而,大部分模型考虑的是固定场景,忽略了运动物体。

Godard:利用更新的神经网络,考虑将立体与单目图像相结合提高了效果。

我们只考虑对光流网络的学习,得到更加鲁邦的匹配

(4)光流估计

    传统稠密特征匹配的光流估计用的是局部特征,比如使用Patch matching [48], Piece-wise matching [49] and SIFT flflow[50], 来监督学习CNNS,如:FlowNet [51], SPyNet [52], and PWCNet [53]。由于深层信息包括更多的内容因此取得了好效果。然而,训练需要高质量标注数据,很难获得。

    [14],第一次利用无监督学习光流,[54]通过图像合成局部光流平滑度训练网络。最近[6], [55],通过明确计算出遮挡mask得到更鲁邦的结果,其中像素误差在训练中被忽略。然而,这些工作不包含3D场景几何理解,比如:视频中的深度和相机运动以及光流。

(5)结合深度和光流估计得到的3D场景流

估计3D场景流[56], [57] 是在3D场景中,给定一对图像能找到每个像素稠密流的一个任务,其需要从给出的连续帧中同时考虑深度和光流。传统算法估计深度从stereo images(立体图像) [3], [58], or the given image pairs [22]假设存在固定联系,并试着从像素级的移动平面分解出场景,来找到更大内容的联系。

  Behl  [58]采用了语义物体实例分割和从DispNet得到的监督光流来解决物体的大位移,并在KITTI上得到了最好的效果。

  Yin  [ 46 ] :使用一个由ResNet改进的残差光流网络(residual FlowNet)来修复刚体光流到完整光流上。 ,它没有计算运动物体或者解决遮挡问题,并且深度估计没有利用学习到的光流

  Ranjan  [63]:将由目标得到的光流粘贴到来自背景和自运动的刚性光流上,来解释在对抗合作的整个场景。然而,没有测量3D运动的一致性,它们用一个可选的阈值,将图像进行分割。

  我们3D场景流的角度进行建模,嵌入到我们的无监督训练方法中,即使选择了较弱的主网络如:VGG,也得到了好的效果。

(6)分割移动对象

    最终,我们的算法分离出了背景和运动物体,我们的方法还能够从给定的视频中分割出运动物体。现有的好方法都是监督学习,一般采用的是CNN图像特征[65], [66]或RNN时序建模[67]

   对于无监督视频分割,基于2D光流的特征saliency)估计被用作发现和追踪目标[68], [69],并且需要考虑基于光流的运动物体的长轨迹。然而,这些方法都是通过相对固定背景来解决非固定物体的,本文不重点讨论。

  Barnes [ 71 ]:使用一个 3D prior map 明确的为运动物体进行建模能够 避免 视觉里程计漂移
  我们也考虑了运动物体分割,在无监督方法下仅需输入 视频 。未来,我们还对更普通的视频进行对3D物体的运动估计

3. 使用整体3D运动理解进行学习

LEARNING WITH HOLISTIC 3D MOTION UNDERSTANDING

  我们通过对深度和光流同时建模获得每个像素的3D运动理解,下面详细介绍两种信息之间的几何广联,然后讨论我们如何在HMP中利用三维几何准则在EPC++学习模型中。最后,整理了损失函数和训练方法并在训练中,同时考虑了单目和双目图像。

3.1  3D运动的几何理解

    给定两张图像,目标图像为It,原图像为Is,它们的深度图分别为Dt,Ds, 它们的相对相机位姿变换为Tts = [R|t] ∈ SE(3),并令It 到 Is的光流为Fts。对于It中的一个像素pt,能够通过相机的重投影或者给定的光流找到Is中与之对应的像素ps,两者应该是相同的。计算过程如下:

 其中,K为相机的内参矩阵,h(pt)为pt的齐次坐标,π(x)为尺度函数,由最后一个元素还原矩阵的尺度,x/xd其中d是矩阵的维度,这里d=3,最后的元素是由pt点投影到ps点的投影深度值,用Dˆs(ps)代替。M∗d 是动态运动物体相对于世界的3D运动,用这种方式,每个像素都能够使用几何方式解释。这里,ps可能会超出Is图像或者在计算光流时不会出现。

    同样的,就像 [ 6 ], [ 7 ]之前做的,可能使用CNN网络来估计  D t , D s , T t s , F t s,在计算pt和ps相关性之后,我们可以通过合成目标图像来对模型进行监督。
 

使用光度损失:

 其中,ψ(ps|Is)使用空间转换网络进行计算[72],因此可以进行端到端训练,V(pt)为可见掩膜,当像素可见是为1,受到遮挡或者大出边界时为0。

   丢弃深度估计模型,比如在公式(1)里对D, Tt→s 估计的部分,然后加入光流平滑项到无监督学习光流的部分[6]或者,舍去光流模型,假设场景中没有动态运动,设置公式(1)中的M∗d = 0,然后添加深度平滑项[5], [9]。

   我们的方法,对3D运动整体建模,对所有光流、深度和运动估计采用CNN模型。然而,动态运动Md和深度Ds/t是两个相关联的信息,总是存在一个运动部分,能够精确步长由不准确深度估计造成的损失。考虑到,基于RGB的ptps匹配含有噪声,影响学习过程,因此需要设计一个有效的学习方法,对这些网络更有效进行约束。

Holistic 3D motion parser(HMP)

    为了使训练过程可实行,首先需要区分固定背景/相机运动还是动态物体运动可见于受遮挡区域。对于可见的固定区域我们可以使用SFM[9]来训练深度,对于运动区域我们能够找到3D物体运动。通过使用DepthNet, MotionNet and FlowNet,分别输出了我们想要的背景与移动物体稠密运动图。

    实际上,给定两张图像的深度图Ds  Dt学习到的前后光流Ft→s/s→t,以及相机的相对位姿变换Tt→s,由固定背景Mb,和动态运动物体Md经过HMP计算如下:

这里,φ(pt|Dt) = Dt(pt)K^-1h(pt)是从二维到三维空间的反投影函数,Md(pt)是在可见区域的每个像素的动态3D运动,S是一个平滑运动物体掩膜,用来区别固定背景和动态物体,α会改变训练的不同阶段

 

3.2 训练网络

3.2.1 网络结构

对于估计的深度D和两连续帧之间的变换T, 采用的是Yang [5],采用基于VGG的编码器将输入分辨率比Zhou[9]的256×832放大一倍,在获得图像特征上得到更好的效果。此外,对于运动估计,我们舍去了它们用来计算解释性mask估计的解码器,因为我们通过HMP直接得到了遮挡mask和运动物体mask

对于光流估计F,没有采用[6]中的FlowNet[51],我们使用的是一个轻权重的PWC-Net [53],比FlowNet要小10倍并且得到更准的效果。

3.2.2 训练损失

在经过HMP后,系统残生了多个输出,包括:

1)单张图像的深度图            2)相对相机运动  T                    3)光流图  F

4)固定背景3D运动  Mb            5)动态物体3D运动  Md             6)可见像素mask  V

7)移动物体mask  S

(1)结构匹配

公式(3)中训练光流和深度的光度(photometric)匹配在光度变化时不稳定。为了更好的找到局部结构,我们添加了来自SSIM  [73]额外的匹配损失,定义如下:

这里,β是一个平衡超参数一般设为0.5,O代表得到匹配的像素的输入类型,可能为D或F。我们定义深度和光流的图像合成损失部分分别为Lds,Ldvs

(2)已知边缘的局部平滑损失

    即使结构损失减轻了由图像合成造成的混乱,匹配部分依然是个局部信息。因此,平滑度通常采用进一步调整局部匹配[74]的方法来提高效果。

    本实验,采用两种平滑损失,包含来自Godard [8]的图像梯度的边缘一致损失,以及与Yang [5]相似的 learned affifinity平滑度。我们发现当仅使用公式(2)中的光度匹配,学习到的相近性(learned affifinity)提供了比图像梯度更好的结果,但是当添加了公式(5)结构损失后其效果一般。在我们看来,很大原因是因为由SSIM的鲁棒性以及来自CNN的自调整。因此,为了简化,我们只在基于已知边缘平滑度简单使用了图像梯度对学习的不同网络进行调整,最后的空间平滑度损失如下。

这里,O代表输入的类型,W表示加权系数,o是平滑度梯度的阶次,比如Ls(D, 1 -S, 2)是一个惩罚深度x与y两方向梯度在固定分割mask 1-S的空间平滑度部分,当没有图像梯度出现时,鼓励深度值在平面上对齐。这里,1是与S相同尺寸的全1矩阵。

(3)在深度和光流之间的3D运动一致性

    最后,我们基于HMP的输出在固定区域对学习到的深度和光流的一致性进行建模。特别是,我们需要Md(pt) 在固定区域越小越好,它能够被1-S计算,损失函数如下:

  

            这里Ls在公式(6)得到,Md, S(pt)定义在公式(4),Lms代表单个物体的运动应该在真实世界是平滑的

  然而,S(pt) 是由Md的量级决定的,它是由深度和光流的引起的运动的差异计算得到的。然而,在系统训练之初,两者的效果包含许多噪声,得到不合理的masks,因此设置了α在系统初始训练时,将S(pt)计算为inf,由于不要求一致性,因此光流和深度网络分别训练,当训练分别收敛时,再设置α为很小的定值0.01从而对3D运动进行进一步约束。

   在实践时,我们发现如果把3D运动一致性分解为2D光流一致性和深度一致性将会很稳定。原因与监督学习深度估计相似,在一个很长距离进行3D运动的估计将会比在附近区域造成更多的噪声,会使网络很难最小化误差。特别是计算公式(4)中的Md(pt) 取替Mb(pt),放入一个反向投影函数φ()来简化一致性计算:

  

            这里,让psf = pt + Ft→s(pt) 为依据FIs中找到相对像素,pst为使用固定转换T找到的匹配像素。Dˆs为公式(1)中Is投影到It的深度图。因此3D运动一致性Lmc等于:

  

            这里  |Ds(psf ) )- s(pst)|指的是深度一致性|psf -pst| 指的是固定区域的 光流一致性 ,可以简单证明 L dmc = 0是 L mc = 0

的充分必要条件。因此,我们没有因为改变优化目标而缺少监督条件。

(4) 深度和光流间的2D运动一致性

    在类似于KITTI上的基准数据集上进行光流估计同样需要对遮挡区域V中的像素进行流估计,如果只使用2D像素匹配那么是不可能解决的。传统上,[6][14]使用局部平滑度从周围估计的流中去除这些像素。多亏了我们的3D理解,我们通过我们估计的深度和运动的几何一致性来训练这些光流,2D光流一致性如下:

    

    这里psf , pst在公式(8)中定义,我们使用这样的损失只在非可见区对我们的FlowNet光流估计进行监督,神奇的是,这个模型对于可见区域的效果也有所提升。

    不过,我们3D运动一致性公式需要担心的一点是当遮挡部分来自一个非固定物体移动,比如:一个车在另一个车后面运动。为了解决这个问题需要进一步分解物体实例的3D运动,留在以后的工作完成,不属于本文的研究范围。本文采用的KITTI2015数据集由95%遮挡部分是固定背景,在我们的假设下。

(5)多尺度惩罚

    最后,为了将多尺度内容融合在训练中,按照[9]的做法,我们对D和F进行4个尺度的输出。总结一下,我们对于单目视频的深度和光流监督的损失函数如下:

  

    其中 l 指的是图像尺度的级别,当l = 1 时,指的是最低分辨率。2^l 是一个平衡不同尺度之间的权重参数。λ = [λdvs, λfvs, λds, λf s, λdmc, λ2d-mc] 是平衡不同损失的超参数设定。

3.2.3  阶段学习过程

     在实际中,把所有损失结合在一起训练网络不是特别有效,比如:分割maskS在初始阶段具有很高的噪声。因此,我们在训练开始时调节超参数λ对网络的训练进行开关实际上,我们采用一个类似于[63]阶段训练的策略,一段一段的对结构进行训练,并且当之前的阶段收敛时开始训练剩下的部分。

    Alg. 1.对算法进行了总结。首先,我们分别对深度和光流网络进行学习。然后,通过迭代训练对深度和光流之间的一致性进行加强。在我们的实验中,网络在两个迭代训练过程后得到了收敛。

 

3.3 立体视觉解决运动混乱

    在单目视频中对于运动物体的重建具有投影混乱,如Fig. 3.所示,在(b)中的深度图是单目样本经过我们我们的算法进行估计的,这里前面的车是以相同速度在跑并且估计的区域结果显示距离很远,这是因为当深度值估计的很大时,车在变换的图像时还是停留在同样的位置,在训练时只会产生很小的光度差。显然,由运动产生的损失或者公式(11)中的平滑度没有解决这一问题,因此,我们添加立体图像(同一时刻的不同角度的图像)与单目视频一同去学习深度网络来防止这样的混乱。如Fig. 3 (c)所示,由立体视频对训练的架构准确的找到了移动物体区域的深度。

  

    让相对应的立体图像Ic 有效加到目标图像It上时,我们把Ic 当多另一个原始图像,与Is 相似,但是已知相机位姿Tt→c。在这种情况下,由于没有运动因素(立体图像对是同时获得的),我们采用同样的loss Ls Lvs,将Ic 和 It作为输入来监督深度网络,当使用立体图像时DepthNet的损失函数如下:

    这里的L(Ic) 和 Lbiivs(Ic)指代的是使用立体图像Ic 得到的相关性损失。这里,通过带入λcvs = 4 以及 λcs = 10. 添加立体对的损失对Alg. 1 中学习深度和运动的网络进行升级。

 

4. 实验

4.1 实验细节

  EPC++包含三个子网络:DepthNet, FlowNet ,MotionNet。我们的HMP模块没有可学习的参数,因此不需要增加模块大小,也不需要超参数修正。

(1)DepthNet 结构

       采用类似于[61]的DispNet作为DepthNet。DispNet 是带有跳跃连接(skip-connect)和多尺度(multi-scale)端的编码-解码网络构成。所有的卷积层都跟着一个ReLU激活函数,除了最顶端的输出层采用的是一个sigmoid函数来限制深度估计值在一个合理区域。视差输出范围在0-0.3,当使用立体图像对训练时所有的conv层都经过了Batch normalization (BN),当仅使用单目图像时为了更稳定采用了dropout。我们认为BN帮助了减少立体图像与单目图像之间的尺度混乱。此外,在立体图像训练时,按照

[ 8 ],我们对由深度网络输出的左右图的disp map 进行一致性计算。
        在训练时,Adam optimizer被设置为 β1=0 .9, β2=0 .999,learning rate = 2 × 10^ -4 , batch size = 4。 在第一阶段,超参数分别被设置为 λ dvs= 1 .0, λ ds= 2 .5
 
(2)FlowNet architecture

           采用PWC-Net [53]当做FlowNet, PWC-Net基于encoder-decoder设计的,具有中间层转换CNN特征用作重建,在训练过程1中,网络由Adam optimizer优化,参数为β1 = 0.9, β2 = 0.999, learning rate =2 × 10^-4, 进行100,000次迭代,batch size被设置为4.

(3)MotionNet architecture

     运动网络与[9]中的PoseCNN相同,在7个conv层后,得到一个六维相机运动,参数设定和深度网络相同。

 

4.2 数据集和度量标准

(1)KITTI 2015

      KITTI2015数据集提供的是由立体RGB相机拍摄的200个街道场景,稀疏深度真实值由Velodyne雷达扫描仪获得。2D光流和3D场景流真实值由点云映射的ICP技术生成。运动物体mask由在光流评估中区分固定背景和移动前景的一个二进制图表示。

      在训练中,156个立体视频使用了排除测试和验证场景。单目训练序列由三个连续帧组成。左右图像分别进行处理。这将生成40,250个单目训练序列。立体训练对由左右帧对组成,一共有22,000训练样本。我们将输入大小设为256×832 ,为了找到更多特征被扩大了两倍。

     对于深度评估,采用的是Eigen split [11]用做实验,和更多的基本方法进行比较,Eigen测试总共有697张图片,其深度ground truth 由Velodyne雷达扫描到图像平面得到。为了能在输入图像的分辨率下进行评估,我使用双线性插值对估计深度进行尺度变化。对于光流评估,在对KITTI 2012和2015上总结训练和测试集上比其他无监督方法效果更好的数量。训练和测试集包含200图像对。用作训练的光流ground truth已经提供,用作测试的ground truth在官方评价服务器上。对于场景流和分割评估,我们在KITTI 2015上进行训练的评估,包含200对图像。场景流的真值是公开的,移动物体的真实值只在这里需要。里程计在两个测试序列进行评估:KITTI的 sequence09 and sequence10

(2)度量标准

    对于深度和里程计评价,我们采用[9]的代码,对于光流和场景流的评价, 我们使用[3]提供的官方数据包。对于前景分割评价,我们使用overall/per-class pixel accuracy 和mean/frequency weighted (f.w.) IOU 构成二进制分割。评价中用到的指标如Tab.2, 其中x∗x' 是真实值和估计的结果(x ∈ {d, f, t})nij 是i类的像素分割进 j 类的像素数量。 tj 是h 类的总像素数量,ncl 是种类的总数。

     从上到下依次是的评价标准:

  (1)深度(2)光流(3)里程计(4)场景流(5)分割

4.3 深度评价

(1)实验设置

     只有带有真实深度值的像素才会被评价,通过以下两部分对深度表现进行评价:(1)我们研究的消融学习(2)与好方法的效果比较

(2)消融学习

    为了扩展EPC++每部分的效果,产生了以下结果:

1) EPC++ (mono depth only): 深度网络是由 合成的图像 以及 单目视频序列 平滑度损失( L dvs + L ds )训练得到
2) EPC++ (mono depth consist): 对深度网络进行优化,添加深度一致性部分  | D s( p sf ) ) Dˆ s( p st)| (公式(9))
3) EPC++ (mono flflow consist): 添加公式(9)的光流一致性到深度网络,这里 舍去了可见mask, 可以发现其效果比只添加深度一致性要 ,因为光流在不可见部分影响了匹配。
4) EPC++ (mono vis flflow consist): 深度网络使用公式(9)中的深度和流一致性,但是 添加了对可见mask V 的计算。
5) EPC++ (mono): 深度网络的最终结果在两次深度-光流一致性迭代训练后,产生了好效果。
 
     添加了立体样本进行训练后:
6) EPC (stereo depth only):  由立体对训练的深度网络只带有 L dvs + L ds
7) EPC++ (stereo depth consist):  在立体对上使用深度一致性进行训练
8) EPC++ (stereo):  使用立体样本训练整个模型
 
     很明显,对于单目训练,左右图像被分别进行考虑,因此使用单目或者立体样本进行训练的结构 利用的是同样的训练数据

(3)与SOTA方法比较

     与其他相比,值得注意两点:1)EPC++只用单目样本进行训练,比用双目样本训练的效果还好; 2)在“Sq Rel”  和  “RMSE”标准上,应用深度-光流一致性后比“EPC++ (depth only)” 和 “EPC++ (mono depth consist)”具有更好的鲁棒性,应用depth- flow consistency消除了一些深度估计的边缘

 

4.4 光流评价

(1)消融实验

       

本单元包括:

1) Flow only:  训练光流网络只使用合成图像和平滑度损失L fvs + L f s
2) Finetuned with depth:  在分别使用 Ldmc + L2d-mc 训练后,光流网络与深度网络同时得到调整。其结果比单独使用光流要 ,这是因为从深度得到的光流来自 固定背景区域 。比如:公式(9)中的 pst 没有从光流网络单独学习的准确。也就是说,系统中分解的深度和相机运动会对2D光流估计产生额外的噪声。但是,受遮挡区/不可见区得到了好的效果。
3) EPC++ all region:  我们对深度网络进行了修复,但是没有使用可见mask V对光流网络进行调整,可以看到,对于固定背景的光流依旧因为同样的原因而不准,但受遮挡区的效果越来越好。
4) EPC++ vis-rigid region: 对深度网络进行了修复,对光流网络在可见和固定背景的像素区域进行调整,降低了对遮挡区域的影响。
5) EPC++ non-vis region:  我们可以使用L 2 d- mc 对光流网络进行调整,在一些区域得到了效果提高。

   以上五点证明了我们的假设:来自深度和相机运动的固定背景光流不可见区/遮挡区的光流估计有效。

(2)SOTA方法比较

EPC++在“F1-bg” 和 “F1-all”标准上都优于其他无监督方法,注意:Multi-frame [ 81]在“F1-fg”标准上优于我们的,但是他用的是连续 三帧图像,而我们用的是两帧。
 

4.5 里程计估计 

    与[9]使用相同的评价标准,对每五帧连续图像进行完全平均轨迹误差计算。与之前的设定不同,我们的MotionNet只使用三帧作为输入。我们的方法在SLAM(ORB-SLAM)方法上具有更好的效果。更准确的深度估计帮助我们更好的约束MotionNet的输出。与SfMLearner [9] 和 GeoNet [46]的结果相比,别的方法具有很大的偏移,我们的更具鲁棒性。

      小量的差距将会导致大的影响,这是因为评价标准只采用了5帧图像,并且总是保证最初预测是真实值。因此误差叠加的,只不过评价里没有考虑进去,为了更好的在完整序列上对里程计进行比较,采用的是 [44]里的方法,这种方法利用的是整个序列上的偏移和旋转的误差

 

4.6 移动物体分割

理想情况下,动态场景流Md和背景场景流Mb的偏差代表的是前景物体。公式(4)中的HMP能够利用深度-光流一致性分解出前景和背景运动,利用前景物体分割测试其有效性。

(1)实验设置

    我们使用motion mask左右分割的真实值,我们的前景分割估计是由整体光流减去固定背景光流得到的,就如公式(4)中的S。 我们将Md/Dt = 3 设为阈值生成一个二进制分割mask。

(2)评估结果 

 Yang . [ 7 ] 明确的对移动物体进行建模,因此是直接可以比较的。[ 9 ] 中的的“explainability mask”用来解决运动和遮挡问题。在
“pixel acc.” “f.w. IoU”两方面,EPC++使用单目训练的结果比双目的要好,其中可能的原因是,单目样本更易于预测大的分割区域去覆盖匹配误差(比如:由深度混乱造成的误差)并因此在“recall”数量上效果更好(“pixel acc”和“f.w. IoU”).

 

4.7场景流评估

(1)实验设置

在KITTI2015上实现,由200帧图像对(第t和t+1时刻)作为场景流训练。由两连续帧得到的深度真实值和2D光流真实值已经得到。由于无监督单目方法生成的深度/视差没有绝对尺度我们通过对每帧图像的真实深度值与其中位数进行匹配,对估计的深度值尺度进行修正。

5. 结论

  本文,我们对每个像素进行说明,不论是固定运动、非固定/物体运动、遮挡/不可见区域。我们使用一个holistic motion parser (HMP)对像素所在区域进行解析,设计了多重损失对深度、相机运动、光流一致性进行监督。我们的结构可以延伸到别的运动视频数据集中包含可变性和非刚体运动物体,如MoSeg [70],以及多物体分割[13], 对视频更多的进行分析。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值