亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于GPU的目標(biāo)識(shí)別算法的并行化研究

        2015-06-23 13:55:30劉寶平陳慶奎李金靜劉伯成
        關(guān)鍵詞:梯度方向線程像素點(diǎn)

        劉寶平,陳慶奎,,李金靜,劉伯成

        (上海理工大學(xué) a.光電信息與計(jì)算機(jī)工程學(xué)院;b.上海理工大學(xué) 管理學(xué)院,上海 200093)

        基于GPU的目標(biāo)識(shí)別算法的并行化研究

        劉寶平a,陳慶奎a,b,李金靜a,劉伯成b

        (上海理工大學(xué) a.光電信息與計(jì)算機(jī)工程學(xué)院;b.上海理工大學(xué) 管理學(xué)院,上海 200093)

        針對(duì)可變形部件模型算法(DPM)的計(jì)算量大,無法完成實(shí)時(shí)檢測等問題,通過GPU編程模型CUDA,在Nvidia GPU上實(shí)現(xiàn)了HOG算法和DPM算法的并行化;采用OpenCL編程模型實(shí)現(xiàn)了DPM算法在集成顯卡上的并行化。通過CPU和GPU的協(xié)同計(jì)算,保證目標(biāo)識(shí)別效果的前提下,并行化的算法的執(zhí)行效率相比于OpenCV中的CPU或GPU實(shí)現(xiàn)有明顯的提高;通過對(duì)目標(biāo)識(shí)別算法的并行化,結(jié)合其他算法,使得這類復(fù)雜算法能夠在一些需要實(shí)時(shí)監(jiān)測的工程領(lǐng)域中得到應(yīng)用。

        梯度方向直方圖;可變形部件模型;圖形處理器;協(xié)同計(jì)算;統(tǒng)一計(jì)算設(shè)備架構(gòu);開放運(yùn)算語言

        目前,在汽車自動(dòng)駕駛、智能交通、智能監(jiān)控安防等領(lǐng)域中,人工智能正在發(fā)揮越來越重要的作用,人工智能的應(yīng)用也使得人們從機(jī)械的簡單而重復(fù)的工作中解放出來,但是這也就要求這類人工智能算法有更加精確的效果和實(shí)時(shí)的監(jiān)測,對(duì)算法提出了更高的要求。傳統(tǒng)的算法都是基于CPU串行實(shí)現(xiàn)的,由于算法的計(jì)算量大,因此CPU無法完成對(duì)算法的實(shí)時(shí)計(jì)算。在這些領(lǐng)域中,對(duì)算法的并行化就是一個(gè)非常的需求,通過并行化算法使得算法的執(zhí)行效率相比于CPU得到數(shù)十倍的提高,從而實(shí)現(xiàn)算法的實(shí)時(shí)性計(jì)算。

        筆者將重點(diǎn)介紹兩種目標(biāo)識(shí)別算法,梯度方向直方圖算法[1](HOG,histogram of oriented gradient)和可變形部件模型算法[2](DPM,deformable part model)。HOG算法是一個(gè)廣泛應(yīng)用在計(jì)算機(jī)視覺和圖像處理中的目標(biāo)檢測的特征描述子,而DPM算法是一個(gè)從HOG算法演化而來的一個(gè)檢測精度非常高的算法,相比于HOG算法,DPM算法增加了根和部件的思想。對(duì)一個(gè)目標(biāo)的描述由之前的單一模板改為根和部件來對(duì)目標(biāo)進(jìn)行描述,在目標(biāo)檢測和人臉識(shí)別等方面都有很好的應(yīng)用,但是這些算法都有計(jì)算量非常大,無法完成實(shí)時(shí)性處理的缺點(diǎn)。正是在這種對(duì)算法進(jìn)行加速的需求下,筆者采用并行化編程模型CUDA和OpenCL,重新設(shè)計(jì)算法的并行化實(shí)現(xiàn)方案,采用CUDA編程模型對(duì)HOG和DPM算法在Nvidia GPU上實(shí)現(xiàn)了并行化,同時(shí)采用OpenCL編程模型對(duì)DPM算法在intel 集成顯卡上完成了實(shí)現(xiàn)和測試,提高算法的執(zhí)行效率,使得這兩個(gè)目標(biāo)算法應(yīng)用在實(shí)時(shí)性環(huán)境成為可能,以后DPM算法也將應(yīng)用在更多的領(lǐng)域之中。

        1 相關(guān)工作

        目標(biāo)檢測一直是計(jì)算機(jī)視覺領(lǐng)域中的難題,對(duì)于條形碼等剛性目標(biāo),一些簡單算法可能會(huì)取得比較好的檢測效果,但是對(duì)于人體這種易發(fā)生形變和部分遮擋的目標(biāo),檢測起來難度要更大。在2005年的CVPR會(huì)議上,Dalal和Triggs[1]兩位科學(xué)家提出了梯度方向直方圖 (HOG)的特征描述子,在進(jìn)行目標(biāo)檢測和分類過程中,采用基于HOG特征的單一模板來表示目標(biāo)。HOG算法是一個(gè)早期的目標(biāo)檢測算法,HOG+SVM在剛性目標(biāo)檢測中會(huì)取得比較好的檢測效果,但是對(duì)于人體等非剛性目標(biāo)的檢測效果一般。

        2010年,Felzenszwalb et al[2]提出了基于HOG的改進(jìn)算法可變形部件模型算法,在HOG算法的原理基礎(chǔ)上,設(shè)計(jì)了檢測更為精確的可變形部件模型算法。DPM算法使用根和n個(gè)部件來描述目標(biāo)的結(jié)構(gòu),通過根來描述目標(biāo)的整體輪廓,通過n個(gè)部件來描述目標(biāo)的各個(gè)組成部分,對(duì)于人體這種容易發(fā)生形變的目標(biāo),根和部件的設(shè)計(jì)方案使得目標(biāo)檢測更加準(zhǔn)確。

        2012年,在歐洲計(jì)算機(jī)視覺會(huì)議(ECCV)上,來自美國伯克利大學(xué)的團(tuán)隊(duì),提出一種稀疏模型[3],再結(jié)合GPU加速,使DPM算法的執(zhí)行效率顯著提高,達(dá)到實(shí)時(shí)性要求。2014年,來自法國的一個(gè)實(shí)驗(yàn)室團(tuán)隊(duì),發(fā)表了一篇關(guān)于DPM算法的并行化[4]實(shí)現(xiàn),他們基于CUDA實(shí)現(xiàn)了DPM算法的并行化,文中詳細(xì)介紹了DPM算法的GPU實(shí)現(xiàn)細(xì)節(jié),并測試了最終的加速效果。

        通過分析算法的實(shí)現(xiàn),結(jié)合其他研究成果[5-9],通過CUDA和OpenCL編程模型實(shí)現(xiàn)了算法的GPU移植,并訓(xùn)練不同目標(biāo)的分類器,實(shí)現(xiàn)多目標(biāo)分類。將以HOG算法為出發(fā)點(diǎn),重點(diǎn)介紹 DPM算法的GPU并行化實(shí)現(xiàn)方案,提高算法的執(zhí)行效率,使得DPM算法在人體檢測以及人臉檢測[10]等計(jì)算機(jī)視覺領(lǐng)域能夠得到更加廣泛的應(yīng)用。

        2 HOG算法概述

        通過分析HOG算法實(shí)現(xiàn)細(xì)節(jié),發(fā)現(xiàn)HOG算法特別適合并行化處理,下面將簡單介紹HOG算法的并行化實(shí)現(xiàn)過程。

        2.1 圖像Gamma校正

        通過對(duì)輸入圖像進(jìn)行標(biāo)準(zhǔn)化,降低由于局部陰影和光照的劇烈變化所造成的影響,同時(shí)可以移植噪聲的干擾。對(duì)于RGB圖像需要對(duì)三通道都做Gamma校正,而灰度圖則只需要對(duì)灰度值Gamma校正。Gamma校正公式為,

        I(x,y)=I(x,y)g.

        (1)

        式中,指數(shù)g值取0.5。

        顯而易見,Gamma校正時(shí)各個(gè)像素點(diǎn)之間沒有任何邏輯相關(guān),我們?yōu)槊總€(gè)像素點(diǎn)分配一個(gè)線程進(jìn)行計(jì)算,這樣大大提高了計(jì)算效率。

        2.2 計(jì)算圖像梯度

        計(jì)算圖像中像素值在橫縱坐標(biāo)方向上的梯度,每個(gè)像素點(diǎn)算出一個(gè)梯度幅值和方向。

        Gx(x,y)=H(x+1,y)-H(x-1,y) ;

        (2)

        Gy(x,y)=H(x,y+1)-H(x,y-1) .

        (3)

        式中:Gx(x,y),Gy(x,y)為圖像像素點(diǎn)(x,y)處的水平和垂直梯度;H(x,y)表示該點(diǎn)的像素值,則像素點(diǎn)(x,y)處的梯度幅值G(x,y)和梯度方向α(x,y)如下

        (4)

        (5)

        對(duì)于灰度圖像來說,只需要計(jì)算出一通道灰度值。如果在RGB彩色圖像上進(jìn)行計(jì)算,則需要我們對(duì)RGB三通道分別算出梯度幅值和方向,然后選擇幅值較大的一個(gè)通道,作為該像素點(diǎn)(x,y)的梯度幅值和方向。

        從算法實(shí)現(xiàn)來看,每個(gè)像素點(diǎn)計(jì)算梯度都是獨(dú)立進(jìn)行的,不同像素點(diǎn)之間不會(huì)有任何邏輯關(guān)聯(lián),所以在并行化的時(shí)候,我們依然是為每個(gè)像素點(diǎn)分配一個(gè)線程,每個(gè)線程計(jì)算對(duì)應(yīng)像素點(diǎn)的梯度。

        2.3 計(jì)算細(xì)胞單元cell梯度方向直方圖

        通過已得到的每個(gè)像素點(diǎn)的梯度幅值和方向,定義了每8×8個(gè)像素點(diǎn)為一個(gè)cell,這樣便可以將圖像表示為由一個(gè)個(gè)cell組成。我們?yōu)槊總€(gè)cell定義了一個(gè)9個(gè)bin的直方圖來統(tǒng)計(jì)當(dāng)前cell的梯度方向分布信息。所有像素點(diǎn)的方向范圍為0°~360°,我們需要其轉(zhuǎn)換為0°~180°,每20°一個(gè)bin,我們要將其投票到9個(gè)bin中,當(dāng)前cell中每個(gè)像素點(diǎn)都對(duì)自己對(duì)應(yīng)的梯度方向直方圖中進(jìn)行加權(quán)投影,我們就得到了當(dāng)前cell的梯度方向直方圖,每個(gè)cell都對(duì)應(yīng)一個(gè)9維的特征向量。

        上面只是最簡單的獲得梯度方向直方圖的方式,在各種HOG算法的改進(jìn)中,關(guān)于如何進(jìn)行投票,方法有很多。比如,在可變形部件模型算法中,一個(gè)像素點(diǎn)將根據(jù)規(guī)則算出4個(gè)像素點(diǎn)的坐標(biāo),然后將這4個(gè)像素點(diǎn)的坐標(biāo)算出權(quán)重,根據(jù)權(quán)重加權(quán)投票到當(dāng)前像素點(diǎn)所在的cell的梯度方向直方圖中,根據(jù)0°~360°和0°~180°,分別算出一個(gè)對(duì)比度敏感18維梯度方向直方圖和對(duì)比度不敏感的9維梯度方向直方圖,對(duì)兩種梯度方向直方圖分別進(jìn)行歸一化,然后再進(jìn)行組合,加入歸一化因子,得到最終當(dāng)前cell的梯度方向直方圖。而且DPM算法中有應(yīng)用到PCA主成分分析算法進(jìn)行特征向量的將維,使得整個(gè)算法的計(jì)算量有明顯的降低。

        本文依然為每個(gè)像素點(diǎn)分配一個(gè)線程,在HOG算法的GPU實(shí)現(xiàn)中,我們分配8×8的線程塊來處理8×8的cell單元,但是在投票的時(shí)候,8×8個(gè)線程同時(shí)往9維的梯度方向直方圖中進(jìn)行投票,這樣線程之間就會(huì)產(chǎn)生沖突,采用原子操作進(jìn)行顯存讀寫,這樣保證了數(shù)據(jù)的正確性。但是在DPM算法的GPU實(shí)現(xiàn)時(shí),分別采用了折半規(guī)約和原子操作的兩種方式進(jìn)行投票,折半規(guī)約就是每個(gè)像素點(diǎn)都分配一個(gè)梯度方向直方圖,然后將cell內(nèi)所有像素點(diǎn)的梯度方向直方圖通過折半規(guī)約的方式進(jìn)行整合,最終得到整個(gè)cell的梯度方向直方圖。而原子操作就更加容易理解,就是當(dāng)前block內(nèi)的所有線程通過計(jì)算對(duì)應(yīng)像素點(diǎn)的梯度,然后采用原子操作將每個(gè)線程的結(jié)果累加到當(dāng)前cell所對(duì)應(yīng)的直方圖中。

        2.4 塊(block)內(nèi)直方圖歸一化

        上面我們得到了組成圖像的所有cell的梯度方向直方圖,為了進(jìn)一步弱化光照,陰影,噪聲等一系列因素的影響,我們將對(duì)特征向量進(jìn)行歸一化操作。我們將各個(gè)cell單元組合成更大的組成單元block,我們定義每2×2個(gè)cell組成一個(gè)block。這樣,block的HOG特征就是組成該block的4個(gè)cell的梯度方向直方圖串聯(lián)起來,每個(gè)block將得到一個(gè)36維的梯度方向直方圖。

        將歸一化block內(nèi)的HOG特征向量,比較常用的歸一化函數(shù):

        ε表示一個(gè)很小的常量,防止分母為0;

        2) L2-Hys,方法同式(1),增加截?cái)嗖僮?將v的最大值限制為0.2,再次重新歸一化。

        一般采取第二種歸一化方法,這只是HOG算法中比較常用的歸一化函數(shù)的計(jì)算過程。在改進(jìn)的HOG算法中,也有很多其他的歸一化因子的計(jì)算,比如可變形部件模型算法中,根據(jù)當(dāng)前cell位置算出4個(gè)cell,然后將4個(gè)cell的block能量算出來以后,作為歸一化因子對(duì)特征向量進(jìn)行歸一化,而且是算出4個(gè)歸一化因子,分別對(duì)對(duì)比度敏感的18維梯度方向直方圖和對(duì)比度不敏感的9維梯度方向直方圖進(jìn)行歸一化操作,進(jìn)行4次歸一化操作,最終得到一個(gè)31維的梯度方向直方圖,也就是當(dāng)前cell對(duì)應(yīng)的最終的HOG特征向量。

        并行化設(shè)計(jì)實(shí)現(xiàn)時(shí),線程分配其實(shí)有很多種實(shí)現(xiàn)方法,本文的實(shí)現(xiàn)大概過程是為每一個(gè)特征向量中的每一維度計(jì)算都分配一個(gè)線程,可以采用折半規(guī)約的方式算出每個(gè)block的歸一化因子,然后采用上面的一種歸一化函數(shù),進(jìn)行歸一化操作。當(dāng)然,也可以采用為每個(gè)block的特征向量的歸一化操作分配一個(gè)線程,然后用該線程循環(huán)處理特征向量中的每一個(gè)維度。

        2.5 窗口HOG特征值

        完成block內(nèi)的特征向量的歸一化操作之后,我們需要進(jìn)一步得到檢測窗口的HOG特征值,這個(gè)特征值是我們最終用來進(jìn)行SVM分類的特征值。同理,對(duì)于opencv中的是實(shí)現(xiàn)的HOG算法,其檢測窗口有48×96和64×128兩種,cell由8×8個(gè)像素點(diǎn)組成,block有2×2個(gè)cell組成,那么64×128的檢測窗口由7×15個(gè)block組成,所以64×128對(duì)應(yīng)的窗口特征值為3 780維特征向量。同理可以得到,48×96對(duì)應(yīng)1 980維的窗口特征向量。

        2.6 SVM分類和非最大值抑制

        利用HOG+SVM進(jìn)行目標(biāo)檢測時(shí),計(jì)算出每個(gè)窗口的特征值之后,然后將計(jì)算出的窗口特征值和事先訓(xùn)練好的SVM分類器進(jìn)行計(jì)算判別。最基本的線性判別函數(shù)

        w·x+b=0 .

        (6)

        式中:w為窗口HOG特征值;x是訓(xùn)練好的分類器,兩個(gè)向量做點(diǎn)積計(jì)算,最后加上一個(gè)偏移量得到一個(gè)窗口分?jǐn)?shù),根據(jù)分?jǐn)?shù)得到最終的判別結(jié)果。特征向量和分類器進(jìn)行點(diǎn)積計(jì)算時(shí),本文依然采用折半規(guī)約的方式進(jìn)行計(jì)算。

        關(guān)于窗口的非最大值抑制,由于是在多尺度上所有位置處進(jìn)行目標(biāo)檢測,所以在同一尺度的相鄰位置和不同尺度的相鄰位置可能會(huì)多次檢測出同一個(gè)目標(biāo),這樣會(huì)導(dǎo)致窗口重疊,本文采用非最大值抑制算法來去除多余窗口。將不同尺度上的窗口都還原到原圖像中,如果窗口重疊面積大于某一個(gè)閾值,就會(huì)比較兩個(gè)窗口的分?jǐn)?shù)值,留下較大一個(gè)窗口的分?jǐn)?shù)值。

        3 可變形部件模型算法

        3.1 可變形模型算法的概述

        可變形部件模型算法是HOG算法的改進(jìn),也是基于HOG特征值進(jìn)行目標(biāo)檢測,但是DPM算法增加了根和部件的思想,DPM算法用根和n個(gè)部件來描述一個(gè)目標(biāo)。DPM算法的前幾步的算法實(shí)現(xiàn)原理和上面介紹的原理一致,但是由于增加了根和部件的思想,所以在計(jì)算檢測窗口的得分時(shí),就等于該窗口中根得分加上n個(gè)部件得分,由于部件捕捉更加精細(xì)的目標(biāo)特征,所以部件所在圖像金字塔中的分辨率是根所在層分辨率的二倍。計(jì)算部件得分時(shí),由于考慮到目標(biāo)可能會(huì)發(fā)生形變,所以我們需要在部件錨點(diǎn)附近一定范圍內(nèi)開始搜索,找到部件的實(shí)際位置,然后根據(jù)偏離錨點(diǎn)的位置進(jìn)行部件懲罰,實(shí)際得分減去偏移懲罰得到部件在實(shí)際位置的最終得分,最后加上一維的偏移量。

        下面公式表示了檢測窗口的得分:

        (7)

        式中:H表示特征金字塔;p代表金字塔中某一層中坐標(biāo)為(xi,yi)處的窗口特征值,第一部分表示根和部件的得分加起來,第二部分表示所有部件的偏移懲罰,其中(dxi,dyi)表示第i個(gè)部件的形變偏移,(dxi,dyi)=(xi,yi)-(2(x0,y0)+vi),(xi,yi)表示進(jìn)行部件搜索時(shí)的實(shí)際位置,(x0,y0)表示根的位置,由于部件濾波器所在層的特征分辨率是根濾波器所在層的特征分辨率的2倍,所以2(x0,y0)+vi就是部件的錨點(diǎn)位置,di表示懲罰系數(shù)。第三部分b表示最終分?jǐn)?shù)偏移。

        3.2 可變形部件模型的并行化實(shí)現(xiàn)

        可變形模型算法,采用GPU編程模型CUDA和OpenCL,設(shè)計(jì)了DPM算法的并行化解決方案。

        由于DPM算法是基于HOG算法的改進(jìn),并且增加了根和部件的鏈接,本文在設(shè)計(jì)DPM算法的GPU移植的實(shí)現(xiàn)方案時(shí),根據(jù)GPU架構(gòu)的特點(diǎn),通過合理的內(nèi)存使用和線程分配,通過CPU端的循環(huán)控制,調(diào)用GPU的執(zhí)行核函數(shù),建立圖像金字塔,然后再算出特征金字塔,通過根和部件濾波器將圖像金字塔中所有尺度上所有位置的分?jǐn)?shù)都算出來,最后通過距離轉(zhuǎn)換,將根和部件鏈接起來,得到整個(gè)窗口的檢測得分。GPU端完成計(jì)算之后,我們將合并冗余窗口的處理轉(zhuǎn)移到CPU端進(jìn)行處理,因?yàn)楹喜⑷哂啻绑w邏輯性較強(qiáng),不適合GPU端進(jìn)行處理,通過這種CPU和GPU的協(xié)同計(jì)算,最大限度的提高處理效率。

        3.3 距離轉(zhuǎn)換兩種并行化實(shí)現(xiàn)中的協(xié)同計(jì)算

        下面我們將重點(diǎn)介紹DPM算法中的距離轉(zhuǎn)換部分的GPU實(shí)現(xiàn),分析兩種實(shí)現(xiàn)中GPU流處理器之間的協(xié)同計(jì)算,比較兩種并行化設(shè)計(jì)方案的效率。

        前面我們已經(jīng)分析了,DPM算法中由一個(gè)根和n個(gè)部件來表示一個(gè)目標(biāo)的組成。我們?nèi)绾卧O(shè)計(jì)方案將根和部件鏈接起來呢?下面是采用OpenCL在intel集成顯卡上實(shí)現(xiàn)的兩種解決方案。

        一種方案是我們?yōu)槊總€(gè)根的鏈接分配n個(gè)線程,這樣每個(gè)線程負(fù)責(zé)處理一個(gè)部件,最終根得分和n個(gè)部件的實(shí)際得分相加,得到整個(gè)目標(biāo)窗口的得分。以n值取8為例,這樣我們就只能在一個(gè)線程塊分配8,對(duì)于每個(gè)檢測窗口,通過線程塊中8個(gè)線程的協(xié)同處理,同步操作之后,8個(gè)線程的將負(fù)責(zé)的部件的得分進(jìn)行匯總,這樣就得到該檢測窗口的整體得分。這種設(shè)計(jì)中,雖然每個(gè)檢測窗口的部件是并行處理的,但是每個(gè)線程塊中卻只能分配少量線程。

        另一種方案中,我們讓每個(gè)線程負(fù)責(zé)更多的工作,即每個(gè)線程負(fù)責(zé)檢測窗口中的根和n個(gè)部件的處理,我們?yōu)槊總€(gè)檢測窗口的根和部件的鏈接計(jì)算分配一個(gè)線程,也就是一個(gè)線程負(fù)責(zé)根和n個(gè)部件的鏈接,同時(shí)由于考慮的部件的可變形性,所以每個(gè)線程在計(jì)算時(shí),需要在部件的錨點(diǎn)附近進(jìn)行搜索部件的實(shí)際位置。這樣,由于每個(gè)線程都是負(fù)責(zé)一個(gè)窗口的計(jì)算,每個(gè)線程的計(jì)算量將變得非常大,但是線程塊中卻可以分配盡量多的線程。同時(shí)我們通過優(yōu)化內(nèi)存的使用,減少對(duì)全局內(nèi)存的訪問,使得代碼的執(zhí)行時(shí)間成倍的降低,最終使得這部分的計(jì)算時(shí)間完全滿足了要求。

        在前期距離轉(zhuǎn)換部分測試中,第一種解決方案,雖然為每個(gè)部件的處理都分配一個(gè)線程,但是由于這種方案設(shè)計(jì)導(dǎo)致線程塊中所能分配的線程數(shù)量極少,這種設(shè)計(jì)的執(zhí)行時(shí)間要1 200ms。第二種解決方案中,雖然每個(gè)線程負(fù)責(zé)處理n個(gè)部件,但是這種設(shè)計(jì),線程塊中可以分配盡可能多的線程,使得算法更高效執(zhí)行,這種設(shè)計(jì)方案的執(zhí)行時(shí)間大概為300ms。

        在可變形部件算法的GPU實(shí)現(xiàn)中,我們通過GPU的眾多流處理器的協(xié)同處理,并行化實(shí)現(xiàn)了梯度方向直方圖計(jì)算,歸一化,根和部件的鏈接等一系列操作,并最終由CPU完成了冗余窗口的合并,發(fā)揮了GPU和CPU各自的優(yōu)勢,通過CPU和GPU的協(xié)同和GPU內(nèi)部多處理器的協(xié)同計(jì)算,完成了DPM算法的設(shè)計(jì)實(shí)現(xiàn),使得算法的執(zhí)行效率成倍提高。

        4 實(shí)驗(yàn)結(jié)果分析對(duì)比

        4.1 實(shí)驗(yàn)環(huán)境及內(nèi)容概述

        實(shí)驗(yàn)環(huán)境:CPU:IntelCore(TM)2DuoCPUE8400,GPU:NvidiaGeForceGTX670,內(nèi)存:2GB.

        本文測試的主要內(nèi)容是:

        1) 對(duì)比OpenCV中的基于GPU實(shí)現(xiàn)的HOG算法和通過CUDA實(shí)現(xiàn)的HOG算法,本文將 對(duì)比兩者的檢測效果和執(zhí)行時(shí)間;

        2) 對(duì)比HOG算法和DPM檢測效果對(duì)比;

        3) 對(duì)比基于CUDA和OpenCL實(shí)現(xiàn)的DPM算法的執(zhí)行效率。

        4.2 HOG算法的檢測效果及加速效果對(duì)比

        4.2.1 兩種實(shí)現(xiàn)的檢測效果對(duì)比

        OpenCV庫中實(shí)現(xiàn)的HOG算法檢測效果如圖1所示。CUDA實(shí)現(xiàn)的HOG算法的檢測效果如圖2所示。

        圖1 OpenCV中HOG算法檢測

        圖2 CUDA實(shí)現(xiàn)的HOG算法檢測

        通過圖1和圖2的檢測效果我們發(fā)現(xiàn),兩種是實(shí)現(xiàn)的檢測效果已經(jīng)比較接近。

        4.2.2 兩種實(shí)現(xiàn)的執(zhí)行效率對(duì)比

        OpenCV庫GPU實(shí)現(xiàn)和我們通過CUDA實(shí)現(xiàn)的加速效果對(duì)比,如表1所示。

        表1 兩種實(shí)現(xiàn)的運(yùn)行時(shí)間對(duì)比

        4.3 HOG算法的檢測效果和DPM算法檢測效果對(duì)比

        圖3 OpenCV中HOG算法檢測

        圖4 CUDA實(shí)現(xiàn)的HOG算法

        圖5 OpenCL實(shí)現(xiàn)的DPM算法

        OpenCV庫函數(shù)檢測效果如圖3所示;CUDA實(shí)現(xiàn)的HOG算法的檢測效果如圖4所示;OpenCL實(shí)現(xiàn)的DPM算法的檢測效果如圖5所示。從上面給出的HOG算法和DPM算法的檢測效果中可以明顯看出HOG算法和DPM算法應(yīng)用在人體檢測中檢測精度的巨大差異,在人體等非剛性目標(biāo)的檢測中,DPM算法的檢測精度遠(yuǎn)遠(yuǎn)要高于DPM算法的檢測精度。

        4.4 基于集成顯卡和獨(dú)立顯卡的DPM算法執(zhí)行效率對(duì)比

        一般印象中,獨(dú)立顯卡的計(jì)算資源遠(yuǎn)大于集成顯卡,所以采用基于獨(dú)立顯卡的優(yōu)化肯定會(huì)明顯的強(qiáng)于基于集成顯卡的實(shí)現(xiàn),因?yàn)轱@卡的計(jì)算資源是一定的,而編程模型只是一種調(diào)用顯卡資源的手段,無論采用何種編程模型,最終算法的執(zhí)行效率還是由并行化實(shí)現(xiàn)方案和顯卡的資源所決定。所以,本文將通過實(shí)驗(yàn)來測試集成顯卡和獨(dú)立顯卡的各自優(yōu)勢。現(xiàn)在本文就將依照DPM算法在Nvidia獨(dú)立顯卡上和intel集成顯卡上的執(zhí)行效率做個(gè)對(duì)比。

        基于intel集成顯卡的測試環(huán)境,測試設(shè)備使用intelCorei5-4460CPU,內(nèi)存4GB,顯卡采用intel集成顯卡HDGraphics4600。

        基于Nvidia獨(dú)立顯卡的測試環(huán)境,本文采用intelCorei7-3930KCPU,內(nèi)存32GB,顯卡采用NvidiaGTX670獨(dú)立顯卡。

        將對(duì)比采用DPM算法在intel集成顯卡和在Nvidia獨(dú)立顯卡上對(duì)于不同尺寸的圖片的檢測時(shí)間。

        表2 DPM算法在集成顯卡和獨(dú)立顯卡的測試

        通過對(duì)DPM算法在intel集成顯卡和Nvidia獨(dú)立顯卡上的執(zhí)行情況分析,雖然采用了不同的編程模型,但是編程模型只是對(duì)資源的調(diào)度方式不同,而顯卡的資源是一定的。我們對(duì)不同顯卡的設(shè)計(jì)方案也根據(jù)顯卡的特點(diǎn)進(jìn)行了調(diào)整,從上面的實(shí)驗(yàn)結(jié)果可以看到,集成顯卡也并沒有想象中的那么弱,而且我們也從實(shí)際中得到,intel集成顯卡對(duì)于邏輯操作明顯要好于Nvidia獨(dú)立顯卡,由于算法的某些需要,我們?cè)诤撕瘮?shù)中加入循環(huán)時(shí),可以看到集成顯卡對(duì)這類操作的支持性明顯優(yōu)于獨(dú)立顯卡。但是由于獨(dú)立顯卡有絕對(duì)數(shù)量優(yōu)勢的流處理器,所以集成顯卡在流處理器的數(shù)量上處于絕對(duì)劣勢,導(dǎo)致集成顯卡的計(jì)算性能明顯要比獨(dú)立顯卡低。

        5 結(jié)論

        以HOG算法為出發(fā)點(diǎn),引出了更為優(yōu)秀的DPM算法,通過對(duì)DPM算法的詳細(xì)分析,本文重新采用CUDA和OpenCL兩種GPU編程模型分別在intel集成顯卡和Nvidia獨(dú)立顯卡上重新設(shè)計(jì)實(shí)現(xiàn)算法的并行化解決方案,使得HOG算法相比于OpenCV庫中的GPU實(shí)現(xiàn)有了明顯提高,同時(shí)使得DPM算法的執(zhí)行效率相比于OpenCV庫中的DPM算法的實(shí)現(xiàn)有了近10倍的提高,并且比較了兩種不同的DPM算法實(shí)現(xiàn),同時(shí)也分析了集成顯卡和獨(dú)立顯卡的計(jì)算性能。通過DPM算法的并行化,可以結(jié)合其他算法,將DPM算法應(yīng)用在某些特定場合進(jìn)行實(shí)時(shí)性檢測,比如通過某些提取前景算法得到運(yùn)動(dòng)區(qū)域,然后對(duì)得到的運(yùn)動(dòng)區(qū)域進(jìn)行目標(biāo)識(shí)別。同時(shí),我們希望能夠?qū)PU用在深度學(xué)習(xí)上,使得GPU能夠應(yīng)用到更加多的領(lǐng)域中,發(fā)揮GPU的并行計(jì)算優(yōu)勢,在更多領(lǐng)域中發(fā)揮更重要的作用。

        [1]DalalN,TriggsB.Histogramsoforientedgradientsforhumandetection[C]∥CordeliaS,StefanoS,GarloT.ProceedingofConferenceonComputerVisionandPatternRecognition.CA:SanDiego.,2005(1):886-893.

        [2]FelzenszwalbPF,GirshickRB,McAllesterD,etal.Objectdetectionwithdiscriminativelytrainedpart-basedmodels[J].IEEETransactionsonPatternAnalysisandMachineIntelligence,2010,32(9):1627-1645.

        [3]SongHO,ZicklerS,AlthoffT,etal.Sparseletmodelsforefficientmulticlassobjectdetection[J].SpringerBerlinHeidelberg,2012:802-815.

        [4]GadeskiE,FardHO,LeBorgneH.GPUdeformablepartmodelforobjectrecognition[J].JournalofReal-TimeImageProcessing,2014:1-13.

        [5]ChenYanping,LiShaozi,LinXianming.FasthogfeaturecomputationbasedonCUDA[C]∥IEEE.ProceedingofComputerScienceandAutomationEngineering(CSAE).China:Shanghai,2011,4:748-751.

        [6]PedersoliM,VedaldiA,GonzalezJ,etal.Acoarse-to-fineapproachforfastdeformableobjectdetection[J].PatternRecognition,2014:1353-1360.

        [7]HirabayashiM,KatoS,EdahiroM,etal.GPUimplementationsofobjectdetectionusingHOGfeaturesanddeformablemodels[C]∥IEEE.ProceedingofCyber-PhysicalSystems,Networks,andApplications(CPSNA).Taiwan,2013:106-111.

        [8]AmitY,KongA.Graphicaltemplatesformodelregistration[J].PatternAnalysisandMachineIntelligence,IEEETransactionson,1996,18(3):225-236.

        [9] 熊聰,王文武.基于DPM模型的行人檢測技術(shù)的研究[J].電子設(shè)計(jì)工程,2014(23):172-173.

        [10] 尹雪聰.基于可變形部件模型的人臉檢測方法研[D].西安:西安電子科技大學(xué),2012.

        (編輯:朱 倩)

        Parallelization of Target Recognition Algorithms Based on GPU

        LIU Baopinga,CHEN Qingkuia,b,LI Jinjinga,LIU Bochengb

        (a.CollegeofOptical-ElectricalandComputerEngineering;b.CollegeofManagement,UniversityofShanghaiforScienceandTechnology,Shanghai200093,China)

        Aiming at the disadvantage of large amount of calculation,the parallel solution methods of deformable part model(DPM) algorithm and Histogram of Oriented Gradient(HOG) algorithm based on GPU were proposed base on GPU with CUDA,and the parallel solution method of DPM algorithm was also proposed based on integrated graphics card with OpenCL.With the cooperative computation of GPU and CPU,under the premise of ensuring the target recognition effect,the execution efficiency of the parallel algorithms was significantly improved compared with the GPU or CPU implementations in OpenCV.Through the parallel implementations of target detection algorithms,and combination with other algorithms,the target recognition algorithms can be applied in some engineering fields that need to be monitored in real time.

        Histogram of oriented gradient; Deformable part model; GPU; Collaboration computing; CUDA;OpenCL

        1007-9432(2015)06-0713-06

        2015-05-23

        國家自然科學(xué)基金資助項(xiàng)目:面向?qū)崟r(shí)并發(fā)數(shù)據(jù)流的能耗優(yōu)化的GPU集群可靠處理機(jī)制研究(61572325),高等學(xué)校博士學(xué)科點(diǎn)專項(xiàng)科研博導(dǎo)基金資助(20113120110008),上海重點(diǎn)科技攻關(guān)項(xiàng)目資助(14511107902),上海市工程中心建設(shè)項(xiàng)目資助(GCZX14014),上海智能家居大規(guī)模物聯(lián)共性技術(shù)工程中心項(xiàng)目資助(GCZX14014),上海市一流學(xué)科建設(shè)項(xiàng)目資助(XTKX2012),滬江基金研究基地專項(xiàng)資助(C14001)

        劉寶平(1990-),男,山東臨沂人,碩士生,主要從事模式識(shí)別、計(jì)算機(jī)視覺與并行計(jì)算的研究,(E-mail)1262782363@qq.com

        陳慶奎,男,教授,博士生導(dǎo)師,中國計(jì)算機(jī)學(xué)會(huì)(CCF)會(huì)員,(E-mail)chenqingk@tom.com

        TP 301

        A

        10.16355/j.cnki.issn1007-9432tyut.2015.06.015

        猜你喜歡
        梯度方向線程像素點(diǎn)
        基于機(jī)器視覺的鋼軌接觸疲勞裂紋檢測方法
        鐵道建筑(2021年11期)2021-03-14 10:01:48
        基于梯度方向一致性引導(dǎo)的邊緣檢測研究
        基于光譜上下文特征的多光譜艦船ROI鑒別方法
        基于canvas的前端數(shù)據(jù)加密
        基于逐像素點(diǎn)深度卷積網(wǎng)絡(luò)分割模型的上皮和間質(zhì)組織分割
        淺談linux多線程協(xié)作
        基于支持向量機(jī)的分類器訓(xùn)練研究
        基于Node-Cell結(jié)構(gòu)的HEVC幀內(nèi)編碼
        Linux線程實(shí)現(xiàn)技術(shù)研究
        么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
        久热香蕉av在线爽青青| 帅小伙自慰videogay男男| 日韩人妻无码精品久久久不卡| 久久久久久久无码高潮| 亚洲成Av人片不卡无码观看| 精品国产亚洲av久一区二区三区| 午夜少妇高潮在线观看| 性裸交a片一区二区三区| 亚洲欧美国产日韩天堂在线视| 美女精品国产一区二区三区| 精品不卡久久久久久无码人妻 | 美女露出奶头扒开内裤的视频| 97人人模人人爽人人喊网| 日韩一区国产二区欧美三区| 99久久综合狠狠综合久久| 欧美xxxxx精品| 国产在线观看视频一区二区三区| 色777狠狠狠综合| 久青草国产在线观看| 亚洲精品一区二区三区av| 少妇被粗大进猛进出处故事| 人妻丰满熟妇av无码区不卡| 国产在线美女| 国产三级精品三级在专区中文| 综合亚洲伊人午夜网| 亚洲精品久久中文字幕| 在线观看日本一区二区| 日本在线一区二区免费| 久久亚洲中文字幕精品熟| 久久天天躁狠狠躁夜夜av| 亚洲一线二线三线写真 | 亚洲av成人av三上悠亚| 特黄 做受又硬又粗又大视频| 欧美性开放bbw| 五月激情婷婷丁香| 极品视频一区二区三区在线观看| 午夜视频国产在线观看| 欧美国产一区二区三区激情无套| 在线毛片一区二区不卡视频| 亚洲国产精品成人av| 蜜芽亚洲av无码精品色午夜|