图像匹配技术(共7篇)
图像匹配技术 篇1
图像匹配技术, 是图像处理的一项基本技术, 它用来匹配相互间具有偏移的两幅或多幅图像。它在医学图像分析、物体辨识及变化检测、目标识别中具有广泛的应用, 随着科学技术的发展, 新的应用和新的要求逐步产生使得匹配算法的研究逐步走向深入。因此, 开展图像匹配技术的研究具有重要意义和实用价值。本文阐述了图像匹配技术的要素, 分析了图像匹配常用方法, 讨论了下一步研究的方向和热点。
1、图像匹配技术四要素
一般来看, 图像匹配可以作为四个要素的组成:特征空间、搜索空间、相似性测度和搜索策略。选取特征要考虑三点因素:首先, 选取的特征必须是原始图像和待匹配目标图像所共同具有的特征;其次, 特征集必须包含足够多的分布均匀的特征;再次, 所选取的特征要易于特征匹配的计算。搜索空间是在输入特征与原始特征之间建立的对应关系的可能的变换集合, 成像畸变的类型与强度决定了搜索空间的组成与范围。相似性测度的作用在于对从搜索空间中获取的一个给定的变换所定义的输入数据域参考数据之间的匹配程度的评估。搜索策略是指在相似性测度下达到最佳匹配的计算方式, 即采用合适的方法在搜索空间中找到平移、旋转等变换参数的最优估计, 使得相似性测度达到最大值。
2、图像匹配技术的分类
以往的图像匹配方法, 大致可以分为三类:基于特征点、灰度分布和频域。基于特征点的图像匹配技术是目前最常用的方法之一, 其最大的优点是能够将对整个图像进行的各种分析转化为对图像特征点的分析, 从而大大提高了运算的速度, 对图像偏移、旋转, 灰度变化等都有较好的适应能力。本文的主要工作是研究了这三类图像匹配方法, 分析各种方法的优缺点, 重点研究了基于特征的匹配方法。
2.1 基于特征点匹配方法
基于特征点匹配方法一般分为三个过程: (1) 特征点提取; (2) 利用一组参数对特征点作描述; (3) 利用特征点的参数进行特征匹配, 根据相似性原则对两幅图像中的特征点进行匹配。其最大的优点是能够将对整个图像进行的各种分析转化为对图像特征 (特征点、特征曲线等) 的分析, 从而大大减小了图像处理过程的运算量, 对灰度变化、图像变形以及遮挡等都有较好的适应能力。下面介绍三种基于特征点的匹配方法。
2.1.1 SUSAN特征点算法
SUSAN算法[1]的基本原理是通过以一个点为中心的局部区域内亮度值的分布情况来判断平滑区域、边缘及角点。如图1所示, 一个在图像上移动的圆形模板, 模板的中心称为核心, 它的位置有以下五种形式。图像一定区域的每个象素的亮度值与核心点的亮度值相比较, 把比较结果相似或相同的点组成的区域叫做USAN (单值分割相似核心) 。USAN区含有图像在某个局部区域的结构信息, 而大小反映了图像局部特征的强度。
SUSAN算子使用的是圆形模板来进行角点探测, 一般使用模板的半径为3-4个像元, 模板在图像上滑动, 在每一个位置求亮度相似比较函数, 并计算合计值, 就得到了USAN区域的面积, 而后再跟一个给定阈值进行比较。计算重心求出核到重心的距离, 对应正确角点, 若重心距离核较远, 就能以距离消除虚假角点的影响。最后使用非最大抑制 (No Max Suppression) 方法, 这样就可以找出角点。
近年来, Yu Song等人[2]提出了一种自适应阈值的检测算法, 解决了SUSAN算子对灰度细节丰富的图像检测效果不佳的问题。
2.1.2 SIFT特征点算法
SIFT特征点匹配算法[3]是David G Lowe在1999年提出的, 并于2004年总结了现有的基于不变量技术的特征检测方法的基础上, 提出的一种基于尺度空间的特征匹配算法[4]。SIFT特征匹配算法分四个步骤来实现:一是尺度空间极值点求取, 二是特征点位置确定, 三是为关键点指定方向参数, 四是关键点描述子的生成。匹配的方法是:在获得第一幅图像的特征向量后, 将采样点的欧式距离作为相似性度量。取帧图像中某个关键点, 找出其与图像中欧式距离最近的前两个关键点, 在这两个关键点中, 如果最近的距离与次近的比值小于某个阈值, 则接收这一对匹配点。降低比例阈值, SIFT匹配点数目会减少, 但匹配更稳定可靠。G Yu和J M Morel[5,6]克服了拍摄倾角过大造成的仿射变换的影响, 提出了ASIFT, 确保了特征稳定性, 提高了鲁棒性。
2.1.3 SURF特征点算法
2006年, Herbert Bay[7]提出了SURF算法, 其整体思路同SIFT类似, 特征点检测理论也是基于尺度空间, 但在整个过程中采用了与SIFT不同的方法。首先, 在尺度σ上定义Hessian矩阵, 用该矩阵的行列式计算图像上特征点的位置和尺度信息。其次, 为保证旋转不变性, 确定特征点的主方向。以特征点为中心, 将坐标轴旋转到主方向, 将其划分成4×4的子区域, 在每个子区域形成四维分量的矢量, 对每一特征点会形成4× (4×4) =64维的描述向量, 再进行归一化, 从而对光照具有一定的鲁棒性。SURF在各方面的性能均接近或者超越了SIFT的性能, 但是计算速度却是SIFT的3倍左右。
2.2 基于图像灰度相关的匹配算法
基于灰度信息的图像匹配方法一般不需要对图像进行预处理, 而是利用图像本身具有灰度的一些统计信息来度量图像的相似程度。这类算法的性能主要取决于相似性度量及搜索的选择上, 其主要特点是实现比较简单, 但因为是基于像素的, 所以计算量比较大, 应用范围较窄, 不能直接用于校正图像的非线性变换。下面简单介绍几种经典的匹配算法, 大致可以分为三类:序贯相似度检测法、互相关法、交互信息法。
2.2.1 序贯相似度检测匹配法
1972年, Barnea等人根据传统相关方法提出了一种为之有效的算法SSDA[8], 从而得到很好的效果。这种算法在两方面有了显著的改进, 一是简化计算, 利用图像f和模板T之间的差值来表示变化。与相关法相比处理效果差不多, 同时显著的提高了运算速度。二是改进使用了一种序列搜索的策略, 由检测范围和模板大小定义了一系列窗函数和阈值, 而每一个窗函数作用到图像中, 当相似性超过阈值后, 就进行次数累加, 而后在次数最多的窗口里进行匹配, 重复迭加细化直至得到所需要的结果。近年来, 人们对该算法提出了很多的改进, Shi等人[9]基于特征提出强角点算子引导SSDA匹配方法, 使其能更好的满足匹配的要求。
2.2.2 互相关法
1982年, Rosenfeld提出的互相关法[10]。它像是一种相似性度量或者匹配程度的表征, 而不是一种图像匹配的完整方法, 但是把互相关的思想作为度量测度, 在许多匹配算法里都会用到。
对于一幅图像f (x, y) 和相对于图像较小尺度的模板T, 归一化二维交叉相关函数C (u, v) 表示了模板在图像上每一个位移位置的相似程度:
如果除了一个灰度比例因子外, 图像和模板在位移 (i, j) 处正好匹配时, 交叉相关函数就在C (i, j) 出现峰值。这时, 交叉相关函数有否归一化是必须注意的, 否则相似度的度量将会受到局部图像灰度影响。A.Roche等人[11]的改进算法能够较好的解决噪声的问题, 而且计算速度也提高不少。
2.2.3 交互信息法
1995年, Viola等人[12]把互信息引入图像匹配的领域, 交互信息是基于信息理论的相似性准则。这种图像匹配方法是假设A、B是两个随机量, 交互信息量是这两个随机变量之间统计相关性的量度, 或者是一个变量包含另一个变量的信息量的量度, 其意义与信息论中相同, 互信息量表示了两幅图像的统计依赖性, 它的关键思想是:如果两幅图像达到匹配, 它们的交互信息量达到最大值。因此, 作为图像间相似性的量度, 该方法是近些年来医学图像匹配研究领域中使用最多的一种方法。在此基础上, Maes等人[13]进行了全面的研究, 将匹配精度提高到亚像素级。
2.3 基于变换域的图像匹配的方法
基于变换域的图像匹配方法最主要就是傅里叶变换方法, 还有基于Gabor变换和基于小波变换的匹配。这些匹配方法主要有以下一些优点:对噪声不敏感, 检测结果不受光照变化影响, 图像的平移、旋转、镜像和缩放等变换在变换域中都有相应的体现。这里重点介绍傅里叶变换方法, 该方法有成熟的快速算法并且易于硬件实现。算法是考虑两幅图像I1 (x, y) 和I2 (x, y) 之间存在一个平移量 (dx, dy) , 即:
对其进行傅里叶变换, 在频域上1F与2F有下面的关系:
上式说明两幅图像变换到频域中幅值相同, 但有平移量有一个相位差, 这就是说两幅图像的相位差由图像间的平移量直接决定。根据平移定理, 这一相位差等于两幅图像的互功率谱的相位谱:
上式的右边部分为一个虚指数, 对其进行傅里叶逆变换会得到一个冲击函数, 其只有在峰值点也就是平移量 (dx, dy) 处不为零, 这个位置就是所需求的匹配位置。张锐娟等人[14]结合四元数理论, 提出一种基于四元数傅里叶变换的亚像素相位相关法, 能够稳定快速的实现匹配。
3、图像匹配技术算法的性能评价指标
对匹配技术算法的性能评估, 在这方面West[15]等总结了人们对匹配效果评价所做的许多工作。算法首先要进行性能界定, 也就是说将图像匹配问题视为参数估计的问题, 运用参数估计的理论和方法得到图像匹配可以达到的最好的性能。算法的性能评价指标主要有:准确性、鲁棒性、实时性等, 然而, 在不同的环境中用相同的匹配算法, 却会有不同的评价指标, 但总的评价准则只有一条:在实际应用中是否达到要求, 性能是否优于以前的方法。
但是, 完美的匹配算法是不存在的, 每种算法都有其适用环境, 这样才能使每次匹配操作能够做到最好, 发挥算法的最好性能。
4、图像匹配技术的研究方向和热点
图像匹配算法经过国内外学者的共同努力, 已经取得了很大的进展, 各类算法相继出现, 但是由于实际情况复杂多变, 现有算法总是存在一些不足, 目前在以下几个方面值得深入的研究:
(1) 当匹配图像中物体存在遮挡, 或者是特征点均匀性不是很好的时候, 提取特征要不不容易获取, 要不就是不可靠, 这可由粗到精的分析图像数据, 从全局匹配到局部匹配, 提高了匹配运算精度。因此, 研究基于非均匀性图像的匹配算法是很有必要的, 也是当今研究的方向和热点。
(2) 匹配算法的复合研究。前文介绍的匹配方法都有各自的优缺点, 如果能综合利用它们的优点将会取得更好的匹配结果, 将多个特征和算法相互融合, 以克服单个算法的局限性, 提高匹配的适应性。
(3) 研究基于遗传算法、神经网络和人工智能等方法相结合, 组成系统模型, 用来实现多目标的人工智能神经网络的匹配处理, 具有强大的记忆、选择、识别和学习的能力。
5、结语
几十年来的发展, 图像匹配算法已经取得了巨大的进步, 针对各种匹配难点的算法也相继提出, 有效性和鲁棒性也大大提高, 本文对这些有代表性的匹配算法进行了分类阐述, 并探讨研究了一些问题。但是由于各种不可预知的因素影响, 而且现有算法总会有些缺陷, 也没有哪种算法能解决所有的匹配问题, 因此更要我们在实践中不断探索与完善。
图像匹配技术 篇2
在虚拟现实中,手是用户模型中十分重要的动作与感知关系模型,人的行为特征,是人机交互的重要研究内容。在虚拟环境中用手实现抓取、释放物体,以及飞行、漫游、导航等三维交互任务和技术,以往是利用人的触摸行为和计算机的反应来获得基于人机交互的手段,一般采用硬设备如空间球、6D操纵杆、6D鼠标等来实现。但也可用人们的自然技能,通过计算机非接触式地(如数据手套和摄像机等)观察用户的动作,实现人机交互,这是一种通过手势识别来了解用户意图的、有前途的三维交互新技术。因为在虚拟现实环境中抓握环境中的物体,应与用户手在生活中的动作一致,这一切的研究都是基于运动学、动力学以及反运动学;这一切还与使用手掌、拇指和每个手指的位置在抓握物体时运用自然、可信的几何和物理特征有关;同时还要使用户能感知手抓握的作用力。显然这是一项十分艰巨的研究工作,但它在人机交互困难的领域(如虚拟现实环境、遥控机器人和电信会议、哑语手势等)使用户不需要训练就可用人类自然技能,充分发挥手在交互过程中的自然性、灵活性和适应性。本文的手势识别属于机器视觉方面,它实现了计算机对人的三种手势的识别。基于visual studio软件和Open CV视觉库,用C#语言编写,通过摄像机捕捉图像,利用肤色检测定位手势,并且运用两种方法来对比使用。Open CV视觉库为我们的研究提供了很好的平台,大大减少了算法的复杂程度。最后通过模板匹配的方法使计算机识别出三种手势,并为此构建了有实际意义的算法,并通过实验检测具有可行性。
1 肤色提取
1.1 YCb Cr模型的肤色提取
YCb Cr空间是一种从RGB空间非线性转换而来的颜色空间,其已被广泛应用于视频压缩标准中。式(1)用来从范围为[0,1]的RGB信号输出YCb Cr信号。输出YCb Cr信号的范围是Y∈[16,25],Cb、Cr∈[16,235]。使用式(2)可以将YCb Cr信号恢复成范围为[0,1]的RGB信号。
肤色的差异在于色度而不是亮度,可以近似认为肤色差异与Y分量无关。本文选取具有代表性的不同肤色(没有考虑黑色人种)在不同光照下的人脸和手势图像作为样本,再用手工采集人脸皮肤作为肤色样本,并且制作了一个软件系统分析所得肤色RGB和YCb Cr值的直方图,得知肤色只分布在色度平面上一个很小的区域,利用该直方图可以为肤色构造高斯密度函数或高斯混合模型。仔细选择阈值Cb[Cb1,Cb2]和Cr[Cr1,Cr2],利用判定规则:一个像素(i,j),如果同时满足Cb1﹤Cb(i,j)﹤Cb2和Cr1<Cr(i,j)﹤Cr2,则规定该像素为肤色像素,取值为1;否则,该像素值为0。事实上,这些阈值是肤色期望和标准方差的一些线性函数。本文采用的阈值条件为Cb[80,135]和Cr[136,177],这个范围是根据实验采取样本肤色所得到的一个大概的范围。如图1所示,通过实验软件整理出的肤色范围。经过统计考察,凡是像素点的Cb∈[80,135]且Cr∈[136,177],均判定为肤色像素,取值为1;否则为0。
1.2 BP神经网络的肤色提取
BP神经网络的隐层一般采用Sigmoid转换函数,为提高训练速度和灵敏性以及有效避Sigmoid函数的饱和区,一般要求输入数据的值在0-1之间。因此,要对输入数据进行预处理。一般要求对不同变量分别进行预处理,也可以对类似性质的变量进行统一的预处理。如果输出层节点也采用Sigmoid转换函数,输出变量也必须作相应的预处理,否则,输出变量也可以不做预处理。所以在肤色检测中将肤色像素点RGB的值进行归一化处理。对于肤色的检测,构造了具有3层节点的人工神经网络模型,将皮肤的RGB的实测值作为学习样本。每个样本均含有2个输入因子,分别是皮肤像素归一化的g和b值。归一化方法同前面介绍的RGB转换成YCb Cr时候的方法。
本文肤色检测神经网络模型的各层节点数分别为:输入层2个,隐层5个,输出层1个(如图2所示)。通过对RGB模型归一化,得到bg二维空间,将bg作为输入,判断网络输出,接近1时为肤色,接近0时为非肤色。
图3是肤色原图,图4是基于YCb Cr色彩模型检测到的肤色结果,图5基于是BP神经网络检测到的肤色对比所示,可以看出,两种方法检测出的肤色图像准确度相差不大。两种模型各有自己的优点和缺点,YCb Cr色彩模型程序实现比较简单,运行速度也比较快,但是不够灵活,需要提前做许多数据工作,采集许多颜色数据。而BP算法的神经网络比YCb Cr色彩模型检测更为准确,不需要做大量的数据采集,运用灵活,不但可以识别肤色,而且可以识别任意颜色。但是BP算法的程序实现较为复杂,并且运行速度比YCb Cr色彩模型慢许多。所以,这两种方法各有千秋,可以根据自己的需要来选择。
2 动态监测
对于手势的运动检测,将摄像头捕捉到的相邻之间的帧做差分运算。如,第一帧和第二帧之间做差分运算如图6,并且将所得图像的各像素点进行累加运算,设定阈值T=30(这个阈值是根据测试设定的)。超过阈值便认为第一帧到第二帧是运动的;反之,便认为是静止的。接着,同样的方法检测第二帧和第三帧之间是否运动。将每两帧之间差分所得到的图像与肤色识别所得到的图像进行与运算,便得到手势动态图像,如图7。
3 模板匹配
在手势的匹配中,如图8所示,经过肤色检测以后的三个手势各自有五个模板,图中仅为各自五个模板中的一个。由于人们做手势不可能是一成不变的角度,需要输入几个不同角度的手势模板,以此来提高系统的泛化能力,所以才有五个模板。
模板匹配中,如果两个模板的匹配度都很高,而人做的手势不一定绝对静止,就有可能出现一些抖动,出现误判的情况。为了使匹配更为准确,消除抖动的干扰,本文提出了一种自适应的算法。将匹配度最大的那个模板根据环境(光线强度等)对手势的影响进行修正,使之匹配度越来越大。在不同的环境下,修正也不同。
捕捉到的手势图像经过模板匹配后还需要进行预处理,使之与模板图像的大小相同。其方法是:以捕捉到的手势二值图像的白色区域中心坐标为中心,切割出和模板大小相同的图像。这是为了满足下面的自适应处理的条件要求。
设tem1为检测出的匹配度最大的那个模板像素,cap为经过预处理的摄像头捕捉到的手势二值图像,则:
然后令tem1=tem2;其中a为学习率,经各种考察,本文设置a=0.01。tem2成为新的模板,实际上相当于最大匹配的模板图像与实际捕捉到的手势图像的合运算。如图9所示为原模板图像,图10为经过自适应处理的模板图像。
4 结果分析
本文的手势的识别属于图像识别的一部分,它的实现需要两大部分。第一是肤色的检测,利用颜色判别,这为手势的位置确定减少了很大的复杂度。肤色检测本文应用两种方法:基于YCb Cr色彩模型和BP神经网络,分析两种方法各自的优缺点,并将两种方法分成模块编写在程序里,随时可以调用和改变方法。第二是匹配的实现,也就是完成三种手势的识别。在匹配之前,首先要进行手势的动态检测,只有静止的手势才被认定是有用手势。之后,将预存的三种手势的不同模板与被识别的图像进行一一匹配,选出匹配度最大的模板,并认定被识别手势即为这个模板的手势。在模板匹配中,要应用自适应处理,以便消除手势的抖动,从而使匹配更为精确。在研究中提出的研究思路和解决方法对实际应用有参考意义。
图像匹配技术 篇3
在相关的研究中,人们发现SIFT描述子在各种图像转换条件下,鲁棒性非常好。但SIFT描述子所占用的空间非常大,运行速度也慢,这是非常大的缺点。
1 学习图像特征描述子
在灰度图像补丁x当中,采用D维的向量来对其进行描述。也就是说,图像补丁特征数据映射到D维的向量空间Y。
在上面这个式子中,X指的是图像补丁的集合,也就是测试补丁以及训练补丁。向量C(x)=[c1(x),……,CD(x)]也属于补丁x的描述子。需要用一部分相应函数[hm(x)Mm=1,在这个式子里,hm必须是属于0 和1 之间的自然数,可以被当成补丁来获得描述子。
补丁x的描述子是这样的:C(x)=ATHT(x)。在这个式子当中, AT属于D×M的矩阵,可以被记作:A等于。其中,是描述子第d维对应的弱分类器系数向量。H(x)=[h1(x),……hM(x)]是由响应函数所组成的向量。因此描述子第d维的值应该是:。描述子的每一个维数都能够使其发生变化。笔者采用Ada Boost的办法,分析出了描述子每一维数的图像特征分类器的选择以及权重系数。
采用上面所说的Ada Boost方法来进行计算,先要开始确定训练样本。所谓的训练样本指的是有标记符号的补丁,[(x1,y1)],lj]Nj=1,在这个式子里,lj∈[- 11,] 。lj等于-1,这个代表的是两个不一样的补丁,同时这两个补丁也是相似的。有研究者采用Ada Boost来进行计算,发现Ada Boost方法实际上是对指数型损失函数优化的一种办法。学习目标函数应该是这样的:。
在上面这个式子当中,f(xi,yi)是补丁对相似性函数。笔者使用了描述子表示图像补丁特点,因此两个图像补丁互相的相似性度量就是两个相对的描述子之间的相似性度量,其流程图如图1所示。
在分析几个图像补丁的相似点的时候,必须要有两个流程,第一个是由图像补丁到描述子。第二个是将两个描述子的相似性进行对比,其需要建立在相似性度量函数上面。因此这样的描述可以被看成是一个二层神经网络。
1.1 特征响应函数
在这个过程中,可以将基于梯度的响应函数用来当作弱学习器。整个弱学习期是由三个参数组成,也就是说,在补丁x上,可以确定一个方向e,一个阀值T,以及矩形区域R。最后,响应函数可以这样被定义:
在这个式子当中,。另外,εe(x,m)=max(0,cos(e-0(x,m))。在这个式子当中,o(x,m)指的是补丁x在m处的像素梯度方向。方向,在这里面,q指的是梯度方向Bin的个数。采用积分图像来进行计算,效率会非常高。
1.2 学习特征的浮点描述子
采用以上方法,分析响应函数的在图像里的局部特征上作用结果乘积的权重和,运用另外的函数。。
在上面这个式子当中,∂d代表的是描述子的权重,从而得到浮点型描述子。此外,描述子的每一维对应一个响应函数。
把上面这个式子代入进去,可以得到目标函数:
响应函数空间也许属于无限的,因此如果要对OBssc进行优化,就存在一定的难度。但是可以采取Boosting来进行解决。这种算法具备贪婪的特性,可以构建弱学习器,但是效率却不高。需要对Boosted SSC的相似性函数进行修改。使用Ada Boost算法来修改相似性函数,从而算出低维数的图像特征浮点描述子,这个浮点描述子的构建方式可以被看成Ada Boost -Float - Point 。
笔者也是采用的这样的方式来对描述子进行计算,由于系数矩阵A一般都是浮点数。最后所得出的描述子也是浮点描述子。对图像补丁的相似性进行描述,需要计算出补丁对应的描述子的关联度。可以将相似性函数这样进行定义:
在上面这个式子里,C(x)以及σx都属于补丁x的描述子维数上的均值以及方差,也就是说:
在上述式子里,补丁y的表达式和x的表达是一样的,因为不是直接的对描述子的维度进行操作,所以其相似性的度量比维数值度量的鲁棒性更高。
将上面的式子代入进去,可以得到这样的目标函数:
这个目标函数属于凸函数,因此在进行优化的时候,可以找到最优解。在进行优化的时候,采用两步学习方式。第一步是在训练样本的基础上,利用Ada Boost将其最小化,从而得到M个弱学习器的权重。采取合理的方式对目标函数进一步的优化,最后再利用梯度下降法最小化OF,从而得到每一个弱学习器的权重。采取第一个算法对目标函数进行优化,从而得出配置优化的特征弱学习期非线性组合。在这个算法里,使用Ada Boost方法获得响应函数和相应的权重系数,从而构建补丁的特征描述子。这个算法对Boosted SSC进行了拓展。而且还要按照补丁的像素水平来分析相似性,使其被补丁描述子用来估算相似性。
2 怎样对描述子进行评估
在不同的数据集当中,对特征描述子的性能实施评估。第一种则是采用了Brown数据集进行评估。其包含了三组不同目标的图像补丁集,每一组有四十万个64 乘以64 补丁。这部分补丁是以Do G检测子检测出的兴趣点来作为中心。每一个数据集里的补丁有不同视角和灯光变化,其补丁数是十万、二十万以及五十万。一般采用32 乘以32 的降采样补丁,其中二十万补丁用作获取描述子,剩下的十万补丁用作测试集。
经过评估后,得出的结果是采用ROC曲线以及95%差错率来描述。
3 描述子性能对比实验
采用上面所说的描述子评估方式,在Brown中,利用3 个数据集对笔者提出的描述子进行性能评估。为了能够更好的了解实验结果,可以把结果分为两种,一种是进制描述子、浮点描述子。在本文中,将Yosemite看成训练集,将Liberty作为测试集。从而对描述子进行评估。
从图中可以看出,二值描述子是最快的,是浮点描述子中的几个数量级。这是因为弱分类器选择的响应函数组合形式不一样。这是由参数的选择所决定的。
5 总结与体会
本文提出了基于Ada Boost算法的一种框架。通过实验后发现,这样的学习架构所获得的特征描述子,在全部的描述子里面的图像局部匹配查准率最高。因此,这种方式也是合理的。
参考文献
[1]惠国保,童一飞,李东波.基于改进的图像局部区域相似度学习架构的图像特征匹配技术研究[J].计算机学报,2015.
[2]张芬.肇事车辆刹车痕迹图像特征匹配技术仿真[J].计算机仿真,2015.
[3]刘丽晖.基于不变量理论的遥感图像特征匹配技术[J].知识经济,2010.
[4]云延进,郭永彩,高潮.基于图像局部区域梯度特征描述的红外人体识别算法[J].光学技术,2008.
[5]罗楠,孙权森,耿蕾蕾等.一种扩展SURF描述符及其在遥感图像配准中的应用[J].测绘学报,2013.
图像匹配技术 篇4
1 SIFT特征提取算子
SIFT[2,3,4,5]算子全称是Scale Invariant Feature Transform, 即尺度不变特征。它首先在高斯差分多尺度空间检测特征点, 以确定特征点的位置和特征点所处的尺度, 然后用特征点邻域梯度的主方向作为该点的方向, 最后利用梯度直方图生成特征描述符。SIFT特征匹配算法的流程如图1所示.
利用SIFT算子提取的角点结果如图2:
2 特征点匹配
特征点匹配是指找出两幅图像 (准参考图像和待配准图像) 中的唯一对应特征点, 来确立两个点集之间的对应关系, 然后利用对应关系来求解变换模型参数, 该文利用LTS Hausdorff距离[6]来匹配特征点。
Hausdorff距离是匹配点特征的一种方法, 它不需要建立特征点之间的一一对应关系, 只是计算两个点集之间的相似程度 (最大距离) , 所以它可以有效地处理很多特征点的情况。1991年Daniel P.Huttenlocher与William J.Rucklidge等人提出了一种基于Hausdorff距离的计算图像间的相似度的方法。然而在图像配准中, 单纯的Hausdorff距离对于噪声和孤立点的比较敏感, 于是Sim、Kwon和Park提出了改进的LTS (Least Trimmed Square) Hausdorff距离, LTS Hausdorff距离在数字图像的配准中的精确度与稳定性都比较理想。鉴于此, 该文的图像配准算法采用LTS Hausdorff距离。
LTS Hausdorff距离定义如下:
其中,
hL (A, B) 表示是将集合A中所有点到集合B的“距离”进行排序, 取第L个距离作为集合A到B的Partial Hausdorff距离, 其大小取决于参数f, f=L/NA, 这里NA是集合A中点的个数, 0
根据上述定义, 提出了改进的Hausdorff距离定义——LTS Hausdorff距离, 定义为:
其中, 是集合A中点的个数, dB (a) 表示表示A集合中的点a到B集的距离, dB (a) (i) 表示排序后的第i个距离且有关系。使用这种测度的好处是可以消除图像中的噪声从而提高图像匹配的准确度, 该文采用该测度作为图像相似性度量。
3 消除误匹配
消除误匹配对一般采用随机抽样一致性算法 (RANSAC算法) , 该算法是计算机视觉领域中应用较广的比较稳健的一种估计方法。该文主要介绍由Fischler和Bolles于1951年提出的RANSAC基本算法。
RANSAC算法的输入是测量数据的一个集合μ。在集合中有一定比例的数据满足参数未知的某种模式, 这些数据被称为内点。剩余的不满足参数未知的某种模式的数据被称为外点。
以直线拟合为例说明RANSAC算法的思想:在数据集合图3 (a) 中随机选取两点形成一条直线, 并通过一定的阈值来寻找此直线的内点, 由这个内点集合线性解出新的直线, 再根据此新直线寻找它对应的内点, 不断地重复这样的随机采样, 直到某一次采样使内点数量最大, 那么这次获得的直线估计就是此集合的最好估计。如图3 (b) 所示。
4 实验结果
基于matlab仿真平台, 得到基于SIFT特征点的图像匹配结果如图4:
5 结束语
对基于特征点的图像配准, 该文提出了一种基于SITT角点LTS Hausdorff距离的图像配准技术, 该方法克服了传统方法的许多不足, 其优点如下: (1) 算法简单, 易于实现; (2) 由于是基于特征点匹配, 运算量大大减少; (3) 匹配的精度相对于其它方法比较高。
摘要:图像配准是遥感、医学、计算机视觉等很多领域中的一个基本问题。针对特征点的匹配, 该文首先采用LTS Haus dorff距离进行特征点的初匹配, 然后采用基于Sampson距离的随机抽样一致性算法去除伪匹配的特征点对。实验证明, 该方法可以实现图像的精确配准。
关键词:SIFT角点,LTS Hausdorff距离,图像匹配技术
参考文献
[1]刘传山, 贺道德, 文开庭.基于数字景区的图像配准技术应用研究[J].电脑知识与技术, 2013, 15 (6) .
[2]张羽, 朱丹, 王玉良.一种改进的快速SIFT特征匹配算法[J].微计算机信息 (管控一体化) , 2008, 24 (11) :220-222.
[3]肖若秀, 蔡光程, 贾建波.利用旋转模板匹配方法对SIFT算法的改进[J].计算机技术与发展, 2009, 19 (5) :127-130.
[4]骞森, 朱剑英.基于改进的SIFT特征的图像双向匹配算法[J].机械科学与技术, 2007, 26 (9) :1179-1182.
[5]Huttenlocher D P, Klanderman G A, Rucklidge W J, Comparing images using the Hausdorff distance, IEEE Transactions on PAMI[J], 1993, 15 (9) :850-863.
图像匹配技术 篇5
本文利用SIFT算法对图像中的特征点进行检测,并利用基于Kd-tree的最近邻算法进行特征点的匹配,最后依赖于已有的特征点匹配对,实现双目视觉立体匹配。
1 图像特征匹配
1.1 特征点的检测
在SIFT算法中[4],我们可以用变尺度的高斯函数和图像进行卷积运算,得到图像的尺度空间。用函数来表示该尺度空间,即:
SIFT算法建议首先对高斯尺度空间相邻的图像进行减操作,得到一个Do G(Difference of Gaussians)的响应值图像,再对该图像进行局部极大搜索,确定特征点在位置空间、尺度空间上的具体位置。其中:
式中,K为常量,表示相邻尺度空间之间的比值。
1.2 SIFT特征描述子及特征矢量
SIFT描述子是一种用于特征检测的特征描述子,通过量化描述图像局部特征,客观地反映特征点附近局部区域内图像的分布情况。为了实现图像的旋转不变性,我们通过图像的梯度参数,求取特征点附近局部结构的稳定方向。对于已经检测到的特征点,特征点尺度值是确定的,我们可以得到最接近该值的高斯图像:
以特征点为中心,以为半径做圆,计算该圆形区域内图像梯度的方向和大小,然后用直方图统计邻域内图像的梯度方向和大小。将梯度方向的360°均分在8个方向范围内,累计每一个范围内的梯度大小,并选取幅值最大的方向为梯度的主方向。为了增强系统的鲁棒性,再选择能量值相当于主峰值80%的峰值对应的方向为该特征点的辅方向,共同描述特征点。
SIFT描述子可以表示成矢量形式,描述特征点附近邻域内高斯图像梯度统计结果。由于是描述特征点附近的邻域,梯度方向分为8个范围,所以该特征矢量是128维,这也直接决定了系统的运行速度,接近实时处理。
1.3 图像特征点匹配
对捕获的同一场景两幅图像,如果两个特征点描述矢量之间相距较近,就认为这两个特征点对应于三维场景中的同一位置;反之,则处于不同的位置。特征点匹配技术就是从对应同一场景的两幅图像特征点集合中,找到两两距离最近的特征点,实现特征点一对一匹配。
特征匹配常采用线性扫描法,就是将特征点和查询点逐一进行距离比较,选择距离最小的点,但是该检索方法搜索效率比较低。本文采用Kd-tree[5]的数据结构,将整个数据空间划分成小空间,逐级展开搜索,搜寻最近邻点。Kd-tree本质上就是二叉树,每个节点表述一个空间范围。构建流程如下:
(1)分析数据点数据,展开kd-tree;
(2)找到分割超面,确定其垂直方向轴序号,计算对应维度上的数据方差;
(3)选择最大方差维数,记为Ki,并选取Ki维的中值Kv作为阈值;
(4)分割数据。维数小于阈值的,其对应的特征点放在右子树空间;否则放在左子树空间;
(5)分别展开左子树、右子树,重复上述步骤(2)、(3)、(4),将空间和数据集进一步细化,直至空间中只包含一个特征数据点。
在kd-tree中进行数据的查询是为了检索kd-tree数据集中与查询点距离最近的数据点。按照二叉树结构展开搜索,沿着搜索路径,找到最近邻的近似点,也就是包含查询点的叶子节点。但是这样找到的叶子节点不一定就是最近邻点,最近邻点肯定距离查询点更近,也就是说,最近邻点一定在以查询点为圆心,通过叶子节点为半径的圆域内。这就需要我们沿搜索路径回溯操作,看是否存在某一数据点,距离查询点更近。若存在,就用新查到的数据点代替叶子节点,反之若不存在,则认为已经找到的叶子节点就是最近邻点,从而完成特征点的匹配。
2 立体匹配
立体匹配[6]是指对参考图像中的任意像素,在待匹配图像中找到与之相对应的像素点的过程,即找到空间中任一场景点在两幅图像中对应的像素点。这些像素点有可能是已经检测出的特征点,也有可能只是普通的像素点。由于使用SIFT算法检测到的特征点具有多种不变特性,在图像中处于相对稳定的区域,我们可以建立待匹配像素点和周围特征点的关系,来实现像素点之间的匹配。
本文在特征匹配的基础上,研究了普通像素点和特征点之间的关系,实现了图像的立体匹配。算法具体流程如下:
(1)在参考图像中,从上往下,从左至右对图像特征点依次排序,并求取各特征点到参考像素点之间的欧氏距离;
(2)比较求得的欧氏距离,选择其中距离最小的特征点为最近特征点,如存在距离相同的特征点,选择序号最小的特征点为最近特征点;同理,选择距离次小的特征点为次近特征点;
(3)从匹配好的特征点对中,找到最近特征点和次近特征点,并从已经存在的匹配对集合中,找到待匹配图像中与之对应的最近特征点和次近特征点。
(4)在参考图像中,建立两个特征点与参考像素点之间的函数关系。运用该函数关系求出待匹配图像中对应的像素点。
对于立体匹配,除了借助特征点匹配对,立体匹配本身还具有一些约束条件:1)唯一性约束。每个参考像素点存在且只存在唯一的待匹配像素点与之相匹配;2)顺序一致性约束。同一扫描线上的两个像素点在参考图像和待匹配图像上具有相同位置次序;3)一致性约束。两幅图像中,对于未遮挡的相同场景,对应的像素点具有相同的视差。运用立体匹配条件,可以进一步优化我们已经得到的立体匹配点对,实现更好的匹配效果。
3 实验结果及分析
本文使用的实验设备:一个带有旋转云台的自动三脚架(三脚架和云台的运动情况可以进行参数设置),一台85mm微距的尼康摄像机,一台戴尔的台式电脑。
将摄像机安装在三脚架上,设置三脚架运动参数,使得三脚架只进行垂直运动。用该设备获取三脚架运动前后,对着的同一场景的两幅图像。
应用SIFT算法,对获取的两幅图像进行特征点检测。图中黑色的点表示检测到的特征点,从图1可以看出,利用SIFT算法进行特征点检测,得到的检测结果大多是比较明显的边缘点、角点、像素灰度变化比较大的点,这为后续的特征匹配打下了良好的基础。
从特征点匹配的实验结果来看,检测到的特征点都能在目标图像中找到对应的特征点,完成特征点的相互匹配。但是仔细观察不难发现,本实验中存在错误的匹配对。本实验中一共实现了151对特征点的匹配,其中存在3对错误的匹配,即误匹配率为1.98%,实现了较好的匹配效果。而且匹配运算时间只用了6.763 S,达到了很好的实时性效果。图中误匹配点对主要集中在图像中部,分析是书柜排布相似、书本上存在个别效果不明显的特征点等原因导致的。
在立体匹配上,本文进行了多次实验,选取其中几组实验,实验结果如图所示。其中蓝线表示最近特征点对和次近特征点对,红线表示对应的求得的匹配像素点对。实验像素坐标如表1所示。
从上述实验数据中可以看出,大部分数据横、纵轴差值相当,对比实验图像,实验数据是真实可靠的。进行实验时,理论上智能三脚架只进行垂直升降运动,由此参考像素点和待匹配像素点的横坐标是相同的,但是在实际的操作中,由于地面不完全平整、仪器本身条件限制等原因,摄像机运动过程中存在一定程度的晃动,会产生一定程度的横向偏移,使得参考像素点和待匹配像素点的横轴坐标不一致。其次,由于像素点的匹配是依赖于特征点匹配对的,如果特征点匹配对是误匹配,会直接导致后面的像素点匹配对发生错误,如图4所示。还有即使特征点匹配对是正确的,后面建立的几何函数的不精准或是计算的精确度等原因,也会影响像素点的匹配。
4 结语
在刑事案件现场中,一般人造物品比较多,特征都比较明显。本文利用SIFT算法对拍摄的现场图像进行特征点检测,能够快速、有效的实现特征点的检测。在特征匹配的过程中,通过SIFT特征描述子建立特征矢量,对检测到的特征点进行详细的描述。构造Kd-tree数据结构,利用该结构进行近邻检测,实现特征点的匹配,再在此基础上,完成立体匹配。本文实现了快速的立体匹配,实现了较好的匹配效果。但仍然存在不足,有误匹配的出现,正确的匹配在精度上也有待加强,有待于进一步优化。
摘要:本文采用SIFT算法进行特征点检测,运用Kd-tree构造数据索引空间,采用最近邻检测算法在其中进行数据的查询,实现待匹配图像特征点和参考图像特征点的匹配。由于SIFT算法描述的特征点具有旋转不变性、尺度不变性等优良特性,借助这些特征点对,能够实现测量系统中的立体匹配。本文对获取的同一场景的两幅图像进行处理,用上述方法进行立体匹配,实现了较好的匹配效果,达到了接近实时性的匹配速度。
关键词:SIFT算法,Kd-tree,最近邻检测,立体匹配
参考文献
[1]Moravec H.Rover visual obstacle avoidance[C].In Internation-al Joint Conference on Artificial Intelligence,Vancouver,Can-ada,1981,785-790.
[2]Schmid C.and Mohr R.Local gray-value invariants for imageretrieval[J].IEEE Trans.On Pattern Analysis and Machine In-telligence,1997,19(5):530-534.
[3]Lowe D.Distinctive Image Features from Scale-Invariant Key-points[J].International Journal of Computer Vision,2004,60(2):91-110.
[4]王永明,王贵锦.图像局部不变性特征与描述[M].北京:国防工业出版社,2010.4:79-88
[5]杜振鹏,李德华.基于KD-Tree搜索和SURF特征的图像匹配算法研究[J].计算机与数字工程,2012(2):96-100.
图像匹配技术 篇6
目前针对图像匹配的主要方法有基于像素点匹配的归一化积相关灰度匹配、序贯相似性检测匹配(Similarity Sequential Detection Algorithm,SSDA)、基于特征匹配的[1](Scale-Invariant Features Transform,SIFT)和仿射不变特征点提取方法Harris-Affine[2,3,4]。模板匹配的主要思想是将待匹配的图像作为模板图像,以窗口的方式,在待查找的源图像中扫描一遍,通过该模板所对应区域的图像与模板图像之间的相似距离来判断识别的结果。序贯相似性检测匹配主要解决模板匹配算法计算量大的问题,模板匹配每滑动一次就要做一次匹配运算,除了匹配点外在其他匹配点做了“无用功”,导致匹配算法计算量上升,一旦发现所在的参考位置为非匹配点,立刻换到新的参考点计算,加大匹配速度。SIFT方法能够从匹配图像中提取显著不变特征,使不同视角目标或场景图像稳定匹配,该特征向量对图像尺度、旋转变化、噪声和光照变化不敏感。由于SIFT 对目标遮挡和图像混杂稳定性较强,因此在目标识别中取得良好效果。仿射不变特征方法主要解决大视角变化的图像匹配问题,在仿射高斯空间的基础上,用多尺度Harris特征点,检测算子提取适应仿射变换的特征点,然后用特征点的椭圆邻域代替圆形邻域。通过迭代估计特征点邻域的仿射形状,不断调整特征点所在的尺度、位置和形状收敛直到不变为止,最终得到仿射不变特征向量。利用像素点进行匹配的主要缺陷是计算量过大,对图像的灰度变换敏感,尤其是非线性的光照变化。此外,对目标的旋转,变形以及遮挡也比较敏感[5]。因而基于像素点匹配的方法不适合实际场景中的应用,为克服这些缺点,可以利用图像的特征进行匹配,一方面图像的特征点比像素点要少,减少了匹配过程的计算量。另一方面局部特征点[6]的匹配度量值对位置的旋转、变形以及遮挡不是很敏感,可以大大提高匹配的精度。而且特征点的提取过程可以减少噪声的影响,对灰度变化,图像变形以及遮挡等有较好的适应能力。文中采用失配函数的思想,解决像素点计算量过大的缺陷,同时利用局部特征匹配的优势,提高图像匹配的精确度和执行速度。
1 尺度不变特征
尺度不变特征(Scale-Invariant Feature Transform,SIFT)是一种计算机视觉用于侦测与描述图片中局部特征的,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量等相关特征。
局部特征的描述与侦测可以帮助识别物体,SIFT特征是基于物体上一些局部外观的兴趣点,而与影像的大小和旋转无关。对于光线、噪声、些微视角改变的容忍度较高。基于这些特性,它们是高度显著而且相对容易撷取,在庞大的特征数据库中,容易辨识物体且鲜有误认。使用 SIFT特征描述对于部分物体遮蔽的侦测率也较高,甚至只需要3个以上的SIFT物体特征就能计算出位置与方位。在现今的计算机硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。
SIFT架构中的特征点是利用不同尺度下高斯滤波器(Gaussian Filters)进行卷积(Convolved),然后利用连续高斯模糊化差异,根据不同尺度下的高斯差(Difference of Gaussians)中最大最小值导出,其公式如下
D(x,y,σ)=L(x,y,kiσ)-L(x,y,kjσ) (1)
其中,L(x,y,kiσ)是在尺度kiσ的条件下,由原始图像I(x,y)与高斯模糊G(x,y,kσ)进行卷积
L(x,y,kσ)=G(x,y,kσ)*I(x,y) (2)
G(x,y,kσ)是尺度可变高斯函数
为减少噪声对特征点的影响,避免将边缘附近的点也误认为是特征点,采用Hessian[7]矩阵对极值点进行过滤,其公式如下
在得到特征点的尺度和位置信息后,为使特征点描述向量对旋转不变,需要为特征点分配角度信息。计算特征点梯度大小m(x,y)和角度θ(x,y)。
θ(x,y)=tan-1(G(x,y+1)-G(x,y-1))/G(G(x+1,y)-G(x-1,y)) (6)
最后利用特征点的梯度方向构建一个36 bin 的角度直方图,直方图的峰值代表局部梯度的主方向。以特征点为中心取16×16个像素的窗口,分成16个4×4的子块,在每个4×4的子块上计算0°,45°,90°,135°,180°,225°,270°,315°这8个方向的梯度大小和梯度方向直方图。因此,一个4×4的子块可以得到一个8方向描述符,则16个4×4的子块可以得到128个方向描述符,这个1×128的向量就定义为特征描述符向量。如图1所示分别在不同像素下提取的SIFT匹配特征,图1(a)是相同大小测试图像和匹配图像,分辨率较低,其特征点的个数只有5个,图1(b)特征点的个数为32个,图1(c)特征点个数为43个,图1(d)特征点个数为106个。
2 匹配函数
文中提出的匹配函数[8]是利用匹配本身的特征信息来决策出重新进行匹配的起始点。假设特征序列构成的描述符向量可以表示为一串由字母组成的字符串:P=abcabcacab,同样查找图像的特征序列也被表示成一串很长的字符串:S=…abacbdfe…,问题转变为在主串S中查找出是否具有P特性的匹配串。
令S=s0s1…sm-1是主串,要确定P是否在si开始处匹配。如果si≠a则接下来显然要用si-1与a比较。同理,若si=a且si+1≠b,则接下来要用si+1与a比较。若sisi+1=ab且si+2≠c,则有以下情形
S=· a b· · · ·
P=a b c a b c a c a b
其中,“?”表示S在该位置的值是多少无关紧要。第一个“?”表示si+2且si+2≠c,下一次应该用P的第一个字符直接与si+2比较,而不是与si+1比较,因为P的特征序列的第2个字符b与S中si+1相等,一定有si+1≠a。假定P的前4个特征字符和S匹配,但下一个特征字符失配,即si+4≠b
S=· a b c a · · · ·
P=a b c a b c a c a b
此时应该用si+4与P的第2个特征字符进行比较,等效于把P向右滑动,使它的子串对准S的一个子串,然后比较两个相等子串后面的第一个字符。可以得出,根据特征字符串P中的字符信息,以及匹配失效主串的字符位置,可以确定接下来应该用特征字符串中的哪个特征字符和主串的当前失配字符继续比较,而无需回去比较主串的较前位置字符。
特征串p=p0p1…pn-1的匹配函数定义为
由定义可得,如果部分匹配结果是si-j…si-1=p0p1…pj-1且si≠pj,则接下来如果j≠0,应该用si与pf(j-1)+1相比;如果j=0,用p0与si+1相比。
3 算法执行
图像匹配的过程是目标图像在测试图像中查找相似特征的目标。首先将目标图像分割,假设目标图像的大小是M×N,对图像长M进行m等分,对图像宽N进行n等分,这样目标图像就被分割成m×n个大小模块的子图像,每个子图像的大小为
分割好的目标图像分别计算SIFT局部特征,将计算完的特征按照图像字块的顺序从左到右从上到下排列成一行序列,其长度为m×n,目标图像就被表示成了一串具有SIFT特征的序列串,每个串的值代表了当前分块子图像的细节特征表述,如图3所示。
分块子图像的SIFT特征是1×128个特征向量描述符。它包含了该子图像的特征信息,由于每个子图像包含的细节不相同,保证了特征序列间没有太大的关联性,同时子图像内容之间是连续的,特征序列之间又保持着关联性。同样测试图像也按照上述方法进行分割,在测试图像匹配目标图像就转变到在测试图像特征序列里查找目标图像的特征序列,SIFT提取出的特征向量表述符之间的相似性采用欧氏距离的来确定,设置某一阈值σ,当特征向量之间的欧氏距离<σ时,判定这两个特征向量之间是相似或者相近的,当特征向量之间的欧氏距离>σ时,判定该特征向量之间不匹配,利用匹配函数重新定位新的匹配点,重新进行匹配,直至测试图片整个特征序列结束。
算法执行流程如下:
(1)初始化测试图片和目标图片,分别将其转化成灰度图像。
(2)测试图片和目标图片分别分割成具有相同大小的子图像,并按图像内容组织成一行序列。
(3)分别对上述一行序列进行SIFT特征提取,以向量的形式存储。
(4)计算测试图片的特征序列和目标图片的特征序列是否相近或相似,如果相似则继续匹配,否则转到(5)。
(5)利用匹配函数计算出在测试图片中失效匹配点重新匹配的位置,重复(4)。
(6)测试图像特征序列结束,输出匹配序列。
4 实验结果
本方法利用SIFT对目标分割子图像进行特征提取,将提取出的特征按照子图像分割的序列进行重构,目标图像和测试图像就转换成一行具有特征描述符的序列,对特征描述符进行匹配函数计算,进行匹配过程。图片大小直接影响到子图像的分割和特征序列的生成,同时提高各个子图像不同的特征序列之间的差异性,实验图片选取分辨率较高的1 500×1 500的测试图片和分辨率为300×300的目标图片,子图像的大小为15×15,这样测试图片就被划分为10 000个特征序列,目标图像被划分为400个特征序列。特征序列之间的相似度和相近程度用欧氏距离来确定,实验的过程中欧氏距离的误差阈值σ≤20,当欧氏距离在这个范围内,特征图片匹配。实验一方面从单张图片匹配结果进行讨论,另一方面从单张图片在模板匹配方法,序贯相似性匹配方法和SIFT本身匹配进行比较。图4显示的是匹配的结果,图4(b)中灰色区域为匹配的目标区域,如图5所示,黑色为匹配结果,从图中可以看出,除了目标区域被匹配,其他区域也被匹配,实验过程中为了降低匹配函数带来的负面影响,在最优情况下连续20个特征序列匹配,该20个特征序列就是 匹配的区域,匹配过程中产生的其他匹配是因为在该20个特征序列内,其相似程度的欧氏距离都小于阈值σ≤20,由于增大了连续匹配成功的特征序列的长度以及减小特征序列的相似度的阈值,使得匹配的结果较为合理。实验的目标区域特征为房屋建筑,具有棱角和直线的特征,在区域划分很小的情况下很难区分出来,导致结果在房屋建筑上匹配有误差。
匹配函数在目的上解决了重新匹配的新配点的计算,同时又是以局部特征为匹配,而不是以单纯的像素点来匹配,加大了匹配的速度,其匹配执行速度要高于模板匹配,序贯相似匹配方法和SIFT本身匹配进行比较,表1显示了在上述匹配方法执行速度。
5 结束语
文中主要利用提出的匹配函数来对图像匹配进行快速匹配,加快图像匹配的速度,关键点在于子图像的划分和局部特征提取,子图像的大小直接影响到局部特征的提取,子图像太小,局部细节丢失严重,特征序列之间的相关性丢失,匹配函数匹配重复计算率提高,子图像太大,特征序列之间相关性过大和宽度过短,匹配函数不起作用。局部特征提取才用SIFT特征提取,一方面SIFT特征在全局图像匹配中具有良好的匹配结果,在其基础上加快处理速度。因子图像的划分和相似度的阈值是根据仿真和先验只是初步估算,接下来的工作主要研究子图像大小的划分和局部特征的提取,从图像本身特征的角度自适应划分子图像的大小以及对其局部特征的提取。
参考文献
[1]LOWE D G.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision(S0920-5691),2004,60(2):91-110.
[2]MIKOLAJCZYK K,CORDELIA S.Scale&affine invariant interest point detectors[J].International Journal of Comput-er Vision(S0920-5691),2004,60(1):63-86.
[3]MIKOLAJCZYK K,TUYTELAARS T,SCHMID C,et al.A comparison of affine region detectors[J].International Jour-nal of Computer Vision(S0920-5691),2005,65(1):43-72.
[4]MIKOLAJCZYK K,CORDELIA S.A performance evaluation of local descriptors[J].IEEE Transactions on Pattern Anal-ysis and Machine Intelligence(S0162-8828),2005,27(10):1615-1630.
[5]ZHAO Zhenbing,WANG Rui.A method of infrared/visible image matching based on edge extraction[C].International Congress on Image and Signal Processing,2010:871-874.
[6]田金文,杨磊.基于局部分形特征的快速图像匹配方法[J].华中理工大学学报,1996,24(2):12-14.
[7]刘小军,杨杰.基于主成分分析的放射不变特征图像匹配方法[J].系统仿真学报,2004,20(4):977-980.
图像匹配中的性能优化 篇7
1 图像匹配技术的发展
基于图像灰度信息的匹配方法。常见的方法有归一化互相关匹配、模板匹配、投影匹配、快速傅立叶算法、图像不变矩匹配、序贯相似性检测匹配等。传统的视觉定位技术主要采用基于归一化灰度相关 (NGC) 理论的模板匹配技术。这种方法可靠性高、鲁棒性好, 对有噪声的图像影响比较小。如果对相关表面进行插值运算还可以获得亚象素的定位精度, 因而它常应用于工业视觉检测、机器视觉定位等领域中。利用灰度信息匹配方法的主要缺陷是计算量太大, 因为使用场合一般都有一定的速度要求, 所以这些方法很少被使用。现在有很多人已经提出了一些相关的快速算法, 如幅度排序相关算法, FFT相关算法和分层搜索的序列判断算法, 基于投影特征的匹配算法, 基于像素抽样的快速匹配算法。
基于图像特征的匹配方法是提取匹配图像中有关键的几个特征点进行匹配, 计算量少, 有针对性。常使用的特征包括边缘、区域、线的端点、线交叉点、区域中心、角点等, 其中边缘和区域边界最常用。Stefanols提出了一种基于零均值正则化互相关函数的有界部分匹配方法, 通过应用柯西一施瓦兹不等式得到相关函数新的下界, 从而减少了过程中繁琐的计算量。李强提出一种新的基于灰度的图像匹配方法。这种方法将图像分割为一定大小的方块, 计算每个块图像的总灰度值, 并根据它与相邻块灰度值的排序关系进行编码。然后通过各个块编码值的比较, 实现图像与模板的匹配。罗钟铱提出了一种基于灰度的快速图像匹配方法, 这种方法将小波变换与投影特征相结合, 并且在小波变换的每一层设置阂值来减少误匹配, 从而缩短了匹配时间。Corvil用聚类的方法得到了变换模型的平移和旋参数的初始值, 并进一步对特征点用最小距离方法进行匹配。Stockma采用闭域的中心作为控制点, 对具有集合变换关系的图像, 利用线交叉点和线段端点配, 并且用句类方法进行图像匹配。将轮廓检测与灰度局部统计特性结合起来提取特征点, 并队特征点进行初始匹配和精确匹配, 最后得到真实匹配。Danal采用多分辨率边缘检测得到不同分辨率下的图像边缘, 然后采用分层优化得到图像变换参数。
2 基于样本灰度和特征的图像匹配
2.1 图像匹配的定义与分类
在计算机视觉识别过程中, 常常需要把不同的传感器或是同一传感器在不同时间、不同成像条件下对同一景物获取的两幅或多幅图像, 进行比较找到该组图像中的共有景物, 或是根据已知模式到另一幅图中寻找相应的模式, 这就叫图像匹配。所谓数字图像匹配, 简单的说就是对数字图像, 寻找出将一幅图像到另一幅图像对应点的最佳变换。一般来说, 由于图像在不同时间、不同传感器、不同视角获得的成像条件不同, 因此即使是对同一物体, 在图像中所表现出来的几何特性、光学特性、空间位置都会有很大的不同, 如果考虑到噪声、干扰等影响会使图像发生很大差异, 图像匹配就是通过这些不同之处找到它们的相同点。
根据图像的维数可以分为2D/2D、2D/3D和3D/3D匹配;根据匹配过程中是否存在人机交互, 分为半自动和自动匹配。
2.2 图像匹配过程
图像匹配是一个多步骤的过程。总的来说, 大概可分为图像输入、图像预处理、特征提取、图像匹配、输出结果等。由于所采用的方法各异, 不同的匹配算法之间步骤也会有很大的不同, 但它们的大致过程是相同的。
2.3 图像处理
所谓数字图像处理, 就是利用数字计算机或其他数字硬件, 对从图像信息转换而来的电信号进行些数学运算, 以提高图像的实用性, 从而达到人们所要求的某些预期的结果。用计算机进行数字处可通过编制程序自由地对各种图像处理, 有很高的灵活性和再现性, 适用面宽。图像处理的重要分支“计算机视觉”, 为机器人提供了“视觉”。即通过计算机, 对安装在机器人部的摄像机输入的二维图像进行处理和目标识别, 可以确定物体的位置、方向、属性以及其他状态从而使机器人不但能完成普通的材料搬运、产品组装、部件装配、生产过程自动监测, 还可以在人不进入的环境里进行作业等等。
通常数字图像处理可以划分为以下几个主要部分:图像的采集、量化、存储、预处理、分割、特征提取、图像的分类和表示、图像识别、模型匹配、内性解释和理解等。本系统中涉及到的图像处理主包括预处理、特征提取、模型匹配三部分。
2.4 模板匹配
模板匹配是对图像边缘锐化及检测的方法, 它可以用于图像匹配.设模板图T大小为Mx*My, 匹配图S大小为从Nx*Ny, 匹配时模板图叠放在匹配图上平移, 模板图覆盖下的那块基准图中的搜索子图为Si, j。 (i, j) 为这块子图的左上角像点在匹配图S中的位置, 即搜索子图的特征点, 匹配时通过计算相关函数来找到与模板图尽可能相似的搜索子图以及它的坐标位置。直到模板图T和搜索子图完全一致。
从相似性度量, 我们选择一一映射法, 通过计算对应点的距离来衡量T和Si, j的相似程度:
或
把式 (1) 展开得到:
式 (3) 中, 右边第3项表示模板的总能量, 是一个与 (i, j) 无关的常数;第1项是模板覆盖下子图的能量, 它随 (i, j) 的位置缓慢地改变;第2项表示的是模板和子图的互相关系, 随 (i, j) 改变而改变, 当T和Si, j匹配时这项取值最大, 因此可以定义相关函数为:
当矢量T和Si, j之间的夹角为0时, 即当Si, j=k T时 (k为标量常数) , 有R (i, j) =1, 否则R (i, j) <1.显然R (i, j) 越大, 模板T和子图Si, j就越相似, (i, j) 也就是我们要搜索的匹配点。
2.5 基于投影特征的图像匹配方法
传统的模板匹配算法概念清晰、实现简单, 但是当模板比较大的时候计算量就变得十分庞大, 不能满足图像处理的实时性要求。基于投影特征的匹配算法是把二维的图像灰度值投影变换压缩成一维的数据, 再在一维数据的基础上进行匹配运算, 通过减少数据的维数来达到提高匹配速度的目的。投影的示意图如图1所示, 其中f (x, y) 为图像函数, 投影方向, t为其垂直方向。
则f (x, y) 沿着s的投影定义为:
当θ固定时, p (t, θ) 为t的函数, 是一个一维波形。不断在0~2л之间变换。可以得到在不同方向上的投影, 特别地在x, y轴上的投影为:
3 图像匹配的性能优化
3.1 基于信息冗余计算的图像匹配优化
对灰度图进行匹配最初思想就是用模板图像和待匹配图像上的搜索窗口之间的像素灰度值的差别, 来表示二者的相关性。假设待匹配图像为S (x, y) , 而模板图像为T (x, y) , 并且待匹配图像大小为M*N, 而模板图像大小为P*Q, 则在待匹配图像中共有 (M-P+1) * (N-Q+1) 个可能的匹配点存在, 每一个可能的匹配点对应一个P*Q的搜索窗口。所以匹配也可以看作是大小等于模板图像的搜索窗口在待匹配图像上按照某一顺序滑动, 每滑动一次就进行一次模板图像和搜索窗口之对应象素的相关度计算, 而相关度计算的次数直接影响匹配的效率。
当图片很大的时候, 模板匹配的方法在运行效率上会变得很慢。而基于投影特征的方法是先把模板图像和匹配图像的子图先进行压缩成行或列, 然后再进行行或列的匹配。要是能直接找到一行或一列来进行匹配的话, 就不用去压缩图像了, 也减少了计算量。下面就展开讨论。
在模板图像与待匹配图像的子图进行相关度计算的时候, 我们发现, 存在着大量的信息冗余点之间的计算。有些点的所提供给图像的信息是一致的, 可以不用重复计算。例如:
待匹配图像灰度矩阵S:
模板图像灰度矩阵T:
从上面我们可以看出, 我们只要根据模板矩阵T的第一行就可以精确找到匹配的位置 (2, 2) , 而不需要去计算另外两行的距离。
下面我们用公式理论地讨论下匹配图像与模板图像之间的相对信息:
设m:S中长度为n的序列数
i:a在S中出现的次数
序列子段a= (a1, a2, a3……an) 提供对S的信息量定义:
当i=1时, 信息量为100%, 说明序列是唯一的, 匹配精度100%。
当i=m时, 含量量为0%, 说明序列不唯一, 匹配精度最差。
序列子段对S和T提供的信息定义为:
当imf (a, S, T) =1时, 图像匹配的精度就达到100%。从上面的定义看, 我们容易知道, 要使得图像的匹配精度高点, 不仅要提高序列子段与模板图像的互信息, 也要提高序列子段与待匹配图像之间的互信息。
我们现在的目的是在一定的匹配精度要求下, 找到一个最短长度的序列。而这个序列能够标定出模板的位置。如果把所有的离散点组合的信息都计算过去, 这样难免会影响匹配效率。从现实中的图片中, 我们知道大多数图片不是规则。为了提高计算效率, 我们只提取信息高的一行或一列来进行匹配。它与模板的图像之间的互信息可以达到一个比较理想的值。但按计算公式去算信息量, 也是比较繁的。我们只要能比较出来哪个序列包含的信息大就行, 而没必要具体算出它的大小。
我们可以有选择的寻找能唯一表示模板图像的一些点, 去除冗余点, 这样大提高匹配的效率。我们希望找到的一组点可以唯一的确定模板图像, 而且这组点有一定的空间关系, 这样可以方便后面的搜索。所以这些点的组合要满足条件:
1) 可以反应模板图像的空间信息;
2) 对待匹配图像有一定的独特性。
从前面图像匹配的理论中我们介绍了很多有关特征提取的方法, 目的都是为了去除冗余点之的计算, 来提高效率。但这些特征点不易获得, 要通过一系列计算, 也花费了很多时间。我们希望直接在模板上找到简单的一组点, 一行或是一列。但是每一行或是每一列所提供给模板的信息是不同的。我们希望用所含信息量大的一行或列来对图像进匹配。那么如何度量这些行列所含的信息量的大小, 我们下面来讨论。
3.1.1 序列信息大小的度量
为了找度量两序列的大小的简单方法, 我们进行下一步讨论, 给出两组序列:
直观上看, 我们容易看出第二组序列所给提供的信息量要比第一级序列多。
第一组序列可能是某一区域中的某一序列, 而待匹配图像中这样的序列可能有很多, 所以作为特征序列显然不好。从中我们看出序列中连续的段越多, 信息含量就少。直观上, 信息量多说明它包含的区域多。我们把连续相同的子序列信息计为1。那么上面第一个序列的信息量就为1, 第二个序列的信息量为6。由此我们看到, 如果一个序列跨过的区域越多, 那么它的信息量就比较大。所包含的边缘点也多, 匹配成功的概率也大。为了保证匹配精度的稳定, 下面我们来讨论如何粗略地估计图像冗余信息。
3.1.2 图像冗余信息的粗略估计
当图片很小的时候, 图像匹配的冗余信息就很小。要详细地计算信息的冗余度是很难的, 它取决于图像的特征。下面我们给出一个粗略估计冗余信息的方法。
我们假设匹配图像的任意两个子序列是不同的, 容易知道当模板图像大到一定的程度的时候, 必然会出现图像匹配的信息冗余, 下面给出一个计算这个零界值:
设匹配图像S:sx*sy, 模板图像T:tx*ty
模板在匹配图像中的位置可能性有 (sx-tx+1) * (sy-ty+1) 种, 因此, 定义匹配图像相对模板图像的信息量为:
模板的信息量为:
从公式 (8) , 容易看出, Simf就是模板匹配时的临界值。如果Timf>Simf, 那么就出现信息冗余, 可以删除一些匹配点来进行匹配, 而保证匹配的精度不会发生大的变化。下面我们讨论下可以用提取行特征匹配的条件:
当Simf
当Simf
特别地, 当k=1的时候, 我们只要提取其中的一行来进行匹配。
3.1.3 基于信息冗余的图像匹配算法1) 步骤
检查模板的大小是否超过信息冗余的临界值并检验是否满足冗余条件
根据前面序列信息大小的度量方法提取信息量最大的行号或列号
根据行号和列号进行图像匹配
检验匹配结果中块的精度, 精度最高的作为最后的匹配块
2) 流程图
图2为流程图。
3) 界面设计
图3为设计界面。
3.1.4 结果比较与分析
1) 图4是匹配图像, 图5是在原图中选取的四个子图, 表1、2、3分别是基于信息冗余的匹配方法、传统模板匹配方法、基于投影特征的匹配方法对四个模板图的匹配精度对比。从表1、表2、表3我们看出三种图像的匹配精度都一样的, 这也正应验了前面提到的图像冗余现象。由此看出, 基于去冗余信息的匹配方法, 不仅在时间上有较高的突破, 在精度上也保持相对的稳定性。
2) 下面取不同大小的模板 (图6) , 来匹配分析。表4是三个算法对这三张不同大小的模板图进行匹配的时间计算。由表4我们明显看出对于相同的模块匹配的速度不一样。显然本文提出的算法匹配速度最快。从纵向分析, 由表4我们知道信息匹配的速度呈线性变化, 匹配的效率随模块的大小变化不是很大。而模板匹配在时间上就变化很大。从中我们容易看出, 模板特征匹配算法在遇到大的模板时计算量就变得很大, 效率很差。而投影匹配由于在投影的时候要对图像进行压缩, 所以也花费了很多时间, 它的效率是介在前面二个方法之间。容易知道, 如果模板只有一个象素, 那边这三种方法的匹配效率应该是一样的。但随着模板的不断变大, 本文方法的匹配效率就明显地高于其它两个匹配方法。
3) 三个匹配算法对图7的倒立的模板图像进行匹配。都呈现图7的结果。从理论上分析, 信息匹配方法和行投影匹配方法在遇到上下对称的图像的时候, 也会检测出来, 但结果是没找到, 说明最后进行精度检验的时候, 发现原子图与倒立的模板之时的精度不满足要求, 所以出现图8的结果。而模板匹配方法是找不到任何与倒过来的模板相匹配的子图。由此看来, 信息匹配和投影匹配可以找到与模板对称的子图, 而模板匹配就不能。
4 结论与展望
4.1 结论
通过以上一系列实验结果与分析, 本文提出的基于冗余信息计算的图像匹配方法, 效率确实比传统的模板匹配和投影匹配要好。而且在满足冗余条件下, 去冗余信息的匹配方法在精度上有很好的稳定性。特别是当模板相对匹配图像不断的变大的时候, 图像的冗余信息增多, 本文提出的方法比其它两个匹配方法更有明显优越性。去冗余信息法的行列匹配方法可以检验测出与模板图像对称的子图, 可以根据实际的需要在最后精度检验的时候来判断是否要去除掉。
4.2 展望