评估指标

如何评判一个SLAM系统比另一个”更好”?社区给出的答案是一对基于真值(来自动作捕捉、GPS/INS,或高精度测绘参考)计算的轨迹误差指标:ATE衡量全局精度,RPE衡量局部精度。这两者之所以都成为标准,是因为它们衡量的是不同类型的失败。

ATE:绝对轨迹误差(Absolute Trajectory Error)

ATE衡量整条轨迹的全局一致性。首先用一个单一的刚体变换 SS(通过最小二乘求得;对于单目系统,由于尺度不可观测,需用相似变换)将估计轨迹 {T^i}\{\hat{T}_i\} 与真值轨迹 {Ti}\{T_i^*\} 对齐。然后:

ATERMSE=1Ni=1NTiST^iF2\text{ATE}_{\text{RMSE}} = \sqrt{\frac{1}{N}\sum_{i=1}^{N} \left\| T_i^* - S\hat{T}_i \right\|_F^2}

在实践中,平移部分通常以米为单位的RMSE来报告。较高的ATE表明存在累积漂移,或者存在一次错误的回环检测把整条轨迹在全局上扭曲了。

RPE:相对位姿误差(Relative Pose Error)

RPE衡量局部精度——即每单位时间或每单位距离上的漂移。对于跨越间隔 δ\delta 的相对运动,设 Qi=Ti1Ti+δQ_i = T_i^{-1} T_{i+\delta}(真值)、Q^i=T^i1T^i+δ\hat{Q}_i = \hat{T}_i^{-1} \hat{T}_{i+\delta}(估计值):

RPEi=Qi1Q^i\text{RPE}_i = Q_i^{-1} \hat{Q}_i

平移和旋转部分的RMSE会分别报告(例如,%平移误差和度/米)。KITTI的官方指标就是RPE的一种变体:在100-800米的子序列上取平均误差。

为什么两者都需要

一个局部跟踪出色但没有回环检测的视觉里程计系统,可能RPE很低但ATE很差;而一个使用了激进(偶尔出错)回环检测的系统则可能表现出相反的情况。ATE奖励全局地图的正确性;RPE则单独衡量里程计质量,对漂移发生在何处不敏感。在比较论文时,还要检查对齐方式的约定(SE(3)还是Sim(3))——经尺度对齐的单目数据与度量尺度的立体/VIO数据是不可比较的。

标准基准数据集

数据集传感器环境真值来源
KITTI Odometry双目+LiDAR+IMU室外驾驶GPS/INS
TUM RGB-DRGB-D+IMU室内手持动作捕捉
EuRoC MAV双目+IMU室内无人机动作捕捉

工具

事实上的标准评估工具是evo,它能读取常见的轨迹格式(TUM、KITTI、EuRoC、ROS bag),并以明确可控的对齐方式计算这两种指标:

evo_ape tum groundtruth.txt estimate.txt -a          # 使用SE(3)对齐的ATE
evo_ape tum groundtruth.txt estimate.txt -as         # ...Sim(3):同时对齐尺度(用于单目)
evo_rpe tum groundtruth.txt estimate.txt --delta 1 --delta_unit m   # 每米的RPE

在脚本中明确写出对齐方式的标志,才能保证你的数值可以与已发表的结果相比较。

阅读(或制作)结果表格时的陷阱

除了精度之外,严谨的评估还会报告运行时间、鲁棒性(多次运行中的跟踪失败率),以及——对于概率型估计器——一致性,这些是单纯的轨迹指标无法体现的。

对SLAM的意义

ATE和RPE是这个领域的通用货币:每一篇SLAM论文的结果表格都建立在它们之上,因此你必须准确了解它们究竟衡量了什么——以及掩盖了什么——才能批判性地阅读文献,或者证明自己的系统确实有效。它们同时也是日常的工程工具:RPE退化指向前端/里程计出了问题,而ATE退化但RPE稳定则指向回环检测或后端出了问题。

相关条目