第一節 研究背景與動機
CBIR(Content-Based Image retrieval,基於內容的圖像檢索)為一種 使用圖像中的實際內容而非關鍵字、標籤或圖片描述,像是色彩、形狀 和紋理等來從一個大資料庫中檢索數位圖像的電腦視覺科技應用程式。
CBIR 被應用於許多方面,如建築與工程設計、藝品收集、犯罪防治、
地理資訊遙測系統、智慧財產、醫療診斷、軍事、照片檔案與零售目錄 等。原始的 CBIR 系統,會先將書籍資料庫進行預處理,並且在使用者 輸入查詢時,與資料庫中預處理完成的資料進行比對,以輸出查詢結果。
如圖 1 所示:
圖 1 CBIR 系統示意圖
尺度不變特徵轉換(Scale-Invariant Feature Transform, SIFT)(Lowe, 2004)廣泛被 CBIR 採用作為特徵擷取與辨識的演算法(Li, Kong, Wang,
& Fu, 2009; Xu, Wu, Liu, Zhu, & Shi, 2008; Do, Kijak, Furon, & Amsaleg, 2010)。SIFT 被廣泛地應用於許多領域,諸如物件辨識、3D 建模、手勢 偵測、影像追蹤等,為電腦視覺(computer vision)的一種重要的解決方 案。SIFT 演算法的主要優點為,其特徵描述器(feature descriptor)對於 以下數值保有不變性:「尺度(Scale)」、「旋轉(Rotation)」、「明度
(Illumination)」、「視點(Viewpoint)」(Sinha, 2000)。
圖 2 特徵點對應線
資料來源:自製。
使用 SIFT 演算法作物件辨識時主要有兩個步驟:「特徵點抓取
(feature extraction)」與「特徵點比對(feature matching)」。在特定的應
徵比對的效能成為大型 CBIR 系統的重要議題。
近年來,圖形處理器(graphic processing units)因為具有針對大量 資料的平行運算能力而被廣泛運用在科學與工程計算上,例如流體動力 學、分子動力學、地質探勘、大氣科學、資料探勘、金融財務等等。
Heymann、Muller、Smolic、Frohlich、Wiegand 等人(2007)的研 究提出透過圖形處理器平行化語言 GPGPU 對 SIFT 演算法進行加速。
CUDA 發表之後,Warn、Emeneker、Cothren、Apon 等人(2009)也提 出使用 CUDA GPU 進行 SIFT 的加速。另外,Bonato、Marques、
Constantinides 等人(2008)、Huang、Huang、Ker、Chen 等人(2012)
以及 Huo、Pan、Huo、Zhou 等人(2012)的研究則提出以平行化演算 法加速 SIFT,無論是用硬體加速或軟體加速上皆獲得不錯的實驗結果。
1999 年版本的 SIFT 演算法先計算所有點對點的距離,再採用 k-近 鄰搜尋法(k nearest neighbor)進行特徵點的比對(Lowe, 1999)。這種方法 對於單線程的運算來說為一件沒有效率且耗時的工作,但是卻具有高度 的可平行化的機會。
第二節 研究目的
基於以上論述,如果能夠利用 GPU 加速 SIFT 特徵點比對的效率,
整體效能將可以有效的提升。為了改善傳統的 SIFT 演算法特徵比對的
效能,Lowe 於 2004 年提出採用 K-D Tree 以降低特徵比對的複雜度。
K-D Tree 為一種空間分割的資料結構,能夠將內含的點儲存在一個 k-維 度的空間。此方法雖然可以加速比對部分的運算時間,但是卻有精確度 上的缺陷與建樹時需要大量記憶體的負擔。相反地,傳統的 K-NN 演算 法,沒有精確度上的誤差與建樹的記憶體負擔,且其具有高度平行化的 機會,有利於實現於 GPU 上以加速特徵比對的程序。
因此,本研究將提出一個針對加速 SIFT 特徵比對程序的平行運算 架構,並實現於 NVIDIA®圖形處理器上,透過 GPU 的平行運算能力,
能夠有效降低 SIFT 特徵比對的執行時間,進而提升大型 CBIR 的效能。