《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于GPU的CLABP特征提取方法研究
基于GPU的CLABP特征提取方法研究
2014年微型機與應(yīng)用第16期
羅 沛1,梁 鵬2,3
1.英偉達半導體(深圳)有限公司,廣東 深圳 518057; 2.廣東技術(shù)師范學院 計算機科學學院,廣東 廣州 510665; 3.華南理工大學 計算機科學與工程學院,廣東 廣州 510006
摘要: 彩色局部角度二值模式(CLABP)可以有效地提取彩色圖像中的紋理特征,但是算法復雜、計算量大。針對這一問題,采用GPU實現(xiàn)CLABP特征提取和表示的并行方法。該方法一方面使用異步處理的方式實現(xiàn)CLABP的并行加速,另一方面采用共享內(nèi)存的形式減少讀取數(shù)據(jù)的次數(shù)。為了驗證該方法的有效性,在Outex紋理圖像數(shù)據(jù)庫上與CPU程序性能進行對比,結(jié)果表明,GPU實現(xiàn)方法可以提升加速比約25倍
Abstract:
Key words :

  摘  要彩色局部角度二值模式(CLABP)可以有效地提取彩色圖像中的紋理特征,但是算法復雜、計算量大。針對這一問題,采用GPU實現(xiàn)CLABP特征提取和表示的并行方法。該方法一方面使用異步處理的方式實現(xiàn)CLABP的并行加速,另一方面采用共享內(nèi)存的形式減少讀取數(shù)據(jù)的次數(shù)。為了驗證該方法的有效性,在Outex紋理圖像數(shù)據(jù)庫上與CPU程序性能進行對比,結(jié)果表明,GPU實現(xiàn)方法可以提升加速比約25倍。

  關(guān)鍵詞: GPU;彩色局部角度二值模式;異步處理

  局部紋理特征在圖像分類和目標識別中得到廣泛應(yīng)用,是圖像的重要特征之一。局部二值模式LBP(Local Binary Patterns)[1-2]具有良好的幾何不變性、角度不變性和旋轉(zhuǎn)不變性等適應(yīng)性,在許多方法中得到了應(yīng)用和推廣[3-4]。然而LBP特征對圖像光照變化敏感,針對這一問題,參考文獻[5]提出了一種彩色局部角度二值模式CLABP(Color Local Angel Binary Patterns),通過提取不同信號通道之間的像素夾角,對不同光照變化下的彩色人臉圖像進行分類,提高了不同光照變化條件下對人臉圖像識別的準確率。但是對于大量的圖像檢索數(shù)據(jù)而言,CPU實現(xiàn)的CLABP紋理特征提取方法速度較慢,對圖像檢索性能產(chǎn)生很大影響。解決這一問題的方法是采用GPU對CLABP紋理特征提取方法進行編程,實現(xiàn)并行計算加速。近年來,已經(jīng)有部分學者嘗試使用GPU對各種圖像方法進行編碼[6-8]。

  本文采用GPU對參考文獻[5]中提出的CLABP實現(xiàn)并行化編程。首先將方法分解為GPU和CPU任務(wù),然后對GPU實現(xiàn)部分進行核函數(shù)處理和共享內(nèi)存設(shè)計,最后通過實驗驗證所提方法的有效性。實驗結(jié)果表明,本文采用的GPU實現(xiàn)方法在Outex紋理圖像數(shù)據(jù)庫中能取得將近25倍的加速比。

1 彩色局部角度二值模式

  參考文獻[5]針對紋理特征對光照變化下識別率不高的問題,提出了彩色局部角度二值模式紋理特征。如圖1所示,無論空間矢量的大小發(fā)生怎樣的變化,它與各個通道的夾角始終沒有發(fā)生變化。定義Y、Cb、Cr三信號模型中任意兩個信號通道之間像素值的夾角為,定義空間矢量r與信號通道內(nèi)投影與參光線夾角為?茲0,則根據(jù)CLABP紋理特征的定義,用旋轉(zhuǎn)不變的uniform LBP對圖中任意像素點z及其鄰近像素點的彩色角度進行編碼如下:

  1.png

  其中,s(x)是階躍函數(shù),H是對中心像素點周圍P個像素點的比較結(jié)果。將所有的圖像像素點用網(wǎng)格形式進行統(tǒng)計,最后用級聯(lián)的形式將所有網(wǎng)格的CLABP紋理特征連成CLABP直方圖,如式(2)所示:

  2.jpg

2 CLABP紋理特征并行實現(xiàn)

  CLABP紋理特征提取分為以下三個部分實現(xiàn):

 ?。?)用CPU將彩色圖像分為Y、Cb、Cr顏色圖像,然后將圖像數(shù)據(jù)分別送入GPU顯存;

 ?。?)啟動核函數(shù)計算Y、Cb、Cr顏色圖像的CLABP紋理特征;

 ?。?)將CLABP紋理特征從GPU送回CPU。

  CLABP的三個實現(xiàn)步驟是串行實現(xiàn)的,而影響實現(xiàn)方法性能的關(guān)鍵在于步驟之間的數(shù)據(jù)傳輸。為了利用GPU的多核并行計算和多存儲器功能,需要使用異步傳輸?shù)姆绞綄崿F(xiàn)數(shù)據(jù)傳輸,即主機無需等待設(shè)備端完成計算,就可返回繼續(xù)準備下一個圖像的傳輸和接收工作,如圖2所示。

001.jpg

002.jpg

  GPU中的并行計算由核函數(shù)完成,核函數(shù)由網(wǎng)格、線程塊和線程組成,啟動一個核函數(shù)就對應(yīng)一個網(wǎng)格,網(wǎng)格由多個線程塊組成,每個線程塊包括多個線程。計算時將線程塊送入多核處理器中運行,線程塊的最小執(zhí)行單元為warp,每個warp由32個線程組成,而CLABP計算屬于二維的塊計算,因此將線程塊大小定義為[32,32]。

  以P=8,R=1為例,當核函數(shù)開始計算時,每個線程對圖像中的一個像素點進行CLABP編碼,由于CLABP是對Y、Cb、Cr顏色模型中三個信號通道內(nèi)的圖像像素值之間的夾角進行計算,因此每次計算均需要從全局存儲器中讀取三幅圖像中的3×9=27個像素點值,而頻繁地讀取全局存儲器將會導致?lián)砣F(xiàn)象。

  為了減少并行計算時對全局存儲器的頻繁讀取,GUP中提供了大量的共享內(nèi)存和寄存器解決這一問題。同一個線程塊內(nèi)的程序通過訪問共享內(nèi)存可以獲取到計算所需數(shù)據(jù),無需再訪問全局存儲器,而寄存器可以保存每個線程的私有數(shù)據(jù)。

  因此在計算像素點的CLABP值時,每次將整個線程塊所需的34×34個像素點的值送入共享內(nèi)存,則每個像素點的數(shù)據(jù)均可以讀取共享內(nèi)存以提高數(shù)據(jù)的讀取速度。將每個像素點的CLABP值計算完成后送入寄存器,進行直方圖的統(tǒng)計。再將每個線程塊的直方圖統(tǒng)計結(jié)果送回全局存儲器進行統(tǒng)計,得到最終的CLABP直方圖。

3 實驗及討論

  本文采用的實驗平臺是Windows 7,MATLAB 2011b,聯(lián)想ThinkPad T420筆記本,其CPU為Intel Core i7 2.8 GHz,顯卡為NVIDIA NVS 4200M。評價數(shù)據(jù)集是公開的紋理數(shù)據(jù)庫Outex[9]。該數(shù)據(jù)庫包含了大量的紋理圖片,包括自然紋理和表面紋理,而且提供了不同的光照條件、旋轉(zhuǎn)角度和分辨率。圖3是Outex紋理圖像數(shù)據(jù)庫的部分示例圖像。所有的圖像尺度都重新變換為128像素×128像素大小,CLABP的局部區(qū)域大小采用3像素×3像素和4像素×4像素兩種尺寸。

  本文所采用的評價準則是加速比,即:

  T7QJSN~HDFLROOW7D}M]}_6.jpg

003.jpg

  對于每幅圖像,對GPU提取的CLABP特征進行10次實驗,加速比取這10次實驗的平均值。表1為不同圖像數(shù)量下CLABP特征提取時間及加速比。

005.jpg

  從表1可以看出,本文采用的GPU實現(xiàn)方法比CPU實現(xiàn)方法效率要高,而且隨著處理的圖像個數(shù)的增多,加速比逐漸變大。這是因為傳輸圖像數(shù)據(jù)采用的是異步傳輸?shù)姆绞?,傳輸?shù)膱D像數(shù)量越多,加速越明顯,效果越好。

007.jpg

  圖4是不同圖像個數(shù)下的CLABP紋理特征提取加速比。從圖中可以看出,隨著圖像個數(shù)增加,加速比也隨之增多,但是當圖像個數(shù)穩(wěn)定為200個之后,加速比提升不明顯。這是因為異步傳輸和并行計算加速已經(jīng)趨于穩(wěn)定,進一步提升加速比需要加入其他的加速方法或技巧。

  本文針對CLABP特征提取速度較慢的問題,采用GPU對CLABP特征提取方法進行加速,通過異步傳輸和核函數(shù)并行計算提高了紋理特征的計算效率。實驗結(jié)果表明,本文所采用的GPU實現(xiàn)方法在Outex紋理數(shù)據(jù)庫上具有將近25倍的加速比。對于其他的紋理特征提取方法,本文方法也同樣適用。

  由于本文主要研究程序方面的優(yōu)化,對于GPU硬件優(yōu)化并無深入,將CLABP紋理特征與GPU硬件結(jié)合將是今后研究的重點。

  參考文獻

  [1] AHONEN T, HADID A, PIETIK?魧INEN M. Face description with local binary pattern: application to face recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2006, 28(12):2037-2041.

  [2] OJALA T, PIETIKAINEN M, MAENPAA T. Multiresolution gray-scale and rotation-invariant texture classification with local binary patterns[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(7):971-987.

  [3] 林似水,鄭力新.聯(lián)合LBP與SOM的多分辨率織物疵點檢測[J].微型機與應(yīng)用,2012,31(23):45-47.

  [4] 郭春鳳,何建農(nóng).彩色與紋理不變性的陰影消除新算法[J].微型機與應(yīng)用,2013,32(5):38-41.

  [5] LEE S H, CHOI J Y, RO Y M, et al. Local color vector binary patterns from multi-channel face images for face recognition[J]. IEEE Transactions on Image Processing, 2012, 21(4):2347-2353.

  [6] KIRK D B, HWU W W.大規(guī)模并行處理器編程實戰(zhàn)[M].陳曙暉,熊淑華,譯.北京:清華大學出版社,2010.

  [7] SANDERS J, KANDROT E. GPU高性能編程CUDA實戰(zhàn)[M].聶雪軍,譯.北京:機械工業(yè)出版社,2011.

  [8] 張舒,褚艷利,趙開勇,等.GPU高性能運算之CUDA[M].北京:中國水利水電出版社,2009.

  [9] OJALA T, MAENPAA T, PIETIKAINEN M, et al. Outex-a new framework for empirical evaluation of texture analysis algorithms[C]. Proceedings of the 16th Conference on Pattern Recognition, 2002:701-706.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。