evo评测VINS

您所在的位置:网站首页 台风定位精度指标 evo评测VINS

evo评测VINS

2024-07-05 06:22| 来源: 网络整理| 查看: 265

上篇博文已通过代码修改、数据格式转换、数据测试实现使用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的位姿优化 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3