摘要
图像匹配是指通过一定的算法在两幅或多幅影像之间识别同名点的过程。图像匹配技术是图像处理技术中的重要研究内容,是图像信息领域之中的一项重要技术,同时它也是其它一些图像分析技术的基础。正由于其应用的广泛性,使得匹配算法的研究逐步走向成熟。
图像匹配是一个多步骤的过程,不同的匹配算法之间步骤也会有很大的不同,效果也有较大的出入。SIFT算法是一种基于尺度空间的算法,该算法特征是图像的局部特征,使其对旋转、尺度缩放、亮度变化具有保持不变性,对视角变化、方式变换、噪声也具有良好的稳定性,同时SIFT算法具有独特性好、信息量丰富,运行速度快等特点。
本课题研究了基于SIFT算法的图像匹配方法,论述了SIFT算法的实现过程。通过实验,探寻SIFT在亮度变化、尺度变化、旋转变化下的匹配效果。并运用SIFT算法实现物体识别。
关键字: 图像匹配,尺度空间,稳定性, SIFT算法,物体识别
基于sift算法的图像匹配方法 II
ABSTRACT
Image matching refers to the process of identify homonymy points between two or more images by a certain algorithm. Generally speaking, Image matching technology is of important, not only in the application of image processing technology, but also in the field of pattern information. Besides, it is also the basis of some other technology of image analysis. Therefore, it would seem that further investigation about image matching technology is needed.
Image matching is a multi-step process. Different matching algorithm would have different calculate steps and results. In addition, SIFT is an algorithm based on scale-space, which feature is the local features of the image, its rotation, scale zooming, brightness variation have the advantage of invariability, and the change of viewpoint ,pattern transformation, noise also has good trait of stability. Meanwhile, the SIFT algorithm has the characteristics of good uniqueness, huge information, faster running speed and so on.
This article presents that the method of image matching what based on SIFT algorithm, and summarize that the implementation procedure of SIFT algorithm as well as explores the matching results of SIFT in the aspect of brightness variation, scale variation and Rotation variation.Besides, it also discusses the way of object recognition by use of SIFT algorithm.
Keywords: image matching, scale-space, stability, SIFT algorithms, object
recognition
基于sift算法的图像匹配方法 III
目 录
1 绪论 .......................................................................................................................................... 1
1.1研究的背景及意义 ...................................................................................................... 1 1.2国内外研究现状 ........................................................................................................... 2 1.3研究内容和目标 ........................................................................................................... 3 1.4 章节安排 ....................................................................................................................... 3
2 图像匹配 ................................................................................................................................ 5
2.1 图像匹配技术概述 ..................................................................................................... 5 2.2 图像匹配技术的定义 ................................................................................................ 5 2.3 图像匹配算法分类 ..................................................................................................... 6 2.4 本章小结 ....................................................................................................................... 6
3 尺度空间理论 ..................................................................................................................... 7
3.1 尺度空间理论 .............................................................................................................. 7 3.2 高斯尺度空间 .............................................................................................................. 7 3.3 本章小结 ....................................................................................................................... 8
4 SIFT特征匹配 .................................................................................................................... 9
4.1 图像的初始 ................................................................................................................. 10 4.2 尺度空间极值检测 ................................................................................................... 10 4.3 精确定位特征点的位置和所在的尺度 ............................................................... 14 4.4 确定特征点的主方向 .............................................................................................. 17 4.5 生成SIFT特征向量 ................................................................................................. 18 4.6 SIFT特征向量的匹配 ............................................................................................. 20 4.7 本章小结 ..................................................................................................................... 21
5 实验结果及分析 .............................................................................................................. 23
5.1 SIFT特征提取实验结果 ......................................................................................... 23 5.2 特征匹配实验结果 ................................................................................................... 24 5.3 图像匹配应用——物体识别 ................................................................................. 29 5.3 本章小结 ..................................................................................................................... 36
6 总结与展望......................................................................................................................... 38
6.1 总结 .............................................................................................................................. 38 6.2 展望 .............................................................................................................................. 38
参考文献 ................................................................................................................................... 40 致谢 .............................................................................................................................................. 41 附录 .............................................................................................................................................. 42
基于sift算法的图像匹配方法 1
1 绪论
1.1研究的背景及意义
二十一世纪,人们进入一个信息爆炸的时代,获取的信息的方式也呈现出多样性,早已不仅仅局限在数字、符号、文本等信息,越来越多的信息是以图像的信息在传递,图像信息的比重也越来越大,人们已经从一个读字的时代逐渐在迈向一个读图时代。
图像匹配是图像信息领域之中的一项重要技术,同时也是其它一些图像分析技术,如立体视觉、运动分析数据融合等的基础。正因为其应用的广泛性,新的应用和新的要求逐步产生使得匹配算法的研究逐步走向深入[1]。因此,急需展开对现有匹配方法的研究与改进,提高匹配算法的精确度与效率,这对图像信息的发展有着至关重要的意义。
基于SIFT算法的图像匹配技术是1999年British Columbia大学大卫.劳伊教授总结了现有的基于不变量技术的特征检测方法,并正式提出了一种基于尺度空间的图像局部特征描述算子-SIFT,并在2004年被加以完善。
点特征是图像最基本的特征,它是指那些灰度信号在二维图像上都有明显变化的点,如角点、圆点等。点特征可以应用于诸如图像的配准与匹配,目标描述与识别, 光束计算,运动目标跟踪、识别和立体像对3D建模等众多领域[2]。使用点特征进行处理,可以减少参与计算的数据量,同时又不损害图像的重要灰度信息,在匹配运算中能够较大的提高匹配速度,因而受到人们的关注[3]。提取特征点的算子叫做兴趣算子或有利算子,即从图像中提取出一些能代表图像信息的特征点,运用这些特征点来对图像进行处理,以便达到目的。根据不同的目的,提取不同的特征点。
特征的提取是图像匹配技术的最重要组成部分,一幅图像中可以检测到多个关键点,我们需要消除一些不需要的点,保留特征性较强的点,用这些点来进行图像匹配。最后消除错误的匹配点。
图像匹配的核心问题是将同一目标在不同时间、不同分辨率、不同光照、不同位姿情况下所成的像相对应。传统的匹配算法往往是直接提取角点或边缘,对环境的适应能力较差,急需提出一种鲁棒性强、能够适应不同光照、不同位姿等情况下能够有效识别目标的方法。基于SIFT算法的图像匹配技术在图像处理技术中起着十分关键的作用,它是图像处理技术得以发展的一个重要基础。它推动着图像处理技术在医学、生物、信息处理和其他很多高科技领域内的应用,它已渐渐发展成社会生活中不可分离的一种技术,对于图像处理技术发展及应用具有重要意义。
基于sift算法的图像匹配方法 2
1.2国内外研究现状
使用一组局部兴趣点来进行图像匹配的发展可以追溯到1981年Moravec在立体匹配中使用的角探测器。Moravec的探测器在1988年被Harris和Stephens改进,在小的图像变动和近边缘区域具有了更高的重复性。Harris还展示了它在高效运动追踪和由运动恢复进行三维建模中的价值,Harris的角探测器自此在很多其他的图像匹配工作中被广泛的使用。尽管这个特征探测器被称为角探测器,但它并不是只能选择角,而是可以在一个确定尺度的各个方向上选择所有具有大的梯度的图像位置。
该方法的最初应用是立体或短距离的运动追踪,后来被扩展运用到解决一些更困难的问题。Zhang等人在1995年在每个角的周围使用相关窗口来选择可能的匹配,使得Harris的角进行大幅图像范围的匹配成为可能。计算精确场景中两个视角间的几何约束的基础矩阵,移除异常值,同时移除那些与多数方法不一致的配对。同年(1995),Torr也研发了一种类似的方法来进行大间距的运动匹配,使用几何约束来移除图像中移动刚体的异常值。
1997年,Schmid和Mohr的开创性工作展示了不变的局部特征匹配可以被扩展应用到解决一般的图像识别问题,即使用一个特征与大型图像数据库进行匹配。他们用Harris角探测器来选择兴趣点,但是他们使用的是一个图像局部区域的旋转不变的描述子来代替相关窗口。这是特征可以在两幅图像之间进行任意方向上进行匹配。此外,他们还证明多特征匹配可以通过识别一致的匹配特征聚类,在遮挡和混杂的情况下完成一般的识别工作。
Harris角探测器对图像尺度的变化非常敏感。因此,对于不同尺度的图像匹配,Harris的角反射器并不能提供很好的基础。大卫罗伊在1999年的早期工作中扩展了这种局部特征方法来实现尺度不变性。这个工作还阐述了一种新的局部描述子,可以降低对局部图像变形的敏感度(如三维视点的变换),同时找到更加鲜明的特征。本文提出了对这一方法更加深入的研发,并分析了这些早期的工作,在稳定性和特征不变性的基础上进行了大量改进。
而国内从1990年代才初才开始涉足此领域。基于灰度图像匹配算法是图像配准算法中比较经典的一种,很多配准技术都以它为基础进行延伸和扩展。朱近,司美玲详细阐述了用局部灰度极值方法进行多光谱图像配准算法的研究过程。针对多光谱遥感图像,提出了一种基于局部灰度极值的配准方法:通过在基准图像和待配准图像中同步寻找含有灰度极值的小区域,再用多项式对极值区域进行曲面拟合,最后,分别计算小区域的极值点用来作为特征点进行配准。这是与灰度图像配准算法有关的一个扩展应用。林相波,邱天爽提出一种新的灰度和形状信息相结合的全自动同模态医学图像非刚性配准——分割算法。将欧氏距离表示的形状信息融入基于灰度的配准算法中,从而构造出新的代价函数。该算法能够较
基于sift算法的图像匹配方法 3
好地完成灰度相近、边缘模糊、间距较小的不同结构的分割[4]。该算法优于基于灰度信息的图像配准算法。
SIFT算法目前在军事、工业和民用方面都得到了不同程度的应用,其应用已经渗透了很多领域,将会越来越受到人们的关注。在当今的科技水平上,图像配准未来的发展趋势也越来越好。
本文主要研究基于SIFT的图像匹配算法。通过SIFT算法实现两幅图像或多幅图像之间相同点的识别。基于SIFT算法的图像匹配方法是从图像的灰度值出发,构造尺度空间图像进行高斯模糊,从而得到图像的关键点。对生成的关键点再加以描述。通过对关键点周围图像区域分块,计算块内梯度直方图,生成具有独特性的向量,这个向量是该区域图像信息的一种抽象,且具有唯一性。然后分别对模板图和实时图建立关键点描述子集合。目标的识别是通过两点集内关键点描述子的比对来完成。具有128维的关键点描述子的相似性度量采用欧式距离。由于匹配过程中会产生大量的错误匹配点,我们在最后还要消除错误的匹配点。
1.3研究内容和目标
本课题为基于SIFT的图像匹配方法。本课题对先有的匹配方法做了简要的阐述,从理论上进行优缺点的比较,得出SIFT算法的优越性。再着重详细阐述SIFT算法的实现方法,从理论上证明SIFT算法的可行性和优越性。然后通过实验,分别对SIFT算法在各种情况下的匹配效果。测试该算法在尺度变换、旋转变换、亮度变换下的匹配效果。测试特征点的提取与图像之间的关系。得到实验数据,对数据进行分析总结,得出SFIT算法的实际运行效果。到这里,课题研究的主要内容基本完成,本课题的目标是在此基础上稍加创新,把SIFT算法进行了简单运用,用作图像的识别。我们建立一个库文件夹,在文件夹中放入单个物体的照片,作为库图像。然后输入一张图像,如果该输入图像中有库文件夹中的物体,那么输出的结果中就会显示该图像中有库图像中所对应的物体。并显出,匹配上的的关键点对用蓝色细线连接起来,实现图像的简单识别。在最后对系统的用时和准确性分别统计分析,提高系统的稳定性课时效性。
1.4 章节安排
本文分为5章,每章安排如下:
第一章:绪论部分,介绍了本课题研究的背景、意义、内容和目标。 第二章:图像匹配介绍了图像匹配的基本概念以及图像匹配方法的分类。 第三章:尺度空间理论详细介绍了尺度空间理论的原理,发展历程。 第四章:SIFT特征匹配详细介绍了SIFT特征的提取部分和基于SIFT特征的图像匹配,着重阐述了SIFT特征提取的主要步骤和基于SIFT特征的图像匹配。是
基于sift算法的图像匹配方法 4
本文的重点章节。
第五章:通过实验,提取SIFT特征,进行图像匹配。在此基础上,设计图像匹配算法实验,利用SIFT算法,进行不同场景的物体识别,并进行算法分析。
基于sift算法的图像匹配方法 5
2 图像匹配
图像匹配是图像信息领域之中的一项十分重要的技术,同时它也是其它一些图像分析技术,比如立体视觉技术、运动分析技术、数据融合技术等的基础 。正因为其具有广泛性的应用性,新的应用和新的要求逐步产生促使了匹配算法的研究逐步走向深入与成熟。 因此,对现有匹配算法展开分析,这对于实际工程提高图像处理质量和识别精度具有非常重要的意义
2.1 图像匹配技术概述
图像匹配是指对取自不同时间,不同传感器或不同视角的同一场景的两幅图像或者多幅图像匹配的过程。图像匹配广泛用于多模态图像分析,是医学图像处理的一个重要分支,也是遥感图像处理,目标识别,图像重建,机器人视觉等领域中的关键技术之一。成像匹配的核心问题是将同一目标在不同时间、不同分辨率、不同光照、不同位姿情况下所成的像相对应。传统的匹配算法往往是直接提取角点或边缘,对环境的适应能力较差,急需提出一种鲁棒性强、能够适应不同光照、不同位姿等情况下能够有效识别目标的方法。本文将介绍基于SIFT算法的图像匹配技术。由于SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。SIFT算法也是本文研究的内容。
2.2 图像匹配技术的定义
图像匹配是指通过一定的匹配算法在两幅或多幅图像之间识别同名点过程, 通常将已知目标图像称为模板图像,而将待搜索图像中可能与之相对应的子图称为该模板的待匹配的目标图像。图像匹配时在来自不同时间或者不同视角的同一场景的两幅或多幅图像之间寻找对应关系,该技术隶属于计算机视觉领域。对于二维图像配准可定义为两幅图像在空间和灰度上的映射,如果给定尺寸的二维矩阵F1和F2分别代表两幅图像,F1(X,Y)和F2(X,Y)分别表示相应位置(X,Y)上的灰度值,则图像间的映射可表示为:
F2(X,Y)G(F1(H(X,Y))) (2-1)
式中H表示一个二维空间坐标变换,即(X',Y')H(X,Y),且G是一维灰度变换。图片由于拍摄时间、角度、光照和传感器本身的缺陷及噪声等因素的影响,从而使图像存在失真和几何畸变。而且,对图像预处理也将产生误差,这都使得待匹配的图像信息之间存在很大的差异。在这种情况下,如何提高匹配算法的精
基于sift算法的图像匹配方法 6
度、匹配的正确率、匹配速度和抗干扰能力成为研究的热点。
2.3 图像匹配算法分类
图像匹配的实现要经过多个步骤。但是匹配的总体思路描述为,图像输入、图像预处理、提取匹配信息、图像匹配、输出结果。图像匹配的算法有多种,不同的算法具体步骤也有很大差异,但它们的大致过程是相同的[5]。图匹配方法有很多种,大致可以分为如下两类:
2.3.1基于图像灰度的匹配方法
图像的所有信息都包含在图像的灰度值信息中。基于图像灰度的匹配方法一般不需要对图像进行预处理,通常直接利用图像本身灰度的统计信息来度量图像的相似程度。从而实现两幅图像的匹配。
基于图像灰度的匹配方法不需要提取图像的特征,通常对直接利用图像全部的灰度信息,所以该算法能提高匹配的精度和鲁棒性[6]。但由于在基于图像灰度的匹配方法在匹配过程中会引入匹配点周围的像素点信息,没有经过预处理和筛选,所以将会造成大量的数据处理信息。计算量将会增大,计算时间长,匹配速度慢。
2.3.2基于图像特征的匹配方法
基于图像特征的配准方法是目前应用最广泛的方法。该方法的一半步骤为,第一对图像进行预处理,然后提取出图像的特征,最后建立两幅图像之间的对应关系。在提取图像特征过程中,我们通常提取图像的点特征、边缘特征和区域特征。 特征匹配的数据处理方法很多,需要用到许多诸如矩阵的运算、梯度的求解、傅立叶变换和泰勒展开等数学运算[7]。
基于图象特征的匹配方法的出现是图像匹配技术的一大进步,它克服了基于图像灰度匹配方法的缺点,提高了图像匹配的效率和速度。由于该匹配方法采用的是提取图像的特征点进行匹配而不是图像的像素,从而大大降低了计算量,减少了计算时间;同时,特征点具有尺度、旋转等不变性,对图像的位置、尺度、旋转变换具有更高的匹配精度;而且,基于特征的匹配具有很好的抗噪效果,并在图像发生灰度变化,形变以及遮挡等情况下也能有较好的匹配效果。所以基于图像特征的匹配越来越受到人么的重视,在实际生活中得到了广泛应用。
2.4 本章小结
本章主要介绍了图像匹配的相关理论知识,对图像匹配技术做了简明扼要的介绍。同时阐述了图像匹配的两种方法,并分别对这两种方法的优缺点进行了总结。为后文将要描述的特征点匹配做铺垫。
基于sift算法的图像匹配方法 7
3 尺度空间理论
我们要精确表示的物体都是通过一定的尺度来反映的。现实世界的物体也总是通过不同尺度的观察而得到不同的变化。尺度空间理论最早在1962年提出,但当时并未引起算机视觉领域研究者们的足够注意,直到上世纪八十年代,witkin 、Koenderink等人的奠基性工作使得尺度空间方法逐渐得到关注和发展。尺度空间中各尺度图像的模糊程度逐渐变大,能够模拟人在距离目标由近到远时目标在视网膜上的形成过程。尺度越大图像越模糊。
3.1 尺度空间理论
尺度空间是一个用来控制观察尺度或表征图像数据多尺度自然特性的框架;信号的尺度空间是指包含有一个连续尺度参量的信号的特征结构集合 。尺度空间理论是先将图像进行尺度变换处理,得到图像在不同尺度下的表示序列。提取出尺度空间的主轮廓,以提取出的主轮廓作为特征向量,实现图像的特征点提取。尺度空间是一种基于区域的表达,与其他的表达相比,由于尺度空间表示是由平滑获得,所有在多尺度上具有保持空间取样不变的特性,并在同一特征的情况下,尺度空间在粗糙尺度上能够对应更多的像素点,从而使数据处理任务大大简化,计算效率大大提高。第二个尺度空间表征的重要特征,就是基于尺度的结构特性能解析式非常简单,计算简洁,在不同尺度空间上的特征可以通过解析式精确的联系起来。尺度空间核是尺度空间理论中的一个重要概念,尺度空间核被定义为:
= K * (3-1) 对于所有的信号 ,若它与变换核K 卷积后得到的信号 中的极值( 一阶微分过零点数) 不超过原图像的极值,则称K为尺度空间核,所进行的卷积变换称为尺度变换[8]。
3.2 高斯尺度空间
在提取关键点集的过程中,我们采用了一种高效的识别方法。先识别候选位置,然后在进一步确认的层叠过滤方法来探测关键点。关键点集的探测首先是把同一图像在不同视角下可被重复分配的位置和尺度。适用尺度空间的尺度连续函数,通过搜索关键点对所有尺度的稳定特征进行检索。完成对图像尺度具有不变性的位置探测。1984年,Koenderink 和 Lindeberg通过对尺度空间的研究发现,高斯函数是尺度空间中唯一可行的核[9]。因此,由尺度可变的高斯函数 G(x,y,σ)和输入图像 I(x,y)的卷积,就可以产生定义一幅图像尺度空间的函数L(x,y,σ):
L(x,y,σ) =G(x,y,σ)∗I(x,y), (3-2) 其中*为 x 和 y 之间的卷积运算。
基于sift算法的图像匹配方法 8
G(x,y,σ) =
(3-3)
高斯尺度空间具有以下特点:
1.高斯尺度空间具有符合热扩散方程,各向同性的扩散过程;
2.高斯尺度空间具有满足因果关系,随着尺度的增大,图像越模糊,图像上的特征结构逐渐减少且不会有新增的特征;
3.高斯尺度空间具有图像不同尺度空间的灰度变化呈线性,有利于追踪图像中物体在不同尺度间的变化情况。
3.3 本章小结
本章主要介绍了尺度空间的理论知识和高斯尺度空间的概念。这些理论为提取图像的多尺度特征奠定了理论基础。为下章节高斯金字塔的构建做好理论铺垫。为图像SIFT特征的提取提供了理论依据。
基于sift算法的图像匹配方法 9
4 SIFT特征匹配
Sift算法是1999年加拿大英属哥伦比亚大学大卫.劳伊(David G.Lowe)教授在总结了现有的基于不变量技术的特征检测方法后提出的一种新的图像匹配方法-SFT。这种算法在2004年被加以完善。SIFT算法是一种基于尺度空间的算法。该算法的特征是图像的局部特征,使其对旋转、尺度缩放、亮度变化具有保持不变性,并在对视角变化、仿射变换、噪声也具有很好的保持一定程度的稳定性。同时SIFT算法还具有独特性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。另外,SIFT算法还具有多量性,即使是少数的几个物体也可以产生大量SIFT特征向量。而且,SIFT算法还具有可扩展型,可以很方便的与其他形式的特征向量进行联合。同时,SIFT算法经过优化和,执行速度较快,可以满足一定的速度要求。
SIFT算法的实现简单步骤如下图: 目标图像
图4-1 SIFT算法步骤
原图像特征点检测特征点描述目标的特征点集特征点匹配匹配点矫正SIFT特征点检测特征点描述目标的特征点集SIFTSIFT算法从实质可以总结为在不同尺度空间上查找特征点的问题,在对特征点进行一一比对,找出相匹配的关键点。
SIFT算法实现对物体的匹配主要分为四步:
提取关键点。对图像进行处理,提取出图像的关键点,产生关键点集。 对关键点加以描述。对产生的关键点附加方向的信息(局部信息),也就是所谓的描述器。
建立景物之间的对应关系。通过对两张图片的特征点集(附带特征向量的关键点)进行两两比较,找出相匹配的若干对特征点。然后用线连接起来。
消除错误匹配点。用参数估计方法,对匹配点反复测试、不断迭代运算,消除错误匹配点。
基于sift算法的图像匹配方法 10
4.1 图像的初始
SIFT算法是在灰度图像进行数据处理的。所以在执行SIFT算法之前,我们需要将图像进行初始化处理,也就是要将图像进行归一化处理,把图像转换为灰度图像。转换成适当大小的图像。对图像进行高斯平滑处理,使图像更易于处理,准确性更高。
4.2 尺度空间极值检测
在第三章中我们已经介绍了尺度空间理论。构建尺度空间的目的是模拟图像数据的多尺度特征。高斯核是唯一可以产生多尺度空间的线性核。在不同的尺度参数σ连续变化时,高斯函数G(x, y,σ)与图像I(x,y)卷积可以得到图像I(x,y)的尺度空间。
L(x, y,σ) = G(x, y,σ) * I(x, y); (4-1) 式中L表示尺度空间,(x,y)代表I上的点。σ是尺度因子,其值越大则表征该图像被平滑得越大;其值越小则表征该图像被平滑得越小[14]。大尺度对应于图像的概貌特征,小尺度对应于图像的细节特征。因此,选择合适的尺度因子平滑是建立尺度空间的关键。
4.2.1高斯模糊
图4-2 高斯模糊的集合图形
r21 G r 2 2 (4-2) exp22r为模糊半径,σ是正态分布的标准偏差。
(4-3)
r=xy22基于sift算法的图像匹配方法 11
高斯模糊对于图像来说就是一个低通滤波器,是在 Adobe Photoshop、GIMP 以及 Paint.NET 等图像处理软件中广泛使用的处理效果,通常用它来减少图像噪声以及降低细节层次。这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。高斯平滑也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图像效果。从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积。由于正态分布又叫作高斯分布,所以这项技术就叫作高斯模糊。图像与圆形方框模糊做卷积将会生成更加精确的焦外成像效果。
从理论上讲,图像中每个点的分布都不为零,这也就是说每个像素的计算都需要包含整幅图像,在实际的计算中,在计算高斯函数的离散近似时在大概3σ距离之外的像素都可以看作不起作用,这些像素的计算也就可以忽略。通常,图像处理程序只需要计算 (6 1) (6 1) 的矩阵就可以保证相关的像素影响[10]。
采用高斯模糊具有如下几个特征:
(1)、高斯模糊具有圆对称性。(2)、高斯模糊具有线性可分的性质,可以在二维图像上对两个独立的以为空间分别进行计算,这样可以大大的减速运算次数,提高运算速度。(3)、对一幅图像进行一次较大的高斯模糊得到的效果,也可以将该图像进行多次连续较小的的高斯模糊也能够得到相同的效果。它们之间的高斯模糊半径需要满足一定的关系,即较小的高斯模糊的半径的平方和等于较大的高斯模糊半径的平方。若较小的高斯模糊半径分别为 6 和 8,则与之高斯
2模糊效果相同的一次高斯模糊高斯半径为 6 2 10 , 因此,高斯模糊的的8 处理时间跟不会因为使用较多高斯半径较小的是高斯模糊而增加时间。
图4-3 高斯模糊图像对比(左图为原图像,右图为模糊后的图像)
4.2.2高斯金字塔
高斯金字塔的构建过程大致可分为两步; (1)、对图像做高斯平滑。 (2)、对图像做降采样处理。
为了让尺度体现其连续性,在简单下采样的基础上加上了高斯滤波。一幅图
基于sift算法的图像匹配方法 12
像可以产生几组图像,一组图像包括几层图像。高斯图像金字塔共o组、s层,
则有: (4-4)
σ——尺度空间坐标; s——sub-level层坐标; σ0——初始尺度;
S——每组层数(一般为3~5)。 由此可见,相邻两组的同一层尺度为2倍的关系
上一组图像的底层是由前一组图像的倒数第二层图像隔点采样生成的。这样可以保持尺度的连续性。
图4-4高斯金字塔
…Octave 1Octave 5Octave 4Octave 3……8…42…Octave 24.2.3建立DoG金字塔 DoG即高斯差分函数,是由LOG与高斯核函数的差的关系。LOG算子真正具有尺度不变性。DOG函数在计算上只需要相邻尺度高斯平滑后图像相减即可得到,因此简化了计算。
DOG函数公式如下:
Dx,y,Gx,y,kGx,y,*Ix,y L x , y , k L x , y , (4-5)
对应DOG算子,我们需要构建DOG金字塔,我们可以通过高斯差分图像看出图像上的像素值得变化情况,DOG图像描述的是目标图像的轮廓。
基于sift算法的图像匹配方法 13
图4-5 DOG金字塔
在图中,DoG金字塔的第1层的尺度因子与高斯金字塔的第1层的是一致的,其它阶也是一样。图4-6为一幅图像进过DOG金字塔处理后的图像。
图4-6 图像经过DOG金字塔处理后的图像
4.2.4极值检测,初步确立特征点
特征点集是有DOG空间的局部极值点组成的。为了寻找DOG函数的极值点,我们需要将每个像素点和他的邻域像素点比较(最低层和最顶层除外),得到该像素点与相邻图像域的比较结果。
基于sift算法的图像匹配方法 14
图4-7 极值点的检测
如上图所示,我们将中间的检测点(用X好表示)和它同尺度的8个相邻点和上下两层相邻尺度对应的总共9*2个点,共26个点分别进行比较,以确保在尺度空间和二维图像空间都可以检测到极值点。
图4-8 图像极致点检测结果
4.3 精确定位特征点的位置和所在的尺度
通过对DOG函数的极值点检查,我们初步得到了图像的特征点集,但是由于DOG函数对噪声和边缘较为敏感,所以我们需要将得到的点集进行进一步处理才能得到精确的特征点集。
基于sift算法的图像匹配方法 15
4.3.1关键点精确定位
为了提高关键点的稳定性和可靠性,我们需要对尺度空间DOG函数进行曲线拟合。通过拟合三维二次函数对关键点进行精确定位,同时去除低对比度关键点和不稳定的边缘响应点,从而增强匹配稳定性、提高抗噪能力[15]。
获取关键点处拟和函数,
DT1T2DDXDXXX2X2X (4-6)
求导并让方程等于零,可以得到极值点:
2D1DXX2X (4-7)
对应极值点,方程的值为:
1DTDXDX2X (4-8)
式4-8用于去除低对比度和不稳定的特征点。Lowe的试验显示,我们通常将所有
DX0.04的极值点舍去。从而得到了具有较好稳定性的特征点集。
图4-9去除低对比度之后的结果
4.3.2去除边缘响应
在去除低对比度的极值点后,虽然特征点集稳定性具有了很大的提高,但是
基于sift算法的图像匹配方法 16
得到的特征点集稳定性还是远远不够。DOG函数具有较强的边缘效应,因此我们需要再次对特征点集处理,去除边缘效应。
DoG函数的峰值点在横跨边缘的方向有较大的主曲率,而在垂直边缘的方向有较小的主曲率。主曲率可以通过计算在该点位置尺度的2×2的Hessian矩阵得到,导数由采样点相邻差来估计[11]:
DxxHDxyDxyDyy (4-9)
的特征值
和
Dxx表示DOG金字塔中某一尺度的图像x方向求导两次,代表和方向的梯度,
TrHDxxDyy2 (4-10)
DetHDxxDyyDxy (4-11)
TrH表示矩阵H对角线元素之和,DetH表示矩阵H的行列式。假设较大的特征值,而是较小的特征值,令r,则
rr1TrHDetHr (4-12) r22222
式4-12中,D的主曲率和H的特征值成正比,令为最大特征值,为最小
2r1/r的值在两个特征值相等时最小,的特征值,则公式随着r的增大而增大。
为了去除边缘响应,我们需要确定一个阈值,需要让比值小于该阈值。这里我们让r值取10。所以我们只需检测
r1TrHDetHr
22若成立,关键点保留,反之,将该点去除[12]。
基于sift算法的图像匹配方法 17
图4-10 去除边缘点之后的结果
4.4 确定特征点的主方向
通过DOG函数,对特征点进行修正后得到的特征点集,具有缩放不变的性质。但是如果物体发生旋转,将会影响匹配的效果。为了是特征点集具有旋转不变形,我们需要利用关键点邻域像素的梯度分布特性,为每个关键点指定参数方向。
像素点的梯度表示为:
mx,y (4-13) 梯度幅值:
IIgradIx,y,xyLx1,yLx1,y2Lx,y1Lx,y12 (4-14)
梯度方向:
x,ytan1Lx,y1Lx,y1Lx1,yLx1,y (4-15)
基于sift算法的图像匹配方法 18
我们以关键点为中心的邻域内对像素梯度方向进行采样,采样结果用直方图统计,直方图的峰值就是关键点处邻域的主方向,作为该关键点的方向。梯度直方图的范围是0-360度,其中每10度用一个柱表示,总共36个柱,柱所代表的方向为像素点梯度方向,柱的长短代表了梯度幅值。根据Lowe的建议,直方图统计半径采用3*1.5*σ,在直方图统计时,每相邻三个像素点采用高斯加权,根据Lowe的建议,模板采用[0.25,0.5,0.25],并连续加权两次。
图4-11 确定主方向
在梯度方向直方图中,当存在另一个相当于主峰值80%能量的峰值时,则认为这个方向是该特征点的辅方向,一个特征点可能会被指定具有多个方向(一个主方向,一个辅方向),大约有15%的点有多个方向,但是这些辅助方向对匹配的稳定性起了很重要的作用,增强了匹配的鲁棒性。
图4-12 特征点检测结果
4.5 生成SIFT特征向量
经过对特征点集的处理后,我们得到了特征点的位置和所在尺度方向信息。
基于sift算法的图像匹配方法 19
我们需要将这些信息用一组向量描述出来,这个描述子不仅包括关键点,也包括了关键点邻域内对其有贡献的像素点。从而用来作为对目标匹配的依据,同时,经过描述后的关键点将会具有跟多的不变特性,如光照变化、3D视点变化等。
4.5.1关键点描述思路
描述的思路是首先对关键点周围图像区域进行分块处理,计算出每一块的梯度直方图。每块分别生成具有独特性的向量,这个向量就是该区域图像信息的一种抽象。并具有唯一性。Lowe实验结果表明:描述子采用4×4×8=128维向量表征,综合效果最优。
图4-13 SIFT描述子事例
4.5.2关键点描述步骤
(1)确定计算描述子所需的图像区域
描述子梯度方向直方图由关键点所在尺度的模糊图像计算产生。图像区域的半径通过下式计算:
3oct2d11radius (4-16)
2
d=4 , 是关键点所在组(octave)的组内尺度。 (2)将坐标移至关键点主方向
xxyy图4-14 确定关键点主方向
基于sift算法的图像匹配方法 20
那么旋转角度后的新坐标为:
(4-17)
(3)在图像半径区域内对每个像素点求其梯度幅值和方向,然后对每个梯
ˆcosxˆysinsinxcosy度幅值乘以高斯权重参数,生成方向直方图。
22
kk wxyweightgradIx,yexp21dr1dc1do(4-18)
:该点与关键点的列距离; :该点与关键点的行距离;
: 等于描述子窗口宽度×直方图列数(取4)的一半;
(4)在窗口宽度为2X2的区域内计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,即可形成一个种子点。然后再在下一个2X2的区域内进行直方图统计,形成下一个种子点,共生成16个种子点。
(5)描述子向量元素门限化:
方向直方图每个方向上梯度幅值限制在一定门限值以下(门限一般取0.2)描述子向量元素规范化:
(4-19)
12128
Ww,w,,w为得到的128描述子向量,
1 2 128 (4-20)
为规范化后的向量
128
l w/w j j i (4-21)
i1
关键点描述子向量的规范化正是可去除满足此模型的光照影响。对于图像灰
Ll,l,,lj1,2,128度值整体漂移 ,图像各点的梯度是邻域像素相减得到,所以也能去除。 4.6 SIFT特征向量的匹配
经过这一系列的处理,我们得到了具有稳定性,对旋转、尺度缩放、亮度变化保持不变性,对视角变化、放射变换、噪声也保持一定程度的稳定性的特征点。
基于sift算法的图像匹配方法 21
下一步我们将采用关键点特征向量的欧式距离来作为两幅图像中关键点的相似性判定度量 。分别计算出目标图像和原始图像的关键点,并找出与目标图像中欧式距离最近的前两个关键点,如果最近的距离除以次近的距离少于某个比例阈值,则接受这一对匹配点。否则匹配不成功。若降低这个比例阈值,SIT匹配点的数目将会减少,但是匹配的成功率更加可靠,也更加稳定。
原图像:
目标图像:
图4-15匹配方式
实时图中距离 Ri 最近的点 Sj实时图中距离 Ri 的次最近点 SpThreshold
图4-16 不同阈值对应的匹配成功率
不同的阈值对应的正确匹配与不正确匹配之间的比例关系如图,在我们的实现算法中,取阈值为0.8时,当大于此阈值就否定该匹配,这样我们可以消除90%的错误匹配,而仅仅丢弃了5%的正确匹配[13]。
匹配成功后,会产生许多错误匹配点,我们需要对错误匹配点加以修正。常用的去外点的方法是RANSAC随机抽样一致性算法。这样我们就可以消除错误匹配点,提高了匹配的成功率,提高了鲁棒性。
4.7 本章小结
基于sift算法的图像匹配方法 22
本章详细介绍了SIFT算法的实现过程,对SIFT算法的理论知识做了充分的阐述。对SIFT算法流程进行了分步骤的详细说明。本章内容是本课题的核心内容,也是SIFT算法的核心思想。
基于sift算法的图像匹配方法 23
5 实验结果及分析
本文的程序代码是在MATLAB的平台上实现的。SIFT特征点集用带箭头的向量表示,箭头的长度代表该特征点所在的尺度,方向代表该特征点所在尺度下方向的梯度方向,箭头的起点代表特征点的位置。通过匹配后,我们将匹配上的特征点集用线连接起来。
5.1 SIFT特征提取实验结果
SIFT算法的核心是特征点的提取,首先我们将图像转化为灰度图像,让后提取出特征点,实验结果如图5-1。
(a) (b)
(c) (d)
基于sift算法的图像匹配方法 24
(e) (f)
图5-1 图像特征点的提取
通过以上实验,分别对6副图片进行特征点的提取,我们得到如表5-1所示的数据,通过对数据的分析,我们可以发现:用SIFT算法提取特征点,特征点的数目与物体的大小并没有明显的没有关系。而与物体表面的纹理具有正相关的关系。当物体的表面具有较多较复杂的图像和几何图形时,我们可以得到较多的特征点。反之,若物体表面较为光滑,没有图片和几何图形时,我们得到的特征点数目非常少。这与SIFT的算法有关,因为具有复杂表面纹理的物体在经过DOG高斯差分函数处理后能得到更多的关键点。
表5-1 不同图像的关键点检测数据
图像编号
5.1(a) 5.1(b) 5.1(c) 5.1(d) 5.1(e) 5.1(f) 实物名称 水杯 盒子1 盒子2 牛奶 糖果 牙膏 特征点数目 42 158 54 142 183 208
5.2 特征匹配实验结果
根据SIFT算法的理论,我们可以得知SIFT算法具有很好的稳定性。其对旋转、尺度缩放、亮度变化具有保持不变的特性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。所以我们将分别对亮度、尺度、和旋转对匹配效果的影响分别展开研究实验。
5.2.1亮度变换的匹配
为了取得SIFT算法对亮度调节下的匹配效果。我们进行如下实验:如图5-2,我们分别输入两张亮度信息不同的图像(a),(b),他们中都含有相同的元素。我们用SIFT算法讲两幅图像进行匹配。
基于sift算法的图像匹配方法 25
(a) 高亮度图像 (b)低亮度图像
图5-2 输入亮度信息不同的图像
图像(a)产生121个关键点,图像(b)产生了117个关键点,将两幅图像的关键点进行匹配,的到了64个匹配点,匹配成功点用蓝色的线连接起来。匹配成功率较高,也充分证明了该算法在亮度变化下也能有较好的匹配效果。
图5-3 亮度信息变化下的匹配结果
5.2.2尺度变换的匹配
为了取得SIFT算法在不同尺度下的匹配小姑,我们将进行如下实验。如图5-4,我们输入物体在不同尺度下的原始图像,用SIFT算法对其进行匹配,并进行数据统计。
(a)
(b)
基于sift算法的图像匹配方法 26
(c)
(d)
(e)
(f)
图5-4 物体在不同尺度下的图像
分别将各个图片进行处理,提取出SIFT关键点集,然后进行逐一匹配。匹配效果如图5-5:
(a)
基于sift算法的图像匹配方法 27
(b)
(c)
图5-5 尺度变化下的匹配效果
表5-2 尺度变化下关键点统计数据
图像 书 冰红茶 牙膏 大尺度关键点数 196 357 192 小尺度关键点数 30 47 45 匹配关键点数 36 21 41
通过表5-2数据和图5-5匹配结果可以看出,图像的尺度变化后,产生的关键点数目也响应的减少。在匹配的过程中,匹配率相对较高,能得到多对匹配点。实验证明该算法在尺度变化下具有很好的稳定性,能过达到较高的匹配率和较好的匹配效果。在第一组数据中,匹配上的关键点数比小尺度的关键点还要多。这是因为小尺度上的一个关键点可能和大尺度上的多个关键点匹配成功,产生了错误匹配导致的,匹配中产生了错误匹配。
5.2.3旋转变换的匹配
为了得到SIFT算在旋转变换情况下的匹配效果,我们输入一张如图5-6所示图片,将瓶子向分别向左右两个方向旋转15°、30°。得到四张旋转后的图片,然后将这些图片分别与原图进行匹配,得到匹配对数。从而研究旋转对SIFT算法的影响。
基于sift算法的图像匹配方法 28
图5-6输入的原始图像
经过SIFT算法后,我们得到原始图像和旋转后图像的特征点,然后进行一一匹配,得到匹配效果如图5-7:
(a)向右旋转15度匹配效果
(b)向右旋转30度匹配效果
基于sift算法的图像匹配方法 29
(c)向左旋转15度匹配效果
(d)向左旋转30度匹配效果
图5-7 旋转匹配效果
表5-3 旋转变化下的关键点匹配数据
图像对 图5.6
图5.7(a) 图5.7 (b) 图5.7 (c) 图5.7 (d)
旋转角度 0
向右15度 向右30度 向左15度 向左30度
特征点数目 306 220 172 291 198 与原图像匹配成功点数目 0 31 30 42 23
通过对实验结果图5-7的分析和对数据的统计表5-3分析我们可以发现,虽然该算法在理论上具有很好的旋转不变性,但是实验效果不是很好。我们的到的匹配对数并不是很多,即使我们的到了很多的特征点数。而且匹配过程中还会遇到错误的匹配。这也影响到该算法的精确程度。
5.3 图像匹配应用——物体识别
图像匹配在算法在现实生活中具有广泛的应用,在军事目标识别、工业和民用方面都有不同程度的应用,其应用已经渗透到了很多领域,典型应用比如:物体识别、机器人定位与导航、图像拼接、三维建模、物体识别、视频跟踪、笔迹
基于sift算法的图像匹配方法 30
鉴定、指纹与人脸识别、犯罪现场特征提取等。本文对其中的物体识别做了简单应用。
本文提出一种物体识别的思路,其流程如图5-8:
建立一个图像库(1,2,3…n) 输入图像 对图像库中的图像提取SIFT特征,产生特征关键点数据库(1,2,3…n) 提取出图像关键点 将输入图像关键点与数据库中的关键点一一匹配 匹配成功 输出该图像中含有N对应的物体
图5-8 物体识别基本流程
全部匹配失败 输出没有找到相关匹配 通过物体识别,我们就能找出图像中与库中相同的物体,虽然本文做的比较简单,但是若加以改进,必定有很广泛的应用。
5.3.1建立物体库 我们建立物体库,首先要先将物体图片保存到库文件夹中,把名字改为1,2,3……n的格式。然后通过函数提取出每个物体的特征点集。分别保存到数组DD(n)和FF(n)中。N代表的是第几张图,关键点信息存到相应的数组中。数组DD中前一位128代表的是描述子采用128维向量表征,后面一位代表该图像的关键点数目。作为与目标图像匹配的依据。图5-9是一个以5副图像为库的物体库。
图5-9 建立物体库
基于sift算法的图像匹配方法 31
图5-10 物体库产生的特征点集
通过对每副图像处理后,我们得到了一个数据库。库的建立是通过一个循环分别寻找每个物体的特征点集,然后每次循环后把循环结果存入数组中。因为每次循环都要调用SIFT特征点提取,所以耗时较长,我们分别对3、6、9个物体的数据库建立时间做了统计,统计数据如表5-4。
表5-4 建立数据库用时统计
图像库数目 2 3 4 6 8
建立库用时(s) 9.7450 14.3020 19.3050 29.0750 37.6970
图 5-11建立数据库用时统计图
图5-11横坐标代表图像库中图像的数目,纵坐标表示建立数据库所用时间。通过对数据进行处理发现,图像库越多,建立数据库用时就越长,图像数目与建
基于sift算法的图像匹配方法 32
立数据库用时成正比关系,我们用软件拟合可以得到拟合函数 ,X为图像数目,Y为建立数据库所用时间。
5.3.2目标图像与库匹配
通过以上算法,我们已经建立了物品库。并把每个物体的关键点信息存入相对应的数组中。接下来我们需要输入一张图片,提取出该图片中的关键点信息,然后将关键点与数据库中的关键点进行匹配,如果图像与库中第一组数组所存的数据匹配成功,且匹配上的关键点对数大于5对,那么我们系统就判定该张图像中含有数据库中该组数组所对应的物体。在结果中输出该图像中含有该物体,输入图像与库中的每一组数组都没有匹配成功,那么在最后的结果中我们就认为该图像不含有库中的物体。
如第5.3.1节所示,我们已经建立了牛奶、盒子、书、糖果、牙膏的数据库。我们现在只需输入一张图片,将图像与数据库进行匹配。
(a) 输入图像糖果 (b)输入含有库中盒子和牙膏的图像
图5-12 输入图像
输入的图像可以含有数据库中的图像,也可以不含有数据库中的图像。
(a)输入图像与库中的盒子匹配结果
基于sift算法的图像匹配方法 33
(b)输入图像与库中牙膏匹配结果
图5-13 输入图像与库中数据匹配结果(左图为输入图像,右图为库中的图像)
图5-14 图像识别输出结果
图5-15 输入图像与数据库中的图像匹配结果
基于sift算法的图像匹配方法 34
图5-16 图像匹配输出结果
在图像匹配过程中,有时候会出现错误匹配,如图5-17,我们输入一张含有库中牙膏和盒子的图像,然后与数据库进行比较。
图5-17 输入图像
与数据库中的匹配结果如图5-18:
(a)输入图像与数据库中的书对比结果
基于sift算法的图像匹配方法 35
(b)输入图像与库中牛奶匹配结果 图5-18 输入图像与数据库中对比错误结果
图5-19 输入图像识别结果
通过结果发现,我们得到了错误的识别结果。我们输入的图像中并没有牛奶和书。但是在最后的结果中我们却得到了牛奶和牙膏,所以我们需要对程序加以修正,提高识别的准确度。在这里,我们设置一个识别门限,当匹配上的关键点对数大于这个门限的时候我们再输出相应的结果,否则我们就判定这是一个错误的识别。在最后的结果输出中我们不予输出。在经过反复的测试后,在这里我们将门限取5,只有当匹配上的关键点数大于5对的时候我们才认为该图像与库中的图像匹配成功,并在最后的结果中输出。经过修正后的程序输出结果如图5-20。
图5-20 经过改进后的程序输出结果
经过修正后的程序大大提高了识别的精度和准确度,过滤掉了大部分的错误识别。也充分的证明了图像识别技术的可行性。
程序实现了预期功能,但也存在一些不足。由于程序中没次输入图像,都要进行一次库的建立,这样设计是为了方便改变库中的物体,但也造成了耗时过长
基于sift算法的图像匹配方法 36
的缺陷。如果库中的图片数目较少,我们耗时不长。但是如果库中图片较多是,将会花费大量的时间用来建立数据库。在5.2.1节中我们已经得到了建立数据库用时的函数 ,X为图像数目,Y为建立数据库所用时间。它是一个一次线性函数,所以如果库函数图像较多的情况下,建议将库函数和匹配函数分开调用,以节约时间。接下来我们探索下运行整个程序的时间和物体库中数目之间的关系。
分别在物体库中库图像为3张、5张、7张、9张的情况下展开研究。
表5.5 程序耗时统计数据
图像库数目
3 5 7 9
程序总耗时(s) 27.5690 46.5710 64.8520 86.0180
图5.21 程序总用时与库图像数目关系
通过对数据分析发现,程序的总用时数据库中图像的数目成正比关系,通过拟合直线我们大致可以得到直线 ,式中Y为程序的总共用时,X代表图像库中图像的张数。
5.3 本章小结
本章通过实验,分别对SIFT特征点匹配做了详细研究。我们统计了不同大小
基于sift算法的图像匹配方法 37
的物体所获得的关键点数目。表面纹理复杂程度与生成关键点数目的关系。然后分别研究了亮度变化、尺度变化、旋转变化对匹配效果的影响。实验证明SIFT算法提取特征点的数目与物体的大小关系不大,与物体表面纹理的复杂程度呈正相关的关系,表面纹理越复杂,得到的关键点越多。证明了该算法具有良好的稳定性和鲁棒性,即使在光照、尺度、和物体发生旋转的情况下,都能得到较好的匹配效果,证明了SIFT特征点具有保持光照不变、尺度不变、旋转不变的特性。同时,我们在SIFT算法的基础上做了创新应用,实现了简单的物体识别,虽然识别时间较长,识别会存在误差等缺点。但是物体识别的功能基本实现,能对物体简单的识别。
基于sift算法的图像匹配方法 38
6 总结与展望
6.1 总结
本文首先介绍了图像匹配的研究背景及意义,完成了对国内外的研究现状的调查统计,确定研究的内容及方向。接下来对图像匹配的方法进行了简要概述,对图像匹配的原理做了简单介绍。分析各种图像匹配方法的优缺点。鉴于SIFT算法的优越性,最后选择基于特征点的SIFT算法作为图像匹配的核心算法。然后开始详细介绍SIFT算法的具体实现过程,为算法的实现提供理论基础。在最后的实验章节中,我们对SIFT特征点的提取做了研究,对尺度、旋转、光线的明暗情况下分别对SIFT算法做了充分的实验,得到了宝贵的实验数据。最后我们通过对SIFT算法加以简单的应用,利用SIFT算法设计了一个简单的物体识别系统,通过该系统,我们能识别图像中的物体,并显示该物体名称。虽然这个系统的雏形很简单,功能也比较单一,但是物体识别在军事、救灾、民用等诸多领域有广泛的应用,如果加以改进必定会有广泛的应用价值。
6.2 展望
通过本文的研究,我们在理论上证明了SIFT算法的优越性,无论匹配效果还是匹配成功率在现有的匹配方法中变显都很突出。当然,由于影响匹配效果的因数有很多,所以在不同的情况下应采用与之相符合的匹配方式,总体上来讲,SIFT算法的独特优越性确定了该算法的广阔前景。
一幅图像蕴含了极为丰富的信息,如可以直接利用的像素值,对于彩色图像有色彩信息,怎样利用这些信息来表征图像的本质信息是一个难点。现有的方法大部分都是基于像素点的灰度值、像素点的空间分布信息、色彩信息等。提前图像的特征后,就可以根据这些特征进行分类,并可以用于检索以及识别新的图像。特征提取是图像识别、分类和检索中的关键技术,本文主要关注图像的特征提取方法。提取特征时要考虑其维数,如果提取的图像特征具有很高的维数,计算复杂度会较高,而且实际当中待处理的图像数量巨大,将给存储和处理带来很大的不便,也就不适于分类、检索和识别方法的设计。在特征提取时,还要考虑光照变化、镜头位置、运动是否对提取的特征的有影响等问题。
目前常用的图像特征包括颜色特征、纹理特征,形状特征和局部点特征等,本文主要关注局部点特征。SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性,在尺度空间寻找极值点、提取位置、尺度以及旋转不变量。
本文介绍了尺度空间理论,尺度空间理论目的是模拟图像数据的多尺度特征。
基于sift算法的图像匹配方法 39
SIFT特征就是在不同的尺度空间和位置提取局部特征点。与其他特征相比,图像的局部特征综合反映了图像的细节部分信息,对于尺度缩放变化、视角变化、仿射变化、灰度变化、噪声保持了较好的稳定性。
本文对SIFT算法做了简单的物体识别应用,SIFT算法是现在图像图像匹配的一种主流算法,在诸多领域具有广泛的应用,比如物体识别、机器人定位与导航、图像拼接、三维建模、手势识别、视频跟踪、笔记鉴定、指纹与人脸识别、犯罪现场特征提取等。SIFT在图像的不变特征提取方面拥有无与伦比的优势,但是其并不是完美的,仍然存在着实时性不高、有时候特征点较少、对边缘模糊的目标无法准确提取出特征点等缺陷。所以SIFT算法具有很高的研究价值和很高的研究意义。
基于sift算法的图像匹配方法 40
参考文献
[1] [2] [3] [4]
汪洋. 图像匹配方法综述. 《电脑与电信》,2009年
田慧云. 基于特征点的立体影像匹配,北京:北京建筑工程学院,2008年 官云兰等. 点特征提取算法探讨.《东华理工学院学报》,2007年
林相波等. 基于灰度和形状的非刚性图像配准算法的研究. 《中国生物医学工程学报》,2009年
[5] 张钟汉. 各向异性的微分光流和匹配光流算法,西安: 西安电子科技大学,
2011年
[6] 赵彬. 基于压缩域的视频配准,济南: 山东大学, 2008年 [7] 姜彬等. 图像分割技术分析与展望. 《电脑知识与技术》,2009年
[8] 梅玫. 基于内容的同源视频检索技术研究,北京:北京邮电大学,2010年 [9] 郭金芝. 基于SIFT算法的车牌识别系统研究,西安:西安电子科技大学, 2012
年
[10] 李亮. 基于语义稀疏表示的不良图像检测算法, 西安: 西安电子科技大
学,2011年
[11] 杨升. 基于SIFT算法单双目视觉结合的移动机械臂定位研究, 武汉:武汉科
技大学, 2011年
[12] 刘宏娟. 基于DSP的航拍图像配准系统的研究与实现, 西安:西安电子科技大
学, 2012年
[13] 王建雄. 无人飞艇低空摄影测量关键技术研究及大比例尺地形成图实践,西
安:长安大学,2011年
[14] David G. Lowe. “Distinctive image features from scale-invariant keypoints”
International Journal of Computer Vision, 60, 2 (2004), pp. 91-110
[15] Brown, M. and Lowe, D.G. 2002. Invariant features from interest point groups.
InBritish Machine Vision Conference,Cardiff, Wales, pp. 656-665.
基于sift算法的图像匹配方法 41
致谢
经过一学期的紧张忙碌,我的毕业设计工作也基本完成。在毕业设计阶段,我得到了很多老师和同学的帮助,正因为他们的鼎力相助,我才能更好的完成毕业设计的工作,在这里我要向他们表达诚挚的谢意。
首先,我要感谢我的导师赵莹老师。在毕业设计阶段,她给我提供了巨大的帮助。老师知识渊博,平易近人。每当我碰到自己解决不了的问题,老师都细心的为我指导,积极的给我提供帮助。不仅指导我的设计任务,更教会我了做研究的方法和态度。她刻苦钻研,严谨治学的精神给留下了深刻的印象,对我产生了深远的影响。我这次毕业论文的顺利完成与她孜孜不倦的教导息息相关。
其次我要感谢我的其他大学老师,是他们无私奉献的精神,让我在大学中成长成熟。是他们把给了我们智慧与知识,让我远离了无知。
再次我要感谢我的同学们,大家朝夕相处,一起学习进步。当我遇到困难的时候,我第一个求助的人总是他们,他们也总是不厌其烦的帮助我。
最后,我要感谢所有支持我的家人和朋友,是你们给了我信心与力量。
基于sift算法的图像匹配方法 42
附录
生成输入图像的SIFT特征点: main clc; clear;
img1_dir = 'demo-data\\'; img1_file = 'image.jpg';
I1=imreadbw([img1_dir img1_file]) ; I1_rgb = imread([img1_dir img1_file]) ; I1=imresize(I1, [240 320]);
I1_rgb =imresize(I1_rgb, [240 320]); I1=I1-min(I1(:)) ; I1=I1/max(I1(:)) ;
[frames1,descr1,gss1,dogss1 ] = do_sift( I1, 'Verbosity', 1, 'NumOctaves', 4, 'Threshold', 0.1/3/2 ) ;
figure(1) ; clf ; plotss(dogss1) ; colormap gray ; drawnow ; figure(2) ; clf ;
imshow(I1_rgb) ; axis image ; hold on ;
h=plotsiftframe( frames1 ) ; set(h,'LineWidth',1,'Color','g') ;
图像匹配代码: clc; clear; main;
img1_dir = 'demo-data\\'; img2_dir = 'demo-data\\'; img1_file = '81.JPG'; img2_file = '85.JPG';
I1=imreadbw([img1_dir img1_file]) ; I2=imreadbw([img2_dir img2_file]) ; I1=imresize(I1, [240 320]); I2=imresize(I2, [240 320]); I1=I1-min(I1(:)) ; I1=I1/max(I1(:)) ; I2=I2-min(I2(:)) ; I2=I2/max(I2(:)) ;
[frames1,descr1,gss1,dogss1] = do_sift( I1, 'Verbosity', 1, 'NumOctaves', 4, 'Threshold', 0.1/3/2 ) ;
[frames2,descr2,gss2,dogss2] = do_sift( I2, 'Verbosity', 1, 'NumOctaves', 4, 'Threshold', 0.1/3/2 ) ;
fprintf('Computing matches.\\n') ;
基于sift算法的图像匹配方法 43
descr1 = descr1'; descr2 = descr2';
matches=do_match(I1, descr1, frames1',I2, descr2, frames2' ) ;
图像识别代码(图像库为5幅): main; clc; clear; for i=1:5; c=int2str(i);
img1_dir = 'demo-data\\'; img1_file =[c,'.jpg'];
I1=imreadbw([img1_dir img1_file]) ; I1_rgb = imread([img1_dir img1_file]) ; I1=imresize(I1, [240 320]);
I1_rgb =imresize(I1_rgb, [240 320]); I1=I1-min(I1(:)) ; I1=I1/max(I1(:)) ;
[frames1,descr1,gss1,dogss1 ] = do_sift( I1, 'Verbosity', 1, 'NumOctaves', 4, 'Threshold', 0.1/3/2 ) ; ff{i}=frames1; dd{i}=descr1'; end
zy=zeros(1,5); for i=1:5; j=int2str(i);
img2_dir = 'demo-data\\'; img2_file =[j,'.jpg']; img1_dir = 'demo-data\\';
img1_file = 'test13.JPG'; %输入图像 I1=imreadbw([img1_dir img1_file]) ; I2=imreadbw([img2_dir img2_file]) ; I1=imresize(I1, [240 320]); I2=imresize(I2, [240 320]); I1=I1-min(I1(:)) ; I1=I1/max(I1(:)) ; I2=I2-min(I2(:)) ; I2=I2/max(I2(:)) ;
[frames1,descr1,gss1,dogss1] = do_sift( I1, 'Verbosity', 1, 'NumOctaves', 4, 'Threshold', 0.1/3/2 ) ;
fprintf('Computing matches.\\n') ; descr1 = descr1'; tic ;
matches=do_match(I1, descr1, frames1',I2 , dd{i}, ff{i}' ) ;
基于sift算法的图像匹配方法 44
zy(i)=matches;
fprintf('Matched in %.3f s\\n', toc) ; end aa=0; for i=1:5
if zy(i)>5; aa=i; switch aa case 1
disp('该图片中有牛奶 '); case 2
disp('该图片中有盒子'); case 3
disp('该图片中有书'); case 4
disp('该图片中有糖果'); case 5
disp('该图片中有牙膏'); otherwise
disp('未找到相关匹配'); end end end
if aa==0;
disp('未找到相关匹配'); end
因篇幅问题不能全部显示,请点此查看更多更全内容