楊志芳,李 乾
(武漢工程大學(xué) 電氣信息學(xué)院,武漢430205)
隨著監(jiān)控設(shè)備的普及,社會的治安管理越來越依賴于視頻圖像的辨識,計算機視覺因此成為了一個備受關(guān)注的領(lǐng)域。隨著在行為監(jiān)控、異常行為監(jiān)測、老人智能看護、體育比賽等方面的人體行為識別的需求日益增加,對人體行為進行準確,快速的識別尤為重要[1-2]。目前行為識別方法主要分為基于傳統(tǒng)特征標注的方法和基于深度學(xué)習(xí)的方法,傳統(tǒng)方法使用受限于特征向量的提取和編碼過程中會產(chǎn)生較高的時空復(fù)雜度,對算法性能影響極大。而基于深度學(xué)習(xí)的方法主要分為2D CNN 和3D CNN網(wǎng)絡(luò),3D CNN 網(wǎng)絡(luò)對于圖像采集設(shè)備要求過高,不適合實際的監(jiān)控設(shè)備部署[3]。目前研究人員大多基于目標檢測來進行多人行為識別的建模和研究,文獻[4]提出了一種改進的運動歷史圖和基于能量塊的二維高斯濾波器的方法對人體的動作信息進行特征提??;文獻[5]提出了一種新的局部聚集描述符的時空向量方法。以上方法其難點在于由于無法準確判斷圖像中的人數(shù),不能提取出有效的特征,最終導(dǎo)致行為識別準確率不高。本文針對以上方法存在的問題,提出了一種基于骨骼關(guān)鍵點的異常行為識別方法,該方法結(jié)合姿態(tài)估計、運動特征描述和行為分類來進行異常行為識別,有效提高了準確率,本文算法在公開數(shù)據(jù)集上得到了較好的實驗結(jié)果。
基于骨骼關(guān)鍵點的異常行為檢測程序框圖如圖1 所示,其中包括圖像預(yù)處理模塊,關(guān)鍵點檢測模塊,運動特征描述模塊,行為分類模塊。
圖1 程序流程Fig.1 Procedure flow chart
圖像預(yù)處理模塊將輸入視頻進行由視頻到圖像的轉(zhuǎn)換,采用25 幀每秒的標準進行提取。提取的圖片進行行為類別標注后分為訓(xùn)練集和測試集。將圖片傳入關(guān)鍵點檢測模塊,模塊采用AS 模型進行關(guān)鍵點的提取。將模型返回的數(shù)據(jù)進行坐標計算,得出關(guān)鍵點坐標傳入運動特征描述模塊進行運動特征矩陣的計算,將計算得出的運動描述矩陣作為運動特征傳入行為分析模塊,使用SVM 分類器進行行為分類。
本文采用AS 模型[6]來進行人體關(guān)鍵點檢測,該模型通過使用關(guān)聯(lián)嵌入與堆疊沙漏網(wǎng)絡(luò)集成在一起,為每個身體關(guān)節(jié)生成檢測熱圖和標記熱圖,然后將具有相似標簽的身體關(guān)節(jié)分組到個人身上,通過高維空間的向量來編碼不同人體的不同關(guān)鍵點之間的關(guān)系,即同一個人的不同關(guān)鍵點在空間上是盡可能接近的,不同人的不同關(guān)鍵點在空間上是盡可能遠離的,最后可以通過2 個關(guān)鍵點在高維空間上的距離來判斷2 個關(guān)鍵點是否屬于同一個人,從而達到聚類的目的。在COCO 數(shù)據(jù)集進行訓(xùn)練,得到的17 個關(guān)鍵點坐標信息,將提取的關(guān)鍵點坐標采用NO0 到NO16 進行標記,如圖2 所示。
圖2 關(guān)鍵點位置示意圖Fig.2 Schematic diagram of key points
對于行為特征的描述采用傳統(tǒng)的目標外接矩陣的長寬比、重心坐標等方法進行衡量,需要對關(guān)鍵點坐標進行歸一化處理來消除模型得到的關(guān)鍵點位置坐標受相機位置、 圖像分辨率等因素的影響,但歸一化的方法實現(xiàn)起來難度較大,且判斷結(jié)果受影響較大,也無法充分利用關(guān)鍵點坐標信息。本文提出一種新的運動特征提取方法,經(jīng)過對各種行為過程中的關(guān)鍵點之間的數(shù)據(jù)分析,本文采用兩手腕與肩部形成的向量與軀干向量的夾角角速度,兩腳腕與膝蓋形成的向量與軀干向量的夾角角速度,肘彎曲部分角速度,腿彎曲部分角速度這4 個角速度的變化來描述人體運動,計算公式如式(1)~式(3):
式中:ΔX 為兩點X 坐標的差值;ΔY 為兩點Y 坐標的差值;a tan 2 為計算反正切弧度值;計算角速度v 時需要進行象限約束,將角度的值約束在(0°,180°)。
對于行為的描述采用目標檢測的方法大多只能反映當前幀的運動情況,加入時間軸描述信息會大大增加計算量導(dǎo)致運行緩慢,本文基于骨骼關(guān)鍵描述運動特征,提出將每一幀中的每個對象的運動特征用一個向量進行描述,提取該描述對象10 幀內(nèi)行為的動作描述組成一個特征矩陣來描述行為,這樣可以更好的利用數(shù)據(jù),使描述更加可靠。式(4)為一幀的向量e,然后將10 幀的向量合成特征描述矩陣F,如式(5)所示:
本文采用SVM 進行分類,SVM 是一種典型的二類器,本文采用“一對一”方法訓(xùn)練多個SVM 分類器進行行為分類,對N 個分類通過構(gòu)建n(n-1)/2個支持向量機,每個支持向量機訓(xùn)練2 種不同類別的數(shù)據(jù),最后分類的時候采取“投票”的方式?jīng)Q定分類結(jié)果。把選取的12 類異常行為各截取數(shù)據(jù)3000幀,形成300 的樣本,總計3600 樣本作為訓(xùn)練集進行訓(xùn)練,采用SMO 方法進行優(yōu)化訓(xùn)練。
用傳統(tǒng)的CPU 進行關(guān)鍵點檢測計算時間太長,無法達到實時處理的要求??紤]到GPU 在體積和功耗方面對模型部署存在問題。本文提出使用CPU+FPGA 對卷積神經(jīng)網(wǎng)絡(luò)模型進行異構(gòu)并行加速處理。訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型需要進行大量的運算,使本文首先對訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型進行優(yōu)化處理,然后使用FPGA 設(shè)計加速器來對優(yōu)化后的卷積神經(jīng)網(wǎng)絡(luò)模型進行異構(gòu)加速處理,提高卷積神經(jīng)網(wǎng)絡(luò)的運算速度。
本項目最終部署平臺為Intel 亞洲研究院推出的異構(gòu)可擴展開放平臺(Heterogeneous Extension Robot Platform,HERO),其尺寸外觀和內(nèi)部結(jié)構(gòu)如圖3 所示。OpenVINO 工具包包含了OpenCV 庫、OpenVX 庫以及Intel OpenCL 運行環(huán)境等多種工具組件,支持使用C/C++以及Python 語言進行項目開發(fā),能夠?qū)τ?xùn)練好的模型進行模型優(yōu)化并調(diào)用Intel的多種加速設(shè)備(GPU、FPGA 和VPU)進行加速。
圖3 HERO 工具Fig.3 HERO tool
模型優(yōu)化是OpenVINO 工具的核心部分,其具體流程如圖4 所示。對于訓(xùn)練好的模型,首先轉(zhuǎn)換成onnx 模型,然后調(diào)用模型優(yōu)化器進行優(yōu)化,將訓(xùn)練好的模型onnx 轉(zhuǎn)化為包含網(wǎng)絡(luò)權(quán)重的.bin 文件和包含網(wǎng)絡(luò)拓撲結(jié)構(gòu)的.xml 文件的中間模型文件。最后調(diào)用FPGA 進行加速,根據(jù)得出結(jié)果計算關(guān)鍵點坐標,使用關(guān)鍵點坐標進行特征矩陣的計算,最后送入訓(xùn)練好的SVM 分類器進行行為分類。
圖4 FPGA 模型部署流程Fig.4 FPGA model deployment flow chart
實驗所配置的硬件環(huán)境如表1 所示。
表1 硬件平臺Tab.1 Hardware platform
為了驗證本文的準確度,在數(shù)據(jù)集HMDB51 上選取毆打、擊劍等12 類異常行為訓(xùn)練進行測試,選取KTH 數(shù)據(jù)集跑、 走等6 類常見行為進行訓(xùn)練測試。在不同分辨率的輸入圖片中均能較好地檢測到人體關(guān)鍵點,檢測效果圖如圖5 所示。
圖5 模型關(guān)鍵點檢測Fig.5 Model key point detection
從圖中可以看到as 模型可以在不同分辨率的圖片中準確地檢測出人體關(guān)鍵點,為后續(xù)提取二次特征提供了可靠的依據(jù)。為了驗證本文的算法在準確率方面的優(yōu)勢,選取HMDB51 的12 類異常行為和KTH 中的常見行為進行測試,對比文獻[7],文獻[8],文獻[9]和文獻[10]。結(jié)果如表2 所示,本文在準確率上有較大提升。
表2 各數(shù)據(jù)集檢測結(jié)果Tab.2 Test results of each data set
為了探究FPGA 對CPU 的加速及各平臺部署效果,本文在HMDB51 數(shù)據(jù)集進行測試,分別在CPU1、CPU1+FPGA 及CPU2+GPU 三種平臺上運行算法進行對比實驗。實驗對比了算法模型在CPU 與CPU+GPU 以及CPU+FPGA 端上各自的檢測精度、功耗、幀率。計算了不同平臺的能效比,結(jié)果如表3所示。
由表3 中可以看出,采用CPU+FPGA 的方案,可以大大加速模型的運行時間達到了32 FPS 的速度,而且準確率不會有較大的損失。雖然CPU+GPU的部署方案可以獲得更高的速度和幀率,但是在部署體積,特別是能效比方面,本文提出CPU+FPGA的部署方案更具備價值。
表3 不同平臺功耗對比Tab.3 Energy consumption ratio of each platform
本文提出的基于關(guān)鍵點的異常行為識別解決了目前異常行為識別領(lǐng)域檢測精度不足、檢測速度慢的缺點。對于存在模型部署困難的問題,本文提出CPU+FPGA 的部署方案,在模型速度和準確率還是能效比方面有較好的平衡。
本文采用的關(guān)鍵點檢測方案由于缺少三維深度信息,下一階段計劃引入深度信息估計進行補充。