姬曉飛,李晨宇,王昱
(沈陽航空航天大學(xué) 自動化學(xué)院,沈陽 110136)
雙人交互動作識別在視頻檢索、智能監(jiān)控、人機(jī)交互等方面都具有潛在的應(yīng)用價值[1],因此在計算機(jī)視覺領(lǐng)域受到越來越多的關(guān)注。其中RGB視頻數(shù)據(jù)是人類動作識別的主要數(shù)據(jù)源,但由于RGB數(shù)據(jù)只能提供人體運動的二維信息,且易受光照變化等影響,識別率難以提升。隨著高性價比的深度傳感器(如Microsoft Kinect)和實時姿態(tài)估計算法[2]的發(fā)展,能夠表征人體三維信息的關(guān)節(jié)點序列成為了人體動作識別的主要數(shù)據(jù)源。
近年來,深度學(xué)習(xí)的方法在基于關(guān)節(jié)點序列的動作識別中取得了良好的識別效果。根據(jù)關(guān)節(jié)點序列表示并反饋給深度神經(jīng)網(wǎng)絡(luò)的不同方式,通??梢苑譃榛诰矸e神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)和基于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)。基于CNN的方法是將關(guān)節(jié)點序列進(jìn)行編碼圖像化,然后送入CNN進(jìn)行深層次特征提取和識別。Wang[3]等對關(guān)節(jié)點軌跡的空間結(jié)構(gòu)和動態(tài)表現(xiàn)進(jìn)行顏色編碼得到三種關(guān)節(jié)點軌跡圖,然后送入CNN中進(jìn)行識別。該類方法直接對原始數(shù)據(jù)進(jìn)行編碼,抗噪聲的能力比較弱。Ke[4]等將整個身體分成5個部分,從關(guān)節(jié)點序列中提取每部分的余弦距離特征和歸一化幅度特征,并將每部分的所有幀的兩種特征按照時間順序排列編碼為灰度圖,然后送入CNN進(jìn)行識別。Yang[5]等提出一種樹形結(jié)構(gòu)骨架圖(Tree Structure Skeleton Image,TSSI),將固定順序連接的關(guān)節(jié)點按照TSSI模型重新連接并轉(zhuǎn)化為灰度圖,然后送入CNN進(jìn)行識別。此類方法的網(wǎng)絡(luò)結(jié)構(gòu)簡單,但對關(guān)節(jié)點序列的時間信息利用不充分。
基于RNN的方法是將關(guān)節(jié)點序列數(shù)據(jù)送到長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)中,對時空關(guān)系進(jìn)行充分表示。Liu[6]等提出一個關(guān)節(jié)點序列的時空長短期記憶網(wǎng)絡(luò)(Temporal and spatial-Long Short-Term Memory,ST-LSTM),將每個關(guān)節(jié)的相鄰關(guān)節(jié)及前一幀信息編碼為時空特征,并使用樹狀結(jié)構(gòu)表示關(guān)節(jié)點之間的關(guān)系,之后將關(guān)節(jié)點數(shù)據(jù)的結(jié)果送入LSTM網(wǎng)絡(luò)進(jìn)行建模與識別。該框架為關(guān)節(jié)點數(shù)據(jù)在LSTM中的應(yīng)用提供了創(chuàng)新性思維。 Zhang[7]等提出一種通用空間建模方法,并構(gòu)建了8種類型的幾何特征。然而,相比于單一類型特征,該方法使用三層LSTM模型,實時性不高。Wang[8]等提出雙流RNN分別對關(guān)節(jié)點序列的時空關(guān)系進(jìn)行建模,但是此方法采用多個RNN模型,結(jié)構(gòu)更為復(fù)雜,導(dǎo)致模型的訓(xùn)練和識別復(fù)雜度較高。
基于深度學(xué)習(xí)的雙人交互動作識別方法可以極大提高識別的準(zhǔn)確性,但目前將關(guān)節(jié)點數(shù)據(jù)提取特征并編碼圖像化送入深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行識別的方法多數(shù)沒能很好地考慮關(guān)節(jié)點的時空關(guān)系,導(dǎo)致大量有用信息丟失。綜上所述,本文提出一種新的基于關(guān)節(jié)點連接歷史圖的關(guān)節(jié)點特征提取及編碼圖像化方法,能夠同時對人體關(guān)節(jié)點的時空關(guān)系進(jìn)行充分表示,并與CNN結(jié)合,對復(fù)雜的雙人交互動作識別具有較好的實用性。
算法整體框架分為訓(xùn)練和識別兩個過程。
(1)訓(xùn)練過程:在訓(xùn)練過程中,將訓(xùn)練集中關(guān)節(jié)點序列轉(zhuǎn)化為關(guān)節(jié)點連接歷史圖,并將其送入卷積神經(jīng)網(wǎng)絡(luò)中;用于訓(xùn)練網(wǎng)絡(luò)各層的權(quán)值。
(2)識別過程:將測試集中數(shù)據(jù)做上述相同的處理,并將其送入已訓(xùn)練好的網(wǎng)絡(luò)模型中,最后利用soft-max分類器得到動作識別結(jié)果,本文整體算法框架如圖1所示。
圖1 算法整體框圖
目前Kinect深度相機(jī)可以實時準(zhǔn)確獲取人體關(guān)節(jié)點數(shù)據(jù),但需對其進(jìn)行編碼圖像化之后才能與CNN結(jié)合進(jìn)行交互動作識別。因此本文提出一種新的關(guān)節(jié)點編碼圖像化方法,即關(guān)節(jié)點連接歷史圖。首先將關(guān)節(jié)點按照人體關(guān)節(jié)點位置連接得到關(guān)節(jié)點連接圖來保留其空間信息,再將每幀關(guān)節(jié)點連接圖中的關(guān)節(jié)點連線,按照時間順序譜編碼得到關(guān)節(jié)點連接歷史圖體現(xiàn)其時間信息。
關(guān)節(jié)點連接歷史圖構(gòu)建的具體步驟如下:
第一步,創(chuàng)建單幀關(guān)節(jié)點數(shù)據(jù)的關(guān)節(jié)點連接圖。將X軸和Y軸的信息作為圖像的位置信息;并將關(guān)節(jié)點按照人體骨架順序連接得到單幀關(guān)節(jié)點連接圖。那么動作個體之間的空間關(guān)系就可以通過關(guān)節(jié)點位置和關(guān)節(jié)點連線體現(xiàn)。
第二步,創(chuàng)建單幀關(guān)節(jié)點連接圖的譜編碼。引入HSV顏色空間將每一幀中關(guān)節(jié)點和關(guān)節(jié)點連線分別進(jìn)行譜編碼。相對于RGB空間,HSV空間能夠更直觀地表達(dá)色彩的色調(diào)、明暗以及鮮艷程度,方便進(jìn)行顏色之間的對比。
HSV空間中的色調(diào)(H)表示色彩信息。關(guān)節(jié)點和關(guān)節(jié)點連線的色調(diào)對應(yīng)關(guān)系為公式(2)。其中關(guān)節(jié)點連線色調(diào)的起始角度為0°,關(guān)節(jié)點色調(diào)的起始角度與其相位差為120°。
(2)
其中i是此單幀關(guān)節(jié)點連接圖對應(yīng)幀數(shù),N是執(zhí)行動作總幀數(shù),i=[1,2,…,N]。
飽和度(S)表示顏色純度的比率。關(guān)節(jié)點和關(guān)節(jié)點連線的飽和度用S表示,S均取1。
亮度(V)表示色彩的明亮程度,關(guān)節(jié)點的深度信息被映射到HSV模型中的V中。
使用HSV顏色空間模型對關(guān)節(jié)點連接圖進(jìn)行譜編碼,可將關(guān)節(jié)點數(shù)據(jù)的時間關(guān)系和空間關(guān)系中的深度信息分別用H和V兩個參數(shù)來表征,使關(guān)節(jié)點數(shù)據(jù)的時空信息均被充分利用。
第三步,創(chuàng)建關(guān)節(jié)點序列對應(yīng)的關(guān)節(jié)點連接歷史圖。將整個關(guān)節(jié)點序列對應(yīng)的單幀關(guān)節(jié)點連接圖整合到一張圖像中,可以得到關(guān)節(jié)點序列對應(yīng)的關(guān)節(jié)點連接歷史圖。那么關(guān)節(jié)點的時間信息就可以通過不同幀中關(guān)節(jié)點和關(guān)節(jié)點連線的不同色彩來體現(xiàn)。關(guān)節(jié)點序列連接歷史圖示例如圖2所示。
圖2 關(guān)節(jié)點序列連接歷史圖示例
本文提出的關(guān)節(jié)點連接歷史圖充分考慮了關(guān)節(jié)點數(shù)據(jù)的時空關(guān)系,因此可以有效提取關(guān)節(jié)點數(shù)據(jù)的關(guān)鍵信息。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一類特別設(shè)計用來處理二維數(shù)據(jù)的多層神經(jīng)網(wǎng)絡(luò)[9]。目前常使用的網(wǎng)絡(luò)包括AlexNet[10]、VGG[11]、Inception[12]和ResNet[13]。其中VGG包含VGG16和VGG19兩種結(jié)構(gòu),該網(wǎng)絡(luò)證明了增加網(wǎng)絡(luò)深度能夠影響網(wǎng)絡(luò)的最終性能。因此本文選用性能更好的VGG-19卷積神經(jīng)網(wǎng)絡(luò)。
VGG-19網(wǎng)絡(luò)結(jié)構(gòu)非常簡潔,它由含有16個卷積層的5個卷積段、5個最大池化層和3個全連接層組成。VGG-19的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 VGG-19網(wǎng)絡(luò)結(jié)構(gòu)圖
卷積神經(jīng)網(wǎng)絡(luò)VGG-19的訓(xùn)練是運用TensorFlow[14]平臺下Keras框架完成的,首先將關(guān)節(jié)點連接歷史圖按照8:2分為訓(xùn)練集與測試集,之后將訓(xùn)練集數(shù)據(jù)使用VGG-19訓(xùn)練即可得到網(wǎng)絡(luò)模型訓(xùn)練參數(shù)。
卷積神經(jīng)網(wǎng)絡(luò)VGG-19的測試使用測試集數(shù)據(jù)和訓(xùn)練好的VGG-19網(wǎng)絡(luò),測試結(jié)束即可得到雙人交互動作識別結(jié)果。
本文采用國際標(biāo)準(zhǔn)的SBU Kinect[15]數(shù)據(jù)庫來進(jìn)行驗證。它是一個雙人交互動作數(shù)據(jù)庫,共包含8個動作類別,分別為靠近、離開、踢、打、擁抱、握手和傳遞物品。其中關(guān)節(jié)點數(shù)據(jù)是將每個動作者用15個關(guān)節(jié)點進(jìn)行表示。SBU Kinect數(shù)據(jù)庫關(guān)節(jié)點動作示例圖如圖4所示。
圖4 SBU Kinect 數(shù)據(jù)庫示例圖
為了測試本文所提出算法的有效性,將數(shù)據(jù)庫中的樣本按照8∶2的比例分別進(jìn)行訓(xùn)練和測試,進(jìn)行100次迭代訓(xùn)練,得到訓(xùn)練和測試過程的準(zhǔn)確率與模型損失值分別如圖5所示。
圖5 關(guān)節(jié)點數(shù)據(jù)的識別準(zhǔn)確率和模型損失
根據(jù)圖5可知,隨著訓(xùn)練次數(shù)增加識別結(jié)果趨于穩(wěn)定,識別準(zhǔn)確率最高為97.1%,最終穩(wěn)定在94.12%,識別結(jié)果的歸一化混淆矩陣表示為圖6。
由圖6可知,關(guān)節(jié)點連接歷史圖對7種動作類別均可以準(zhǔn)確識別,錯誤識別主要發(fā)生在打和擁抱之間,原因是這兩個動作在執(zhí)行過程中空間結(jié)構(gòu)相似,易造成識別結(jié)果不準(zhǔn)確。
圖6 關(guān)節(jié)點連接歷史圖識別結(jié)果混淆矩陣
本實驗與其他方法在SBU Kinect數(shù)據(jù)庫進(jìn)行實驗結(jié)果對比如表1所示。
表1 本文模型與其他模型算法結(jié)果對比
由表1可知,本文提出的算法取得了較好的識別結(jié)果,識別準(zhǔn)確率高于文獻(xiàn)[6]和[7],且本文選擇的VGG-19網(wǎng)絡(luò)模型結(jié)構(gòu)較為簡單,實時性較高。文獻(xiàn)[9]比本文識別率高出0.68%,但其選用雙流RNN作為網(wǎng)絡(luò)模型,結(jié)構(gòu)較為復(fù)雜,訓(xùn)練時間較長,而本文迭代一次時間僅3-4s。文獻(xiàn)[8]的識別準(zhǔn)確率較高,但其選用三層LSTM模型,結(jié)構(gòu)更為復(fù)雜,且通過關(guān)節(jié)點與線之間距離JLD(joint-line distance)來構(gòu)造特征的方式也較為繁瑣。
本文提出了一種基于關(guān)節(jié)點連接歷史圖與CNN結(jié)合的雙人交互動作識別方法,首先將關(guān)節(jié)點序列按照人體關(guān)節(jié)點空間位置連接得到關(guān)節(jié)點連接圖保留其空間信息,再將每幀關(guān)節(jié)點連接圖中的關(guān)節(jié)點和關(guān)節(jié)點連線,按照時間順序譜編碼得到關(guān)節(jié)點連接歷史圖來體現(xiàn)其時間信息,之后使用卷積神經(jīng)網(wǎng)絡(luò)挖掘其深層次特征進(jìn)行雙人交互動作識別。本文提出的算法在SBU Kinect數(shù)據(jù)庫進(jìn)行實驗,結(jié)果表明該算法具有良好的遷移性和實時性。