点云特征总结

物体分类常用机器学习的方法,这里有句话说的透彻:数据与特征决定了机器学习的上限,而后面的模型/算法/参数只是来逼近这个上限。所以说特征的选择至关重要。这里对基于激光点云的物体分类常见特征做一下归纳整理。方便进一步学习,以及后续论文的写作。

一、对点云特征的要求

理想情况下相同或相似表面上的点的特征值将非常相似(相对特定度量准则〉,而不同表面上的点的特征描述子将有明显差异 。 下面几个条件,通过能否获得相同的局部表面特征值,可以判定点特征表示方式的优劣:

(1 )刚体变换( rigid transformations ) 一一 即 三 维旋转和 三 维平移变化不会影响特征向量 F 估计,即特征向量具有平移旋转不变性.
(2 ) 改变采样密度 ( varying sampling density) 一一原则上, 一个局部表面小块的采样密度无论是大还是小,都应该有相同的特征向量值,即特征向量具有抗密度干扰性。
(3 )噪声( noise ) 一一数据中有轻微噪声的情况下,点特征表示在它的特征向量中必须保持相同或者及其相似的值,即特征向盘对点 云 噪声具有稳健性。--《点云库PCL学习教程》PP272

二、点云特征的分类

按照特征的物理属性,可以将特征分为:几何域,强度域

按照特征的空间尺度,可以分为:单点特征,局部特征,全局特征

几何域强度域很好理解,不多解释了。下面主要按照空间尺度分类。

三、单点特征

主要有:三维坐标(X, Y, Z), 回波强度 Intensity, 法线 (Nx,Ny,Nz),主曲率(PCx, PCy, PCz, 及两个特征值 PC1, PC2)

XYZI 是点云的原始特征,是激光雷达返回的数据含有的。

表面法线和曲率可以好的代表一个点的几何特征。它们算得很快,而且算法简单,但是它们不能捕获细节,它们只是点的近邻的几何特征的近似估计。作为一个直接的结论,大多数的场景往往会包括很多有着相似特征的点,这会减少它们所带来的消息量。

点特征表示法所示,表面法线和曲率估计是某个点周围的几何特征基本表示法。虽然计算非常快速容易,但是无法获得太多信息,因为它们只使用很少的几个参数值来近似表示一个点的 k 邻域的几何特征。然而大部分场景中包含许多特征点,这些特征点有 相同的或者非常相近的特征值,因此采用点特征 表示法 ,其直接结果就减少了全局的特征信息. --《点云库PCL学习教程》P282

在原始表示形式下,点的定义是用笛卡儿坐标系坐标 x , y , z 相对 于 一个给定的原点来简单表示的三维映射系统的概念,假定坐标系的原点不随着时间而改变,这里有两个点 pl 和 p2 分别在时间 t1 和 t2 捕获,有着相 同的坐标。对这两个点做比较其实是属于不适定问题( ill - p osed problem ) ,因为虽然相对于一些距离测度 〈 如:欧几里德度量〉它们是相等的,但是它们取样于完全不同的表面,因此当把它们和邻近的其他环境中的点放在 一 起时,它们表达着完全不同的信息,这是因为在 tl 和 t2 之间局部环境有可能发生改变。一些获取设备也许能够提供取样点的额外数据,例如强度或表面反射率等,甚至颜色,然而那并不能完全解决问题,单从两个点之间来对比仍然是不适定问题 。--《点云库PCL学习教程》P271-P272

四、局部特征

通常, PCL 中特征向量利用快速 kd - tree 查询,使用近似法来计算查询点的最近邻元素,有两种常用的查询类型:
(1 )决定一个查询点的 k个 邻域元素, (k 为用 户已给参数)〈也称为 k -搜索〉 。
(2 )在半径 r 的范围内,确定一个查询点的所有邻元素(也称为半径-搜索〉。

--《点云库PCL学习教程》PP272

 

对于半径搜索来说,相同的邻域半径同一类对象可能会由于离激光源的距离不同而导致相同大小邻域内点数不一样多,因为距离越近采样点越密,反之越稀疏。扫描得到的同一个对象,不同搜索半径的时候得到的局部特征数值也不同!

对于k-搜索来说,同样由于距离导致采样密度不同,使得同样k个点所覆盖的邻域大小可能不同。

因此需要精心选择 [近邻搜索] 参数!

一个可行的方法是,近邻尺寸参数看作是特征提取的一个超参数,借鉴机器学习调超参数的方法:在一个取值区间内,每个超参数的具体值计算一次特征,计算得到的特征和类别标签的相关性(如卡方检验,互信息法等),取相关性最高的超参数值即近邻尺寸值。个人以为互信息法比较好,不需要设置额外的参数,sklearn 实现也很简单。

(一)几何域

局部特征常见的有各种几何特征描述子:PFH,FPFH,SHOT,C-SHOT,RSD,3D形状描述子等。

因为这些很常见,所以具体原理网上很好搜。

RSD描述子:

论文:General 3D Modelling of Novel Objects from a Single View

 

ESF描述子:

论文:Ensemble of Shape Functions for 3D Object Classification

 

3D形状描述子:

详见我这篇博客:  https://blog.csdn.net/shaozhenghan/article/details/81536008

论文:Recognizing Objects in Range Data Using Regional Point Descriptors

 

Lalonde 特征(谱特征)

论文:Natural Terrain Classification using Three-Dimensional Ladar Data for Ground Robot Mobility

描述了三维局部结构为点、线或平面结构的程度。

假设 {  x1 , x2 , x3 } 为每个点的邻域的三维局部结构协方差矩阵的特征值,且 x1 >= x2 >= x3 。则三维局部结构为点、线或平面结构的显著程度可通过 {sigma1=x1, sigma2=x1-x2, sigma3=x2-x3} 来度量。

通常来说特征值没有一个上限,为了归一化到 0-1 范围,可以将单个特征值xi 用 xi/(x1+x2+x3)来代替。

局部特征化为全局特征的方法:用3个分量的直方图统计每个点的邻域的谱特征,求和再平均就可将局部特征转化为全局特征。)

 

(二)强度域

强度梯度(IGx, IGy, IGz):

PCL点云库中:类 IntensityGradientEstimation 实现强度梯度计算和管理, 强度梯度的方向是指向强度下降最快的方向,其二阶矩表征下降的速率。该局部特征也可以用上面所述局部特征化为全局特征的方法(即统计直方图) 化为全局特征。

PCL点云库计算得到某个点的(IGx, IGy, IGz) 向量,方向表示最大梯度方向,向量的模表示最大梯度大小。

 

局部强度均值与均方差:

顾名思义

 

强度旋转图:

相关论文:A Sparse Texture Representation Using Local Affine Regions

 

 

 

五、全局特征

(一)几何域

常见的几何域全局特征有:

VFH:Viewpoint Feature Histogram

 

CVFH:在VFH基础上解决了点云残缺的问题。

 

三维不变矩:矩特征主要表征了图像区域的几何特征,又称为几何矩, 由于其具有旋转、平移、尺度等特性的不变特征,所以又称其为不变矩。但要注意,不变矩对点云密度十分敏感!亲测:

可以看到下采样前后差距很大的,因此直接用不变矩不是一个好特征。但我找到了不变矩的处理方法,保证处理后的不变矩对点云密度不敏感,而且与不同物体的类别相关性很大!是个好特征。等我写完论文就在这补上。

 

 

 

三维尺寸:长宽高,体积,投影面积等。在XOY平面内,若物体平行与XY中某个坐标轴,则可以用(Xmax-Xmin) 与 (Ymax-Ymin)之中大者作为长,小者作为宽。若物体不平行于XY坐标轴,则可以先PCA投影到物体点云分布的两个主要方向X', Y',然后(X’max-X‘min) 与 (Y’max-Y‘min) 来近似估计长和宽。

 

投影密度×距离:一些文献中也可以看到XOY投影密度作为特征,但因为密度受距离影响,所以乘上距离更具有不变性。

 

高程差:Zmax-Zmin,可以消除路面起伏的影响。但其实小幅度的路面起伏影响不大,大幅度的路面起伏时,常规路面分割不太好处理,读过相关论文,CNN是地面点分割的一个办法(CNN for Very Fast Ground Segmentation in Velodyne LiDAR Data

 

平面拟合残差/均方差:用一个平面拟合点云

 

GFPFH:全局的FPFH,具体原理还没看。

 

协方差矩阵特征值/比值/谱特征:与上文所述局部特征中类似,只是这里将它用在点云整体上,而非局部。

 

旋转图?还不确定这个是全局还是局部特征,后续再看相关文献。

 

(二)强度域

平均强度:顾名思义

 

最大强度:顾名思义

 

强度方差/均方差:顾名思义

 

  • 12
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 点云特征提取是指从点云数据中提取出一些能够描述点云特征的属性或者特征。在计算机视觉和三维重建领域中,点云特征提取是非常重要的任务,可以用于目标检测、点云配准、点云分割等应用中。 在Python中,有一些常用的库和工具可以用于点云特征提取,例如Open3D、PCL、pyntcloud等。这些库提供了一系列的函数和工具,能够帮助我们对点云数据进行特征提取和分析。 点云特征提取的方法有很多,常用的包括形状描述符、法线估计、曲率估计、特征点检测等。以Open3D为例,可以使用它的compute_point_cloud_normals函数计算点云的法线向量,然后使用estimate_normals函数对法线向量进行估计。这样就可以得到每个点的法线信息,从而进行后续的特征提取。 除了法线估计,Open3D还提供了其他的特征提取方法,比如使用FPFH、SHOT等算法计算点云的局部特征。使用它的compute_fpfh_feature函数,可以计算点云每个点的FPFH特征向量,用于描述点云的局部特征。 总的来说,点云特征提取是一项复杂的任务,需要根据具体的应用场景选择合适的方法和工具。在Python中,Open3D是一个非常强大和方便的库,可以用于点云的处理和特征提取。通过熟练掌握其提供的函数和工具,可以实现高效的点云特征提取操作。 ### 回答2: 点云特征提取是指从点云数据中提取出代表该点云特征的信息。在Python中,我们可以使用一些库和工具来实现点云特征提取。 首先,我们可以使用开源库如Open3D、Pyntcloud和PCL等来加载和处理点云数据。这些库提供了一系列函数和算法来对点云数据进行处理和分析。 其次,我们可以使用这些库中的函数和算法来提取点云特征。例如,我们可以使用体素网格化方法将点云数据转换为三维网格,然后使用体素内部的点云属性来描述该体素的特征。另外,我们还可以使用曲率、法线、表面法向量等几何特征来描述点云数据。这些库提供了相应的函数来计算这些特征。 另外,我们可以使用机器学习算法来提取点云特征。例如,我们可以使用自动编码器来学习点云数据的高维表示,然后使用该表示来提取点云特征。另外,我们还可以使用卷积神经网络等深度学习算法来从点云数据中提取特征。 最后,我们可以将提取到的点云特征用于点云分类、分割、配准等任务。这些任务在计算机视觉、机器人和自动驾驶等领域有广泛的应用。 总结起来,点云特征提取在Python中可以使用一些开源库和工具来实现。我们可以使用这些库中的函数和算法来提取点云的几何特征和学习点云的高维表示。通过点云特征提取,我们可以进一步分析和处理点云数据,应用于各种领域的任务和应用中。 ### 回答3: 点云特征提取是将点云数据中的特征提取出来的过程。点云数据是通过激光或者其他传感器获取的一系列点的集合,用于表示三维空间中的物体或环境。 在Python中,有一些常用的库用于点云特征提取,如Open3D、PCL等。以下是一个基于Open3D库的点云特征提取的示例: 1. 导入必要的库和模块: ``` import open3d as o3d import numpy as np ``` 2. 读取并可视化点云数据: ``` point_cloud = o3d.io.read_point_cloud("point_cloud.pcd") o3d.visualization.draw_geometries([point_cloud]) ``` 3. 下采样(可选):点云数据中的点数可能很大,为了加速特征提取过程,可以对点云进行下采样。 ``` downsampled_cloud = point_cloud.voxel_down_sample(voxel_size=0.01) # 设置下采样体素大小 o3d.visualization.draw_geometries([downsampled_cloud]) ``` 4. 特征提取:使用Open3D的特征提取算法,提取点云数据的特征。 ``` keypoints = downsampled_cloud.uniform_down_sample(every_k_points=100) # 均匀采样关键点 # 计算法线特征 normal_radius = 0.03 # 设置法线估计半径 o3d.geometry.estimate_normals(downsampled_cloud, search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=normal_radius)) ``` 5. 可视化特征: ``` o3d.visualization.draw_geometries([downsampled_cloud, keypoints]) # 可视化采样点和关键点 ``` 以上是一个简单的点云特征提取的示例,通过使用Open3D库中的函数和方法,能够完成点云的下采样和特征提取,并可视化结果。当然,特征提取的方法和参数设置还有很多,根据具体的应用场景和需求,可以选择不同的特征提取算法和参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值