zoukankan      html  css  js  c++  java
  • ###SIFT特征

    开源中国

    #@date:			2014-06-14
    #@author: 		gerui
    #@email:		forgerui@gmail.com
    

      sift(Scale-invariant feature transform)特征是局部不变化性特征,具有旋转不变性。计算sift特征主要步骤如下:

    一、Contents


    1. 构建尺度空间

      尺度空间是模拟图像数据的多尺度特征。

    L(x, y, σ) = G(x, y, σ) * I(x, y)
    

      尺度空间一般取3~5层,2i-1(σ, kσ, k2,··· kσn-1), k = 21/s,其中s是每层塔包含的层数,i是第几层塔。

    2. 用DOG近似LOG

      对两个相信高斯尺度空间的图像相减,得到一个DoG的响应值图像D(x, y, σ)。使用DoG对LoG进行近似好处是:LoG需要使用两个方向的高斯二阶微分卷积核,DoG直接使用高斯卷积核,省去了对卷积核生成的计算量;DoG可以保留各个高斯尺度空间的图像;DoG是对LoG的近似,保留了LoG检测的优点。

    3. 特征点查找

      特征点即是局部的极值点,比较的区域是一个以查找点为中心的3*3的立方体,即这个中心点需要与26个点比较。搜索过程以每组的第二层开始。因为,这个查找是在离散的点上进行的,可以进行三维插值,从而可以找到准确的极值点。

    4. 删除边缘效应

      DoG对图像中的边缘有比较强的响应值,而一旦特征点落在边缘上,这些点就是不稳定的,因为边缘上的点很难定位,容易受到噪声的干扰。利用Hessian矩阵的特征值α,β判断是否舍去。

    (α + β)/(αβ) > [(r+1)exp(2)]/r      //如果大于则舍去,r取10
    

    5. 特征点方向分配

      以特点为中心,计算3*1.5σ半径内的幅角和幅值。梯度方向直方图将360度分成36个柱,分个柱占10度。另外,每个加入梯度方向直方图的采样点都需进行高斯加权处理,通过高斯加权,离特征点较近的点有更大的权值。这样,直方图的峰值即是这个特征点邻域内梯度的主方向,也即为特征点的主方向。当还存在一个相当于主峰80%能量的峰值时,则认为该特征点为主方向的辅方向。

    6. 特征点特征矢量生成

      SIFT描述子h(x, y, θ)是对特征点附近邻域内高斯图像梯度统计结果的一种表示。为了保证特征矢量具有旋转不变性,需要以特征点为中心,旋转5中求出的主方向角θ。将该区域划分为44个子区域,每个子区域将360度划分为8个方向范围,每个范围为45度,计算8个方向的梯度强度信息。由于44的子区域和8个方向分量,所以共有448 = 128个数据,最终形成128维的SIFT特征矢量。

    7. 进行匹配

      通过将两幅图的描述子进行匹配,如果有两个描述子匹配成功,则说明两个其对应的两个特征点匹配上了。

    二、References


    1. http://blog.csdn.net/abcjennifer/article/details/7639681
  • 相关阅读:
    UML 基础知识
    制作嵌入式根文件系统
    oracle 学习之 PL/SQL
    Password for '(null)' GNOME keyring:
    oracle 学习笔记
    lua关于编译后无法使用
    android,wince,windows,ios mms 网络电台收音机,小巧,兼容性好,性能高
    lua批量编译目前支持5.2,5.1
    lua关于编译后无法使用
    dlna support windows
  • 原文地址:https://www.cnblogs.com/gr-nick/p/3816712.html
Copyright © 2011-2022 走看看