# 在学习视觉slam过程中,需要对数据集合进行预处理和对slam或者跟踪结果进行评价,TUM提供一组这样的工具,为了自己以后方便查找,于是把它记录下来

一、RGBD_Benchmark工具下载链接:Download here

下载链接下有如下python脚本,可供使用

       1.  add_pointclouds_to_bagfile.py

       2. associate.py

       3. evaluate_ate.py

      4. evaluate_rpe.py

      5. generate_pointcloud.py

      6. generate_registered_pointcloud.py

      7. plot_trajectory_into_image.py

二、RGBD_Benchmark工具使用方法(部分,后续用到再做完善)

1. associate.py

通过timestamp(时间戳)生成rgb和depth的关联文件,命令如下:

 python associate.py rgb.txt depth.txt > associations.txt

2. 评价脚本

  在估计了相机轨迹并将其保存到文件后,我们需要通过将其与地面实况进行比较来评估估计轨迹中的误差。 有不同的误差指标。

两种突出的方法是绝对轨迹误差(ATE)相对姿态误差(RPE)

ATE适合评估视觉SLAM系统的性能。 相比之下,RPE适合评估视觉里程计的漂移量,例如每秒的漂移量。

2.1 evaluate_ate.py

绝对轨迹误差脚本直接测量真实轨迹估计轨迹的点之间的差异。

作为预处理步骤,我们使用时间戳将估计的姿势与地面真实姿势相关联。 基于此关联,我们使用奇异值分解对齐真实轨迹和估计轨迹

最后,我们计算每对姿势之间的差异,并输出这些差异的均值/中值/标准差

此外,脚本还可以将两个轨迹绘制到png或pdf文件,这样一来可以更加直观的看到差异。

接下来,我们分别看一下相应的脚本执行命令

(注:需要将evaluate_ate.py、groundtruth.txt、CameraTrajectory.txt、associate.py放在同一位置)

(1)仅输出RMSE/cm误差,执行如下命令:

 python evaluate_ate.py groundtruth.txt CameraTrajectory.txt

(2)输出真实轨迹和预测轨迹以及误差,并直观显示,执行如下命令:

 python evaluate_ate.py groundtruth.txt CameraTrajectory.txt --plot result.png

(3)输出所有误差,包含平均值,中值等, 执行如下命令:

 python evaluate_ate.py groundtruth.txt CameraTrajectory.txt --verbose

2.1 evaluate_pre.py

       为了计算相对姿势误差,需要使用脚本''evaluate_rpe.py''。此脚本计算时间戳对之间相对运动中的误差。
       
       默认情况下,该脚本计算估计轨迹文件中所有时间戳对之间的错误。
       
       由于估计轨迹中的时间戳对的数量在轨迹的长度上是二次的,因此将该集合下采样为固定数量(-max_pairs)是有意义的。
 
       或者,可以选择使用固定窗口大小(-fixed_delta)。 在这种情况下,估计轨迹中的每个姿势根据窗口大小(-δ)和单位(-delta_unit)与稍后的姿势相关联。
 
       该评估技术可用于估计漂移量。
 

TUM数据集rgbd_benchmark工具的使用方法的更多相关文章

  1. ORB-SLAM2的编译运行以及TUM数据集测试

    ORB-SLAM2的编译运行以及TUM数据集测试 徐大徐 2018.02.06 17:04 字数 1838 阅读 2167评论 0喜欢 2 近段时间一直在学习高翔博士的<视觉SLAM十四讲> ...

  2. 【百度地图API】手机浏览器抓包工具及其使用方法

    原文:[百度地图API]手机浏览器抓包工具及其使用方法 摘要:为了测试地图API在手机浏览器上的性能,需要给手机浏览器设置代理.通过代理,我们可以在PC上获取到抓包数据.进而对性能做进一步分析. -- ...

  3. 将TUM数据集的RGB-D数据集转化为klg格式

    1.在github上下载代码png_to_klg git clone https://github.com/HTLife/png_to_klg 2.将png_to_klg目录下的associate.p ...

  4. PDF如何添加水印,PDF添加水印工具的使用方法

    PDF文件在编辑修改的时候是需要借助工具才可以编辑,PDF文件不像普通的文件可以直接打开编辑,PDF编辑工具是PDF文件进行编辑的重要工具,就以添加水印为例,能够在PDF中添加水印的工具有哪些呢?要怎 ...

  5. 2.5 定义FTP工具的各种方法

    用class定义ftp工具的各种方法 import os,sys from ftplib import FTP from mimetypes import guess_type,add_type fr ...

  6. matlab calibration toolbox -- matlab标定工具的使用方法--去畸变和双目校正

    matlab calibration toolbox -- matlab标定工具的使用方法--去畸变和双目校正 2015-04-06 22:45 5407人阅读 评论(2) 收藏 举报  分类: 机器 ...

  7. Windows自带的端口转发工具netsh使用方法_DOS/BAT

    Windows自带的端口转发工具netsh使用方法_DOS/BAT   作者:用户 来源:互联网 时间:2017-02-22 17:24:30 netsh 端口转发 摘要: 下面的代码在windows ...

  8. 基于Python的XSS测试工具XSStrike使用方法

    基于Python的XSS测试工具XSStrike使用方法 简介 XSStrike 是一款用于探测并利用XSS漏洞的脚本 XSStrike目前所提供的产品特性: 对参数进行模糊测试之后构建合适的payl ...

  9. 大数据学习--day07(冒泡排序、Arrays工具类、方法可变参数)

    冒泡排序.Arrays工具类.方法可变参数 冒泡排序之前写过,略 Arrays工具类 二分法查询 public static int binarySearch(int[] a,int key) 头信息 ...

随机推荐

  1. WebRTC 学习之 概念总结

    在学习WebRTC的时候,接触到了好多新的概念,在这里做一下备忘吧 RTMP协议 Real Time Messaging Protocol(实时消息传输协议).该协议基于TCP,是一个协议族,包括RT ...

  2. TypeEncodings

    官网链接: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Ar ...

  3. [EXP]Apache Superset < 0.23 - Remote Code Execution

    # Exploit Title: Apache Superset < 0.23 - Remote Code Execution # Date: 2018-05-17 # Exploit Auth ...

  4. 【sping揭秘】19、关于spring中jdbctemplate中的DataSource怎么来呢

    我们这是可以正好借助之前学的factorybean类,自己吧jdbctemplate加载到spring容器中,我们可以封装多个这种对象,那么可以实现针对不同的数据库的jdbctemplate 首先我们 ...

  5. s3 api接口的调用

    最近公司使用s3做文件存储服务器,因此在程序中需要调用s3的api,目前程序中使用了python和java版本的s3的api,简单做下记录,方便以后使用. 一.s3 api使用python版 1.安装 ...

  6. 如何把开源项目发布到Jcenter

    转载自:https://www.jianshu.com/p/f66972f0607a 首先我们应该注册一个JFrog Bintray的账号 Jfrog Bintray官网 这里我们可以注意到那个绿色的 ...

  7. SQL 必知必会·笔记<6>使用数据处理函数

     与SQL 语句不一样,SQL 函数不是可移植的.为特定SQL 实现编写的代码在其他实现中可能不正常.因为各个DBMS厂商对函数的实现有很大的区别. 常用函数 大多数SQL 实现支持以下类型的函数: ...

  8. 使用Java代码自定义Ribbon配置

    很多场景下,需要实现不同的微服务采用不同的策略,例如修改Ribbon的负载均衡规则等.Spring Cloud允许使用Java代码自定义Ribbon的配置. 在Spring Cloud中,Ribbon ...

  9. asp.net MVC 5 Scaffolding多层架构代码生成向导开源项目(邀请你的参与)

    Visual Studio.net 2013 asp.net MVC 5 Scaffolding代码生成向导开源项目 提高开发效率,规范代码编写,最好的方式就是使用简单的设计模式(MVC , Repo ...

  10. vuex状态管理之学习笔记

    概述及使用场景 Vuex 是一个主要应用在中大型单页应用的类似于 Flux 的数据管理架构.它主要帮我们更好地组织代码,以及把应用内的的状态保持在可维护.可理解的状态. 但如果是简单的应用 ,就没有必 ...