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

1 Intro
这篇文章的创新点在于loss的改进,之前的非监督方法loss都是像素范围上或者基于梯度的,只是考虑了像素周围局部的小范围。本文的方法就是将场景的立体几何考虑进来,增强预测的一致性。
2 Approach
在这里插入图片描述

整个方法流程如图所示,首先网络的input是两张相机运动连续的图片,分别对两个图片预测深度图,然后再根据这对图片预测出相机自运动信息,一张图片的深度图转点云后结合预测的相机自运动去生成对应图片的点云,再将生成的对应图片点云与对应图像自己转换出的真实点云比较产生loss,然后使loss趋近最小值的过程中预测的深度图和相机自运动不断调整。
2.1 Problem Geometry
训练要学习的是两部分,一个是相机的自运动,另一个是预测的深度图。深度图可以通过input的图片获得,那么根据预测出的深度图Dt,图片像素点和相机内参K就可以得到点云Qt。
在这里插入图片描述
那么获得点云Qt以后,实际上也可以推测出t-1时刻的点云Qt-1。其中Tt就是网络要学习的相机自运动。
在这里插入图片描述
有了以上的变换,就可以根据变换得到的t-1时刻点云预测出t-1时刻的图像:
在这里插入图片描述
这里得到的^Xt-1就成为loss的一部分,通过比较其与真实的Xt-1来优化网络。
2.2 Principled Masks
要计算Xt就要将Xt-1通过上述方法映射过去,然而由于相机运动,在Xt中出现的物体可能不在Xt-1中出现,之前的研究要么忽略,要么建立一个mask去exclude那些网络认为unexplainable的区域。作者指出这样的方法会导致深度图中边界失真的问题。
作者这里同样用了mask的方法,但是通过一对Xt,Xt-1来获得同样对应的一对masks Mt-1,Mt。这样Masks对就能够显示出Xt-1,Xt valid的地方。
在这里插入图片描述
从图中可以看出,Xt-1存在的区域而Xt不存在的在Mask中就会被忽略。
2.3 Image Reconstruction Loss
这里就是之前说的图像重建loss,对于重建的图像^Xt-1,比较其与真实的Xt-1:
在这里插入图片描述
但是作者指出这个过程无法考虑灯光、阴影、半透明或反射等效果,可能会造成噪声和失真,因此还需要正则化去减少失真,这也就要对网络的预测平滑处理。
2.4 A 3D Point Cloud Alignment Loss
这里就是对生成点云^Qt-1与真实的Qt-1的比较。作者用的方法是迭代最近点(ICP)方法。迭代最近点算法是一种点云匹配算法。其思想是:通过旋转、平移使得两个点集之间的距离最小。其大概算法流程是:
1)从待匹配的点集P中提取出与模板点集X中的每个点最近的匹配点,度量方式采用欧式距离。对于模板点集X中的每个点,求其到到点集P中每个点的欧氏距离,取出欧氏距离最小的那个点,作为对应点放入新的对应点集P′。
2)对两个点集进行度量,待匹配的点集为:P={pi→};模板点集为:X={xi→},其中R就是旋转矩阵,T为平移矩阵。
在这里插入图片描述
3)计算得出本次迭代的旋转矩阵和平移矩阵,迭代的目的是使上述式子达到最小值,如果结果小于阈值则停止迭代,否则继续重复前面的步骤。

那么在这篇文章中,作者需要两个output对于ICP方法。一个是文中所指best fit transformation T‘(点云A经过T’变换与点云B比较),另一个是残差r=A-B/T‘,它代表两个对应点经过ICP方法变换后残差距离。

在这里插入图片描述下图展示作者如何使用ICP在自己的方法上(该图以车的上视图为例子):
在这里插入图片描述
通过网络我们可以获得预测的T(相机自运动)和D(深度图),可以通过Qt变换得到点云Qt-1,在使用ICP方法比较Qt和Qt-1会获得Transformation T和残差r,那么应用T去调整网络对相机自运动的预测。另外作者发现,根据r调整预测深度图可以降低loss,因此应用r调整了预测的点云Qt。
那么3D loss就是:
在这里插入图片描述
2.5 Additional Image-Based Losses
SSIM 公式基于两个样本之间的三个比较衡量:亮度 (luminance)、对比度 (contrast) 和结构 (structure)。作者这里使用SSIM方法,
在这里插入图片描述
还使用了深度平滑loss去正则化深度估计,这里还考虑了对应图像的梯度(x,y)
在这里插入图片描述
2.6 Learning Setup
在这里插入图片描述
该式即为整个模型的loss,其运用于模型的各个尺度。
网络采用的是SfMLearner的结构,分为两部分,depth estimation tower input为一张图像,output为预测对应的深度图;ego-motion tower需要输入一对图片,输出对应的变换信息。
3 Experiments
从下图可以看到,深度图效果比其他方法好的多,十分接近ground truth。
在这里插入图片描述
在这里插入图片描述
作者分析loss每个部分对模型的影响,可以看到ICP对loss的影响最大,这使最重要的一部分,也是本文作者的主要创新点。
4 Discussion
这篇文章沿用了其他无监督的方法,包括warp图像并用另一张作为supervisor,其创新点在于引入了3D loss,将立体的全局场景考虑进来去比较,确实也获得了不错的效果。
作者指出两个问题,一个是该模型也不能很好的检测和处理大型运动的物体,这需要加入不一样的方法,另一个是mask可以拓展去处理两个图片中一个遮挡在另一个不遮挡的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值