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