这次我们来聊一下点云的特征计算方法, 主流的有两类
1:基于直方图的特征计算
2:基于签名的特征计算
这次我将介绍基于直方图的方式。
基于直方图的特征方法中,PFH(Point Feature Histograms)和FPFH(Fast Point Feature Histograms)是两种常用的局部特征描述符。它们主要用于点云配准任务中,通过计算点云中每个点的局部特征来进行匹配。以下是对这两种方法的分析:
1. PFH(Point Feature Histograms)
计算方法
PFH是一种局部特征描述符,主要通过邻域点的法向量关系来描述点的局部几何信息。计算过程分为以下几个步骤:
-
邻域搜索:为每个关键点确定一个邻域范围,通常是半径邻域或K近邻。
-
法向量计算:计算关键点和邻域点的法向量。
-
特征对计算:对于关键点的邻域内的每一对点 ( p i , p j ) (p_i, p_j) (pi,pj),通过法向量之间的夹角和距离,计算出四个特征参数 ( ( α , ϕ , θ , d ) (\alpha, \phi, \theta, d) (α,ϕ,θ,d)),分别表示点与法向量的角度关系和距离。
先利用法向量计算中间变量
利用中间变量计算特征参数 -
直方图构建:将所有特征对的参数值构建直方图,这个直方图就是关键点的PFH特征。
所构建的直方图特征如下, 只考虑
(
α
,
ϕ
,
θ
)
(\alpha, \phi, \theta)
(α,ϕ,θ)
优缺点
- 优点:PFH能较完整地描述局部几何信息,对复杂表面适应性强。
- 缺点:计算代价高,计算每个点的PFH需要考虑所有邻域点对,导致复杂度为 O ( n 2 ) O(n^2) O(n2)。
输入和输出
- 输入:关键点、邻域点、以及法向量。
- 输出:关键点的特征直方图,描述了其局部表面的几何分布。
2. FPFH(Fast Point Feature Histograms)
FPFH是PFH的加速版本,通过减少特征对计算的复杂度来提升性能。它分两步进行特征计算,具体如下:
计算方法
-
SPFH计算:首先为每个点计算一个简化的特征直方图(SPFH),其中只考虑关键点与其邻域点的特征对,而不考虑邻域点之间的特征对关系。每个关键点的SPFH特征描述了该点与其邻域点的关系。
只考虑查询点和领域点,以及领域点和其领域点的特征SPFH
-
FPFH加权计算:在得到所有关键点的SPFH后,通过加权方式将邻域点的SPFH信息累加到关键点,形成最终的FPFH特征。这样可以在不增加大量计算量的情况下,提高特征的描述力。
优缺点
- 优点:相比PFH,FPFH计算速度更快,复杂度降为 O ( n ) O(n) O(n),且特征信息较为全面。
- 缺点:FPFH虽然在计算上优化了,但特征描述的完整性略低于PFH,因此在某些精细场景中的匹配效果可能不如PFH。
输入和输出
- 输入:关键点、邻域点、法向量。
- 输出:FPFH特征直方图,用于描述关键点周围的局部几何信息。
总结对比
特征 | 计算过程 | 复杂度 | 适用场景 | 优点 | 缺点 |
---|---|---|---|---|---|
PFH | 邻域内所有点对的特征计算 | O ( n 2 ) O(n^2) O(n2) | 高精度场景 | 特征描述完整 | 计算量大 |
FPFH | 邻域内单点对简化加权计算 | O ( n ) O(n) O(n) | 实时场景、速度优先 | 计算速度快,特征丰富 | 描述力稍弱于PFH |
在实际应用中,如果计算性能是重点,可以优先选择FPFH;而在对精度要求较高、且计算资源充足的场景,PFH可能会更适用。