Fast Point Feature Histogram (FPFH)特征

在做三维点云匹配(Point cloud registration)的时候,通用的做法是先做基于特征及RANSAC的粗匹配,然后再做一轮精匹配。粗匹配常使用的一种特征是FPFH特征,而精匹配一般使用的是ICP(Iterative closest point)的方法。本文主要是记录FPFH特征。

PFH (Point Feature Histogram)

我们先介绍一下PFH特征。对于点云中的任意一点p,我们定义一个半径r,对于在r定义的球形邻域内,任意两个点p_i, p_j,PFH的定义过程如下:

neighbor.png
  1. 计算p_i, p_j之间的特征描述
pipj.png

定义一个局部坐标系

u=n_s,v=(p_t-p_s)\times u / \|p_t-p_s\|, w=u\times v

coor.png

特征可计算为

\begin{align*} f_0 &= \langle v, n_t \rangle \\ f_1 &= \langle u, p_t-p_s\rangle / \|p_t-p_s\| \\ f_2 &= \arctan\left(\langle w, n_t \rangle / \langle u, n_t \rangle \right)\\ f_3 &= \|p_t-p_s\| \end{align*}

  1. 计算histogram:将每个feature按预设的大小设置n个bin,然后查看p_i,p_j对应的特征描述落在哪个区间,对于p的领域内所有的点对,可以得到对应的feature histogram.
histogram.png

在PCL的实现中,f_3是不考虑的,而对于角度分量,每个分量被分成了11个bin,由于角度是在[-1,1]中的,所以上述公式中对应的f_{\min}=-1, f_{\max}=1.

SPFH (Simplified Point Feature Histogram)

SPF是PFH的一种简化版,区别在于计算histogram的时候,只使用点p与其他点构成的点对。

FPFH

FPFH的计算可以按如下定义

fpf.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容