• 沒有找到結果。

第二章 影像局部特徵

2.4 特徵點比對

特徵點比對通常透過距離函數檢索影像的相似度以達到影像匹配之目的。距 離函數發展至今,已有許多應用在不同情況的演算法延伸,例如:L-Norm、餘弦 相似度、歐氏距離(Euclidean Distance)…等等。由 SIFT 運算後每張影像將關 鍵點集合進行特徵描述後,會得到一組 Nx128 維度的特徵集合(N 為關鍵點個數),

接著利用距離函數、機器學習來進行影像匹配之流程;在 SIFT 影像匹配的方法 上,較常見的匹配方法為 K-D 樹(K-Dimension Tree,K-D Tree)、BBF 搜尋算法 (Best-Bin-First)、歐氏距離(Euclidean Distance)。

K-D 樹(K-Dimension Tree,K-D Tree)是針對 K 維空間中進行資料劃分的一 種資料結構,視每個節點為 k 個維點的二元樹(Binary Tree),以利機器學習、

特徵分類與資料檢索等步驟的進行,由 Friedman 於 1977 年所提出。K-D 樹的建 構透過距離函數將數據空間劃分成數個部分,以二維空間舉例而言,假設空間內 有六筆數據分別為{(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)} ,其處理流程如 下:

(1) 首先找出二維上最大的變異數,並且以此維方向為分割線。此例最大變 異數 X 為 39,Y 為 28.63,故 X 軸則為分割線。

(2) 取 X 軸上的中位數 X=7,因此 X 軸以(7,2)為中心。

11

(3) 以 X=7 為分割線,分成左子樹{(2,3),(4,7),(5,4)}、右子樹 {(8,1),(9,6)},確定左右子樹的空間。

(4) 以另一維度方向為分割線,重複(2)(3)步驟,以此類推。

圖 9. K-D 空間示意圖

如圖 9 所示,圖左為 K 維二元樹結構,圖右為二維數據對應到座標軸位置。

圖右的紅色直線為第一次曾的 X 軸分割線,以數據(7,2)為中心,X 小於 7 的節 點則分配到左子樹空間,X 大於 7 的節點則位在右子樹空間;黑色直線為第二層 使用的 Y 軸分割線,以數據(5,4)、(9,6)為中心,根據相同的方式各別以 Y=4 以及 Y=6 在所處的子樹空間進行左子樹和右子樹的建立;紅色虛線則為第三層使 用的 X 軸分割線,依此類推的循環完成 K-D 樹的建立。

最近鄰居法(K-Nearest Neighbor,K-NN)[21]是一種用於資料分類的無母體 統計方法,屬於機器學習中的監督式學習(Supervised learning)。一般而言,

監督式學習需要透過資料訓練(Training)進行資料模型的建構,但是在最近鄰居 法中資料並不需要進行訓練的動作即可達到分類的目的。在 K-NN 法的 K 值代表 K 個最近的鄰居,K ≥ 1,常用於找出 K-D 樹節點與目標最鄰近的 K 個節點。在 K-NN 搜尋中,以遞迴的方式針對每個對象(樣本)進行距離統計,而計算距離大

12

多採用歐氏距離(Euclidean Distance),如公式(8),或者海明距離(Hamming Distance,又稱漢明距離)作為度量,並且由多數決的方式進行樣本分類的輸出, 與節點(4,7)的距離為 3.202,與節點(5,4)的距離為 3.042,因此鄰近節 點設定為節點(5,4)。

13 往左子樹找到節點(5,4),根據 BBF 機制,同時紀錄樹根(7,2)之右子樹(9,6),

查詢該節點在維度上的差值 9-2=7,最後放至優先佇列{(9,6)}。

14

(3) 接著一路訪問至葉節點(4,7),在節點(5,4)時,依 BBF 機制已將節點之 左子樹加入優先佇列,此時已使用差值排序的優先佇列有{(2,3)、(9,6)}。

(4) 檢查優先佇列中是否有較小差值,節點(2,3)之差值較節點(4,7)小,重 覆上述二個動作。

(5) 優先佇列中無更小差值,則節點(2,3)為最近鄰居。

根據上述 BBF 搜尋最近鄰居後,利用此兩個關鍵點的特徵向量以歐氏距離來 衡量相似度,作為判別標準。假設目標影像的某個關鍵點(kp0)及查詢影像的最 近距離關鍵點(分別為kp1、kp2),使用歐氏距離計算關鍵點的 128 維特徵空間,

如果最近距離(d0)除以次近距離(d1)小於門檻值,則接受此次比對。根據 Lowe 實驗數據顯示,在此過程中門檻值設定得越低,SIFT 比對符合的關鍵點數量則 會相對的減少,但會有助穩定度的提升,然而當門檻值位於[0.4,0.5]有較好的 效果,如圖 10 所示。

圖 10. 最近鄰居與次近鄰居的距離比,摘自[4]

15

目前較廣泛被使用的演化式計算有蟻群演算法(Ant Colony Optimization,

ACO)、蜂群演算法(Artificial Bee Colony)、基因演算法(Genetic Algorithms,

GA)、粒子群演算法(Particle Swarm Optimization,PSO)。蟻群演算法(ACO) 是由 Macro Dorigo 在 1992 年所提出[19],藉由蟻群尋找食物的過程利用賀爾蒙 可以追朔至 1859 年達爾文(Charles Darwin)所提出的「適者生存,不適者淘汰」

(Natural selection, survival of the fitness)之概念[38],利用基因的複製、

交配、突變來完成複雜性問題的最佳化。

在上述演化式計算的各種方法中,蜂群演算法以及粒子群演算法(PSO)相較 於蟻群演算法(ACO)增加了個體經驗更有助於避免收斂至局部最佳解之現象;粒 子群演算法(PSO)相較於蜂群演算法增加了社會心理學之理念,適當簡化算法本

相關文件