Salti等人在2014年提出一种表面匹配的局部三维描述子SHOT。Salti等人将现有三维局部特征描述方法分为两类,即基于特征的描述方法与基于直方图的描述方法,并分析了两种方法的优势,提出基于特征的局部特征描述方法要比后者在特征的描述能力上更强,而基于直方图的局部特征描述方法在特征的鲁棒性上比前者更胜一筹。
SHOT特征描述子原理
SHOT(Signature of Histogram of Orientation)是一种基于局部特征的描述子,其基本思想为:基于邻域点建立局部坐标系,将点邻域空间分出几个子空间,然后对子空间中每个点的法向特征统计到直方图进行编码,再将每个子空间的直方图联合到一起得到三维描述子,主要计算步骤如下: 1)对于点云中每个查询点P_i,构建点邻域的协方差矩阵M,其中r表示轮与半径,P_k表示邻域内每一个点,p ̂表示该点邻域内所有点的质心,d_k表示邻域内点到质心p ̂的距离。 M=∑_d_k≤r▒(r−d_k)(P_k−p ̂)(P_k−p ̂)^T/∑_d_k≤r▒(r−d_k) (1) 2)通过对协方差矩阵M求解可得特征值及特征值对应的特征向量,将特征值按从大到小排序可得λ_1>λ_2>λ_3,其对应的特征向量ν_1、ν_2、ν_3分别代表x、y、z三个坐标轴。 3)以查询点P_i为中心,建立半径为r的球型邻域,将球形坐标系从半径、经度和纬度三个维度划分成32个区域,半径分为内外球2份、纬度分成2份、经度分成8份,如图1所示。
4)计算分布在32个子空间内每个邻域点P_k与查询点P_i法向量之间的夹角余弦,其中ν_ni表示第n个子空间内第i个点的法向量,ν_3表示查询点P_i的法向量,即局部坐标系的z轴 cosθ_ni=ν_ni⋅ν_3 (2) 5)统计子空间内各个点与查询点的夹角余弦值,分成11维直方图,再将每个子空间的直方图组合在一起,形成352维的高位直方图特征。 6) 由于SHOT描述子是局部特征描述子,支持空间细分,因此需要考虑边界效应。为消除边界影响,采用四线性插值法将邻域内各点累加到局部直方图特定的单元格,即在一个局部直方图的相邻单元插值, 相邻直方图的同一单元格进行插值。
1.法向量插值 假设当前关键点支撑区域内一点的特征值为cosθ,其处于(cosθ_i,cosθ_i+1)区间,首先计算出cosθ到cosθ_i和cosθ_i+1的归一化(除以区间长度s)距离,记为d_i和d_i+1,然后给cosθ_i区间累积值为+1−d_i,给cosθ_i+1区间累积值为+1−d_i+1。线性插值的作用就是把当前值按照线性比例分配到相邻的离散区间上,下图2是法向量余弦插值的图形描述。
2. 经度插值 对于经度,权重d为角度距离进行计算。插值的方法与上述相同。下图3是经度插值的图形描述。
3. 纬度插值 对于纬度,权重d为角度距离进行计算。插值的方法与上述相同。下图5-20是纬度插值的图形描述。
4.径向插值 对于径向这个纬度,权重d根据欧氏距离进行计算。插值的方法与上述相同。下图5是径向插值的图形描述。