SLAM++

Salas-Moreno 2013 · 论文

一句话总结 — 第一个面向对象的SLAM系统:其地图是一个由六自由度物体位姿构成的显式图,通过”在环内”实时进行的三维物体识别构建而成,以远小于原始几何地图的存储开销实现了强大的稠密预测能力。

问题

在SLAM++之前,实时SLAM系统都基于低层次的基元——点、线、图像块,或非参数化表面(如深度图)——这些基元必须经过鲁棒的匹配、几何变换与优化处理。这不仅浪费了大量计算资源,也忽视了领域知识:许多室内场景由重复出现的、特定领域的物体和结构组成(椅子、桌子、显示器)。如果能在SLAM运行的环路本身中利用这些物体的先验知识,那么基于深度数据的物体识别就可以取代原始几何处理——从而得到紧凑、具有语义意义的地图、强有力的回环约束,以及从物体图直接生成的稠密表面预测。

方法与架构

其处理流程(论文图2):实时帧表面测量(顶点图Dl\mathcal{D}_l + 法向图Nl\mathcal{N}_l)→ (1) 通过对当前SLAM图G\mathcal{G}渲染出的稠密多物体场景预测进行ICP配准,来估计实时相机位姿 → (2) 物体检测并插入图中 → (3) 位姿图优化 → (4) 为下一次预测及主动物体搜索渲染表面。

Ec(x)=uΩψ(e(u,x)),e(u,x)=Nr(u)(exp(x^)v^l(u)vr(u)),E_c(\mathbf{x}) = \sum_{u\in\Omega} \psi\big(e(u,\mathbf{x})\big), \qquad e(u,\mathbf{x}) = \mathcal{N}_r(u')^\top\big(\exp(\hat{\mathbf{x}})\,\hat{v}_l(u) - v_r(u')\big),

其中xR6\mathbf{x}\in\mathbb{R}^6为增量李代数扭量,vr,Nrv_r, \mathcal{N}_r为预测的顶点/法向图,uu'为投影关联的像素,ψ\psi为鲁棒的Huber惩罚函数。高斯-牛顿法方程(6×66\times6,Cholesky分解)最多迭代10次。与KinectFusion的局部模型不同,相对完整、高质量的多物体预测进行跟踪,还使得系统能够屏蔽已被解释的像素,从而使物体搜索只关注尚未被描述的区域(“主动搜索”)。

Em=Zi,ojlog(Zi,oj1Twi1Twoj)Σi,oj+Zi,i+1log(Zi,i+11Twi1Twi+1)Σi,i+1,E_m = \sum_{Z_{i,o_j}} \big\lVert \log\big(Z_{i,o_j}^{-1} \cdot T_{wi}^{-1} \cdot T_{wo_j}\big) \big\rVert_{\Sigma_{i,o_j}} + \sum_{Z_{i,i+1}} \big\lVert \log\big(Z_{i,i+1}^{-1} \cdot T_{wi}^{-1} \cdot T_{wi+1}\big) \big\rVert_{\Sigma_{i,i+1}},

其中xΣ:=xΣ1x\lVert\mathbf{x}\rVert_\Sigma := \mathbf{x}^\top\Sigma^{-1}\mathbf{x}为马氏距离,log()\log(\cdot)SE(3)\mathbf{SE}(3)的对数映射,逆协方差由ICP的Hessian矩阵近似:Σ1=JJ\Sigma^{-1} = J^\top J。使用Levenberg-Marquardt算法和稀疏Cholesky求解器(g2o)求解。

实验结果

对SLAM的意义

SLAM++开辟了物体级SLAM这一研究方向,证明了由语义实体构建的地图可以比原始几何地图紧凑几个数量级,同时仍能在物体级别实现回环检测、重定位以及场景理解。它的主要局限——依赖预先构建的已扫描实例数据库——恰恰是其后续研究谱系所去除的部分:Fusion++使用Mask R-CNN实时发现物体,MoreFusion对多物体的六维位姿进行推理,而NodeSLAM与DSP-SLAM则用学习到的形状先验取代网格模型。其核心洞见——语义实体比原始几何构成更强大的地图元素——在现代三维场景图系统中再次浮现。

相关条目