这是论文Learning Informative Point Classes for the Acquisition of Object Model Maps及Aligning Point Cloud Views using Persistent Feature Histograms的阅读笔记。
里面一定有错误和不当之处,还希望不吝赐教。
1、 特征空间的分辨力应该足够强,使得在同一表面下的点被分到同一类,不同表面下的点被分到不同类。
2、 需要特征空间对3D旋转和平移保持不变性,同时对点云密度和一定程度下的噪声不敏感。
3、 符号介绍:
- Pik是点集pj,其位于查询点pi的k邻域内;
- Fi是点pi的特征直方图,是一个多值数组,每一位都包含来自Pik中有特定组合的特征值点对的百分比。
4、 点特征直方图(PFH)计算步骤:
- 对点云P中每个点pi,如果其法线ni不存在:给定一个半径ra,选择pi的所有Pka邻域,对最小均方误差Pka表面进行主成分分析(PCA)估计法线ni,取具有最小特征值对应的特征向量,并使用视点信息v对法线重定向,确保法线方向指向视点方向。即
- 对P中每个点,设定一个更大的半径rb,选择pi的所有邻域点Pkb;(值ra应当足够大以平衡噪声的影响,但足够小以保护法线计算;rb应当足够大取捕捉形状信息,但足够小以避免包含太多表面);
- 对Pkb中每一点对pj1、pj2及它们的估计法线方向nj1、nj2,选择一个源点ps及一个目标点pt,其中源点是这样一个点,其法线与点点之间连线的夹角更小,即
同时如下的局部坐标系:u=ns,v=(pt-ps) u/||pt-ps||,w=uv - 根据ps、pt、ns、nt,计算4个特征,测量法线之间角度差异以及这两点之间的距离矢量,并将这些值划分到直方图中:至于为什么要选取这样4个特征,还需要认真理解一下才行。
其中[]为取整操作,可以看到其取值只能是0或1,d为特征值的最大理论范围(fimax-fimin),对f0、f2其值为2,f3其值为,idx是直方图位的索引。
其中step(si,fi)为0(f小于s)或1,对特征f0,f2,f3可以定义s为0,对特征f1可以定义s为r及邻域半径。直方图位数可以定义为 div^4
div为特征值范围子区间个数,这里讲特征值分为两个部分(fi比si大或小),因此四个特征一共有2^4 =16 个组合。同时子区间数目的增加将导致计算复杂度呈指数级增长(3^4=81)。对每一位使用点对总数目(k(K+1)/2)进行归一化以达到对点密度不变的效果。