一种图像局部特征快速匹配算法(图像特征点匹配算法)
moboyou 2025-05-10 22:37 59 浏览
摘 要: 在图像处理和机器视觉领域,SIFT是目前被广泛应用的一种基于局部特征的图像匹配算法。针对SIFT算法匹配速度较慢和常常存在错误匹配对的问题,本文提出在匹配过程中采用角度相似性分析替代传统的欧式距离分析法,由此提高匹配速度,然后通过RANSAC一致性筛选删除错误匹配对,最后通过实验验证了新算法的有效性。新算法结构清晰,计算简便,易于硬件实现。
0 引言
图像匹配是指通过图像分析方法在两幅或者多幅图像中寻找同名点的过程[1]。图像匹配是机器视觉和图像处理领域的核心问题之一,是目标识别技术的重要研究内容,广泛应用于遥感影像处理、目标识别与跟踪、医学图像处理和图像制导技术等领域。目前,常用的图像匹配算法主要有基于区域统计性特征的图像匹配和基于局部特征的匹配两大类[2],而由于图像场景的复杂性和局部特征具有更好的鲁棒性,基于局部特征的图像匹配算法日益成为该领域研究的主流方向[3]。
迄今为止,SIFT(Scale Invariant Feature Transform)算法[4]被公认为具有很好的鲁棒性,是最适合在复杂场景中应用的一种局部特征匹配算法,已成为目前最主流的图像匹配算法之一[5]。根据SIFT算法的原理,SIFT算法能够很好地抵御图像尺度变换、旋转变换和仿射变换,当图像存在一定程度的噪声时,也能够实现图像匹配,因此该算法常常被用于一些复杂场景的图像匹配问题。但是,SIFT需要生成很高维度的描述向量,匹配时利用欧式空间距离法分析描述向量的相似性,运算量大,很大程度上限制了该算法在实际硬件系统中的应用。目前,针对SIFT算法简化运算的研究主要聚焦在如何简化描述向量方面,如PCA-SIFT[6],而对描述向量匹配过程中运算量大的问题研究较少。针对该问题,本文以角度相似性分析为基本思路,提出了一种易于实现的图像局部特征快速匹配算法,提升算法性能。
1 SIFT匹配算法原理
SIFT匹配算法主要包括特征点搜索、描述向量生成和特征点匹配三个基本步骤。
1.1 特征点搜索
SIFT特征点搜索也称特征点检测,主要分为三个基本步骤:尺度空间生成、空间邻域极大值搜索和特征点精确定位[4]。
(1)尺度空间生成
目前,已经有文献用数学方法证明了高斯核是产生信号多尺度空间的惟一有效核[7],由高斯核生成的尺度空间满足尺度、平移以及旋转不变性等。对于二维图像I(x,y),其尺度空间L(x,y)的定义为:
(2)空间邻域极大值搜索
Lowe在文献[4]中提出,在某个尺度上搜索图像斑点,可以先在两个相邻的高斯尺度空间图像之间做减运算,求得一个DoG(Difference of Gaussian)响应值图像D(x,y),D(x,y)的公式为:
其中,k为两个相邻尺度倍数的常数。
在实际操作中,DoG是通过建立图像的尺度空间金字塔来实现的[8]。在尺度空间金字塔中,每一个像素点和其26个邻域(包含同尺度相邻点和上下相邻尺度的相邻点共26点)进行比较,实现空间范畴的局部极大值搜索,得到的所有极大值点构成的集合即为特征点的备选集合。建立备选集合时,可去除对比度较低的极值点,由此对集合进行初步提纯。
(3)特征点精确定位
特征点精确定位时,通过三维二次函数来拟合特征点,由此可以获得特征点的精确位置和尺度值,此外,为了确保所提取特征点的稳定性,基于Hessian矩阵计算主曲率,去除在边缘上极值点。
1.2 描述向量生成
SIFT描述向量生成主要包括求取特征点主方向和特征点描述两个基本步骤。
(1)求取特征点主方向
对于某个特征点,首先在其尺度图像中设定一定范围为邻域区域,在邻域中计算每个点的梯度M(x,y)和方向(x,y),其表达式分别为:
统计邻域区域内的梯度及方向数据,构建直方图,直方图中的主峰值则为特征点的主方向,若在直方图中存在一个次峰值,其能量相当于主峰值80%以上,则将这个方向确定为特征点的辅方向[9]。至此,特征点有了四个参数信息分别为特征点坐标、尺度信息、方向信息。确定主方向和辅方向的作用是使特征点具有旋转不变性。
(2)描述向量生成
在对每个特征点进行描述时,首先将尺度图像坐标轴旋转至主方向上,在特征点邻域范围划定4×4共16个子区域,在每个子区域,将0~360°全方向划分为8个子方向(每个子方向宽度为45°),统计各子方向梯度强度,构建8维子区域描述向量。对于16个子区域,则最终生成4×4×8=128维描述向量,描述向量也称描述子或特征向量。
1.3 特征点匹配
特征点匹配的目的是在原图像和待匹配图像中寻找相似程度高的特征点对,通常特征点在图像间都是一对一关系,因此点对匹配时仅考虑相似度最近邻情况。
目前的匹配方法主要采用欧式距离分析法[4],对于k维向量Xi和Xj,其欧式距离公式为:
为删除一些易混淆点对,采用最优与次优比值的方法,对于欧式距离来说,即为最近邻与次近邻比值的方法。在运算中,若最近邻与次近邻比值小于预设的阈值,则认定为正确匹配对,认定关系式可表述为:
式(7)中,Min{Dis}为求得的最近邻,secMin{Dis}为求得的次近邻,TDis表示最近邻与次近邻的比值阈值。若式(7)成立,则认定最近邻相对应的特征点对为正确匹配对。通常,TDis在0.6~0.75之间取值。
欧式距离分析法能够有效实现特征点对的相似性筛选,物理意义明确,但该方法运算速度慢,制约了SIFT算法的应用范围。
2 改进的匹配算法
为了提升匹配速度和进一步筛选匹配对,本文提出角度相似性分析和随机抽样一致性(Random Sample Consensus,RANSAC)筛选[10]相结合的方法,简化匹配运算并删除不符合空间一致性关系的错误匹配对。该算法以SIFT描述向量为处理对象,包括描述向量预匹配和匹配点对筛选两个基本步骤。
2.1 描述向量预匹配
描述向量预匹配以角度相似性作为匹配准则,该方法也可称为角度相似性匹配。角度相似性分析的原理:对于两个单位向量,其夹角与弧长正相关,夹角很小时,弧长与弦长近似相等,弦长即为欧式距离。因此,夹角大小与欧式距离正相关,可以利用夹角的大小来判断单位向量之间的相似程度。对于待匹配的k维单位向量,计算向量间的空间夹角,夹角越小,则这两个描述向量越相似。
k维空间中的向量夹角?椎ij计算公式为:
对于SIFT描述向量,描述向量生成过程中已经进行过归一化运算,因此,式(8)可简化为:
因(i,j)较大时不符合相似性准则,因此,首先舍弃(i,j)数值较大的情况。然后,利用最优与次优的比值大小来认定是否为正确匹配对,其认定关系可表述为:
式(10)中,Min表示最小夹角(即最优夹角),secMin表示次小夹角(即次优夹角),T为最小夹角与次小夹角比值阈值,当式(10)成立时,最小夹角对应的匹配对即被认定为备选匹配对,经过遍历运算后,建立备选匹配对集合。需要注意根据角度相似性分析原理,作为无量纲的比值阈值TDis和T?椎应具有相同的取值区间,即T同样可在0.6~0.75之间取值。
为了进一步减化运算,在实际算法设计中,计算向量之间夹角余弦值后仅保留最大和次大值,然后仅对最大和次大值做反余弦计算求取最小和次小角度值。
2.2 匹配点对筛选
由于图像场景的复杂性,不能避免在备选匹配对集合中有错误匹配对存在的情况。针对该问题,采用RANSAC算法[10]对特征点对进一步筛选,保证匹配点对空间关系的一致性。
RANSAC算法原理:认为正确的匹配对在图像中满足空间关系的一致性,因此,可以在备选集合中不断地随机性抽取匹配点对,利用抽取的匹配点对建立图像间空间投影矩阵,然后通过空间关系的一致性度量验证该空间投影关系的正确性,多次抽取和计算后,获得的一致性最强的空间投影矩阵即为实际的空间投影矩阵,由此可以删除备选集合中的错误匹配对。
RANSAC算法的基本步骤包括[10]:
(1)从备选集合中随机抽取4对初始匹配点对(每个图像平面上的4个点须满足任意3点不共线),计算两平面之间的线性投影矩阵的参数。
(2)对于未被抽取到的特征点,通过步骤(1)中计算得到的投影矩阵计算其在另一平面中的坐标值,进而获得该坐标值与它预匹配的点之间的距离,若该距离很小,则该匹配点对认定为内点,否则认定为外点,记录内、外点数量。
(3)多次重复步骤(1)、(2)操作,选择内点数量最多时对应的投影矩阵参数作为正确的投影矩阵参数。
(4)对于被确认的投影矩阵,其相应的内点即被认定为正确的匹配点对。
经过上述筛选后,不满足空间一致性关系的匹配点对将被成功删除。
2.3 算法流程
本文算法的实现流程如图1所示。
新算法结构清晰、运算简便,易于向硬件系统移植。在实际应用中,可采用典型的DSP+FPGA双核心结构实现硬件设计。
3 算法验证与分析
将图2中原始图像SCENE(分辨率:384×512)和目标图像BASMATI(分辨率:175×265)作为待匹配图像,采用本文算法进行实验。实验环境:Intel Core i3-2 350 M 2.30 GHz CPU、4 GB(3.07 GB可用)内存、Win7操作系统PC机,Matlab7.6。从图2可以看出,原始图像对应区域和目标图像之间存在尺度、旋转和仿射变换。
实验中,首先对SCENE图像和BASMATI图像进行SIFT特征点搜索,然后,分别用欧式距离分析和本文的角度相似性分析进行预匹配,当阈值TDis和T取0.65时,输出结果如图3和图4所示。
在描述向量预匹配过程,欧式空间匹配法耗时6.31 s,而角度相似性匹配法耗时4.19 s,运算速度明显提升。图3中,预匹配对总数量和正确匹配对数量分别为39和37,图4中,预匹配对总数量和正确匹配对数量分别为41和39。为了更好地说明算法的有效性,将比值阈值在0.6~0.75间取值,预匹配正确率统计结果如表1所示。
由于特征点匹配以遍历搜索为基本流程,因此比值阈值的大小不影响匹配耗时。经过预匹配后,再利用RANSAC空间一致性筛选删除错误匹配对,获得的最终匹配结果(T=0.65)如图5所示。
由图5可知,错误匹配对被RANSAC筛选成功删除。实验表明,当T在(0.6,0.75)范围内取值时,RANSAC同样能有效删除错误匹配对。
分析上述实验可知,本文算法的预匹配速度较传统方法明显提升,预匹配点对总数量和正确率均优于传统方法,引入RANSAC筛选后,错误的匹配对被成功删除。上述实验验证了本文算法的有效性。
4 结论
针对SIFT匹配运算速度较慢和存在错误匹配对的问题,本文提出采用角度相似性分析代替传统的欧式距离分析,引入RANSAC筛选删除不满足空间一致性关系的匹配对。实验结果表明,新算法计算速度和预匹配正确率均优于传统方法,且能够有效删除错误匹配对。后续的研究将重点着眼于如何进一步提升算法运算速度和算法的环境适应性等问题。
参考文献
[1] ARICAN Z,FROSSARD P.Scale-invariant features and polar descriptors in omnidirectional imaging[J].IEEE Transaction on Image Processing,2012,21(5):2412-2423.
[2] 尧思远,王晓明,左帅.基于SURF的特征点快速匹配算法[J].激光与红外,2014,44(3):347-350.
[3] 余先川,吕中华,胡丹.遥感图像配准技术综述[J].光学精密工程,2013,21(11):2960-2972.
[4] LOWE D G.Distinctive image feature from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[5] 杨天天,鲁云萍,张为华.一种基于GPGPU的SIFT加速
算法[J].电子技术应用,2015,41(1):149-152,160.
[6] KE Y,SUKTHANKAR R.PCA-SIFT:A more distinctive representation for local image descriptors[C].Proceedings of IEEE International Conference on Computer Vision and Pattern Recognition,Washington DC,USA:CVPR,2004(2):506-513.
[7] 白廷柱,侯喜报.基于SIFT算子的图像匹配算法研究[J].北京理工大学学报,2013,33(6):622-627.
[8] 杨娜娜,哈力旦·阿布都热依木,伊力亚尔·达吾提.基于SIFT图像配准的维吾尔语文字识别方法[J].传感器与微系统,2014,33(3):40-43.
[9] 王程冬,程筱胜,崔海华,等.SIFT算法在点云配准中的应用[J].传感器与微系统,2012,31(2):149-152.
[10] LI B,MING D,YAN W,et al.Image matching based on two-column histogram hashing and improved RANSAC[J].IEEE Geosciences and Remote Sensing Letters,2014,11(8):1433-1437.
相关推荐
- Excel技巧:SHEETSNA函数一键提取所有工作表名称批量生产目录
 - 
        
首先介绍一下此函数:SHEETSNAME函数用于获取工作表的名称,有三个可选参数。语法:=SHEETSNAME([参照区域],[结果方向],[工作表范围])(参照区域,可选。给出参照,只返回参照单元格...
 
- Excel HOUR函数:“小时”提取器_excel+hour函数提取器怎么用
 - 
        
一、函数概述HOUR函数是Excel中用于提取时间值小时部分的日期时间函数,返回0(12:00AM)到23(11:00PM)之间的整数。该函数在时间数据分析、考勤统计、日程安排等场景中应用广泛。语...
 
- Filter+Search信息管理不再难|多条件|模糊查找|Excel函数应用
 - 
        
原创版权所有介绍一个信息管理系统,要求可以实现:多条件、模糊查找,手动输入的内容能去空格。先看效果,如下图动画演示这样的一个效果要怎样实现呢?本文所用函数有Filter和Search。先用filter...
 
- FILTER函数介绍及经典用法12:FILTER+切片器的应用
 - 
        
EXCEL函数技巧:FILTER经典用法12。FILTER+切片器制作筛选按钮。FILTER的函数的经典用法12是用FILTER的函数和切片器制作一个筛选按钮。像左边的原始数据,右边想要制作一...
 
- office办公应用网站推荐_office办公软件大全
 - 
        
以下是针对Office办公应用(Word/Excel/PPT等)的免费学习网站推荐,涵盖官方教程、综合平台及垂直领域资源,适合不同学习需求:一、官方权威资源1.微软Office官方培训...
 
- WPS/Excel职场办公最常用的60个函数大全(含卡片),效率翻倍!
 - 
        
办公最常用的60个函数大全:从入门到精通,效率翻倍!在职场中,WPS/Excel几乎是每个人都离不开的工具,而函数则是其灵魂。掌握常用的函数,不仅能大幅提升工作效率,还能让你在数据处理、报表分析、自动...
 
- 收藏|查找神器Xlookup全集|一篇就够|Excel函数|图解教程
 - 
        
原创版权所有全程图解,方便阅读,内容比较多,请先收藏!Xlookup是Vlookup的升级函数,解决了Vlookup的所有缺点,可以完全取代Vlookup,学完本文后你将可以应对所有的查找难题,内容...
 
- 批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数
 - 
        
批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数在电商运营、物流对账等工作中,经常需要统计快递“揽收到签收”的耗时——比如判断某快递公司是否符合“3天内送达”的服务承...
 
- Excel函数公式教程(490个实例详解)
 - 
        
Excel函数公式教程(490个实例详解)管理层的财务人员为什么那么厉害?就是因为他们精通excel技能!财务人员在日常工作中,经常会用到Excel财务函数公式,比如财务报表分析、工资核算、库存管理等...
 
- Excel(WPS表格)Tocol函数应用技巧案例解读,建议收藏备用!
 - 
        
工作中,经常需要从多个单元格区域中提取唯一值,如体育赛事报名信息中提取唯一的参赛者信息等,此时如果复制粘贴然后去重,效率就会很低。如果能合理利用Tocol函数,将会极大地提高工作效率。一、功能及语法结...
 
- Excel中的SCAN函数公式,把计算过程理清,你就会了
 - 
        
Excel新版本里面,除了出现非常好用的xlookup,Filter公式之外,还更新一批自定义函数,可以像写代码一样写公式其中SCAN函数公式,也非常强大,它是一个循环函数,今天来了解这个函数公式的计...
 
- Excel(WPS表格)中多列去重就用Tocol+Unique组合函数,简单高效
 - 
        
在数据的分析和处理中,“去重”一直是绕不开的话题,如果单列去重,可以使用Unique函数完成,如果多列去重,如下图:从数据信息中可以看到,每位参赛者参加了多项运动,如果想知道去重后的参赛者有多少人,该...
 
- Excel(WPS表格)函数Groupby,聚合统计,快速提高效率!
 - 
        
在前期的内容中,我们讲了很多的统计函数,如Sum系列、Average系列、Count系列、Rank系列等等……但如果用一个函数实现类似数据透视表的功能,就必须用Groupby函数,按指定字段进行聚合汇...
 
- Excel新版本,IFS函数公式,太强大了!
 - 
        
我们举一个工作实例,现在需要计算业务员的奖励数据,右边是公司的奖励标准:在新版本的函数公式出来之前,我们需要使用IF函数公式来解决1、IF函数公式IF函数公式由三个参数组成,IF(判断条件,对的时候返...
 
- Excel不用函数公式数据透视表,1秒完成多列项目汇总统计
 - 
        
如何将这里的多组数据进行汇总统计?每组数据当中一列是不同菜品,另一列就是该菜品的销售数量。如何进行汇总统计得到所有的菜品销售数量的求和、技术、平均、最大、最小值等数据?不用函数公式和数据透视表,一秒就...
 
- 一周热门
 
- 最近发表
 - 
- Excel技巧:SHEETSNA函数一键提取所有工作表名称批量生产目录
 - Excel HOUR函数:“小时”提取器_excel+hour函数提取器怎么用
 - Filter+Search信息管理不再难|多条件|模糊查找|Excel函数应用
 - FILTER函数介绍及经典用法12:FILTER+切片器的应用
 - office办公应用网站推荐_office办公软件大全
 - WPS/Excel职场办公最常用的60个函数大全(含卡片),效率翻倍!
 - 收藏|查找神器Xlookup全集|一篇就够|Excel函数|图解教程
 - 批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数
 - Excel函数公式教程(490个实例详解)
 - Excel(WPS表格)Tocol函数应用技巧案例解读,建议收藏备用!
 
 
- 标签列表
 - 
- 外键约束 oracle (36)
 - oracle的row number (32)
 - 唯一索引 oracle (34)
 - oracle in 表变量 (28)
 - oracle导出dmp导出 (28)
 - 多线程的创建方式 (29)
 - 多线程 python (30)
 - java多线程并发处理 (32)
 - 宏程序代码一览表 (35)
 - c++需要学多久 (25)
 - css class选择器用法 (25)
 - css样式引入 (30)
 - css教程文字移动 (33)
 - php简单源码 (36)
 - php个人中心源码 (25)
 - php小说爬取源码 (23)
 - 云电脑app源码 (22)
 - html画折线图 (24)
 - docker好玩的应用 (28)
 - linux有没有pe工具 (34)
 - 可以上传视频的网站源码 (25)
 - 随机函数如何生成小数点数字 (31)
 - 随机函数excel公式总和不变30个数据随机 (33)
 - 所有excel函数公式大全讲解 (22)
 - 有动图演示excel函数公式大全讲解 (32)
 
 
