• SIFT 算法 (转)


    ift是David Lowe于1999年提出的局部特征描述子,并于2004年进行了更深入的发展和完善。Sift特征匹配算法可以处理两幅图像之间发生平移、旋转、仿射变换情况下的匹配问题,具有很强的匹配能力。在Mikolajczyk对包括Sift算子在内的十种局部描述子所做的不变性对比实验中,Sift及其扩展算法已被证实在同类描述子中具有最强的健壮性。

    总体来说,Sift算子具有以下特性:

       (1)Sift特征是图像的局部特征,对平移、旋转、尺度缩放、亮度变化、遮挡和噪声等具有良好的不变性,对视觉变化、仿射变换也保持一定程度的稳定性。

       (2)独特性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。

       (3)多量性,即使少数的几个物体也可以产生大量Sift特征向量。

       (4)速度相对较快,经优化的Sift匹配算法甚至可以达到实时的要求。

       (5)可扩展性强,可以很方便的与其他形式的特征向量进行联合。

         Sift特征匹配算法主要包括两个阶段,一个是Sift特征的生成,即从多幅图像中提取对尺度缩放、旋转、亮度变化无关的特征向量;第二阶段是Sift特征向量的匹配。

         Sift特征的生成一般包括以下几个步骤:

       1、构建尺度空间,检测极值点,获得尺度不变性;

     

                     

       2、特征点过滤并进行精确定位;

                     

         3、为特征点分配方向值;

                     

       4、生成特征描述子。

        以特征点为中心取16*16的邻域作为采样窗口,将采样点与特征点的相对方向通过高斯加权后归入包含8个bin的方向直方图,最后获得4*4*8的128维特征描述子。示意图如下:

                     

    当两幅图像的Sift特征向量生成以后,下一步就可以采用关键点特征向量的欧式距离来作为两幅图像中关键点的相似性判定度量。取图1的某个关键点,通过遍历找到图像2中的距离最近的两个关键点。在这两个关键点中,如果次近距离除以最近距离小于某个阙值,则判定为一对匹配点。

    一些Sift特征匹配的例子:

              

            

    SIFT算法的教程、源码及应用软件

    1、ubc:DAVID LOWE---SIFT算法的创始人,两篇巨经典经典的文章
    http://www.cs.ubc.ca/~lowe/

    2、cmu:YanKe---PCASIFT,总结的SIFT方面的文章SO全,巨经典
    http://www.andrew.cmu.edu/user/yke/

    3、ubc:MBROWN---SIFT算法用于图像拼接的经典应用autopano-sift,包括一个SIFTLIB库
    http://www.cs.ubc.ca/~mbrown/autostitch/autostitch.html
    http://www.cs.ubc.ca/~mbrown/panorama/panorama.html

    4、toronto:Jepson---Matlab SIFT tutorial, 超级超级超级经典~
    http://www.cs.toronto.edu/~jepson

    5、ucla:Vedaldi---加州大学一个博士生编的SIFT,Matlab、C的都有,但没用过
    http://www.cs.ucla.edu/~vedaldi/

    6、一个小的拼接软件ptasmblr
    http://www.tawbaware.com/ptasmblr.htm

  • 相关阅读:
    hdu 1251(字典树)
    hdu 1556(树状数组)
    hdu 3275(线段树的延迟标记,我被坑了)
    TCL之容器
    Codeforces Round #587 (Div. 3) D. Swords
    struts2中多个文件同时上传
    ffmpeg的使用
    struts2中类型转换器
    struts中访问servlet API的方法
    struts2中多个逻辑action(方法)的动态调用
  • 原文地址:https://www.cnblogs.com/yingying0907/p/2129453.html
Copyright © 2020-2023  润新知