目录
3. 对上一过程中得出的候选极值点进行筛选,去除边缘响应点,得到真正的特征点
6. 通过特征点的两两比较,找出相互匹配的若干个特征点,建立对应的关系
一:SIFT算法的特征原理描述
SIFT算法在图像尺度空间基础上,实现了对图像缩放、旋转保持不变性的图像局部特征的描述。实质可以归为在不同尺度空间上查找特征点(关键点)的问题。SIFT算法实现特征匹配的基本流程如下:
1. 尺度空间的搭建
首先引入尺度空间的概念:它可以模拟人在距离目标由近到远的过程中,目标在视网膜当中形成图像的过程,尺度越大越模糊,相当于我们观察远处的物体。如果需要识别出包含不同尺寸的同一物体的两幅图像,随着物体在图像中大小发生变化,属于该物体的局部区域的大小也会发生变化。SIFT算法采用高斯图像金字塔,对图像做高斯平滑和降采样,一幅图像可以产生几组图像,一组图像包括几层图像,从而实现尺度的连续性。高斯核是唯一可以产生 多尺度空间的核,一个 图像的尺度空间,L(x, y, σ) ,定义为原始图像 I(x, y)与一个可变尺度的2 维高斯函数G(x, y, σ) 卷积运算。
尺度归一化的高斯拉普拉斯算子能够得到最稳定的图像特征,但因为计算量太大,所以引入了高斯差分金字塔(DOG),DoG在计算上只需相邻高斯平滑后图像相减,即高斯差分金字塔的第1组第1层是由高斯金字塔的第1组第2层减第1组第1层得到的,以此类推,逐组逐层生成每一个差分图像,所有差分图像构成差分金字塔,每一组在层数上,高斯差分金字塔比高斯金字塔少一层,从而简化了计算。
![](https://img-blog.csdnimg.cn/20190315194642477.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzM3NzUxOTkz,size_16,color_FFFFFF,t_70)
2. DOG局部极值检测
SIFT特征点是由DOG空间的局部极值点组成的。为了寻找DoG函数的极值点, 将每一个像素点和它所有的相邻点进行比较。如图所示,将中间带叉号的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点,即2*9+8=26,这26个像素点进行比较,若在这26个领域中是最大或最小值时,就认为该点是图像在该尺度下一个候选的特征点。
3. 对上一过程中得出的候选极值点进行筛选,去除边缘响应点,得到真正的特征点
DoG函数的峰值点在边缘方向有较大的主曲率,而在垂直边缘的方向有较小的主曲率。SIFT寻找的局部图像块,期望局部块中的主梯度方向与其他方向的梯度相差不要太大,通过计算DOG的二阶导数(Hessian矩阵),得到主梯度方向和其他方向的比值,保留该比值小于一定数值的局部特征点。主曲率可以通过计算在该点位置尺度的2×2的Hessian矩 阵得到,导数由采样点相邻差来估计:
D 表示DOG金字塔中某一尺度的图像x方向求导两次
D的主曲率和H的特征值成正比。令 α ,β为特征值,则
时保留关键点,反之剔除
4. 特征点方向匹配
为了实现旋转不变形,基于每个点周围梯度的方向和大小,SIFT算法引入了主方向描述参考方向,主方向使用方向直方图来衡量。
5.关键特征点的描述
其中描述子由2×2×8维向量表征,也即是 2×2个8方向的方向直方图组成。左图的种子点由8×8单元组成。每一个小格 都代表了特征点邻域所在的尺度空间的一个像素,箭头方向代表了像素梯度方 向,箭头长度代表该像素的幅值。然后在4×4的窗口内计算8个方向的梯度方 向直方图。绘制每个梯度方向的累加可形成一个种子点。