# 在学习视觉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. 关于 SQL 注入的问题

    拼串 (Statement)方式 1.编译次数多,效率比较低:会出现SQL注入问题(数据安全问题):先传参数再编译. 2.Sql文对应的字符串不一样,需要再次编译.Sql文对应的字符串一样,不会再编译 ...

  2. Java 实现 HDFS 文件基本操作

    1. pom <hadoop.version>2.7.3</hadoop.version> <dependency> <groupId>org.apac ...

  3. linux常用的BootLoader U-boot的前世今生

    U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目.U-Boot的作用是系统引导. U-Boot从FADSROM.8xxROM.PPCBOOT逐步发展演化而 ...

  4. OC学习4——OC新特性之块(Block)

    文章主要参考  关于OC中的block自己的一些理解(一) 对块的深入理解  浅析ios开发中Block块语法的妙用 1.关于block block的作用:保存一段代码. 苹果官方推荐的一种语法,类似 ...

  5. AlarmManager的使用和七牛云android SDK上传图片

    一学期的课程设计又开始了,虽然以后不搞安卓,但是课设还是想好好完成的,因为之前做过地图开发,所以选了一个跟 这个相关的题目,其实有一个校车系统也可以选,但是之前做过一个相似度接近80%的东西,不想混混 ...

  6. [Leetcode]394.字符串解码

    题目与解释 给定一个经过编码的字符串,返回它解码后的字符串. 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次.注意 k 保证为正 ...

  7. Fiddler怎样抓取手机的包

    Fiddler作为代理服务器,可以拦截到手机发出的请求,再经过Fiddler发送到服务器,获取到服务器响应的数据,这个过程,只要设置配置好了,使用过程不受影响. 要想抓取到手机的包,先要给手机设置一个 ...

  8. log4j学习总结

    一直使用log4j来记录日志,但是一直以来没有深入研究过log4j,最近研究了下log4j,下面总结一下: log4j配置: 1. 配置根Logger,其语法为: log4j.rootLogger = ...

  9. Android Studio 签名打包

    项目开发完成后,如果要分发到Google play或者各个第三方渠道,签名打包是必不可少的,下面详细介绍整个签名打包过程,及如何查看签名. 1.创建签名文件 选择要打包的项目-点击Build-在弹出的 ...

  10. GAN笔记——理论与实现

    GAN这一概念是由Ian Goodfellow于2014年提出,并迅速成为了非常火热的研究话题,GAN的变种更是有上千种,深度学习先驱之一的Yann LeCun就曾说,"GAN及其变种是数十 ...