3D特征点概述(2)
紧接上文思路继续介绍3D特征的基本概念问题。
RIFT (Rotation-Invariant Feature Transform)
RIFT是一种局部特征描述法,且该方法扩展于SIFT。参考论文
Object recognition from local scale-invariant features (http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=790410&tag=1)
输入格式:
(1)由一组纹理点组成的点云P. 没有纹理,此功能不会产生任何可用的结果。
(2)强度梯度计算,参考:
http://docs.pointclouds.org/trunk/classpcl_1_1_intensity_gradient_estimation.html
工作原理:
(1)迭代点云P中的所有点。
(2)对于输入点云中的每个点Pi(i是迭代索引),收集具有半径r的Pi周围的球体内的所有相邻点。这个集合称为Pik(k为k个邻居)
(3)具有n个片段的假想圆(球体的垂直于Pi的法线的投影)适合于表面。这里n对应于实现中的距离 bin 的数量。
(4)Pi的所有邻居根据它们的距离d <n和梯度角位置θ<g(g表示实现中的梯度区的数量)被分配给直方图区间。 θ是梯度方向和从中心向外指向圆的矢量之间的角度。
有关特征计算的更多详细信息,请参阅原始论文:http://hal.inria.fr/docs/00/54/85/30/PDF/lana_pami_final.pdf
简短概述
(1)对于P样本中的每个点Pi,Pi周围的所有k个邻居。
(2)根据距离d和它们的梯度角θ将所有邻居分配给直方图。
(3)可以将得到的直方图组与其他点云的组进行比较,以便找到对应关系。
NARF (Normal Aligned Radial Feature)
这是一个局部特征点,NARF功能扩展了SIFT(Lowe)的一些概念。
主要的参考文献:
Object recognition from local scale-invariant features (http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=790410&tag=1)
输入格式:
(1)场景的深度图像RI。
(2)NARF不仅是描述符,还是检测器。可以首先在数据集上运行兴趣点检测器再进行描述子描述
http://docs.pointclouds.org/trunk/classpcl_1_1_narf_keypoint.html
工作原理:
(1)迭代深度图像RI中的所有兴趣点。
(2)对于每个点,Pi通过沿着法线看它来创建一个小图像补丁。法线是图像块的局部坐标系的Z轴,其中Pi位于(0,0)。 Y轴是世界坐标系Y轴。 X轴相应对齐。围绕Pi的半径r内的所有邻居都被转移到该局部坐标系中。
(3)具有n个光束的星形图案投射在图像块上。对于每个波束,计算[-0.5,0.5]中的分数。如果在梁下方的细胞中存在大量强度变化,则束具有高分。这是通过将每个单元与下一个单元进行比较来计算的。另外,靠近中心的细胞有助于得分具有更高的重量(中间2个,边缘1个)。
(4)最后,计算补片的主导方向,使其对法线周围的旋转不变。
有关特征计算的更多详细信息,请参阅原始文件:https://www.willowgarage.com/sites/default/files/icra2011_3dfeatures.pdf
简短概述
(1)对于深度图像RI中的每个关键点Pi,对Pi周围的所有邻居进行采样,并将它们转换为局部坐标系,其中Pi为O.
(2)在图像块上投射星形图案并计算每个光束下的强度变化以获得光束的分数。 在计算中,更靠近中心的光束具有更大的权重。 分数归一化为[-0.5,0.5]。
(3)迭代所有光束并找到图像块的主要方向。
RSD (Radius-based Surface Descriptor)
是一种局部特征点
输入格式:
(1)由一组带有方向信息点P组成的点云。带有方向意味着所有点都具有正常的n法线。
(2)此功能不使用颜色信息。
工作原理:
(1)迭代点云P中的点。
(2)对于输入云中的每个点Pi(i是迭代索引),收集具有半径r的Pi周围的球体内的所有相邻点。这个集合称为Pik(k为k个邻居)
(3)对于Pik中的每个邻居Pikj,计算Pi和Pikj之间的距离以及它们的法线之间的角度。这些值被分配给表征点Pi处的曲率的直方图。
(4)使用这些值,可以通过两个点拟合具有近似半径rc的假想圆(见图)。请注意,当两个点位于平面上时,半径将变为无穷大。
(5)由于查询点Pi可以是多个圆的一部分,其邻居仅保持最小和最大半径并将其分配给Pi作为输出。该算法接受最大半径参数,在该参数之上,点将被视为平面。
简短概述
(1)对于P样本中的每个点Pi,Pi周围的所有k个邻居。
(2)根据距离d和无向法线的角度将所有邻居分配到直方图。
(3)假设与每个邻居的Pi对描述一个圆(见图)。 找到Pi描述的所有球体的最小和最大半径及其邻域。
(4)得到的直方图和半径组可以与其他点云的组合进行比较,以便找到对应关系
ESF (Ensemble of Shape Functions)(拓展一个特征点)
是一种局部特征点,参考文章
▪ A3, D2, D3 shape description functions: Matching 3D Models with Shape Distributions (Osada et. al.)
▪D2 improvements (IN, OUT, MIXED): Using Shape Distributions to Compare Solid Models (Ip et. al.)
输入格式:
(1)由一组点P组成的点云。
(2)此功能不使用颜色信息。
工作原理:
(1) 启动一个循环,从点云P中采样20,000点。
(2) 每次迭代都会对三个随机点Pri,Prj,Prk进行采样。
(3) D2:对于D2函数,计算Pri和Prj之间的距离。然后检查连接两点的线是否完全位于表面(IN),表面外(OUT)或两者(MIXED)。在先前计算的距离箱处增加D2的子组合图之一(IN,OUT或MIXED)。当采样三个点时,可以在该迭代中计算另外两个距离。
(4) D2比率:还有另一个直方图,可以捕获位于表面和自由空间中的每条线的各部分之间的比率。
(5) D3:对于D3函数,计算Pri,Prj和Prk之间三角形区域的平方根。这相当于D2,因为该区域也分为IN,OUT和MIXED。增加D3直方图的相应直方图区间。
(6) A3:对于A3函数计算三点之间的角度。此功能再次分为IN,OUT和MIXED。这次使用与角度相反的线。增加相应的A3直方图bin。
(7)在循环结束时,我们得到一个包含10个子图形(每个64个子区)的全局描述符:D2(IN,OUT,MIXED,比率),D3(IN,OUT,MIXED),A3(IN,OUT,MIXED) 。
阅读整篇论文以获取更多信息:http://ieeexplore.ieee.org/xpl/articleDetails.jsp?numumber = 6181760
简短概述:
(1)开始一个从点云P中随机抽样20,000点的循环。每轮样本三点Pri,Prj,Prk。
(2)对于两个点对,计算彼此之间的距离,并检查两者之间的线是否位于表面上,外部或与物体相交(IN,OUT或MIXED)。在D2的三个子图表中的一个中增加与计算的距离对应的bin。
(3)对于前一行,找到位于表面或外部的那条线的部分之间的比率。结果应该是0表示完全在外面,1表示完全在表面上,并且来自MIXED线的所有值都在它们之间分布。增加D2比率直方图的对应bin。
(4)对于三元组,建立一个三角形并计算两侧之间的角度,并将角度的一侧分为三角形(IN,OUT,MIXED)。增加A3的IN,OUT或MIXED子组合图中的相应角度箱。
(5)对于前一个三角形,计算区域的平方根,并将区域分为IN,OUT或MIXED。增加D3的IN,OUT或MIXED子组合图中的相应区域bin。