DTAM

Newcombe 2011 · 论文

一句话总结 — 第一个能从单个单目相机实时执行稠密3D重建和相机跟踪的系统,方法是在关键帧处累积光度代价体、进行带正则化的原始-对偶深度优化,并在GPU上对整幅图像与稠密模型进行对齐。

问题

DTAM之前的实时单目系统——MonoSLAM和PTAM——只能生成稀疏点地图:足以定位相机,但对遮挡感知的AR、避障,或任何需要表面信息的任务都毫无用处。稠密多视图重建早已存在,但都是离线运行,没有人对每一个到来的帧实时运行过它。DTAM(“Dense Tracking and Mapping in Real-Time”,Newcombe、Lovegrove、Davison,ICCV 2011)提出,稠密方法能对重建和跟踪都”利用图像中的全部数据”,而GPGPU并行计算最终让这种逐像素、逐帧的处理成为可能。

方法与架构

两个紧密交织的稠密过程:给定稠密模型,通过整幅图像对齐来跟踪每一帧;给定跟踪到的位姿,构建并细化稠密关键帧深度图。一旦通过一个标准的点特征立体初始化器完成自举,“就不再需要基于特征的骨架或跟踪”。

Cr(u,d)=1I(r)mI(r)Ir(u)Im(π(KTmrπ1(u,d)))1.C_r(\mathbf{u},d) = \frac{1}{|\mathcal{I}(r)|}\sum_{m\in\mathcal{I}(r)} \big\| I_r(\mathbf{u}) - I_m\big(\pi(K\, T_{mr}\, \pi^{-1}(\mathbf{u},d))\big) \big\|_1 .

单个两视图代价存在很多极小值,但平均后的L1代价极小值很少;遮挡会变成异常值。运行均值随每帧到来而更新,因此不需要存储图像。

Eξ=Ω{g(u)ξ(u)ϵ+λC(u,ξ(u))}du.E_\xi = \int_\Omega \big\{ g(\mathbf{u})\, \|\nabla \xi(\mathbf{u})\|_\epsilon + \lambda\, C(\mathbf{u}, \xi(\mathbf{u})) \big\}\, d\mathbf{u} .

F(ψ)=12uΩfu(ψ)2,fu(ψ)=Il(π(KTlv(ψ)π1(u,ξv(u))))Iv(u),F(\boldsymbol{\psi}) = \frac{1}{2}\sum_{\mathbf{u}\in\Omega} f_{\mathbf{u}}(\boldsymbol{\psi})^2, \qquad f_{\mathbf{u}}(\boldsymbol{\psi}) = I_l\big(\pi(K\, T_{lv}(\boldsymbol{\psi})\, \pi^{-1}(\mathbf{u}, \xi_v(\mathbf{u})))\big) - I_v(\mathbf{u}),

其中 ψR6\boldsymbol{\psi} \in \mathbb{R}^6 属于 se(3)\mathfrak{se}(3)。光度误差超过阈值(该阈值随迭代逐步降低)的像素会被丢弃,因此像挥动的手这类未建模的物体不会破坏跟踪。当预测图像中携带表面信息的像素太少时,会添加新的关键帧。

实验结果

在桌面场景中进行实时评测:使用Point Grey Flea2相机,30 Hz,640×480 RGB,运行在配备i7四核CPU的NVIDIA GTX 480 GPU上。关键帧深度图携带近 300×103300{\times}10^3 个估计点,而PTAM在同一帧中只使用约1000个点特征。评测是与PTAM的定性对比:在一个靠近杯子的高加速度往返轨迹上,PTAM反复跟踪丢失并需要重定位,而DTAM(其重定位模块被特意关闭)保持稳定跟踪,速度估计明显更平滑;DTAM在相机失焦时也能保持跟踪,并展示了一个具有正确遮挡处理的物理增强AR应用。文中没有给出轨迹误差基准数据——它留下的遗产是一套模板(代价体+正则化+原始-对偶+基于稠密模型的跟踪),后来被稠密和直接法SLAM所继承。

对SLAM的意义

在PTAM只能生成稀疏点地图的地方,DTAM证明了单个相机能够实时提供稠密表面,从而为更丰富的场景理解、遮挡感知AR和避障打开了大门。它开创了直接/稠密这条SLAM研究路线——直接影响了LSD-SLAM、DSO,并(通过同一位第一作者)影响了KinectFusion——并确立了GPU计算作为稠密SLAM核心工具的地位。从ElasticFusion到基于NeRF和3DGS的SLAM,现代稠密系统都是其”稠密跟踪与建图”蓝图的后继者。

相关条目