- 文献综述(或调研报告):
从拍摄的图像中获取获取景深是一件非常有挑战性的事情,目前大体上可以分为两类,一种是基于传统的方法,就是利用双目摄像机的视觉差异,因为两个摄像机之间具有固定的几何位置关系,所以可以利用这些信息从而得到两个摄像机拍摄的图像的差异图,而视差图又反比于深度图。从而利用这些关系就可以得到我们的深度图。这利用这种方法来获取深度图与我们人眼获取深度图的原理是基本一致的。但是由于传感器件和其他一些原因,虽然从原理上来说这种方法是可行的,但是在实际应用的过程中仍然会产生很多不理想的地方,比如说轮廓边缘不平滑,噪声很多等。而另外一种方法就是基于深度学习的方法,而基于深度学习的方法又可以分为两类,第一类为基于有监督学习的方法,第二类为基于无监督学习的方法。基于有监督学习的方法,主要是利用已经采集得到的深度图像,对估计的深度图像做监督。而基于无监督的方法又可以分为以下几类:
立体相机利用左右图像之间的监督,当只有一个摄像机的时候,我们就可以利用光流作为一种监督,或则当我们在时间域有很长一段图像的时候,我们便可以利用SLAM等方法去获得景象等几何结构。然而这些方法只把深度估计看成是一种几何问题,忽略了图像中的内容。当只有一个摄像头的时候,我们需要其他东西来提供深度估计的线索,比如纹理的梯度,或则图像中出现的物体的大小等。Shape-from-X之类的方法[1, 2, 3, 4],就是利用上面所说的这些信息去获取深度,但是这一类方法都做了非常强的假设,从而导致它们在很难应用于实际的自动驾驶过程中。伴随着更强的硬件的出现,和更优秀的机器学习方法的出现,特别是卷积神经网络的出现,现在可以利用图像中自带的信息,而不用自己手写代码去设定规则。最早使用机器学习的方法从单目摄像机中提取景深的方法是在2006年的时候由Saxena等人[5]提出来的。在2014年的时候,Eigen等人[6]最早提出用CNN的方法来获取景深图。在2016年的时候,Garg提出了直接利用双目摄像机获取的图像来训练的方法[7]。这种方法后来被Godard进一步优化[8]。类似的,基于单目的无监督的景深估计方法也被相继提出,比如说Zhou[9]和Wang[10]提出的。近期大家的一些工作主要集中在提升单目深度估计的精度,比如在KITTI[11]和NYUv2[12]之类的公开数据集上的精度。下面我再介绍一下其他方法。
从场景中推测景深和物体的运动在自动驾驶和机器人领域是一个非常有挑战性的任务。在三维空间中确定物体精确的位置和场景的几何信息对运动规划和决策来说是非常有利的。大多数基于有监督的方法都需要非常仔细的校准步骤。所以这大大限制了可以运用于训练的数据的总类和数量,这也是为什么有监督学习的方法只能应用于一些大家耳熟能详的数据,比如书KITTI和Cityscapes。有时候,尽管有非常精确的监督信号,采用监督学习的方式进行训练的方法产生的模型仍然会产生误差。比如说,激光雷达产生的深度信息不能和使用照相机产生的图片进行匹配。结构光传感器,或则激光雷达将受到噪声和结构不规则的影响,特别是在有反射,透明或者黑色表面存在的时候。最后,本身深度传感器和照相机都存在着一定的差异,当我们在将3D点云投射到2D平面的时候会必不可少的产生裂纹和重叠。这些存在的问题便会导致我们在这些数据上训练的模型不是那么好。[13, 14, 15]
这篇文章提出了一种新的用于推测来自单目摄像机图片的深度信息和运动信息的无监督学习方法。唯一的监督信号便是来自于单目摄像机相邻帧之间的一致性和时间上的连贯性。
照相机是到目前为止我们了解得最透彻,最广泛使用的传感器。高清摄像机相对比较便宜,同时又易于部署。同时呢,用无监督学习方法去进行学习会使我们在几乎无限的数据上进行学习,而不用去考虑传感器带来的噪声以及各种传感器之间的校准问题。
为了以无监督地方式去学习推理深度信息的能力,我们就必须依赖于存在于视频中的运行信息。当我们从一个单目摄像机拍摄的视频中提取两帧图片,神经网络便可以为它们分别推理出一张深度图,以及一个相邻帧之间的运动信息。限制相邻帧之间深度和运动的一致性便可以为我们的学习提供一种监督信息。采用这种方法可以得到一个可以推测深度信息的模型,因为有深度和运动信息重建新图片的方法已经有了很多研究,同时这样变换可以写成一个可以微分的函数。
传统的深度和运动姿态估计的方法主要是基于立体和特征匹配的方法,但是深度学习的方法在这两个任务上取得了非常大的成功。前人大多的方式是利用深度相机的监督信号来进行有监督学习。几种后来的方法是把深度估计的任务看成一个密集估计的问题,采用的是非常流行的卷积神经网络架构,比如FPN和U-Net。Garg提出了一种基于校准的立体相机重建的方法,也就是估计的深度作为重建的中间值,然后利用一个相机的图像对另外一个相机重建后的图像进行监督,从而来进行训练。对于立体相机的图片,这两张图片之间具有固定的几何关系,因此我们可以从这样一种函数化的关系之间学习到深度。其他新颖的深度估计的学习方法需要的都是多张图像。Godard提出了利用校准的深度相机拍摄的图像作为输入,然后来进行学习。这种差异匹配的方法只需要在一维上进行搜索。Ummenhofer提出的方法DeMoN也是为了处理从立体相机中得出深度信息的问题。这种方法利用两帧图像作为输入,最终都可以得到高清的深度图像。这种方法利用多种信号作为监督信号,比如说深度信息和光流。
Zhou提出了一种只利用单目视频图像作为输入的无监督学习方法来估计深度和运动姿态。这种工作和我们的工作非常相似,因为我们都是利用无监督的方法在单目摄像机拍摄的视频上进行学习,从而得到深度和运动姿态。Vijayanarasimhan也是采用的相似的方法,只是在原有的基础上,加入了可以来学习估计场景中物体的运动的功能。他们的这些工作都可以利用诸如标准的深度信号和光流来作为监督信号进行学习,从而来提高精度。我们的工作区别于前面的工作主要在于我们在3D上进行训练。我们提出了一种可以利用可微分的3D损失函数来建立相邻帧之间几何上的一致性,从而来提高深度和运动估计的精度。
