下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SIFT算法分析1 SIFT主要思想sifTT法是一种提取局部特征的算法,在尺度空间寻找极值点,提取位置,尺度,旋转不变量。2 SIFT算法的主要特点:a)SIF特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。b)独特性(Distinctiveness好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。c)多量性,即使少数的几个物体也可以产生大量SIFTe征向量。d)高速性,经优化的SIFTS配算法甚至可以达到实时的要求。e)可扩展性,可以很方便的与其他形式的特征向量进行联合。3 SIFT算法流程图:输入图像一特征向爱4
2、 SIFT算法详细1)尺度空间的生成尺度空间理论目的是模拟图像数据的多尺度特征。高斯卷积核是实现尺度变换的唯一线性核,于是一副二维图像的尺度空间定义为:L(x,y,)G(x,y,)I(x,y)2.2c其中G(x,y,)是尺度可变图斯函数,G(x,y,)2e(y)/22(x,y)是空间坐标,是尺度坐标。大小决定图像的平滑程度,大尺度对应图像的概貌特征,小尺度对应图像的细节特征。大的值对应粗糙尺度(低分辨率),反之,对应精细尺度(高分辨率)。为了有效的在尺度空间检测到稳定的关键点,提出了高斯差分尺度空间(DOGscale-space。利用不同尺度的高斯差分核与图像卷积生成。D(x,y,)(G(x,
3、y,k)G(x,y,)I(x,y)L(x,y,k)L(x,y,)DOOM子计算简单,是尺度归一化的LoG子的近似。图像金字塔的构建:图像金字塔共C组,每组有S层,下一组的图像由上组图像降采样得到。图1由两组高斯尺度空间图像示例金字塔的构建,第二组的第一副图像由第一组的第一副到最后一副图像由一个因子2降采样得到。图2DoGT子的构建:Octave萼图1TwooctavesofaGaussianscale-spaceimagepyramidwiths=2intervals.Thefirstimageinthesecondoctaveiscreatedbydownsamplingtolastimag
4、einthepreviousOctave1DoGOctave1图2ThedifferenceoftwoadjacentintervalsintheGaussianscale-spacepyramidcreateanintervalinthedifference-of-Gaussianpyramid(showningreen).2)空间极值点检测为了寻找尺度空间的极值点,每一个采样点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。如图3所示,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9X2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。一个点如
5、果在DOG尺度空间本层以及上下两层的26个领域中是最大或最小值时,就认为该点是图像在该尺度下的一个特征点,如图1所示。图3DoG尺度空间局部极值检测3)构建尺度空间需确定的参数一尺度空间坐标Ooctave坐标5 sub-level坐标和。S的关系(O,S)020s/S,OOmin0,O1,S0,S1其中0是基准层尺度。ooctave坐标,ssub-level坐标。注:octaves的索引可能是负的。第一组索引常常设为0或者-1,当设为-1的时候,图像在计算高斯尺度空间前先扩大一倍。空间坐标x是组octave的函数,设x0是0组的空间坐标,则x2X0,o,Xo0,No10,Mo1如果Mo,No是
6、基础组o=0的分辨率,则其他组的分辨率由下式获得:No注:在Lowe的文章中,Lowe#用了如下的参数:1/S_n0.5,01.62,omin1,S3在组o=-1,图像用双线性插值扩大一倍(对于扩大的图像n1)。4)精确确定极值点位置通过拟和三维二次函数以精确确定关键点的位置和尺度(达到亚像素精度),同时去除低对比度的关键点和不稳定的边缘响应点(因为DoG算子会产生较强的边缘响应),以增强匹配稳定性、提高抗噪声能力。空间尺度函数D(x,y,)DT7D(x,y,)Dx0,y0,XX0)泰勒展开式如下:DTD(x,y,)Dx,y,xxT2D-xx对上式求导,并令其为0曲到精确的位置,?2D1D在已
7、经检测到的特征点中,要去掉低对比度的特征点和不稳定的边缘响应点。去除低对比度的点:把公式(4)代入公式(3),只取前两项可得:八1DTcD(x)Dx,y,W2x若D?0.03,该特征点就保留下来,否则丢弃边缘响应的去除一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率,而在垂直边缘的方向有较小的主曲率。主曲率通过一个2x2的Hessian巨阵H求出:DxxDxyDxyDyy导数由采样点相邻差估计得到D的主曲率和H的特征值成正比,令为最大特征值,为最小的特征值,111Hi=Dit+=c+氏Det(H)D啦。g(Dry产=rtJ.令,M:TY(H产=(a+J产=(*3+户(=(+1产D
8、et(H)al3厂房r(r+1)2/r的值在两个特征值相等的时候最小,随着r的增大而增大,因此,为了检测主曲率是否在某域值r下,只需检测D(H)2(+1)2Det|H)Vr在Lowe的文章中,取r=10。5)关键点方向分配利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具备旋转不变性。加(2)=J(jc+14)(HTM/+(-J+1)-1)产/工/)=atan2(x,y+1)-L(xfy(x-l,)式(5)为(x,y)处梯度的模值和方向公式。其中L所用的尺度为每个关键点各自所在的尺度。在实际计算时,我们在以关键点为中心的邻域窗口内采样,并用直方图统计邻域像素的梯度方向。梯度
9、直方图的范围是0360度,其中每10度一个柱,总共36个柱。直方图的峰值则代表了该关键点处邻域梯度的主方向,即作为该关键点的方向。图4是采用7个柱时使用梯度直方图为关键点确定主方向的示例。(窗口尺寸采用Lowef隹荐的0-xo-)图4由梯度方向直方图确定主梯度方向在梯度方向直方图中,当存在另一个相当于主峰值80%能量的峰值时,则将这个方向认为是该关键点的辅方向。一个关键点可能会被指定具有多个方向(一个主方向,一个以上辅方向),这可以增强匹配的鲁棒性530至此,图像的关键点已检测完毕,每个关键点有三个信息:位置、所处尺度、方向。由此可以确定一个SIF%征区域(在实验章节用椭圆或箭头表示)。6)特
10、征点描述子生成首先将坐标轴旋转为关键点的方向,以确保旋转不变性颖域嚎表方司关铤应号征向量图5由关键点邻域梯度信息生成特征向量接下来以关键点为中心取8X8的窗口。图5-4左部分的中央黑点为当前关键点的位置,每个小格代表关键点邻域所在尺度空间(和关键点是否为一个尺度空问)的一个像素,利用公式(5)求得每个像素i,j的梯度幅值mi,j与梯度方向i,j,箭头方向代表该像素的梯度方向,箭头长度代表梯度模值,然后用高斯窗口对其进行加权运算,每个像素对应一个向量,长度为G,i,jm,G,i,j为该像素点的高斯权值,方向为i,j,图中蓝色的圈代表高斯加权的范围(越靠近关键点的像素梯度方向信息贡献越大)。高斯参
11、数J取3倍特征点所在的尺度。然后在每4X4的小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,即可形成一个种子点,如图5右部分所示。此图中一个关键点由2X2共4个种子点组成,每个种子点有8个方向向量信息。这种邻域方向性信息联合的思想增强了算法抗噪声的能力,同时对于含有定位误差的特征匹配也提供了较好的容错性。实际计算过程中,为了增强匹配的稳健性,对每个关键点使用4X4共16个种子点来描述,这样对于一个关键点就可以产生128个数据,即最终形成128维的SIF节征向量。此时SIF哨征向量已经去除了尺度变化、旋转等几何变形因素的影响,再继续将特征向量的长度归一化,则可以进一步去除光照变化的
12、影响。当两幅图像的SIF节征向量生成后,下一步我们采用关键点特征向量的欧式距离来作为两幅图像中关键点的相似性判定度量。取图像1中的某个关键点,并找出其与图像2中欧式距离最近的前两个关键点,在这两个关键点中,如果最近的距离除以次近的距离少于某个比例阈值,则接受这一对匹配点。降低这个比例阈值,SIFTS配点数目会减少,但更加稳定。为了排除因为图像遮挡和背景混乱而产生的无匹配关系的关键点,用比较最近邻距离与次近邻距离的方法,距离比率ratio小于某个阈值的认为是正确匹配。因为对于错误匹配,由于特征空间的高维性,相似的距离可能有大量其他的错误匹配,从而它的ratio值比较高。推荐ratio的阈值为。5
13、仿真结果分析将文件加入matlab目录后,在主程序中有两种操作:op1:寻找图像中的Sift特征:image,discrips,locs=sift();Findingkeypoints.1021keypointsfound.showkeys(image,locs);DrawingSIFTkeypoints.5010015020025030035050100150200250300350400450500op2:对两幅图中的SIFTt征进行匹配:match。,);Findingkeypoints.1021keypointsfound.Findingkeypoints.882keypointsfo
14、und.Found98matches.501001502002506代码1)%im=appendimages(image1,image2)%Returnanewimagethatappendsthetwoimagesside-by-side.functionim=appendimages(image1,image2)%Selecttheimagewiththefewestrowsandf川inenoughemptyrows%tomakeitthesameheightastheotherimage.rows1=size(image1,1);rows2=size(image2,1);if(rows
15、1rows2)image1(rows2,1)=0;elseimage2(rows1,1)=0;end%Nowappendbothimagesside-by-side.im=image1image2;2)%num=match(image1,image2)%Thisfunctionreadstwoimages,findstheirSIFTfeatures,and%displayslinesconnectingthematchedkeypoints.Amatchisaccepted%onlyifitsdistanceislessthandistRatiotimesthedistancetothe%s
16、econdclosestmatch.%Itreturnsthenumberofmatchesdisplayed.%Example:match(,);functionnum=match(image1,image2)%FindSIFTkeypointsforeachimageim1,des1,loc1=sift(image1);im2,des2,loc2=sift(image2);%ForefficiencyinMatlab,itischeapertocomputedotproductsbetween%unitvectorsratherthanEuclideandistances.Notethat
17、theratioof%angles(acosofdotproductsofunitvectors)isacloseapproximation%totheratioofEuclideandistancesforsmallangles.%distRatio:Onlykeepmatchesinwhichtheratioofvectoranglesfromthe%nearesttosecondnearestneighborislessthandistRatio.distRatio=;%Foreachdescriptorinthefirstimage,selectitsmatchtosecondimag
18、e.des2t=des2;%Precomputematrixtransposefori=1:size(des1,1)dotprods=des1(i,:)*des2t;%Computesvectorofdotproductsvals,indx=sort(acos(dotprods);%Takeinversecosineandsortresults%CheckifnearestneighborhasanglelessthandistRatiotimes2nd.if(vals(1)0)line(loc1(i,2)10c2(match(i),2)+cols1,.loc1(i,1)loc2(match(
19、i),1),Color,c);endendholdoff;num=sum(match0);fprintf(Found%dmatches.n,num);3)%showkeys(image,locs)%ThisfunctiondisplaysanimagewithSIFTkeypointsoverlayed.%Inputparameters:%image:thefilenamefortheimage(grayscale)%locs:matrixinwhicheachrowgivesakeypointlocation(row,%column,scale,orientation)functionsho
20、wkeys(image,locs)disp(DrawingSIFTkeypoints);%Drawimagewithkeypointsfigure(Position,5050size(image,2)size(image,1);colormap(gray);imagesc(image);holdon;imsize=size(image);fori=1:size(locs,1)%Drawanarrow,eachlinetransformedaccordingtokeypointparameters.TransformLine(imsize,10cs(i,:),;TransformLine(ims
21、ize,10cs(i,:),;TransformLine(imsize,10cs(i,:),;endholdoff;%Subroutine:TransformLine%Drawthegivenlineintheimage,butfirsttranslate,rotate,and%scaleaccordingtothekeypointparameters.%Parameters:%Arrays:%imsize=rowscolumnsofimage%keypoint=subpixel_rowsubpixel_columnscaleorientation%Scalars:%x1,y1;beginin
22、gofvector%x2,y2;endingofvectorfunctionTransformLine(imsize,keypoint,x1,y1,x2,y2)%Thescalingoftheunitlengtharrowissettoapproximatelytheradius%oftheregionusedtocomputethekeypointdescriptor.len=6*keypoint(3);%Rotatethekeypointsbyori=keypoint(4)s=sin(keypoint(4);c=cos(keypoint(4);%Applytransformri=keypo
23、int-len*(c*y1+s*x1);ci=keypoint(2)+len*(-s*y1+c*x1);r2=keypoint(1)-len*(c*y2+s*x2);c2=keypoint(2)+len*(-s*y2+c*x2);line(c1c2,rir2,Color,c);4)%image,descriptors,locs=sift(imageFile)%ThisfunctionreadsanimageandreturnsitsSIFTkeypoints.%Inputparameters:%imageFile:thefilenamefortheimage.%Returned:%image:
24、theimagearrayindoubleformat%descriptors:aK-by-128matrix,whereeachrowgivesaninvariant%descriptorforoneoftheKkeypoints.Thedescriptorisavector%of128valuesnormalizedtounitlength.%locs:K-by-4matrix,inwhicheachrowhasthe4valuesfora%keypointlocation(row,column,scale,orientation).The%orientationisintherange-
25、PI,PIradians.%Credits:ThanksforinitialversionofthisprogramtoD.Alvaroand%.Guerrero,UniversidaddeZaragoza(modifiedbyD.Lowe)functionimage,descriptors,locs=sift(imageFile)%Loadimageimage=imread(imageFile);%IfyouhavetheImageProcessingToolbox,youcanuncommentthefollowing%linestoallowinputofcolorimages,whichwillbeconvertedtograyscale.%ifisrgb(image)%image=rgb2gray(image);%endrows,cols=size(image);%ConvertintoPGMimagefile,readablebykeypointsexecutablef=fopen(,w);iff=-1error(Couldnotcreatefile.);endfp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度户外场地租用协议模板
- 文献检索考试题目之一
- 2024年物流配送服务协议汇编
- 2024年项目融资协议范本
- 2024届安徽池州市东至二中高中毕业班阶段性测试(二)数学试题
- 2024年度房地产经纪服务协议模板
- 2024专业储藏室转让协议格式
- 2024专业房产买卖协议法律认证文件
- 2024年会计人员劳务协议样本
- 城市便捷汽车租赁协议模板2024
- 基于数据挖掘的高职学情分析与课堂教学质量提升研究
- 能源岗位招聘笔试题与参考答案(某大型国企)2024年
- 蔡戈尼效应完整版本
- 农业灌溉装置市场环境与对策分析
- 统编版道德与法治初二上学期期中试卷及答案指导(2024年)
- 部编版小学五年级上册道法课程纲要(知识清单)
- 职业技能等级认定质量控制及规章制度
- 山东省临沂市(2024年-2025年小学四年级语文)人教版期中考试(上学期)试卷及答案
- 英大传媒投资集团限公司2024年应届毕业生招聘(第一批)高频500题难、易错点模拟试题附带答案详解
- 2024人教版道法七年级上册第二单元:成长的时空大单元整体教学设计
- 肺胀(慢性阻塞性肺病)中医优势病种诊疗方案
评论
0/150
提交评论