单目下运行ORB-SLAM2并使用evo工具评估TUM/KITTI/EuRoC数据集
1 算法评价指标
当评估一个SLAM/算法的表现时,可从时耗、复杂度、精度多个角度切入。其中对精度的评价是可以使用两个精度指标ATE和RPE。
这两个evaluation metrics最早是在TUM数据集benchmark中定义的,应用非常广泛。
定义一下公式标注:
- 算法估计位姿: P 1 , . . . , P n ∈ S E ( 3 ) P_1,...,P_n \in SE(3) P1,...,Pn∈SE(3)
- 真实位姿: Q 1 , . . . , Q n ∈ S E ( 3 ) Q_1,...,Q_n \in SE(3) Q1,...,Qn∈SE(3)
- 下标代表时间 t t t(或帧),假设估计位姿和真实位姿各帧时间已对齐,总帧数相同。
- 相隔时间time interval: Δ \Delta Δ
(1)系统性能评估-绝对轨迹误差(ATE)
**绝对轨迹误差(absolute trajectory error)**直接计算相机位姿的真实值与SLAM系统的估计值之间的差。
程序首先根据位姿的时间戳将真实值和估计值进行对齐, 然后计算每对位姿之间的差值, 并最终以图表的形式输出, 该标准非常适合于评估视觉 SLAM 系统的性能。
绝对轨迹误差是估计位姿和真实位姿的直接差值,可以非常直观地反应算法精度和轨迹全局一致性。
估计位姿和groundtruth通常不在同一坐标系中,因此我们需要先将两者对其尺度统一。
- 对于双目SLAM和RGB-D SLAM:
通过最小二乘法计算一个从估计位姿到真实位姿的转换矩阵 S ∈ S E ( 3 ) \text{S}\in SE(3) S∈SE(3);
- 对于单目SLAM:
具有尺度不确定性,我们需要计算一个从估计位姿到真实位姿的相似转换矩阵 S ∈ S i m ( 3 ) \text{S}\in Sim(3) S∈Sim(3)。
因此第 i i i帧的ATE定义如下:
F i : = Q i − 1 S P i F_i:=Q_i^{-1}SP_i Fi:=Qi−1SPi
与RPE相似,建议使用RMSE统计ATE
RMSE ( F 1 : n , Δ ) :