摘 要:傳統(tǒng)SIFT算法的優(yōu)化和實(shí)現(xiàn)都是針對(duì)常用處理器(CPU)提出的,處理速度慢,實(shí)時(shí)性很難得到保證。通過實(shí)現(xiàn)基于NVIDIA公司CUDA架構(gòu)圖形處理器(GPU)的SIFT特征提取算法,優(yōu)化了數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),提高了數(shù)據(jù)訪問效率。實(shí)驗(yàn)結(jié)果表明,基于GPU的SIFT特征提取算法充分利用GPU的并行處理能力,計(jì)算速度提高幅度明顯,圖像越大越復(fù)雜,提高的幅度越大,處理1 600×1 200圖像時(shí)甚至可達(dá)近15倍的加速比,極大地提高了SIFT算法在實(shí)際應(yīng)用中的實(shí)時(shí)性。
關(guān)鍵詞:特征提取; 描述符; SIFT; SIFT GPU
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)15-0041-03
Study of SIFT Feature Extraction Algorithm Based on GPU
WANG Rui1,2, LIANG Hua1, CAI Xuan-ping1
(1.College of Electric Science Engineering, National University of Defense Technology, Changsha 410073,China;
2.Seventh Detachment,Corps Command of CAPF, Urumchi 830000,China)
Abstract: The traditional SIFT algorithm realized by CPU has low processing speed, whose real-time processing performance is difficult to obtain. The SIFT feature extraction algorithm based on graphic processing unit(GPU) of compute unified device architecture(CUDA) from NVIDIA corporation, which optimized the data storage structure and enhanced the data accessing efficiency. Experimental results show that the GPU-based SIFT feature extraction algorithm takes full advantage of the parallel processing ability of the GPU, whose calculation speed is greatly improved and nearly 20 times speedup rate can be acquired for an image with the resolution of 1 600×1 200. By virtue of GPU, the real-time processing ability of SIFT algorithm can be greatly improved in practical application.
Keywords: feature extraction; descriptor; SIFT; SIFT GPU
0 引 言
Lowe 等人在總結(jié)現(xiàn)有基于局部不變量技術(shù)的特征提取方法的基礎(chǔ)上提出的 SIFT (Scale-Invariant Feature Transform)算法是一種提取圖像局部特征的算法[1],SIFT算法對(duì)圖像間存在縮放、旋轉(zhuǎn)、平移等幾何形變及噪聲、光照變化等圖像變化因素有非常好的穩(wěn)定性,在圖像匹配、目標(biāo)識(shí)別、遙感影像配準(zhǔn)等領(lǐng)域得到了很好的應(yīng)用。但該算法復(fù)雜性較高,在一般的應(yīng)用中算法的實(shí)現(xiàn)都依賴于CPU完成,會(huì)耗費(fèi)大量的CPU周期,很難達(dá)到實(shí)際應(yīng)用中實(shí)時(shí)性的要求。與此同時(shí),隨著可編程圖像處理器GPU的不斷走向成熟,當(dāng)前的GPU已經(jīng)具有了很強(qiáng)的并行計(jì)算能力,浮點(diǎn)運(yùn)算能力甚至可以達(dá)同代CPU的10倍以上,尤其是Nvidia公司的CUDA(Compute Unified Device Architecture,統(tǒng)一計(jì)算設(shè)備架構(gòu))結(jié)構(gòu)的推出,使得GPU具有了更好的可編程性,這種可編程能力使其對(duì)一些圖像處理操作進(jìn)行加速成為可能[2]。本文通過實(shí)驗(yàn)對(duì)傳統(tǒng)的SIFT算法實(shí)現(xiàn)與利用GPU實(shí)現(xiàn)SIFT算法原理進(jìn)行了分析闡述,并通過實(shí)驗(yàn)對(duì)兩種方式的實(shí)現(xiàn)結(jié)果進(jìn)行了對(duì)比分析。……