肖志濤,張 曌,王 雯
(天津工業(yè)大學(xué)電子與信息工程學(xué)院,天津 300387)
基于RGB-D數(shù)據(jù)人體動作識別已成為計算機視覺中重要的研究方向。RGB-D數(shù)據(jù)包括由RGB相機拍攝的RGB數(shù)據(jù)和由深度相機拍攝的包含物體和相機之間距離信息的深度圖像組成。此外,RGB-D數(shù)據(jù)不受照明、陰影的影響,所以基于RGB-D數(shù)據(jù)的人體動作識別方法具有更出色的性能。
為了獲得RGB-D視頻中的運動信息,文獻[1-3]提出了場景流的方法,但是場景流僅提供場景中運動目標(biāo)的速度信息,因此場景流提供的運動信息并不充分。文獻[4]提出了基于散度、旋度、錯切運動學(xué)特征的描述符,增強了運動目標(biāo)的局部運動。文獻[5]使用散度、旋度等運動學(xué)特征,證明了運動學(xué)特征有尺度不變性,并且此特征可以逐幀計算。文獻[6]使用排序池化算法把視頻映射為外觀動態(tài)圖,并利用外觀動態(tài)圖和CaffeNet進行動作分類。
人體動作的執(zhí)行時間只占視頻中的一部分幀,視頻中含有與動作無關(guān)的冗余幀,只對視頻逐幀計算運動學(xué)特征會受到冗余幀的干擾。本文提出了一種基于運動學(xué)動態(tài)圖和雙流卷積網(wǎng)絡(luò)的人體動作識別方法。通過視頻的場景流向量計算視頻的散度、旋度、錯切運動學(xué)特征圖序列。使用分層排序池化[7]把運動學(xué)特征圖序列映射為運動學(xué)動態(tài)圖,得到視頻的運動信息。把原始視頻對應(yīng)的外觀動態(tài)圖[6]和運動學(xué)動態(tài)圖輸入到雙流卷積網(wǎng)絡(luò)中以實現(xiàn)人體動作識別?;谶\動學(xué)動態(tài)圖和雙流卷積網(wǎng)絡(luò)的人體動作識別方法融合了外觀信息和運動信息,不僅充分表征了視頻的動態(tài),而且使用了視頻中具有豐富運動信息的運動學(xué)特征。
將RGB-D視頻中的2個連續(xù)的RGB幀和對應(yīng)的2個連續(xù)的深度圖輸入到初級對偶算法[2]中,得到實時的稠密場景流 s=(u,v,w)T,其中 u、v、w 分別為任意一個像素點在水平、垂直和深度3個方向上的瞬時速度。與RGB彩色圖像類似,場景流向量s可看作RGB彩色圖像,3個分量u、v、w可以看作s的3個通道,s稱為場景流特征圖。視頻中每對相鄰幀和其對應(yīng)的相鄰的深度圖均計算出一幅場景流特征圖s,得到視頻的場景流特征圖序列。
運動學(xué)是描述和研究物體位置隨時間變化規(guī)律的力學(xué)分支,不涉及物體本身的物理性質(zhì)和作用于物體無關(guān)的力,僅捕捉運動信息。因此,運動學(xué)特征有助于人體動作識別。受到DCS(divergence-curl-shear)描述符[4]的啟發(fā),本文基于視頻的場景流特征圖計算運動學(xué)特征。這里計算的運動學(xué)特征包括通過散度、旋度和錯切特征計算得到的散度運動學(xué)特征圖序列、旋度運動學(xué)特征圖序列和錯切運動學(xué)特征圖序列,分別描述了視頻中的尺度變化、旋轉(zhuǎn)變化和錯切運動。通過這3種運動學(xué)特征圖,計算振幅運動學(xué)特征圖序列以表征這3種運動學(xué)特征之間的關(guān)系[8]。
(1)散度運動學(xué)特征圖序列。散度是場景流的局部一階微分標(biāo)量,能很好地描述場景流的物理模式并獲取場景流中局部擴張的運動信息。定義場景流向量s=(u,v,w)T,則在第 t幀的像素 pt處的散度為:
計算視頻中單幀圖像中所有像素點的散度,得到散度運動學(xué)特征圖。然后計算視頻中每幀場景流的每個點的散度,就構(gòu)成了一組散度運動學(xué)特征圖序列。
(2)旋度運動學(xué)特征圖序列。旋度表示場景流場中某個點的旋轉(zhuǎn)程度,能夠突出視頻中人體的圓周運動。點pt在場景流s中的旋度curl為:
式中:curl(pt)x、curl(pt)y、curl(pt)z分別為旋度在水平、垂直、深度3個方向的分量,該點的旋度幅值為:
計算s中所有幀的旋度幅值得到旋度運動學(xué)特征圖序列。
(3)錯切運動學(xué)特征圖序列。為了更加全面對視頻中的運動信息進行描述,本文在場景流的基礎(chǔ)上提取錯切特征,從而捕獲動作視頻中人體運動在場景流中產(chǎn)生的形變程度。首先計算點pt在場景流的雙曲項hyper1和hyper2
式(4)、式(5)分別為雙曲項在水平、垂直和深度方向上的分量。雙曲項的幅值分別為:
雙曲項能夠描述場景流中更為復(fù)雜結(jié)構(gòu)的錯切,然后計算點pt的錯切特征
式中:shear(pt)表示點pt處場景流對應(yīng)的錯切特征。根據(jù)式(8)計算視頻中所有像素點的錯切特征得到錯切運動學(xué)特征圖序列。
(4)振幅運動學(xué)特征圖序列。為了描述散度、旋度和錯切運動學(xué)特征之間的關(guān)系,計算振幅運動學(xué)特征圖AM:
將同一視頻的散度、旋度和錯切運動學(xué)特征圖序列通過式(9)計算得到振幅運動學(xué)特征圖序列。
排序池化是一種時間編碼方法,將視頻序列的動態(tài)映射為一個動態(tài)圖[6]。首先使用時變平均向量平滑視頻 X=[x1,x2,…,xt],x1,x2,…,xt表示序列中在第t幀。視頻序列關(guān)于時間t的均值向量為:
平滑結(jié)果為:
式中:
式中:vt表示均值向量在時間t的方向,平滑后的序列為V=[v1,v2,…,vt]。然后對序列V的動態(tài)D進行編碼。動態(tài)D反映在時間t變?yōu)閠+1的時間段內(nèi)序列的改變。假設(shè)序列V足夠平滑,則可以通過參數(shù)向量u的線性函數(shù)來逼近D,即
給定一組穩(wěn)定的函數(shù)組Ψ,相同類別的不同視頻的動態(tài)函數(shù)Ψ(·;ui)是相似的。因此,可將不同類別視頻的動態(tài)函數(shù)的差異作為動作識別的判別依據(jù)。雖然不同的視頻序列動態(tài)變化不同,但序列排序保持不變,而且具有相同形式的動態(tài)函數(shù)。因此,本文采用動態(tài)參數(shù)ui表示視頻的動態(tài)信息。
視頻中如果vt+1在vt后一幀,則在這里標(biāo)記為vt+1>vt。可得順序約束vn>vt>…>v1。為了利用排序池化來編碼視頻的外觀動態(tài),求解滿足最小約束條件的組合學(xué)習(xí)排序方程[9],使其滿足幀順序的約束。組合排序函數(shù)即動態(tài)函數(shù)Ψ(vt;u)通過參數(shù)u學(xué)習(xí)t時刻的排序分數(shù)函數(shù)為:
(·)是向量的點乘運算,通過參數(shù)u使排序分數(shù)反映了視頻中每幀的排序。排序分數(shù)以較大的邊界滿足組合條件vt+1>vt。排在后面的幀排序分數(shù)越大[10],即
參數(shù)u可采用RankSVM[11]進行求解如下:
式中:u*的第1項是SVM的二次正則化,用于對權(quán)值進行懲罰,第2項是SVM的Hinge損失函數(shù),參數(shù)向量u*編碼視頻中的所有幀的外觀或運動信息,可以描述序列中外觀或運動信息隨時間變化的動態(tài)過程。參數(shù)向量u*的元素個數(shù)等于視頻幀的像素數(shù),把參數(shù)向量調(diào)整為原視頻幀的大小,得到視頻的動態(tài)圖。
排序池化操作將視頻里的外觀編碼成一個動態(tài)圖。但對于動作執(zhí)行時間較長的視頻,對整個序列直接使用排序池化算法無法捕獲動作中更精細的運動信息,導(dǎo)致動態(tài)圖無法準(zhǔn)確地描述視頻隨時間演變,降低了動態(tài)圖對動作識別的判別性。為了解決這個問題,本文采用了分層排序池化[7]。
本文采用雙流卷積網(wǎng)絡(luò)框架[12]進行動作分類,其中外觀動態(tài)圖輸入到空間通道的網(wǎng)絡(luò)中,將三通道運動學(xué)動態(tài)圖和振幅運動學(xué)動態(tài)圖輸入到時間通道的網(wǎng)絡(luò)中。外觀動態(tài)圖和運動學(xué)動態(tài)圖分別描述視頻中的外觀信息和運動信息,特征表達能力強。本文方法框架如圖1所示。
圖1 基于運動學(xué)動態(tài)圖的人體動作識別方法Fig.1 Framework of action recognition using kinematic dynamic image
具體步驟如下:
(1)首先使用初級對偶算法計算幀數(shù)為N的RGB-D視頻的場景流向量,初步提取視頻的運動信息。
(2)利用場景流向量計算散度、旋度、錯切運動學(xué)特征圖序列,合并為三通道運動學(xué)特征圖序列,同時計算振幅運動學(xué)特征圖序列。
(3)利用分層排序池化算法把原始RGB視頻映射為外觀動態(tài)圖,將三通道運動學(xué)特征圖序列編碼為三通道運動學(xué)動態(tài)圖,將振幅運動學(xué)特征圖序列編碼為振幅運動學(xué)動態(tài)圖。
(4)使用雙流卷積網(wǎng)絡(luò)進行訓(xùn)練和分類,將各通道的結(jié)果融合實現(xiàn)人體動作識別。
采用M2I數(shù)據(jù)集[13]和SBU Kinect Interaction數(shù)據(jù)集[14]驗證本文方法性能。M2I數(shù)據(jù)集有22類動作,分為3種:雙人交互、雙人與物體交互和單人與物體交互,其中雙人交互有9類、雙人物體交互有3類、單人物體交互有10類,共1 760個視頻,包含前向和側(cè)向2個視角的視頻。SBU Kinect Interaction數(shù)據(jù)集有8類雙人交互動作,共336個視頻、6 614幀。
由于動作序列是隨時間由過去到未來變化的[10],因此在計算運動學(xué)動態(tài)圖時僅考慮正向動作序列。對M2I數(shù)據(jù)集中“雙人鞠躬”動作中的散度、旋度、錯切、三通道和振幅運動學(xué)動態(tài)圖如圖2所示。
散度、旋度、錯切運動學(xué)動態(tài)圖是散度、旋度、錯切運動學(xué)特征圖序列分別由分層排序池化映射得到的。
分層排序池化步長為1、窗口大小為20、層數(shù)為3,適合人體動作視頻[7]。本文訓(xùn)練過程使用Caffe框架[15]完成訓(xùn)練及測試過程。網(wǎng)絡(luò)的動量設(shè)置為0.9,權(quán)重衰減為0.001,初始學(xué)習(xí)率設(shè)置為0.001,每經(jīng)過10萬次迭代學(xué)習(xí)率變?yōu)樵瓉淼?/10。隨機失活率設(shè)置為0.6。本文訓(xùn)練的過程微調(diào)自預(yù)訓(xùn)練模型ILSVRC-2012[16],為了減少過擬合,本文采用圖像翻轉(zhuǎn)、圖像旋轉(zhuǎn)、對比度增強、線性對比度增強、高斯濾波和隨機裁剪多種數(shù)據(jù)增廣方法,增加數(shù)據(jù)集的多樣性。
在M2I數(shù)據(jù)集上,本文在前向和側(cè)向2個視角中使用不同形式的動態(tài)圖,包括外觀動態(tài)圖、散度運動學(xué)動態(tài)圖、旋度運動學(xué)動態(tài)圖、錯切運動學(xué)動態(tài)圖、三通道運動學(xué)動態(tài)圖、振幅運動學(xué)動態(tài)圖。在AlexNet[16]上的實驗結(jié)果如表1所示。
圖2 M2I數(shù)據(jù)集中“雙人鞠躬”動作序列的散度、旋度、錯切、三通道和振幅動態(tài)圖Fig.2KDI-D,KDI-C,KDI-S,KDI-DCS,KDI-AM on video "bow" in M2I dataset
表1 不同組合形式動態(tài)圖的動作分類結(jié)果Tab.1 Recognition results using dynamic image with different forms
由表1可知,不同類型的動態(tài)圖代表不同方面的動態(tài),外觀動態(tài)圖表示了視頻外觀隨時間的變化,散度運動學(xué)動態(tài)圖、旋度運動學(xué)動態(tài)圖和錯切運動學(xué)動態(tài)圖分別代表視頻的散度、旋度和錯切運動信息隨時間的變化,振幅運動學(xué)動態(tài)圖表示了散度、旋度和錯切這3種運動信息的關(guān)系。因此,同時輸入以上外觀動態(tài)圖和運動學(xué)動態(tài)圖,可以描述視頻多種信息,融合了外觀動態(tài)圖和運動學(xué)動態(tài)圖識別的結(jié)果,驗證了實驗效果。
在雙流卷積網(wǎng)絡(luò)同時輸入外觀動態(tài)圖、三通道運動學(xué)動態(tài)圖和振幅運動學(xué)動態(tài)圖。在不同CNN(包括AlexNet、VGG16[17]、VGG19[17]、Resnet-50[18]、GoogLeNet Inception V3[19])中的實驗結(jié)果如表2所示。
表2 采用不同CNN的人體動作分類結(jié)果Tab.2 Recognition results of using different CNN
VGG相對于其他網(wǎng)絡(luò)擴展性較強,泛化性較好,VGG19的分類結(jié)果最好。
圖3和圖4分別是以外觀動態(tài)圖、三通道運動學(xué)動態(tài)圖和振幅運動學(xué)動態(tài)圖同時作為輸入得到的結(jié)果,用VGG19網(wǎng)絡(luò)訓(xùn)練在前向和側(cè)向視角的識別混淆矩陣。
圖3 M2I數(shù)據(jù)集使用VGG19網(wǎng)絡(luò)的前視角混淆矩陣Fig.3 Confuse matrix of used VGG19 network on front view in M2I dataset
圖4 M2I數(shù)據(jù)集使用VGG19網(wǎng)絡(luò)側(cè)視角混淆矩陣Fig.4 Confuse matrix of used VGG19 network on side view in M2I dataset
從圖3和圖4的混淆矩陣可以看出,本文方法在多人交互動作和多人物體交互動作中識別的效果更好,除了“擁抱”、“握手”、“踢足球”以外,其他雙人交互動作和雙人物體交互動作識別準(zhǔn)確率均達到了100%。此外,“彈吉他”、“打電話”、“照相”等單人物體交互動作識別率較低,易被錯分為其他動作。
表3為本文方法與現(xiàn)有方法(改進稠密軌跡(IDT)[20]和場景流動作特征圖(SFAM)[8])。
表3 本文方法與其他方法的比較Tab.3 Comparison with other methods
表3使用AlexNet在M2I數(shù)據(jù)集上進行動作識別率的比較。IDT級聯(lián)了包括HOG、HOF和MBH的所有特征,記作IDT-COM,并使用詞袋(Bow)和Fisher Vector(FV)的特征編碼方法后的動作識別結(jié)果。在與場景流動作特征圖的比較中,本文分別比較了4種場景流動作特征圖,包括差分場景流動作特征圖(SFAM-D)、求和場景流動作特征圖(SFAM-S)、動態(tài)場景流動作特征圖(SFAM-RP)和振幅動態(tài)場景流動作特征圖(SFAM-AMRP)。從表3可見,由于本文提出的運動學(xué)動態(tài)圖不僅描述了運動隨視頻的變化,而且運動信息也比軌跡和場景流動作特征圖更豐富,提高了動作識別準(zhǔn)確率。融合了4種場景流動作特征圖方法的動作識別率比本文方法識別率高,這是因為場景流動作特征圖比本文方法多融合了一個通道的信息,即差分場景流動作特征圖和求和場景流動作特征圖,這兩種場景流動作特征圖表征了累積運動差分能量的分布。
同時在SBU Kinect Interaction數(shù)據(jù)集上進行了實驗。表4給出了不同形式的動態(tài)圖以及不同訓(xùn)練網(wǎng)絡(luò)下的識別結(jié)果。表4比較了原始骨架(Raw skeleton)[14]、分層循環(huán)神經(jīng)網(wǎng)絡(luò)(Hierarchical RNN)[21]、時空長短時間記憶網(wǎng)絡(luò)(ST-LSTM)[22]、多任務(wù)學(xué)習(xí)網(wǎng)絡(luò)(MTLN)[23]和全局上下文長注意力短時間記憶網(wǎng)絡(luò)(GCA-LSTM)[24]等方法的識別結(jié)果。實驗結(jié)果表明,本文方法的識別率更高,這是因為上述5種方法僅用了RGB-D視頻中的骨架信息,以單通道的骨架信息或者雙通道的骨架信息輸入到網(wǎng)絡(luò)中,缺乏對動作的描述。而本文方法使用了RGB視頻和深度圖兩個模態(tài)的特征,并且使用外觀動態(tài)圖和運動學(xué)動態(tài)圖。分析可見,本文方法對兩人交互動作的識別率相對較高。
表4 在SBU Kinect Interaction數(shù)據(jù)集上的實驗結(jié)果Tab.4 Experimental results on SBU Kinect Interaction dataset
本文研究了一種基于運動學(xué)動態(tài)圖和雙流卷積網(wǎng)絡(luò)的人體動作識別方法。采用了由視頻序列產(chǎn)生的外觀動態(tài)圖和由運動學(xué)特征圖序列產(chǎn)生的運動學(xué)動態(tài)圖來描述RGB-D視頻中外觀和運動信息隨時間的變化。融合三通道運動學(xué)動態(tài)圖和振幅運動學(xué)動態(tài)圖并與外觀動態(tài)圖共同作為雙流卷積網(wǎng)絡(luò)的輸入。在M2I數(shù)據(jù)集和SBU Kinect Interaction數(shù)據(jù)集上的實驗結(jié)果分別為91.8%和95.2%,驗證了本文方法的性能。