《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于SoC FPGA和CNN模型的動(dòng)作識(shí)別系統(tǒng)設(shè)計(jì)
基于SoC FPGA和CNN模型的動(dòng)作識(shí)別系統(tǒng)設(shè)計(jì)
2019年電子技術(shù)應(yīng)用第2期
陳旭東1,周昱琪2,李夢(mèng)杰1,陳章進(jìn)1,3
1.上海大學(xué) 微電子研究與開(kāi)發(fā)中心,上海200444; 2.上海大學(xué) 納米科學(xué)與技術(shù)研究中心,上海200444;3.上海大學(xué) 計(jì)算中心,上海200444
摘要: 動(dòng)作識(shí)別是重要的機(jī)器視覺(jué)研究領(lǐng)域之一。設(shè)計(jì)實(shí)現(xiàn)基于SoC FPGA和CNN模型的動(dòng)作識(shí)別系統(tǒng)。設(shè)計(jì)實(shí)現(xiàn)流水線(xiàn)型LK光流計(jì)算、基于HOG與SVM的行人檢測(cè)模塊;設(shè)計(jì)實(shí)現(xiàn)動(dòng)態(tài)行人檢測(cè)與靜態(tài)行人檢測(cè)結(jié)果的融合算法,計(jì)算出目標(biāo)人物所在區(qū)域;利用該區(qū)域的視頻圖像和光流場(chǎng)數(shù)據(jù),輸入CNN模型計(jì)算得到目標(biāo)人物的動(dòng)作識(shí)別結(jié)果; 設(shè)計(jì)指令集架構(gòu)的NPU單元用于實(shí)現(xiàn)CNN模型計(jì)算。整個(gè)系統(tǒng)基于DE10-Nano開(kāi)發(fā)板進(jìn)行軟硬件協(xié)同開(kāi)發(fā),能夠識(shí)別“站立”、“行走”、“揮手”和“下蹲”等動(dòng)作。該系統(tǒng)具有較高的識(shí)別率和較強(qiáng)的設(shè)計(jì)靈活性,方便CNN模型的擴(kuò)展與修改。
中圖分類(lèi)號(hào): TN791;TP301
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.182476
中文引用格式: 陳旭東,周昱琪,李夢(mèng)杰,等. 基于SoC FPGA和CNN模型的動(dòng)作識(shí)別系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2019,45(2):97-104,108.
英文引用格式: Chen Xudong,Zhou Yuqi,Li Mengjie,et al. Design of an action recognition system based on SoC FPGA and CNN model[J]. Application of Electronic Technique,2019,45(2):97-104,108.
Design of an action recognition system based on SoC FPGA and CNN model
Chen Xudong1,Zhou Yuqi2,Li Mengjie1,Chen Zhangjin1,3
1.Microelectronic Research and Development Center,Shanghai University,Shanghai 200444,China; 2.Research Center of Nano-Science and Nano-Technology,Shanghai 200444,China; 3.Computer Center,Shanghai University,Shanghai 200444,China
Abstract: Action recognition is an important area in computer vision. An action recognition system based on SoC FPGA and CNN model is presented. A pipelined LK optical flow module and a pedestrian detection module based on HOG and SVM are realized. The results of detection of dynamic pedestrian and static pedestrian are merged to recognize the area where the person is. The image and optical flow in the area are both input into the CNN model, to recognize what action it is. An ISA-NPU is proposed to realize the computation of the CNN model. The system is realized in Altera DE10-Nano Kit. With the co-operation of hardware and software, the system can recognize actions such as stand, walk, wave and squat. The system is accurate in recognition and flexible for expansion and modification of the CNN model.
Key words : action recognition;FPGA;CNN;LK optical flow;NPU

0 引言

    基于視覺(jué)的動(dòng)作識(shí)別方法可以分為兩大類(lèi)[1],其一是采用人工設(shè)計(jì)的特征進(jìn)行識(shí)別的方法,比如基于密集軌跡[2]、基于空時(shí)濾波器與圖模型[3]、基于關(guān)節(jié)信息和流形學(xué)習(xí)的方法[4]、基于HMM的復(fù)雜動(dòng)作建模[5]等;其二是采用深度網(wǎng)絡(luò)的方法,比如基于空時(shí)卷積神經(jīng)網(wǎng)絡(luò)[6]、Two-stream卷積網(wǎng)絡(luò)[7-8]、基于關(guān)節(jié)信息和LSTM的空時(shí)注意力模型[9]等。雖然使用深度學(xué)習(xí)可以減少人工設(shè)計(jì)特征的工作量,且在圖像識(shí)別等領(lǐng)域有極佳的表現(xiàn)[10],但是卻有運(yùn)算量大的問(wèn)題。對(duì)此,可以通過(guò)模型改進(jìn)[11-12]、壓縮[13]、量化[14]等方式減少運(yùn)算量,也可以使用GPU[15]、ASIC[16]FPGA[17-18]等硬件系統(tǒng)進(jìn)行加速運(yùn)算。

    本文采用CNN模型對(duì)視頻流中的目標(biāo)任務(wù)進(jìn)行動(dòng)作識(shí)別。為了減少運(yùn)算量,首先利用基于光流信息和靜態(tài)圖像處理的行人檢測(cè)方案定位場(chǎng)景中的目標(biāo),而后使用CNN網(wǎng)絡(luò)對(duì)目標(biāo)區(qū)域的圖像和光流進(jìn)行處理,最終給出動(dòng)作識(shí)別結(jié)果。該系統(tǒng)在DE10-Nano開(kāi)發(fā)板上進(jìn)行開(kāi)發(fā)與驗(yàn)證,在FPGA端實(shí)現(xiàn)流水線(xiàn)型LK光流計(jì)算、基于HOG和SVM的行人檢測(cè)、指令集架構(gòu)的NPU處理單元,在HPS端實(shí)現(xiàn)目標(biāo)區(qū)域融合求解、NPU單元調(diào)用,兩者共享DDR內(nèi)存,采用AXI總線(xiàn)實(shí)現(xiàn)片內(nèi)通信。

1 動(dòng)作識(shí)別原理

1.1 LK光流法

    I(x,y,t)表示時(shí)刻t拍攝下的視頻圖像中坐標(biāo)(x,y)點(diǎn)的灰度值,根據(jù)LK光流約束[19],光流場(chǎng)的計(jì)算滿(mǎn)足下列式子:

qrs2-gs1.gif

    求解上述優(yōu)化問(wèn)題,可以得到其最優(yōu)解的形式如下:

qrs2-gs2.gif

1.2 基于HOG和SVM的行人檢測(cè)

    通常使用滑動(dòng)窗口對(duì)原始圖像進(jìn)行HOG特征提取,再對(duì)HOG特征向量進(jìn)行分類(lèi)識(shí)別,達(dá)到行人檢測(cè)的目的。圖像中(x,y)坐標(biāo)點(diǎn)的像素值為I(x,y)。該點(diǎn)的像素梯度的大小和方向可以計(jì)算為M(x,y)和Θ(x,y)。將梯度的方向Θ(x,y)劃分到N個(gè)區(qū)間,每個(gè)區(qū)間占據(jù)π/N角度值,如圖1所示。

qrs2-t1.gif

其中:

     qrs2-gs3-s1.gif

    將檢測(cè)窗口(window)劃分成數(shù)個(gè)元胞(cell)。在本設(shè)計(jì)中,窗口尺寸設(shè)定為140×80,可被劃分成14×8個(gè)10×10的元胞。首先,對(duì)這14×8個(gè)10×10的元胞,依次統(tǒng)計(jì)每個(gè)元胞里面的梯度直方圖;將其通過(guò)規(guī)則化模塊,得到最終的cell特征;通過(guò)組合2×2的元胞特征,可以得到塊特征;最后,將窗口中的塊特征依次排列,得到最終的91×36=3 276維度的窗口特征,如圖2所示。

qrs2-t2.gif

    在提取HOG特征后,可以利用SVM進(jìn)行分類(lèi)識(shí)別。本文選擇使用線(xiàn)性SVM進(jìn)行分類(lèi)判別。其判別的依據(jù)如式(3)所示。

    qrs2-gs3.gif

其中,w和b分別是SVM的權(quán)值和偏置,x則是輸入的HOG特征。最后輸出y=+1說(shuō)明是正樣本(即行人);輸出y=-1則說(shuō)明是負(fù)樣本(即非行人)。

1.3 動(dòng)態(tài)窗口與靜態(tài)窗口的融合

    使用光流信息和靜態(tài)圖像信息都可以對(duì)視頻流中的行人進(jìn)行檢測(cè)[20-21]。通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),使用基于HOG和SVM的靜態(tài)圖像檢測(cè)方法不易受到物體運(yùn)動(dòng)影響,但是誤檢率較高;而基于光流信息的動(dòng)態(tài)檢測(cè)方法誤檢率較低,但是一旦物體長(zhǎng)時(shí)間靜止或者緩慢運(yùn)動(dòng)就難以定位目標(biāo)。因此,本文提出將兩種檢測(cè)方法相融合的方案,如圖3所示。

qrs2-t3.gif

    融合光流和行人檢測(cè)結(jié)果的窗口融合算法流程如下:

qrs2-t3-x1.gif

qrs2-t3-x2.gif

    通過(guò)上述窗口融合算法,可以得到目標(biāo)人物在視頻幀中的位置。針對(duì)這個(gè)區(qū)域的視頻圖像和光流數(shù)據(jù)進(jìn)行采集,對(duì)于不同的動(dòng)作有不同的數(shù)據(jù)形態(tài)。如圖4所示,每個(gè)動(dòng)作對(duì)應(yīng)的四張圖分別是原始視頻圖像、光流x軸分量、光流y軸分量和顯著運(yùn)動(dòng)檢測(cè)掩膜。

qrs2-t4.gif

1.4 基于CNN的動(dòng)作識(shí)別

    計(jì)算每一幀視頻的光流,提取行人存在區(qū)域的視頻圖像、光流場(chǎng)x軸分量、y軸分量以及顯著運(yùn)動(dòng)檢測(cè)掩膜。將這四類(lèi)圖像信息統(tǒng)一形變到94×94大小,并作為CNN的輸入通道,交由CNN進(jìn)行卷積層和池化層運(yùn)算;最后的結(jié)果經(jīng)過(guò)全連接層計(jì)算得到姿勢(shì)識(shí)別結(jié)果。其中,卷積核的尺寸統(tǒng)一設(shè)置為3×3大小,池化核的尺寸統(tǒng)一為2×2;而為了提高CNN的泛化性能,在全連接層使用了dropout,并對(duì)CNN中的卷積核、全連接權(quán)值都添加L2正則化。使用CNN模型識(shí)別目標(biāo)人物的動(dòng)作如圖5所示。

qrs2-t5.gif

2 動(dòng)作識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2.1 軟硬件協(xié)同開(kāi)發(fā)示意圖

    本文提出的動(dòng)作識(shí)別系統(tǒng)發(fā)揮了SoC FPGA的軟硬件協(xié)同處理能力。

    將運(yùn)算量巨大的光流計(jì)算、靜態(tài)行人檢測(cè)和CNN運(yùn)算放置在FPGA端,充分發(fā)揮其并行計(jì)算、流水線(xiàn)型處理的運(yùn)算能力;而將運(yùn)算需求較低的窗口融合算法在HPS端實(shí)現(xiàn),使其發(fā)揮C語(yǔ)言程序設(shè)計(jì)的便捷性。HPS和FPGA之間通過(guò)AXI橋?qū)崿F(xiàn)通信。而為了訓(xùn)練CNN模型,在HPS端增加數(shù)據(jù)采樣模塊,將樣本保存到ima文件,通過(guò)網(wǎng)絡(luò)傳輸?shù)絇C。針對(duì)站立、揮手、下蹲和行走四種姿勢(shì)分別采樣,其中存在一定數(shù)量的“離群值”,為了更好地訓(xùn)練CNN,在MATLAB上實(shí)現(xiàn)了可視化樣本篩選程序。所有樣本和標(biāo)簽代入TensorFlow框架,進(jìn)行CNN模型訓(xùn)練;將訓(xùn)練得到的CNN模型參數(shù)和CNN模型結(jié)構(gòu)傳輸?shù)紿PS端,HPS會(huì)將CNN參數(shù)加載到DDR內(nèi)存,并將CNN模型對(duì)應(yīng)的NPU指令發(fā)送到FPGA端的指令集架構(gòu)NPU單元的指令Cache中。一旦HPS將目標(biāo)窗口融合完成,可以發(fā)送一次CNN運(yùn)算啟動(dòng)的指令,等待FPGA端NPU運(yùn)算完成,讀取DDR中的判別結(jié)果。動(dòng)作識(shí)別系統(tǒng)框架圖如圖6所示。

qrs2-t6.gif

2.2 硬件系統(tǒng)框架

    整個(gè)動(dòng)作識(shí)別系統(tǒng)的硬件部分框架的細(xì)節(jié)圖如圖7所示。DDR存儲(chǔ)空間為1 GB,被劃分為7個(gè)部分。其中,Linux操作系統(tǒng)占用0~480 MB空間;光流計(jì)算結(jié)果占用480 MB~512 MB這32 MB空間;原始視頻流數(shù)據(jù)占用512 MB~544 MB空間;行人檢測(cè)的結(jié)果占用576 MB~608 MB空間;行人加框視頻占用608 MB~640 MB空間;而將640 MB~1 024 MB空間用于NPU運(yùn)算過(guò)程中的數(shù)據(jù)緩存。

qrs2-t7.gif

    攝像頭MT9D111的數(shù)據(jù)進(jìn)入FPGA后,會(huì)同時(shí)傳輸?shù)絃K光流計(jì)算模塊、行人檢測(cè)模塊,計(jì)算結(jié)果會(huì)緩存到DDR中;而通過(guò)視頻緩存與顯示模塊,原始視頻可以存儲(chǔ)到DDR中,同時(shí)HDMI視頻輸出所需的數(shù)據(jù)從DDR中獲取。這些模塊對(duì)DDR的讀寫(xiě)優(yōu)先級(jí)較高,且占用DDR帶寬較大,使用FPGA-to-SDRAM(F2S)接口直接和HPS上的SDRAM控制器交互。

    HPS端的C程序需讀取行人檢測(cè)結(jié)果,并使用NMS算法對(duì)行人檢測(cè)的框進(jìn)行聚合、優(yōu)化。調(diào)用memcpy()將原始視頻復(fù)制到加框視頻的內(nèi)存空間,并加上打框的結(jié)果;同時(shí)使用通過(guò)HPS-to-FPGA(H2F)接口傳輸指令,啟動(dòng)FPGA端NPU的運(yùn)算,并讀取NPU運(yùn)算狀態(tài)。

    NPU運(yùn)算時(shí)會(huì)對(duì)DDR進(jìn)行讀寫(xiě)訪(fǎng)問(wèn),該訪(fǎng)問(wèn)通過(guò)FPGA-to-HPS(F2H)接口和L3互聯(lián)網(wǎng)絡(luò)實(shí)現(xiàn)。NPU單元可以計(jì)量指令執(zhí)行時(shí)間,將運(yùn)算狀態(tài)與執(zhí)行時(shí)間寫(xiě)入到狀態(tài)寄存器中,隨后HPS可以通過(guò)Light Weight HPS-to-FPGA(H2F-LW)接口獲取NPU運(yùn)行狀態(tài)信息。

2.3 流水線(xiàn)LK光流計(jì)算模塊設(shè)計(jì)

    本文設(shè)計(jì)的流水線(xiàn)LK光流計(jì)算框架如圖8所示。

qrs2-t8.gif

    每當(dāng)MT9D111完成一幀圖像傳輸(VSYNC下降),或者一行傳輸完成(HSYNC下降),都會(huì)啟動(dòng)從DDR中讀取一行的視頻數(shù)據(jù)緩存到FIFO內(nèi),生成I(x,y,t-1);而后,MT9D111輸出的像素點(diǎn)分別進(jìn)入長(zhǎng)度為一行像素點(diǎn)數(shù)量和長(zhǎng)度為1的移位寄存器,得到I(x,y-1,t)和I(x-1,y,t);將I(x,y,t),I(x-1,y,t),I(x,y-1,t)和I(x,y,t-1)輸入到梯度計(jì)算模塊,得到在x,y和t方向上的一階差分為Ix,Iy和It;使用4個(gè)長(zhǎng)度一致為一幀圖像一行像素點(diǎn)數(shù)量的移位寄存器,以及5×6個(gè)寄存器陣列構(gòu)造LK光流法計(jì)算區(qū)域,即Ω域。使用互乘矩陣模塊,分別計(jì)算寄存器陣列中previous對(duì)應(yīng)數(shù)據(jù)Ix,prev,Iy,prev和It,prev的乘法交叉項(xiàng);同理,計(jì)算出current對(duì)應(yīng)數(shù)據(jù)Ix,curr,Iy,curr和It,curr的乘法交叉項(xiàng)。Ω域內(nèi)乘法交叉項(xiàng)可以更新為:

qrs2-gs4.gif

    結(jié)合光流場(chǎng)計(jì)算式(2),可以通過(guò)流水線(xiàn)型除法器實(shí)現(xiàn)光流場(chǎng)的計(jì)算。最后將運(yùn)算結(jié)果回寫(xiě)到DDR中的480 MB~512 MB空間。

2.4 指令集架構(gòu)NPU設(shè)計(jì)

    為了便于實(shí)現(xiàn)、修改CNN架構(gòu),本文設(shè)計(jì)了基于指令集架構(gòu)的NPU處理單元,能夠執(zhí)行矩陣運(yùn)算(如ADD、SUB、MULT、DOT等)、立即數(shù)運(yùn)算(ADDi、MULTi等)、2-D圖像處理(如卷積CONV、池化POOL等)、激活函數(shù)(如SIGM、TANH、ReLU等)。指令集架構(gòu)NPU結(jié)構(gòu)框圖如圖9所示。通過(guò)不同NPU指令組合,能夠?qū)崿F(xiàn)不同CNN結(jié)構(gòu)。NPU指令設(shè)計(jì)參考RISC格式,如表1所示,每條指令是128 bit長(zhǎng)度,其中高4 bit區(qū)分指令類(lèi)型,[123:92]表示參數(shù)$1內(nèi)存首地址,[91:60]表示參數(shù)$2的內(nèi)存首地址或者立即數(shù)IMM,[59:28]表示運(yùn)算結(jié)果$3的內(nèi)存首地址,[27:0]用于表示運(yùn)算參數(shù),如函數(shù)輸入矩陣尺寸、卷積核尺寸等。

qrs2-t9.gif

qrs2-b1.gif

    比如全連接層的NPU指令可以表述如下。將存儲(chǔ)在首地址0x0F000000的輸入矩陣$1(尺寸為1×112)與存儲(chǔ)在0x0A6B0000的權(quán)值矩陣$2(尺寸為112×32)相乘,結(jié)果緩存在0x0C000000;而后加上存儲(chǔ)在0x0A6C0000的偏置(尺寸為1×32),緩存到0x0C010000;最后通過(guò)SIGM指令實(shí)現(xiàn)非線(xiàn)性映射,結(jié)果保存到0x0E000000。

    Layer 6: fully_connection

    MULT, @0F000000, @0A6B0000, @0C000000,M=1,N=112, P=32

      inst=40F0000000A6B00000C0000000170200

    ADD, @0C000000, @0A6C0000, @0C010000, M=1, N=32

      inst=00C0000000A6C00000C0100000120000

    SIGM, @0C010000, xx, @0E000000, M=1, N=32

      inst=90C010000000000000E0000000120000

    整個(gè)NPU劃分成FSM控制邏輯、NPU指令解析邏輯、NPU指令運(yùn)算邏輯和DDR讀寫(xiě)接口邏輯四個(gè)部分。

    如果NPU就緒,那么會(huì)給出cnn_inst_ready信號(hào),表示可以接收運(yùn)算指令;cnn_inst信號(hào)則是外部控制邏輯給出的運(yùn)算指令;cnn_inst_en信號(hào)則表示cnn_inst指令有效使能。

    DDR讀寫(xiě)接口由ddr_write_*和ddr_read_*兩組信號(hào)構(gòu)成,且都符合Avalon-MM接口協(xié)議。由*_addr給出讀寫(xiě)地址,*_req給出讀寫(xiě)請(qǐng)求,對(duì)于DDR寫(xiě)入使用ddr_write_data表示寫(xiě)入數(shù)據(jù)。讀寫(xiě)過(guò)程中信號(hào)都要保持穩(wěn)定,直到DDR控制器給出*_ready讀寫(xiě)請(qǐng)求完成信號(hào)。對(duì)于DDR讀取,ddr_read_data表示讀取的數(shù)據(jù),而ddr_read_data_valid則表示DDR讀取數(shù)據(jù)有效。

2.5 軟件設(shè)計(jì)架構(gòu)

    HPS中的軟件程序框架圖如圖10所示。其中分別實(shí)現(xiàn)了下述功能模塊。

qrs2-t10.gif

    (1)初始化接口,使用mmap()函數(shù)將HPS-to-FPGA接口和DDR物理內(nèi)存映射到Linux用戶(hù)空間,方便其他模塊訪(fǎng)問(wèn)、讀寫(xiě)FPGA和DDR內(nèi)的數(shù)據(jù);

    (2)按鍵響應(yīng)模塊,一旦用戶(hù)按下鍵盤(pán)上的按鍵,程序能夠及時(shí)響應(yīng);

    (3)目標(biāo)窗口生成模塊,加載光流數(shù)據(jù)和靜態(tài)圖像行人檢測(cè)結(jié)果,生成動(dòng)態(tài)窗口和靜態(tài)窗口,并通過(guò)窗口融合算法對(duì)其進(jìn)行融合,確定目標(biāo)所在的位置;

    (4)數(shù)據(jù)采集模塊,從DDR中采集視頻、光流等數(shù)據(jù),并保存到相應(yīng)的文件中,用于CNN的離線(xiàn)學(xué)習(xí)使用;

    (5)NPU指令傳輸和狀態(tài)監(jiān)控模塊,能夠通過(guò)HPS-to-FPGA接口傳輸NPU指令到FPGA端的指令cache中;并且能夠啟動(dòng)NPU的運(yùn)算、監(jiān)控NPU的指令執(zhí)行情況;

    (6)繪圖模塊,能夠?qū)⒋翱谌诤辖Y(jié)果保存到DDR中的內(nèi)存區(qū)間,便于HDMI輸出顯示。

3 動(dòng)作識(shí)別系統(tǒng)測(cè)試

3.1 CNN參數(shù)訓(xùn)練

    為了訓(xùn)練本文的CNN模型,對(duì)于“無(wú)人”、“揮手”、“下蹲”、“站立”和“行走”這5種情況分別采集600個(gè)訓(xùn)練樣本,共計(jì)3 000個(gè)樣本。采用深度學(xué)習(xí)框架TensorFlow對(duì)CNN模型參數(shù)進(jìn)行訓(xùn)練[22]。整個(gè)訓(xùn)練過(guò)程在Nvidia GeForce 940M顯卡進(jìn)行,大約消耗3小時(shí),識(shí)別精度可以在訓(xùn)練集達(dá)到90%,在測(cè)試集達(dá)到88%。對(duì)于不同的動(dòng)作,訓(xùn)練結(jié)果如表2所示。本文采用的動(dòng)作識(shí)別方法能夠較好識(shí)別“揮手”、“站立”和“行走”這三種姿勢(shì);而對(duì)于“無(wú)人”、“下蹲”這兩個(gè)情況檢出率較低,但是誤報(bào)率也相對(duì)較低。

qrs2-b2.gif

3.2 硬件資源消耗與運(yùn)行性能

    由于本文設(shè)計(jì)的LK光流模塊、基于HOG和SVM的行人檢測(cè)模塊、指令集架構(gòu)NPU單元都是采用流水線(xiàn)處理,數(shù)據(jù)吞吐量極大。各模塊的資源消耗與理論最大性能如表3所示。

qrs2-b3.gif

    選擇DE10-Nano開(kāi)發(fā)板作為軟硬件運(yùn)行平臺(tái),在Quartus II 14.0環(huán)境下對(duì)動(dòng)作識(shí)別系統(tǒng)進(jìn)行綜合、布局布線(xiàn),工程消耗FPGA資源如表4所示。

qrs2-b4.gif

    布局布線(xiàn)后各模塊分布情況如圖11所示。

qrs2-t11.gif

3.3 實(shí)際運(yùn)行測(cè)試

    對(duì)本文提出的動(dòng)作識(shí)別系統(tǒng)進(jìn)行運(yùn)行測(cè)試。將開(kāi)發(fā)板和攝像頭MT9D111、HDMI顯示器進(jìn)行連接,如圖12所示。

qrs2-t12.gif

    針對(duì)“站立”、“行走”、“下蹲”和“揮手”等不同的人物動(dòng)作進(jìn)行識(shí)別,結(jié)果輸出到顯示器。其中,左上角為原始視頻;左下角為光流計(jì)算結(jié)果;右上角為行人加框結(jié)果;右下角為動(dòng)作識(shí)別結(jié)果。系統(tǒng)運(yùn)行測(cè)試情況如圖13所示。

qrs2-t13.gif

4 結(jié)論

    本文提出并實(shí)現(xiàn)了一種基于SoC FPGA和CNN模型的動(dòng)作識(shí)別系統(tǒng)。該系統(tǒng)具有流水線(xiàn)型運(yùn)算結(jié)構(gòu),能快速地執(zhí)行光流計(jì)算和靜態(tài)的行人檢測(cè);同時(shí),指令集架構(gòu)NPU的設(shè)計(jì)可以很方便地適應(yīng)于多種CNN模型結(jié)構(gòu);該姿勢(shì)識(shí)別系統(tǒng)在訓(xùn)練和實(shí)際識(shí)別測(cè)試中都表現(xiàn)出較高的準(zhǔn)確率。

參考文獻(xiàn)

[1] 范嘉義.基于骨架信息的人體動(dòng)作識(shí)別[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2017.

[2] WANG H,KLASER A,SCHMID C,et al.Action recognition by dense trajectories[C].IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society,2011:3169-3176.

[3] TURAGA P,CHELLAPPA R,SUBRAHMANIAN V S,et al.Machine recognition of human activities:a survey[J].IEEE Transactions on Circuits & Systems for Video Technology,2008,18(11):1473-1488.

[4] 王鑫,沃波海,管秋,等.基于流形學(xué)習(xí)的人體動(dòng)作識(shí)別[J].中國(guó)圖象圖形學(xué)報(bào),2014,19(6):914-923.

[5] 戰(zhàn)青卓,王大東.基于深度神經(jīng)網(wǎng)絡(luò)的人體動(dòng)作識(shí)別研究[J].智能計(jì)算機(jī)與應(yīng)用,2018,8(2):151-154.

[6] VAROL G,LAPTEV I,SCHMID C.Long-term temporal convolutions for action recognition[J].IEEE Trans on Pattern Anal & Mach Intell,2015,PP(99):1-1.

[7] SILVA V D O,VIDAL F D B,ROMARIZ A R S.Human action recognition based on a two-stream convolutional network classifier[C].IEEE International Conference on Machine Learning and Applications.IEEE,2017:774-778.

[8] 王亮亮. 基于視覺(jué)的人體動(dòng)作識(shí)別研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2017.

[9] SONG S,LAN C,XING J,et al.An end-to-end spatiotemporal attention model for human action recognition from skeleton data[J].arXiv:1611.06067,2016.

[10] 周凱龍.基于深度學(xué)習(xí)的圖像識(shí)別應(yīng)用研究[D].北京:北京工業(yè)大學(xué),2016.

[11] GIRSHICK R.Fast R-CNN[J].Computer Science,2015.

[12] REN S,HE K,GIRSHICK R,et al.Faster R-CNN:towards real-time object detection with region proposal networks[C].International Conference on Neural Information Processing Systems.MIT Press,2015:91-99.

[13] HAN S,KANG J,MAO H,et al.ESE:efficient speech recognition engine with sparse LSTM on FPGA[J].arXiv:1612.00694,2017.

[14] COURBARIAUX M,HUBARA I,SOUDRY D,et al.Binarized neural networks: training deep neural networks with weights and activations constrained to +1 or -1[J].arXiv:1602.02830,2016.

[15] ABADI M,AGARWAL A,BARHAM P,et al.TensorFlow:large-scale machine learning on heterogeneous distributed systems[J].arXiv:1603.04467,2016.

[16] LIU S,DU Z,TAO J,et al.Cambricon:an instruction set architecture for neural networks[C].International Symposium on Computer Architecture.IEEE Press,2016:393-405.

[17] 王思陽(yáng).基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)加速器設(shè)計(jì)[D].成都:電子科技大學(xué),2017.

[18] GUO K,SUI L,QIU J,et al.Angel-Eye:a complete design flow for mapping CNN onto embedded FPGA[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2017,PP(99):1-1.

[19] BARRON J L,F(xiàn)LEET D J,BEAUCHEMIN S S,et al.Performance of optical flow techniques[J].International Journal of Computer Vision,1994,12(1):43-77.

[20] 謝紅,原博,解武.LK光流法和三幀差分法的運(yùn)動(dòng)目標(biāo)檢測(cè)算法[J].應(yīng)用科技,2016,43(3):23-27,33.

[21] LI J,YIN Y,LIU X,et al.12,000-fps Multi-object detection using HOG descriptor and SVM classifier[C].IEEE/RSJ International Conference on Intelligent Robots and Systems.IEEE,2017:5928-5933.

[22] ZHANG M,XU H,WANG X,et al.Application of Google TensorFlow machine learning framework[J].Microcomputer & Its Applications,2017.



作者信息:

陳旭東1,周昱琪2,李夢(mèng)杰1,陳章進(jìn)1,3

(1.上海大學(xué) 微電子研究與開(kāi)發(fā)中心,上海200444;

2.上海大學(xué) 納米科學(xué)與技術(shù)研究中心,上海200444;3.上海大學(xué) 計(jì)算中心,上海200444)

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