SDV-LOAM:半直接视觉和激光雷达融合SLAM

2023-05-16

596ed10f79058ce53385087d17079a18.png

在公众号「3D视觉工坊」后台回复「原论文」,可获取对应论文pdf文件。

参考论文:SDV-LOAM: Semi-Direct Visual–LiDAR Odometry and Mapping

作者机构:华中科技大学人工智能研究所

论文链接:[https://ieeexplore.ieee.org/document/10086694]

项目主页:[https://github.com/ZikangYuan/SDV-LOAM)

赠书

点击下面卡片,关注“计算机视觉工坊

在公众号「计算机视觉工坊」后台

回复:抽奖,即可参与抽奖

中奖者可在以上书单里任意挑选一本

备注:中奖者挑选的书籍,需能够在线上购买(京东、淘宝均可),

且每本书价格不得超过100元,由工坊小助理直接为中奖者购买。

开奖时间:2023年5月31日早八点

中奖名额:5

也欢迎小伙伴在留言区补充书单哦~

a9cc2a5c3d687e02cd007f94c6256da4.gif

本文介绍了SDV-LOAM,一种融合相机和 LiDAR 信息的系统,用于实现准确、强大的姿态估计和建图。现有方法使用特征或直接方法作为视觉模块,无法很好地处理视觉模块中稀疏特征建立造成的误差。作者的动机是结合两种方法的优势来实现准确的姿态估计。本文提出的研究方法SDV-LOAM 包括,半直接视觉里程计模块和自适应扫描LiDAR里程计模块,提出一种新型的点特征提取和匹配方法来传播点和减少帧间的尺度差异。SDV-LOAM在KITTI训练集上的性能排名第八,比现有大多数的LiDAR和视觉-LiDAR系统都要好,可以在大型环境中实现高精度和输出频率。

1 背景

本文介绍了一种基于相机和激光雷达的视觉里程计和建图系统。传统的基于特征、直接和半直接方法的视觉里程计/SLAM系统,以及各种基于LiDAR的里程计方法无法很好地处理视觉模块中稀疏特征建立造成的误差。视觉里程计具有很高的姿势估计输出频率,但是在图像数据中存在大量噪声的情况下,其精度可能会显著降低,并且获得的地图通常很稀疏。激光雷达里程计依靠激光雷达点中包含的几何信息进行跟踪,并不断更新具有丰富几何结构的点云地图。本文提出一种适用于大规模环境的视觉-LiDAR里程计和建图系统,能够综合利用两个传感器的信息,实现高效、高精度的姿态估计与实时建图。系统架构如下图所示

4d0af52801b81bc3f05e0566f90da79b.png

SDV-LOAM包括两个主要模块:半直接深度增强视觉里程计和LiDAR里程计。视觉模块和LiDAR模块由扫描重建块组合,将 LiDAR 点云的输入频率提高到与相机图像相同的频率。与现有方法相比,黄色块突出了我们的主要贡献。需要说明的是,60 Hz 视觉姿态和60 Hz 重建是假设无限计算资源的理想频率。为了描述方便,我们在这里使用 60 Hz 视觉姿态和重建云。事实上,视觉和 LiDAR 模块都可以在 20 Hz 左右运行。

2 方法

2.1 半直接视觉里程计

半直接视觉里程计模块直接提取高梯度像素,3D LiDAR点投射到这些像素上进行跟踪。该模块使用一种新颖的点匹配与传播方法,将主机帧的点传播到更接近当前帧的中间关键帧,以减少比例差异。半直接视觉里程测量模块由三个主要步骤组成:特征提取、特征匹配和姿势估计。在特征提取步骤中,该模块从当前图像帧和中间关键帧中提取高渐变像素。在特征匹配步骤中,该模块使用一种新的点匹配与传播方法在当前帧和中间关键帧之间匹配提取的特征。具体来说,该方法解决在点匹配中出现的深度匹配问题的方法。该方法首先在当前帧中直接找到特征点的对应物,然后通过将它们投影到中间帧上,找到中间帧上与它们对应的特征点,在最终的目标帧中再用中间帧上找到的对应点与之匹配。该方法对于跨越时间较长的帧间点匹配能够有效降低尺度差异所带来的匹配误差。在姿势估计步骤中,模块使用匹配的特征估计当前帧和中间关键帧之间的相对姿势。该模块还使用了强大的鲁棒核函数来拒绝特征匹配步骤中的异常值。

d7ebcefa09a1641b50d243dda496b61a.png

88c644155c593d63460aa755a66db51a.png

2.2 自适应扫描映射 LiDAR 里程计模块

LiDAR 模块中的自适应扫描映射方法根据垂直方向上几何约束的丰富度,自动选择优化 3 个水平自由度或 6 个全自由度姿势。该方法使用了一种新颖的扫描重建方法,可以将LiDAR点云的输入频率提高到与相机图像相同的频率,进而在理论上产生LiDAR里程计的高频输出。该方法减少了垂直方向的姿态估计漂移,提高了多个现有开源 LiDAR 里程计系统的性能。

27459e43287a6aa539249786106ea9bc.png

扫描重建算法示意图。10Hz输入原始点云Sj、Sj+1、Sj+2叠加重构得到60Hz重构点云Si+7、Si+8、···、Si+17

3 实验

本文的实验部分评估了SDV-LOAM在KITTI里程计基准测试和使用定制硬件平台的大规模环境中的性能。结果显示,SDV-LOAM在KITTI里程计基准测试中排名第8位,表现优于大多数激光雷达/视觉激光雷达里程测量系统。SDV-LOAM 的视觉模块的性能也优于最先进的视觉里程测量系统。LiDAR 模块中的自适应扫描到地图优化方法提高了多个现有开源 LiDAR 里程计系统的性能。演示了SDV-LOAM在使用定制硬件平台的大规模环境中的有效性。

103ff46652d03d1c6cecd5f3ce0a0d68.png

表 5 中的结果表明,提出的视觉模块在所有序列上都优于 DEMO,在 KITTI 上的大多数序列上优于DVL-SLAM,其中我们方法的 RTE 比 DEMO 低 37.9%,比 LIMO 低 15.3%,比 DVL-SLAM 等人低 23.4%,在序列 00-10 的平均结果上比 DVL-SLAM 低 26.5%,在序列 11-21 的平均结果上比 DEMO 低 22.8%,比 LIMO 低 5.4%。对于序列03、04、07,我们系统的准确率低于Huang等人,因为这三个序列中有丰富的线特征,而Huang等人的准确率有所提高。在英特尔酷睿 i7-11700 CPU 上,我们的 VO 运行时间为 0.06 秒/帧。相比之下,LIMO 需要语义标签信息来识别移动物体并拒绝异常值,因此需要 GPU 进行加速。同时,LIMO 和DVL-SLAM都不能实时运行。我们的方法可以在仅 CPU 的平台上实时有效地运行。我们的视觉里程计在序列1121上的测试结果也发布在官网,名称缩写为“SD-DEVO”。值得一提的是,DEMO是V-LOAM中使用的视觉模块。因此,与 DEMO 的比较结果也可以证明我们的 VO 优于 VLOAM。

欢迎关注微信公众号「3D视觉工坊」,加群/文章投稿/课程主讲,请加微信:dddvisiona,添加时请备注:加群/投稿/主讲申请

33c39111758f0acf202ee144bd886578.png扫描重建实验。(a)-(d) 是没有扫描重建的结果,而 (e)-(h) 是有扫描重建的结果。轨迹上点的分辨率反映了我们的 LiDAR 里程计输出姿势的频率。(a)-(d) 和 (e)-(h) 之间的比较表明我们的扫描重建块可以有效地提高 LiDAR 位姿估计的频率。

4 总结

a. 工作的意义:提出一种新型的视觉-LiDAR里程计和建图系统SDV-LOAM,能够综合利用相机和激光雷达的信息,实现高效、高精度的姿态估计和实时建图,且性能优于现有的相机和激光雷达系统。b. 创新、性能 该系统采用半直接视觉模块、自适应扫描映射LiDAR模块和新型点提取和匹配方法,解决了视觉-LiDAR集成中稀疏特征建立导致的问题,自适应优化姿态估计、增加LiDAR原始点云输入频率,并且在KITTI数据集和自行搭建的硬件平台上实现了良好的性能。c. 研究结论 SDV-LOAM 可以综合利用相机和激光雷达的信息,实现姿态估计和实时地图构建 系统算法性能在KITTI数据集上优于其他系统。该系统的算法性能和实践证明了其在实际场景中的准确性和鲁棒性。SDV-LOAM 可以进一步开发,例如将LiDAR深度作为视觉 BA 的软约束来使用。

添加小助理微信dddvisiona, 即可加入「SLAM」微信群。

395d57d05b66e9c501ac2e4189dfc2ea.png
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SDV-LOAM:半直接视觉和激光雷达融合SLAM 的相关文章

  • Apollo:source cyber/setup.bash的作用

    source cyber setup bash 是在使用Apollo开发过程中 xff0c 用于加载Apollo软件的配置以及环境变量的脚本 Apollo是一款自动驾驶开发平台 xff0c cyber是其中的一个核心模块 xff0c 提供了
  • 什么样的人当不好程序员?

    什么样的人当不好程序员 xff1f 2016 01 21 程序员之家 来源 xff1a 36Kr 译文 xff1a http 36kr com p 5042433 html 原文 xff1a https goo gl jLfUFq 软件蚕食
  • java基础语法(顺便回顾cpp语法并比较与java的异同)

    变量 标识符 关键字与数据类型 1 标识符命名风格约定 xff1a 不能以数字开头 xff0c 也不能有 等符号 可以有 和 但不用作开头 方法名 变量名首单词小写 xff0c 其余单词首字母大写 如anyVariableName 类名 接
  • 刷leetcode,锻炼编程能力(c++)

    力扣20 xff0c 有效的括号 xff0c 栈 span class token macro property span class token directive keyword include span span class toke
  • 华为笔试题库之困难--难度

    题记 xff1a 若立志投身算法研究 xff0c 可精研理论算法 xff1a 动态规划 递归 深度搜索等 xff1b 若以解决问题为目的 xff0c 主要为了工作内容 xff0c 当尝试快而简单的方法 xff0c 这该是学习的本意 1 素数
  • C++ - opencv应用实例之矩形框检测

    C opencv应用实例之矩形框检测 现阶段下 目标检测在实际应用场景中的表现颇为重要 工业质检 移动机器人视觉伺服 作业 交通监控 安防领域等均需要通过目标检测来实现对目标的定位 测量或者统计 辅助控制等 目前目标检测主要分为两个方向的发
  • cpp-5 : Depends: gcc-5-base (= 5.3.1-14ubuntu2) but 5.4.0-6ubuntu1~16.04.11 is to be installed

    在5 4 0 6ubuntu1 16 04 11 cpp 5 amd64 Xenial 16 04 Ubuntu上下载对应的版本 xff0c 国 内源的版本都是5 4 0 6ubuntu1 16 04 12 xff0c 最后一位是12 xf
  • Questasim SystemC 指令sccom

    QuestaSim sccom 10 6c 1 compiler 2017 09 Sep 15 2017 Usage sccom options CPP compiler options lt CPP files gt General Op
  • MacOS 安装curl和wget

    目录 1 什么是curl和wget1 1 curl1 2 wget1 3 curl和wget的区别 2 安装curl2 1 利用wget安装curl2 2 直接下载curl源码编译安装 推荐 3 安装wget3 1 利用Homebrew安装
  • linux tty core 源码分析__tty_read,__tty_write,__tty_poll,

    转载 xff1a http blog csdn net sirzjp article details 6134489 前面分析了open操作 xff0c 现在分析读操作tty read tty read直接调用线路规程中的读操作从tty g
  • D触发器二分频电路

    D触发器二分频电路 有时真的要感慨一下自己电路学的够烂的 xff0c 啥都不会 xff0c 做示波器要学习分频电路 xff0c 学呗 将D触发器的Q非端接到数据输入端D即可实现二分频 xff0c 说白了就是CLK时钟信号的一个周期Q端电平反
  • 自动驾驶系列(十)编写电动车ROS节点(刹车)

    一 硬件控制协议 对于不同的设备 xff0c 底层的通讯方式都不一致 xff0c 因此需要根据具体硬件具体分析 本系统 采用了1个CAN盒子控制转向 xff0c 1路DA控制油门 xff0c 另外一路DA控制刹车 1 xff0c 转向协议
  • 【Mapreduce】利用单表关联在父子关系中求解爷孙关系

    首先是有如下数据 xff0c 设定左边是右边的儿子 xff0c 右边是左边的父母 Tom Lucy Tom Jack Jone Lucy Jone Jack Lucy Mary Lucy Ben Jack Alice Jack Jesse
  • 【C++】Split

    如果要将类似 aa ss ff 的字符串按空格分割成一个个字符 xff0c Java C PHP或者python等其它语言写多的人 xff0c 就会认为split一个理应存在的方法 xff0c 实际上C 43 43 中并没有这个方法 xff
  • TX2模组镜像备份与刷机

    1 环境搭建 1 1 下载驱动包和根文件系统 进入https developer nvidia com embedded linux tegra r3251下载两个文件 xff0c L4T Driver Package BSP 和Sampl
  • STM32——Keil5的编译警告和错误订正

    这是第一次写博客 xff0c 这里都是我在修改stm32代码遇到的一些警告和错误的改正 xff0c 其中有很多解决方法都是在网上找的 xff0c 也有一些还没解决的 xff0c 望指点 513 D HARDWARE 1U src Uart
  • stm32堆栈的认知

    flash和SRAM的区别 flash可以像硬盘一样存数据 xff0c 也可以直接像RAM运行 xff0c 一般在里面放bootload xff0c 程序执行代码 1 stm32中的堆栈 单片机是一种集成电路芯片 xff0c 集成cpu r
  • Liunx使用apt安装本地deb软件包

    平常都是用 dpkg i 来安装本地deb软件包 但是 dpkg 不会自动安装依赖包 xff0c 因此安装很容易出现依赖相关的错误 之后需要通过运行 sudo apt get install f 来安装依赖 可以直接通过 apt apt g
  • NeRFLiX,NeRF新高度!

    作者丨小张Tt 来源丨计算机视觉工坊 论文题目 xff1a NeRFLiX High Quality Neural View Synthesis by Learning a Degradation Driven Inter viewpoin
  • 研究生,真的“太多”了?

    来源丨软科 2023年毕业季已经临近 xff0c 据人力资源和社会保障部的数据显示 xff0c 今年我国高校毕业生人数将达到1158万 xff0c 继去年之后 xff0c 国内高校毕业生数量再次破千万 在毕业生人数创新高的同时 xff0c

随机推荐