圖像配准SIFT

  • 2019 年 10 月 28 日
  • 筆記

(一)圖像特徵匹配–SIFT

1.1 SIFT背景簡介

        SIFT算法是David Lowe在1999年提出的局部特徵描述子,並在2004年深入發展和完善。

        SIFT算法是在尺度空間進行特徵檢測並確定關鍵點的位置和關鍵點所在的尺度。

        該關鍵點方向特徵選取該點鄰域梯度的主方向,以便實現算子對尺度和方向的無關性。

1.2 SIFT特徵向量生成步驟

        一幅圖像SIFT特徵向量的生成步驟主要有如下四步:

        (1)檢測尺度空間極值點,初步確定關鍵點的位置和所在尺度; [初步找出關鍵點群]

        (2)精確確定關鍵點位置和尺度,同時去除低對比度的關鍵點和不確定的邊緣響應點,以便增強匹配穩定性、提高抗噪聲能力;[精確確定關鍵點群並擇優篩選]

        (3)指定每個關鍵點的方向參數,以便算子具有旋轉不變性;

        (4)生成關鍵點描述子,即生成SIFT特徵向量;

1.2.1尺度空間

        概念解釋:尺度空間:尺度空間是利用高斯核對原始圖像進行尺度變換,獲得圖像多尺度下的尺度空間表示序列,對這些序列進行尺度空間特徵提取

其中,二維高斯核定義為:

        其中σ被稱為尺度坐標, 是高斯正態分佈的方差。

        註:除高斯核外,尺度函數有很多,但並不是所有的尺度函數都可以構建尺度空間。Koenderink和Lindeberg已經證明,在一些合理的約束下,高斯核是唯一可以產生尺度空間的核,而且是唯一的線性核。

        二維圖像 在不同的尺度空間可以通過圖像與卷積核做卷積求得

 

        這裡尺度坐標σ越小表示圖像被平滑的越少,σ越大表示圖像被平滑的越多。大尺度反映圖像概貌特徵,小尺度反映圖像細節特徵。

        選擇合適的尺度因子是構建尺度空間的關鍵。

1.2.2 高斯金字塔構建

        1)高斯差分尺度空間(DOG scale-space);

        為了在尺度空間有效檢測到穩定的關鍵點,提出了高斯差分尺度空間,它是由不同尺度的高斯差分核與圖像卷積而生成的。

         圖像高斯金字塔有O組,每一組有S層,在實際計算時,使用高斯金字塔每組中相鄰上下兩層圖像相減,下一層的圖像由上一層圖像降採樣得到,得到高斯差分圖像。

                            
                                                    

                                                               (a)高斯金字塔                                               (b)高斯差分金字塔生成圖示

                                                                                                           圖 高斯金字塔圖示

 (1)空間極值點檢測 [關鍵點初步篩選]

        為了尋找尺度空間極值點,需要每個採樣點與它所有的相鄰點比較,看其是否比它圖像域和尺度域的相鄰點大或小。

                                                                                                                   圖 DOG尺度空間局部極值監測

        圖中中間的檢測點與它相同尺度的8個相鄰點以及上、下相鄰尺度的9*2個點比較,以確保在尺度空間和二維圖像空間都監測到極值點。

(2)確定極值點位置 [確定關鍵點]

        通過你和三維二次函數來精確確定關鍵點位置和尺度。

        由於DOG算子會產生較強的邊緣效應,,所以需要去除低對比度的關鍵點和不問穩定的邊緣響應點以增強匹配穩定性和提高抗噪聲能力。

        去除邊緣響應點原理: 定義一個不好的高斯差分算子的極值在橫跨邊緣的地方主曲率大,而垂直邊緣的方向主曲率小。主曲率通過一個2*2的Hessian矩陣

        求出,令為最大特徵值, 為最小特徵值,

        則

 

 

        導數由採樣點相鄰差估計得到。

        D的主曲率和H的特徵值成正比,令α = γβ,則

         此函數單調遞增,可以限制比值γ達到過濾邊緣響應點的目的。

(3)求關鍵點方向

         利用關鍵點鄰域像素的梯度方向分佈特性為每個關鍵點制定方向參數,使算子具備旋轉不變性。

        由此可以求出(x,y)處的方向和梯度。 L所用的尺度是每個關鍵點所在的尺度。

註:一個特徵點有三個屬性:位置、尺度和方向

        (4)生成SIFT特徵向量