一种基于灰度相关的快速图像匹配算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种基于灰度相关的快速图像匹配算法
[摘要] 在传统的基于灰度相关的图像匹配算法基础上,提出了一种改进的快速图像匹配算法。该算法通过减少搜索子图和优化测度函数,大大降低了算法的时间复杂度和空间复杂度,在快速匹配的基础上,进行归一化的相关计算,既能保证匹配效果,又提高了匹配速率。实验结果表明,这是一个能提高效率的有效算法。
[关键字] 图像匹配测度函数归一化相关
[Abstract] An new algorithm of fast image matching based on gray correlation was put forward. It greatly decreased time and space complexity by reducing searching subimages and optimizing measure function. Normalized Correlation computing on the base of fast matching not only ensured matching effect ,but also improved matching speed.The result showed the algorithm was practical.
[Key words] image matching measure function Normalized Correlation
1 引言
在过去的几十年中,各种图像匹配算法相继出现,而且结合许多数学理论和方法,人们不断提出新的匹配方法。对于灰度图像的匹配分为基于图像的几何特征和基于图像灰度值两大类。前者适合于单一明确的目标检测且对目标的几何特征提取有较高的要求,在背景较复杂时不易目标提取,且计算量大,对系统的消耗很大。后者采用搜索子图遍历图像,并对搜索窗口和模板求归一化相关值,以此作为测度函数,衡量搜索窗口内图像与模板的匹配度,这种基于灰度相关的匹配特别适合复杂背景下多目标识别,匹配的准确性和适应性也很高。但是该算法有一个致命的弱点,就是计算量过于庞大,难以满足实时环境下目标识别的要求。为此人们提出了一种序贯相似性检测算法,减少计算的复杂度和搜索次数,大大降低了识别时间。本文提出的改进算法正是在序贯相似性算法基础上,进一步减少乘法和除法运算,缩减搜索量,在保证匹配率不影响的情况下,加快匹配速度。
2 传统图像匹配算法
图像匹配是图像识别的重要组成部分之一。在机器识别事物的过程中,常需要把不同传感器或同一传感器在不同时间、不同成像条件下对同一景物获取的两幅或多幅图像在空间上对准,或根据已知模式到另一幅图中寻找相应的模式,这称为匹配。
(a)搜索图(b)模板
图1 搜索图及模板
若在被搜索图中有待寻的目标,且同模板有一样的尺寸和方向,它的基本原则
就是通过相关函数的计算来找到它以及被搜索图的坐标位置。假设我们要在搜索区域中,寻找与模板图像相关程度最大的位置,可以通过模板匹配来计算两者的相关程度。在图1中模板b叠放在搜索图a上平移,模板覆盖下的部分记作子图,其中i,j是这块子图的左上角象点在S图中的坐标。从图1中可得出i,j的取值范围为:1≤i,j≤N-M+1(见图1)
比较模板T和子图的内容,衡量它们的匹配程度,可用下列两种测度:
展开式子,有
右边的第三项表示模板的总能量,是一个与(i,j)无关常数,第一项是模板覆盖下那块图像子图的能量,它随(i,j)位置变化而缓慢改变,第二项是子图像和模板的互相关函数,随(i,j)而改变。模板T和子图匹配时这一项的取值最大,因此可以用下列相关函数来反应匹配程度:
或者归一化为:
根据施瓦兹不等式可以知道上式中0 3 快速图像匹配算法 前面说过,用灰度相关法求图像匹配是对整幅图进行搜索,计算量相当大,且运算时间长,在不依赖硬件器件下,不利于实时信号的处理。因此人们提出一类叫序贯相似性检测的算法。设定一定的阈值减少搜索点的个数,同时在匹配运算中避免使用乘法,这样运算量大大降低,主要思想如下: 定义绝对误差值: 式中: (2)取一不变阈值Tk; (3) 在子图中随机选取像点,计算它同T中对应点的误差值ε,把这差值同其它点对应的差值累加起来,当累加r次误差超过Tk,则停止累加,并记下次数r,定义检测曲面为: (4)把I(i,j)值大的(i,j)点作为待定匹配点,因为在这点上需要很多次累加才使总误差超过Tk,如图2,图中给出A,B,C三参考点得到的误差累计增长曲线,A,B反映模板T不在匹配点上,这时增长很快,超出阈值,曲线C中增长很慢,很可能是一套准的候选点。 图2 Th=常数时的累计误差增长曲线 采用这种快速匹配算法,将处理时间和算法复杂度大幅度降低,对实时性有一定改善,但是我们通过实验结果测试,发现其对一个32*32模板,在一幅100*100的图像上进行匹配,需要大约46ms的时间,仍然满足不了高实时性的要求。 4改进的快速匹配算法 在上述快速匹配算法中,对每一个搜索子图,都要计算其灰度均值,由于算法中有除法运算,占用了总耗时的大部分时间。改进算法充分考虑计算速率,减少在非匹配点的时间损耗,尽量将搜索次数减少,使用新的测度函数,减少除法和乘法运算,并设置可变阈值,尽量使非匹配点的快速到达阈值。方法如下: (1)对于(N-M+1)个参考点的选用顺序可以不逐点进行,即模板并不一定对每点都平移到,例如可以用粗细结合的均匀搜索,即先每隔m点搜索一下匹配好坏,再在有极大值周围的局部范围对各参考点位置求匹配,这样很多非匹配的搜索子图在粗搜索过程被过滤掉,算法周期大大缩短; (2)选取为新的测度函数; (3)不选定固定阈值Tk,而改用单调增长的阈值序列,使得非匹配点在更少的匹配过程中就达到阈值而被丢弃,真匹配点则需更多次误差累计才能达到阈值。 针对上述几条措施,采用粗精结合的搜索方式,在行列方向上每隔3个点 搜索一次,再在当前最匹配点的邻域搜索,得到最匹配点。算法主要流程如图3所示。 图3 快速匹配算法流程图 5 实验结果 在WinXP下,选取了一幅100×100的Lena图,分别选用模板32×16和32×32,用快速匹配算法和本文提到的匹配算法执行时间对比如表1所示,处理效果如图4所示。 表1 匹配算法执行时间对比 算法模板32×32(ms) 模板32×16(ms) 快速匹配46 31 改进快速匹配16 15 在算法处理过程中,观察CPU的使用情况,改进匹配算法占CPU使用的5%左