针对自主泊车的多相机视觉惯导同时定位与建图方案

news2025/1/16 3:40:37

文章:Multi-Camera Visual-Inertial Simultaneous Localization and Mapping for Autonomous Valet Parking

作者:Marcus Abate, Ariel Schwartz, Xue Iuan Wong, Wangdong Luo, Rotem Littman, Marc Klinger, Lars Kuhnert, Douglas Blue, Luca Carlone

编辑:点云PCL

来源:arXiv 2023

欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。

公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。未经作者允许请勿转载,欢迎各位同学积极分享和交流。

摘要

本文介绍了一种视觉惯导同时定位与建图(SLAM)系统,用于自动驾驶车辆的定位和建图关键能力。该系统通过使用多个摄像头和外部(例如轮速)里程计传感器扩展了Kimera,并在真实环境中获得准确且稳健的里程计估计。此外提出了一种有效的闭环方案,避免了基于透视n点方法的常见替代方案的缺点,并且适用于单目摄像头,最后开发了一种用于自由空间的稠密3D建图方法,将自由空间检测的分割网络与基于单应性的稠密建图技术相结合。在仿真环境中收集的多个真实数据集上对系统进行了测试,涵盖了室内和室外停车场场景。实验结果表明,该多相机系统在性能上优于最先进的开源视觉惯性SLAM方案(Vins-Fusion、ORBSLAM3),在超过8公里的行驶距离(所有数据集的组合)上,平均轨迹误差不超过轨迹长度的1%。

主要贡献

在这篇系统论文中,作者开发了一个多摄像头VI-SLAM方案,可以进行高效且全局一致的轨迹估计,并构建了围绕车辆的稠密三维自由空间地图,实现障碍物避让和导航。该系统基于Kimera的基础上进行了扩展,具体包括:

(i) 支持多摄像头和外部里程计信息;

(ii) 实现稳健的单目或多摄像头闭环检测;

(iii) 针对自主泊车应用实现了高效的地平面建图;

对Kimera的前端和后端进行了修改,改进了跟踪和因子图优化,并使用高度并行化的架构支持多传感器融合。实现了几种闭环检测方法,包括基于透视n点(PnP)方法的单目闭环检测技术,证明其优于流行的方法。最后,我们的SLAM系统与快速语义分割网络Kimera-Semantics结合使用,创建了机器人周围的自由空间的3D地图。

主要内容

A. 硬件架构和数据收集

硬件架构

用于实验的实际平台是一辆改装的Lincoln MKZ轿车,配备了定制的发动机控制单元和定制的车载传感器,包括四个单目鱼眼摄像头、一个IMU和一个车载轮式里程计系统,该系统利用轮式编码器和其他专有传感器来估计车辆的运动,传感器都是消费级别的,只有IMU不同。图1展示了车上传感器组件的排列方式。

0e30f32ad7b5bfa7108322a86c684f9e.png

图1: (a) 福特测试平台和传感器设置的示意图。(b) 来自室外数据集的四个示例图像;前两个图像来自车上的前置和右侧摄像头,下面两个图像是语义分割网络输出的用于地图模块的识别自由空间道路的结果。(c) 在美国密歇根州底特律收集的车辆室外轨迹样本。图中的轨迹平均长度为450米。

数据收集

为了评估,使用了模拟数据集和使用上述车辆收集的真实数据集。模拟数据集是在TESSE仿真环境中记录的。场景是一个室外城市区域,数据来自具有真实动力学模型的模拟车辆,语义标签以像素级别从模拟器中提取,用于替代分割网络,并且与道路相关的标签用于Kimera-Semantics中的自由空间重建。对于真实世界的数据集,我们在5个不同的室内外位置收集了22个数据集,历时5个月。数据集中车辆的速度、轨迹、环境、障碍物和天气各不相同。一些数据集中一个或多个摄像头会有长时间的遮挡,另一些数据集中车辆会在交通拥堵时长时间停车,市场上有许多行人,并且超出VIO模块时间范围的长直线运动使得尺度估计变得困难。对于室内数据集,由于停车场内的GPS不可靠,我们使用了福特的专有轮式里程计运动估计作为基准数据,因为它在低速和中速下证明非常准确。

B. 软件架构 

所提出的系统对现有的Kimera-VIO和Kimera-Semantics管道进行了几项重大修改,如图2系统架构

7382ec8433b6a86b846f022b4e0f299a.png

图2:所提出的系统架构概述。输入包括来自车辆四个方向的RGB单目图像以及单个IMU,修改后的Kimera-VIO并行处理所有摄像头输入,并生成稳健的状态估计,该估计结果传递给Robust Pose Graph Optimization (RPGO) 模块进行闭环检测和修正,同时,语义分割网络在图像中识别地平面,该信息由修改后的Kimera-Semantics模块用于生成自由空间的三维重建。

多摄像头Kimera-VIO

之前Kimera只能使用立体或RGB-D相机进行紧耦合的视觉惯导测距,所提出的Kimera版本经过修改,可以接受单目图像数据,并与IMU数据进行耦合。单目VIO前端被分成两部分;IMU数据进行预积分,并根据标准方法在两个端点进行插值处理。然后,使用OpenCV 中的工具对图像数据进行处理,以检测特征点(goodFeaturesToTrack),并在帧之间进行特征点跟踪。然后,在跟踪的特征点上应用5点RANSAC算法,以去除每个关键帧上的异常值;关键帧的触发取决于跟踪到的图像特征的数量和质量。除了视觉和惯导数据外,我们还使用车轮里程计测量数据。为实现这个目标,将车载轮式里程计传感器提供的相对位姿链接在一起,以估计关键帧之间的相对位姿,然后将其作为基于因子图的VIO后端中的相对位姿因子使用。特征点、预积分的IMU测量和里程计测量随后被发送到VIO后端模块,该模块使用所有可用的测量数据进行固定滞后平滑处理。

闭环优化

尽管VIO后端可以生成局部一致的轨迹,但我们的目标是获得全局一致的轨迹和地图估计。所提出的架构将VIO的运动估计传递给鲁棒位姿图优化模块,该模块检测闭环并相应地优化轨迹。为了检测闭环,Kimera使用视觉词袋(visual Bag-of-Words)来检测相似的图像。

PnP闭环位姿计算

在PnP方法中,ORB描述符在每个关键帧中提取,并与每个跟踪的特征点关联起来。同时,VIO后端的3D地标数据与每个图像一起发送到闭环检测模块。我们使用ORB描述符在后端优化的地标和2D特征之间获得潜在的对应关系,并使用带有RANSAC的PnP算法找到内点对应关系。然后,RANSAC内点用于生成Kimera-RPGO中闭环因子的帧之间的相对位姿[10]。虽然这种方法相当流行,并且在其他管道中被使用,但我们的实验结果显示得到的位姿不是非常准确。这是因为2D和3D特征之间通常只有很少的匹配(主要是由于基于3D地标的地图的稀疏性),因此在RANSAC之后只有很少的内点。

无尺度闭环位姿计算

为了解决PnP方法的问题,我们考虑使用仅使用2D图像数据来计算相对闭环位姿的闭环检测模块的一个版本。通过使用ORB描述符匹配建立的许多2D-2D对应关系,我们可以直接使用标准的5点RANSAC方法获得无尺度的位姿。在这种情况下,由于没有平移的尺度因子,我们修改了与闭环因子相关的噪声模型的信息矩阵,使其在平移向量的方向上携带零信息。然后,位姿图优化只使用闭环因子中的旋转部分和平移的方向,而不考虑大小,这两者都非常准确。

通过Kimera-Semantics进行自由空间建图

在我们之前的工作中,我们使用Kimera-Semantics从立体或深度相机数据生成密集的语义注释的3D网格,由于本文中的系统使用多个非重叠的单目摄像头,因此无法简单地使用立体重建来生成密集的深度图。由于我们只关注自由空间建图,并且道路可以被假设为局部平面,我们首先使用CNN对图像进行像素级二值分类,检测出地面平面,然后使用单应性变换将地面平面映射到3D平面上[36,第13章]。单应性矩阵是在每个摄像头的相机标定期间计算得到的。使用单应性矩阵,我们将属于地面平面的每个像素映射到一个3D点,然后将相应的3D点云传递给Kimera-Semantics,该模块执行射线投射以推断基于体素的3D地图,然后通过Marching Cubes算法提取纹理化的3D网格。

实验

表格I显示了我们对Kimera-VIO进行单目扩展的性能情况,比较了每个独立摄像头的性能。我们使用一次只运行一个摄像头的方式运行了每个数据集,所有数据集都使用相同的IMU数据。

57b73147e8a403afe8ce12e7c83539f9.png

表格I:每个摄像头的VIO准确性,每个数据集的最佳结果用绿色突出显示,虚线用于表示跟踪失败.

表格II显示了Kimera的多摄像头配置的性能,在1摄像头配置中,仅使用左摄像头,在2摄像头配置中,同时使用左摄像头和右摄像头,然后添加了前摄像头,最后是后摄像头。

18ee397a6efbd9f18c2d5bd634b1aeac.png

表格II:多摄像头VIO的准确性

表格III展示了Kimera-VIO在单摄像头配置下与两个最先进的单目VIO系统(Vins-Fusion 和Open-Vins)的估计性能对比。结果显示了没有闭环的VIO系统的表现,由于这些竞争对手不支持多摄像头环绕视图,为了公平起见,比较是以单目模式进行的。

f81e64d92d3e1ca9103dad504e16c275.png

表格IV展示了对这些不同方法进行闭环处理的割离研究的结果。显示了每种方法对SLAM系统的估计误差和漂移的影响,最佳结果以绿色突出显示。

ef5d9e223ffc325cdbbb34f0d3213f11.png

图3比较了三种方法生成的闭环候选项的旋转和平移误差的直方图。显然,无尺度方法具有最低的误差。

f3749c093b89f96e1baaa9fcfe4fb393.png

图3:所提出的闭环检测方法的直方图

表格V报告了Kimera(单目)在闭环检测下与Vins-Fusion和ORB-SLAM3的VIO性能。这三个流程都使用视觉词袋生成闭环候选项。

18b869f650aa49698d2374c4694e5738.png

表格V:Kimera、Vins-Fusion和ORB-SLAM3的姿态估计准确性(包括闭环检测)。

表格VI显示了模拟数据集的几何重建准确性,其中存在地面真值地图,系统使用地面真实姿态和Kimera的姿态进行评估,在使用Kimera的情况下,我们使用1个摄像头配置,并且没有使用车轮里程计。

f2fbde80d0e5f6f932852d835323b4a3.png

图4展示了使用提出的基于单应性矩阵的方法对Ford数据集进行的多个自由空间重建结果。这些地图是使用Kimera-VIO的4个相机和外部里程计获得的姿态生成的。

0dd31696ea1029f6abf140f680df974e.png

图4:在几个Ford数据集上,通过提出的自由空间见图方法生成的3D重建结果。所有四个相机都用于重建,并且Kimera的视觉惯导里程计使用了所有四个相机和外部里程计。每个重建结果上都绘制了估计轨迹的颜色映射,较冷的颜色表示较低的ATE RMSE。

总结

我们对Kimera进行了重要的修改,以支持单目和多相机输入数据,并整合了外部轮式里程计输入。我们修改了回环闭合模块以利用单目输入完善SLAM系统。此外,还修改了Kimera-Semantics,以实现用于自主泊车应用的高效自由空间映射,该方法适用于具有非重叠视场的相机,并且不需要进行深度估计的学习。我们在模拟车辆数据和在福特汽车公司的测试车上收集的真实世界数据集上对该系统进行了测试。所提出的系统具有较小的轨迹和地图误差,并且始终优于最先进的开源VIO和VI-SLAM系统。多相机系统的真实世界结果还有改进的空间,特别是在外参标定方面,后端因子图中的自动标定可能可以缓解其中的一些问题。

更多详细内容后台发送“知识星球”加入知识星球查看原文。

资源

自动驾驶及定位相关分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

自动驾驶中基于光流的运动物体检测

基于语义分割的相机外参标定

综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍

高速场景下自动驾驶车辆定位方法综述

Patchwork++:基于点云的快速、稳健的地面分割方法

PaGO-LOAM:基于地面优化的激光雷达里程计

多模态路沿检测与滤波方法

多个激光雷达同时校准、定位和建图的框架

动态的城市环境中杆状物的提取建图与长期定位

非重复型扫描激光雷达的运动畸变矫正

快速紧耦合的稀疏直接雷达-惯性-视觉里程计

基于相机和低分辨率激光雷达的三维车辆检测

用于三维点云语义分割的标注工具和城市数据集

ROS2入门之基本介绍

固态激光雷达和相机系统的自动标定

激光雷达+GPS+IMU+轮速计的传感器融合定位方案

基于稀疏语义视觉特征的道路场景的建图与定位

自动驾驶中基于激光雷达的车辆道路和人行道实时检测(代码开源)

用于三维点云语义分割的标注工具和城市数据集

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

TOF相机原理介绍

TOF飞行时间深度相机介绍

结构化PLP-SLAM:单目、RGB-D和双目相机使用点线面的高效稀疏建图与定位方案

开源又优化的F-LOAM方案:基于优化的SC-F-LOAM

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

基于鱼眼相机的SLAM方法介绍

3D视觉与点云学习星球:主要针对智能驾驶全栈相关技术,3D/2D视觉技术学习分享的知识星球,将持续进行干货技术分享,知识点总结,代码解惑,最新paper分享,解疑答惑等等。星球邀请各个领域有持续分享能力的大佬加入我们,对入门者进行技术指导,对提问者知无不答。同时,星球将联合各知名企业发布自动驾驶,机器视觉等相关招聘信息和内推机会,创造一个在学习和就业上能够相互分享,互帮互助的技术人才聚集群。

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入知识星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享与合作方式:微信“cloudpoint9527”(备注:姓名+学校/公司+研究方向) 联系邮箱:dianyunpcl@163.com。

为分享的小伙伴们点赞吧!

6fb9530104a643d2bc808ab7e5fca152.gif

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能Python-python_geohash

Python GeoHash: 将位置信息转换为字符串 在现代生活中,我们经常需要处理和分析大量的位置信息,包括地图、GPS、定位等。而一种流行的做法是将位置信息转换为字符串,并使用该字符串进行存储、传输和查询。GeoHash就是一种将位置信息压缩为字…

Tomcat之服务管理页面manager部署

一、tomcat服务管理页面manager简介 Tomcat的管理页面Manager是一个Web应用程序,用于管理Tomcat服务器的部署和操作。它提供了一个易于使用的界面,可以通过Web浏览器访问。Manager可以帮助管理员对Tomcat服务器进行以下操作: 部署/卸载Web应…

chatgpt赋能Python-python_gil

简介 Python(特别是 CPython 实现)有一个全局解释器锁(Global Interpreter Lock,简称 GIL),它的作用是确保只有一个线程可以执行 Python 代码。这让多线程 Python 程序的并发性有所限制。 为什么需要 GIL…

谁在杀死 ChatGPT ?

作者| Mr.K 编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) AI浪潮汹涌而来,离我们越来越近,有时候近到只差一个APP的距离。很多人把AI科技可能带来的全方位社会变革,称之为第四次科技革命,把ChatGPT称为“第四次科…

【010】C++运算符详解

C运算符详解 引言一、运算符概述二、算术运算符三、复合运算符四、关系运算符五、逻辑运算符六、位运算符&#xff08;二进制位运算&#xff09;6.1、& 按位与6.2、| 按位或6.3、~ 按位取反6.4、^ 按位异或6.5、<< 左移&#xff1a;左边丢弃&#xff0c;右边补零6.5、…

MySQL高级篇——排序、分组、分页优化

导航&#xff1a; 【Java笔记踩坑汇总】Java基础进阶JavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线MySQL高级篇设计模式牛客面试题 目录 5. 排序优化 5.1 排序优化建议 5.2 测试 5.2.1 案例验证 5.3.2 练习 5.3 范围查询时索引字段选择 5.4 filesor…

chatgpt赋能Python-python_fem

Python在有限元分析中的应用 什么是有限元分析 有限元分析&#xff08;Finite Element Analysis, FEA&#xff09;是一种针对工程结构、材料及其它物理现象进行数值仿真的方法。它通过将结构或者物理现象的连续域分割成有限个小元素&#xff0c;再在每个小元素中建立数学模型…

【搭建HTTP服务器】使用Nodejs搭建简单的HTTP服务器

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

当在网页浏览器的地止栏中输入URL或关键词时,web页面是如何呈现的?

前言 当我们在浏览器中输入一个url,或在搜索引擎或网站内,输入一个关键词进行搜索时,页面发生了什么呢? 即使不了解其中的原理,也能看到web页面 在浏览器地止栏内输入一个url之后,信息会被传到某些地方(后台,可以成为服务端)&#xff0c;然后后台得到响应后,从后台(服务端)返回…

Day4——数据库基础1(已完结)

Day4——数据库基础 数据库基础--基于phpstudy自带的MySQL数据库&#xff08;下载了PHPstudy后就无需下载额外的MySQL&#xff09; 一、数据库概念1、为什么要学习数据库&#xff1f;2、什么是数据库&#xff1f;3、数据库的访问方式4、数据管理技术经历的三个阶段5、关系型数据…

YOLOv5区域检测计数+声音警报

YOLOv5区域检测计数声音警报 1. 相关配置2. 检测区域设置3. 画检测区域线&#xff08;不想显示也可以不画&#xff09;4. 报警模块5. 计数模块6. 代码修改6.1 主代码6.2 细节修改&#xff08;可忽略&#xff09; 6. 实验效果 本篇博文工程源码下载 链接1&#xff1a;https://gi…

docker 的yum安装

目录 一、配置docker官方的yum仓库 1&#xff09;安装工具yum-utils 2&#xff09;调用yum-utils工具的命令 yum-config-manager 添加 docker官方的社区版yum仓库 二、docker版本选择安装 1、查看docker发布的版本 2、yum 安装docker 3、启动服务&#xff0c;设置开机启…

腾讯云服务器地域怎么选?不同地域有什么区别?

腾讯云服务器地域有什么区别&#xff1f;怎么选择比较好&#xff1f;地域选择就近原则&#xff0c;距离地域越近网络延迟越低&#xff0c;速度越快。关于地域的选择还有很多因素&#xff0c;地域节点选择还要考虑到网络延迟速度方面、内网连接、是否需要备案、不同地域成本因素…

逆波兰算法

目录 介绍一下逆波兰算法 能举一个逆波兰算法应用的运算示例吗&#xff1f; 介绍一下逆波兰算法 逆波兰算法&#xff0c;也称为后缀表达式算法或逆波兰记法&#xff0c;是一种用于计算数学表达式的算法。与常见的中缀表达式&#xff08;如 3 4&#xff09;不同&#xff0c;逆…

系统设计 - 设计一个速率限制器

实施速率限制器的位置主要取决于我们的应用程序、技术栈、技术团队等因素。通常有三个位置可供选择&#xff1a;客户端、服务器端或中间件。 客户端是不可靠的地方来执行速率限制&#xff0c;因为恶意行为者可以轻易伪造客户端请求。 比将速率限制器放在服务器端更好的方法是使…

海量视频处理的应对和算法实践

随着短视频、直播、智慧城市、5G等的快速发展&#xff0c;视频内容铺天盖地&#xff0c;五花八门&#xff0c;相应的处理需求也多种多样。如何能高效地应对&#xff1f;需要在数据处理系统&#xff0c;底层计算能力&#xff0c;以及算法研究等多方面协同努力。LiveVideoStackCo…

深度:ChatGPT只是表面的喧嚣,大模型才是那柄尖刀!

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 如果把时钟拨到2023年底&#xff0c;当我们回过头来看今年科技界最激动人心的大事件&#xff0c;ChatGPT的横空出世无疑会占据一席之地。就像几年前大家被谷歌AlphaGo点燃对人工智能的热情一样&#xff0c;人们对ChatGPT的热…

安装 Jenkins 2.346.3 LTS

环境&#xff1a; apache-tomcat-8.5.88 Jenkins 2.346.3 LTS Running Jenkins system Jenkins requires Java 11 or 17 since Jenkins 2.357 and LTS 2.361.1. Read more about this in the announcement blog post. https://www.jenkins.io/doc/administration/requirement…

SSM_jsp游戏-账-号-装-备虚拟物品交易系统

开发语言&#xff1a;Java 框架&#xff1a;ssm 前端框架:jsp/Bootstrap JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat8 数据库工具&#xff1a;Navicat 开发软件&#xff1a;idea 支持eclipse 游戏账号交易系统主要是为了提高工作人员的工作效率和更方便快捷的满足用户…

AIPRM for ChatGPT 是一个 Chrome 浏览器扩展程序

AIPRM for ChatGPT 是一个 Chrome 浏览器扩展程序&#xff0c;基于 Chromium 内核开发的浏览器&#xff0c;都可以使用该扩展&#xff0c;比如微软的 Edge 浏览器等。 在 AIPRM 的帮助下&#xff0c;我们可以在 ChatGPT 中一键使用各种专门为网站 SEO、SaaS、营销、艺术、编程…