999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

DirectCompute加速圖像處理方法的研究

2012-04-12 00:00:00張益男袁杰
現(xiàn)代電子技術(shù) 2012年22期

摘 要:當(dāng)代圖像處理,特別是基于大量密集科學(xué)計(jì)算的數(shù)據(jù)處理,需要用高度的并行處理技術(shù)來(lái)解決計(jì)算效率問(wèn)題。然而處理速度更多依賴(lài)于具體的算法和系統(tǒng)實(shí)現(xiàn)間的相互聯(lián)系,這就對(duì)進(jìn)行并行處理的工作人員的并行技術(shù)及相關(guān)經(jīng)驗(yàn)提出了一定的要求。為完成并行處理并加大并行計(jì)算效益,采用了DirectCompute方法。針對(duì)工程中的角點(diǎn)匹配計(jì)算時(shí)延問(wèn)題,憑借有效的硬件資源,對(duì)其進(jìn)行了并行處理,提高了程序執(zhí)行效率,并縮短了計(jì)算延時(shí)。

關(guān)鍵詞:圖像三維重建; 并行計(jì)算; GPU; DirectCompute

中圖分類(lèi)號(hào):TN91934; TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1004373X(2012)22005504

隨著并行處理機(jī)及并行處理技術(shù)的飛速發(fā)展,并行計(jì)算已逐步應(yīng)用于科學(xué)計(jì)算領(lǐng)域及相關(guān)工程領(lǐng)域,并不斷取得卓越成果。圖像并行處理技術(shù)是一種將并行計(jì)算應(yīng)用于圖像處理中以提高圖像處理速度的技術(shù)。如何設(shè)計(jì)算法并通過(guò)系統(tǒng)實(shí)現(xiàn)完成并行處理并使得并行計(jì)算效益最大,這是圖像并行處理技術(shù)應(yīng)用的一個(gè)難題。對(duì)于工程中的角點(diǎn)匹配計(jì)算時(shí)延問(wèn)題,DirectCompute方法有效地縮短了計(jì)算時(shí)延。

1 圖像三維重建簡(jiǎn)介

圖像三維重建是圖像工程中的研究對(duì)象。通過(guò)使用多臺(tái)攝像機(jī),從360°對(duì)一個(gè)做自轉(zhuǎn)運(yùn)動(dòng)的物體進(jìn)行拍攝,從得到的同一時(shí)刻該物體的圖像以及圖像間的關(guān)聯(lián)信息計(jì)算該運(yùn)動(dòng)物體的三維結(jié)構(gòu)并重建出來(lái)。圖1是某一時(shí)刻對(duì)各攝像機(jī)單幀圖像組處理的流程圖。

圖1 三維重建在整個(gè)圖像三維重建過(guò)程中,特征點(diǎn)檢測(cè)與匹配[1](圖1中第2步)是工程開(kāi)始階段非常重要的一步。它將不同攝像機(jī)同一時(shí)刻拍到的運(yùn)動(dòng)物體圖像,經(jīng)過(guò)多尺度Harris角點(diǎn)HH檢測(cè)算法[24]找出圖像之間關(guān)聯(lián)的角點(diǎn)組,并通過(guò)寬基線(xiàn)匹配算法[5]對(duì)這些角點(diǎn)進(jìn)行粗匹配最后再由引導(dǎo)匹配[6]算法根據(jù)不同圖像之間角點(diǎn)的相似性匹配圖像。

對(duì)于待匹配的2幅圖像,通過(guò)Harris角點(diǎn)檢測(cè)得到的每一組角點(diǎn)p1(x,y)、 p2(x,y),分別以它們作為中心原點(diǎn)畫(huà)邊長(zhǎng)為w的正方形,并以該正方形為窗口對(duì)兩幅圖像進(jìn)行截取,由這樣得到的2個(gè)二維矩陣MAW×W,MBW×W計(jì)算出關(guān)于該兩組角點(diǎn)的相關(guān)系數(shù)。由這樣計(jì)算出的所有角點(diǎn)的相關(guān)系數(shù)組成了相關(guān)系數(shù)矩陣CK×L,其中K為圖像1中的角點(diǎn)組數(shù),L為圖像2中的角點(diǎn)組數(shù)。最后再通過(guò)相關(guān)系數(shù)矩陣找出圖像1與圖像2中相似性最高的對(duì)應(yīng)角點(diǎn),從而實(shí)現(xiàn)粗匹配。引導(dǎo)匹配則是根據(jù)粗匹配的結(jié)果,通過(guò)相對(duì)應(yīng)角點(diǎn)的位置對(duì)圖像劃定一個(gè)范圍,并將范圍內(nèi)每一個(gè)元素作為新的角點(diǎn)進(jìn)行粗匹配過(guò)程,從而使匹配更精確。

實(shí)驗(yàn)測(cè)得,通過(guò)Harris角點(diǎn)檢測(cè)算出的兩幅待匹配圖像角點(diǎn)數(shù)目一般為800組左右。截取窗口邊長(zhǎng)w= 41時(shí),匹配效果最好。由于進(jìn)行初始匹配時(shí)并不能確定兩幅圖像的角點(diǎn)組間的相關(guān)性,因此需要對(duì)其進(jìn)行兩兩匹配。經(jīng)計(jì)算,僅完成一次粗匹配中的窗口矩陣點(diǎn)乘的操作就需要大約11億次的浮點(diǎn)運(yùn)算,而后續(xù)的引導(dǎo)匹配則更是重復(fù)這樣的計(jì)算過(guò)程。由此可以看出,整個(gè)角點(diǎn)的匹配工作不僅占用內(nèi)存資源,而且耗時(shí)嚴(yán)重。實(shí)驗(yàn)測(cè)得,特征點(diǎn)檢測(cè)與匹配過(guò)程大約耗時(shí)800 s,不用說(shuō)實(shí)時(shí)顯示,對(duì)于圖像三維重建工程的后續(xù)工作也是一種漫長(zhǎng)的等待。要尋求一種解決方案,在不影響數(shù)據(jù)計(jì)算結(jié)果的情況下,盡可能加快其計(jì)算過(guò)程。

2 DirectCompute簡(jiǎn)介

圖形處理器(Graphics Processing Unit,GPU)又稱(chēng)圖形處理單元,是一種專(zhuān)用圖形渲染設(shè)備,是顯卡的計(jì)算核心。GPU所擁有的計(jì)算核心數(shù)目遠(yuǎn)遠(yuǎn)大于CPU,這樣的硬件設(shè)計(jì)架構(gòu)決定了GPU擁有比CPU強(qiáng)大得多的浮點(diǎn)運(yùn)算能力[79]。

DirectCompute是微軟開(kāi)發(fā)和推廣的一種用于GPU通用計(jì)算的應(yīng)用程序接口,集成在Microsoft DirectX(微軟創(chuàng)建的多媒體編程接口)內(nèi)。除了GPU通用計(jì)算,DirectCompute還支持CPU+GPU異構(gòu)運(yùn)算,即CPU運(yùn)算復(fù)雜的串行序列代碼,而GPU運(yùn)行大規(guī)模的并行應(yīng)用程序,CPU與GPU分工合作,異步執(zhí)行,組成協(xié)同處理環(huán)境[10]。DirectCompute的編程模型基于Direct3D著色器模型架構(gòu),并且采用高級(jí)渲染語(yǔ)言HLSL(High Level Shader Language)進(jìn)行編程。

相比于一般的GPU通用計(jì)算,DirectCompute擁有以下特點(diǎn):

(1) 由于是集成在DirectX中,因此與其中的D3D圖形資源(紋理、緩存等)可以進(jìn)行有效的互操作;

(2) 包含立方環(huán)境貼圖cubemap和多級(jí)貼圖mipmapping在內(nèi)的所有紋理映射技術(shù);

(3) 使用類(lèi)HLSL渲染語(yǔ)言;

(4) 在Windows平臺(tái)上對(duì)所有顯卡供應(yīng)商提供統(tǒng)一圖形API;

(5) 對(duì)于不同硬件及產(chǎn)生的超時(shí),DirectCompute盡量保證它們的結(jié)果一致性;

(6) 提供存儲(chǔ)溢出檢測(cè)。

在DirectX[11]結(jié)構(gòu)中有很多種著色器模型,而微軟在DirectCompute中增添了一種新的著色器類(lèi)型——Compute Shader,計(jì)算著色器——用來(lái)處理更廣泛的通用計(jì)算問(wèn)題。計(jì)算著色器并不屬于圖形流水線(xiàn)中的某一級(jí),它通過(guò)其中的圖形資源(例如渲染目標(biāo)、緩存或紋理)來(lái)與流水線(xiàn)中的其他模塊進(jìn)行交互。不同于向量著色器與像素著色器,計(jì)算著色器不必對(duì)處理的數(shù)據(jù)和線(xiàn)程完成一對(duì)一的映射。一條線(xiàn)程可以處理多個(gè)數(shù)據(jù),并且應(yīng)用程序可以根據(jù)計(jì)算的規(guī)模來(lái)直接分配所需的線(xiàn)程數(shù)。此外,計(jì)算著色器允許亂序內(nèi)存訪問(wèn),即可以實(shí)現(xiàn)對(duì)緩存中任意位置的寫(xiě)操作。

3 DirectCompute方法的實(shí)現(xiàn)

計(jì)算著色器通過(guò)名為“Dispatch”的函數(shù)來(lái)規(guī)劃和分配參與計(jì)算的線(xiàn)程數(shù),如圖2所示,Dispatch(X,Y,Z)表示線(xiàn)程組在x,y和z維度的線(xiàn)程塊數(shù)分別為X,Y和Z。線(xiàn)程組中每一個(gè)元素被看做一個(gè)線(xiàn)程塊,用HLSL語(yǔ)言表示成:numthreads(nx, ny, nz),其中nx,ny,nz分別是線(xiàn)程塊中每個(gè)維度上線(xiàn)程的數(shù)量。SV_GroupID表示線(xiàn)程組中每個(gè)維度上線(xiàn)程塊的索引ID,SV_GroupThreadID表示線(xiàn)程塊中每個(gè)線(xiàn)程的索引ID,它們都是三維的,SV_DispatchThreadID則是線(xiàn)程在整個(gè)線(xiàn)程組中完整的索引ID映射。SV_GroupIndex則是將線(xiàn)程在線(xiàn)程組內(nèi)索引ID轉(zhuǎn)換成一維的形式,其計(jì)算方法為:

groupIndex= groupThreadID.x*dimx*dimy+groupThreadID.y*dim+groupThreadID.x。

使用計(jì)算著色器進(jìn)行通用計(jì)算一般分為以下幾個(gè)步驟:

(1) 創(chuàng)建D3D設(shè)備和用來(lái)切換的上下文;

(2) 創(chuàng)建計(jì)算著色器CS并對(duì)其進(jìn)行編譯;

(3) 創(chuàng)建輸入資源對(duì)象Input Resource并向其填充輸入數(shù)據(jù);

(4) 創(chuàng)建資源視圖SRV,綁定輸入資源對(duì)象;

(5) 創(chuàng)建輸出資源對(duì)象Output Resource;

(6) 創(chuàng)建資源視圖UAV,綁定輸出資源對(duì)象;

(7) 利用計(jì)算著色器CS進(jìn)行多線(xiàn)程計(jì)算;

(8) 將計(jì)算結(jié)果傳回資源視圖UAV綁定的輸出資源對(duì)象中;

(9) 從輸出資源對(duì)象中取出數(shù)據(jù),釋放資源。

#define W_SIZE 41

#define NUM_IN_GROUP_X 850

//X維度線(xiàn)程組數(shù)量

#define NUM_IN_BLOCK_X 850

//X維度線(xiàn)程組中線(xiàn)程數(shù)量

structBufType{

//定義結(jié)構(gòu)體

float data;

}

//初始化工作

CreateComputeDevice(pDevice, pContext);

//創(chuàng)建D3D設(shè)備和上下文

CompileFromFile(pSrcFile, pDevice, pBlob);

//從HLSL文件編譯計(jì)算著色器

CreateStructureBuffer(pDevice, InputBuffer0, pInBuf0);

//創(chuàng)建結(jié)構(gòu)體緩存并傳入數(shù)據(jù)

CreateStructureBuffer(pDevice, InputBuffer1, pInBuf1);

CreateStructureBuffer(pDevice, OutputBuffer, pOutBuf);

CreateBufferSRV(pDevice, pInBuf0, pInBuf1, pInputBufferSRV);

//輸入緩存綁定SRV

CreateBufferUAV(pDevice, pOutBuf, pOutputBufferUAV);

//輸出緩存綁定UAV

pContext->Dispath(NUM_IN_GROUP_X, 1, 1);

//分配線(xiàn)程組

CreateAndCopyToDebugBuf(pDevice, pContext, pOutBuf);

//將計(jì)算結(jié)果傳回CPU

//釋放資源

圖2 通過(guò)“dispatch”進(jìn)行線(xiàn)程規(guī)劃按照這個(gè)步驟開(kāi)始進(jìn)行對(duì)角點(diǎn)組的匹配工作。著色器模型中的緩存類(lèi)型選用structured buffer,當(dāng)然之前要先定義一個(gè)結(jié)構(gòu)體,緩存中每個(gè)元素都是這個(gè)結(jié)構(gòu)體的對(duì)象。在處理窗口矩陣相關(guān)系數(shù)矩陣計(jì)算的時(shí)候,將所有窗口矩陣均按行順序存儲(chǔ)方式存為2個(gè)大矩陣Matrix_A和Matrix_B中。創(chuàng)建兩個(gè)結(jié)構(gòu)體緩存InputBuffer0和InputBuffer1并將這兩個(gè)矩陣存入,同時(shí)創(chuàng)建兩個(gè)資源視圖InputBufferSRV0和InputBufferSRV1對(duì)緩存進(jìn)行綁定。另外創(chuàng)建一個(gè)讀寫(xiě)結(jié)構(gòu)體緩存OutputBuffer并綁定到資源視圖OutputBufferUAV上。接下來(lái)利用Dispatch分配線(xiàn)程數(shù),考慮需要進(jìn)行匹配的角點(diǎn)組數(shù)量以及計(jì)算著色器模型中對(duì)線(xiàn)程數(shù)目的限定,在x維度上分配850個(gè)線(xiàn)程組,y維度和z維度為1,每個(gè)線(xiàn)程組中在x維度上分配850個(gè)線(xiàn)程數(shù),y維度和z維度也均為1。這樣做的目的是,每個(gè)線(xiàn)程組內(nèi)的線(xiàn)程數(shù)量對(duì)應(yīng)一個(gè)大矩陣的元素,使其每個(gè)線(xiàn)程完成一次窗口矩陣的2范數(shù)與點(diǎn)乘運(yùn)算;所有線(xiàn)程組數(shù)量對(duì)應(yīng)另一個(gè)大矩陣的元素,從而使得這些計(jì)算并發(fā)進(jìn)行,達(dá)到加速優(yōu)化的效果。利用DirectCompute進(jìn)行并行匹配計(jì)算的一些核心代碼請(qǐng)見(jiàn)上圖。

4 性能測(cè)試

CPU與DirectCompute加速方案測(cè)試結(jié)果對(duì)比如表1所示。

由表1可知,在實(shí)驗(yàn)中,利用DirectCompute進(jìn)行粗匹配的加速效果是十分顯著的,對(duì)于GeForce GTX 460顯卡來(lái)說(shuō),整個(gè)匹配工作幾乎是“瞬間”完成的。根據(jù)GTX460的工作手冊(cè),可以看到其支持的DirectX的版本為11.0,對(duì)應(yīng)計(jì)算著色器的模型為CS5.0,對(duì)于DirectCompute的支持也更充分。

為了更好地測(cè)試DirectCompute的加速性能,對(duì)基于GTX 460加速的整個(gè)運(yùn)行流程進(jìn)行了分段測(cè)試,包括窗口矩陣2范數(shù)的計(jì)算時(shí)間、窗口矩陣點(diǎn)乘的時(shí)間以及數(shù)據(jù)傳輸?shù)臅r(shí)間,如表2所示。從表中可以看到,利用DirectCompute進(jìn)行計(jì)算的時(shí)間大約為4.5 ms,數(shù)據(jù)傳輸時(shí)間大約為40 ms,也就是說(shuō)整個(gè)角點(diǎn)粗匹配過(guò)程中,利用DirectCompute加速后的計(jì)算時(shí)間所占百分比不到1%,數(shù)據(jù)傳輸?shù)臅r(shí)間占整個(gè)執(zhí)行時(shí)間的8%。就是說(shuō)GPU的執(zhí)行效率是比較低的,這也是基于GPU的通用計(jì)算上所需要解決的典型問(wèn)題。另外可以看到,大矩陣Matrix_A的2范數(shù)計(jì)算階段總時(shí)間和大矩陣相乘階段總時(shí)間很長(zhǎng),特別是后者,這是創(chuàng)建D3D設(shè)備和相關(guān)圖形資源以及釋放資源造成的延時(shí)。

5 結(jié) 語(yǔ)

目前并行計(jì)算已經(jīng)迅速發(fā)展為與眾多工程類(lèi)學(xué)科交叉的一門(mén)計(jì)算科學(xué),并已成為許多科研和工程技術(shù)人員進(jìn)行科學(xué)研究和開(kāi)發(fā)的重要手段。并行處理技術(shù)也在眾多領(lǐng)域取得顯著成果,圖像并行處理技術(shù)更是在傳統(tǒng)的圖像處理領(lǐng)域發(fā)揮著重要作用。然而并行處理技術(shù)在圖像處理方面的發(fā)展也面臨許多挑戰(zhàn),其中最主要的就是如何提高解決實(shí)際復(fù)雜問(wèn)題的綜合能力,包括圖像處理中復(fù)雜問(wèn)題求解和處理速度高速化問(wèn)題。

本文主要是將基于GPU的高性能并行計(jì)算技術(shù)(DirectCompute方法)應(yīng)用于實(shí)際處理的圖像工程中。針對(duì)工程中具體的角點(diǎn)匹配計(jì)算時(shí)延問(wèn)題,依照并行處理規(guī)則,憑借有效的硬件資源,對(duì)其進(jìn)行并行處理,提高程序執(zhí)行效率,縮短計(jì)算延時(shí)。隨著并行計(jì)算的不斷發(fā)展以及圖像并行處理技術(shù)的日益成熟,相信高性能并行計(jì)算必將成為圖像處理不可或缺的組成部分并將不斷推動(dòng)其走向新的階段。

參 考 文 獻(xiàn)

[1] 聶曉桃,王慧.一種改進(jìn)的特征點(diǎn)匹配算法[J].科技廣場(chǎng),2010(1):9899.

[2] 薛翠紅,于洋,梁艷,等.多攝像機(jī)視野分界線(xiàn)恢復(fù)算法[J].無(wú)線(xiàn)電通信技術(shù),2012(2):6668.

[3] 陳白帆,蔡自興.基于尺度空間理論的Harris角點(diǎn)檢測(cè)[J].中南大學(xué)學(xué)報(bào),2005,36(5):751753.

[4] 蔡勝利,張會(huì)清.基于Harris角點(diǎn)檢測(cè)的圖像旋轉(zhuǎn)測(cè)量[J].計(jì)算機(jī)測(cè)量與控制,2011(1):3032.

[5] 左森,郭曉松.寬基線(xiàn)視察圖像的拼接算法[J].計(jì)算機(jī)工程,2007,33(10):175176.

[6] 梁棟,童強(qiáng),屈磊,等.一種基于極幾何和單應(yīng)約束的圖像匹配算法[J].系統(tǒng)仿真學(xué)報(bào),2006(7):4446.

[7] 厲旭杰.GPU加速的圖像匹配技術(shù)[J].計(jì)算機(jī)工程與應(yīng)用,2012(2):173176.

[8] LI Ping, SUN Hanqiu, SHENG Bin, et al. Image stylization with enhanced structure on GPU(英文版)[J].中國(guó)科學(xué)信息科學(xué),2012(5):10931105.

[9] 韓博,周秉鋒.GPGPU性能模型及應(yīng)用實(shí)例分析[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2009,21(9):12201223.

[10] CHANG Janlen.異構(gòu)計(jì)算:計(jì)算巨頭的下一個(gè)十年[J].個(gè)人電腦,2011(11):8288.

[11] 陳希棠.基于DirectX的圖像旋轉(zhuǎn)算法的研究與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2011(7):46254627.

[12] 張聰,邢同舉,羅穎,等.基于GPU的數(shù)學(xué)形態(tài)學(xué)運(yùn)算并行加速研究\[J\].電子設(shè)計(jì)工程,2011(19):141143.

[13] 張曉東,孔祥輝,張歡陽(yáng).利用GPU實(shí)現(xiàn)SAR圖像的并行處理\[J\].電子科技,2011(11):9495.

[14] 程飛,黃曦.基于OGRE的三維紅外云仿真\[J\].電子科技,2010(6):47.

作者簡(jiǎn)介: 張益男 女,1984年出生,江蘇南通人,碩士,講師。研究方向?yàn)榭刂萍半娮臃矫妗?/p>

袁 杰 男,1978年出生,江蘇南京人,碩士生導(dǎo)師,副教授。研究方向?yàn)閳D像與視頻處理。

主站蜘蛛池模板: 永久免费AⅤ无码网站在线观看| 欧美亚洲网| 女人18毛片一级毛片在线 | av一区二区三区高清久久| 高清无码一本到东京热| 亚洲第一极品精品无码| 亚洲欧美日韩成人高清在线一区| 欧美色伊人| 国产精品第| 五月天久久综合国产一区二区| 国产不卡网| 欧美v在线| 一级毛片不卡片免费观看| 亚洲成人免费在线| 亚洲欧美另类日本| 这里只有精品在线| 日韩无码视频网站| 99久久精品国产综合婷婷| 韩日免费小视频| v天堂中文在线| 操国产美女| 日韩精品一区二区三区大桥未久| 亚洲AⅤ综合在线欧美一区| 国产主播福利在线观看| 亚洲日本中文字幕天堂网| 精品久久久久无码| 一级毛片在线播放免费| 88av在线看| 国产一区二区三区在线精品专区| 热伊人99re久久精品最新地| 亚洲动漫h| 国产乱肥老妇精品视频| 免费观看国产小粉嫩喷水| 国产黄在线免费观看| 国产成人久视频免费| 午夜福利视频一区| 成年人午夜免费视频| 亚洲国产成人综合精品2020 | 伊人色婷婷| 亚洲精品第1页| 五月综合色婷婷| 亚洲天堂.com| 毛片免费视频| 波多野结衣一区二区三区AV| a毛片免费观看| 99在线观看精品视频| 一级爱做片免费观看久久| 婷婷亚洲视频| 亚洲香蕉久久| 在线看片免费人成视久网下载| 国产无码制服丝袜| 日韩欧美在线观看| 亚洲精品欧美重口| 日本道综合一本久久久88| 99青青青精品视频在线| 她的性爱视频| 亚洲乱码视频| 欧美a在线看| 五月激情婷婷综合| 在线观看国产精美视频| 伊人久久久久久久久久| 亚洲日本在线免费观看| 欧美va亚洲va香蕉在线| 欧美色视频日本| 黄色网站不卡无码| 色吊丝av中文字幕| 亚洲国产成人在线| 欧美国产在线精品17p| 国产精品亚洲精品爽爽| 亚洲无码高清免费视频亚洲 | 毛片免费视频| 日韩精品成人在线| 久久夜色撩人精品国产| 国内精自线i品一区202| 国产白浆一区二区三区视频在线| 精品久久久久久中文字幕女| 一级不卡毛片| 成人免费一级片| 呦女精品网站| 精品伊人久久久久7777人| 国产成人亚洲精品色欲AV| 国产在线观看99|