evo评测VINS-MONO---指标解析、算法精度分析(数据集)

上篇博文已通过代码修改、数据格式转换、数据测试实现使用evo评测VINS-MONO,该篇将详细介绍evo评测出的数据指标,以及VINS-MONO在数据集下的精度情况。

EVO评价指标介绍

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

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

均方根误差( RMSE:Root Mean Square Error): 是观测值与真值偏差的平方和与观测次数m比值的平方根。 是用来衡量观测值同真值之间的偏差。表达式为:
在这里插入图片描述
平均绝对误差MAE:Mean Absolute Error ): 是绝对误差的平均值,能更好地反映预测值误差的实际情况。表达式为:
在这里插入图片描述
标准差SD: Standard Deviation ): 是方差的算数平方根.是用来衡量一组数自身的离散程度.表达式为:
在这里插入图片描述
SSE(和方差、误差平方和):The sum of squares due to error ,该统计 参数计算的是拟合 数据和原始数据对应点的误差的平方和,计算公式如下:
在这里插入图片描述
SSE越接近于0,说明模型选择和拟合更好,数据预测也越成功。

MSE(均方差) Mean squared error :该统计参数是预测数据和原始数据对应点误差的平方和的均值,也就是SSE/n,和SSE没有太大的区别,计算公式如下:
在这里插入图片描述
**STD(标准差) Standard Deviation:**一种量度数据分布的分散程度之标准,用以衡量数据值偏离算术平均值的程度。标准偏差越小,这些值偏离平均值就越少,反之亦然。
在这里插入图片描述

精度分析

测试数据集:Euroc数据集MH_01_easy.bag
上篇博文给出了该数据集VINS-MONO算法noloop和loop下的绝对位姿误差:

noloop:

evo_ape euroc data.csv vins_result_no_loop.csv -va --plot --plot_mode xyz --save_results a.zip
APE w.r.t. translation part (m)
(with SE(3) Umeyama alignment)

       max	0.349640
      mean	0.144082
    median	0.140714
       min	0.034372
      rmse	0.154602
       sse	43.429475
       std	0.056053

在这里插入图片描述loop:

evo_ape euroc data.csv vins_result_loop.txt -va --plot --plot_mode xyz --save_results b.zip
APE w.r.t. translation part (m)
(with SE(3) Umeyama alignment)

       max	0.130568
      mean	0.055452
    median	0.052395
       min	0.003648
      rmse	0.061941
       sse	4.066875
       std	0.027600

在这里插入图片描述将两个结果放在一个图中,进行对比

evo_res a.zip b.zip -p --save_table table.csv

在这里插入图片描述通过对比图可看出,回环后各项精度指标大大增加,不回环平均位姿精度为14.4cm,回环平均位姿精度为5.5cm,精度大大提高,并且根据std,rmse等指标,数据稳定性鲁棒性更好。

下面将测试开启地图匹配后的定位效果测评。

地图匹配:
重载地图(load_previous_pose_graph: 1)
catkin_make

程序运行后,会先加载地图的位姿图信息至vins_result_loop.txt,故先去除加载的位姿图信息,再进行evo评测。

查看轨迹:

evo_traj tum vins_result_loop_map.txt -p --plot_mode=xyz
name:	vins_result_loop_map
infos:	1057 poses, 80.345m path length, 181.200s duration

轨迹总长度80.345米,用时181.200s

精度测试:

evo_ape euroc data.csv vins_result_loop_map.txt -va --plot --plot_mode xyz --save_results c.zip
APE w.r.t. translation part (m)
(with SE(3) Umeyama alignment)

       max	0.141669
      mean	0.055870
    median	0.051059
       min	0.005496
      rmse	0.062941
       sse	4.163599
       std	0.028984

在这里插入图片描述将地图匹配后的回环定位结果与之前回环结果相比:

evo_res b.zip c.zip -p --save_table table1.csv
APE w.r.t. translation part (m)
(with SE(3) Umeyama alignment)


                               rmse       mean     median        std  \
vins_result_loop.txt      0.0619409  0.0554517  0.0523953  0.0276005   
vins_result_loop_map.txt  0.0629409  0.0558704  0.0510591  0.0289838   

                                 min       max      sse  
vins_result_loop.txt      0.00364827  0.130568  4.06688  
vins_result_loop_map.txt  0.00549563  0.141669   4.1636  

在这里插入图片描述从以上对比结果可看出:
位姿图重载后,定位精度较无地图匹配后的各项精度指标并没有大幅度提升,基本持平,反而一些指标还不如无地图匹配的定位效果好。
个人分析,出现这个情况的原因,可能是,重载的这个位姿图精度并不高,导致基于这个地图的定位匹配反而加大了定位误差。

关于数据集Euroc下的MH_01_easy.bag测试VINS-MONO的定位精度指标分析如上,本来想着多测试几个数据集,但奈何数据包太大,下载测试均有些浪费时间,另外测试数据集也只是为了实际数据测试打基础,所以,以下引用其他博主文章中的数据https://rupingcen.blog.csdn.net/article/details/110485772?spm=1001.2014.3001.5506,仅为了展示说明:

定位精度:
在这里插入图片描述我的MH_01_easy.bag测试下的数据为:0.154602 0.0619409
位姿估计时间:0.170140845 0.171590909
数据会受到电脑性能等因素影响有所差异,但差别不大,上述数据可供参考。

下图为VINS-Mono在EUROC数据集上开启回环模式下的轨迹图:
在这里插入图片描述计算时间:
在跟踪时间上 VISN-Mono 把特征点跟踪和位姿求解分成了两个ROS节点运行,其在整个EUROC数据集上的平均跟踪时间为0.01s(10 ms), 但位姿估计的时间确有36ms, 详细的数据见下表,因此也可以在时间上优化VINS-Mono的位姿优化
在这里插入图片描述

  • 7
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值