SIFT 特征
是一种基于尺度空间的,对图像缩放,旋转甚至仿射变换保持不变性的图像局部特征描述算子。SIFT特征提取的是及其细微,大量的特征点,即时少数物体,物体的一小部分也可以产生大量特征向量。仅三个匹配的SIFT关键点就足以确定匹配关系。
SIFT算法用于图像配准的整个执行流程大致为:
1,度入图像,转换double类型
2,高斯滤波,线性插值,图像放大一倍
3,产生高斯金字塔和高斯差分金字塔图像序列,这是最耗时的一步;Lowe建议高斯金字塔一般选择4阶,每阶选择5层。
4,检测高斯差分金字塔尺度空间极值点,去除对比度和边缘不稳定的特征点,选取较小的曲率阈值或选取较大的对比度阈值均可以减小特征点的个数,应选取合适的阈值,若果图像太大,特征点太多,会导致内存溢出。
5,计算特征点幅值和方向序列
6,在特征点中寻找关键点,建立梯度方向直方图,得到每个关键点的位置,尺度和方向。
7,产生关键点描述子序列
8,根据产生的关键点描述子序列,基于欧氏距离初步得到关键点对,寻找与目标关键点欧氏距离最近的俩个关键点,用这俩个关键点中最近的距离与此近的距离的比值作为最近点的相似度度量,如果小于某个比例阈值,则接受这一对匹配点,
9,用hough变换对初步得到的关键点对进行再一次计算,得到最终的初始关键点对。
10,用RANSAC算法对初始关键点对进行精确匹配,提出错误的匹配点,得到最终的匹配点。
SURF
Surf算法是对Sift算法的一种改进,主要是在算法的执行效率上比Sift算法来讲运行更快!
SURF算法对积分图像进行操作,卷积只和前一幅图像有关,其降采样的方法是申请增加图像核的尺寸,这也是SIFT算法与SURF算法在使用金字塔原理方面的不同。SURF算法允许尺度空间多层图像同时被处理,不需对图像进行二次抽样,从而提高算法性能。
算法原理:
(1)、构建Hessian矩阵
Hessian矩阵是Surf算法的核心,为了方便运算,假设函数f(z,y),Hessian矩阵H是由函数,偏导数组成:
H矩阵判别式为:
判别式的值是H矩阵的特征值,可以利用判定结果的符号将所有点分类,根据判别式取值正负,来判别该点是或不是极值点。在SURF算法中,用图像像素l(x,y)代替函数值f(x,y),选用二阶标准高斯函数作为滤波器,通过特定核间的卷积计算二阶偏导数,这样便能计算出H矩