在读论文中,在实验部分一般都会出现大量的图表来辅助证明自己的结论,也会有一些相应的指标来评价算法的精度及稳定性等,在这里整理一下相关的东西,方便日后查看。
绝对轨迹误差(ATE:abosulte trajectory error):直接计算相机位姿的真实值与SLAM系统的估计值之间的差,程序首先根据位姿的时间戳将真实值和估计值进行对齐, 然后计算每对位姿之间的差值, 并最终以图表的形式输出, 该标准非常适合于评估视觉 SLAM 系统的性能。
相对位姿误差(RPE:relative pose error):用于计算相同两个时间戳上的位姿变化量的差, 同样, 在用时间戳对齐之后, 真实位姿和估计位姿均每隔一段相同时间计算位姿的变化量, 然后对该变化量做差, 以获得相对位姿误差, 该标准适合于估计系统的漂移。
均方根误差( RMSE:Root Mean Square Error): 是观测值与真值偏差的平方和与观测次数m比值的平方根。 是用来衡量观测值同真值之间的偏差。表达式为:
** 平均绝对误差(MAE:Mean Absolute Error )**: 是绝对误差的平均值,能更好地反映预测值误差的实际情况。表达式为:
标准差(SD: Standard Deviation ): 是方差的算数平方根.是用来衡量一组数自身的离散程度.表达式为:
对于此工具的理解:在slam算法中,用于画输出的轨迹,误差的比较等。
支持的有四种数据集格式:
'TUM' 轨迹文件
'KITTI' 位姿
'EuRoC MAV' (.csv groundtruth and TUM trajectory file)
ROS bagfile with geometry_msgs/PoseStamped, geometry_msgs/TransformStamped, geometry_msgs/PoseWithCovarianceStamped or nav_msgs/Odometry topics
具体每种数据集格式如何,查看官网吧。
官方地址:https://github.com/MichaelGrupp/evo
安装: 有两种方式,从命令行安装或者从源码安装,两种方式都很简单,一两句命令就搞定。
sudo apt install python-pip
pip install evo --upgrade --no-binary evo
执行次命令并且无任何问题,但是在之后利用工具画轨迹或者其他操作时却出现error
evo_traj:command not found
这个问题应该其他人也出现过,可能是pip的版本问题,但是我去官网下面看到的方法是重启一下电脑就ok,于是我也重启就ok了,就没有深究。
测试:从github上下载下来的evo文件夹里有一些示例,进入到test/data文件中,
1)绘制多条轨迹,例子:使用evo_traj绘制两个KITTI姿势文件和地面真实evo_traj
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz
绘制结果:
2)对轨迹进行度量:使用evo_ape (以KITTI_00_gt.txt为参考(事实))计算来自ORB-SLAM和S-PTAM的两个轨迹的绝对姿态误差,并绘制并将各个结果保存到.zip文件中以获取evo_res
第一条命令,画ORB-SLAM与参考轨迹的APE,并存入ORB.zip中。
mkdir results
evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz --save_results results/ORB.zip
第二条命令,画S-PTAM与参考轨迹的APE,并存入SPTAM.zip
evo_ape kitti KITTI_00_gt.txt KITTI_00_SPTAM.txt -va --plot --plot_mode xz --save_results results/SPTAM.zip
3)处理一个指标的多个结果: evo_res可用于比较来自指标的多个结果文件, 包括打印信息和统计信息(默认)
,绘制结果,将统计信息保存在表中。将上面产生的压缩文件生成图表和表格
evo_res results/*.zip -p --save_table results/table.csv
evo_traj euroc V102_groundtruth.csv --save_as_tum
evo_traj euroc V102_groundtruth.csv --save_as_bag
evo_traj euroc V102_groundtruth.csv --save_as_kitti
evo_traj tum fr2_desk_ORB.txt --ref=fr2_desk_groundtruth.txt -p --plot_mode=xyz
没有–save_as_euroc选项,因为EuRoC格式仅对EuRoC数据集的基本事实有意义
5)调整显示尺寸
evo_config set plot_figsize 5 4.5
evo_config reset 恢复默认设置
本博客参考: https://blog.csdn.net/KYJL888/article/details/89956551
另外,评价TUM数据集的另外两个评价工具:evaluate_ate.py evaluate_rpe.py
参考 https://blog.csdn.net/Darlingqiang/article/details/89059466
再附一个参考连接:目的是方便查看各数据集的格式: https://blog.csdn.net/Darlingqiang/article/details/102631102