浅谈sift算子
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈sift算子
一.Sift发展历程简介:
Sift算子最早是由D.G.Lowe于1999年提 出的,当时主要用于对象识别。 2004年D.G.Lowe对该算子做了全面的总 结,并正式提出了一种基于尺度空间的、 对图像缩放、旋转甚至仿射变换保持不变 性的图像局部特征描述算子——sift (Scale Invariant Feature Transform) 算子,即尺度不变特征变换。
上式中,m( x, y ) 和 x, y 分别为高斯金字塔影像 x, y 处梯度的大小 和方向, L 所用到的尺度为每个关键点所在的尺度。
在实际计算中,我们在以关键点为中心的邻域窗口内采样,并用直方图统 计邻域像素的梯度方向。梯度直方图的范围是0~360度,其中,每10度 一个柱,共36个柱。直方图的主峰值(最大峰值)代表了关键点处邻域 梯度的主方向,即关键点的主方向。图4是采用7个柱时使用梯度直方图 为关键点确定主方向的示例:
▲ 局部极值探测:
为了寻找尺度空间的极值点,每 一个采样点都要和它所有的相邻 点比较,看其是否比它的图像域 和尺度域的相邻点大或者是小。 如右图所示,中间的检测点和它 同尺度的8个相邻点以及上下相 邻尺度对应的9*2个点共26个点 比较,以确保在尺度空间和二维 图像空间都检测到极值点。
如果该检测点的值小于或大于它的相邻点(26个相邻点),那么该 点即为一个局部极值点(关键点)。
为了增强匹配的稳定性,需要删除低对比度的点。将 得:
1 D T D( X ) D 2 X
(2)式
代入 (1)式
X
D D0
定的特征点,应删除。 的经验值为0.03.
D( X ) 可以用来衡量特征点的对比度,如果 D( X ) ,则
X 为不稳
同时,因为DOG算子会产生较强的边缘响应,所以应去除低对比度的边 缘响应点,以增强匹配的稳定性,提高抗噪声能力。
Ⅱ. 关键点的精确定位
关键点的精确定位是通过拟合三维二次函数以精确确定关键点的位 置(达到子像素精度),同时去除低对比度的关键点和不稳定的边缘响 应点(因为DOG算子会产生较强的边缘响应)以增强匹配稳定性、提 高抗噪声能力。 在关键点处用泰勒展开式得到:
D T 1 T 2D D( X ) D X X X 2 X 2 X
m( x, y ) ( L( x 1, y ) L( x 1, y )) 2 ( L( x, y 1) L( x, y 1)) 2
( x, y ) arctan
L( x 1, y ) L( x 1, y ) L( x, y 1) L( x, y 1)
一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率, 而在垂直边缘的方向有较小的主曲率。主曲率通过一个2*2的Hessian矩 阵 H 求出:
D xx H D xy D xy D yy
导数 D 通过相邻采样点的差值计算。D 的主曲率和 比,令 为最大特征值, 为最小特征值,则
另外, G( x, y, ) 是指尺度可变高斯函数,其定义如下:
其中, ( x, y ) 是空间坐标, 坐标。
代表高斯正态分布的方差,亦即尺度
为了有效提取稳定的关键点,Lowe提出了利用高斯差分函数DOG (Difference Of Gaussian)对原始影像进行卷积:
D( x, y, ) (G( x, y, k ) G( x, y, )) * I ( x, y) L( x, y, k ) L( x, y, )
首先,将坐标轴旋转到关键点的主方向。只有以主方向为零点方向来描述 关键点才能使其具有旋转不变性。 然后,以关键点为中心取8*8的窗口,如图5左图所示。左图中的黑点为 当前关键点的位置,每个小格代表关键点邻域所在尺度空间的一个像素, 箭头方向代表该像素的梯度方向,箭头长度代表梯度的大小,圆圈代表高 斯加权的范围(越靠近关键点的像素梯度方向信息贡献越大)。接下来在 每个4*4的小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的 累加值,即可形成一个种子点,如图5右图所示。此图中,一个关键点由 2*2共4个种子点组成,每个种子点有8个方向向量信息。这种邻域方向 性信息联合的思想增强了算法抗噪声的能力,同时对于含有定位误差的特 征匹配也提供了较好容错性。 在实际计算中,为了增强匹配的稳健性,Lowe建议对每个关键点可使用 4*4共16个种子点来描述,这样对于一个关键点就可以产生128个数据, 即最终形成128维的sift特征向量。此时sift特征向量已经去除了尺度变化、 旋转等几何变形因素的影响,再继续将特征向量的长度归一化,则可以进 一步去除光照变化的影响。
即利用不同尺度的高斯差分核与图像卷积生成。 DOG算子的计算效率高,计算简单,且是尺度归一化的LOG算子的近 似。(LOG算子及其相关不再予以简绍)
▲ 高斯差分尺度空间的生成:
右图为高斯差分尺度空 间生成的示意图。 图像金字塔的构建:图 像金字塔共P组,每组 有S层,下一组的图像 由上一组的图像降采样 得到。 图1由两组高斯尺度空 间图像示例金字塔的构 建,第二组的第一幅图 像由第一组的第一幅到 最后一幅图像由一个因 子2降采样得到。 图2 DOG算子的构建
二.Sift算子的主要思想:
Sift算法是一种提取局部特征的算法, 在尺度空间寻找极值点,提取位置尺度, 旋转不变量。
三.Sift算子的主要特点:
Sift特征是图像的局部特征,其对旋转、尺 度缩放、亮度变化保持不变,对视角变化、 仿射变换、噪声也保持一定程度的稳定性。 独特性好,信息量丰富,适用于在海量特 征数据库中进行快速、准确的匹配。 多量性,即使少数的几个物体也可以产生 大量的sift特征向量。
在梯度方向直方图中,当存在另一个相当于主峰值80%能量的峰值时,则 将这个方向认为是该关键点的辅方向。一个关键点可能会被指定具有多个方 向(一个主方向,一个以上辅方向),这可以增强匹配的鲁棒性。 至此,图像的关键点已检测完毕,每个关键点有三个信息:位置、所处尺度、 方向。
Ⅳ. 关键点的描述
下图为关键点邻域梯度信息生成的特征向量:
D D0
(1)式
式中, X ( x, y, ) 点处的值。
T
为关键点的偏移量,D 是 D( x, y, ) 在关键
令
D( X ) 0 X
可以得到
X
的极值 X :
X
2 D 1D X 2 X
(2)式
如果 X 在任一方向上大于0.5,就意味着该关键点与另一采样点(检 测点)非常接近,这时就用插值来代替该关键点的位置。关键点加上 X 即为关键点的精确位置。
当两幅影像的sift特征向量生成后,采用关键点特征 向量的欧式距离作为两幅影像中关键点的相似性判定度量。 在左图像中取出某个关键点,并通过遍历找出其与右影像 中欧式距离最近的前两个关键点。如果最近的距离与次近 的距离比值少于某个阈值(经验值0.8),则接受这一对 匹配点。降低阈值,可以增加匹配点的正确率,但匹配点 数同时会减少。
的值在两个特征值相等时最小,并随着 的增大而增大。因 此,为了检测主曲率是否在某阈值 下,只需检测
( 1) 2
tr( H ) 2 ( 1) 2 Det ( H )
的经验值为10
Ⅲ. 确定关键点的主方向
利用关键点的局部影像特征(梯度)为每一个关键点确定主方向(梯度 最大的方向)。
H 的特征值成正
tr ( H ) D xx D yy Det ( H ) D xx D yy ( D xy ) 2
令 为最大特征值与最小特征值的比值,则
tr ( H ) 2 ( ) 2 ( ) 2 ( 1) 2 2 Det ( H )
具体说来:
n / s 卷积核分别对原始影像进行 ⑴. 在第一层尺度空间中,利用 高斯卷积,生成高斯金字塔影像(S+3张),其中n为高斯金字塔影像 的索引号(0,1,2,……,S+2),S为该层尺度空间的子层数。
⑵. 将第一层尺度空间中的相邻高斯金字塔影像相减,生成高斯差分金 字塔影像。 ⑶. 不断地将原始影像降采样2倍,并重复类似⑴和⑵的步骤,生成下 一层尺度空间。
高速性,经优化的sift匹配算法甚至可以达 到实时的要求。 可扩展性,可以很方便地与其他形式的特 征向量进行联合。
四.Sift算子主要步骤:
尺度空间的极值探测。 关键点的精确定位。 确定关键点的主要方向。 关键点的描述。
五.Sift算子详解:
Ⅰ. 尺度空间的生成
尺度空间理论的目的是模拟图像数据的多尺度特征。尺 度空间的基本思想是:在视觉信息(图像信息)处理模型中 引入一个被视为尺度的参数,通过连续变化尺度参数获得不 同尺度下的视觉处理信息,然后综合这些信息以深入地挖掘 图像的本质特征。
【参考资料】 1. 摄影测量学,武汉大学出版社,第二版,张剑清、 潘励、王树根编著; 2. sift算法小结,豆丁网,Andrew(上传人);
3. SIFT,豆丁网,Switch_xya(上传人)。
★ 高斯卷积核是实现尺度变换的唯一线性核。
一副二维图像,在不同尺度下的尺度空间表示可由图像与高斯核卷 积得到:
L( x, y, G( x, y, ) ห้องสมุดไป่ตู้ I ( x, y)
式中, ( x, y ) 代表图像的像素位置,L 代表图像的尺度空间, 为尺 度空间因子,其值越小则表征被平滑的越少,相应的尺度也就越小。同 时大尺度对应于图像的概貌特征,小尺度对应于图像的细节特征。
一.Sift发展历程简介:
Sift算子最早是由D.G.Lowe于1999年提 出的,当时主要用于对象识别。 2004年D.G.Lowe对该算子做了全面的总 结,并正式提出了一种基于尺度空间的、 对图像缩放、旋转甚至仿射变换保持不变 性的图像局部特征描述算子——sift (Scale Invariant Feature Transform) 算子,即尺度不变特征变换。
上式中,m( x, y ) 和 x, y 分别为高斯金字塔影像 x, y 处梯度的大小 和方向, L 所用到的尺度为每个关键点所在的尺度。
在实际计算中,我们在以关键点为中心的邻域窗口内采样,并用直方图统 计邻域像素的梯度方向。梯度直方图的范围是0~360度,其中,每10度 一个柱,共36个柱。直方图的主峰值(最大峰值)代表了关键点处邻域 梯度的主方向,即关键点的主方向。图4是采用7个柱时使用梯度直方图 为关键点确定主方向的示例:
▲ 局部极值探测:
为了寻找尺度空间的极值点,每 一个采样点都要和它所有的相邻 点比较,看其是否比它的图像域 和尺度域的相邻点大或者是小。 如右图所示,中间的检测点和它 同尺度的8个相邻点以及上下相 邻尺度对应的9*2个点共26个点 比较,以确保在尺度空间和二维 图像空间都检测到极值点。
如果该检测点的值小于或大于它的相邻点(26个相邻点),那么该 点即为一个局部极值点(关键点)。
为了增强匹配的稳定性,需要删除低对比度的点。将 得:
1 D T D( X ) D 2 X
(2)式
代入 (1)式
X
D D0
定的特征点,应删除。 的经验值为0.03.
D( X ) 可以用来衡量特征点的对比度,如果 D( X ) ,则
X 为不稳
同时,因为DOG算子会产生较强的边缘响应,所以应去除低对比度的边 缘响应点,以增强匹配的稳定性,提高抗噪声能力。
Ⅱ. 关键点的精确定位
关键点的精确定位是通过拟合三维二次函数以精确确定关键点的位 置(达到子像素精度),同时去除低对比度的关键点和不稳定的边缘响 应点(因为DOG算子会产生较强的边缘响应)以增强匹配稳定性、提 高抗噪声能力。 在关键点处用泰勒展开式得到:
D T 1 T 2D D( X ) D X X X 2 X 2 X
m( x, y ) ( L( x 1, y ) L( x 1, y )) 2 ( L( x, y 1) L( x, y 1)) 2
( x, y ) arctan
L( x 1, y ) L( x 1, y ) L( x, y 1) L( x, y 1)
一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率, 而在垂直边缘的方向有较小的主曲率。主曲率通过一个2*2的Hessian矩 阵 H 求出:
D xx H D xy D xy D yy
导数 D 通过相邻采样点的差值计算。D 的主曲率和 比,令 为最大特征值, 为最小特征值,则
另外, G( x, y, ) 是指尺度可变高斯函数,其定义如下:
其中, ( x, y ) 是空间坐标, 坐标。
代表高斯正态分布的方差,亦即尺度
为了有效提取稳定的关键点,Lowe提出了利用高斯差分函数DOG (Difference Of Gaussian)对原始影像进行卷积:
D( x, y, ) (G( x, y, k ) G( x, y, )) * I ( x, y) L( x, y, k ) L( x, y, )
首先,将坐标轴旋转到关键点的主方向。只有以主方向为零点方向来描述 关键点才能使其具有旋转不变性。 然后,以关键点为中心取8*8的窗口,如图5左图所示。左图中的黑点为 当前关键点的位置,每个小格代表关键点邻域所在尺度空间的一个像素, 箭头方向代表该像素的梯度方向,箭头长度代表梯度的大小,圆圈代表高 斯加权的范围(越靠近关键点的像素梯度方向信息贡献越大)。接下来在 每个4*4的小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的 累加值,即可形成一个种子点,如图5右图所示。此图中,一个关键点由 2*2共4个种子点组成,每个种子点有8个方向向量信息。这种邻域方向 性信息联合的思想增强了算法抗噪声的能力,同时对于含有定位误差的特 征匹配也提供了较好容错性。 在实际计算中,为了增强匹配的稳健性,Lowe建议对每个关键点可使用 4*4共16个种子点来描述,这样对于一个关键点就可以产生128个数据, 即最终形成128维的sift特征向量。此时sift特征向量已经去除了尺度变化、 旋转等几何变形因素的影响,再继续将特征向量的长度归一化,则可以进 一步去除光照变化的影响。
即利用不同尺度的高斯差分核与图像卷积生成。 DOG算子的计算效率高,计算简单,且是尺度归一化的LOG算子的近 似。(LOG算子及其相关不再予以简绍)
▲ 高斯差分尺度空间的生成:
右图为高斯差分尺度空 间生成的示意图。 图像金字塔的构建:图 像金字塔共P组,每组 有S层,下一组的图像 由上一组的图像降采样 得到。 图1由两组高斯尺度空 间图像示例金字塔的构 建,第二组的第一幅图 像由第一组的第一幅到 最后一幅图像由一个因 子2降采样得到。 图2 DOG算子的构建
二.Sift算子的主要思想:
Sift算法是一种提取局部特征的算法, 在尺度空间寻找极值点,提取位置尺度, 旋转不变量。
三.Sift算子的主要特点:
Sift特征是图像的局部特征,其对旋转、尺 度缩放、亮度变化保持不变,对视角变化、 仿射变换、噪声也保持一定程度的稳定性。 独特性好,信息量丰富,适用于在海量特 征数据库中进行快速、准确的匹配。 多量性,即使少数的几个物体也可以产生 大量的sift特征向量。
在梯度方向直方图中,当存在另一个相当于主峰值80%能量的峰值时,则 将这个方向认为是该关键点的辅方向。一个关键点可能会被指定具有多个方 向(一个主方向,一个以上辅方向),这可以增强匹配的鲁棒性。 至此,图像的关键点已检测完毕,每个关键点有三个信息:位置、所处尺度、 方向。
Ⅳ. 关键点的描述
下图为关键点邻域梯度信息生成的特征向量:
D D0
(1)式
式中, X ( x, y, ) 点处的值。
T
为关键点的偏移量,D 是 D( x, y, ) 在关键
令
D( X ) 0 X
可以得到
X
的极值 X :
X
2 D 1D X 2 X
(2)式
如果 X 在任一方向上大于0.5,就意味着该关键点与另一采样点(检 测点)非常接近,这时就用插值来代替该关键点的位置。关键点加上 X 即为关键点的精确位置。
当两幅影像的sift特征向量生成后,采用关键点特征 向量的欧式距离作为两幅影像中关键点的相似性判定度量。 在左图像中取出某个关键点,并通过遍历找出其与右影像 中欧式距离最近的前两个关键点。如果最近的距离与次近 的距离比值少于某个阈值(经验值0.8),则接受这一对 匹配点。降低阈值,可以增加匹配点的正确率,但匹配点 数同时会减少。
的值在两个特征值相等时最小,并随着 的增大而增大。因 此,为了检测主曲率是否在某阈值 下,只需检测
( 1) 2
tr( H ) 2 ( 1) 2 Det ( H )
的经验值为10
Ⅲ. 确定关键点的主方向
利用关键点的局部影像特征(梯度)为每一个关键点确定主方向(梯度 最大的方向)。
H 的特征值成正
tr ( H ) D xx D yy Det ( H ) D xx D yy ( D xy ) 2
令 为最大特征值与最小特征值的比值,则
tr ( H ) 2 ( ) 2 ( ) 2 ( 1) 2 2 Det ( H )
具体说来:
n / s 卷积核分别对原始影像进行 ⑴. 在第一层尺度空间中,利用 高斯卷积,生成高斯金字塔影像(S+3张),其中n为高斯金字塔影像 的索引号(0,1,2,……,S+2),S为该层尺度空间的子层数。
⑵. 将第一层尺度空间中的相邻高斯金字塔影像相减,生成高斯差分金 字塔影像。 ⑶. 不断地将原始影像降采样2倍,并重复类似⑴和⑵的步骤,生成下 一层尺度空间。
高速性,经优化的sift匹配算法甚至可以达 到实时的要求。 可扩展性,可以很方便地与其他形式的特 征向量进行联合。
四.Sift算子主要步骤:
尺度空间的极值探测。 关键点的精确定位。 确定关键点的主要方向。 关键点的描述。
五.Sift算子详解:
Ⅰ. 尺度空间的生成
尺度空间理论的目的是模拟图像数据的多尺度特征。尺 度空间的基本思想是:在视觉信息(图像信息)处理模型中 引入一个被视为尺度的参数,通过连续变化尺度参数获得不 同尺度下的视觉处理信息,然后综合这些信息以深入地挖掘 图像的本质特征。
【参考资料】 1. 摄影测量学,武汉大学出版社,第二版,张剑清、 潘励、王树根编著; 2. sift算法小结,豆丁网,Andrew(上传人);
3. SIFT,豆丁网,Switch_xya(上传人)。
★ 高斯卷积核是实现尺度变换的唯一线性核。
一副二维图像,在不同尺度下的尺度空间表示可由图像与高斯核卷 积得到:
L( x, y, G( x, y, ) ห้องสมุดไป่ตู้ I ( x, y)
式中, ( x, y ) 代表图像的像素位置,L 代表图像的尺度空间, 为尺 度空间因子,其值越小则表征被平滑的越少,相应的尺度也就越小。同 时大尺度对应于图像的概貌特征,小尺度对应于图像的细节特征。