1. 程式人生 > 其它 >SIFT特徵提取方法

SIFT特徵提取方法

1、SIFT簡介

SIFT,即尺度不變特徵變換(Scale-invariant feature transform,SIFT),是用於影象處理領域的一種描述。這種描述具有尺度不變性,它對物體的尺度變化,剛體變換,光照強度和遮擋都具有較好的穩定性。演算法實現特徵匹配主要有三個流程:

  1. 提取特徵點:搜尋高斯尺度空間對於尺度和旋轉不變的極值點;
  2. 特徵點主方向確定:利用特徵點鄰域的梯度直方圖確定特徵點的主方向(梯度和最大的方向);
  3. 特徵點描述:在特徵點鄰近區域生成描述運算元(梯度直方圖),生成4x4x8維的SIFT特徵向量;
  4. 特徵點匹配:使用歐氏距離計算關鍵點描述子的相似度。

2、高斯尺度空間

兩種影象在匹配的時候可能因為拍攝的距離、拍攝的角度問題,會導致在特徵點提取的時候差異很大,所以我們希望SIFT的特徵點可以具有尺度不變性和方向不變性。彩色圖是三通道的,不好檢測突變點。需要將RGB圖轉換為灰度圖,此時灰度圖為單通道,灰度值在0~255之間分佈。而且當影象放大或者縮小時,它讀取的特徵點與原先可能差異很大,所以其中一個辦法就是把物體的尺度空間影象集合提供給計算機,讓它針對考慮不同尺度下都存在的特徵點。

高斯核是唯一可以產生多尺度空間的核,在輸入的影象模型中,通過高斯模糊函式連續的對尺度進行引數變換,最終得到多尺度空間序列。影象中某一尺度的空間函式 L(x ,y, σ)由可變引數的高斯函式 G(x, y, σ)和原輸入影象I(x ,y)卷積得出:

在早期影象的多尺度通常使用影象金字塔表述形式。影象金字塔是同一圖象在不同的解析度下得到的一組結果,其生成過程一半包含兩個步驟:

  1. 對影象做高斯平滑(高斯模糊);
  2. 對影象做降取樣,降維取樣後得到一系列尺寸不斷縮小的影象。

傳統的SIFT演算法是通過建立高斯差分函式(DOG) 方法來提取特徵點。首先,在不同尺度引數的組數中,高斯差分影象是由某一相同尺度層的相鄰影象作差值 得出。然後,將得到的差分影象與原影象 I(x, y)做卷積得到公式(3)的 DOG 函式:

從上式可以知道,將相鄰的兩個高斯空間的影象相減就得到了DOG的響應影象。為了得到DOG影象,先要構造高斯尺度空間,而高斯的尺度空間可以在影象金字塔降維取樣的基礎上加上高斯濾波得到,也就是對影象金字塔的每層影象使用不同的尺度引數σ進行高斯模糊,使每層金字塔有多張高斯模糊過的影象,然後我們把得到的同一尺寸大小的影象劃分為一組。

參考連結:

https://blog.csdn.net/zhou4411781/article/details/100713402