原文链接:TANDEM: Tracking and Dense Mapping in Real-time using Deep Multi-view Stereo
文章目录
摘要
在本文中,我们提出了一种实时单目跟踪和稠密建图框架TANDEM。对于姿态估计,TANDEM基于关键帧的滑动窗口光度BA(bundle adjustment)。为了提高鲁棒性,我们提出了一种新的前端跟踪,该前端使用根据稠密深度预测增量构建的全局模型渲染的深度图来执行稠密的直接图像对齐。为了预测稠密的深度图,提出了级联视图聚合MVSNet(CVA-MVSNet),它利用整个活动关键帧窗口,通过自适应视图聚合分层构建3D成本量来平衡关键帧之间不同的立体基线。最后,将预测的深度图融合为一致的全局图,以截断的带符号距离函数(truncated signed distance function,TSDF)体素网格表示。我们的实验表明,在相机跟踪方面,TANDEM优于其他最先进的传统和基于学习的单目视觉里程计(VO)方法。此外,TANDEM显示了最先进的实时3D重建性能。Code:https://github.com/tum-vision/tandem
关键词:SLAM,稠密建图,多视点立体,深度学习
1. 介绍
实时稠密建图是计算机视觉和机器人领域所面临的主要挑战之一,这个问题称为稠密SLAM,包括估计传感器的6自由度姿态估计和密集重建周围环境。虽然当前也存在许多工作良好且稳健的RGB-D建图方案[1,2,3],但单目相机的实时重建是一个更为困难的挑战,因为深度值不能简单地从传感器读取并融合。然而,这是一个非常重要地事情。因为与仅限于室内环境的RGB-D方案或者价格昂贵且较重型的LiDAR方法相比,单目方法具有显著的优势。
已经提出的几种基于深度神经网络(DNN)的方法,通过利用单目深度估计[5]、变分自动编码器[6,7,8]或端到端神经网络[9,10]来解决单目跟踪和密集建图任务。与上述工作不同,在本文中,我们提出了一种新的单目密集SLAM方法–TANDEM,该方法首次将基于学习的多视点立体(MVS)集成到传统的基于优化的VO中。这种新颖的稠密SLAM方案设计,显示了最先进的跟踪和稠密重建精度,且当该模型仅对合成数据进行训练时,其依然在具有挑战性的真实数据集上显示了强大的泛化能力。图1显示了由TANDEM在unseen序列上进行的3D重建。
本文贡献:
- 一种新的单目实时稠密SLAM框架,无缝耦合经典的直接法VO和基于学习的MVS重建;
- 据我们所知,这是第一个利用全局TSDF模型渲染的深度来进行单目稠密前端跟踪;
- 一个新颖的MVS网络 – CVA-MVSNet,它能够利用视图聚合和多级深度预测来利用整个关键帧窗口;
- 在合成数据和真实数据上,均达到了最先进的跟踪和重建结果。
2. 相关工作
有两个不同的工作流与所提出的方法相关。一方面,有基于带位姿的图像的纯3D重建,另一方面,有完整的SLAM或VO框架,可以同时估计相机姿态和重建3D环境。
3D重建:大多数密集3D重建方法将图像及对应的位姿信息作为输入,并重建稠密的或半稠密的环境。在过去的十年内,已经提出了几种经典的方法[1,15,16,17]。最近,基于深度学习的方法显示出优于经典方法的性能。这些方法使用DNN回归环境中的3D模型。该3D模型可以是体素表示[9,18,19,20]、3D点云[21]或者一组深度图[22,23,23]的形式。如今,最流行的是从3D成本量预测最终模型的方法。黄等人[22]第一个提出了基于成本体积的方法。周等人[24]将多个图像的体积聚合到单个成本体积,并使用3D CNN进行深度预测。Yao等人[23]提出了基于从输入图像所预测的2D深度特征图直接计算单个体积。在后续的工作中,Yao等人[25]用循环网络替换了深度预测CNN。为了改善运行时间和内存消耗,Gu等人[26]提出了级联成本量。Yi等人[27]引入了一种自适应视图聚合来衡量每个输入图像的体素贡献。本文所提出的CVA-MVSNet建立在上述两个工作[26,27]之上,并在很大程度上受到了它们的启发。然而,只有通过它们的组合和适用SLAM的设置,我们才能获得更好的性能和实时能力。
以往的方法都是基于一组选定的帧,Murez等人[9]则直接从单个全局3D成本量来预测TSDF模型。Weder等人[18]提出了一种基于学习的方法替代深度图经典的TSDF融合。基于体素的表示一般来说都是密集型的,Niessner等人[28]提出体素散列来克服这一限制,Steinbrucker 等人[29]则使用八叉树在CPU上执行深度图融合。
RGB-D SLAM:在视觉SLAM领域,RGB-D方法本质上提供了密集的深度图以及相机轨迹,因此旨在解决与我们的方法类似的问题。Bylow 等人[30]和Kerl 等人[2,31]主要关注RGB-D图像的准确的轨迹估计。除了相机跟踪,Newcombe 等人[1]将深度图集成到全局TSDF表示中。Whelan 等人[3]则执行基于面元的融合和非刚体表面形变,以实现全局一致性重建。Kahler 等人[32]使用TSDF图表示,该图被拆分为多个子图以便模拟闭环。大多数之前的方法仅针对帧的位姿进行优化,Schops 等人[33]提出了一种基于RGB-D SLAM的全量BA方法,它可以同时优化相机的位姿和3D结构。Sucar 等人[34]将基于DNN的隐式场景表达集成到TGB-D SLAM系统中。
单目SLAM:与RGB-D方法相比,基于单目的方法其跟踪和建图都变得更具挑战性。Newcombe 等人[35]使用单目相机基于光度成本量进行优化,以在GPU上实时联合估计相机位姿和稠密深度图。Engel 等人[36]提出了第一个大规模光度SLAM公式,包括回环检测和位姿图优化。通过使用稀疏表示,Engel 等人[37]构建了第一个全光度VO框架,该框架可以实时联合估计位姿和深度。为了能够获得更稠密的重建结果,Mur-Artal等人[38]在基于特征的SLAM[39]基础之上执行半稠密的概率深度估计。Schops 等人[40]使用从移动跟踪设备上获得的位姿和图像,执行基于时间、平面扫描的深度估计。Tateno 等人[5]和Yang [41,42]等人在传统的直接法SLAM框架中利用DNN来提高跟踪性能并克服尺度模糊问题。虽然传统的几何和混合方法仍然可以实现出色的跟踪性能,但有几个完全学习的SLAM框架[43,44,45,24],它们在重建的完整性方面更胜一筹。Jatavallabhula 等人[46]提出了一种差分优化器,它可能用于弥补传统和基于学习的SLAM之间的差距。Bloesch 等人[6]提出了一种基于深度学习的SLAM新方案,作者建议学习场景深度的逐帧代码表达,它与相机位姿联合进行优化。Czarnowski 等人[7]是对[6]的扩展,其中代码表达被集成到一个完整的SLAM系统中。Zuo 等人[8]在视觉-惯性步骤中使用了类似的代码表达,并将稀疏的、跟踪的特征馈送到DNN中。
3. TANDEM
本文提出的TANDEM由三部分组成:单目视觉里程计(第3.1节)、基于CVA-MVSNet进行密集深度估计(第3.2节)和体积建图(补充)。图2a显示了系统的概述,视觉里程计利用单目视频流和从3D TSDF模型渲染的稠密深度以滑窗的方式估计相机位姿。给定关键帧及其估计的位姿,利用所提出的CVA-MVSNet预测参考关键帧的稠密深度图。为了重建一个完整且全局一致的3D模型,将深度图利用体素散列[28]融合到TSDF体素网格[47]中。通过无缝集成这些组件,生成的系统TANDEM能够从单目相机实现实时跟踪和高质量的稠密重建。补充材料中提供了更多的详细信息,包括有关TSDF体素初始化的信息。
3.1 视觉里程计
通过跟踪多个帧上的一组稀疏点来估计相机位姿在最近的VO系统中显示出很好的性能[37,39]。然而,使用更多的特征点进行联合优化并不一定会进一步提高估计位姿的准确性,同时还会显著增加运行时间[37]。因此,在所提出的VO系统中,我们使用直接稀疏窗口优化后端,如直接稀疏里程计(DSO)[37]中所述。然而,我们在直接图像对齐的前端使用从全局TSDF模型渲染的稠密深度图,该模型是增量式构建的。在众多的实验中,我们确认了稠密跟踪前端和稀疏的后端优化的组合可以显著提高跟踪性能(参见表1),同时保持了快速的运行时间。
稠密前端跟踪:前端跟踪提供相机的速率姿态估计,并作为窗口优化后端的初始化。在原始的DSO中,通过使用从优化窗口中所有点生成的稀疏深度图来进行图像对齐,以此实现关键帧的跟踪。然而,由于深度图的稀疏性,这种方法缺少鲁棒性(表1)。我们通过合并TSDF模型渲染的稠密深度图来缓解这个问题。对于当前关键帧中的每个像素点p,我们根据稀疏VO DSO(如果可用)分配一个深度值,否则基于渲染的稠密深度TSDF来分配深度值。基于增量构建的TSDF模型,虽然无法包含所有像素的有效的深度值,但是与稀疏深度值相比,还是要稠密很多。其中,近稠密组合深度图被用于两帧的直接图像对齐。
3.2 CVA-MVSNet
( I i , T i ) i − 1 n { (I_i, T_i) }^n_{i-1} (Ii,Ti)i−1n是一系列活动关键帧的集合,其中 I i I_i Ii是体积为 ( H , W ) (H,W) (H,W)的图像, T i T_i Ti是对应的通过VO计算的全局位姿信息。CVA-MVSNet是基于多视图立体的原理,并进一步利用深度神经网络来估计参考帧 I i − 1 I_{i-1} Ii−1的深度图。CVA-MVSNet通过使用级联代价量分层估计深度,并使用自适应视图聚合模块有效地聚合所有关键帧地深度特征,从而克服了深度MVS网络令人望而却步地内存需求。
如图2b所示,关键帧的多尺度特征 F i s F^s_i Fis首先由共享权重的2D U-Net网络提取,其中 i ∈ [ 1 , n ] i\in[1,n] i∈[1,n]是帧索引,而 s ∈ [ 1 , 3 ] s\in[1,3] s∈[1,3]是尺度索引。作为结果, F i s F^s_i Fis表示为 ( F s , H s , W s ) (F^s,H^s,W^s) (Fs,Hs,Ws)