PCL—关键点检测(NARF)低层次点云处理

article/2025/9/2 17:26:31

博客转载自:http://www.cnblogs.com/ironstark/p/5051533.html

关键点检测本质上来说,并不是一个独立的部分,它往往和特征描述联系在一起,再将特征描述和识别、寻物联系在一起。关键点检测可以说是通往高层次视觉的重要基础。但本章节仅在低层次视觉上讨论点云处理问题,故所有讨论都在关键点检测上点到为止。NARF 算法实际上可以分成两个部分,第一个部分是关键点提取,第二个部分是关键点信息描述,本文仅涉及第一个部分。

在文章开始之前,有非常重要的一点要说明,点云中任意一点,都有一定概率作为关键点。关键点也是来自原始点云中的一个元素。和图像的边缘提取或者关键点检测算法追求n次插值,最终求的亚像素坐标不同,点云的关键点只在乎找到那个点。

1. 边缘提取

首先声明本文所有思想算法公式均来自:Point Feature Extraction on 3D Range Scans Taking into Account Object Boundaries 

在正式开始关键点提取之前,有必要先进行边缘提取。原因是相对于其他点,边缘上的点更有可能是关键点。和图像的边缘不同(灰度明显变化),点云的边缘有更明确的物理意义。对点云而言,场景的边缘代表前景物体和背景物体的分界线。所以,点云的边缘又分为三种:前景边缘,背景边缘,阴影边缘。

rangeImage 是一个天然适合用于边缘提取的框架。在这里需要做一些假设:每个rangeImage像素中假设都只有一个点(显然在生成rangeImage的时候点云是被压缩了的,压缩了多少和rangeImage的分辨率有关,分辨率不能太小,否则rangeImage上会有"洞”,分辨率太大则丢失很多信息)。

三维点云的边缘有个很重要的特征,就是点a 和点b 如果在 rangImage 上是相邻的,然而在三维距离上却很远,那么多半这里就有边缘。由于三维点云的规模和稀疏性,“很远”这个概念很难描述清楚。到底多远算远?这里引入一个横向的比较是合适的。这种比较方法可以自适应点云的稀疏性。所谓的横向比较就是和 某点周围的点相比较。 这个周围有多大?不管多大,反正就是在某点pi的rangeImage 上取一个方窗。假设像素边长为s. 那么一共就取了s^2个点。接下来分三种情况来讨论所谓的边缘:

1.这个点在某个平面上,边长为 s 的方窗没有涉及到边缘

2.这个点恰好在某条边缘上,边长 s 的方窗一半在边缘左边,一半在右边

3.这个点恰好处于某个角点上,边长 s 的方窗可能只有 1/4 与 pi 处于同一个平面

如果将 pi 与不同点距离进行排序,得到一系列的距离,d0 表示与 pi 距离最近的点,显然是 pi 自己。 ds^2 是与pi 最远的点,这就有可能是跨越边缘的点了。 选择一个dm,作为与m同平面,但距离最远的点。也就是说,如果d0~ds^2是一个连续递增的数列,那么dm可以取平均值。如果这个数列存在某个阶跃跳动(可能会形成类似阶跃信号)那么则发生阶跃的地方应该是有边缘存在,不妨取阶跃点为dm(距离较小的按个阶跃点)原文并未如此表述此段落,原文取s=5, m=9 作为m点的一个合理估计。

对任意一个点,进行打分,来判断该点作为边缘点有多大可能性。首先,边缘可能会在某点的:上,下,左,右四个方向。

所以只要把pi 和 pi 右边的点求相对距离。 并把这个相对距离和dm进行比较,就可以判断边缘是不是在该点右边。如果距离远大于dm,显然该点右边的邻点就和pi不是同一个平面了。

为了增加对噪声的适应能力,取右边的点为右边几个点的平均数。接下来依据此信息对该点进行打分。

其中deta 就是dm. dright = || pi pright ||. 

最后再取大于0.8的Sright,并进行非极大值抑制。就可以得到物体的边缘了

2. 关键点提取

在提取关键点时,边缘应该作为一个重要的参考依据。但一定不是唯一的依据。对于某个物体来说关键点应该是表达了某些特征的点,而不仅仅是边缘点。所以在设计关键点提取算法时,需要考虑到以下一些因素:

i) it must take information about borders and the surface structure into account;

   边缘和曲面结构都要考虑进去

ii) it must select positions that can be reliably detected even if the object is observed from another perspective;

       关键点要能重复

iii) the points must be on positions that provide stable areas for normal estimation or the descriptor calculation in general.

  关键点最好落在比较稳定的区域,方便提取法线 

对于点云构成的曲面而言,某处的曲率无疑是一个非常重要的结构描述因素。某点的曲率越大,则该点处曲面变化越剧烈。在2D rangeImage 上,去 pi 点及其周边与之距离小于2deta的点,进行PCA主成分分析。可以得到一个 主方向v,以及曲率值 lamda. 注意, v 必然是一个三维向量。那么对于边缘点,可以取其 权重 w 为1 , v 为边缘方向。对于其他点,取权重 w 为 1-(1-lamda)^3 , 方向为 v 在平面 p上的投影。 平面 p 垂直于 pi 与原点连线。到此位置,每个点都有了两个量,一个权重,一个方向。将权重与方向带入下列式子 I 就是某点 为特征点的可能性。

最后进行极大值抑制,就可以得到一些特征点了。

3. 关于特征点提取的一些思考

在我看来,本文提出的算法效果上可能确实不错,但是这算法里面太多经验值与神秘数。各种式子没有明确的物理意义,只是单纯为了获得一个较好的结果设计出来 "打分"的。 这种算法实在谈不上优雅,当然,我连这种不优雅的算法也设计不出来。。。。。。。

点云的特征点提取应该与后面的特征描述是松耦合的。确实不得不承认,针对不同的点云:稀疏的,致密的,有序的,无序的,有遮挡的,高精测量的.......设计不同的关键点提取算法也无可厚非。总结出的关键点提取算法原则就是要尺度不变,鲁棒性好,至于是否一定要存在于平坦区域,我觉得并不一定。不同的关键点提取算法可以和不同的特征描述算法进行组合,最终得到一个较好的效果。如果非要把关键点提取算法和特征描述算法紧耦合,那势必会失去一部分灵活性。

最后还有一点想要吐槽的是,点云中的点为什么不应该自带是否是关键点的性质,而需要我们来进行检测?这显然不符合面向对象的设计原则........我觉的应该有某种点云采集方法,得到的点云可以有以下性质:point.is_key_point = 1/0.

这多好~ -_-笑死

 

转载于:https://www.cnblogs.com/flyinggod/p/8474718.html


http://chatgpt.dhexx.cn/article/Lh7yY2da.shtml

相关文章

HFSS----环形定向耦合器的设计实例

1:设置终端求解类型 2:创建物体模型 设置单位 设置一个变量表示传输线终端到圆心的距离 添加新的介质材料 创建正多边体 创建完成以后 可以通过“ctrlD”全屏显示 创建环形带状线 创建矩形面 通过复制生成其他3根传输线 创建圆面 合并圆面和4个传输线 在生成一个圆…

<论文阅读> RF-LIO:高动态环境中首先移除动态点的紧耦合激光雷达惯性里程计

继续在家读文献~ 希望下周能继续打工,最近还是更多的关注激光里程计相关的方向。 论文地址:Removal-First Tightly-coupled Lidar Inertial Odometry in High Dynamic Environments 摘要:同步定位和建图(SLAM&#x…

差分信号,差分对和耦合(二)——差分阻抗计算、差分对中的回流分布

耦合对差分阻抗的影响最大不超过12%,在走线靠得更近的过程中,由于耦合原因差分阻抗开始降低,这时,可以从以下五个方面分析: 1. 使用近似值的直接结果。 2. 使用场求解器的直接结果。 3. 使用基于模式的分析。 4. 使用…

雷达原理 知识点汇总

持续更新中… 雷达原理知识点汇总 第一章 绪论 1、雷达概念(Radar): radar的音译,“Radio Detection and Ranging ”的缩写。原意是“无线电探测和测距”,即用无线电方法发现目标并测定它们在空间的位置。 2、雷达工作原理: …

短距离无线通信设备的天线设计

无线射频模块可实现的通信范围不仅仅取决于输出功率和接收器灵敏度,还取决于天线解决方案。了解不同的天线特性,以便为特定应用选择最合适的天线是非常重要的学问。 在短距离无线通信等低功率无线应用中,天线选择的关键要素是尺寸要求、辐射性…

GR-Fusion:强鲁棒低漂移的多传感器融合系统(IROS2021)

来源:GR-Fusion Multi-Sensor Fusion SLAM for Ground Robots with High Robustness and Low Drift IROS 2021 单位:中科院沈阳自动化研究所 针对问题: 针对地面机器人的多传感器融合SLAM系统 提出方法: 系统融合紧耦合IMU、轮速计…

MOSFET 和 IGBT 栅极驱动器电路的基本原理学习笔记(六)变压器耦合栅极驱动

变压器耦合栅极驱动 1.单端变压器耦合栅极驱动电路 2.双端变压器耦合栅极驱动 在高电压栅极驱动 IC 出现以前,使用栅极驱动变压器是唯一一种在离线或类似高电压电路中驱动高侧开关的可行解决方案。 现在,两种解决方案同时存在并且各有利弊,…

雷达多普勒频率计算公式_使用MATLAB工具箱进行雷达信号回波仿真

这篇文章的前提条件是在大家已经清楚整个雷达仿真的基本原理并且能自己熟练的根据公式写出雷达信号仿真的距离和相位变化信息。如果这里概念不清楚,请看这 qwe14789cn:雷达信号仿真的基本原理——时延与相位的变化​zhuanlan.zhihu.com 如果你能够熟练的完成上述要求,那么今…

loam框架的注意点,公式推导细节,lego-loam对其的改进及自身不足,

目录 前端流程及注意细节: 总体结构: 特征提取部分: 特征关联匹配部分: 最小二乘优化部分: 后端部分: lego-loam对其的改进: 前端流程及注意细节: 总体结构: 1.激…

神经元振荡中相位幅值耦合的量化:锁相值、平均向量长度、调制指数和广义线性模型交叉频率耦合

相位振幅耦合是研究脑电和脑磁图中认知过程的一个很有前途的方法。由于概念新颖,文献中采用了多种方法来计算相幅耦合。本文利用模拟数据对锁相值(PLV)、平均向量长度(MVL)和调制指数(MI)这三种最常用的相幅耦合测量方法和广义线性模型交叉频率耦合(GLM-CFC)方法的性…

从LVI-SAM来看激光与视觉的紧耦合系统

0.简介 快过年了,这里打算以这一篇博文作为结尾,来迎向2022春节。同时也希望新的一年能够继续不断提升自我。 1. 系统介绍 本文提出了一种紧耦合的雷达视觉惯导SLAM系统,可以实时高精度鲁棒的进行状态估计和建图。 LVI-SAM构建在因子图之上…

武汉大学《GNSS、INS和激光雷达的紧密耦合预积分,用于城市环境中的车辆导航》

摘要 定位和导航的需求不断增长。目前,全球导航卫星系统(GNSS)被认为是全球定位服务的重要手段。然而,由于严重的信号衰减、反射和阻塞,其在城市地区的应用受到了限制。惯性导航系统(INS)可以在…

运放放大倍数计算公式_放大器设计100问

噪声是电子设计中必须处理等信号之一,我们都知道放大器的噪声有两种类型:一种是外部噪声,来源于放大器外部;另一种是内部噪声,来源于器件本身,处理放大器的噪声对于提升电子产品的性能至关重要,这里我们以问答形式对放大器噪声原理进行阐述,并阐述一些如何处理放大器噪…

slam框架:紧耦合激光视觉惯性里程计的统一多模态地标点跟踪

论文题目: Unified Multi-Modal Landmark Tracking for Tightly Coupled Lidar-Visual-Inertial Odometry 紧耦合激光视觉惯性里程计的统一多模态地标点跟踪 参考链接: 【泡泡点云时空】紧耦合激光视觉惯性里程计的统一多模态地标点跟踪 摘要&#…

RF-LIO:面向高动态场景的紧耦合LiDAR惯导融合里程计(IROS 2021)

RF-LIO: 面向高动态场景的紧耦合LiDAR惯导融合里程计 单位:西安交通大学 针对问题: 实际场景中动态因素的引入造成基于静态假设的LIO严重位姿漂移 提出方法: 提出基于自适应的多分辨率Range Image的动态点移除算法,并使用紧耦合的…

经典文献阅读之--Globally Consistent and Tightly Coupled 3D LiDAR Inertial Mapping(紧耦合3D激光雷达)

0. 简介 传统的地图生成方法一般是依靠Lidar和IMU结合的,但是问题在于,目前Lidar和IMU的紧耦合主要集中在前端里程计,基本没有涉及到后端全局优化以及建图的融合。为此文章《Globally Consistent and Tightly Coupled 3D LiDAR Inertial Map…

MD5加密的应用

简单介绍一下MD5加密的使用方法; MD5的全称是Message-Digest Algorithm 5(信息-摘要算法); 特点是不可逆的,一般解密不了; MD5Util工具类: package com.java.util;import java.io.UnsupportedE…

python md5加密解密_python md5加密解密

md5加密以后的字符串长度 我下了一段用JAVA实现MD5加密的算法,不管输入字符串多长,加密后的字符加密后为128位(bit),按照16进制(4位一个16进制数)编码后,就成了32个字符。MD5并不是加密算法zhidao,而是摘要算法。加密算法是可逆的,摘要算法是理专论上不可逆的,详细…

Java MD5 加密工具类

一、MD5简介 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确…

为什么md5不可逆,却还可能被md5免费解密网站解密

md5在网络安全中起到非常重要的作用,它被用于保证数据的完整性,以及数据不被篡改。同时,md5还被用来进行密码加密。一些朋友不了解为什么md5不可逆,却还可能被号称能解密md5的网站解密。因此,有人说md5不够安全&#x…