unsupervised learning of monocular depth estimation with bundle adjustment, Super-Resolution 论文

《unsupervised learning of monocular depth estimation with bundle adjustment, Super-Resolution and Clip Loss》

论文链接: https://arxiv.org/pdf/1812.03368

0x00 Abstract

Abstract
我们提出了一种新的无监督学习框架,用于使用单目视频进行单视图深度估计。在3D视觉中众所周知,扩大基线可以提高深度估计精度,并且联合优化一组相机姿势和地标是必不可少的。在先前的单目无监督学习框架中,仅序列内的部分光度和几何约束被用作监督信号。这可能导致短基线和过拟合。此外,先前的工作通常从低分辨率的估算图像估计低分辨率深度。然后插入低分辨率深度以恢复原始分辨率。该策略可能在对象边界上产生大的误差,因为背景和前景的深度被混合以产生高分辨率深度。在本文中,我们介绍了 aBAframework 和 a super-resolution network 来解决上述两个问题。在 bundle 调整中,联合优化图像序列的深度和姿势,通过建立更远帧之间的关系来增加基线。超分辨率网络学习从低分辨率图像估计高分辨率深度。另外,我们引入了 the clip loss 来处理移动对象和遮挡。 KITTI数据集的实验结果表明,与使用双目序列的无监督方法相比,所提出的算法优于使用单目序列的现有技术的无监督方法,并且实现了可比较的甚至更好的结果。

0x01 Introduction

Introduction
从单个图像预测深度是一项具有挑战性的任务,并且在3D视觉和机器人技术中具有许多应用,例如自动驾驶,planning,避障和同步定位与地图构建(SLAM)。该任务不同于传统的多视图重建,其使用场景的一组图像来恢复3D信息,主要考虑这些图像之间的外观匹配几何约束。由于其重要性,在这项任务中付出了很多努力。与其他计算机视觉任务一样,深度学习方法取得了巨大成功。早期工作[27,30,49,31]将单幅图像深度预测作为有监督学习问题。监督方法的难点在于缺乏地面真实深度信息。最近的工作[15,58,15,60,57,48,55,1]表明视图合成可以是训练神经网络的有效监控信号。这消除了对地面实况深度监督标签的要求,并使深度估计的无监督学习成为可能。

在文献中,探索双目和单目视频来训练网络[15,58,15,60,57,48,55,1]。与双目相比,单目视频是更广泛的训练源,更容易捕捉。 然而,由于未知的相机运动,移动物体和变化的照明条件,单目视频的训练更具挑战性。 尽管使用单目视频的当前作品[58,48,60,55,53]已经显示出可靠的结果,但是通过双目和单目训练获得的结果之间仍然存在显着差异。 本文重点关注无监督学习使用单目视频并寻求缩小这一差距。 该文件的贡献如下:

BA Framework

我们引入 a bundle adjustment framework 来训练网络。 众所周知,大的基线对于精确的深度估计是必不可少的。 在SLAM或VO系统[36,10,9]中,bundle adjustment 用于联合优化一组像机姿势和地标,这增加了移动像机的基线。 我们的 bundle adjustment framework 联合优化序列中的深度和相机姿势。 与使用连续帧生成约束的先前作品[58,56,60,48,33]相比,我们的方法增加了基线并引入了更多约束。

Super-resolution Network

通过图像的超分辨率[25,50],我们引入了超分辨率网络,从低分辨率输入生成高分辨率深度图。 在以前的工作中,图像被下采样并馈入网络。 网络产生低分辨率深度图,其具有与输入图像相同的分辨率。 然后对该低分辨率深度图进行上采样以恢复原始图像的深度。 插值结合了附近的深度,这可能导致大的误差,尤其是在物体的边界处。 我们通过引入一个学习生成高分辨率深度图的超分辨率网络来解决这个问题。

Clip Loss Function

我们引入a clip loss来处理移动对象和遮挡。 无监督学习框架的监督信号来自视图合成。 由此产生的损失函数是在静态场景和光度一致性的假设下。 从单目视频学习深度的一个困难在于移动物体和遮挡,这将违反静态假设。 来自这些区域的大错误将降低性能。 本文介绍了一种a clip loss来解决这个问题。 在训练期间,高于某一百分位数的误差将受到限制。 它们将产生零梯度,不会对训练产生影响。

1.1. Related Work

从单个图像估计深度是一项具有挑战性的任务。 这不同于传统的运动结构(SfM)[43]或多视图双目(MVS)[44],其中多个图像用于恢复深度。 已经提出了大量基于学习的方法,包括监督和非监督方法,以解决单个图像深度估计问题,并且在该任务中已经取得了很大进展。

Supervised Depth Estimation

大多数监督方法将深度估计问题表述为监督回归问题。在早期作品[41,42]中,训练了具有手工制作特征的马尔可夫随机场(MRF)来估计深度。刘等人[29]将语义标签引入到MRF学习中。 Ladicky’等人 [24]表明,结合语义标记和深度估计可以互相受益。 Karsch等[19]采用非参数采样进行姿态估计。为了避免特征工程,已经探索了使用深度神经网络的监督学习。 Eigen等[8]提出了一种多尺度深度卷积神经网络(CNN)来预测深度,后来扩展到深度预测,表面法线估计和语义标记[7]。由于该方法所展示的有希望的结果,已经探索了各种深度网络结构以进一步改善性能,例如将CNN与条件随机场(CRF)组合[27,30,49,31],使用完全卷积残差网络与反向胡贝尔损失[26],将深度估计问题制定为像素分类任务[3],或者从两个无约束图像联合学习深度和相机运动[46]。最近,Cheng等人[5]提出了卷积空间传播网络来学习深度预测的近似矩阵。

最近,Cheng等人[5]提出了卷积空间传播网络来学习深度预测的近似矩阵。除了CNN之外,还研究了递归神经网络(RNN)以产生时空精确的单目深度预测[21]。在这些工作中,深度传感器用于产生监督信号。来自RGBD传感器的深度信息噪声很大,并且范围有限(通常用于室内场景)。另一方面,LiDAR的深度测量很稀疏,需要精确的GPS / IMU设备来记录LiDAR扫描[13]。为了降低监督深度的要求,一些工作[59,4]表明相对深度可用于学习度量深度。Kuznietsov等人[23]提出了一种半监督算法,它将稀疏地面实况深度和光度一致性结合起来作为监督标志。 Li等[28]采用运动结构(SfM)和多视图双目声(MVS)技术来生成监控3D信息。此方法不适用于SfM或MVS无法工作的情况。仍需要地面实况深度来使预训练模型适应特定应用。在最近的工作[2]中,使用具有完美深度的合成数据来训练深度估计网络,并且训练图像样式传递网络以将真实图像转换成合成域,从而可以从原始图像估计深度。

Unsupervised Depth Estimation

附近帧的光度一致性假设提供了一种避免在训练时对地面实况深度的要求的方法。 尽管针对未无监督学习提出了各种成本,但是视图合成[11,52]对于生成用于深度估计的无监督学习的自监督信号是至关重要的。 具体地,在训练时考虑源和目标图像对。 网络产生源图像的深度,其与目标图像和图像对之间的姿势一起用于合成新的源图像。 通过最小化真实源图像和合成源图像之间的误差来进行训练。 根据训练图像的类型,无监督方法可以分为两类。

第一类考虑双目序列的深度学习。左右图像和双目摄像机装备的已知姿势形成自我监督循环以训练网络。 Garg等人 [12]首先在双目图像对上应用这种自我监督的方法。他们使用泰勒展开来近似成本函数梯度计算,可能导致次优目标。为了解决这个问题,戈达尔等人[15]应用空间变压网络[18]产生可微分的重建成本函数。他们还通过引入左右差异一致性损失在训练期间强制执行几何约束。 Poggi等人[39]将戈达尔的工作[12]扩展到三目相机系统。他们引入了交错训练程序,使三目网络适应双目输入。除了左右图像对的上述光度重建误差外,还利用时间光度和深度特征重建误差来改善性能[57]。最近的工作[37,1]表明,生成对抗网络(GAN)[40]范式,以及来自合成数据深度训练的双目匹配网络的监督[16]可以使无监督深度学习受益。

第二类侧重于单目序列的学习深度。与上述情况相比,这是一个更具挑战性的问题,因为相机姿势未知。周等人[58]和Vijayanarasimhan等人[47]表明它能够使用来自视图重建误差和空间平滑度成本的监督标志同时学习深度预测和姿态估计。姿势估计网络消除了双目训练样本的要求。最近的几项研究探讨了在训练中引入不同的约束。 [55]中使用了正常和深度之间的一致性。在[33]中引入了3D点云对齐损失。深度和光流预测是相关的任务。最近的工作[56,60]表明,共同学习深度和光流可以互相受益。受当前直接视觉测距(DVO)技术的推动[10,9],Wang等人[48]引入了可区分的DVO(DDVO)模块来取代先前的姿势估计网络。他们还提出了一种简单的深度归一化策略,以解决通常使用的深度正则化项所引起的尺度灵敏度问题。戈达尔等人[14]提出了几种改进深度估计的方法,包括使用预训练编码器,在姿势和深度估计器之间共享较低层,以及通过将它们上采样到输入图像分辨率来训练每个较低分辨率深度图。

移动物体是使用单目序列训练的另一个问题。 双目相机对同时捕捉物体,因此场景满足刚性变换并且移动物体不成问题。 ijayanarasimhan等[47]通过引入物体运动模型和物体掩模来解决这个问题。 该方法需要知道场景中移动物体的数量,这是难以估计的。 Zhou等人[58]提出了一个解释掩模,以摆脱经历运动和遮挡的区域。 但是,他们后来发现这种性能降低了。 Yin等[56]引入了一个ResFlowNet来学习由运动物体引起的残余非刚性流动。 前向一致性在[60,56]中用于处理移动物体和遮挡物。

0x02 Our Approach

Approach
我们的框架分别包括两个用于深度和姿态估计的网络,如图2所示。 深度网络为序列内的每个图像生成深度图。 姿势网络将两个连续图像作为输入,并预测它们之间的相对姿势。 随着它顺序滑过整个序列,它估计每个图像对的相对姿势。 这与先前的作品[58,48]不同,后者将整个序列堆叠为输入并估计相对于中心图像的姿势。 本节详细介绍了我们的无监督框架。

无监督框架

2.1.BAProcess

我们的网络通过 bundle adjustment(BA) 过程中的监督标签进行训练,如图2所示。BA是在传统SLAM或VO系统中产生准确结果的重要组成部分[36,10,9]。大基线对于实现精确的深度估计非常重要。BA提供了增加移动摄像机基线的有效方法。受此启发,我们以BA方式制定了无监督培训。在传统的单目SLAM或VO系统中,地标由特定描述符[36]或附近帧中的光度一致性[10,9]跟踪。然后执行BA以共同优化相机姿势和地标。类似地,在我们的框架中,光度一致性用于逐帧跟踪每个像素,利用深度一致性来建立相机姿势和深度的交叉序列约束。除了向前运动之外,我们还考虑了在训练期间反转序列的向后运动。与之前的工作[58,47,55,56,60,48,33]相比,我们的BA过程产生更大的基线和更多的约束以避免过拟合。

我们的BA过程是可微分的,这导致端到端的网络训练。 它使用来自视频序列的N帧训练片段S ={I 1 , I 2 , · · · , I N }作为输入。 训练片段S上的BA过程使用Depth NetPoseNet用来最小化光度loss,几何loss和局部平滑度lss。

2.1.1 Image Reconstruction Loss

首先考虑图片的重建误差,从 It 到 It+1。是产生的深度图,是从 It 到It+1 过程的姿态估计。从而我们能够将同质像素pt 映射到 :
在这里插入图片描述
K 是相机内参。以下这个公式来自于spatial transformer networkpdf传送门: https://papers.nips.cc/paper/5854-spatial-transformer-networks.pdf
在这里插入图片描述
其中 w^ij 是双线性插值的系数。假设静态场景,没有遮挡和恒定的照明条件,预计^It与It相同。 由于 It 中的一些像素在 It+1 中可能不可见,我们使用[33]中提出的mask Mt(p t)去除这些不可见像素。 我们将 ^It 和 It 之间的图像重建误差表示为
在这里插入图片描述
其中|·| 表示绝对值,SSIM表示结构相似性指数和α设定为0.85。


mask 相关:Mahjourian_Unsupervised_Learning_of_CVPR_2018_paper https://arxiv.org/pdf/1901.00979

图像重建loss 相关论文:Godard_Unsupervised_Monocular_Depth_CVPR_2017_paper http://openaccess.thecvf.com/content_cvpr_2017/papers/Godard_Unsupervised_Monocular_Depth_CVPR_2017_paper.pdf

Wang_Learning_Depth_From_CVPR_2018_paper https://www.ci2cv.net/media/papers/Wang_Learning_Depth_From_CVPR_2018_paper.pdf

2.1.2 Cross-sequence Geometric Consistency Loss

深度网络可以预测S中每个图像的深度。从不同图像估计的3D点的深度应该是一致的。 这可用于在S中建立图像之间的连接。

假设D t和Dt+n,分别是来自图像It和It+n的深度图。 对于每个pt,我们可以使用(1)来估计相应的^p t +n。 由于^p t + n是连续坐标,我们通过双线性插值估计^p t + n的深度作为图像重建(2)。 也就是说,我们可以通过D t + n估计帧t + n中的p t的深度。 我们表示以这种方式生成的深度图^D t→t+n (p t ).

============= 2019/03/25 =============

另一方面,我们可以使用框架t中的点云转换为框架t + n

在这里插入图片描述(4)

其中Tt→t + n是从 It 到 It+n 估计的姿势。然后,帧t + n中的pt深度是Pt→t + n的z坐标。将由(4)生成的深度视为Dt→t + n(pt)。理想情况下,Dt→t + n(pt)和^Dt→t + n(p)应该相等。 因此,我们定义了以下深度一致性损失:
在这里插入图片描述
Ldc建立了交叉序列约束,如图4所示。 我们的公式也不同于[33]中的点云对齐损失。 [33]中的训练是使用ICP程序最小化两点云对齐的残差。 ICP程序可能会收敛到局部最小解决方案,从而导致次优目标。 我们的算法也与[15]不同。 在[15]中,左右视差都来自左图像,左右一致性损失仅限于双目图像对。 我们的深度一致性贯穿整个序列。 这与限制两帧深度一致性误差的作品[47,60]不同。 我们的公式增加了基线并引入了更多约束,从而改善了深度估计。

2.1.3 Spatial Smoothness

上述成本函数不足以估计无纹理区域中的深度。 为了解决这个问题,我们采用了以前的工作[15,33,60]中使用的边缘感知平滑正则化项,以鼓励局部平滑,同时允许边缘锐化。 由于深度范围是无界的,我们在视差(逆深度)图上强加了以下的归一化项
在这里插入图片描述
其中,∂x和∂x分别代表x和y方向的梯度。

2.1.4 Backward Sequence

在前向运动序列中,在下一帧中只能观察到部分像素的当前帧,但是下一帧中的大多数像素通常在当前帧中可见。 除了前面提到的前向运动过程,我们还反转序列的顺序以生成后向序列。 我们以与前向序列相同的方式构造后向序列的成本。 这导致更多约束以避免过度拟合。 在训练期间,我们共同优化前后损失。

2.2. Clip Loss Function

上述模型假设静态场景,没有遮挡和亮度恒定。 影响上述假设的图像部分将产生大的成本,并且反过来产生大的梯度,这可能使性能恶化。 我们将这些违规视为异常值,并提供剪切功能来处理它们。 假设整个cost S,即si∈S。 为了解决上述问题,我们引入了以下鲁棒损失函数

其中p(S,q)代表S的三个百分位数。 也就是说,S的成本削减了千分之百。 高于千分之一的成本将产生零梯度,并且不影响训练。 我们将(7)应用于上面介绍的成本函数(3)和(5)。

2.3. Super-resolution Network

在以前的工作中,网络采用下采样图像作为输入,并提供相同的分辨率深度图。 然后将该深度图缩放到原始分辨率。 这个过程的缺点是它可能在高分辨率深度图中的对象边界处产生大的误差,因为插值简单地组合了背景和前景的深度值。 为了解决这个问题,我们引入了一个超分辨率网络。 超分辨率网络将低分辨率图像和原始解码器的输出作为输入,并产生2倍分辨率的深度图。 从图1和图3中,我们可以发现我们的网络可以生成清晰的边界和更多的场景细节。

2.4. Total Objective Function

我们的学习目标结合了上述损失功能,包括前向和后向运动。 在成本函数(3)和(5)中,我们应用(7)来处理移动对象和遮挡。 我们采用从粗到细的多尺度损失来训练网络。 实验中使用了4个标度作为之前的工作[58,15]。 最终的目标函数是
在这里插入图片描述

2.5. Network Architecture

这里我们介绍我们的网络架构。 我们的网络包括两个组件,即单视图深度网络和摄像机姿态网络。 我们采用[58]的网络架构作为主干。

Depth Network

我们的深度网络将每个图像作为输入,并提供两倍大的密集深度图。 我们的超分辨率层安装在[58]中深度网络的最后一个卷积层上。 [58]中的深度网络是编码器 - 解码器结构,在编码器和解码器之间跳过连接。 VGG网络[45]用作编码器。 除了使用sigmod激活函数的逆深度预测层之外,采用ReLU作为激活函数。 我们还采用[48]中提出的深度归一化来处理深度正则化项的尺度灵敏度。 将原始图像与解码器网络的输出一起堆叠并馈送到超分辨率网络中。 这使用转置卷积使输入图像的分辨率加倍。 我们的网络使用4个多尺度训练目标从超分辨率层进行下采样。

Pose Network

Pose Network接收两个连续图像作为输入,并预测相对姿势。 网络经历了序列。 然后,可以从姿势网络的输出容易地获得序列中的任意图像之间的姿势。这与[58,48]不同,其中整个图像序列被馈送到姿势网络中,并且预测中间图像与其他图像之间的姿势。

0x03 Experiments

在本节中,我们通过实验广泛评估我们的算法。 我们将算法与最先进的方法在准确性和跨数据集泛化能力方面进行了比较。 此外,我们进行了抽样实验,以表明所提出的 BA 框架,超分辨率网络和clip loss功能都有利于单视图深度预测。

3.1. Training Details

我们的网络在TensorFlow框架中实现。 我们使用Adam [20]优化器来最小化目标函数(8),其中β1= 0.9,β2= 0.999。 模型训练20个时期,前15个时期的初始学习率为10-4,然后在5个时期内降至10-5。 我们分别测试了两种输入分辨率,包括128×416和192×640,批量分别为4和3。 在下面的所有实验中,(8)中的权重被设置为α= 1,β= 0.01。 对于剪辑丢失函数(7),我们在我们的实验中设置了percentileq = 95。 也就是说,大于95%误差的误差将被削减并产生零梯度。 在训练过程中,我们随机地将图像对比度调整为[0.8,1.2],并将亮度调整为±10。

3.2. Monocular Depth Estimation

我们主要使用KITTI数据集[35]来评估我们的单目深度估计算法。在以前的工作中,我们将训练序列的长度设置为3.数据集分为[8],生成40K训练样本,4k评估样本 和697个测试样本。 我们遵循相关工作中深度估计的一般指标[58,48]。 通过绝对相对差异,平方相关差异,RMSE和logRMSE评估性能。 我们考虑两种输入分辨率,即128×416和192×640,分别产生256×832和384×1280深度图。 我们使用后缀LR来指代较低分辨率的输入。
Figure 3

表3列出了我们的算法和previousworks的结果。 我们的算法使用192×640输入产生比128×416输入更好的结果。 从192×640输入的深度图分辨率384×1280更好地近似于KITTI中的原始图像分辨率,因此它在插值方面受到的影响较小。 对于使用KITTI数据集的训练,ouralgorithm明显优于以前使用单目视频的无监督算法。 与使用双目声序列训练网络的最新算法相比,我们的算法产生了可比较的甚至更好的结果。 对于双目训练策略,只有使用ResNet [17]作为编码器的工作[39,34]在Abs Reland Sq Rel上产生比我们的算法更好的度量。 我们的算法使用VGG 作为编码器,并且优于[39]的VGG版本。 我们的算法填补了单目和双目训练策略之间的空白。

图3提供了KITTI dataset的一些定性结果。 之前的作品直接对深度图像进行上采样,因此它们的结果通常是模糊的,并且它们的深度图会丢失图像的一些细节。

我们还考虑使用CityScape数据集[6]预先训练模型,然后调整KITTI数据集。 我们认为,对CityScape数据集进行预训练显着有利于双目训练策略,但只是略微改善了单目训练策略的结果。 这项工作[56]甚至报告了更糟糕的结果。 一个可能的原因是,在记录两个数据集期间,视频的帧速率和车辆的运动模式(例如速度)不同。 因此,在城市景观数据集上训练的姿态网络在KITTI数据集上将无法正常工作。这将反过来影响深度网络的训练。基于双目的方法不需要姿态网络,因此额外的数据可以提高性能。

3.3. Ablation Study

我们进行分离研究以评估不同组分的重要性。 我们训练了一系列模型。每个模型都会丢弃一个建议的组件。 表1列出了结果。 很明显,所有提出的组件都能提高性能。 我们发现我们的算法没有超分辨率,交叉序列几何一致性损失和剪切损失函数给出类似于[56]的结果,其中连续帧之间的约束用于构造损失。 消除剪辑丢失,动态对象和遮挡对训练的影响。 降低交叉序列的几何一致性损失会降低基线。没有超分辨率,双线性插值会在对象边界处引入大的误差。
Table 1

0x04 Generalization Ability

我们使用Make3D数据集[42]来测试算法的交叉数据集概括能力。 我们使用CityScape和KITTI上的modeltrained来测试Math3D的测试数据集。 表2列出了结果。 我们的算法给出了竞争结果。 Make3Ddataset中的深度图分辨率很低(21×305)。 我们必须将我们的高分辨率深度图下采样到较低的深度图。 作为上采样,深度图的下采样也可能引入大的误差。因此,我们的超分辨率网络不会使性能受益。

0x05 Conclusion

在本文中,我们提出了一个 BA 框架,以使用单个视频从单个图像中学习深度估计。BA 框架使用照片度量一致性逐帧跟踪像素,利用深度一致性连接远端帧,并引入前向和后向运动以建立交叉序列约束。 与以前的算法相比,我们的算法产生了更多的约束和更大的基线。 我们引入了一个超分辨率网络,它可以从低分辨率输入产生高分辨率深度图。这解决了插值问题,可能导致对象边界上的大误差。 此外,我们提出了剪辑损失,这可以使训练对移动物体和遮挡物具有鲁棒性。 实验结果表明,我们的算法优于现有的无操作方法,填补了双目训练和单目训练策略之间的差距。

============= 2019/03/26 ============

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值