经典文献阅读之--CamMap(基于SLAM地图对不共视相机进行外参标定)

0. 简介

由于多相机之间通常存在有限或无重叠的视场,因此在估计外参相机参数时面临着一定的挑战,为了解决这个问题,本文提出了CamMap:一种新颖的6自由度外参标定流程。根据三个操作规则,使一个多相机系统单独捕捉一些类似的图像序列,以使用SLAM系统创建基于稀疏特征的地图。我们构建了一个两阶段的优化问题来对齐这些地图,并基于双向投影得到它们之间的变换,这些变换即为外参参数。该方案支持各种相机类型,在任何纹理丰富的环境中都可以使用。它可以同时标定任意数量的相机,无需标定板、同步、相同分辨率和频率。我们对具有有限和无重叠视场的相机进行了实验评估,结果显示我们的方法具有较高的准确性和效率。Kalibr和CamMap之间的绝对姿态误差(APE)小于0.025。代码已经在Github上开源了。我们这里文字主要是基于《CamMap:基于SLAM地图对不共视相机进行外参标定》的,当中插入代码以供学习。

1. 主要贡献

准确估计相机外参对于关联多个相机的信息至关重要。然而,如图1(a)所示,重叠视场通常很小或不存在,这给外参标定带来了重大挑战。为了让标定板能够被同时捕捉到,标定板必须远离相机放置。由于角点提取像素误差的增加,标定精度会降低,对于没有重叠视场的情况,需要一个充满已知相对位置模式的标定房间,这既昂贵又不方便。

图1. 非重叠相机的组合示例。(a) 配备两个RealSense D455和两个L515的TurtleBot。我们移除了连接线以清晰显示。(b) RealSense D455的组成,右侧图像传感器和左侧图像传感器可以组合成立体摄像头,并且左侧图像传感器的坐标系被用作参考,中间的RGB模块可以单独用作单目摄像头。© RealSense L515的结构,它可以用作RGB-D或单目摄像头。

针对解决上述问题并充分利用ORB-SLAM3,本文提出了CamMap:一种6自由度外参标定流程,它可以对非重叠相机进行高精度的外参标定,并可应用于多种类型的相机,如单目、立体和RGB-D相机。该标定方法CamMap通过对ORB-SLAM3创建的地图进行对齐来实现,换句话说,自然场景可以用作标定模式。在分别使用两个相机构建两个相似地图并找到所有匹配的地图点后,外参参数正好是地图之间的变换关系。标定过程仅耗费几十秒时间。所提出的方法的应用要求在表I中可以找到。

本文的主要贡献如下:

  1. 提出了一种相机外参标定流程,将ORB-SLAM3系统集成到不重叠视场的各种相机类型中,在任何纹理丰富的自然环境中都可以使用,无需标定板,并且可以同时标定任意数量的相机。并将所提出的方法开源。

  2. 为不同位置的多相机提出了三个操作规则,这旨在消除相机不同步时的理论误差,并减少SLAM漂移引起的误差。

  3. 我们在两阶段优化问题中引入了基于双向投影的代价函数来计算外参参数,然后提供了一种用于确定标定是否成功的SLAM漂移评估方法。

2. 主要内容

2.1 概述

这里详细描述了所提出的方法,如图2所示,一个装有两个刚性连接相机A和B的支架,在支架上进行一系列规定的运动后,相机捕捉图像流,这些图像流将由ORB-SLAM3处理,用于创建地图,包括关键帧 A i A_i Ai B j B_j Bj(其中 i = 1 , . . . , m i = 1,...,m i=1...m j = 1 , . . . , n j = 1,...,n j=1...n)和地图点 P P P,值得注意的是地图坐标系与相机的第一个关键帧坐标系重合,这意味着地图之间的变换$ T B A M a p T^{Map}_{BA} TBAMap实际上是 A 1 A_1 A1 B 1 B_1 B1之间的变换 T A 1 B 1 T^{B_1}_{A_1} TA1B1,也即是外参参数。然后执行类似关键帧检测以在两个地图中找到匹配的关键帧。最后使用两阶段优化通过对所有匹配地图点对( P k A 1 , P k B 1 P_k^{A_1},P_k^{B_1} PkA1PkB1)进行对齐来估计外参参数(其中 k ∈ N , N = { 1 , . . . , l } k ∈ N,N = \{1,...,l\} kNN={1...l})。CamMap的流程包括以下步骤:

  1. 通过相机捕捉一些图像序列,当多相机支架进行一组固定运动时,例如在小圆圈上旋转,这应该根据相机的相对位置进行规划,在标定开始和结束时,支架应保持静止。

  2. 使用ORB-SLAM3系统处理图像序列,以创建基于ORB特征的地图

  3. 使用词袋(BoW)模块对两个地图之间的所有关键帧进行相似性检测,找到相似关键帧并匹配地图点

  4. 相似关键帧捕捉的尺度和局部地图进行对齐,以估计外参参数,这个过程是“帧到帧”的对齐,是第一个优化阶段。同时,使用卡方检验来删除错误匹配的地图点对。

  5. 对于第二阶段的优化,使用所有正确匹配的地图点对来优化外参参数,这是“地图对地图”的对齐。卡方检验用于获得内点的数量。最后根据内点数量 T B 1 A 1 T^{A_1}_{B_1} TB1A1 T B m A n T^{A_n}_{B_m} TBmAn之间的差异判断标定是否成功。

在这里插入图片描述

…详情请参照古月居

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

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

相关文章

《Spring Security 简易速速上手小册》第4章 授权与角色管理(2024 最新版)

文章目录 4.1 理解授权4.1.1 基础知识详解授权的核心授权策略方法级安全动态权限检查 4.1.2 主要案例:基于角色的页面访问控制案例 Demo 4.1.3 拓展案例 1:自定义投票策略案例 Demo测试自定义投票策略 4.1.4 拓展案例 2:使用方法级安全进行细…

MyBatis 学习(三)之 MyBatis 全局配置文件

目录 1 MyBatis 全局配置文件 2 properties 元素 3 setting 设置 4 typeAlianses 别名处理器 5 typeHandler 类型处理器 6 objectFacotry 对象工厂(了解) 7 plugins 插件(了解) 8 environments 运行环境 9 databaseIdPro…

cpp基础学习笔记03:类型转换

static_cast 静态转换 用于类层次结构中基类和派生类之间指针或者引用的转换。up-casting (把派生类的指针或引用转换成基类的指针或者引用表示)是安全的;down-casting(把基类指针或引用转换成子类的指针或者引用)是不安全的。用于基本数据类型之间的转换&#xff…

ORACLE 基础

一.ORACLE简介 1.1什么是oracle ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或 B/S 体系结构的数据库之一。 ORACLE 通常应用于大型系统的数据库产品。…

[HackMyVM]靶场 Adria

kali:192.168.56.104 主机发现 arp-scan -l 靶机:192.168.56.108 端口扫描 nmap -p- 192.168.56.108 开启了 22 80 139 445端口 进入web 编辑 /etc/hosts,把192.168.56.108 adria.hmv添加进去重新访问 里面没什么有用的东西,注册需要邮箱,…

在线ai写作,让你随时随地创作优质内容

如今的ai技术已经渗透到我们生活的方方面面。其中,AI写作成为了一个备受关注的领域。如今,我们可以利用在线ai写作在任何时间、任何地点创作出优质的内容。 传统的写作过程需要大量的时间和精力。从构思到写作再到修改,每一个环节都需要我们投…

kotlin单例模式,4年小Android的心路历程

一、Java基础 我知道大家一定有很久都没有注意到这个点了,平时的工作应该也很少涉及到这些底层知识吧,但是这些东西很重要。如果是想要跳槽加薪或者是应对即将到来的面试,这些都是不可忽视的知识。 在这一点里,需要重视的点有&am…

常见查找算法Java实现

顺序&#xff08;线性&#xff09;查找二分查找/折半查找插值查找斐波那契查找 线性查找 判断数列是否包含要求&#xff0c;如果找到了&#xff0c;就提示找到了&#xff0c;并给出下标值 // 线性查找 public static ArrayList<Integer> seqSearch(int[] arr, int value…

Windows 10 合并磁盘分区 (G and H)

Windows 10 合并磁盘分区 [G and H] 1. 设备和驱动器2. 计算机 -> 管理 -> 存储 -> 磁盘管理3. 删除卷4. 新建简单卷5. 设备和驱动器References 1. 设备和驱动器 2. 计算机 -> 管理 -> 存储 -> 磁盘管理 3. 删除卷 H: -> right-click -> 删除卷 H: 变…

项目案例:图像分类技术在直播电商中的应用与实践

一、引言 在数字化浪潮的推动下&#xff0c;电商行业迎来了一场革命性的变革。直播电商&#xff0c;作为一种新兴的购物模式&#xff0c;正以其独特的互动性和娱乐性&#xff0c;重塑着消费者的购物习惯。通过实时的直播展示&#xff0c;商品的细节得以清晰呈现&#xff0c;而互…

小红书关键词爬虫

标题 1 统计要收集的关键词&#xff0c;制作一个文件夹2 爬取每一页的内容3 爬取标题和内容4 如果内容可以被查看&#xff0c;爬取评论内容5 将结果进行汇总&#xff0c;并且每个帖子保存为一个json文件&#xff0c;具体内容6 总结 1 统计要收集的关键词&#xff0c;制作一个文…

Linux时间同步(PPS、PTP、chrony)分析笔记

1 PPS(pulse per second) 1.1 简介 LinuxPPS provides a programming interface (API) to define in the system several PPS sources. PPS means "pulse per second" and a PPS source is just a device which provides a high precision signal each second so t…

靠谱的车【华为OD机试-JAVAPythonC++JS】

题目描述 程序员小明打了一辆出租车去上班。出于职业敏感&#xff0c;他注意到这辆出租车的计费表有点问题&#xff0c;总是偏大。 出租车司机解释说他不喜欢数字4&#xff0c;所以改装了计费表&#xff0c;任何数字位置遇到数字4就直接跳过&#xff0c;其余功能都正常。 比如&…

外汇天眼:ASIC 获得针对前 Blockchain Global 董事的临时出行限制令

澳大利亚证券与投资委员会&#xff08;ASIC&#xff09;已经针对前Blockchain Global Limited&#xff08;清算中&#xff09;董事梁国&#xff08;又名Allan Guo&#xff09;获得了临时旅行限制令。这些命令在其他方面&#xff0c;阻止郭先生在2024年8月20日或进一步命令之前离…

C++数据结构与算法——二叉搜索树的属性

C第二阶段——数据结构和算法&#xff0c;之前学过一点点数据结构&#xff0c;当时是基于Python来学习的&#xff0c;现在基于C查漏补缺&#xff0c;尤其是树的部分。这一部分计划一个月&#xff0c;主要利用代码随想录来学习&#xff0c;刷题使用力扣网站&#xff0c;不定时更…

C++数据结构与算法——二叉树的属性

C第二阶段——数据结构和算法&#xff0c;之前学过一点点数据结构&#xff0c;当时是基于Python来学习的&#xff0c;现在基于C查漏补缺&#xff0c;尤其是树的部分。这一部分计划一个月&#xff0c;主要利用代码随想录来学习&#xff0c;刷题使用力扣网站&#xff0c;不定时更…

机器学习项目外包注意事项

将机器学习项目外包给外部团队或合作伙伴是一种常见的做法&#xff0c;特别是当您的团队缺乏特定领域的专业知识或资源时。以下是一些关于机器学习项目外包的要点和注意事项&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#…

【Unity】使用Unity实现双屏显示

引言 在使用Unity的时候&#xff0c;有时候会需要使用双屏显示 简单来说就是需要在两个显示器中显示游戏画面 双屏显示注意点&#xff1a; ①双屏显示需要电脑有两个显示 ②双屏显示只能用于PC端 ③不仅仅可以双屏&#xff0c;Unity最大支持8屏显示 1.相机设置 ①我们打开Un…

[VNCTF2024]-PWN:preinit解析(逆向花指令,绕过strcmp,函数修改,机器码)

查看保护&#xff1a; 查看ida&#xff1a; 这边其实看反汇编没啥大作用&#xff0c;需要自己动调。 但是前面的绕过strcmp还是要看一下的。 解题&#xff1a; 这里是用linux自带的产生随机数的文件urandom来产生一个随机密码&#xff0c;然后让我们输入密码&#xff0c;用st…

【论文笔记】An Effective Adversarial Attack on Person Re-Identification ...

原文标题&#xff08;文章标题处有字数限制&#xff09;&#xff1a; 《An Effective Adversarial Attack on Person Re-Identification in Video Surveillance via Dispersion Reduction》 Abstract 通过减少神经网络内部特征图的分散性攻击reid模型。 erbloo/Dispersion_r…