PTAM

Klein & Murray 2007 · 论文

一句话总结 — 首次引入将SLAM拆分为并行的跟踪和建图线程这一范式,使实时的基于关键帧的光束法平差成为可能。

问题

MonoSLAM的EKF方法无法扩展到大规模地图:每一帧都要更新所有路标的稠密协方差矩阵,因此代价随地图规模迅速增长,且反复线性化会损害精度。光束法平差(BA)比滤波方法能产生远为精确的结果,但在2007年它被认为太慢,无法实时运行。Klein和Murray(ISMAR 2007,牛津大学)提出,跟踪手持相机和构建地图是可分离的两个问题:将它们解耦为两个线程,BA就可以在后台运行,而跟踪则以帧率运行。

方法与架构

跟踪线程(每帧运行)。 构建一个四层图像金字塔,并在每一层检测FAST角点。相机位姿以 4×44\times 4 矩阵 ECWE_{CW} 的形式存在于 SE(3)\mathrm{SE}(3) 中,通过指数映射以一个六维向量 μ\mu 左乘更新:

ECW=MECW=exp(μ)ECW.E_{CW}' = M\,E_{CW} = \exp(\mu)\,E_{CW}.

地图点通过一个经过标定的、带FOV畸变的相机模型进行投影;每个可见点的 8×88\times 8 源patch通过一个矩阵 AA(由源关键帧上单位像素位移反投影到patch平面得到)进行仿射变形,选择使 det(A)/4l\det(A)/4^l 最接近1的金字塔层级 ll 进行搜索。匹配采用圆形门限内FAST角点位置处的零均值SSD——完全不使用描述子。给定一组找到的patch (u^j v^j)(\hat{u}_j\ \hat{v}_j)^\top(噪声为 σj2=22l\sigma_j^2 = 2^{2l}),位姿更新通过10次重加权最小二乘迭代最小化一个鲁棒重投影目标函数:

μ=argminμjSObj(ejσj, σT),ej=(u^jv^j)CamProj(exp(μ)ECWpj),\mu' = \underset{\mu}{\operatorname{argmin}} \sum_{j \in S} \mathrm{Obj}\left( \frac{|\mathbf{e}_j|}{\sigma_j},\ \sigma_T \right), \qquad \mathbf{e}_j = \begin{pmatrix} \hat{u}_j \\ \hat{v}_j \end{pmatrix} - \mathrm{CamProj}\big(\exp(\mu)\,E_{CW}\,\mathbf{p}_j\big),

其中 Obj(,σT)\mathrm{Obj}(\cdot, \sigma_T) 是Tukey双权函数,σT\sigma_T 为基于中位数的尺度估计。跟踪分为由粗到精的两个阶段:先在大搜索半径内使用50个粗层级点,再在小搜索半径内使用多达1000个点;一个衰减速度运动模型预测先验位姿,跟踪质量会被持续监控,以确保质量差的帧不会进入地图(若完全失败,则由重定位器接管)。

建图线程(异步运行)。 地图通过用户辅助的两视图立体方式启动:在两个按键触发的视图之间跟踪1000个patch,用五点算法+RANSAC计算本质矩阵,进行三角化,假设10厘米基线来固定尺度,并将主导平面(通过RANSAC找到)对齐到 z=0z=0。只有当跟踪质量良好、已经过去至少20帧,且相机与已有关键帧的距离超过一个(随深度缩放的)最小值时,才会插入新的关键帧;新的地图点来自针对最近关键帧的极线搜索。该线程随后在关键帧位姿和地图点上运行BA:

{μ2..μN},{p1..pM}=argmin{μ},{p}i=1NjSiObj(ejiσji, σT)\{\mu_2 .. \mu_N\}, \{\mathbf{p}'_1 .. \mathbf{p}'_M\} = \underset{\{\mu\},\{\mathbf{p}\}}{\operatorname{argmin}} \sum_{i=1}^{N} \sum_{j \in S_i} \mathrm{Obj}\left( \frac{|\mathbf{e}_{ji}|}{\sigma_{ji}},\ \sigma_T \right)

——使用Levenberg–Marquardt方法结合标准的稀疏运动恢复结构技巧,代价随关键帧数量呈 O(N3)O(N^3) 增长。由于全局BA在探索过程中会造成停滞,一种局部BA只调整 XX = 最新关键帧及其4个最近邻,优化 ZZ = 它们能看到的所有地图点,并受到测量这些点的每一个关键帧 YY 的约束(代价大致为 O(NM)O(NM))。空闲时,该线程会改进数据关联:在旧关键帧中测量新特征,并给被Tukey标记为异常值的测量一次”第二次机会”,随后再决定是否删除。

实验结果

所有实验均在一台Intel Core 2 Duo 2.66 GHz的台式机上进行(手持实时操作):

对SLAM的意义

PTAM确立了几乎所有现代SLAM系统仍在遵循的前端/后端分离架构,并通过实验证明了关键帧光束法平差胜过滤波方法——这一结论后来被Strasdat等人的论文”Visual SLAM: Why Filter?”正式论证。关键帧、邻域上的局部BA、后台全局精化、跟踪质量门控:ORB-SLAM本质上就是在这一架构的基础上补充了自动初始化、回环检测和大规模地图管理而完成的系统。

相关条目