李金泉,王東,胡文振,闞世超
(北京交通大學(xué) 信息科學(xué)研究所,北京 100044)
?
基于ZYNQ異構(gòu)多核處理器的人體動作識別系統(tǒng)
李金泉,王東,胡文振,闞世超
(北京交通大學(xué) 信息科學(xué)研究所,北京 100044)
以ZYNQ異構(gòu)多核處理器為實現(xiàn)平臺,采用HLS設(shè)計方法學(xué)對運動特征提取算法進行了FPGA硬件加速,達到了1080P 60 fps的計算能力。采用K-means 對運動特征聚類,再生成高維向量,用SVM分類器進行分類和識別。最終,通過高效的系統(tǒng)結(jié)構(gòu)和硬件加速電路實現(xiàn)了算法的加速。系統(tǒng)最終采用基于Linux和QT框架的人機交互方式,支持在線學(xué)習(xí)、創(chuàng)建動作庫的功能。
動作識別;ZYNQ;異構(gòu)多核處理器;軟硬件協(xié)同設(shè)計;HLS;Linux
由于人對視覺感知的直觀性,視頻序列中運動的目標(biāo)是人眼最易感知和感興趣的部分[1],因此,以視頻為載體的信息處理成為當(dāng)今視覺研究的熱門分支。
針對人體動作的視覺處理是圖像處理、計算機視覺、模式識別、機器學(xué)習(xí)等多個學(xué)科的交叉研究課題,在視頻監(jiān)控、人機交互、虛擬現(xiàn)實、醫(yī)療看護等領(lǐng)域具有深遠的理論研究意義和很強的實用價值。因此,如何讓機器正確識別人體運動的意義是智能視覺信息處理技術(shù)重要研究內(nèi)容。
視覺處理系統(tǒng)中,第一是對視頻中關(guān)鍵特征進行提取,并進行合理的表示;第二是將提取的特征進行分類和識別等處理。目前的實現(xiàn)方法主要集中在以建立復(fù)雜的數(shù)學(xué)模型為基礎(chǔ),同時對識別精度的提升越來越微小。隨著算法復(fù)雜度的增加,計算運行時間越來越長,很多的算法需要使用高性能的圖形處理器(GPU)來改善計算時長,但不利于提升效率、節(jié)約成本和實現(xiàn)小型化[2-3]。
本文選擇Xilinx推出的ZYNQ異構(gòu)處理器為硬件加速計算實現(xiàn)平臺。ZYNQ內(nèi)部集成了FPGA邏輯資源和ARM處理器,采用了基于視覺感知層次的計算模型[4],適合于硬件加速的時空運動場塊的運動識別算法[5]。在ZYNQ平臺上實現(xiàn)的算法相比于使用Intel Core i3-4130雙核3.4 GHz CPU為核心的實現(xiàn)方式,運動動作識別速度提升了約120倍,實現(xiàn)了每1~1.7 s識別出一次運動結(jié)果,達到了實時處理的效果。
圖1 運動識別的總體模型設(shè)計
基于時空運動場塊的識別算法總體流程如圖1所示,主要包括,運動特征向量的生成和分類。運動特征向量生成是將輸入視頻序列轉(zhuǎn)化為一個運動特征向量,以表征視頻序列的運動特征。分類是利用支持向量機SVM(Support Vector Machine)等將生成的運動特征向量同已知運動類型的模板特征向量進行比較,以對應(yīng)的運動類型作為識別結(jié)果輸出。
基于運動識別的總體模型,其實現(xiàn)流程如圖2所示。幀間差分和生成MF圖都需要使用連續(xù)兩幀圖像作為輸入進行處理,硬件實現(xiàn)上使用并行輸入可以減少輸入時延,提高系統(tǒng)效率;卷積計算、濾波去除噪聲點需要逐點進行矩陣運算。以上每一步算法中都需要對像素點做逐點計算處理,屬于密集型運算,同時還要求很高的數(shù)據(jù)吞吐量和大量數(shù)據(jù)運算邏輯。因此,將該部分算法遷移至FPGA中,采用邏輯電路進行硬件加速,達到流水線實現(xiàn)和并行化處理,極大地提高了計算效率。
圖2 運動識別流程圖
在運動特征生成、聚類學(xué)習(xí)、運動向量匹配等算法的實現(xiàn)步驟中,學(xué)習(xí)和分類過程中具有大量選擇和分支計算,為了控制密集型計算,適合采用通用CPU進行軟件處理,因此將此部分算法在ARM處理器上運行,提高了算法的可控性。
硬件實現(xiàn)部分,首先采用幀間差分法對并行輸入的連續(xù)兩幀視頻序列進行幀差,獲得方向邊緣DE(Directional Edge)圖。接著,利用方向邊緣濾波器(Sobel算子)做卷積運算,以得到每幀圖像的方向邊緣位移DED(DE Displacement)圖。然后,通過引入一個降噪濾波器來抑制背景上存在的一些對于運動識別毫無意義的雜亂邊緣點,保留了密集的邊緣位移部分,以獲得有效的方向邊緣位移EDED (Essential DED)圖。式(1)給出了降噪濾波處理器的數(shù)學(xué)表達式,其物理意義就是判斷局部窗口內(nèi)是否有足夠多的運動邊緣信息,若存在,則保留該邊緣的位移信息,否則對其濾除。
(1)
最后,MF圖是利用記錄的連續(xù)兩幀EDED通過運動匹配估計算法得到對應(yīng)像素點的運動特征。為了降低運算復(fù)雜度,本文采用基于直方圖投影的方法代替二維圖像塊進行匹配[5]。直方圖匹配尋優(yōu)的過程與人類的視覺感知系統(tǒng)中“聯(lián)想型”方式是一致的。
從DE圖到MF圖均采用Xilinx的高層綜合HLS(High-levelsynthesis)工具,基于C/C++語言實現(xiàn)算法,并針對算法做流水線型處理,綜合成硬件描述語言(VHLD/Verilog),可以直接使用硬件描述語言進行開發(fā),縮短了開發(fā)周期,同時也很好地實現(xiàn)了算法的加速。
軟件實現(xiàn)部分首先是將多幀MF圖累積抽取成32維的高維向量。4個方向分別占用8個維度,每個方向可以表示8種不同級度的運動強度。然后從視頻序列中累積數(shù)萬個32維的塊向量(原型特征向量)進行K-means聚類學(xué)習(xí)處理,聚合出N(本文取用N=2 000)類。每一類的中心即為一個原型塊向量,分別對應(yīng)于一個微小運動過程,其理論依據(jù)認(rèn)為無監(jiān)督學(xué)習(xí)能夠有效減小由于外界視覺信號各分量之間存在強相關(guān)而引起的信息冗余[6]。
最終,一段視頻動作的運動軌跡就可以用一個N維的運動特征向量來表達,以訓(xùn)練視頻得到的運動特征向量作為模板特征向量。執(zhí)行識別處理流程時,只要將待檢測的N維運動特征向量輸入到SVM分類器中,尋找相似度最高的相關(guān)模板特征向量,并將其類型輸出作為最終識別的運動類型。
3.1系統(tǒng)架構(gòu)
在ZYNQ處理器上實現(xiàn)的系統(tǒng)架構(gòu)如圖3所示。視頻通過HDMI輸入到ZedBoard板上,在ZYNQ處理器PL(ProgrammableLogic)上實現(xiàn)了圖2中所有算法的硬件加速功能;在PS(ProgrammableSoC)中主要完成運動分類、識別和圖形顯示等處理。PS端通過通用輸入輸出接口(GPIO)主動控制PL端的控制通路,其中在PL進行處理的中間步驟的數(shù)據(jù)通過VDMA(VideoDirectMemoryAccess)可經(jīng)HP口(AXIHigh-PerformancePorts)存入內(nèi)存,極大地減少了在PL中調(diào)用RAM和LUT進行片上存儲。
圖3 系統(tǒng)在ZedBoard上實現(xiàn)的系統(tǒng)架構(gòu)
本文所實現(xiàn)的硬件系統(tǒng)如圖4所示。視頻處理流程按照數(shù)字順序,首先通過顯示器上方的1080P 60 fps的高清攝像頭錄入運動視頻,然后將獲取的視頻通過HDMI線輸入到一塊外置轉(zhuǎn)接板卡,通過夾層卡FMC (FPGA Mezzanine Card)接口將視頻送入到ZedBoard開發(fā)板中。該轉(zhuǎn)接板卡是基于HDMI接收器芯片SiI9135自行設(shè)計的,通過FMC板卡可將輸入的HDMI信號轉(zhuǎn)換成RGB、4:4:4 YCbCr、4:2:2 YCbCr等多種常見視頻格式的輸出。輸入的運動視頻經(jīng)過ZYNQ處理器進行運動特征提取、運動識別,最終通過開發(fā)板上的HDMI輸出口將攝像頭錄入的原始視頻和識別結(jié)果顯示在1080P的顯示器上。
圖4 視頻在硬件平臺上處理流程
3.2性能分析
基于Vivado集成開發(fā)環(huán)境,將HLS生成的IP核導(dǎo)入到Vivado中,搭建硬件實現(xiàn)系統(tǒng)。PL中視頻處理的運行時鐘頻率為148.5 MHz,支持1080 P 60 fps的視頻處理,受限于DDR總帶寬,1920×1080分辨率的視頻在處理過程中采用立方插值降低為480×270,但分辨率的降低并不影響運動軌跡提取。ARM運行的最高時鐘頻率為666.67 MHz,運動識別結(jié)果為每1~1.7 s更新一次,達到了實時識別能力。根據(jù)Vivado綜合報告,整個系統(tǒng)在片上功耗只有 2.233 W。
表1是基于ZYNQ處理器運動識別軟硬件協(xié)同在PL端的資源利用率,可見基于時空場的運動特征提取算法消耗的硬件資源,符合硬件友好。FPGA計算部分總共在DDR中申請了22.577 MB的緩存空間用于幀緩存,同時,Linux系統(tǒng)和運行QT框架消耗的內(nèi)存也不足60 MB,對于512 MB的內(nèi)存,本系統(tǒng)總計內(nèi)存的使用率在16%左右。
表1 PL端的資源利用率
ZYNQ中集成了雙核Cortex-A9處理器,CPU主要用于QT繪制顯示圖像,以及部分算法處理,整個系統(tǒng)運行時CPU的使用率在50%左右。無論是內(nèi)存,還是CPU使用率,都是有足夠富余,因此系統(tǒng)整體運行流暢,延遲較小,視覺觀感效果良好。
動作庫中有4種基本動作(直線、豎線、圓和三角),視頻的識別過程和對應(yīng)運動類型以此視頻庫為基礎(chǔ)訓(xùn)練識別庫,經(jīng)測試,能很好地識別動作庫中所包含的4種基本動作,其識別率為90%。擴充到的10個動作庫(雙手結(jié)合的動作和基本啞語動作),本文識別系統(tǒng)的動作識別率也能達到 86%。
表2為參考文獻中列舉出的先前的工作與本文所做的工作進行對比。參考文獻中的硬件平臺皆以FPGA邏輯電路實現(xiàn),系統(tǒng)設(shè)計復(fù)雜,不易使用,可移植性差,以及需要消耗大量的硬件資源。而本文所采用的ZYNQ處理器在進行硬件加速的同時,還可以運行操作系統(tǒng)以及圖形圖像界面,具備一個完整系統(tǒng)直觀的輸入、處理、輸出功能,并且易于修改以及版本升級,做到了在一塊芯片上完成軟硬件協(xié)同設(shè)計。此外,本文中圖像分辨率有所提升,可以在一幀圖像中提取出更加豐富的特征向量。
表2 對比分析
基于ZYNQ處理器ARM+FPGA架構(gòu)對時空運動場塊的識別算法進行軟硬件協(xié)同設(shè)計,將適合于硬件電路實現(xiàn)的運動特征提取算法,使用HLS設(shè)計方法,用高級語言快速實現(xiàn)算法級開發(fā),并自動轉(zhuǎn)化成硬件可綜合的RTL級語言。最終以較低的運算復(fù)雜度獲取具有較強表現(xiàn)力的運動特征,并獲得很好的識別效果。本文的識別系統(tǒng)支持高清1080P 60 fps的視頻輸入和輸出,以及運動的實時檢測。由于采用了DDR進行幀緩存,因此可以查看硬件計算的中間處理結(jié)果。運動特征圖和運動場圖可實時更新顯示,比純軟件實現(xiàn)方式要快兩個數(shù)量級。最后,通過Linux和QT框架設(shè)計的控制和人機交互系統(tǒng)可實現(xiàn)在線學(xué)習(xí)和創(chuàng)建運動庫的功能。
[1] Murat Tekalp.Digital Video Processing[M].Englewood Cliff:Prentice-Hall Press,1996.
[2] Sadanand S,Corso JJ.Action bank:A high-level representation of activity in video[C]//IEEE Conference on Computer Vision and Pattern Recognition,2012:1234-1241.
[3] Sun D,Roth S,Black MJ.Secrets of optical flow estimation and their principles[C]//IEEE Conference on Computer Vision and Pattern Recognition,2010:2432-2439.
[4] Serre T,Wolf L,Bileschi S,et al.Robust object recognition with cortex-like mechanisms[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2007,29(3):411-426.
[5] Hou Z,Zhu H,Zheng N,et al.A single-chip 600-fps real-time action recognition system employing a hardware friendly algorithm[C]//IEEE International Symposium on Circuits and Systems (ISCAS),Melbourne,2014:762-765.
[6] A A Maashri,M DeBole,Chakrabarti.Accelerating neuromorphic vision algorithms for recognition[C]//Proc. ACM DAC,2012:579-584.
[7] H Meng,M Freeman,Bailey.Real-time human action recognition on an embedded, reconfigurable video processing architecture[J].Real-Time Image Proc,2008,3(3):163-176.
李金泉、胡文振、闞世超(碩士研究生),主要研究方向為嵌入式與多媒體信息處理;王東(副教授),主要研究方向為數(shù)字系統(tǒng)設(shè)計與異構(gòu)計算。
Human Action Recognition System Based on ZYNQ Heterogeneous Multi-processor
Li Jinquan,Wang Dong,Hu Wenzhen,Kan Shichao
(Institute of Information Science,Beijing Jiaotong University,Beijing 100044,China)
Based ZYNQ heterogeneous multi-core processor,the FPGA hardware acceleration is achieved using the HLS design methodology motion feature extraction algorithm,which reaches the handling capacity of 1080P 60 fps.The K-means is used to generate high dimension vector by motion feature vector.Then the SVM classifier is used to do the classification and identification.In the end,the algorithm effectively is achieved through the system structure and the hardware acceleration circuit.Based on the man-machine interaction way of Linux and the framework of QT,the system can support online learning and create a library of action.
action recognition;ZYNQ;heterogeneous multi-processor;software hardware co-processing;HLS;Linux
TP27
A
(責(zé)任編輯:薛士然2016-03-14)