视觉SLAM基础:算法精度评价指标(ATE、RPE)
1. 前言
- 当我们需要评估一个SLAM/VO算法的表现时,可以从时耗、复杂度、精度多个角度切入,其中对精度的评价是我们最关注的,这个过程中我们不可避免会遇到两个精度指标ATE和RPE。这两个evaluation metrics最早是在TUM数据集benchmark中定义的,应用非常广泛。
- 介绍前,先对定义一下公式标注:
算法估计位姿:
真实位姿:
下标代表时间(或帧),这里我们假设估计位姿和真实位姿各帧时间已对齐,总帧数相同。
表示相隔时间time interval
2. RPE: relative pose error 相对位姿误差
相对位姿误差主要描述的是相隔固定时间差两帧位姿差的精度(相比真实位姿),相当于直接测量里程计的误差。
因此第帧的RPE定义如下:
已知总数与间隔的情况下,可以得到个RPE,然后我们可以用均方根误差RMSE统计这个误差,得到一个总体值:
其中代表取相对位姿误差中的平移部分translation。当然也有人不用RMSE,直接使用平均值、甚至中位数来描述相对误差情况。
需要注意的是,RPE包含了两部分的误差,分别是旋转误差和平移误差,通常使用平移误差进行评价已经足够,但是如果需要,旋转角的误差也可以使用相同的方法进行统计。
到这一步,我们基本可以从RMSE值的大小来评价算法的表现,然而实际情况中,我们发现对的选取有多种选择,为了能综合衡量算法表现,我们可以计算遍历所有的RMSE的平均值:
但这样新的问题又出现了,这样的计算复杂度非常高,很耗时间,因此TUM在自己给定的工具中,通过计算固定数量的RPE样本计算一个估计值作为最终结果。
3. ATE: absolute trajectory error 绝对轨迹误差
绝对轨迹误差是估计位姿和真实位姿的直接差值,可以非常直观地反应算法精度和轨迹全局一致性。需要注意的是,估计位姿和groundtruth通常不在同一坐标系中,因此我们需要先将两者对其:对于双目SLAM和RGB-D SLAM,尺度统一,因此我们需要通过最小二乘法计算一个从估计位姿到真实位姿的转换矩阵;对于单目相机,具有尺度不确定性,我们需要计算一个从估计位姿到真实位姿的相似转换矩阵。
因此第帧的ATE定义如下:
与RPE相似,建议使用RMSE统计ATE
当然,使用平均值、中位数等来反应ATE亦可,现在很多evaluation工具会将RMSE、Mean、Median都给出。
综上,我们需要注意的是,RPE误差包含了translation和rotation两部分的误差,而ATE只包含translation的误差(从二者的全称中也可以看出),二者具有强烈的相关性,却也不尽相同。我们仍需结合实际,选择合适的指标进行算法评价。
4. 工具:EVO
这里推荐一个方便全能的evaluation工具。这里贴出github链接,不再展开。
EVO:Python package for the evaluation of odometry and SLAM
参考
- Sturm, Jürgen, et al. “A benchmark for the evaluation of RGB-D SLAM systems.” 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE, 2012.