Depth from Videos in the Wild:Unsupervised Monocular Depth Learning from Unknown Cameras

1.引言

      当信息不足以解决歧义时,深层网络可以通过从以前的例子中归纳出深度图和流场。当这个方向的研究得到了牵制[50,12,14,37,25,38],很明显物体运动是一个主要障碍,因为它违反了场景是静态的假设。为了解决这个问题,已经提出了几个方向[48,44],包括通过实例分割来利用对场景的语义理解[7]。遮 挡是另一个限制因素,最后,在所有之前的工作中,必须给出相机的内在参数。

        这项工作解决了这些问题,因此,减少了监督,并提高了从无标记视频的深度和运动预测的质量。首先,我们展示一个深层的网络可以被训练来预测内在的相机的参数,包括镜头畸变,在一个无监督的方式,从视频本身。其次,我们是第一个在这种情况下直接解决遮挡问题,以几何的方式,从预测就是这样的深度。最后,我们大幅度减少了强调场景中运动躯体时所需要的语义理解:不是像[7]一样分割每个实例一个移动的物体,并在帧之间跟踪它。我们需要一个单一的mask,它可以覆盖可能属于移动对象的像素。这个mask可以很粗糙,实际上可以是矩形边框的组合。获得这样一个粗略的mask是一个简单得多的问题,而且与实例分割相比,使用现有的模型可以更可靠地解决这个问题。

   除了这些质的进步外,我们还进行了一项研究广泛的定量评价了我们的方法和发现它在广泛使用基准数据集上达到了state of the art的效果。将数据集集中在一起,这是我们的方法大大提高的一种能力,证明了它可以提高质量。 最后,我们首次在YouTube视频上展示了深度和相机内部参数预测,这些视频是由多个不同的相机拍摄的,每个摄像头都有未知的和一般不同的内部参数预测。

2.相关工作

场景深度的估计是机器人导航和操纵的一项重要任务,历史上对其进行了大量的研究,包括对立体、多视图几何、主动传感等的大量研究[31、22、11]。最近,基于学习的深度预测方法已经成为基于密集预测学习的主要方法[11,23,20,6]。其中,场景深度是根据输入的RGB图像进行预测的,深度估计功能是通过传感器(如激光雷达)提供的真实深度图作为监督来学习的。类似的方法用于其他密度预测,比如Surface Normals[10、42]。

无监督的深度学习:深度的无监督学习,其中唯一的监督来自单目视频本身,不需要深度传感器,最近也开始流行[50,12,14,37,25,38,48]。Garg[12]等人介绍了深度和自运动的联合学习。Zhou等人[50]展示了一种完全可微的方法,其中深度和自运动由深度神经网络联合预测。开发了单目[37,46,25,45,48,39,7]和双目[14,37,44,49,49,39,49]设置的技术。结果表明,当只在训练过程中使用立体输入时,推理的深度质量会得到提高,而不像其他方法那样也依赖于推理时的立体视差[18,19,47]。其他的新技术包括使用运动[45,39,48,7,44]。

从任意来源的图像或视频学习:wild图像的学习深度也是一个活跃的研究领域,主要集中在单视图或多视图图像上[2,32,21]。由于输入源的多样性和不知道相机参数,李等人[21]发现对网络照片的处理尤其困难。我们的工作通过为wild视频学习intrinsics,为解决这一挑战迈出了一步。

遮挡相关的学习:已经提出了多种方法来处理光流背景下的遮挡[40,16,27]。这些方法与几何无关。可微网格渲染,近年来受到越来越多的关注[28,17],开始采用几何方法进行遮挡。在学习预测深度和自运动的背景下,通过学习可解释性掩模[50]处理遮挡,通过调整前一帧或下一帧之间的最小重投影损失到中间帧,并通过光流[44]。在视频无监督深度学习的背景下,我们首先提出了一种通过可微损失直接进行遮挡的几何方法。

学习内部参数:学习预测相机的内部参数,大多局限于强监督的方法。groundtruth的来源各不相同:Workman等人[41]使用的焦距估计采用经典一维结构从运动。Yan等人[43]基于EXIF得到焦距。Bogdan等人[4]使用虚拟相机合成全景图像,这些虚拟相机具有已知的内在特性,包括失真。据我们所知,我们的方法是唯一一种学习相机内部参数的方法,是一种无监督的方式,输入源直接来自视频,并与深度,自运动和物体运动相结合。

3.预处理

我们的方法在研究深度和运动时对领域先前的技术进行了扩展[35,14,48,36]。与之前的工作类似,我们方法的主干是使用深度图和相机矩阵将相邻的两个视频帧连接在一起,方程如下:

其中K时相机内部参数矩阵,即:

Depth from Videos in the Wild:Unsupervised Monocular Depth Learning from Unknown Cameras_第1张图片

其中p和p’为旋转矩阵R和平移向量t表示的变换前后的齐次像素坐标。z和z’分别为深度,fx;fy;x0;y0是相机的内部参数。利用深度网络预测的z、R、t,利用公式(1)将一帧视频扭曲到另一帧上。然后结果与实际的其他帧比较,差异构成训练损失的主要组成部分。其前提是,通过对差异进行惩罚,网络将学会正确预测z、R和t。

4.方法

在这项工作中,我们提出同时从单目视频中同时学习深度,自运动,物体运动,和相机内部参数。为了实现这一点,我们设计了一个运动预测网络来预测摄像机的运动,即每个像素相对于背景得运动,并同时预测相机内部参数:焦距,偏移和失真。第二个网络预测深度图。通过将相邻帧之间的一致性作为一种损失,网络同时学会预测深度图、运动场和相机内部参数。我们引入了一种损失,这种损失只对两帧中未遮挡的像素要求一致性,在这种情况下,遮挡估计是基于所学习的深度映射本身进行几何估计的。运动场在掩码的帮助下进行正则化,掩码表示可能属于运动对象的像素,这些像素来自预先训练的分割或目标检测网络。

4.1学习内部参数

在训练过程中,帧间一致性的监控信号通过p’传播回学习量K、R、z、t。因为公式1只取决于K通过Kt 和K-1RK,训练损失函数将推动这两个量到正确的值,但是Kt,举个例子,即使K和t是不正确的,也是完全正确的。事实上,如果网络预测错误的参数矩阵K,和一个不正确的转移矩阵t,Kt还是相同的,所以训练损失不受影响。虽然变换没有为K提供监督信号,但幸运的是旋转提供了。公式3,其中也推导出,联系的公差,焦距可由两个帧确定,对于两者之间发生的相机旋转量:

其中,ry和rx分别为沿各自轴的弧度旋转角度,w和h分别为图像的宽度和高度。

4.2学习物体运动

公式1可以将帧间基于z、R、t得不一致性损失传播到每个像素处。然而,如果没有进一步的正规化,后三者仍然存在很大的不确定性。虽然z、R和t的连续性是一个强大的正则化器,但是我们发现进一步的正则化有很大的帮助。特别地,我们在整个图像中设置了R的恒定值,并且只允许t在指定为“可能移动的”像素处偏离一个恒定值。该掩码可以通过预先训练的分割模型得到。与之前的工作[7]不同,我们不需要实例分割和跟踪,因为我们需要一个“可能是移动的”掩码。事实上,我们证明了一些bounding boxes的联合是充足的(见图2),此外,我们对t应用L1平滑算子。

4.3遮挡相关的一致性

当相机相对于场景移动时,或者物体移动时,场景中在一帧中可见的点在另一帧中可能会被遮挡,反之亦然。在与这些点对应的像素中,跨帧一致性不能通过loss来实现。给定一个深度图和一个帧内的运动场,就可以检测出遮挡的位置,并将遮挡区域排除在一致性loss之外。

虽然检测遮挡像素是可行的,但它需要对深度图所表示的表面的连接性进行某种推理,并进行z缓冲。保持该机制的可微性和有效性,以适应训练循环,可能是一个挑战。

因此,我们采用了不同的方法,如图3所示。对于每个在源帧中的像素点(i,j),利用预测深度zij和摄像机固有矩阵分别得到空间中的点(xij,yij,zij)。点在空间中根据预测的运动场移动。特别是,深度变化为z’。新的空间位置被重新投影到相机框架上,并落在一些通常在目标帧上的不同位置(i',j')。i'和j'通常是非整数。从而得到目标帧在(i',j')处的深度z(i',j'),需要插值。

遮挡一般发生在像素(i',j')处z'是多个值得地方。在这种情况下,颜色和深度的一致性应该只适用于z’的可见分支,即z’较小的分支。如果源帧和目标帧几乎一致,可见分支将接近目标深度(i’,j’) ,z(i’,j’)。换句话说,只有当源帧上的转换像素落在目标帧的深度图前面时,我们才会将该像素包含在损失中。这个方案在源帧和目标帧的交换上是不对称的,这就是为什么我们总是以对称的方式应用它:将源变换到目标上,计算损失,然后转换源和目标的角色。(类似于左右一致性检测?)图3阐述了这个方法。这种应用损失的方法可以用于许多类型的损失,在本文中我们将其称为“遮挡相关”损失或惩罚。

4.网络,损失函数和正则

网络:我们依赖于两个卷积网络,一个从一张图像预测深度,另一个从两张图像预测自运动,物体相对于场景的运动场,以及相机的内部参数。深度预测网络是一个UNet架构,具有ResNet 18基础和softplus激活(z = log(1 + e '))来将logits(')转换为深度(z)。

运动估计网络是一种受FlowNet[9]启发的UNet体系结构。使用stride 2(“encorder”)的卷积堆栈(最后一个是average polling)形成了1024个通道为空间分辨率为1x1。两个带有3个输出通道的1x1卷积分别预测全局旋转角(r0)和全局平移向量(t0)。后两者代表了整个场景相对于相机的运动,相当于相机的运动。每个本征参数都由瓶颈(全连接层?)产生的1x1卷积来预测,并对焦距和畸变进行softplus激活。下一层逐步细化(即增加平移的空间分辨率),从单个向量到剩余平移向量场,每次在高度和宽度维度上都乘以2。这里我们利用在4.2节中描述的前景掩码m (x, y) :平移场表示为全局平移向量加掩模残差平移之和:

其中,m(x,y)在可能属于移动对象的像素处为1,否则为0。

损失函数:给定一对帧,我们对每个RGB颜色通道和深度应用一个occlusion aware的L1惩罚。对于运动场,我们要求循环一致性:源帧在像素(i, j)处的旋转和平移必须与目标帧在像素(i, j)处的旋转和平移形成相反的变换,反之亦然。这里也使用了occlusion awareness。

结构相似度(SSIM)是训练损失的一个重要组成部分,上面定义的遮挡感知在这里很难实现,因为SSIM涉及到每个像素的邻域。z'

随机层归一化:我们的深度预测网络最初是批量归一化的。然而,我们反复观察它导致异常行为:

  • 在批处理规范化的“训练模式”下运行推理时,Eval精度始终较好。也就是说,不使用长期平均平均平均值和方差,而是使用在推断过程中从图像本身获得的平均值和方差,从而使批处理标准化更类似于层标准化[3]。

  • 当我们在训练中增加批处理大小时,不管我们如何缩放学习率,eval精度总是越来越差。

这两个观察结果使我们尝试用层归一化代替批处理归一化,但是eval质量下降了。我们的下一个假设是,虽然批处理规范化实际上类似于层规范化,但批处理中的其他项在此基础上会作为噪声源。为了验证这一理论,我们在层均值和方差上用高斯噪声层归一化代替了批量归一化。(思考归一化的作用和方式?)

的确,与批处理规范化相比,所有eval指标都显示出了显著的改进。此外,现在随着训练时批大小的增加(伴随着学习率[15]的线性增加),eval指标开始略有改善,而不是显著降低。在multiplicative噪声(什么东东?)条件下,得到了最佳的结果。虽然在过去已经观察到,噪声可以作为一个正则化器,例如使用dropout[34]或当应用到梯度[26]时,我们不知道之前的工作是在哪里使用层归一化。

5.实验

5.1datasets:

KITTI/Cityscapes(Cityscapes数据集是一个较新的城市驾驶数据集,我们使用它进行训练和评估。除了少数例外[30,7],它还没有被用于深度估计评估。我们使用视差数据的深度对1250个标准评估集进行评估[30,7]。)EuRoC Micro Aerial Vehicle Dataset(我们只使用单眼视频进行训练。由于相机有明显的镜头畸变,这是一个测试我们学习透镜变形方法的机会)。YouTube8M videos(作者自己的数据集,将会开源,当然,这些视频是用不同的未知相机拍摄的,不同的视野和不同程度的镜头失真。)

5.2 深度

KITTI:从结果中可以看出,我们得到了state of the art的结果。更重要的是,我们发现,学习过的内部参数,而不是给定的参数,始终有助于提高性能,这在后来的实验中也可以看到。

Depth from Videos in the Wild:Unsupervised Monocular Depth Learning from Unknown Cameras_第2张图片

Cityscapes:我们的方法优于以前的方法,并且从学习的内部参数中获益。

Depth from Videos in the Wild:Unsupervised Monocular Depth Learning from Unknown Cameras_第3张图片

Cityscapes + KITTI:可以看出,联合训练比每个数据集上训练的最佳深度模型更能提高深度结果。这是一个关键的结果,它演示了我们所提议的方法对潜在无限大小的数据源的影响。

Depth from Videos in the Wild:Unsupervised Monocular Depth Learning from Unknown Cameras_第4张图片

 

Cityscapes + KITTI: ablation experiments

Depth from Videos in the Wild:Unsupervised Monocular Depth Learning from Unknown Cameras_第5张图片

EuRoC MAV Dataset:

Depth from Videos in the Wild:Unsupervised Monocular Depth Learning from Unknown Cameras_第6张图片

 

Depth from Videos in the Wild:Unsupervised Monocular Depth Learning from Unknown Cameras_第7张图片

5.3YouTube视频:我们注意到,这个数据集非常具有挑战性,因为它的对象深度范围较大。

Depth from Videos in the Wild:Unsupervised Monocular Depth Learning from Unknown Cameras_第8张图片

5.4相机参数评价

两个问题:首先,跨帧一致性为相机内参提供的监督信号有多好。其次是一个深度网络在学习相机参数和推广到其他数据集上的好坏。

监督信号的质量:  为了估计内部物理的监督信号,我们将每个内部参数表示为一个单独的学习变量。该模型是在EuRoc数据集上训练的,因为它自始至终都是用相同的摄像机捕获的。EuRoC的11个子集都在一个单独的实验中训练,直到内部参数变量收敛,得到11个独立的结果。表5总结了每个内在参数的结果样本均值和标准差。所有参数在几个像素内都与groundtruth一致。由于groundtruth没有伴随tolerances,因此很难判断这些差异是否在tolerances范围内(tolerances是什么东东?)。

Depth from Videos in the Wild:Unsupervised Monocular Depth Learning from Unknown Cameras_第9张图片

学习和生成:

之前的工作[41,43,4]已经表明,深度网络可以在强监督设置下学习和生成摄像机内参。在我们的设置中,摄像机的内部参数和运动是由相同的网络预测的,因此是相互关联的。换句话说,对运动/内部参数网络施加的损失只会在公式3的范围内起到纠正的作用。这是使用相同网络预测两个量的缺点,其优点是减少了计算成本。

我们评估了我们的模型对KITTI测程系列固有参数的预测。模型是在kitti和cityscapes训练集的结合上训练的。(自己也考虑这样做,可以先下载一下cityscapes数据集)图9表明,在用同一个网络预测内部参数和运动的设置中,后者“聚合”地学习它们,只是在深度预测网络学习深度所需的范围内。

Depth from Videos in the Wild:Unsupervised Monocular Depth Learning from Unknown Cameras_第10张图片

5.5测程法

自运动预测的评估

6.结论

这项工作通过对遮挡的几何处理,一种简单的解释物体运动的方法,以及一种新的正则化形式,解决了深度无监督学习和视觉里程测量的重要挑战。最重要的是,它向利用大量现有的未标记视频进行学习深度估计迈出了重要一步:通过非监督学习相机的固有参数,包括镜头畸变,它首次实现了从未知相机拍摄的原始视频中学习深度。

你可能感兴趣的:(深度学习,计算机视觉)