Bay et al.針對尺度與旋轉之不變性,提出加速強健特徵(Speeded Up Robust Features, SURF)[28],以建立區域特徵的偵測器與描述器。偵測器用以偵測區域特 徵的點座標,結合盒子濾波器與積分影像方法,縮短影像與高斯濾波器進行迴旋 積分運算所花費的時間。而描述器則利用特徵點鄰近區域內的 Haar 小波響應分 佈,建立特徵點的描述向量。
SURF 是 SIFT[29]的加速版,最大好處是處理速度較快。SURF 大量改進 SIFT,
在取高斯的一階和二階導數時,SURF 改以積分影像的計算來逼近其高斯導數值,
達到降低計算複雜度的目的,原先將影像做縮小的動作也改成將濾波器放大達到 節省時間的目的,特徵點描述方式改成記錄
x
和 y 的一階導數以節省計算時間,而特徵點維度改為 64 維,特徵點比對機制也加入判斷 Hessian 矩陣跡數(trace)的 前處理,減少不必要的比對時間。以下為 SURF 的五大步驟:
(1)
建構 Hessian 矩陣根據影像 Hessian 矩陣偵測特徵點的概念,找尋 Hessian 矩陣行列式的最大值 位置即是特徵點的座標。相對於影像 I 上的點X
x,y ,Hessian 矩陣H
x, 在點其中Lxx
x, 為影像 I 上的點 x 與高斯二階導數 g
其中,輸入圖像函數反覆與高斯函數執行核(kernel)的迴旋積分並反覆對其進行二 次取樣,這種方法主要用於 SIFT 算法的實現,但每層圖像依賴於前一層圖像,
並且圖像需要重設尺寸,因此,這種方法計算量較大,而 SURF 算法增加圖像核 的尺寸,這也是 SIFT 與 SURF 在使用圖像金字塔原理方面的不同。演算法允許 同時處理尺度空間中的多層圖像,不需對圖像進行二次取樣,進而提高演算法效 能。圖 2-1(a)是傳統方式建立一個如圖所示的金字塔結構,圖像的尺寸是會變化 的,並且運算會反覆使用高斯函數對子層進行平滑處理,圖 2-1(b)說明 SURF 演 算法使原始圖像保持不變而只改變濾波器大小。
(a) (b)
圖 2-1 圖像金字塔[31]
(3)
精確定位特徵點所有小於預設極值的值都會被捨棄,增加極值使檢測到的特徵點數量減少,
圖 2-2 尺度層圖像[32]
(4)
確定主方向為確保旋轉不變性,首先以特徵點為中心,計算半徑為6
(
為該特徵點紀 錄的尺度大小)的鄰域內的點在 x、y 方向的 Haar 小波(Haar 小波邊長取4
)響應,並給這些響應值高斯權重係數,使得靠近特徵點的響應貢獻大,而遠離特徵點的 響應貢獻小。範圍內的響應相加以形成新的向量,遍布整個圓形區域,選擇最長 向量的方向為該特徵點的主方向。通過特徵點逐個進行計算,得到每一個特徵點 的主方向。
圖 2-3 決定主方向示意圖[32]
(5)
特徵點描述子SURF 的特徵向量以特徵點為中心建立 4×4 的區域。在個別的子區域中,以 邊長為 2
的一階 Haar 小波遮罩進行運算,即dx與dy,在每個子區域中需運算 25 次。這種作法增強了演算法抗雜訊的能力,同時對於含有定位誤差的特徵匹配 也提供了較好的容錯性。最後,每個子區域可以分別由四個數值加總表示,16 個 子區域可形成一個描述此特徵點的4 4 4 的 64 個維度特徵描述子,此做法可得 到數學表示式為:, , ,
subregion
V dx dy dx dy
(2-3)
圖 2-4 特徵向量描述子示意圖[32]