开源3D激光雷达闭环检测方法

2023-05-16

目前主流的激光雷达闭环检测策略主要有以下几种:

  1. 点到点的匹配(point to point matching):经典方法如ICP、NDT及其变种。

  1. 关键点与描述子:从3D点云中检测关键点,然后从关键点位置提取描述子,构建词袋模型BoWs进行场景匹配,如BoW3d方法。

  1. 全局描述符,从点云中提取全局描述符,如ESF、FPFH、VFH、M2DP、histogram、Scan Context等。

  1. 深度学习方法,经典方法如PointNetVLAD、OverlapNet、SegMap等等。

下面列出几种经典的应用较多的开源方案,具体想了解某一种方法的话大家还是自己阅读论文:

一、2D histogram

论文:《A fast, complete, point cloud based loop closure for LiDAR odometry and mapping》

GitHub地址:https://github.com/hku-mars/loam_livox

该方法被用在loam_livox中,适用于像livox这种非重复扫描的固态激光雷达,也适用于传统的机械式激光雷达。该方法速度快,对旋转不变。

论文中使用的2D直方图是一个60×60的矩阵(在俯仰角和偏航角上都有3°的分辨率),矩阵的元素表示具有特定俯仰角θ和偏航角φ的线/面单元的数量。

为了增加2D直方图对可能噪声的鲁棒性,对每个2D直方图应用高斯模糊。

使用归一化互相关作为当前关键帧与地图中关键帧之间的相似度度量。

二、Scan Context系列

论文:《Egocentric Spatial Descriptor for Place Recognition Within 3D Point Cloud Map》

GitHub地址:irapkaist/scancontext: Global LiDAR descriptor for place recognition and long-term localization (github.com)

Scan Context可以说是目前最经典应用最多的激光闭环检测算法了吧,被大家广泛集成到LOAM系列的SLAM算法当中,效果也不错。近期也衍生出很多变种,如Scan Context++,Intensity Scan Context,Semantic Scan Context等。

Scan Context中保存的是点云每块区域中的最大的高度,因此势必也会丢失很多点云信息,导致它在室内使用有一定的局限性。

三、LiDAR-Iris

论文:《LiDAR Iris for Loop-Closure Detection》

GitHub地址:BigMoWangying/LiDAR-Iris: LiDAR Iris for Loop-Closure Detection(IROS 2020) (github.com)

论文描述中,该方法的提出主要是为了解决Scan Context存在的一些缺陷,一是它只利用了最大的高度,丢失了很多点云信息,二是Scan Context不具有旋转不变性,需要进行暴力匹配,三是Scan Context缺少特征提取步骤。

提出了一个LiDAR点云的全局描述符LiDAR Iris,将一块区域总结为在LiDAR-Iris图像表示上进行几次Gabor过滤和阈值操作后获得的二进制签名图像, 充分利用了点云的大部分信息。

该全局描述符具有旋转不变性,避免了暴力搜索,节约了计算资源。

四、LinK3D+BoW3D

论文:《LinK3D: Linear Keypoints Representation for 3D LiDAR Point Cloud》

《BoW3D: Bag of Words for Real-Time Loop Closing in 3D LiDAR SLAM》

GitHub地址:https://github.com/YungeCui/BoW3D

借鉴VSLAM中的词袋模型思路,提出了Link3D描述子,提取流程如下图。LinK3D的核心思想是将当前关键点描述为其相邻关键点的线性表示。首先提取鲁棒聚集关键点,然后将提取的聚集关键点输入描述符生成算法,该算法以新的关键点表示形式生成描述符。在得到描述符后,所提出的匹配算法可以快速匹配两次激光雷达扫描的描述符。

论文中提到提取LinK3D特征平均需要32毫秒,匹配两次LiDAR扫描的描述符需要8毫秒,重定位需要13毫秒。

五、OverlapNet

论文:《OverlapNet: Loop Closing for LiDAR-based SLAM》

GitHub地址:https://github.com/PRBonn/OverlapNet

OverlapNet是一种基于深度学习的闭环检测算法,并将其集成到了SuMa++当中,作者是波恩大学的Xieyuanli Chen。

OverlapNet无需先验位姿信息,旨在解决在自动驾驶中3D LiDAR SLAM 的闭环检测问题。

它不需提前知道两个雷达扫描的相对位姿,只利用范围、法向量、强度和语义(RangeNet++)等线索,使用深度神经网络直接估计两个激光雷达扫描的重叠率,以及相对偏航角。网络由两个共享权重的Legs和由Legs生成的相同特征体积对的Head组成。Overlap输出的是重叠率,Yaw输出的是偏航角。

在不同数据集上泛化性能不错。作者训练模型使用的是 KITTI 数据集,在 Ford campus 数据集上进行测试评估。实验表明该方法仍然能够比最新的方法更有效地检测闭环。

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

开源3D激光雷达闭环检测方法 的相关文章

  • 直播PPT分享-如何体现数据同学的业务敏感度

    今天即兴给大家直播分享了一次 xff0c 反馈还比较不错 xff0c 不少童鞋私信我要ppt xff0c 这里就统一发出来给大家参考了 xff0c 其实内容很少 xff0c 6句话搞定 以后 xff0c 居士会不定期地直播分享 xff0c
  • 无题

    今天在思考一个问题 xff0c 关于互联网行业的 xff0c 其他行业还不太清楚不敢妄加评论 互联网行业在当前社会中其实面临着很多社会问题需要解决和探索 xff0c 比如职业发展的不确定性 35岁的职业危机 职业社交关系的难处理 xff0c
  • Markdown学习笔记:如何画流程图

    如何使用markdown画流程图 话说网上关于使用markdown画流程图的相关的教程真是一堆堆的坑 xff0c 我丝毫不怀疑这些博文作者确实是知道如何使用markdown画流程图了 xff0c 但是写出来的文章却丝毫没有明白具体的使用方法
  • Gradle打jar包,包含所有依赖

    前言 最近被gradle折腾的欲仙欲死 gradle想把所有依赖打进jar包主要有两种方式 xff1a 一种是重写jar动作 xff0c 一种是用第三方插件 为了装x xff0c 我一直都是用的第一种方式 xff0c 结果出了问题解决不了
  • Spring Data Rest如何暴露ID字段

    前言 为了懒省事 xff0c 使用Spring Data Rest来直接提供rest接口 xff0c 重点遇到点小坑 xff0c 记录一下 记录 问题 entity xff1a span class hljs annotation 64 E
  • hadoop清空回收站

    直接删除目录 xff08 不放入回收站 xff09 hdfs dfs span class hljs attribute rm span span class hljs attribute skipTrash span path span
  • 漫谈数据仓库之拉链表(原理、设计以及在Hive中的实现)

    0x00 前言 本文将会谈一谈在数据仓库中拉链表相关的内容 xff0c 包括它的原理 设计 以及在我们大数据场景下的实现方式 最新文章已经迁入公众 xff1a 木东居士 全文由下面几个部分组成 xff1a 先分享一下拉链表的用途 什么是拉链
  • 《数据仓库实践》

    序言 2017 年初 xff0c 我开始在简书上写关于数据仓库的系列博客 xff0c 博客主题围绕大数据场景下数据仓库的理论和实践来展开 xff0c 截止现在已有十篇左右 最初写作的时候主要是抱着学习和总结的态度 xff0c 导致很多地方略
  • 一种计算用户留存的方法

    0x00 概述 用户留存分析是互联网时代常用的一种数据分析方法 而很多快速发展的公司并没有相应的方法论沉淀 xff0c 这就导致了在计算用户留存的时候会出现下面的一些问题 xff1a 1 xff09 用户留存的定义不明确 xff0c 不同的
  • MAVLink--结构

    MAVLink源文件结构 MAVLink是为微型飞行器MAV xff08 Micro Air Vehicle xff09 设计的 xff08 LGPL xff09 开源的通讯协议 是无人飞行器和地面站 xff08 Ground Contro
  • 关于函数strtok和strtok_r的使用要点和实现原理(二)

    xff08 一 xff09 中已经介绍了使用strtok函数的一些注意事项 xff0c 本篇将介绍strtok的一个应用并引出strtok r函数 1 一个应用实例 网络上一个比较经典的例子是将字符串切分 xff0c 存入结构体中 如 xf
  • TX2 ubuntu CPU占用率、占用物理内存、占用虚拟内存、进程ID、系统温度

    文件解释 在实际工作中有时需要程序打印出某个进程的内存占用情况以作参考 下面介绍一种通过Linux下的伪文件系统 proc计算某进程内存占用的程序实现方法 首先 为什么会有所谓的 伪文件 呢 Linux系统的文件类型大致可分为三类 普通文件
  • 【Fast RTPS】入门--------Ubuntu系统下

    RTPS协议的简单介绍 在RTPS的顶层 xff0c Domain域定义了不同的通信层 几个域可以同时独立地共存 域包含任意数量的参与者Participants xff0c 即发送和接收数据的元素 参与者使用端Endpoints xff1a
  • Linux 内核配置选项(转)

    Linux 内核配置选项 from http www mitbbs com mitbbs article t php board 61 Linux amp gid 61 10715608 amp ftype 61 0 第一部分 01 Cod
  • Cortex-M3双堆栈MSP和PSP

    什么是栈 xff1f 在谈M3堆栈之前我们先回忆一下数据结构中的栈 栈是一种先进后出的数据结构 类似于枪支的弹夹 xff0c 先放入的子弹最后打出 xff0c 后放入的子弹先打出 M3内核的堆栈也不例外 xff0c 也是先进后出的 栈的作用
  • 烧毁DC/DC电路问题

    使用芯龙半导体的XL7005A DC DC芯片 已经很多年了 xff0c 用的也很稳定 这次在做一个设备的时候 xff0c 系统上电就会烧DC DC芯片以及系统电路中的LDO和MCU等 试了很多次终于发现规律了 xff0c DC DC电路就
  • FreeRTOS内核全局变量

    想要分析FreeRTOS源码 xff0c 想要理解FreeRTOS源码的整个宏观架构 xff0c 有一个前提就是必须知道FreeRTOS内核中那些全局变量的意义 xff0c 每个全局变量都是用来干什么的 只有了解了这些全局变量我们才能从宏观
  • 基于LWIP协议栈RAW API的 UDP传输实验

    什么是UDP xff1f UDP是用户数据报协议 xff0c 是OSI参考模型中的传输层协议 UDP的特点 缺点 xff1a 无连接的 xff0c 不可靠的 xff0c 不能保证数据安全到达目的地 优点 xff1a 消耗资源小 xff0c
  • 初识CANOpen

    什么是CANOpen CANOpen是位于CAN总线之上的一个应用层协议 CAN总线只规定了物理层和数据链路层 xff0c 有了这两层 xff0c 数据就可以在CAN总线上传输了 我们和哪个设备通信就和哪个设备约定好 xff0c 哪个ID代

随机推荐

  • STM32单片机被锁无法烧写程序解决办法

    以前遇到无法烧写程序的问题 在开发中 xff0c 单片机突然无法烧写程序 xff0c 这种情况相信大家应该都遇到过 比如烧写程序引脚被设置为别的功能 这种情况也是最常见的 我们可以把复位电容短路 xff0c 让单片机复位 xff0c 然后点
  • STM32F407以太网DMA描述符和数据链路层收发数据

    本文主要介绍STM32F407单片机MAC内核的DMA描述符 xff0c 以及如何实现以太网二层的数据收发 这一篇先实现数据链路层的正常收发 xff0c 下一篇再去介绍如何把LWIP移植到单片机上 大部分资料都是把LWIP移植和以太网卡驱动
  • linux查看日志常用命令

    线上环境出现问题 xff0c 熟悉常用的日志操作命令 xff0c 对有效的排查出问题至关重要 下面将介绍一些常用的命令 xff0c 一起学习下 1 tail命令 xff08 查询日志文件尾部 xff09 tail f 日志文件 xff1a
  • 定时事件链表

    本文主要写的是 xff1a 将需要定时的事件作为一个链表节点添加到链表中 所写代码是从LWIP源码中复制出来的 xff0c 稍作修改 当阅读到lwip源码timers c文件中的sys timeout函数时 xff0c 觉得非常适合如下一种
  • LAN8720A芯片

    LAN8720A是一个10 100M 的以太网PHY芯片 带有SMI接口 xff0c 支持RMII LAN8720A各个管脚的功能 xff1a MDIO MDC是站管理接口 SMI接口 引脚 SMI是标准接口 xff0c 比如交换机芯片一般
  • 无刷无霍尔BLCD电机控制

    声明 xff1a 本文出自百度文库无刷无霍尔电机控制 xff0c 因为该文为繁体 xff0c 看起来特别别扭 xff0c 特此翻译 文库网址 xff1a span class hljs label https span wenku span
  • 如何高效阅读一篇论文?来自18位教授、主编和博士生的最好建议!

    撰文 Elisabeth Pain xff08 翻译 何伟雄 xff1b 审校 魏潇 xff09 文章来源自公众号科研圈 xff08 ID xff1a keyanquan xff09 即便是专业的科研从业者 xff0c 也无法做到像看小说一
  • 了解FreeRTOS操作系统

    对于初学者来说 xff0c 想要弄懂FreeRTOS操作系统 xff0c 首先需要知道FreeRTOS需要包含哪些文件 xff0c 从官网 https sourceforge net projects freertos files 上下载的
  • Windows程序的入口是哪里?写出Windows消息机制的流程

    Windows程序的入口是WinMain 函数 Windows应用程序消息处理机制 xff1a A 操作系统接收应用程序的窗口消息 xff0c 将消息投递到该应用程序的消息队列中 B 应用程序在消息循环中调用GetMessage函数从消息队
  • Linux内核编译与安装:4.4.0-21→4.14.0

    1 背景 从事Linux环境下开发工作 xff0c 一直想自己玩 xff0c 纯属好奇 xff0c 没撒背景 2 编译环境 zg Linux etc uname a xff08 查看内核 xff09 Linux zg Linux 4 4 0
  • gazebo的学习与使用

    Gazebo教程 xff08 使用roslaunch启动Gazebo world文件和URDF模型 xff09 启动Gazebo xff0c 打开world模型以及向仿真环境中插入机器人模型的方法有很多 xff0e 在这个教程中 xff0c
  • KDD2019经典论文奖-CELF算法实现

    数据挖掘 KDD 领域 CELF 已成为一种经典的 社会网络影响最大化发现算法 xff0c 用于 改进贪心算法 的 效率 提升 700 获得 KDD 2019 的 经典论文 奖 xff0c 作者 xff1a Jure Leskovec xf
  • 英语常用短语1

    What are you trying to say xff08 你到底想说什么 xff1f xff09 Don 39 t be silly xff08 别胡闹了 xff09 How strong are your glasses xff0
  • MapReduce之MR处理:按课程排学生名词以及最高最低平均分数

    根据此篇文章可以熟练使用Reduce阶段进行分组 xff0c 并且了解jdk8新特性代码 我们开看下原始数据 某地方编辑的txt文件数据不是太大 xff1a English liudehua 80 English lijing 79 Eng
  • Facebook开源Surround 360全景摄像机

    Surround 360诞生于Facebook在硅谷总部附近的神秘实验室 xff0c 并于2016年4月在旧金山的F8大会上发布 如今Facebook将全景摄像机的程序开源在GitHub上 xff0c 任何感兴趣的人都可以利用 Facebo
  • go get 报错fatal: The remote end hung up unexpectedly

    go gitee com wup file tranmon 64 v1 2 116aac invalid pseudo version git fetch unshallow f https gitee com wp file tranon
  • 2016.2.27 Px4 flow分析

    Px4 flow 分析 代码地址 https github com PX4 Flow 主要来分析最后一个函数 compute flow 原版代码的光流算法主要是使用 hist 直方图算法 xff0c 这段代码主要可以分成两部分来看 xff0
  • 16套51单片机开发板资料共享下载,拼命整理

    51单片机开发板 目录 手把手教你学51单片机 郭天祥51单片机TX 1C 51 视频教程征服你 单片机视频教程 汇编 给力者51单片机视频教程 慧净51单片机全套视频HJ C5 人人学会单片机教学资料 天狼星单片机学习教程 云龙51单片机
  • 如何学习嵌入式

    学习嵌入式应该两年了 第一次接触嵌入式的概念是在大一 xff0c 我遇到了一个好老师 他给我讲了很多课本之外的知识 也让我开始了 xff0c 超越我们同龄人的学习过程 首先说嵌入式是什么 xff1f 如果你从课本上搜概念 xff0c 大概就
  • 开源3D激光雷达闭环检测方法

    目前主流的激光雷达闭环检测策略主要有以下几种 xff1a 点到点的匹配 xff08 point to point matching xff09 xff1a 经典方法如ICP NDT及其变种 关键点与描述子 xff1a 从3D点云中检测关键点