第三章、 SIFT 演算法相關理論與技術
3.1 影像特徵簡介
特徵提取可以使用各種不同的演算法(Algorithm)或運算元(Operator)來完成 所要的特徵計算,特徵提取算法又可以分為點狀特徵提取算法和線狀特徵提取算 法,而面狀特徵主要是透過區域分割(Segmentation)來獲取。
3.1.1 點特徵提取算法
特徵點所指影像中具明顯特性的點並能將影像中物體給予標識之點位。利用 特徵點提取並用特徵點來標識影像中的物體,可以大幅減少影像儲存容量。最常 見的角點提取算法有1.SUSAN 2.Moravec 3.Forstner 4.Harris 角點提取演算法,
而SIFT 主要改良 Harris 演算法並賦予此法具有尺度不變與旋轉不變的特性,該 法最後剔除反差小的點與位於邊緣上的點位,將保留之點位進行特徵描述與特徵 匹配動作。
3.1.1.1 Moravec 角點檢測演算法
Moravec 於 1977 年提出一個角點(Corner Point)偵測之演算法[18],主要以像 素的四個主要方向上最小灰度方差表示該像素與鄰近像素的灰度變化情況,即像 素的興趣值IV(Interest Value),於影像局部選取具局部最大的興趣值點(灰度變化 明顯的點)作為特徵點,其演算法為相對簡單,計算量小,但對雜訊(Noise)的影 響較為敏感,屬於「抑制局部非最大」的特徵提取算法,具體算法如下:
a. 計算各像元的興趣值 IV(Interest Value)。以像素( rc, )為中心ω×ω 的移動 視窗(Moving Window),一般使用, 3x3, 5x5, or 7x7 pixels 等奇數視窗,如 圖3.1 所示。計算四個方向相鄰像素灰度差的平方和:
圖3.1 Moravec 演算法 c
r
∑
圖3.3 影像梯度變化情與角點的屬性
(a) 當移動視窗內所偵測的梯度沒有明顯的變化時,在影像上屬於平坦 之區域(Flat)。
(b) 當移動視窗沿特定方向移動造成梯度明顯變化時,在影像上屬於邊 界 (edge)部分。
(c) 當移動視窗往任一方向移動時,梯度變化皆很大時,在影像上屬於 角 點(corner)部分。
Moravec 演算法主要的缺點:
1. window function 對於雜訊的影響太大,無法克服雜訊的干擾。
2. 偵測視窗只針對四個方向進行偵測,在方向上顯然不足。
3. 此算法對於邊緣的反應太強烈。
因此 Harris 及 Stephens 於 1988 年[19]提出針對 Moravec 演算法缺點的改 良方法,即為Harris 角點偵測演算法。
3.1.1.2 Harris 角點偵測演算法
Harris 角點偵測演算法主要由 Moravec 演算法基礎所所衍生,利用移動視窗 在影像中做小距離滑動,並計算滑動前後視窗內所有點灰度值平均的差值。此方 法之優點為偵測效率高且具有較高的重複率,因此於影像匹配中通常採用此演算 法來提取特徵點。它針對Moravec 演算法的三個缺點分別提出改進 。
1. 視窗函數(Window Function)對雜訊敏感的問題。
解決方法:用 高斯函數(Gaussian function)進行濾波,可抑制影像中雜訊 問題。替換式(3-4) w( yx, ):
Flat Edge Corner Isolated point
(a) (b) (c)
⎟⎟⎠
圖3.4 window function 經過 Gaussian smooth 2. 偵測視窗僅於四個方向進行偵測,即偵測方向不足的問題。 Approximation)於矩陣運算即可,而 M 矩陣可直接由原影像得到。雙線性 約制法如公式(3-7):
∑
⎥⎥ 在影像上屬於角點(Corner)區域。(λmax)
-1/2 (λmin)-1/2
橢圓形E( vu, )為常數
最後用公式(3-9)表示:
SIFT(Scale-Invariant Feature Transform)算法由 David Lowe 於 1999 年提出,
2004 年完善總結[1],後來 Y. Ke 將其描述子(Descriptor)部分用 PCA 代替直方圖 的方式,對其進行改進[16]。SIFT 算法為以特徵基礎(Feature Based)的局部特徵 影像匹配演算法,其完整的運算程序如圖3.7 所示,可分成四個步驟:
1.特徵點提取運算(Feature Extraction)。
2.對提取之特徵點進行特徵描述(Feature Description) 。 3.利用此特徵描述進行特徵匹配(Feature Matching)。
4.匹配點位除錯(Error Detection)。
圖3.7 SIFT 特徵提取演算法主要執行流程圖