评价SLAM算法的一些指标及评价工具evo的使用方法

写在前面的话

在读论文中,在实验部分一般都会出现大量的图表来辅助证明自己的结论,也会有一些相应的指标来评价算法的精度及稳定性等,在这里整理一下相关的东西,方便日后查看。

评价指标

绝对轨迹误差(ATE:abosulte trajectory error):直接计算相机位姿的真实值与SLAM系统的估计值之间的差,程序首先根据位姿的时间戳将真实值和估计值进行对齐, 然后计算每对位姿之间的差值, 并最终以图表的形式输出, 该标准非常适合于评估视觉 SLAM 系统的性能。

相对位姿误差(RPE:relative pose error):用于计算相同两个时间戳上的位姿变化量的差, 同样, 在用时间戳对齐之后, 真实位姿和估计位姿均每隔一段相同时间计算位姿的变化量, 然后对该变化量做差, 以获得相对位姿误差, 该标准适合于估计系统的漂移。

均方根误差( RMSE:Root Mean Square Error): 是观测值与真值偏差的平方和与观测次数m比值的平方根。 是用来衡量观测值同真值之间的偏差。表达式为:
在这里插入图片描述

** 平均绝对误差(MAE:Mean Absolute Error )**: 是绝对误差的平均值,能更好地反映预测值误差的实际情况。表达式为:
在这里插入图片描述

标准差(SD: Standard Deviation ): 是方差的算数平方根.是用来衡量一组数自身的离散程度.表达式为:
在这里插入图片描述

evo工具

对于此工具的理解:在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

绘制结果:
评价SLAM算法的一些指标及评价工具evo的使用方法_第1张图片
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

评价SLAM算法的一些指标及评价工具evo的使用方法_第2张图片
第二条命令,画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

评价SLAM算法的一些指标及评价工具evo的使用方法_第3张图片
3)处理一个指标的多个结果: evo_res可用于比较来自指标的多个结果文件, 包括打印信息和统计信息(默认)
,绘制结果,将统计信息保存在表中。将上面产生的压缩文件生成图表和表格

evo_res results/*.zip -p --save_table results/table.csv

评价SLAM算法的一些指标及评价工具evo的使用方法_第4张图片
评价SLAM算法的一些指标及评价工具evo的使用方法_第5张图片

评价SLAM算法的一些指标及评价工具evo的使用方法_第6张图片
4)数据集格式转换

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

将*.csv格式转换为其它三种数据集格式。
评价SLAM算法的一些指标及评价工具evo的使用方法_第7张图片

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

你可能感兴趣的:(评价SLAM算法的一些指标及评价工具evo的使用方法)