基于ASIFT算法特征匹配的研究
moboyou 2025-04-23 14:11 35 浏览
李银1,2,何强1,2,乔龙辉1,2
(1.重庆邮电大学,重庆400065;2.重庆信科设计有限公司,重庆400065)
:针对SIFT算法对大角度视角变化下特征提取鲁棒性不强的弱点,引入了一种完全仿射不变的图像特征匹配算法—ASIFT。ASIFT算法不仅继承了SIFT算法的尺度、旋转和平移的不变性,并且在此基础上增加了两个空间特征描述参数:经度和纬度,从而定义出度量仿射形变的两个参量绝对倾斜t(absolute tilt)和过渡倾斜τ(transition tilt),模拟相机光轴变化,实现完全仿射不变。一种双分辨率(two-resolution)加速方法的提出,使ASIFT算法的复杂度约为SIFT的2倍。
:特征匹配;仿射不变;过渡倾斜;绝对倾斜;双分辨率;SIFT;ASIFT
图像匹配旨在建立出现在不同的图像相似对象之间的对应关系,已在许多计算机视觉和图像处理方面得到应用,例如图像识别、三维重建、目标跟踪、机器人定位等。目前国际上最先进的图像匹配算法通常由检测器和描述符两部分组成,根据不变特性可以分为:平移和旋转不变特性的Harris角点检测器[1] ;旋转和尺度不变的HarrisLaplace、HessianLaplace和DoG(差分高斯)区域检测器[23];仿射性不变的基于双极线的区域检测器MSER[4]。这些方法通过归一化局部区域、部分区域或者水平线修补程序可以形成仿射变换,当归一化这些参量使其成为标准对象时,仿射变换的效果就会消除。LOWE D G提出了尺度不变特征转换SIFT[56],是完全尺度不变的唯一方法,由于SIFT没有覆盖整个仿射空间,它的性能在视角变化的情况下迅速降低,因而不具有完全仿射性。
ASIFT算法建立模型增加了经度和纬度两个参数,模拟相机轴方向和尺度变化,并归一化旋转和平移,实现了完全仿射不变,但相应的复杂度会大大增加。它是一种双分辨率方法,具有单一的SIFT算法大约两倍的复杂性。经过实验发现,ASIFT算法能够很好地处理视角变化的图像仿射特征匹配,验证了仿射不变性。因而ASIFT算法匹配在各种复杂情况下的图像识别领域都有广阔的应用前景。
1.1仿射相机模型
通过仿射平面变换能模拟拍摄视角变化所产生的图像形变,这种模型提供对象的边界是分段光滑的,因此,一种摄像机运动图像变形模型[7]表示如下:
μ(ax+by+e,cx+dy+f)
其中,A=ab
cd为线性平面的正行列式,可以分解为:
图1仿射模拟记A=λR(ψ)TtR(),其中λ>0,λ是A的决定因子,R(ψ)表示平面旋转ψ角, Tt(t>1)指倾斜。图1是对式(1)的摄像机运动解释:和θ=arccos1t是指相机的视角,ψ参数化相机旋转。在这个仿射模型中,相机远离平面物体,从正面开始,平行于对象平面的相机运动会引起图像旋转,具有法线和光轴的平面与固定的垂直平面形成的夹角称为经度;光轴与平面u的法线之间夹角θ称为纬度;定义倾斜t=1cosθ,相机可绕其光轴旋转(旋转参数ψ),相机通过变焦参数λ前后移动。
1.2视角变换下的仿射模型
式(1)定义了绝对倾斜(absolute tilt)t,它表示相机从正面到斜视图的图像形变率,用来量化图像之间的倾斜量。图2绝对倾斜示例图图2、图3描述了绝对倾斜与过渡倾斜的不同。
图3过渡倾斜示例图图2中相机在移动的过程中保持过渡倾斜与绝对倾斜同步,即经度不变=′,纬度θ=30°,θ′=60°,绝对倾斜t=1cosθ=23,t′=1cosθ′=2,过渡倾斜τ(μ1,μ2)=t1′t2=3。
图3表示在正交方向上倾斜:=′+90°,μ1与μ2之间的过渡倾斜可表示为:τ(μ1,μ2)=t′t,取θ=60°,θ′=75.3°,t=2,t′=4,τ(μ1,μ2)=t′t=8,可见两幅图的正常绝对倾斜会产生较大的过渡倾斜。因此在实际应用中绝对倾斜t只能取到6,对应的纬度角θ≈80.5° ,过渡倾斜τ可达到36。
2ASIFT算法
SIFT算法思想是结合模拟和归一化。SIFT检测器对目标图像归一化旋转、平移,模拟尺度缩放,因此SIFT是唯一的完全的尺度不变方法。ASIFT算法在SIFT的基础上进行了改进,模拟尺度、经度和纬度3个参数,并且归一化旋转和平移,由此完成了对整个仿射空间的模拟,实现仿射不变性,相关证明参见参考文献[8]。图4形象地表示了对ASIFT算法的概述,其中正方形A、B代表匹配图像,模拟产生图像由周围的平行四边形表示,从而完成了模拟因相机光轴方向变化所产生的形变。由于ASIFT特征提取过程复杂,计算量大,一种双分辨率(two-resolution)的提出将进一步减少SIFT算法的复杂性,大约是SIFT的2倍。
2.1ASIFT算法过程
(1)经度纬度采样:由相机光轴产生的形变取决于两个参数:经度和纬度θ,过渡倾斜τ=1cosθ,因此纬度可以按照等比数列t=1,a,a2…an进行采样,考虑到精确性和稀疏性,a=2为最优选择, n可以取到5甚至更高,这样过渡倾斜τ可以达到36甚至更高;经度对每个倾斜取等差数列0,bt,2bt…kbt,取b=72°使数列的最后一个整数kbt<180°。
(2)确定模拟图像:由(1)中采样得到的和tt=1cosθ,模拟图像表示如下:
其中ω为输入图像,以每组和θ采样通过式(2)得到一组模拟图。
(3)对模拟图像进行SIFT算法特征检测和匹配。
2.2双分辨率加速
双分辨率加速(Acceleration with Two Resolution )方法[89]是通过对低分辨率目标图像进行2.1节描述的ASIFT算法,该过程首先对输入图像进行低分辨率处理,然后模拟仿射变化,最后对得到的模拟图像应用SIFT算法。
双分辨率方法总结如下:
(1)由一个K×K 采样因子对查询图像μ和搜索图像υ进行二次采样:μ′=SKGKμ和υ′=SKGKυ,其中SK是二次采样抽样算子,GK是一个抗混叠高斯离散滤波器;
(2)低分辨率下ASIFT算法:对查询图像μ和搜索图像υ应用2.1节中所述的ASIFT算法;
(3)确定模拟图μ′和υ′之间最多匹配对的M种仿射变换;
(4)高分辨率ASIFT算法:对原始图像μ和υ使用ASIFT算法,而只模拟确定的M种仿射变换。
2.3ASIFT的复杂度
评估ASIFT的复杂度归结为由低分辨率下ASIFT方法模拟图像区域[10]。图像局部特征的计算量与输入图像面积成正比,ASIFT模拟的全部图像区域也正比于倾斜t:(180/72)t=2.5t,取a=,n=6,可得:|Γt|=|{1,,2,2,4,4}|=6,模拟图像区域可达到6×2.5=15倍输入图像;通过采用K×K=3×3二次采样,则低分辨率ASIFT算法的模拟图像区域是:倍输入图像,因此模拟图像会产生原图1.5倍的特征点,复杂度就是SIFT的1.52=2.25倍。这种二次采样的方法大大降低了ASIFT算法的复杂性,把此方法应用到输入的两个匹配图像上,整体的复杂度就只相当于SIFT算法的2倍了。
3ASIFT算法实验分析
实验在Intel i5 CUP,2 GB内存MATLAB仿真平台上完成,通过仿真对ASIFT算法与SIFT算法匹配效果进行对比,采用匹配对数目作为比较标准,实验图形分辨率为500×670。
(1)绝对倾斜实验:对绝对倾斜进行测试,改变相机光轴与正面视图的角度,分别取纬度θ=30°、75°进行实验仿真,可分别得如图4(a)、(b)匹配图。
(2)过渡倾斜实验:对过渡倾斜τ进行测试,取t=4,分别取经度角φ=30°、80°进行实验仿真,分别得到如图5所示的匹配图(a)、(b)。
实验表明ASIFT算法扩展了SIFT算法的装置,通过仿射模型提出的经度和纬度两个重要参数,模拟光轴变化,充分考虑了实际目标发生的变化,相对于SIFT算法能够检测出更多的匹配对。实验对比图所示SIFT算法的过渡倾斜只能模拟到2,而ASIFT算法可取到16(理论上可达36),有效地量化了两幅图像因角度变化引起的形变。可以看出ASIFT算法不仅继承了SIFT算法完全尺度不变的特性,而且实现了完全仿射不变,保证了特征匹配的准确性、完备性。
4结论
本文对ASIFT算法的研究分析可以看出,ASIFT改进了目前几种先进的特征匹配算法的不足,鲁棒性、稳定性和适应性最好,在实际的目标识别、跟踪等很多方面都有很强的适用性。针对模拟图像引起复杂度增加的问题,提出的双分辨率法有效地降低了ASIFT的复杂度,提高了算法的性能。下一步工作是将该算法运用到实际中,结合实际的需求进一步改善ASIFT算法的性能。
参考文献
[1] 张波,王天召,李科,等.一种改进的Harris特征点匹配算法[J].计算机系统应用,2013,22(7):100103.
[2] MIKOLAJCZYK K, SCHMID.An affine inva giant interest point detector[C].The Seventh European Conference on Computer Vision ,Springerverlag,London,2002,12814.
[3] MIKOLAJCZYK K,SCHMID C.Scale and affine invariant interest point detectors[J].International Journal of Computer.Vision, 2004(60) :6386.
[4] MATAS J,CHUM O,URBAN M,et al.Robust widebaseline stereo from maximally stable extremal regions[J].Image and Vision Computing ,2004,22(10):761767.
相关推荐
- php宝塔搭建免登录积分商城系统php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的免登录积分商城系统php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下,部...
- 宝塔docker搭建一键部署DooTask开源任务管理工具php源码pro版
-
大家好啊,我是测评君,欢迎来到web测评,本期给大家分享一下怎么在宝塔使用docker管理器一键部署DooTask开源项目任务管理工具源码(pro版),这是一个朋友分享推荐的,让我录制一期宝塔搭建教程...
- 在线考试教学系统平台源码/视频教学系统/在线考试系统PHP源码
-
在线考试教学系统平台系统源码,视频教学系统PHP源码,在线考试系统PHP源码。安装说明:1、部署好网站环境:php5.6+mysql2、将源码传至网站根目录,php源码用二进制上传,或者上传压缩包在空...
- php宝塔搭建实战宏仔杂货商城小店系统php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的宏仔杂货商城小店系统源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下,部署方...
- 分析和解析PHP代码的7大工具
-
PHP已成为时下最热门的编程语言之一,然而却有许多PHP程序员苦恼找不到合适的工具来帮助自己分析和解析PHP代码。今天小编就为大家介绍几个非常不错的工具,来帮助程序员们提高自己的工作效率,一起来看看吧...
- php宝塔搭建部署小闪三消游戏PHP源码带后台
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的小闪三消游戏PHP源码带后台,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下,部...
- php宝塔搭建部署昼夜双色WordPress导航模板php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的昼夜双色WordPress导航模板php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录...
- php宝塔搭建实战可乐实物微商城系统php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的可乐实物微商城系统php源码php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试...
- php宝塔搭建实战wordpress英文国外资讯整站php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的国外财经资讯商业新闻整站php源码,具有全自动采集发布广告联盟网站的特性,是wordpress二次开发的。上次是谁要的系统项目啊,帮你找到了...
- php宝塔搭建实战小霸王站群池管理系统php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发小霸王站群池管理系统php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下,部...
- 完美可用的全媒体广告精准营销服务平台PHP源码
-
今天测试了一套php开发的企业网站展示平台,还是非常不错的,下面来给大家说一下这套系统。1、系统架构这是一套基于ThinkPHP框架开发的HTML5响应式全媒体广告精准营销服务平台PHP源码。现在基于...
- php宝塔搭建实战红蓝两款导航网站自动收录审核检测友链php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的php宝塔搭建实战红蓝两款导航网站自动收录审核检测友链php源码。上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁...
- php宝塔搭建部署实战抽奖系统开源php源码
-
大家好啊,我是测评君,欢迎来到web测评。本期给大家带来一套抽奖系统开源php源码。感兴趣的朋友可以自行下载学习。技术架构PHP5.4+nginx+mysql5.7+JS+CSS+...
- PHP餐饮点餐外卖系统源码/H5在线点餐系统/支持多餐桌生成
-
搭建一条龙包服务器域名168元安装教程1.获取到项目源码2.配置服务器环境3.部署到服务器(php5.5+mysql5.6/5.7+apache(nginx),windows,linu...
- 一周热门
- 最近发表
- 标签列表
-
- curseforge官网网址 (16)
- 外键约束 oracle (36)
- oracle的row number (32)
- 唯一索引 oracle (34)
- oracle in 表变量 (28)
- oracle导出dmp导出 (28)
- oracle 数据导出导入 (16)
- oracle两个表 (20)
- oracle 数据库 字符集 (20)
- oracle修改端口 (15)
- oracle安装补丁 (19)
- matlab归一化 (16)
- 共轭梯度法matlab (16)
- matlab化简多项式 (20)
- 多线程的创建方式 (29)
- 多线程 python (30)
- java多线程并发处理 (32)
- 宏程序代码一览表 (35)
- c++需要学多久 (25)
- c语言编程小知识大全 (17)
- css class选择器用法 (25)
- css样式引入 (30)
- html5和css3新特性 (19)
- css教程文字移动 (33)
- php简单源码 (36)