这是我总结的SIFT特征提取介绍,希望对大家有用,当然期间参考了一些硕博论文,在此向作者表示感谢。
2004年,David. Lowe总结了已有基于不变量技术的特征检测方法,正式提出了一种基于尺度空间的,对图像平移、旋转、缩放、甚至仿射变换保持不变性的图像局部特征,即SIFT特征。下面详细介绍一下SIFT特征的提取过程。
1、尺度空间极值检测 Koendetink证明了高斯卷积核是实现尺度变换的唯一变换核,而Lindeberg等人则进一步证明高斯核是唯一的线性核。所以一幅二维图像的尺度空间定义为: L(x,y,σ)=G(x,y,σ)* I(x,y) 其中,尺度可变高斯函数G(x,y,σ)= e .^(-(x.^2+y.^2)/2σ.^2)/2πσ.^2。 后来David.Low等人为了更加高效地在尺度空间检测到稳定的特征点,在1999年提出利用不同尺度的高斯差分方程同图像进行卷积,求取尺度空间极值,即 D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))*I(x,y)=L(x,y,kσ)-L(x,y,σ) 在实际应用中,用构造差分图像DOG来计算极值。 在检测尺度空间极值时,图2中标记为叉号的像素需要跟包括同一尺度的周围邻域8个像素和相邻尺度对应位置的周围邻域9×2个像素总共26个像素进行比较,以确保在尺度空间和二维图像空间都检测到局部极值。
图2 DOG图像中的极值点检测
2、精确定位特征点的位置 当然这样产生的极值点并不都是稳定的特征点,因为某些极值点响应较弱,而且DOG算子会产生较强的边缘响应。通过拟和三维二次函数以精确确定特征点的位置和尺度(达到亚像素精度),同时可以去除低对比度的关键点和不稳定的边缘响应点,以增强匹配稳定性、提高抗噪声能力。 3、确定特征点的主方向 利用关键点邻域像素的梯度方向分布特性为关键点指定方向参数,使算子具备旋转不变性。(x,y)处的梯度值和方向分别为: 在以特征点为中心的邻域窗口内采样,并用梯度方向直方图来统计邻域像素的梯度方向。梯度直方图的范围是0°~360°,其中每10°一个柱,总共36个柱。梯度方向直方图的峰值则代表了该特征点处邻域梯度的主方向,即作为该特征点的主方向。在梯度方向直方图中,当存在另一个相当于主峰值80%能量的峰值时,则将这个方向认为是该特征点的辅方向。一个特征点可能会被指定具有多个方向(一个主方向,一个以上辅方向),这可以增强匹配的鲁棒性。 4、生成特征描述符
图3图像梯度及特征点描述符
首先将坐标轴旋转为特征点的方向,以保证旋转不变性;接下来以特征点为中心取16×16的窗口(特征点所在的行和列不取)。在图3(a)中,每个小格代表特征点邻域所在尺度空间的一个像素,箭头方向代表该像素的梯度方向,箭头长度代表梯度模值,图中圈内代表高斯加权的范围(越靠近特征点的像素,梯度方向信息贡献越大)。然后在每4×4的图像小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,形成一个种子点,如图3(b)所示。此图中一个特征点由4×4共16个种子点组成,每个种子点有8个方向向量信息,可产生4×4×8共32个数据,形成128维的SIFT特征向量即特征描述符。这种邻域方向性信息联合的思想增强了算法抗噪声的能力,同时对于含有定位误差的特征匹配也提供了较好的容错性。此时,SIFT特征向量已去除了尺度变化、旋转等几何变形因素的影响
|