轨迹误差评估指标[APE/RPE]和EVO

news2025/2/25 22:14:04

轨迹误差评估指标[APE/RPE]和EVO

  • 1. ATE/APE
  • 2. RPE
  • 3. EVO
    • 3.1 评估指标
    • 3.2 使用
      • 3.2.1 轨迹可视化
      • 3.2.2 APE
      • 3.2.3 RPE

Reference:

  1. 高翔,张涛 《视觉SLAM十四讲》
  2. 视觉SLAM基础:算法精度评价指标(ATE、RPE)

在实际工程中,我们经常需要评估一个算法的估计轨迹与真实轨迹的差异来评价算法的精度。真实轨迹往往通过某些更高精度的系统获得,而估计轨迹则是由待评价的算法计算得到的。考虑一条估计轨迹 T e s t i , i T_{esti,i} Testi,i 和真实轨迹 T g t , i T_{gt,i} Tgt,i,其中 i = 1 , ⋅ ⋅ ⋅ , N i=1,\cdot\cdot\cdot,N i=1,,N,那么我们可以定义一些误差指标来描述它们之间的差别。

1. ATE/APE

《视觉SLAM十四讲》上的命名感觉跟 EVO 稍微有一点点区别,比如绝对轨迹误差(Absolute Trajectory Error, ATE)
A T E a l l = 1 N ∑ i = 1 N ∥ log ⁡ ( T g t , i − 1 T esti  , i ) ∨ ∥ 2 2 , \mathrm{ATE}_{\mathrm{all}}=\sqrt{\frac{1}{N} \sum_{i=1}^N\left\|\log \left(T_{\mathrm{gt}, i}^{-1} T_{\text {esti }, i}\right)^{\vee}\right\|_2^2}, ATEall=N1i=1N log(Tgt,i1Testi ,i) 22 ,这玩意儿应该就是 EVO 中的 绝对位姿误差(Absolute Pose Error, APE),后面这个概念统称 APE。

这个公式实际上是每个位姿李代数的均方根误差(Root-Mean-Squared Error, RMSE)。这种误差可以刻画两条轨迹的旋转和平移误差。同时,也有的地方仅考虑平移误差,从而可以定义绝对平移误差(Absolute Translational Error, ATE)
A T E trans  = 1 N ∑ i = 1 N ∥ trans ⁡ ( T g t , i − 1 T est  , i ) ∥ 2 2 \mathrm{ATE}_{\text {trans }}=\sqrt{\frac{1}{N} \sum_{i=1}^N\left\|\operatorname{trans}\left(\boldsymbol{T}_{\mathrm{gt}, i}^{-1} \boldsymbol{T}_{\text {est }, i}\right)\right\|_2^2} ATEtrans =N1i=1N trans(Tgt,i1Test ,i) 22 其中 trans 表示取括号内部变量的平移部分。因为从整条轨迹上看,旋转出现误差后,随后的轨迹在瓶以上也会出现误差,所以两种指标在实际中都适用。

2. RPE

RPE 定义的是相对的误差。例如,考虑 i i i 时刻到 i + Δ t i+\Delta t i+Δt 时刻的运动,那么相对位姿误差(Relative Pose Error, RPE)可定义为:
R P E all  = 1 N − Δ t ∑ i = 1 N − Δ t ∥ log ⁡ ( ( T g t , i − 1 T g t , i + Δ t ) ) − 1 ( T esti  , i − 1 T esti  , i + Δ t ) ) ∨ ∥ 2 2 , \mathrm{RPE}_{\text {all }}=\sqrt{\left.\frac{1}{N-\Delta t} \sum_{i=1}^{N-\Delta t} \| \log \left(\left(T_{\mathrm{gt}, i}^{-1} T_{\mathrm{gt}, i+\Delta t}\right)\right)^{-1}\left(T_{\text {esti }, i}^{-1} T_{\text {esti }, i+\Delta t}\right)\right)^{\vee} \|_2^2,} RPEall =NΔt1i=1NΔtlog((Tgt,i1Tgt,i+Δt))1(Testi ,i1Testi ,i+Δt))22, 同样地,也可只取平移部分:
R P E trans  = 1 N − Δ t ∑ i = 1 N − Δ t ∥ trans ⁡ ( ( T g t , i − 1 T g t , i + Δ t ) ) − 1 ( T esti  , i − 1 T esti  , i + Δ t ) ) ∥ 2 2 \mathrm{RPE}_{\text {trans }}=\sqrt{\left.\frac{1}{N-\Delta t} \sum_{i=1}^{N-\Delta t} \| \operatorname{trans}\left(\left(\boldsymbol{T}_{\mathrm{gt}, i}^{-1} \boldsymbol{T}_{\mathrm{gt}, i+\Delta t}\right)\right)^{-1}\left(T_{\text {esti }, i}^{-1} T_{\text {esti }, i+\Delta t}\right)\right) \|_2^2} RPEtrans =NΔt1i=1NΔttrans((Tgt,i1Tgt,i+Δt))1(Testi ,i1Testi ,i+Δt))22

3. EVO

使用示例如下:

evo_ape kitti ground_truth.txt laser_odom.txt -r full --plot --plot_mode xyz
evo_rpe kitti ground_truth.txt laser_odom.txt -r trans_part --delta 100 --plot --plot_mode xyz

evo_ape 的默认形式是 -r trans_part,即计算的是这里的 ATE,想要计算 APE,可以使用 -r full。

3.1 评估指标

  • max:表示最大误差;
  • mean:平均误差;
  • median:误差中位数;
  • min:最小误差;
  • rmse:均方根误差;
  • sse:和方差、误差平方和;
  • std:标准差

3.2 使用

可以先使用 EVO 仓库中自带的数据尝试

3.2.1 轨迹可视化

cd test/data
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz

3.2.2 APE

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

3.2.3 RPE

evo_rpe tum fr2_desk_groundtruth.txt fr2_desk_ORB.txt -va --plot --plot_mode xyz

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/347641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

迁移案例实操:MySQL迁移到DM8由于有248张表存在datetime字段类型,使用dts迁移到达梦报不支持数据类型【附数据对比工具】

本文主要记录MySQL数据迁移到DM8上遇到MySQL源端表存在datetime数据类型时,并且包含datetime数据类型的表达上百张的的情况下,如何完成数据迁移的完整步骤。 1. 解决方法 将MySQL源端表的是datetime数据类型的字段修改为varchar(30)。 2. 处理步骤 &a…

JVM内存结构,Java内存模型,Java对象模型

一.整体方向JVM内存结构是和java虚拟机的运行时区域有关。Java内存模型和java并发编程有关。java对象模型和java对象在虚拟机中的表现形式有关。1.JVM内存结构堆:通过new或者其他指令创建的实例对象,会被垃圾回收。动态分配。虚拟机栈:基本数…

分布式之Paxos共识算法分析

写在前面 分布式共识是分布式系统中的重要内容,本文来一起看下,一种历史悠久(1998由兰伯特提出,并助其获得2003年图灵奖)的实现分布式共识的算法Paxos。Paxos主要分为两部分,Basic Paxos和Multi-Paxos,其中…

Web自动化测试——selenium的使用

⭐️前言⭐️ 本篇文章就进入了自动化测试的章节了,如果作为一名测试开发人员,非常需要掌握自动化测试的能力,因为它不仅能减少人力的消耗,还能提升测试的效率。 🍉欢迎点赞 👍 收藏 ⭐留言评论 &#x1f…

Python文件的操作处理,一看就会

在读取一个文件的内容之前,需要先打开这个文件。在Python程序中可以通过内置函数open()来打开一个文件程序中,并用相关的方法读或写文件文件中的内容以供程序的处理和使用,同时可以将文件看作Python中的一种数据类型。 open(filename, mode‘…

代码随想录 NO43 | Leetcode_139.单词拆分 1.关于多重背包,你该了解这些! 2. 背包问题总结篇!

leetcode139.单词拆分 多重背包 背包问题总结1. 多重背包2.背包问题简单总结2.1 背包递推公式2.2 遍历顺序2.2.1 01背包2.2.2 完全背包139.单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:…

数据分析思维(七)|漏斗思维

漏斗思维 1、概念 漏斗思维的概念比较简单,所谓的漏斗指的就是层层递减的结构,最终组成一个漏斗样式的模型,而递减的状态是多种业务/产品发展的常态,比如一个线下服装门店,进店的人很多(第一层&#xff09…

电子科技大学操作系统期末复习笔记(三):存储器管理

目录 前言 存储器管理 概述 存储管理 存储系统的结构 程序的诞生 空间分类 地址映射 程序链接的方式 静态链接 装入时动态链接 运行时动态链接 程序装入的方式 程序装入的两类三种方法 绝对装入 静态重定位 动态重定位√ 关键点 存储器管理:连续…

C++ 浅谈之二叉搜索树

C 浅谈之二叉搜索树 HELLO,各位博友好,我是阿呆 🙈🙈🙈 这里是 C 浅谈系列,收录在专栏 C 语言中 😜😜😜 本系列阿呆将记录一些 C 语言重要的语法特性 🏃&a…

中小学智慧校园电子班牌系统源码 Saas云平台模式

智慧电子班牌区别于传统电子班牌,智慧校园电子班牌系统更加注重老师和学生的沟通交流和及时数据交互。学校为每个教室配置一台智能电子班牌,一般安装于教室门口,用来实时显示学校通知、班级通知,可设置集中分布式管理,…

Keepalived与HaProxy的协调合作原理分析

Keepalived与HaProxy的协调合作原理分析keepalived与haproxy合作场景更好的理解方式协调合作中考虑的问题一、Keepalived以TCP/IP模型角度来分析:二、HaProxy总结:协调合作中考虑的问题的答案虚拟ip:虚拟IP技术,就是一个未分配给客…

论文笔记:Vision Transformers for Dense Prediction

中文标题: 密集预测的视觉Transformers 创新点 DPT是一种密集预测架构,它基于编码器-解码器的设计,利用一个Transformer作为编码器的基本模块。具体来说,我们使用最近提出的ViT作为主干架构。我们将ViT提供的tokens表示重新组合成不同分辨率…

【人脸识别】Partial-FC:让你在一台机器上训练1000万个id人脸数据集成为可能!

论文题目:”Killing Two Birds with One Stone: Efficient and Robust Training of Face Recognition CNNs by Partial FC“ -CVPR 2022 代码地址:https://arxiv.org/pdf/2203.15565.pdf 代码地址:https://github.com/deepinsight/insightfac…

Maxwell简介、部署、原理和使用介绍

Maxwell简介、部署、原理和使用介绍 1.Maxwell概述简介 1-1.Maxwell简介 ​ Maxwell是由美国Zendesk公司开源,使用Java编写的MySQL变更数据抓取软件。他会实时监控Mysql数据库的数据变更操作(包括insert、update、delete),并将变…

【DockerCE】Docker-CE 23.0.1正式版发布

很意外啊!Docker社区版竟然直接从20.xx.xx版本,升级到23.xx.xx版本了。官网地址(For RHEL/CentOS 7.9):https://download.docker.com/linux/centos/7/x86_64/stable/Packages/23.0.1版本官方安装包如下:# l…

给初级开发人员的建议

#初学者#生产率#代码新手#学习在我超过 15 年的开发生涯中,我学到了一些可以显着提高我的效率的东西。在这篇文章中,我将与您分享这些经验教训。结构:基础建议——以下内容的重要背景和动机技术咨询——主菜推荐读物——指向非常适合入门的高…

30-Golang中的排序和查找

排序和查找排序的基本介绍交换式排序法交换式排序法-冒泡排序查找顺序查找二分查找排序的基本介绍 排序是将一组数据,依指定的顺序进行排列的过程 排序的分类: 1.内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换…

20N65-ASEMI高压MOS管20N65

编辑-Z 20N65在ITO-220AB封装里的静态漏极源导通电阻(RDS(ON))为0.42Ω,是一款N沟道高压MOS管。20N65的最大脉冲正向电流ISM为80A,零栅极电压漏极电流(IDSS)为10uA,其工作时耐温度范围为-55~150摄氏度。20N65功耗&…

Spring Boot最核心的27个注解,你了解多少?

https://blog.csdn.net/ManuMAX/article/details/129017443 导读 Spring Boot方式的项目开发已经逐步成为Java应用开发领域的主流框架,它不仅可以方便地创建生产级的Spring应用程序,还能轻松地通过一些注解配置与目前比较火热的微服务框架SpringCloud集成…

前端学习第一阶段——第五章CSS(下)

5-9 浮动 08-浮动导读 09-传统网页布局三种方式 10-为什么需要浮动 11-什么是浮动 12-浮动特性-脱标 13-浮动特性-浮动元素一行显示 14-浮动特性-浮动元素具有行内块特性 15-浮动元素经常搭配标准流的父元素 16-浮动布局练习1 <!DOCTYPE html> <html lang"en&quo…