Unsupervised Learning of Depth and Ego-Motion from Monocular Video Using 3D Geometric(2018.6)

Unsupervised Learning of Depth and Ego-Motion from Monocular Video Using 3D Geometric Constraints

 

代码:https://sites.google.com/view/vid2depth

 

摘要

    之前的无监督深度学习使用的是像素级或基于梯度的损失,只考虑了部分邻域,本文主要贡献:考虑了整个场景的3D结构,并促进估计的3D点云和帧间自运动的一致性,并由新提出的调整3D结构的反向传播算法解决。

    本文使用基于相邻帧的估计深度自运动重建的图像的光度质量的2D loss结合成为新的3D-based Loss。并结合有效mask来防止对无用信息的区域进行惩罚。 在KITTI和一个未标定的手机相机数据集上进行测试,并取得成果

介绍

    大多数学习深度和自运动的监督方法需要使用标定图像,因此遭到限制。即使相机LIDAR都已经仔细同步,旋转的LIDAR扫描仪仍然无法产生与相机所拍摄的对应图像时间对齐的深度结构光深度传感器(LIDAR和ime-of-flight传感器)会受到噪声和结构伪影的影响,尤其是在存在反射,透明或深色表面的情况下。最后,深度传感器相机之间通常存在偏移,当点云投影到相机视角上时会引起间隙重叠。 这些问题导致训练模型出现伪像

   本文对单目视频采用无监督方法学习深度和自运动,唯一的监督信号是单目视频中连续帧的一致性以及加强时间同步。 给出两帧连续图像,用一个网络对每帧图像生成深度图,并从一图像对估计出自运动。需要将连续图像的深度和自运动一致来作为监督信号,本方法可以学习深度是因为从深度和自运动转换到新的图像可以写成一个固定的可微函数。

贡献:

加强3D约束:

    使用一个loss直接惩罚估计深度的不一致,而不依赖在重建过程的反向传播。我们通过直接在相同的对应图像比较3D点云来比较相邻帧图像提取出的深度。假设场景没有明显运动,可以利用自运动将一帧图像的深度转换到相邻帧图像上(Fig1、Fig2)

    图1:方法概述。 除了2D光度损失外,3D几何损失用作监督,通过神经网络调整不受监督的深度和自我运动估计。 橙色箭头代表模型的预测。 灰色箭头表示固定转换。 绿色箭头代表损失。 

    图2:3D损失:在前、后方向上对称地应用ICP,从而使两个连续帧的深度自我运动估计一致。 ICP的会生成用于改善深度和自我运动估计的梯度

Principled masking

    当对一帧图像进行变换时,部分场景没有出现在新图像上(由于视差效应或物体离开进入场景),这些区域的深度和图像像素对于学习是无用的;之前的方法通过在模型中加入一个学习过的mask,或者使用后处理来移除边缘部分。但是效果不大。

从未标定的视频流学习

    可以从任何带有相机运动的单目视频中获取和学习,使用一个在自行车上用手持相机拍摄的数据集训练也取得了好效果。

 

2 相关工作

本方法没有将训练过程移到三维中,我们提出可微3D loss函数可以建立连续图像的几何一致性,从而提高深度和自运动估计。

 

3 方法

图1说明了可微部分,本文提出的loss函数是基于连续图像生成的对齐3D几何的。与强调局部光度一致性2D loss不同,3D loss考虑整个场景几何

3.1 问题几何!!!

    给出一堆连续图像,估计t-1时刻的,和t时刻的,以及自运动(代表相机从t-1到t时刻运动的位置和方向)。 一旦得到深度,则将其投影到点云,也就是将在(i,j)像素的点用投影到3D点云:

    

    将相机从t-1时刻到t时刻的运动估计为,然后可以转换到之前帧的点云:;然后可以被投影到t-1时刻图像为:。从而先利用公式1将图像从t时刻转为t-1时刻,再基于变换到:

  按照[32, 13]覆盖4个像素进行采样来计算;这个过程在另一方向反复进行并将投射到点云,并基于变换到.

3.2 Principled Masks

    对的计算包括生成从的坐标映射。然而,由于相机运动从的前像自运动容易发生像素无匹配的情况。[8, 32, 27]通过增加一个general-purpose mask来移除由于任何原因而无法解释的区域,但是效果不大并且容易产生边缘问题。 如Figure3,有效的mask能够合理计算深度和自运动,对于每对可以生成一对Mask,来指明哪些的像素坐标是有效的。

  图3:Principled Masks.这个mask展示的是的例子,指的是当从重建到的有效的像素坐标

 

3.3 图像重建损失

    重建图像与输入图像分别生成一个基于光度一致性可微图像重建损失,并最小化:

    这种损失的主要问题是这个过程用来生成的近似值-并且需要可微性。这个过程不能解决光照、阴影、半透明、反射,结果这个损失具有干扰,需要添加强约束来减少人为干扰,从而导致估计过平滑,学习直接估计相邻帧会避免这个问题,但是这样的方法不能生成深度和自运动估计。

3.4 3D点云校准loss

  除了使用Qt-1或者Qt来建立相邻帧间的坐标映射,建立了一个损失函数直接比较点云,或者,这个3D loss使用Iterative Closest Point (ICP) [4, 2, 23],用来计算一个转换,以最小化两个点云中相应点之间的距离。

  ICP迭代负责计算两个点云之间的最适合的转换关系,然而ICP是不可微的。 如下所示,我们可以使用它的计算结果作为算法一部分来近似其梯度,从而允许反向传播自我运动和深度估计的误差。 ICP输入为两个点云A、B,输出是最佳转换T‘,来最小化点云转换后的距离:

  其中c(·)代表由ICP找到的变换关系,ICP第二个输出是,它反映了应用ICP的最小化距离变换后对应点之间的残差

  Figure 4说明了如何惩罚估计的自运动和深度的误差,如果两者估计准确,会与完美对齐,如果没有发生,那么将ICP生成以及残差,从而帮助建立好的初始化。具体来说,用作为与自运动相关的Loss负梯度的近似值。我们发现即使对进行修正后,将点向方向移动依旧减少了Loss. 由于在的点关系与变换后的点云点相应关系不变,我们只能改变,因此使用近似为Loss相对于深度的负梯度,这个梯度近似忽略了深度误差和自运动的影响,并且效果不错,完整的3D loss如下:

  图4:点云匹配过程和近似梯度。 下图显示了带有侧镜的汽车前部的俯视图。 用t时刻的深度生成点云。 用估计的自运动转换为前一帧点云。 如果ICP可以在之间找到更好的匹配,可以使用该校正量调整自运动。 深度图中校准后的任何残留误差,通过包含来最小化

3.5 其他基于图像的loss

  Structured similarity (SSIM)是度量图像估计质量的工具,与[11,31]相似,将它作为训练过程损失部分,用了计算两张图像在x,y处的相似度,定义为:

    其中µx , σx是局部均值方差,本文,µ 和 σ由池化操作计算,因为SSIM是上界为1的,需要最大化,  我们则选择最小化以下:

  通过考虑图像的梯度,该损失函数允许在图像中存在急剧变化的像素坐标处深度的急剧变化。 这是对Zhou【32】使用的深度平滑度损失的改进。

3.6 学习设置

所有的损失函数应用在4个不同尺度 s,完整的深度定义如下:

其中设置:α = 0.85, β = 0.1, γ = 0.05, and ω = 0.15.

网络包括两个单独tower:深度tower将128*416的图像作为输入,对每个像素估计一个稠密深度,自运动tower输入为视频序列,估计自运动,一个表示3D运动平移和旋转的六维向量。

 

4 实验


   图5:Garg et al. [8], Zhou et al. [32],  ground truth [9]

中间没使用3D loss ,底下使用3D loss

不足:没有解决场景的动态物体移动问题

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值