Lafida多目数据集实测

Lafida 数据集

paper:J. Imaging | Free Full-Text | LaFiDa—A Laserscanner Multi-Fisheye Camera Dataset
官网数据:https://www.ipf.kit.edu/english/projekt_cv_szenen.php
官网:KIT-IPF-Software and Datasets - LaFiDa
标定数据下载:http://www2.ipf.kit.edu/~pcv2016/downloads/calibration.zip

0 简介

该数据集由一个头戴式多鱼眼相机系统一个移动激光扫描仪组合而成,还从采样率为 360
Hz 的动作捕捉系统中获得了精确的六自由度(6 DoF)真值姿态。


rigid_body系即动作捕捉系统坐标系,三个白色的是被动球形反向反射标记的校准棒,用于动作捕捉系统

在室内和室外环境中记录了多个序列,包括不同的运动特征、照明条件和场景动态。

所提供的序列由三台硬件触发完全同步的鱼眼相机和同一平台上的移动激光扫描仪拍摄的图像组成。总共提供了六条轨迹。每个轨迹还包括所有传感器的内在和外在校准参数及相关测量值。

此外,我们还将最常用的外置激光扫描仪工具箱推广到相机校准,以便与任意中央相机(如全向或鱼眼投影)配合使用。

基准数据集以知识共享署名协议(CC-BY 4.0)在线发布,其中包含原始传感器数据以及时间戳、校准和评估脚本等规格。

所提供的数据集可用于多鱼眼相机和/或激光扫描仪同步定位与绘图(SLAM)。

对比其他数据集,我们有多个视角的硬同步触发的相机数据:

1 采集设备

设备参数:雷达/相机/动作捕捉

1.1 激光扫描仪

Hokuyo(日本大阪)公司的 UTM-30LX-EW 激光扫描仪,激光脉冲波长为 λ = 905nm,角度分辨率为 0. 25 ◦,视场(FoV)为 270 ◦。距离精度在0.1 米至 10 米之间为 ±30 毫米。指定的脉冲重复频率为 43 kHz,即每秒捕捉 40 条扫描线(40 Hz)。Laserscaner提供的激光扫描仪数据包括每个3D点的扫描角度、距离和强度。为了保持测量数量的恒定,只使用第一次激光返回和第一次强度。因此,每次激光扫描仪旋转的最终测量数量是1080个。

1.2 多相机系统

多鱼眼相机系统(MCS)由多传感器和集成的FPGA组成,硬件触发的图像采集和图像预处理由该平台处理,因此所有图像都是像素同步采集的。

三个分辨率为 754×480 像素的 CMOS相机传感器连接到以 25 Hz 采样率运行的平台上。

Lensagon 鱼眼镜头(BF2M12520),焦距为 1.25 毫米,视场角约为185 ◦。

1.3 动作捕捉系统rigid_body

为了获取多传感器头盔系统运动的精确 6 DoF 地面实况,我们使用了一套运动捕捉系统
(OptiTrack Prime 17W),该系统配有八个硬件触发的高速摄像头。

该系统需要事先进行校准,方法是在摄像机观察到的范围内挥动带有三个被动球形反向反射标记的校准棒。由于校准棒的精确度量尺寸是已知的,所有运动捕捉摄像机的姿势都可以通过度量恢复。运动捕捉系统校准后,可通过三角测量法以 360 Hz 和亚毫米精度跟踪标记的 3 DoF 位置。要确定头盔系统的 6 DoF 运动,至少需要三个标记来创建一个独特的坐标框架。

多个标记的组合称为rigid body,我们系统的刚体定义如图 1d 所示。

2 标定


标定数据下载:http://www2.ipf.kit.edu/~pcv2016/downloads/calibration.zip 

Calibration/
├── Extrinsic_Laserscanner_to_MCS_Calibration 激光扫描仪到MCS中心外参
│   ├── cam2_to_scanner.mat
│   └── cam2_to_scanner.txt
├── Extrinsic_MCS_Calibration 各个相机到MCS中心外参
│   ├── MCS_calibration_cayley.txt
│   ├── MCS_calibration.mat
│   └── MCS_calibration.txt
├── Extrinsic_Rigid_Body_to_MCS_Calibration MCS到RigidBody中心外参
│   ├── MCS_to_RigidBody.mat
│   └── MCS_to_RigidBody.txt
└── Intrinsic_Camera_Calibrations 各个相机的内参
    ├── calib_results_back.txt
    ├── calib_results_left_cam2.txt
    ├── calib_results_right.txt
    ├── Omni_Calib_Results_back.mat
    ├── Omni_Calib_Results_left.mat
    └── Omni_Calib_Results_right.mat

2.1 内参标定(Intrinsic_Camera_Calibrations)

使用Ocam-Toolbox计算每个摄像头的内参,再配合一些改进。具体过程和改进的代码:GitHub - urbste/ImprovedOcamCalib: This is an add-on to the OCamCalib toolbox by Scaramuzza et al.​​​​​​P

2.2 相机外参(Extrinsic_MCS_Calibration)

三个相机到MCS中心(其位置由 OptiTrack 系统给出)的变换矩阵,MCS坐标系和cam2(left camera)方向一致,位置不一致。

2.3 激光外参(Extrinsic_Laserscanner_to_MCS_Calibration)

给出的是cam2到激光的矩阵变换。

2.4 rigid body外参(Extrinsic_Rigid_Body_to_MCS_Calibration)

给出的是MCS到rigid的外参,rigid坐标系的原点设置在第一球形刚体标记上。

3 数据

3.1 场景


outdoor 和 indoor

http://www2.ipf.kit.edu/~pcv2016/downloads/indoor_dynamic.zip 采集设备在房间里绕圈移动,人们在周围漫步。
http://www2.ipf.kit.edu/~pcv2016/downloads/indoor_static.zip 在房间里没有人四处走动静态场景,采集设备在房间内绕圈移动,然后上下移动。
http://www2.ipf.kit.edu/~pcv2016/downloads/outdoor_rotation.zip 中庭被外墙包围,天气多云,静态场景,采集设备绕其垂直轴旋转。http://www2.ipf.kit.edu/~pcv2016/downloads/outdoor_static.zip 中庭被外墙包围,天气多云,静态场景,录制两段数据,操作者从后到前、从左到右。http://www2.ipf.kit.edu/~pcv2016/downloads/outdoor_static2.zip 中庭被外墙包围,天气多云,静态场景,随机游走。
http://www2.ipf.kit.edu/~pcv2016/downloads/outdoor_large_loop.zip 中庭被外墙包围,天气多云,采集设备正在移出跟踪系统的范围,并以闭环方式围绕整个中庭移动,包含一个闭环。移动出跟踪系统的范围没有真值。

3.2 文件

内部时间戳:通用时间戳,可与其他传感器同步。
传感器时间戳:传感器的时间戳,不可用于同步。

  • LS_Dist.txt

包含激光扫描仪和被照射表面之间的距离。
文件头部:内部时间戳* | 传感器时间戳** | 距离
距离以毫米为单位。

  • LS_Dir.txt

包含点的方向。
文件头部:内部时间戳* | 传感器时间戳** | 方向角度
角度以度为单位。

  • LS_Intensity.txt

包含每个点的强度。
文件头部:内部时间戳* | 传感器时间戳** | 强度

  • Lspoint.txt  (数据包中并未找到)

包含激光扫描仪坐标系中的点坐标。
文件头部:时间戳* | Lspoint
坐标以米为单位。

  • Quaternion.txt (数据包中并未找到)

包含传感器位置的四元数表示。
文件头部:内部时间戳* | (传感器位置)| (四元数:X Y Z W)
坐标以米为单位。

  • Tracker.txt (数据包中并未找到)

包含刚体标记2的位置。
文件头部:内部时间戳* | NatNet时间戳 | (传感器位置)| (传感器坐标系X轴)| (传感器坐标系Y轴)| (传感器坐标系Z轴)
坐标以米为单位。

  • 图片

三个鱼眼相机数据:/work/data/MultiCol/outdoor_static2
    ├── imgs
    │   ├── cam0
    │   ├── cam1
    │   └── cam2

  •  rigid_body.txt

动作捕捉系统给出的结果,可做真值。
文件头部:内部时间戳* | (传感器坐标系X轴)| (传感器坐标系Y轴)| (传感器坐标系Z轴)|(四元数:X Y Z W)
坐标以米为单位。
PS:轨迹中有些动态捕捉很差,建议剔除
indoor_dynamic :
2228163,2234005~2234059

 

实际测试

1 MultiCol

cd src/MultiCol-SLAM && ./Examples/Lafida/multi_col_slam_lafida ./Examples/small_orb_omni_voc_9_6.yml ./Examples/Lafida/Slam_Settings_indoor2.yaml ./Examples/Lafida/calibration /work/data/MultiCol/outdoor_static2

第一个是字典文件的路径。

第二个是slam设置文件的路径。代码提供的四个配置文件差不过,需要修改traj.StartFrame和traj.EndFrame,其他的暂时不用动。

第三个是校准文件的目录,自动读取InteriorOrientationFisheyeXXX.yaml(内参)和MultiCamSys_Calibration.yaml(到MCS系统的外参),ps:和calibration压缩包提供的数据不太一样,我是用代码提供的内外参测试的。

第四个是图像的目录,解压对应的数据压缩包即可。

最后轨迹保留在MultiCol-SLAM/MKFTrajectory.txt中。

  • ​outdoor_static2

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【蓝桥杯嵌入式】9届程序题刷题记录及反思

一、题目内容分析 二、LCD单字符高亮显示实现 本次要求显示两个字符&#xff0c;此函数高亮pos及它后面一个字符 void highlight(uint8_t *str,uint8_t pos) {int i 0;for(i 0; i < 20; i){if(i ! pos && i! (pos1))LCD_DisplayChar(Line3,(320 - (16 * i)),st…

Python输出不了中文怎么解决

在文件头加上#encoding&#xff1a;utf-8即可。 # encoding: utf-8 print helloworld print u"学习" print (unicode("学习", encoding"utf-8")) shell输出&#xff1a; helloworld 学习 学习 还可以用#-*- coding: UTF-8 -*- 来指定。

LangChain学习笔记—RAG(检索增强生成)

LangChain LangChain是一个软件开发框架&#xff0c;可以更轻松地使用大型语言模型&#xff08;LLM&#xff09;创建应用程序。它是一个具有 Python 和 JavaScript 代码库的开源工具。LangChain 允许开发人员将 GPT-4 等 LLM 与外部数据相结合&#xff0c;为聊天机器人、代码理…

C++ | Leetcode C++题解之第10题正则表达式匹配

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isMatch(string s, string p) {int m s.size();int n p.size();auto matches [&](int i, int j) {if (i 0) {return false;}if (p[j - 1] .) {return true;}return s[i - 1] p[j - 1];};vector<…

WGCAT工单系统使用指南 - 工单有哪几种状态

WGCAT工单管理系统设计的工单生命周期比较简单易懂 1、待接收 2、处理中 3、已拒绝 4、已完成 5、已关闭

CYP450综述-20年-地表最强系列-文献精读-4

Discovery and modification of cytochrome P450 for plant natural products biosynthesis 发现与改造细胞色素P450以合成植物天然产品 一篇关于植物CYP450的综述&#xff0c;地表最强&#xff0c;总结的最全面的版本之一&#xff0c;各位看官有推荐请留言评论区~ Discovery…

App.vue触发axios报错及解决方案

App.vue触发axios报错及解决方案 修改根目录下vue.config.js文件 module.exports {publicPath: ./,assetsDir: assets,configureWebpack: {devServer: {client: {overlay: false}}} }重新npm run dev 搞定

python作业

1.找出10000以内能被5或6整除&#xff0c;但不能被两者同时整除的数(函数) 2.写一个方法&#xff0c;计算列表所有偶数下标元素的和(注意返回值) 3.根据完整的路径从路径中分离文件路径、文件名及扩展名。 4.根据标点符号对字符串进行分行 5.去掉字符串数组中每个字符串的空格 …

波奇学Linux:

面向数据报&#xff1a;udp没有发送缓冲区&#xff0c;发送几次数据报&#xff0c;读取几次数据报&#xff0c;write和read一一对应 tcp通信时只管识别数据&#xff0c;在应用层才对字节进行拼接分析&#xff0c;得到完整请求 简单来说&#xff1a;udp之间传递的是报文&#x…

【打印SQL执行日志】⭐️Mybatis-Plus通过配置在控制台打印执行日志

目录 前言 一、Mybatis-Plus 开启日志的方式 二、测试 三、日志分析 章末 前言 小伙伴们大家好&#xff0c;相信大家平时在处理问题时都有各自的方式&#xff0c;最常用以及最好用的感觉还是断点调试&#xff0c;但是涉及到操作数据库的执行时&#xff0c;默认的话在控制台…

Excel、PowerQuery 和 ChatGPT 终极手册(上)

原文&#xff1a;Ultimate ChatGPT Handbook for Enterprises 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 序言 在不断发展的数据管理和分析领域中&#xff0c;掌握 Excel 的查找功能不仅是一种技能&#xff0c;更是高效数据处理的基石。《使用 Power Query 和 Ch…

kex_exchange_identification: read: Connection reset by peer

换一台机器&#xff0c;登录到远程ip地址&#xff0c;查看ssh的日志。 sudo grep ssh /var/log/auth.log | grep 8.22(登录失败的ip) 可以看到&#xff0c;刚开始是因为登录密码不对&#xff0c;后边是直接拒绝了。应该是sshd的一种保护机制.超过多少次失败&#xff0c;后…

【热门话题】计算机视觉入门:探索数字世界中的“视觉智能”

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 计算机视觉入门&#xff1a;探索数字世界中的“视觉智能”摘要正文一、计算机视…

@RequstBody,IOC,DI,@Autowired,@Resource,lombok,

要使用Jason数据格式必须用post方法&#xff0c;因为是通过请求体传送的&#xff0c;get没有请求体 Data不包括有参构造和无参构造方法

在project模式下使用Implementation Runs窗口

要在“Implementation Runs”窗口中启动active implementation run&#xff0c;请执行以下任一操作&#xff1a; • 在Flow Navigator中选择“Run Implementation”。 • 在主菜单中选择“Flow > Run Implementation”。 • 从工具栏菜单中选择“Run Implementation”。 • …

【剑指offr--C/C++】JZ55 二叉树的深度

一、题目 求二叉树深度两个思路&#xff1a;递归、层次遍历。 二、递归思路及代码 每一个节点的深度都max{左子树深度&#xff0c;右子树深度}1。所以可以使用递归 /* struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left…

基于springboot大学生兼职平台管理系统(完整源码+数据库)

一、项目简介 本项目是一套基于springboot大学生兼职平台管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功…

智慧农业新篇章:数字乡村引领农业现代化

随着信息技术的飞速发展&#xff0c;数字乡村正成为引领农业现代化的重要力量。智慧农业作为数字乡村的核心内容&#xff0c;以其高效、精准、可持续的特点&#xff0c;为农业现代化开辟了新篇章。本文将从智慧农业的内涵与特点、数字乡村在农业现代化中的引领作用、智慧农业发…

C++数据结构——顺序表

C数据结构——顺序表 以下代码可以作为一个顺序表的模板&#xff0c;从顺序表的初始化创建到增删改查&#xff0c;都有详细的过程&#xff0c;供学习参考。 #include<iostream> #include<stdio.h>using namespace std;#define elemType intstruct SequentialList…

如何实现小程序滑动删除组件+全选批量删除组件

如何实现小程序滑动删除组件全选批量删除组件 一、简介 如何实现小程序滑动删除组件全选批量删除组件 采用 uni-app 实现&#xff0c;可以适用微信小程序、其他各种小程序以及 APP、Web等多个平台 具体实现步骤如下&#xff1a; 下载开发者工具 HbuilderX进入 【Dcloud 插…