分享

特征描述子和特征匹配

 jarest 2018-05-17

        在检测到特征(如关键点)之后,下一步我们必须匹配他们,也就是说,我们必须要确定哪些特征来自于不同图像的对应位置.

图像描述子可以表示特征点的局部表观,以用来下一步做匹配,然而在不同图像之间,图像块的局部表观常常会因图像不同而变化,这就要求我们怎样才能使图像描述子使得对应的图像快之间对这些变化具有更好的不变性,同时保持不同(即非对应的)的图像块之间的区分性.

 

几个描述子(简):

 

尺度不变特征变换(SHIFT):

 sift算法的主要思想:他是一种提取局部特征的算法,在尺度空间寻找极值点,提取位置、尺度、选择不变量.

                  特点:1)是图像的局部特征,其对选择、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。

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

                             3)即使少数的几个物体也可以产生大量SIFT特征向量。  经过优化的SIFT匹配算法甚至可以达到实时的要求。

                              4)可以很方便的与其它形式的特征向量进行联合。

算法步骤:检测尺度空间极值点 -〉 精确定位极值点  -〉为每个关键点指定方向参数-〉关键点描述子的生成。

上述步骤最后会得到一个128维的非负值形成的原始版本的SIFT,描述子向量。

更详细的参考:RachelZhang:http://blog.csdn.net/abcjennifer/article/details/7639681         

                      

 根据SIFT进行Match:生成了A、B两幅图的描述子,(分别是k1*128维和k2*128维),就将两图中各个scale(全部一遍)的描述子进行匹配,匹配上128维即可表示两个特征点match上了。

匹配策略可以使用特征向量的欧氏距离来作为两幅图像中关键点的相似性判定度量。取图像1中的某个关键点,并找出其与图2中欧氏距离最近的前两个关键点,在这两个关键点中,如果最近的距离除以次近的距离少于某个比例阈值,则接收这一对匹配点。降低这个比例阈值,SIFT匹配点数目会减少,但更加稳定。

 

 SIFT的C实现,利用C一步步实现SIFT算法,就能更深刻的理解SIFT算法的原理和步骤。

主要参考:http://blog.csdn.net/v_JULY_v/article/details/6245939

SIFT实现分为5步:

第一步:图像预处理

           —————>扩大图像,预滤波剔除噪声,得到金字塔的最底层,也就是第一阶的第一层。


第二步:建立高斯金字塔函数

        ——————>建立高斯金字塔,给定金字塔第一阶第一层图像后,计算高斯金字塔其他尺度图像,mei每一阶的数目由变量SCALESPEROCTAVE决定,给定一个基本图像,计算他的高斯金字塔图像,返回外部向量是阶梯指针,内部向量是每一个阶梯内部的不同尺度图像。


第三步:特征点位置检测,最后确定特征点的位置

         ___________>特征点位置检测,最后确定特征点的位置。检测DOG金字塔中的局部最大值,找到之后,还要经过两个检验才能确认为特征点:一是它必须有明显的差异,二是他不应该是边缘点(就是说在极值点处的主曲率比应该小于某一个阈值)


第四步:计算高斯图像的梯度方向和幅值,计算各个特征点的主方向

 

第五步:抽取各个特征点处的特征描述子

             ___________>抽取各个特征点处的特征描述子,确定特征点的描述子。描述子是Patch网格内梯度方向的描述,旋转网格到主方向,插值得到网格处梯度值。一个特征点可以用2*2*8=32维的向量,也可以用4*4*8=128维的向量更精确的进行描述。


拖了很长时间。。。现在还只是做好第二步 Sign~~


高斯金字塔和DOG金字塔显示如下:




上面得到的图像原理是:

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多