计算机视觉——SIFT图像匹配算法

1. SIFT简介

全称Scale Invariant Feature Transform,尺度不变特征变换,由加拿大教授David G.Lowe提出的。SIFT特征对旋转、尺度缩放、亮度变化等保持不变性,是一种非常稳定的局部特征。
SIFT算法的实质可以归为在不同尺度空间上查找特征点(关键点)的问题。

1.1 SIFT算法特点
  • 图像的局部特征,对旋转、尺度缩放、亮度变化保持不变,对视角变化、仿射变换、噪声也保持一定程度的稳定性。
  • 独特性好信息量丰富,适用于海量特征库进行快速、准确的匹配。
    多量性,即使是很少几个物体也可以产生大量的SIFT特征
  • 高速性,经优化的SIFT匹配算法甚至可以达到实时性
  • 扩招性,可以很方便的与其他的特征向量进行联合。
1.2 SIFT特征检测的步骤
  • 1.尺度空间的极值检测: 搜索所有尺度空间上的图像,通过高斯微分函数来识别潜在的对尺度和选择不变的兴趣点。

  • 2.特征点定位: 在每个候选的位置上,通过一个拟合精细模型来确定位置尺度,关键点的选取依据他们的稳定程度。

  • 3.特征方向赋值: 基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向,后续的所有操作都是对于关键点的方向、尺度和位置进行变换,从而提供这些特征的不变性。

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

2. 尺度空间

  • 什么是尺度空间:从图像的角度来解释尺度,尺度空间就是在多个尺度下观察目标,然后加以综合的分析、理解和应用。尺度空间中各尺度图像的 模糊程度逐渐变大,能够模拟人在距离目标由近到远时目标 在视网膜上的形成过程。 尺度越大图像越模糊。
  • 尺度空间的作用:在一定的范围内,无论物体是大还是小,人眼都可以分辨出来。然而计算机要有相同的能力却不是那么的容易,在未知的场景中,计算机视觉并不能提供物体的尺度大小,其中的一种方法是把物体不同尺度下的图像都提供给机器,让机器能够对物体在不同的尺度下有一个统一的认知。在建立统一认知的过程中,要考虑的就是在图像在不同的尺度下都存在的特征点。
  • 哪些点是SIFT中要查找的特征点:十分突出的点不会因光照、尺度、旋转等因素的改变而消 失,比如角点、边缘点、暗区域的亮点以及亮区域的暗点。既然两幅图像中 有相同的景物,那么使用某种方法分别提取各自的稳定点,这些点之间会有 相互对应的匹配点。

3. 高斯模糊

我们可以通过图像的模糊程度来模拟人在距离物体由远到近时物体在视网膜上成像过程,距离物体越近其尺寸越大图像也越模糊,这就是高斯尺度空间,使用不同的参数模糊图像(分辨率不变),是尺度空间的另一种表现形式。

3.1 高斯模糊
  • 高斯模糊(英语:Gaussian Blur),也叫高斯平滑,是在Adobe Photoshop、GIMP以及Paint.NET等图像处理软件中广泛使用的处理效果,通常用它来减少图像噪声以及降低细节层次。这种模糊技术生成的图像,其视觉效果就像是经过一个毛玻璃在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。
  • 高斯平滑也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图像效果(参见尺度空间表示以及尺度空间实现)。 从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积。由于正态分布又叫作高斯分布,所以这项技术就叫作高斯模糊。图像与圆形方框模糊做卷积将会生成更加精确的焦外成像效果。由于高斯函数的傅立叶变换是另外一个高斯函数,所以高斯模糊对于图像来说就是一个低通滤波器
  • 高斯核是唯一一个可以产生多尺度空间的核,图像和高斯函数进行卷积运算能够对图像进行模糊,使用不同的“高斯核”可得到不同模糊程度的图像。一副图像其高斯尺度空间可由其和不同的高斯卷积得到:
  • 其中,G(x,y,σ)是高斯核函数
    σ称为尺度空间因子,它是高斯正态分布的标准差,反映了图像被模糊的程度,其值越大图像越模糊,对应的尺度也就越大。L(x,y,σ)代表着图像的高斯尺度空间。
    在这里插入图片描述
3.2 高斯金字塔
  • 图像的金字塔模型是指,将原始图像不断降阶采样,得到一系列大小不一的图像,由大到小,从下到上构成的塔状模型。原图像为金子塔的第一层,每次降采样所得到的新图像为金字塔的一层(每层一张图像),每个金字塔共n层。

  • 图像金字塔是同一图像在不同的分辨率下得到的一组结果,其生成过程一般包括两个步骤:
    1.对原始图像进行平滑
    2.对处理后的图像进行降采样

  • 什么是降采样:在数位信号处理领域中,降采样,又作减采集,是一种多速率数字信号处理的技术或是降低信号采样率的过程,通常用于降低数据传输速率或者数据大小

  • 降采样后得到一系列不断尺寸缩小的图像。显然,一个传统的金字塔中,每一层的图像是其上一层图像长、高的各一半。多分辨率的图像金字塔虽然生成简单,但其本质是降采样,图像的局部特征则难以保持,也就是无法保持特征的尺度不变性。

  • 为了让尺度体现其连续性,高斯金字塔在简单降采样的基础上加上了高斯滤波。将图像金字塔每层的一张图像使用不同参数做高斯模糊,使得金字塔的每层含有多张高斯模糊图像,将金字塔每层多张图像合称为一组(Octave),金字塔每层只有一组图像,组数和金字塔层数相等,每组含有多张(也叫层Interval)图像。另外,降采样时,高斯金字塔上一组图像的初始图像(底层图像)是由前一组图像的倒数第三张图像隔点采样得到的。

  • 为什么要搭建高斯金字塔:高斯金字塔模仿的是图像的不同的尺度,尺度应该怎样理解?对于一副图像,你近距离观察图像,与你在一米之外观察,看到的图像效果是不同的,前者比较清晰,后者比较模糊,前者比较大,后者比较小,通过前者能看到图像的一些细节信息,通过后者能看到图像的一些轮廓的信息,这就是图像的尺度,图像的尺度是自然存在的,并不是人为创造的。好了,到这里我们明白了,其实以前对一幅图像的处理还是比较单调的,因为我们的关注点只落在二维空间,并没有考虑到“图像的纵深”这样一个概念,如果将这些内容考虑进去我们是不是会得到更多以前在二维空间中没有得到的信息呢?于是高斯金字塔横空出世了,它就是为了在二维图像的基础之上,榨取出图像中自然存在的另一个维度:尺度。因为高斯核是唯一的线性核,也就是说使用高斯核对图像模糊不会引入其他噪声,因此就选用了高斯核来构建图像的尺度。

  • 高斯金字塔的组数和层数
    在高斯金字塔中,有两个参数很重要,一个是第几组o,一个是某一组中的第几层s,这两个量合起来(o,s)就构成了高斯金字塔的尺度空间。变量o控制的是金字塔中尺寸这个尺度,s用来区分同一个尺寸尺度下的图像,s确定了一个组中不同的模糊成度。这样,(o,s)就可以确定高斯金字塔中的唯一一副图像。

    根据lowe论文中指出,(o,s)作用于一幅图像是通过下列公式实现的:
    σ = σ 0 ∗ 2 o + s S \sigma=\sigma_0*2^{o+\frac{s}{S}} σ=σ02o+Ss
    其中 σ 0 \sigma_0 σ0为高斯模糊的初始值,S为每层的层数。

4. DoG金字塔

  • 构建尺度空间的目的是为了检测出在不同的尺度下都存在的特征点,而检测特征点较好的算子是 Δ 2 G \Delta ^2G Δ2G(高斯拉普拉斯,LoG),使用LoG虽然能较好的检测到图像中的特征点,但是其运算量过大,通常可使用DoG(差分高斯,Difference of Gaussina)来近似计算LoG[Marr and Hidreth]。
  • 设k为相邻两个高斯尺度空间的比例因子,则DoG的定义:

D ( x , y , σ ) = [ G ( x , y , k σ ) − G ( x , y , σ ) ] ∗ I ( x , y ) = L ( x , y , k σ ) − L ( x , y , σ ) D(x,y,\sigma)=[G(x,y,k\sigma)-G(x,y,\sigma)]*I(x,y)=L(x,y,k\sigma)-L(x,y,\sigma) D(x,y,σ)=[G(x,y,kσ)G(x,y,σ)]I(x,y)=L(x,y,kσ)L(x,y,σ)

  • 其中,L(x,y,σ)是图像的高斯尺度空间。
    从上式可以知道,将相邻的两个高斯空间的图像相减就得到了DoG的响应图像。为了得到DoG图像,先要构建高斯尺度空间,而高斯的尺度空间可以在图像金字塔降采样的基础上加上高斯滤波得到,也就是对图像金字塔的每层图像使用不同的参数σ进行高斯模糊,使每层金字塔有多张高斯模糊过的图像。
  • DoG金字塔:高斯金字塔构建成功后,将每一组相邻的两层相减就可以得到DoG金字塔.DoG图像描绘的是目标的轮廓
4.1 DoG局部极值检测
  • 为了寻找尺度空间的极值点,每个像素点要和其图像域(同一尺度空间)和尺度域(相邻的尺度空间)的所有相邻点进行比较,当其大于(或者小于)所有相邻点时,改点就是极值点。如图所示,中间的检测点要和其所在图像的3×3邻域8个像素点,以及其相邻的上下两层的3×3领域18个像素点,共26个像素点进行比较。以确保在尺度空间和二维图像空间都检测到极值点
  • 从上面的描述中可以知道,每组图像的第一层和最后一层是无法进行比较取得极值的。为了满足尺度变换的连续性,在每一组图像的顶层继续使用高斯模糊生成3幅图像。

加粗样式

4.2 DoG去除边缘响应

通过比较检测得到的DoG的局部极值点所在离散的空间搜索得到的,由于离散空间是对连续空间采样得到的结果,在离散空间找到的极值点不一定是真正意义上的极值点,因此要设法将不满足条件的点剔除掉。可以通过尺度空间DoG函数进行曲线拟合寻找极值点,这一步的本质去掉DoG局部曲率非常不对称的点
要剔除掉的不符合要求的点主要有两种:

  • 低对比度的特征点
  • 不稳定的边缘响应点
4.2.1低对比度的响应点

为了提高关键点的稳定性,需要对尺度空间DoG函数进行曲线拟合。利用DoG函数在尺度空间的Taylor展开式(拟合函数)为:
D ( X ) = D + α D r α X + 1 2 X r α 2 D α X 2 X D(X)=D+\frac{\alpha D^r}{\alpha X}+\frac{1}{2}X^r\frac{\alpha ^2D}{\alpha X^2}X D(X)=D+αXαDr+21XrαX2α2DX
其中, X = ( x , y , σ ) r X=(x,y,\sigma)^r X=(x,y,σ)r求导并让方程等于零,可以得到极值点的偏移量为:
X ^ = − α 2 D − 1 α X 2 α 2 D α X \hat{X}=-\frac{\alpha^2 D^-1}{\alpha X^2}\frac{\alpha^2 D}{\alpha X} X^=αX2

  • 13
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值