1.确定潜在特征点
与梯度特征、Hessian特征和Harris角点相比,高斯拉普拉斯函数的极大值和极小值点是一种非常稳定的特征点。差分高斯金字塔是一个三维空间(平面图像二维,尺度一维),我们在三维空间中寻找极大值点和极小值点的方法是:比较当前特征点的灰度值和周围26个灰度值的大小,若当前特征点灰度值最大,则它是极大值;若当前特征点灰度值最小,则它是极小值。去掉图像边界之后,从第二层图像开始遍历,到图像倒数第二层结束。 这26个点指的是该特征点当前所处的层中它的八邻域内的点,以及前后两层中与该特征点最近的九个点,。如下图:

所有的潜在特征点已经找出,但我们目前面对两个问题:
1.这些潜在特征点是最终SIFT特征点集的超集,该超集里面包含很多不稳定的特征点,包括:低对比度的点(对噪声敏感)和边缘点。
2.目前得到的极值点的坐标是离散的整数值,如何精确确定特征点的位置。
2.精确确定特征点的位置
由于图像是一个离散的空间,特征点的位置的坐标都是整数,但是极值点的坐标并不一定就是整数,如下图所示:

以下通过拟合三维二次函数来精确确定特征点的位置。
利用已知的离散空间点插值得到的连续空间极值点的方法叫做子像素插值(Sub-pixel Interpolation)。
为了提高关键点的稳定性,需要对尺度空间DOG函数进行曲线拟合。利用DOG函数在尺度空间的Taylor展开式(拟合函数)为:
,其中,
。
求导并让方程等于零,可以得到极值点的偏移量为:

对应极值点,方程的值为:

其中,
代表相对插值中心的偏移量。当它在任一维度上(即x或y或σ)的偏移量大于0.5时,意味着插值中心已经偏移到它的邻近点上,所以必须改变当前关键点的位置,同时在新的位置上反复插值直到收敛;也有可能超出所设定的迭代次数(在Lowe论文中进行了五次迭代)或者超出图像边界的范围,此时这样的点应该删除。同时,在此过程中获取特征点的精确位置(原位置加上拟合的偏移量)以及尺度。
3.去除不稳定特征点
去除低对比度的关键点和和不稳定的边缘响应点(DOG算子会产生较强的边缘响应),以增强匹配稳定性,提高抗噪声能力。
去除对比度低的点
候选特征点x,其偏移量定义为Δx,|D(x)|是D(x)的绝对值,对D(x)应用泰勒公式:

由于x是D(x)的极值点,所以对上式求导并令其为零,得到:

再把求得的Δx带入到D(x)的泰勒展开式中,

过小的点易受噪声的干扰而变得不稳定,设对比度的阈值为T,若|D(x)|≤T,则去除这个特征点。(Lowe的论文中,T取0.03,Rob Hess等人实现时使用0.04/S)
去除不稳定的边缘点
DOG算子会产生较强的边缘效应,需要剔除不稳定的边缘响应点。
一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率,而在垂直边缘的方向有较小的主曲率。
D的某点的主曲率和该点H的特征值成正比,因此我们可以通过H矩阵的特征值来确定某点在差分高斯金字塔中的主曲率。
获取特征点处的Hessian矩阵,主曲率通过一个2*2的Hessian矩阵H求出:
,其中,
均可以通过当前像素点及周围像素点差分得到。
设矩阵H的特征值分别为α(较大)和β(较小),有如下公式:
矩阵的迹:
矩阵的行列式:
除了直接计算α和β,还有更加简便的方法!令α=rβ,则有:

以上函数是关于r的增函数,r越大,以上函数值越大。当两个特征值相等时,r最小。r值越大, 说明α与β的比值越大,即在某一个方向的梯度值越大,而在另一个方向的梯度值越小,边缘恰恰就是这种情况。为了剔除边缘响应点,需要让该比值小于一定的阈值。因此, 为了检测主曲率是否在某阈值r下,只需检测:
,Lowe论文中设定r=10。
浙公网安备 33010602011771号