SIFT算法

Sift算法主要分解为四步:

   1:尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在对于尺度和旋转不敏感

        的像素点。

  2:关键点定位 :在每一个候选位置,通过拟合一个精细模型来确定位置和尺度,关键点选择易居他们的稳定程度

 3:方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。

4. 关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。

2、高斯模糊

SIFT算法是在不同的尺度空间上查找关键点,而尺度空间的获取需要使用高斯模糊来实现,Lindeberg等人已证明高斯卷积核是实现尺度变换的唯一变换核,并且是唯一的线性核。本节先介绍高斯模糊算法。

2.1二维高斯函数

高斯模糊是一种图像滤波器,它使用正态分布(高斯函数)计算模糊模板,并使用该模板与原图像做卷积运算,达到模糊图像的目的。

N维空间正态分布方程为:

1-1

其中,是正态分布的标准差,值越大,图像越模糊(平滑)r为模糊半径,模糊半径是指模板元素到模板中心的距离。如二维模板大小为m*n,则模板上的元素(x,y)对应的高斯计算公式为:

1-2

 在二维空间中,这个公式生成的曲面的等高线是从中心开始呈正态分布的同心圆,如图2.1所示。分布不为零的像素组成的卷积矩阵与原始图像做变换。每个像素的值都是周围相邻像素值的加权平均。原始像素的值有最大的高斯分布值,所以有最大的权重,相邻像素随着距离原始像素越来越远,其权重也越来越小。这样进行模糊处理比其它的均衡模糊滤波器更高地保留了边缘效果。

理论上来讲,图像中每点的分布都不为零,这也就是说每个像素的计算都需要包含整幅图像。在实际应用中,在计算高斯函数的离散近似时,在大概3σ距离之外的像素都可以看作不起作用,这些像素的计算也就可以忽略。通常,图像处理程序只需要计算的矩阵就可以保证相关像素影响

2.2 图像的二维高斯模糊

根据σ的值,计算出高斯模板矩阵的大小(),使用公式(1-2)计算高斯模板矩阵的值,与原图像做卷积,即可获得原图像的平滑(高斯模糊)图像。为了确保模板矩阵中的元素在[0,1]之间,需将模板矩阵归一化。5*5的高斯模板如表2.1所示。

下图是5*5的高斯模板卷积计算示意图。高斯模板是中心对称的。


2.3分离高斯模糊

如图2.3所示,使用二维的高斯模板达到了模糊图像的目的,但是会因模板矩阵的关系而造成边缘图像缺失(2.3 b,c)越大,缺失像素越多,丢弃模板会造成黑边(2.3 d)。更重要的是当变大时,高斯模板(高斯核)和卷积运算量将大幅度提高。根据高斯函数的可分离性,可对二维高斯模糊函数进行改进。

    高斯函数的可分离性是指使用二维矩阵变换得到的效果也可以通过水平方向进行一维高斯矩阵变换加上垂直方向的一维高斯矩阵变换得到。从计算的角度看,这是一个非常有用的角度,因为这样只需要次计算,


猜你喜欢

转载自blog.csdn.net/chenmingwei000/article/details/79922906
今日推荐