参考http://www.cnblogs.com/AndyJee/p/3734805.html,http://www.cnblogs.com/cfantaisie/archive/2011/06/14/2080917.html
一、点特征检测
1、点特征的优势:
点特征属于局部特征,对遮挡有一定鲁棒性;
通常图像中可以检测到成百上千的点特征,以量取胜;
点特征有较好的辨识性,不同物体上的点容易区分;
点特征提取通常速度很快;
2、什么是好的点特征?
考虑图像上的一个小窗口,当窗口位置发生微小变化时,窗口图像如何变化?
很明显,从下图可以看出,角点是一个好的点特征,因为它沿任意方向移动,窗口的灰度变化明显,所以它可以作为一个特征来进行区分和辨别。
3、点特征的数学表达
- 假设窗口W发生位置偏移(u,v);
- 比较偏移前后窗口中每一个像素点的灰度变化值;
- 使用误差平方和定义误差函数E(u,v)
不同位置点计算得到的E(u,v)如下图所示,E(u,v)值随着u、v变化的效果图,可以看出,平坦区域(如天空)的灰度变化不大(下图3),边缘区域沿着边缘方向的灰度变化.
也很小(下图2),只有角点处的灰度变化稍微剧烈一点(下图1)
误差函数E(u,v):
将I(u,v)进行Taylor展开:
进一步展开,写成:
根据H的2个特征值大小对图像点进行分类:
角点应该满足的基本性质:最小特征值尽量大
二、点特征检测:Harris角点
-
算法步骤:
-
Harris角点改进:
Harris检测子获得的角点可能在图像上分布不均匀(对比度高的区域角点多)
改进方法:Adaptive non-maximal suppression(ANMS),只保留半径r内角点响应比其他点大10%的点作为角点。(Brown,Szeliski and Winder,2005)
-
Harris角点的性质:
1. 旋转不变:
椭圆转过一定角度但是其形状保持不变(特征值保持不变)
2. 光照变化不变:
3. 对比度变化部分不变:
4. 对于图像尺度变化不具有不变性:
三、点特征检测:MOPS
MOPS:Multi-scale oriented patches
尺度不变:在多层图像金字塔上检测角点,在同一层进行匹配
MOPS局限:待匹配的图像需要尺度近似
四、sift特征
主要步骤
1)、尺度空间的生成;
2)、检测尺度空间极值点;
3)、精确定位极值点;
4)、为每个关键点指定方向参数;
5)、关键点描述子的生成。L(x,y,σ), σ= 1.6 a good tradeoffD(x,y,σ), σ= 1.6 a good tradeoff关于尺度空间的理解说明:图中的2是必须的,尺度空间是连续的。在 Lowe的论文中 ,将第0层的初始尺度定为1.6,图片的初始尺度定为0.5. 在检测极值点前对原始图像的高斯平滑以致图像丢失高频信息,所以 Lowe 建议在建立尺度空间前首先对原始图像长宽扩展一倍,以保留原始图像信息,增加特征点数量。尺度越大图像越模糊。next octave 是由 first octave 降采样得到(如2),尺度空间的所有取值,s为每组层数,一般为3~5同一组中的 相邻尺度(由于k的取值关系,肯定是上下层)之间进行寻找在极值比较的过程中,每一组图像的首末两层是无法进行极值比较的, 为了满足尺度变化的连续性,我们在每一组图像的顶层继续用高斯模糊生成了 3 幅图像,高斯金字塔有每组S+3层图像。DOG金字塔每组有S+2层图像.If ratio > (r+1)2/(r), throw it out (SIFT uses r=10)表示DOG金字塔中某一尺度的图像x方向求导两次通过拟和三维二次函数以精确确定关键点的位置和尺度(达到亚像素精度)?直方图中的峰值就是主方向,其他的达到最大值80%的方向可作为辅助方向Identify peak and assign orientation and sum of magnitude to key pointThe user may choose a threshold to exclude key points based on theirassigned sum of magnitudes.利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具备旋转不变性。以关键点为中心的邻域窗口内采样,并用直方图统计邻域像素的梯度方向。梯度直方图的范围是0~360度,其中每10度一个柱,总共36个柱。随着距中心点越远的领域其对直方图的贡献也响应减小.Lowe论文中还提到要使用高斯函数对直方图进行平滑,减少突变的影响。关键点描述子的生成步骤通过对关键点周围图像区域分块,计算块内梯度直方图,生成具有独特性的向量,这个向量是该区域图像信息的一种抽象,具有唯一性。每一个小格都代表了特征点邻域所在的尺度空间的一个像素 ,箭头方向代表了像素梯度方向,箭头长度代表该像素的幅值。然后在4×4的窗口内计算8个方向的梯度方向直方图。 绘制每个梯度方向的累加可形成一个种子点。每个直方图有8方向的梯度方向,每一个描述符包含一个位于关键点附近的四个直方图数组. 这就导致了SIFT的特征向量有128维.(先是一个4×4的来计算出一个直方图,每个直方图有8个方向。所以是4×4×8=128维)将这个 向量归一化之后,就进一步去除了光照的影响。旋转为主方向