对于一个系统来说,最重要的是如何衡量这个系统的精度,这里介绍了评价指标的意义,具体的evo代码参见其他人的博客。

评价指标

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

B.绝对轨迹误差(ATE)对于视觉SLAM系统,此外,估计轨迹的全局一致性是重要的数量。可以通过比较全局一致性来评估估计与地面之间的绝对距离真相轨迹。 因为两个轨迹都可以在任意坐标系,它们首先需要对齐。可以使用该方法以封闭形式实现Horn [46]的方程,找到了刚体变换S对应于映射最小二乘解的最小二乘解估计轨迹P1:n在地面真实轨迹上Q1:n。 给定这种变换,绝对轨迹误差在时间步长我可以计算为

与相对姿态误差类似,我们建议评估在所有时间指标上的均方根误差变换组件,即

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

请注意,此表达式的计算复杂度在轨迹长度上是二次方的 因此,我们建议通过固定数量的相对姿势样本。 我们的自动评估脚本允许精确的评估以及对a的近似给定样本数。相对姿态误差的示例在图6中给出。在这里,相对姿势误差已经评估了两个视觉测距法[44]。 从这里可以看出如图所示,RBM方法具有较低的漂移和较少的漂移
与GICP相比的异常值。

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

** 平均绝对误差(MAE:Mean Absolute Error )**: 是绝对误差的平均值,能更好地反映预测值误差的实际情况。表达式为:

另外,RPE也可用于评估通过平均所有可能的轨迹的全局误差时间间隔。请注意,RPE认为这两种翻译和旋转误差,而ATE仅考虑了翻译错误。结果,RPE总是稍微大于ATE(如果没有旋转则等于错误)。这在图7b中也可以看到,RPE和ATE是根据各种估算得出的RGB-D SLAM系统的轨迹。因此,RPE指标提供了一种结合旋转角度的优雅方法并将翻译错误合并为一个度量。然而,旋转误差通常也会表现为错误翻译,因此也间接地被ATE。从实际的角度来看,ATE具有直观的可视化,便于视觉检查。不过这两个指标密切相关:在我们所有的实验中我们从未遇到过使用RPE和ATE的情况。实际上,通常相对顺序独立于实际使用的措施。

与RPE相似,建议使用RMSE统计ATE,当然,使用平均值、中位数等来反应ATE亦可,现在很多evaluation工具会将RMSE、Mean、Median都给出。 综上,我们需要注意的是,RPE误差包含了translation和rotation两部分的误差,而ATE只包含translation的误差(从二者的全称中也可以看出),二者具有强烈的相关性,却也不尽相同。我们仍需结合实际,选择合适的指标进行算法评价。

ATE的叫法参考了文章中提到的TUM论文,APE也有自己实际的含义,比ATE多了rotation error。目前看来,ATE的评价指标更流行一些。不过就像这篇文章里说的,evo的脚本提供模式的选择。用-r参数,-r full 应该计算的就是ape; -r trans_part计算的就是ate;不添加默认为tran_part。我这么猜测的,试一下就知道,已试。evo_ape的默认模式是 -r trans_part,即计算的是ate。想要计算ape,可以使用 -r full

如果只是使用ATE RPE这些指标,无论什么工具,可以直接引用A benchmark for the evaluation of RGB-D SLAM systems.这篇,另外推荐另外一篇可以增加对误差评价理解的论文A Tutorial on Quantitative Trajectory Evaluation for Visual(-Inertial) Odometry

SSE(和方差、误差平方和):The sum of squares due to error
MSE(均方差、方差):Mean squared error
RMSE(均方根、标准差):Root mean squared error
R-square(确定系数):Coefficient of determination
Adjusted R-square:Degree-of-freedom adjusted coefficient of determination

参考https://blog.csdn.net/danmeng8068/article/details/80143306

APE

evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz

RPE

evo_rpe tum fr2_desk_groundtrutr2_desk_ORB.txt -va --plot --plot_mode xyz

使用evo_ape确定轨迹误差。

evo_ape euroc data.csv vins_result_no_loop.csv -va --plot --plot_mode xyz --save_results a.zip

对于带有回环检测的数据可能报错:[ERROR] found no matching timestamps between data.csv and vins_result_loop.csv with max. time diff 0.01 (s) and time offset 0.0 (s)。时间戳错误,解决方法,使用文本编辑器打开,将第一列中的“E+018”改为“E+009”。

最终的结果会保存在 result_vins.zip中:

{"std": 0.02860583962864544, "rmse": 0.08262275867937034, "sse": 6.969877177077047, "max": 0.15694899033138723, "min": 0.022182102135421995, "median": 0.07525605040255529, "mean": 0.07751274857034607}

evo还可以将两个结果放在一个图中,进行对比。参数中的两个zip文件就是刚刚前面生成的。

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

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
  • 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
  • 1
  • 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
  • 1


3)处理一个指标的多个结果: evo_res可用于比较来自指标的多个结果文件, 包括打印信息和统计信息(默认)
,绘制结果,将统计信息保存在表中。将上面产生的压缩文件生成图表和表格

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



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
  • 1
  • 2
  • 3

将*.csv格式转换为其它三种数据集格式。

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 恢复默认设置

  • 使用evo进行轨迹可视化(evo_traj

    轨迹可视化工具的调用格式如下:

    # evo_traj [数据格式] [traj_1] [traj_2] .. --ref=[ground_truth] -p -va
    # example:
    evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p -vas --plot_mode=xz
    
  • 1
  • 2
  • 3

在所有参数中,必要的参数只有数据集格式和需要可视化的轨迹文件,evo_traj可以同时可视化多个文件,并没有数量限制。

各可选参数作用如下:

--ref=[ground_truth]:该选项明确了轨迹可视化中所需使用的标称轨迹文件,使用该选项后,evo会以灰色虚线绘制标称轨迹; -vas:该选项表示将所有轨迹和标称轨迹在S E ( 3 ) SE(3)SE(3)上进行位姿对齐和尺度对齐(其中-a选项是位姿对齐,-s选项是尺度对其,两者可以单独开启,-v未发现有何作用); -p: 该选项表示开启绘图,否则我们只能在控制台看见结果,而不会得到有效的可视化结果。evo绘图默认是3D轨迹图,我们也可以向例子中一样进一步使用--plot_mode=xz命令其只绘制x z xzxz平面的二维图。本博客参考: 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

总之,evo是一个很不错的工具。

https://blog.csdn.net/weixin_38504276/article/details/103463758?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

参考:

1、使用evo评估VINS-MONO

具体参考:

https://zhuanlan.zhihu.com/p/105428199

https://ieeexplore.ieee.org/document/6385773

https://blog.csdn.net/weixin_38504276/article/details/103463758

针对于Vins-Mono中的评价工具evo中的评价参数的理解相关推荐

  1. Android中怎样在工具类中获取Context对象

    场景 Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context对象, 如果在编写 ...

  2. Winform中怎样在工具类中对窗体中多个控件进行操作(赋值)

    场景 需求是在窗体加载完成后掉用工具类的方法,工具类中获取窗体的多个控件对象进行赋值. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 ...

  3. ubuntu18.04安装SLAM评价工具evo

    参考:1. https://blog.csdn.net/haner27/article/details/116709470 2. https://blog.csdn.net/haner27/artic ...

  4. linux ubuntu安装 mono,在Ubuntu 18.04系统中安装Mono及基本使用Mono的方法

    本文介绍在Ubuntu 18.04操作系统中安装Mono及基本使用Mono的方法.Mono是一个基于ECMA/ISO标准开发和运行跨平台应用程序的平台,它是Microsoft .NET框架的免费开源实 ...

  5. .NET Core中的性能测试工具BenchmarkDotnet

    背景介绍 之前一篇博客中,我们讲解.NET Core中的CSV解析库,在文章的最后,作者使用了性能基准测试工具BenchmarkDotNet测试了2个不同CSV解析库的性能,本篇我们来详细介绍一下Be ...

  6. 视频主观质量评价工具:MSU Perceptual Video Quality tool

    MSU Perceptual Video Quality tool是莫斯科国立大学(Moscow State University)的Graphics and Media Lab制作的一款视频主观评价 ...

  7. 开源视频质量评价工具: Evalvid

    Evalvid是一个对在真实或模拟的网络里传输的视频进行质量评价的框架和工具集.除了底层网络的QoS参数的测量,如丢包率,延迟,抖动,Evalvid还提供标准的视频质量评价算法如PSNR和SSIM.它 ...

  8. 数据可视化 工具_卓越中心和数据可视化工具2020中的组织中的数据聚合

    数据可视化 工具 人工智能 (ARTIFICIAL INTELLIGENCE) Data consumption is rising steadily in 2020 with estimates s ...

  9. 【JY】ETABS中剪力墙的弹塑性行为模拟和评价

    剪力墙根据其受力特点,可以分为由弯曲行为控制的细长墙,和由剪切行为控制的短方墙.根据美标ASCE 41的建议,若墙高度与其长度之比大于3可视为细长墙(slender),该比值小于1.5可视为短方墙(s ...

  10. SLAM之小觅相机跑开源方案(ORB_SLAM2,VINS MONO,VINS FUSION,RTAB-Map)

    传感器: 小觅相机标准版 开源SLAM方案: ORB_SLAM2,VINS MONO,VINS FUSION,RTAB-Map 测试地点: 室内大厅(光线不均)/ 露天阳台 实现形式: 小觅相机 / ...

最新文章

  1. java 头尾 队列_超详细的java集合讲解
  2. java文件锁定_如何使用java锁定文件(如果可能的话)
  3. Opencv 实现图像的离散傅里叶变换(DFT)、卷积运算(相关滤波)
  4. 天大和武大计算机考研,985大学排名出炉,天大和武大并列第10,榜首是哪所?...
  5. socket连接时间太长受什么原因影响?_真全粮多功能酿酒设备-酿酒发酵前期为什么要通风处理?...
  6. Leet Code OJ 171. Excel Sheet Column Number [Difficulty: Easy]
  7. 计算机教师资格考试试题,全国教师资格考试信息技术练习题(二)
  8. 服装业需要什么样的信息化?
  9. C++并发与多线程(一)线程传参
  10. Dockerfile best practices
  11. 用python实现pdf转word_Python实现PDF转Word
  12. DOM DEM DLG DRG之间的区别
  13. uCos中的信号量机制
  14. 通过示例理解数据库相关概念(五、无损连接,无损分解,依赖保持性等)
  15. macOS如何格式化移动硬盘和U盘
  16. 【economic】程序员外包平台
  17. 2cm有多长实物图_两厘米(2cm有多长实物图)
  18. 人员玩手机离岗识别检测系统 yolov5
  19. RoundProgressBar(圆形进度条)
  20. android 锯齿

热门文章

  1. 学生每日计划表_小学生每日学习计划安排表
  2. 第45章 DCMI—OV2640摄像头—零死角玩转STM32-F429系列
  3. 三泰串口卡linux驱动,工业多串口卡.pdf
  4. /usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录
  5. 梦幻手游显示连接服务器,?梦幻西游手游无法连接服务器怎么办 无法访问服务器解决方法?...
  6. IOI2020国家集训队集中培训通知及如何进入国家集训队
  7. stata进行无交互效应模型选择—混合模型,个体效应固定,时间效应固定,双向固定和随机效应
  8. 基于GARCH模型的股市研究与危机预警——R语言实现
  9. 网站使用云服务器有什么好处?
  10. matlab怎么增加图例,将图例添加到图 - MATLAB Simulink - MathWorks 中国