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

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

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

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

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

1 彩色局部角度二值模式

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

  1.png

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

  2.jpg

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

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

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

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

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

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

001.jpg

002.jpg

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

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

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

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

3 實(shí)驗(yàn)及討論

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

  本文所采用的評(píng)價(jià)準(zhǔn)則是加速比,即:

  T7QJSN~HDFLROOW7D}M]}_6.jpg

003.jpg

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

005.jpg

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

007.jpg

  圖4是不同圖像個(gè)數(shù)下的CLABP紋理特征提取加速比。從圖中可以看出,隨著圖像個(gè)數(shù)增加,加速比也隨之增多,但是當(dāng)圖像個(gè)數(shù)穩(wěn)定為200個(gè)之后,加速比提升不明顯。這是因?yàn)楫惒絺鬏敽筒⑿杏?jì)算加速已經(jīng)趨于穩(wěn)定,進(jìn)一步提升加速比需要加入其他的加速方法或技巧。

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

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

  參考文獻(xiàn)

  [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的多分辨率織物疵點(diǎn)檢測(cè)[J].微型機(jī)與應(yīng)用,2012,31(23):45-47.

  [4] 郭春鳳,何建農(nóng).彩色與紋理不變性的陰影消除新算法[J].微型機(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ī)模并行處理器編程實(shí)戰(zhàn)[M].陳曙暉,熊淑華,譯.北京:清華大學(xué)出版社,2010.

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

  [8] 張舒,褚艷利,趙開(kāi)勇,等.GPU高性能運(yùn)算之CUDA[M].北京:中國(guó)水利水電出版社,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)載。