Splash特征描述子
1.背景知识
一个典型的基于局部特征的三维物体识别系统由三个主要阶段组成:
图1 TOR的三个阶段
三维特征点检测:将包含丰富信息的三维点作为特征点(也称为关键点),并检测出每个特征潜在的尺度参数。
局部表面特征描述:一般将特征点附近一定范围的区域作为局部表面,我们需要对局部表面的几何信息进行描述,最后编码成独一无二的特征描述子。
表面配准:使用相同的特征点检测算子与局部表面特征描述算子对三维场景和三维模型库进行描述,将两者提取的特征两两进行匹配,进而产生一组特征对应以及相应的变换猜想,下一步是验证特征匹配对的正确性,得出最终的模型到场景的变换,推断出场景中物体的身份(类别)与姿态(位置,方向)。
2.主体思想
根据特征描述子的构建方法,我们将现有的特征描述子的构建方法分为三个比较宽泛的类别:基于签名的方法,基于直方图的方法,以及基于变换的方法。而我们今天要讲的Splash描述子是一种基于签名的方法。基于签名的方法是通过在特征点领域子集范围内单独计算一种或多种集合指标,进而描述特征点。Splash的大体思想是:首先获取关键点 P 的测地半径 r 内的环形切片,然后通过点的法向量和 P 点所在的切平面构造一个局部参考坐标系LRF,在局部参考坐标系下,计算关键点 P 处的法向量与邻域环形切片内所有点的法向量的角度距离,最后形成一个三维的向量($\phi,\psi,\theta$),接着用直线段拟合这个三维曲线,接着将三维线段的曲率与扭转角编码成“Splash”描述子。
我们重点关注三维物体表面的两个方面:平滑的局部表面块(亦可为平滑,自由形状的三维表面),不连续的线(深度和方向都不连续),打个比方,我们描述一个立方体,可以用立方体的12条边构成的轮廓线以及六个平面来表示。这里的平滑局部表面块,用Splash描述子来描述,不连续的线则用3-D Curve表示。下一节,我们会具体介绍3-D Curve和Splash,给出Splash描述子写成3-D Curve的形式的证明。
3.具体介绍
A. Splash
一滴牛奶落入水中,形成了如图2(a)所示的画面,飞溅的水滴形成了一个环状的形态,我们可以将环的中心视为某一个特征点 P,环的半径ρ作为邻域的大小,飞溅起来的水滴柱可以视作环上采样点的法向量 n,这样就构成了一个如图2(b)所示的Splash描述子,取不同的邻域半径,我们便可以得到多个Splash,这些 Splashes 编码成 Super-Splashes,于是就描述了局部表面块。图2 (a)中的参数含义,ρ为测地半径,p为特征点的位置向量,n 为 p 的法向量,以△$\theta$为步长角,在测地环上采样 m 个点,记这些点的法向量为n$\theta$。
参考坐标系的定义分三步进行:
(1)定义特征点 P 处的法向量 n 的方向为 Z 轴方向。
(2)P(位置向量)与 n 确定一个平面 E ,X 轴 为平面 E 内垂直于n的直线。
(3)右手坐标系下,Y 轴垂直于 X 轴与 Z 轴。
图2 (a)牛奶滴 (b)Splash
参考法线与采样点法线之间关系的定义:splash描述子可以用一个三维空间中参数曲线($\phi,\psi,\theta$)来表示。
B. 3-D Curve(三维曲线)
对于某些物体,例如多面体,一般用边来表示,由此启发,在描述一个物体时,可以通过提取物体表面上深度和方向不连续的点,这些点构成三维线段。我们考虑用多边形来近似表示这些曲线,这里引入一个定义,super-segment,表明由多条线段组成的超线段。我们在这里计算超线段的曲率(Ki)与绕率(ti),它们的定义如下:
最后,我们对含有 n 个线段的SS的Super-Segment进行编码:
最后,我们用下面的流程图来总结一下Splash特征的提取过程:
参考文献:F. Stein and G. Medioni, “Structural indexing: Efficient 3D object recognition,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 14, no. 2, pp. 125–145, Feb. 1992.
[持续更新中]