最近CNN网络可以从未标注单目视频中学习深度和位姿估计,但由于不确定的运动物体导致效果受限,这些运动物体违反了几何图像重建在固定场景下的假设,由于没有足够的约束导致在不同实例中网络输出尺度不一致的结果。如:由于每帧图像的尺度模糊使得自运动网络不能提供完整的相机轨迹。本文对尺度一致性预测提出几何一致性loss,并引入self-discover mask来解决运动物体和遮挡。
对视频中选取任意两帧图像,将一帧图像深度图转换到3D空间,然后根据估计的自运动投影到另一帧上,最后对映射和估计的深度图的不一致性进行最小化。这将使深度网络从连续图像中估计出几何一致的结果,并且帧与帧之间的一致性可以传递到整个视频序列。由于自运动尺度与深度尺度联系密切,可以从自运动网络中估计出尺度一致的相对相机位姿。
有关运动物体,之前的方法使用额外的光流或语义分割网络,但是计算量加大。我们的方法可以从提出的几何一致性项中自动找到一个mask来解决。并且可以定位属于动态、遮挡或者复杂区域的像素。通过给这些像素低权重避免它们对图像重建loss的影响(Figure 2)。
图二:从上到下:采集图像,估计深度,自发现mask。 提出的mask可以有效识别遮挡物和运动物体
从无标注视频中选两帧连续图像,先估计深度图
然后用位姿网络估计两帧间的6维相机位姿
。 使用估计的深度和位姿,对源图像
进行双线性差值来合成相应图像
,然后网络由真实图像
与合成图像
的光度差监督。但由于存在运动物体效果受限。最后,提出几何一致性损失
来约束尺度一致性,用self-discover mask
解决移动物体和遮挡。如Figure1所示:
图1:几何一致性损失和自发现mask: 这里对插值,因为投影流不在
的像素网格上。 此外,我们从不一致地图中发现了一个maskM(等式7),用于处理动态场景和不正确估计的区域(Figure 2)。
目标函数如下:
利用经典稠密算法中的亮度不变和空间平滑的先验条件,用变换后的图像和源图像的相应图像光度差进行无监督训练。
随着估计深度图和相对相机位姿
,通过变化
来合成
,使用了可微的双线性插值。用合成的
和相应图像
形成目标函数:
其中,代表成功从
投影到
图像平面的有效点。
代表V内点的数量。由于其对外界值的鲁棒性选择了L1 loss,然而,在真实世界传感器的光照不是不变的,于是增加额外的非相似度损失SSIM解决光照变化,光度损失项由Eqn(2)修改如下:
由于光度损失在场景中的低纹理或均匀区域不能提供信息,于是加入了平滑度先验来调整估计的深度图。我们采用[11]中使用的edge-aware smoothness loss,其表达式为:
其中为空间方向的一阶导数,来保证平滑度是由图像边缘引导的
我们对估计的结果施加几何一致性。我们需要和
(与
有关)来形成相同的3D场景结构并将它们之间的差最小化。优化项不仅对相邻图像进行几何约束还对整个序列施加。由于位姿网络在训练时和深度网络相耦合,因此能得到整个序列尺度一致的预测结果 使用这个约束,计算了深度不一致图
,对于每个
,定义如下:
其中是使用
变化
计算出的
的深度图,
是估计的深度图
插值后的结果(由于变换流不在像素网络上)。这里,用它们的总和归一化它们的差异,比绝对距离更直观,因为它在优化中平等对待不同绝对深度的点。 此外,该函数是对称的,输出自然在0到1的范围内,这有助于训练中的数值稳定性。
有了不一致图后,定义提出的几何一致性损失为:
这一项最小化了每两帧图像间估计深度的几何距离以及约束了几何一致性。由于自运动和深度估计密切联系,最终能得到尺度一致的轨迹(Fig3)
之前的方法通过添加额外的光流网络或者语义分割网络来解决运动物体。这里,我们通过(Eqn5)提出的不一致图来标注这些区域。 以下这些场景会导致场景结构不一致:
我们没有将它们分开来看,而是观察到它们会从理想值0增加到于是提出了权重mask ,其中
在[0,1]:
其中低/高权重指代不一致/一致像素。它可以用来对光度损失更改权重,对(Eqn3)更改如下:
通过使用Mask,移除了运动物体和遮挡的影响,估计不准确区域计算的梯度在反向传播会带着低权重。