激光雷达生成的图像检测关键点用来辅助里程计的方案

文章:LiDAR-Generated Images Derived Keypoints Assisted Point Cloud Registration Scheme in Odometry Estimation

作者:Haizhou Zhang , Xianjia Yu, Sier Ha , Tomi Westerlund

编辑:点云PCL

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

公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。侵权或转载联系微信cloudpoint9527。

摘要

关键点检测和描述子在各种机器人和自主应用中起着至关重要的作用,包括视觉里程计(VO)、视觉导航和同时定位与地图构建(SLAM)。尽管在传统相机图像中广泛研究了大量关键点检测器和描述子,但这些技术在激光雷达生成的图像(即反射率和距离图像)的背景下的有效性尚未得到评估。由于这些图像在恶劣条件下(如雨雾)具有鲁棒性,并且它们包含与激光雷达点云提供的几何信息相补充的显著纹理信息,因此它们备受关注,尤其是当仅依赖激光雷达传感器时,这解决了在激光雷达里程计(LO)中遇到的在几何上相同的场景中或者不是所有原始点云都提供信息且可能具有误导性的漂移挑战。

本文旨在通过全面的定量调查分析常规图像关键点提取器和描述子在激光雷达生成的图像上的适用性。此外提出了一种新方法来增强LO的鲁棒性和可靠性。在提取关键点之后继续对点云进行降采样,随后将其集成到用于里程计估计的点云配准阶段。我们的实验证明所提出的方法具有可比较的准确性,但计算开销减小,里程计发布速率更高,甚至在容易发生漂移的场景中,使用原始点云的性能更优越。这为随后研究将激光雷达生成的图像与LO集成奠定了基础。我们的代码可在 GitHub 上找到:https://github.com/TIERS/ws-lidar-as-camera-odom。

图片

图1:实验中运行的LiDAR里程计结果

主要贡献

视觉里程计(VO)或视觉惯导里程计(VIO)的方法在很大程度上依赖于视觉传感器的可操作性,需要相机内参的知识来促使运动结构估计(SfM)——这是激光雷达生成的图像未能满足的先决条件。这带来了从激光雷达生成的图像中以某种方式提取关键点的困难,以便在里程计估计中进一步应用。因此,为解决上述问题,在本研究的贡献有: 

  • i) 通过多个专门的度量标准对现有关键点检测器和描述符在激光雷达生成的图像上的有效性进行了调查,提供定量评估。 

  • ii) 对提高低分辨率激光雷达生成数据的最佳分辨率和插值方法进行了广泛研究,以更有效地提取关键点。 

  • iii) 提出了一种新颖的方法,利用检测到的关键点及其邻近点提取可靠的点云(降采样),以减小计算开销并减少有价值点获取中的缺陷。

内容概述

数据集 

为了评估关键点检测器和描述子以及我们提出的方法,我们使用了已发布的多模态LiDAR感知的开源数据集,该数据集包含各种LiDAR,其中Ouster LiDAR不仅提供点云,还提供其生成的图像。数据集中使用的Ouster LiDAR是OS0-128,其详细规格显示在表III中。

图片

图1:所提出的从连续点云恢复4D对象标签的模型的系统结构概述。

OS0-128生成的图像如图2所示,包括信号图像、反射率图像、近红外图像和距离图像,其覆盖了360°×90°的广阔视野, 信号图像是给定点返回到传感器的光信号强度的表示,它取决于诸如入射角、与传感器的距离以及物体的材料特性等各种因素。在近红外图像中,每个像素的强度由未由传感器自己的激光脉冲发出的检测到的光子数量表示,而是可能来自太阳光或月光等源。反射率图像中的每个像素表示计算得到的校准反射率。然后,距离图像展示了从传感器到环境中物体的距离。正如我们先前研究的结果所示,信号图像在计算机视觉领域的传统深度学习任务中表现出优越性能。

图片

图2:LiDAR生成图像样本,从上到下分别是信号图像、距离图像、反射率图像和点云。

为LiDAR生成的图像搜索最佳预处理配置

人工的LiDAR生成图像通常是全景的但低分辨率的,此外这些图像通常表现出相当程度的噪声,这引发了一个问题,即是否可以使用原始图像来促进关键点检测器和描述符算法的功能评估。我们的初步实验显示在使用未经修改的原始LiDAR生成图像时,跨一系列检测器和描述子的性能表现不佳。为了确定增加图像分辨率的最佳分辨率和插值方法,进行了一项广泛的比较实验。在这一部分中,我们对原始图像实施了一系列插值技术,使用了广泛的图像分辨率组合,插值方法包括双三次插值(CUBIC)、8x8邻域上的Lanczos插值(LANCZOS4)、使用像素面积关系重新采样(AREA)、最近邻插值(NEAREST)和双线性插值(LINEAR),预处理的主要过程在Algorithm 1中有详细说明。

图片

用于LiDAR生成图像的关键点检测器和描述子

检测器-描述子算法的评估工作流通常包括三个阶段,包括特征提取、关键点描述和在连续图像帧之间进行关键点匹配。

指定的关键点检测器和描述子:我们研究了表I中详细说明的一系列关键点检测器和描述符。所使用的关键点检测器包括SHITOMASI、HARRIS、FAST、BRISK、SIFT、SURF、AKAZE和ORB。此外,我们还将Superpoint,一个基于DL的关键点检测器,集成到我们的方法中。我们实验中实现的关键点描述符包括BRISK、SIFT、SURF、BRIEF、FREAK、AKAZE和ORB。

图片

图像之间的关键点匹配:关键点匹配是检测器-描述符工作的最后阶段,重点是在两个图像之间相关联关键点,这对于建立空间关系和形成一致的场景理解至关重要。两点之间描述符的距离越小,它们在两个图像之间是相同的点或对象的可能性就越大。在我们的实现中,我们采用了一种称为“带交叉检查的暴力匹配”的技术,这意味着对于图像A中的给定描述符DA和图像B中的另一个描述符DB,有效的对应需要这两个描述符相互识别对方作为它们的最近描述子。

选择的评估指标:由于缺乏基准数据集和数据标记所需的大量工作,我们选择不依赖基于地面真值的评估方法。相反,我们结合了一些独立于地面真值的专门设计的度量标准,以及一些直观的度量标准,形成了表II中列出的完整指标。据我们了解,这代表了目前在缺乏基准数据集的情况下可用的最广泛的评估指标集。

评估过程:下面Algorithm 2中显示的流程图概述了程序执行的步骤。使用两个嵌套循环迭代不同的检测器-描述符对。对于每个图像,算法检测并描述其关键点。如果处理了多个图像,将当前图像的关键点与前一个图像进行匹配。然后,将度量放置在相应的位置以评估算法的性能。

图片

由LiDAR生成的图像关键点辅助点云配准

点云匹配方法:采用KISS-ICP作为我们的点云匹配方法,它还提供了里程信息,使我们能够通过定位误差(即平移误差和旋转误差)的检查来评估我们的点云降采样方法的效果。为了概括我们提出的方法,我们还测试了基于NDT的简单SLAM程序。

点云降采样的提出方法:LiDAR生成图像的预处理,确定了关键点检测器和描述符的最佳配置。利用这些配置作为基础,我们建立了我们提出的方法的工作流程,如图3所示。在这个过程中,我们为距离和信号图像分别进行不同的预处理程序,将它们分别用于关键点检测和描述符提取。随后,我们将从两个图像中获得的关键点结合起来,并搜索每个关键点的K个最近点。我们在3到7的范围内系统地变化K,遵循最大阈值为7的原则,以符合我们降采样点云的主要目标。因此,我们找到了关键点及其邻近点在原始点云中的对应点云,从而形成了降采样的点。在我们的分析中,我们不仅研究了位置误差,还研究了旋转误差、计算资源利用、降采样导致的点云密度变化以及LO的发布速率。

实验

LiDAR生成图像预处理方法的结果 

独特性和匹配得分被认为是整个算法流程整体准确性的关键指标。因此,在不同尺寸和插值方法在不同指标上表现最佳的情况下,这两个指标是我们关注的主要内容。基于这样的标准,大小为 1024 x 64 在所有检测器和描述符方法中表现更好。然后在表 IV 中,我们的评估还显示线性插值方法在各种插值技术中产生了最佳结果。

图片

表 V 中的结果还表明,适当减小图像的大小相对于放大图像具有明显优势。

图片

这里有一个更直观的结果,显示减小图像的大小要远远优于放大图像。在图 4a 和图 4b 中,Superpoint 检测器将关键点标识为绿点。放大的图像图 4a 显示了许多杂乱的点。相反,缩小的图像图 4a 显示了明显的关键点,例如房间的角落和各个物体平面相交的点。请注意,我们为了便于阅读将这两个图像调整了大小,它们的原始大小不同。

图片

图4:在调整大小后的信号图像中检测到的关键点

LiDAR 图像的关键点检测器和描述符结果

在图 5 中,这是仅与检测器有关的指标,FAST 和 BRISK 算法检测到了最多的关键点,但计数中存在显着的波动。相比之下,AKAZE、ORB 和 Superpoint 检测到的关键点数量较少,但一致性值得注意。

图片

图5:关键点数量

图 6 描述了计算效率,其中大多数算法的运行时间都在 50 毫秒以下。在启用 CUDA 后,SuperPoint 的运行速度显著提高,波动最小。在所有算法中,BRISK 是最耗时的,仅使用 BRISK 作为描述符与其他检测器一起使用将阻碍整体效率。

图片

图6:计算效率

LiDAR 生成的图像关键点辅助 LO 结果

表 VIII 和表 IX 中的结果证明,传统的关键点提取器可以实现可比的 LO 平移估计和比 Superpoint 更准确的旋转估计。

图片

图片

总结

为了减轻计算负担,同时确保在LO中保留足够数量的可靠关键点用于点云配准,本研究引入了一种整合了LiDAR生成图像的新方法。对最初设计用于传统图像的关键点检测和描述符进行了对LiDAR生成图像的全面分析。这不仅为本文后续部分提供了信息,还为旨在增强LO和SLAM技术的健壮性和韧性的未来研究奠定了基础。基于从这一分析中得出的见解,我们提出了一种在保持显著点的完整性的同时对原始点云进行下采样的方法。我们的实验证明,我们提出的方法在性能上与使用完整原始点云相媲美,并且在完整原始点云无效的情景中,尤其是在漂移情况下,它超越了完整原始点云。此外,我们的方法在面对旋转变换时表现出值得称赞的鲁棒性。我们的方法的计算开销低于使用原始点云的LO,但具有更高的里程计发布速率。

在未来的工作中,有潜力将当前LiDAR生成图像关键点提取过程无缝集成到更广泛的SLAM流程中。例如,一种探索途径可能涉及将从LiDAR生成图像中提取的特征与从点云数据中导出的特征合并,从而促进开发轻量级SLAM系统,该系统由其他传感器(例如IMU)辅助。

资源

自动驾驶及定位相关分享

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ROS2入门之基本介绍

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

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

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

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

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

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

SLAM及AR相关分享

TOF相机原理介绍

TOF飞行时间深度相机介绍

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

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

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

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

SLAM和AR综述

常用的3D深度相机

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

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

Kimera实时重建的语义SLAM系统

易扩展的SLAM框架-OpenVSLAM

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

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

图片

扫描二维码

                   关注我们

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

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

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

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

相关文章

springboot 整合 Spring Security+JWT 实现token 认证和校验

1.大概是这个样子 JWT 是什么? Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明…

有源滤波器在矿区配电网中的应用

针对目前有源滤波器应用于矿区谐波治理时电网频率适应能力较低的问题,针对定采样点数字控制系统提出了一种具有频率自适应能力的谐振控制策略。该策略不仅可以实现对电网频率波动的自适应,提高滤波器补偿效果,而且不需要在线对控制器参数进行…

Apipost版IDEA插件

Apipost-Helper是由Apipost推出的IDEA插件,写完接口可以进行快速调试,且支持搜索接口、根据method跳转接口,还支持生成标准的API文档,注意:这些操作都可以在代码编辑器内独立完成,非常好用!这里…

设计原则 | 依赖转置原则

一、依赖转置原则(DIP:Dependence Inversion Principle) 1、原理 高层模块不应该依赖低层模块,二者都应该依赖于抽象抽象不应该依赖于细节,细节应该依赖于抽象 2、层次化 Booch曾经说过:所有结构良好的面…

丢包问题定位(一)

1,原理图 从上图我们分两个部分,一部分是host测(靠近交换sdk测) ,一部分是line测(靠近光模块测) 这里我们靠近交换(与交换测连接的是retimer芯片)。 当设备丢包时我们怎么定位呢! 先弄清楚设备的连接情况,确认是模块问题,设备问题,还是参数问题,前两种是个例,…

利用udev 修改 网卡名称 的方法和规则文件不生效 可能的查找方法

为什么要修改? 服务器通常有多块网卡,有板载集成的,同时也有插在PCIe插槽的。Linux系统的命名原来是eth0,eth1这样的形式,但是这个编号往往不一定准确对应网卡接口的物理顺序。我们也希望能跟设备外部的丝印对的上 方法: 利用udev 机制。 在 /etc/udev/rules.d/ 下增加…

指针(二)

这里写目录标题 字符指针字符指针与常量字符串的区别: 指针数组数组指针两者的区别:&数组名 ,sizeof(arr)数组指针的使用数组参数,指针参数一维数组传参整型数组:整型指针数组: 一级指针传参二级指针传…

配置REST API数据访问

大家好,才是真的好。 我希望你看过前一篇内容《Domino REST API安装和运行》。没有看过也没有关系,毕竟你可以点击上面的链接再去看一遍。 至于这一篇,趁热打铁,我们主要来讲述如何配置Domino Rest API的数据访问。 首先这里有…

电子学会C/C++编程等级考试2021年03月(四级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:酒鬼 Santo刚刚与房东打赌赢得了一间在New Clondike 的大客厅。今天,他来到这个大客厅欣赏他的奖品。房东摆出了一行瓶子在酒吧上。瓶子里都装有不同体积的酒。令Santo高兴的是,瓶子中的酒都有不同的味道。房东说道:“你可以…

鸿蒙4.0开发笔记之ArkTS语法基础之条件渲染和循环渲染的使用(十五)

文章目录 一、条件渲染(if)二、循环渲染(ForEach) 一、条件渲染(if) 1、定义 正如其他语言中的if…else…语句,ArkTS提供了渲染控制的能力,条件渲染可根据应用的不同状态&#xff0…

计算机服务器中了locked勒索病毒的正确处理流程,locked勒索病毒解密

随着网络技术在企业生产运营中的进行,越来越多的企业开始利用网络走向数字化办公模式,数字化办公是企业的较为智能与先进的办公系统,这要求企业在日常工作中要确保计算机系统的安全,以防网络安全威胁时间的产生。近期,…

Image Segmentation Using Deep Learning: A Survey

论文标题:Image Segmentation Using Deep Learning:A Survey作者:发表日期:阅读日期 :研究背景:scene understanding,medical image analysis, robotic perception, video surveillance, augmented reality, and image…

光伏系统方案设计的注意点

随着太阳能技术的日益发展,光伏系统已经成为一种重要的可再生能源解决方案。然而,设计一个高效、可靠的光伏系统需要考虑到许多因素。本文将探讨光伏系统方案设计的注意点,包括系统规模、地理位置、组件选择、系统布局和运维策略。 系统规模 …

服务器——单个显卡的CPU占用比达到100%,但GPU使用率为0(卡住了)的解决办法

一、现象: 二、解决办法 先输入 htop,进入任务管理器。然后找到对应进程,按F9,再按一下9。

CVE初探之漏洞反弹Shell(CVE-2019-6250)

概述 ZMQ(Zero Message Queue)是一种基于消息队列得多线程网络库,C编写,可以使得Socket编程更加简单高效。 该编号为CVE-2019-6250的远程执行漏洞,主要出现在ZMQ的核心引擎libzmq(4.2.x以及4.3.1之后的4.3.x)定义的ZMTP v2.0协议中。 这一…

etcd 与 Consul 的一致性读对比

本文分享和对比了 etcd 和 Consul 这两个存储的一致性读的实现。 作者:戴岳兵,爱可生研发中心工程师,负责项目的需求开发与维护工作。 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本…

如何从eureka-server上进行服务发现,负载均衡远程调用服务

在spring cloud的maven的pom文件中添加eureka-client的依赖坐标 <!--eureka-client依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependen…

Apache Kafka CVE-2023-25194(metasploit版)

Step1&#xff1a;用docker搭建环境 Step2&#xff1a;docker查看映射端口 Step3&#xff1a;访问特定端口&#xff0c;然后靶标应用。 Step4&#xff1a;用metasploit进行攻击&#xff1a; 首先&#xff0c;打开metasploit&#xff0c;然后查询需要攻击的板块&#xff0…

如何搭建软件测试环境?

关于如何搭建测试环境&#xff0c;也是面试会经常问到的一个问题&#xff0c;一般常见于一些创业公司&#xff0c;因为测试环境不够完善&#xff0c;可能会遇到搭建环境这个问题。 一般来说&#xff0c;测试环境搭建都属于运维的工作范畴&#xff0c;但是可能有些创业公司就没有…

103.进程概述

目录 1.并行和并发 区别&#xff1a; 2.PCB 3.进程状态 4. 进程命令 从严格意义上来讲&#xff0c;程序和进程是两个不同的概念&#xff0c;他们的状态&#xff0c;占用的系统资源都是不同的。 程序&#xff1a;程序是一种静态实体&#xff0c;是存储在计算机存储介质上的…