PCL中的3D特征描述子

一. PCL中的特征点提取原则

1. 3D 特征,是基于局部描述子提取的。

3D feature,就是为了区分不同的表面几何特征而提取的特征值和测度值。 

局部描述子,用于表现局部点所代表的表面几何特征。好的点特征描述子通常具备下面的特征:

1)转换不变性,也就是旋转、平移不会影响到特征向量的描述;

2) 采样密度变化不变性,即不同采样频率下的特征矢量基本一致;

3)噪声不变性,即,数据中不同噪声含量条件下不会影响到特征向量的相似性。

 

2. PCL的各种特征提取方法,都十分相似。只是在点选择和其邻域设置时可以进行不同设置

其中使用kd-tree的快速搜索方式。它也分为两种类型的搜索:

1)k个邻域点值的确定;

2)在半径为r的球半径内进行邻域搜索与计算。

3. PCL 如何选择哪部分点云数据被有来进行特征点的提取

1) 整个点云数据集为对象的过程,使用 setInputCloud。这时,每个点都被估计一个特征。

 2) 可以取部分点云数据,通过setInputCloud 和 setIndices。这时,只有被分配了index的点才会被估计一个特征值。

3) 对于邻域的选择,可以用setSearchSurface设定。

4)于是,上述的三个函数:setInputCloud, setIndices, setSearchSurface组合后,就可以出现以下四种情况:

 

_images/features_input_explained.png
 a                                                  b                                             c                                                  d

 

a)  setIndices() =false, setSearchSurface()=false

此时,对点云中所有的点都进行特征统计。即,分别对每一点进行最邻近域的搜索与计算。

b) setIndices() =true, setSearchSurface()=false

只对有特定index的进行测算,其它的点不考虑,例如:只考虑p1点;而a图中的p2点因为没有index所以忽略;

c) setIndices() =false, setSearchSurface()=true

此时,所有的input点云中的点都要被作为被询问点;但是每个点的最近邻域要受限于Surface的定义,而不是全部的输入点云都要被作为最近邻域进行考虑。

d) setIndices() =true, setSearchSurface()=true

此时,输入点云中被询问的点和要搜索的邻域,分别受限于这两个函数的定义。

举例:

- 如果有一个点密度很高的点云数据,我们并不想对其中所有的点都进行特征估计,而是只希望对其中的key points 进行估计;或者是只考虑下采样后的点云的点的情况。 

- 此时,只需要将key points 或者下采样的点云放入setInputCloud()函数中,将setSearchSurface()中放入原始数据就可以了。


二.  PFH (Point Feature Histograms) 描述子 

1. PFH描述子是基于XYZ的点云数据和表面法向量进行计算获得的

PFH是通过局部特征的计算,再利用直方图统计出选定点云的全局特征的方法。

PFH是在一个目标点的k邻域内对它的几何特征进行编码。编码时,基于相关数值的多维直方图,提取围绕该点的平均曲率值。如下图所示,Pq是目标点,其周围的Pki即是选取的k邻域点。   

_images/pfh_diagram.png
图1  PFH中的目标点(红) 与邻域点(蓝) 关系

 

_images/pfh_frame.png

n表示法线方向;Ps 和Pt是目标点与它的一个邻域点;

目标点与其邻域内选定的各点之间的法向量的差异,可以用三个角度特征进行描述:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值