利用已知的离散空间点插值得到的连续空间极值点的方法叫做子像素插值,利用尺度空间DOG函数进行曲线拟合,然后对其函数利用泰勒展开式,求得一个偏移量,从而实现对行(x),列(y)以及尺度(sigma)进行修正,一般认为,偏移量小于0.5则调整完毕.
之后我们还要对边缘点进行过滤,SIFT认为边缘点容易受到噪音的影响,因此需要剔除,对于边缘点的检测是通过曲率来判读的,边缘点在横跨边缘的地方曲率较大,而在垂直边缘的方向有较小的曲率,候选特征点的曲率与2*2的海森矩阵的特征值成正比,可以通过以下的公式进行筛选:
其中Tr表示海森矩阵对角线元素之和,Det表示海森矩阵的行列式,Tgamma表示一个阀值,默认取10,如果上式成立,那我们就可以剔除该候选关键点
上面找到的关键点保证了尺度不变形,为了实现旋转不变形,我们需要给特征点的方向进行赋值,利用特征点周围的像素点的梯度分布,统计生成一个梯度直方图从而方便来确定特征点的主方向,我们上面已经找到了特征点的尺度,那也就可以得到特征点所在的尺度图像:
对于一个特征点,我们要去计算以该特征点为中心,为半径的区域内的像素点的梯度向量的幅度和方向:
之后统计一个梯度直方图,我们以10度为一个bin,共分了36个bin,每个采样点按照其梯度方向加权统计到直方图中,权重为幅度m和贡献因子的乘积,贡献因子是采样点到关键点的距离的反比 。
当直方图确定以后,任何大于峰值80%的的方向,可以看作是该特征点的辅助方向,以此来提高匹配的稳定性 。最后我们可以用方向的峰值和左右两个幅值拟合二次曲线,来更准确的定位峰值的位置 。
通过之前的步骤,我们已经得到了特征点的尺度,位置已经方向信息,这一步我们需要用一个特征向量来表示它 。我们可以通过三步来生成特征向量:
我们以关键点为中心,取一个16*16的window,对于里面的每一个像素点,我们都要计算其幅度和角度,然后我们以4*4作为一个种子点,把里面的像素点的梯度进行统计并生成一个梯度直方图,对于每一个梯度直方图,我们以45度作为一个bin在360度的范围内共有8个方向区间,于是,对每个关键点,我们取4*4共16个种子点来描述,每个描述子由8个方向的梯度信息,所以对于每个特征点,我们生成了一个4*4*8=128维的向量
最后我们对生成的特征向量进行归一化处理,该处理可以去除光照的影响
通过SIFT提取的特征有着旋转平移不变形,尺度不变形,光照不变形,其中:
1. 旋转不变形是因为在生成特征向量之前,我们需要将坐标轴做一个映射使其旋转到主方向,因此有了一定的旋转不变形
2. 平移不变形是因为SIFT在计算特征向量的时候,提取关键点周围的区域的样本点,所以如果该特征点移动到任何处于该区域内的位置都可以被提取出来,这就有点像CNN中的pooling
3. 尺度不变形是首先因为我们通过DOG拟合LOG,而LOG又经前人的证明可以在不同尺度下检测到图像的特征,其次通过DOG我们可以拟合出来不同的尺度的情况,在这种情况下求出来的关键点,自然是具有尺度不变形的
4.光照不变形是因为我们对最后的特征向量进行了归一化
1. SIFT高度依赖局部区域像素的梯度,有可能这个区域取得不合适,导致我们找的主方向不准确,从而导致计算出来的特征向量误差很大,从而不能成功匹配
2. 另外我们在进行SIFT特征选取之前,可以看一下图像的像素值分布,如果像素值分布过于集中,那么SIFT的表现也不会很好,对此我们可以做一些图像均衡化的处理
sift算法是什么?Sift算法是David Lowe于1999年提出的局部特征描述子,并于2004年进行了更深入的发展和完善 。Sift特征匹配算法可以处理两幅图像之间发生平移、旋转、仿射变换情况下的匹配问题,具有很强的匹配能力 。
这一算法的灵感也十分的直观,人眼观测两张图片是否匹配时会注意到其中的典型区域(特征点部分),如果我们能够实现这一特征点区域提取过程,再对所提取到的区域进行描述就可以实现特征匹配了 。
sift算法的应用
SIFT算法目前在军事、工业和民用方面都得到了不同程度的应用,其应用已经渗透了很多领域,典型的应用如下:物体识别;机器人定位与导航;图像拼接;三维建模;手势识别;视频跟踪;笔记鉴定;指纹与人脸识别;犯罪现场特征提取 。
在图像处理方面什么是SIFT匹配?一、特征点(角点)匹配
秒懂生活扩展阅读
- 秦朝罢侯置守的守啥意思
- 柠檬酸的主要成分是什么
- 富贵门的演员
- 菅田将晖为什么叫苏打
- 豹子是属于什么类的动物
- 泰拉瑞亚床怎么用
- 描写泉声和瀑布的词语有哪些
- 办法与规定的区别
- 玩手机上瘾怎么办 玩手机
- 董卓的女儿是