天天看點

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

SIFT即尺度不變特征變換,是用于圖像處理領域的一種描述。這種描述具有尺度不變性,可在圖像中檢測出關鍵點,是一種局部特征描述子。

1 SIFT算法特點:

(1)具有較好的穩定性和不變性,能夠适應旋轉、尺度縮放、亮度的變化,能在一定程度上不受視角變化、仿射變換、噪聲的幹擾。

(2)區分性好,能夠在海量特征資料庫中進行快速準确的區分資訊進行比對

(3)多量性,就算隻有單個物體,也能産生大量特征向量

(4)高速性,能夠快速的進行特征向量比對

(5)可擴充性,能夠與其它形式的特征向量進行聯合

2 SIFT算法實質

在不同的尺度空間上查找關鍵點,并計算出關鍵點的方向。

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

3 SIFT算法實作特征比對主要有以下三個流程:

(1)提取關鍵點:關鍵點是一些十分突出的不會因光照、尺度、旋轉等因素而消失的點,比如角點、邊緣點、暗區域的亮點以及亮區域的暗點。此步驟是搜尋所有尺度空間上的圖像位置。通過高斯微分函數來識别潛在的具有尺度和旋轉不變的興趣點。

(2)定位關鍵點并确定特征方向:在每個候選的位置上,通過一個拟合精細的模型來确定位置和尺度。關鍵點的選擇依據于它們的穩定程度。然後基于圖像局部的梯度方向,配置設定給每個關鍵點位置一個或多個方向。所有後面的對圖像資料的操作都相對于關鍵點的方向、尺度和位置進行變換,進而提供對于這些變換的不變性。

(3)通過各關鍵點的特征向量,進行兩兩比較找出互相比對的若幹對特征點,建立景物間的對應關系。

4 尺度空間

(1)概念

尺度空間即試圖在圖像領域中模拟人眼觀察物體的概念與方法。例如:觀察一顆樹,關鍵在于我們想要觀察是樹葉子還是整棵樹:如果是一整棵樹(相當于大尺度情況下觀察),那麼就應該去除圖像的細節部分。如果是樹葉(小尺度情況下觀察),那麼就該觀察局部細節特征。

SIFT算法在建構尺度空間時候采取高斯核函數進行濾波,使原始圖像儲存最多的細節特征,經過高斯濾波後細節特征逐漸減少來模拟大尺度情況下的特征表示。

利用高斯核函數進行濾波的主要原因有兩個:

a 高斯核函數是唯一的尺度不變核函數。

b DoG核函數可以近似為LoG函數,這樣可以使特征提取更加簡單。同時,David. Lowe作者在論文中提出将原始圖像進行2倍上采樣後濾波能夠保留更多的資訊便于後續特征提取與比對。其實尺度空間圖像生成就是目前圖像與不同尺度核參數σ進行卷積運算後産生的圖像。

(2)表示

L(x, y, σ) ,定義為原始圖像 I(x, y)與一個可變尺度的2維高斯函數G(x, y, σ) 卷積運算。

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

5 高斯金字塔的建構

尺度空間在實作時使用高斯金字塔表示,高斯金字塔的建構分為兩步:

a 對圖像做高斯平滑;

b 對圖像做降采樣。

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

圖像的金字塔模型是指将原始圖像不斷降階采樣,得到一系列大小不一的圖像,由大到小,從下到上構成的塔狀模型。原圖像為金子塔的第一層,每次降采樣所得到的新圖像為金字塔的一層(每層一張圖像),每個金字塔共n層。為了讓尺度展現其連續性,高斯金字塔在簡單降采樣的基礎上加上了高斯濾波。如上圖所示,将圖像金字塔每層的一張圖像使用不同參數做高斯模糊,Octave表示一幅圖像可産生的圖像組數,Interval表示一組圖像包括的圖像層數。另外,降采樣時,高斯金字塔上一組圖像的初始圖像(底層圖像)是由前一組圖像的倒數第三張圖像隔點采樣得到的。

高斯圖像金字塔共o組、s層,則有

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

6 DOG空間極值檢測

(1)DOG函數

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

(2)DoG高斯差分金字塔

a 對應DOG算子,需建構DOG金字塔。

可以通過高斯差分圖像看出圖像上的像素值變化情況。(如果沒有變化,也就沒有特征。特征必須是變化盡可能多的點。)DOG圖像描繪的是目标的輪廓。

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

b DOG局部極值檢測

特征點是由DOG空間的局部極值點組成的。為了尋找DoG函數的極值點,每一個像素點要和它所有的相鄰點比較,看其是否比它的圖像域和尺度域的相鄰點大或者小。特征點是由DOG空間的局部極值點組成的。為了尋找DoG函數的極值點,每一個像素點要和它所有的相鄰點比較,看其是否比它的圖像域和尺度域的相鄰點大或者小。如下圖,中間的檢測點和它同尺度的8個相鄰點和上下相鄰尺度對應的9×2個點共26個點比較,以確定在尺度空間和二維圖像空間都檢測到極值點。

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

b 去除邊緣效應

在邊緣梯度的方向上主曲率值比較大,而沿着邊緣方向則主曲率值較小。候選特征點的DoG函數D(x)的主曲率與2×2Hessian矩陣H的特征值成正比。

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】
【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

7 關鍵點方向配置設定

(1)通過尺度不變性求極值點,需要利用圖像的局部特征為給每一個關鍵點配置設定一個基準方向,使描述子對圖像旋轉具有不變性。對于在DOG金字塔中檢測出的關鍵點,采集其所在高斯金字塔圖像3σ鄰域視窗内像素的梯度和方向分布特征。梯度的模值和方向如下:

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

(2)本算法采用梯度直方圖統計法,統計以關鍵點為原點,一定區域内的圖像像素點确定關鍵點方向。在完成關鍵點的梯度計算後,使用直方圖統計鄰域内像素的梯度和方向。梯度直方圖将0~360度的方向範圍分為36個柱,其中每柱10度。如下圖所示,直方圖的峰值方向代表了關鍵點的主方向,方向直方圖的峰值則代表了該特征點處鄰域梯度的方向,以直方圖中最大值作為該關鍵點的主方向。為了增強比對的魯棒性,隻保留峰值大于主方向峰值80%的方向作為該關鍵點的輔方向。

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

8 關鍵點描述

對于每一個關鍵點,都擁有位置、尺度以及方向三個資訊。為每個關鍵點建立一個描述符,用一組向量将這個關鍵點描述出來,使其不随各種變化而改變,比如光照變化、視角變化等等。這個描述子不但包括關鍵點,也包含關鍵點周圍對其有貢獻的像素點,并且描述符應該有較高的獨特性,以便于提高特征點正确比對的機率。

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

Lowe實驗結果表明:描述子采用4×4×8=128維向量表征,綜合效果最優(不變性與獨特性)。

9 關鍵點比對

(1)分别對模闆圖(參考圖,reference image)和實時圖(觀測圖,

observation image)建立關鍵點描述子集合。目标的識别是通過兩點集内關鍵點描述子的比對來完成。具有128維的關鍵點描述子的相似性度量采用歐式距離。

(3)比對可采取窮舉法完成,但所花費的時間太多。是以一般采用kd樹的資料結構來完成搜尋。搜尋的内容是以目标圖像的關鍵點為基準,搜尋與目标圖像的特征點最鄰近的原圖像特征點和次鄰近的原圖像特征點。

Kd樹如下如所示,是個平衡二叉樹

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

10 總結

SIFT特征具有穩定性和不變性,在圖像處理和計算機視覺領域有着很重要的作用,其本身也是非常複雜的,由于接觸SIFT不是很久,對其中的相關知識了解還很不足,經多方查閱參考,寫得此文,内容還不夠詳盡,望多多見諒。以下是SIFT算法的粗略總結。

(1)DoG尺度空間的極值檢測。

(2)删除不穩定的極值點。

(3)确定特征點的主方向

(4)生成特征點的描述子進行關鍵點比對。

【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】
【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】
【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】
【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】
【圖像配準】基于matlab SIFT圖像配準【含Matlab源碼 463期】

1 matlab版本

2014a

2 參考文獻

[1] 蔡利梅.MATLAB圖像處理——理論、算法與執行個體分析[M].清華大學出版社,2020.

[2]楊丹,趙海濱,龍哲.MATLAB圖像處理執行個體詳解[M].清華大學出版社,2013.

[3]周品.MATLAB圖像處理與圖形使用者界面設計[M].清華大學出版社,2013.

[4]劉成龍.精通MATLAB圖像處理[M].清華大學出版社,2015.

[5]侯思祖,陳宇,劉雅婷.基于互資訊的紫外成像儀中圖像配準研究[J].半導體光電. 2020,41(04)

繼續閱讀