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
动作捕捉系统给出的结果,可做真值。
文件头部:内部时间戳(单位ms) | (传感器坐标系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中。
未完
相关文章:

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 标定数据下载&…...
excel wps中编码格式转换
EXCEL报表:另存为CSV格式,转换成UTF-8编码 - 简书 (jianshu.com) 经验证管用...

【游戏分析】非游戏领空追字符串来源
通过NPC名称找NPC数组 扫描 NPC名字 ASIC型 发现全部都有后缀 那么采用 字节集的方式去扫描 也是扫不到 说明:不是ASIC型字符串 扫描 NPC名字 Unicode型 没有结果 那么转换成字节集去扫描 终于发现结果了 把结果挨个修改字符串 发现 其中两个是可以用的 22和23 …...
golang 数组和切片
区别 1.数组长度固定,切片长度可变 2.数组是深拷贝,切片是浅拷贝,切片是引用类型 扩容规则 不同版本不一样 https://www.jb51.net/article/280481.htm#_lab2_2_1 go1.18 1.如果期望容量大于当前容量的两倍就会使用期望容量; 2.如…...

物联网实战--入门篇之(九)安卓QT--开发框架
目录 一、QT简介 二、开发环境 三、编码风格 四、设计框架 五、总结 一、QT简介 QT是一款以C为基础的开发工具,已经包含了很多常用的库,除了基本的GUI以外,还有网络、数据库、多媒体、进程通信、串口、蓝牙等常用库,开发起来…...

【leetcode面试经典150题】16.接雨水(C++)
【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…...
互联网面经
腾讯视频 代码:反转链表,单例模式 RAII,哪里用到 Web服务器怎样处理请求 get\post流程 项目使用的还是http1.0吗;http2.0:二进制、首部压缩、主动推送;Https Epoll/select/poll ET/LT 进程地址空间。3…...
xss介绍及作用
XSS(Cross-Site Scripting)是一种常见的网络安全漏洞,它允许攻击者向网站注入恶意的客户端脚本代码,从而在用户的浏览器中执行这些代码。 XSS攻击的原理是攻击者将恶意脚本插入到网页中的用户输入数据中,当其他用户访…...

PostgreSQL入门到实战-第二弹
PostgreSQL入门到实战 PostgreSQL安装之Windows官网地址PostgreSQL概述Windows上安装PostgreSQL更新计划 PostgreSQL安装之Windows 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://www.postgresql.org/PostgreSQL概…...

3-【PS让图片动起来】系列1-【导入素材】
【问题介绍】仅做图片,现在很难吸引用户视线,越来越多地图片需要动起来增添意境,比如春日樱花花瓣掉落、冬季雪花纷纷,今天来学学怎么用PS的时间轴,让图片动起来~ 如下图,一副冬日雪景图,想给画…...

基于Java+SpringBoot+Mybaties+layui+Vue+elememt 实习管理系统 的设计与实现
一.项目介绍 前台功能:用户进入系统可以实现首页,系统公告,个人中心,后台管理等功能进行操作 后台由管理员,实习单位,教师和学生,主要功能包括首页,个人中心,班级管理&am…...

非关系型数据库——Redis基本操作
目录 一、Redis数据库常用命令 1.Set——存放数据 2.Get——获取数据 3.Keys——获取符合条件的键值 4.Exists——判断键值是否存在 5.Del——删除指定键值 6.Type——获取键值对应的类型 7.Rename——对已有键值重命名(覆盖) 8.Renamenx——对…...
golang语言和JAVA对比
引言: 在当今的软件开发领域,有许多编程语言供开发人员选择。其中,Golang和Java是两种备受开发者青睐的语言。本文将探讨Golang和Java之间的比较和对比,分析它们在语言特性、性能、平台支持、社区和生态系统、开发效率和可维护性等方面的异同。 一、语言特性和性能 Golang…...

隐私计算实训营学习九:隐语多方安全计算在安全核对的行业实践
文章目录 一、业务背景:安全核对产生的土壤二、产品方案:从试点到规模化的路三、技术共建:与隐语的共同成长 一、业务背景:安全核对产生的土壤 业务背景:很多粗放使用数据的方式被新出台的法律法规所规范,…...

C#实现只保存2天的日志文件
文章目录 业务需求代码运行效果 欢迎讨论! 业务需求 在生产环境中,控制台窗口不便展示出来。 为了在生产环境中,完整记录控制台应用的输出,选择将其输出到文件中。 但是,存储所有输出的话会占用很多空间,…...

C++ 类和对象(中篇)
类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情 况下,都会自动生成下面6个默认成员函数。 构造函数: 定义:构造函数是一个特殊的成员…...

可视化场景(9):智慧看板,可能是最直观的数据展示
10年经验的大数据可视化和数字孪生老司机,该领域的专家,是您可信赖的技术合伙人,分享该领域的项目和作品,欢迎互动交流。 hello,我是贝格前端工场,本期分享可视化大屏在安全生产与设备运维场景的应用&#…...
加密算法(二)
1、SHA-256加密算法: package com.arithmetic.encryption; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; //使用java.security.MessageDigest类来进行SHA-256摘要的计算。 //通过getInstance("SHA-256")方法获取…...

大创项目推荐 深度学习 YOLO 实现车牌识别算法
文章目录 0 前言1 课题介绍2 算法简介2.1网络架构 3 数据准备4 模型训练5 实现效果5.1 图片识别效果5.2视频识别效果 6 部分关键代码7 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于yolov5的深度学习车牌识别系统实现 该项目较…...
IP知识详解
IP基本认识 IP 在 TCP/IP 参考模型中处于第三层,也就是网络层。 网络层的主要作用是:实现主机与主机之间的通信,也叫点对点(end to end)通信。 网络层与数据链路层有什么关系呢? IP 的作用是主机之间通信…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...