




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Distinctive Image Features from Scale-Invariant KeypointsDavid G. Lowe这是一个很好的图象匹配算法(SIFT),同时能处理亮度、平移、旋转、尺度的变化,利用特征点来提取特征描述符,最后在特征描述符之间寻找匹配。该算法主要包括5个步骤:一、建立尺度空间,寻找特征点(Keypoint)(也许该叫关键点)二、剔除不稳定(暂且这么叫吧)的特征点三、在特征点处提取特征描述符(Keypoint Descriptor)四、利用特征描述符寻找匹配点。五、计算变换参数。下面分别进行介绍。一、 建立尺度空间,寻找特征点假设待匹配的两副图象分别为f
2、1(x,y)和f2(x,y),下面我只讲f1(x,y)的算法操作,因为对f2(x,y)的操作完全相同。首先要建立尺度空间(Scale Space),这里用f1(x,y)与不同的高斯核卷积来产生尺度空间。由于f1(x,y)与高斯核卷积之后会丢失掉f1(x,y)的一部分信息,因此这里先将f1(x,y)利用线性插值的方法放大一倍,计为F1(x,y),即F1的大小是f1的两倍。(为什么要放大,下面会有解释)下面我用MATLAB写一下他建立尺度空间的代码,这样更简洁明了.F1 = imresize(f1,2,nearest);这个就是将原图象放大2倍,用bilinear也可以g0 = fspecial(
3、gaussian,3 3,1.5);用来对放大的原图象卷积的一个高斯核。F1 = conv2(F1,g0,same);卷积然后利用5个不同的高斯核对F1进行卷积。g1 = fspecial(gaussian,3 3,1.23);g2 = fspecial(gaussian,3 3,1.55);g3 = fspecial(gaussian,3 3,1.95);g4 = fspecial(gaussian,3 3,2.45);g5 = fspecial(gaussian,3 3,3.09);这是5个高斯核函数,相邻两个的标准差正好是1.26倍,也就是。具体怎么得出来这些方差值,我也不知道啦.拉拉拉
4、拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉拉G1 = F1;G2 = conv2(G1,g1,same);G3 = conv2(G2,g2,same);这里是否每次都应该和G1卷积?有点糊涂。G4 = conv2(G3,g3,same);G5 = conv2(G4,g4,same);G6 = conv2(G5,g5,same);由此得到6个和F1大小一样的高斯卷积图象,也就是一个Octave.我不知道为什么文献上只画了5副,也许是漏画,也许是他没把G1 = F1画进去。然后相邻两个G相减得到D1 = G2 G1;D2 = G3 G2;D3 = G4 G3;D4 = G5 G4;D5
5、= G6 G5;总共5个Difference of Gaussian图象。得到了D之后就可以寻找特征点。首先在D1,D2,D3中寻找,遍历图象D2,如果D2(X0,Y0)是D2(X,Y)在(X0,Y0)的3*3局部极大值(或极小值),而且也是D1(X0,Y0)、D3(X0,Y0)3*3领域的极大值(或极小值),而且D2(X0,Y0)的绝对值必须大于一阈值,作者给出的是0.0075,(图象都先归一化过了)那么该点(X0,Y0)就是特征点。也就是D2(X0,Y0)要大于(或小于)D2(X0-1,Y0-1)、D2(X0-1,Y0)、D2(X0-1,Y0+1)、D2(X0,Y0-1)、D2(X0,Y0
6、+1)、D2(X0+1,Y0-1)、D2(X0+1,Y0)、D2(X0+1,Y0+1),而且同时要大于(或小于)D1(X0-1,Y0-1)、D1(X0-1,Y0)、D1(X0-1,Y0+1)、D1(X0,Y0-1)、D1(X0,Y0)、D1(X0,Y0+1)、D1(X0+1,Y0-1)、D1(X0+1,Y0)、D1(X0+1,Y0+1)以及D3(X0-1,Y0-1)、D3(X0-1,Y0)、D3(X0-1,Y0+1)、D3(X0,Y0-1)、D3(X0,Y0)、D3(X0,Y0+1)、D3(X0+1,Y0-1)、D3(X0+1,Y0)、D3(X0+1,Y0+1),这里的大于(或小于)就是要么D
7、2(X0,Y0)是这26领域的极大值,或者是这26领域的极小值。假设(X0,Y0)是这么一个特征点(并且这个点是稳定的),那么就要在G2的(X0,Y0)位置处提取特征描述符(特征描述符的提取在下面讲)。如果这个点是不稳定的,那么就舍去这个特征点(稳定不稳定也将在接下来的内容里讲)。找出在D2中的所有特征点,在G2上提取出所有的特征描述符。其次,在D2,D3,D4中,以及D3,D4,D5中按上面的方法寻找特征点,并分别在G3,G4中提取特征描述符。因为首先我们是在G2中提取,而G2是先经过模糊了的,所以丢失了原图象的一部分信息,因此这里我们先放大一倍,为的就是弥补一些丢失了的信息。(东岳:将原图
8、像A,B(大小256*256)放大两倍的原因,我认为可能是这样:一: 卷积后对原图像会有信息丢失,放大两倍,可以减少丢失。二: A,B到底哪个大,不一定,所以除了缩小,还要放大一定的倍数。三:如果不放大,我们得到的第一个Octave里,就只有256*256,203*203。大小的图像, 只能从相当于203*203大小的那张图像中开始搜索,从而露掉了256*256那张图像。)最后将F1缩小2倍,再从“拉拉拉拉拉拉”那里开始重复同样的动作,直到图象大小小于32为止。这样就具有尺度不变性。二、 剔除不稳定点个人感觉这个剔除不稳定点对结果的影响并不是很大,不做这一步也不是不是以,但既然有了,也是很大的
9、一个改进。那就讲一下。1, 在特征点处计算如果这个值的绝对值小于等于一阈值那么将被舍弃,这一阈值应该比上面的0.0075稍大,取为0.008,(而不是那个0.03,因为0.03太大了),这样就是去掉对比度比较低的一些点。2,取r = 10,满足上面条件的特征点将被保留。不满足上述的点表示:他有一个很大的主曲率,和一个很小和他垂直的曲率 Dxx = Dx + 1, y + Dx - 1, y - 2.0 * Dx, y;Dyy = Dx, y + 1 + Dx, y - 1 - 2.0 * Dx, y;Dxy = 0.25 * (Dx + 1, y + 1 - Dx + 1, y - 1) -(
10、Dx - 1, y + 1 - Dx - 1, y - 1); 3,如果这个向量(dx,dy)的任何一个大于0。5,那么说明该点不稳定,利用插值法进行矫正,再将该向量加到(x,y)中。如果小于0。5,那么不做任何变动。三、 提取特征描述符上面提到过要在G1,G2,G3的特征点处提取特征描述符。这里就以某一个特征点(X0,Y0)为例,其他所有的都按同样的方法处理。计算G在(X0,Y0)处的方向大小。按照剃度的方向来计算。这里的L、x、y改为G、X0、Y0,(比较懒,就直接从文章里贴了),按照这个方向,选取(X0,Y0)周围16*16的一个正方形块,这样就具有旋转不变性。16*16的矩形块分成16
11、个4*4的子块。如下图所示,(下图只给出8*8的矩形块和4个4*4的小块,不好意思呵呵)看到了吧,左图有4个4*4的子块(真正的应该是16个4*4的子块),然后我们对每个子块处理。每个子块有4*4=16个点,计算每个点的方向和幅度,方向公式在上面,幅度公式如下:嘿嘿,这样得到16个方向和幅度值。然后把这16个方向投影到0,45,90,135,180,225,270,315这8个方向上,利用幅度作为权值。这样一个4*4的子块可以得到8个方向描述符,如上右图所示,16个4*4的子块可以得到128个方向描述符,这个1*128的向量就定义为特征描述符。最后将这个1*128的特征描述符归一化,以使其对亮
12、度变化不敏感。假设图象有N个特征点,那么就有N*128的特征描述符。四、 匹配我们对f1利用上面的方法进行处理之后得到loc1和des1两个矩阵,假设f1总共有N1个特征点(即f1在所有的尺度空间上,那么多不同尺度的图象中共找到了N1个特征点),那么loc1大小为N1*4,des1大小为N1*128,loc1每一维的4个表示该特征点的坐标(x,y)、在尺度空间上的尺度大小、方向,des1每一维的128个分量表示该特征点的特征描述符,loc1和des1一个个都对应着。同样的,对f2进行同样的处理,假设它总共有特征点数为N2,那么loc2和des2大小分别为N2*4和N2*128。下面来匹配。取d
13、es1中的一个1*128的特征描述符,去和des2中的N2个特征描述符分别计算误差。每一个误差的计算如下:error = 0;for i = 1 : 128error += sum(des1 des2).2);end这样就得到了N2个误差,计算这N2个误差的最小值和次小值,分别为min和secmin,如果min < 0.75 * secmin,那么des1中的该点和des2中的产生min这个误差的点相匹配,利用loc1和loc2中的坐标,在这两点直接连线,表示这两点匹配。这里min < 0.75 * secmin表示的意思是:如果f1中有一个和f2中的一个很可靠的匹配,那么该误差应
14、该比较小,而且f1中的这个特征描述符和f2中其他特征描述符的匹配误差就应该比较大。比如:我们要从一堆人中找一个人,已知是要找一个女人,如果这堆人中只有一个女人,其他都是男人,那么我们可以很肯定的知道这个女的就是要找的(因为女人的误差较小,男人的误差都比较大);但是如果这堆人中有好几个女的,那么我们随便找一个女的就不敢肯定这个人是不是要找的那个,于是可靠性就得到怀疑。(因为好几个女人,有好几个误差都比较小)(嘿嘿,这个例子是不是很土?)上面的方法就和这个例子很相似。遍历des1中的所有特征描述符,按同样的方法和des2中的特征描述符去匹配,这样我们就找到了所有的匹配点。具体的贴图就不贴了,各位自己下程序下来运行。五、 计算两副图象的变换参数。找到了很多的匹配点,但是其中肯定有一些是误配点存在。如果两副图象存在平移、旋转、尺度的变化,那么就需要计算一个变换矩阵,而计算这个矩阵只需要3对匹配点(是够了吧?)就可以了,但是这3对匹配点必须足够精确,否则计算出来的变换参数可能会有较大的误差。于是作者使用Hough变换的方法来对上面得到的初始匹配点进行聚类,以找出最佳的3对匹配点,计算参数。总结:写的乱七八糟的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南中医药大学第二附属医院招聘21人(第一批)模拟试卷及答案详解(必刷)
- 2025国家电投集团陕西公司招聘11人模拟试卷完整答案详解
- 2025贵州贵阳市某单位派遣制员工考前自测高频考点模拟试题附答案详解(突破训练)
- 2025年甘肃人力委托招聘中石油酒泉加油站加油员模拟试卷附答案详解(考试直接用)
- 2025湖南长沙市宁乡市中医医院招聘编外聘用人员20人模拟试卷及答案详解(新)
- 2025年丽水缙云农商银行秋季新员工招聘备考考试题库附答案解析
- 2025湖州德清县教育局择优招聘浙江开放大学德清学院和职业类教师15人模拟试卷及答案详解(网校专用)
- 2025江西南昌经济技术开发区社医服务工作人员招聘9人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025湖南衡阳市水务投资集团有限公司招聘30人考前自测高频考点模拟试题及一套参考答案详解
- 2025安徽蚌埠市怀远县教育局所属事业单位紧缺专业人才引进(校园招聘)15人模拟试卷有答案详解
- 2025年全国电力安全生产网络知识竞赛题库及答案
- 2025年通榆县事业单位面向社会公开招聘工作人员及公开招聘基层治理专干(19人)考试参考试题及答案解析
- 《军品价格管理办法》
- 2025年会计师事务所招聘面试模拟题及解析
- 餐饮门迎培训课件
- 医院培训鼠疫课件模板
- 基孔肯雅热主题班会课件
- 2025年部编版三年级语文上册全册教案
- 心力衰竭的全程管理
- DB4201∕T 630.1-2020 中小学生研学旅行 第1部分:服务机构评定与服务规范
- 学生文明上网班会课件
评论
0/150
提交评论