董安,左劼,孫頻捷
(1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065;2.上海政法學(xué)院,上海200000)
隨著視頻大規(guī)模增長(zhǎng),視頻人體行為分析成一個(gè)研究的熱點(diǎn)。通常,人體行為可以通過(guò)外觀特征、深度信息、光流、骨架序列來(lái)進(jìn)行識(shí)別。骨架序列特征可以作為其他模態(tài)數(shù)據(jù)的重要補(bǔ)充。骨架模態(tài)的信息,對(duì)于不依賴場(chǎng)景和物體信息的類別,只包含行為動(dòng)作本身的類別具有較好的區(qū)分度。人體的骨架關(guān)節(jié)點(diǎn)的坐標(biāo)隨著動(dòng)作的變化而變化,例如起身和摔倒兩個(gè)動(dòng)作涉及到的骨架關(guān)節(jié)點(diǎn)坐標(biāo)變化是完全不同的。
如圖1 所示人體骨架關(guān)節(jié)點(diǎn)序列,節(jié)點(diǎn)與節(jié)點(diǎn)通過(guò)邊相連接,可以構(gòu)成一個(gè)圖的表示。本文研究了基于圖卷積神經(jīng)網(wǎng)絡(luò)的骨架序列行為方法,并在自采集的室內(nèi)監(jiān)護(hù)視頻數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)及分析。
動(dòng)作行為識(shí)別具有廣泛的應(yīng)用場(chǎng)景,包括安防場(chǎng)景的異常行為識(shí)別,自動(dòng)駕駛場(chǎng)景下行人的行為識(shí)別等。識(shí)別視頻中人的行為類別是動(dòng)作行為識(shí)別的主要任務(wù)。傳統(tǒng)方法通過(guò)使用全局和局部特征識(shí)別任務(wù)行為已經(jīng)取得了顯著的進(jìn)展,但是這些手工特征需要大量的人力和專業(yè)知識(shí)來(lái)開發(fā)有效的特征提取方法,無(wú)法在大型的數(shù)據(jù)集上很好的概括。
圖1 人體骨架關(guān)鍵點(diǎn)序列
iDT[1]算法是深度學(xué)習(xí)興起之前,在動(dòng)作行為識(shí)別領(lǐng)域效果,穩(wěn)定性最好,可靠性最高,最好的方法,不過(guò)算法速度很慢。近年來(lái),使用深度學(xué)習(xí)技術(shù)進(jìn)行特征學(xué)習(xí),由于其強(qiáng)大的功能的能力而受到越來(lái)越多的關(guān)注。深度網(wǎng)絡(luò)在動(dòng)作識(shí)別中的成功也可以歸因于將網(wǎng)絡(luò)擴(kuò)展到數(shù)以千萬(wàn)計(jì)的參數(shù)和大量標(biāo)記的數(shù)據(jù)集。最近的深度網(wǎng)絡(luò)在各種動(dòng)作數(shù)據(jù)集上均取得了令人驚訝的高識(shí)別性能。
通過(guò)深度學(xué)習(xí)技術(shù)學(xué)習(xí)到的動(dòng)作特征已得到廣泛研究,近年來(lái),開發(fā)用于動(dòng)作識(shí)別的深度網(wǎng)絡(luò)的兩個(gè)主要變量是卷積運(yùn)算和針對(duì)時(shí)序的建模,這產(chǎn)生了幾種網(wǎng)絡(luò)。
基于Two-Stream 的方法,從時(shí)間維度上,是對(duì)對(duì)視頻序列中每?jī)蓭?jì)算密集光流,得到密集光流的時(shí)序序列。從空間維度上,是利用RGB 視頻關(guān)鍵幀的信息。使用兩路CNN 分別對(duì)RGB 和光流進(jìn)行訓(xùn)練,兩路網(wǎng)絡(luò)分別對(duì)動(dòng)作類別進(jìn)行識(shí)別,最后對(duì)兩路網(wǎng)絡(luò)的分類分?jǐn)?shù)進(jìn)行融合(直接平均或者使用SVM),得到最終的分類結(jié)果。
C3D 是由Facebook 提出的基于三維卷積的工作,使用三維卷積和三維池化構(gòu)建網(wǎng)絡(luò)。通過(guò)三維卷積,C3D 可以同時(shí)學(xué)習(xí)視頻的時(shí)空特征,對(duì)運(yùn)動(dòng)信息和外觀信息進(jìn)行建模。由于省去了耗時(shí)的光流計(jì)算,C3D的速度也有效提升。
而基于骨架特征的行為識(shí)別因?yàn)槠鋵?duì)光照和場(chǎng)景變換具有很好的魯棒性,得到了越來(lái)越多的關(guān)注。通過(guò)姿態(tài)估計(jì)算法或高精度的深度攝像頭也可以較為容易得獲取到骨架特征?;诖?,本文從骨架特征的角度來(lái)研究行為識(shí)別。
OpenPose[2]是一個(gè)可以從視頻中實(shí)時(shí)提取人體關(guān)鍵點(diǎn)的算法框架,本文只關(guān)注OpenPose 的輸出,在一個(gè)視頻中,可以有很多幀,每幀可以有多個(gè)人,每個(gè)人有多個(gè)關(guān)節(jié)點(diǎn),每一個(gè)關(guān)節(jié)點(diǎn)有不同的特征(位置信息和置信度)。通過(guò)OpenPose 處理一個(gè)Batch 視頻,可以得到一個(gè)5 維矩陣的特征表示(N,C,T,V,M),其中N表示視頻的數(shù)量,C 表示關(guān)節(jié)點(diǎn)的特征(關(guān)節(jié)的坐標(biāo)以及置信度),T 表示視頻關(guān)鍵幀的數(shù)量,V 表示一個(gè)人的關(guān)節(jié)點(diǎn)的數(shù)量,M 表示一幀中人的數(shù)量。
現(xiàn)實(shí)世界中,許多數(shù)據(jù)都是以圖或者網(wǎng)絡(luò)的方式存在的,例如社交網(wǎng)絡(luò)、知識(shí)圖譜、世界貿(mào)易網(wǎng)絡(luò)、圖卷積神經(jīng)網(wǎng)絡(luò)的提出,使得對(duì)這些非規(guī)則數(shù)據(jù)進(jìn)行表示學(xué)習(xí)成為可能。本文采取了類似Kipf 等人[3]和Sijie Yan 等人[4]提出的圖卷積方法,設(shè)計(jì)了如圖2 所示的圖卷積神經(jīng)網(wǎng)絡(luò)。模型主要分為三部分,輸入模塊、圖卷積模塊和輸出模塊。其中,輸入模塊是對(duì)2.1 小節(jié)中OpenPose 提取的骨架序列進(jìn)行歸一化,也就是將關(guān)節(jié)在不同幀下的位置特征進(jìn)行歸一化,做歸一化的原因在于關(guān)節(jié)在不同幀下位置變化很大,如果不進(jìn)行歸一化不利于算法的收斂。第二個(gè)模塊是交替使用GCN和TCN,對(duì)時(shí)間和空間維度進(jìn)行變換。第三個(gè)模塊是使用平均池化和全連接層對(duì)特征進(jìn)行分類。其中GCN部分使用的公式是(1),D 表示關(guān)節(jié)點(diǎn)的度矩陣,A 表示關(guān)節(jié)點(diǎn)的鄰接矩陣,X 是輸入的骨架序列。公式的實(shí)際含義是以邊為權(quán)值對(duì)節(jié)點(diǎn)的特征進(jìn)行求加權(quán)平均。GCN 可以學(xué)習(xí)到空間中相鄰關(guān)節(jié)的局部特征,而TCN 幫助學(xué)習(xí)到時(shí)間維度上關(guān)節(jié)變化的局部特征。
圖2 圖卷積神經(jīng)網(wǎng)絡(luò)
遷移學(xué)習(xí)是通過(guò)利用已經(jīng)訓(xùn)練好的模型,使用其參數(shù)去初始化一個(gè)新的模型,從而提升新模型的性能?,F(xiàn)實(shí)場(chǎng)景中,許多數(shù)據(jù)或任務(wù)是存在相關(guān)性的,通過(guò)遷移學(xué)習(xí),可以將已經(jīng)學(xué)到的模型通過(guò)初始化新模型的方式來(lái)分享給新模型,從而優(yōu)化并加快模型的學(xué)習(xí)效率,不需要讓新網(wǎng)絡(luò)從頭開始學(xué)習(xí)。DeepMind 在2018 年發(fā)布了大規(guī)模的視頻動(dòng)作數(shù)據(jù)集Kinetics[5],由于本文自采集的數(shù)據(jù)集較小,從零開始訓(xùn)練,數(shù)據(jù)量不夠,所以本文先用Kinetics 訓(xùn)練好圖卷積模型,將模型參數(shù)初始化新的圖卷積模型(由于分類的類別不同,全連接層的參數(shù)不復(fù)用),在此基礎(chǔ)上,再用自采集的數(shù)據(jù)集來(lái)訓(xùn)練新的圖卷積模型。
本次實(shí)驗(yàn)采用的數(shù)據(jù)集是模擬監(jiān)護(hù)場(chǎng)景中,老人的起身、摔倒以及正常行走的視頻,根據(jù)標(biāo)注動(dòng)作的起始和結(jié)束時(shí)間,利用FFmpeg 進(jìn)行視頻分割,得到的數(shù)據(jù)集總共包含1549 個(gè)5s 左右的視頻,其中訓(xùn)練集1037 個(gè),驗(yàn)證集512 個(gè),訓(xùn)練集和驗(yàn)證集中三個(gè)類別各占1/3。然后利用OpenPose[2]提取視頻中每一幀的骨架信息。
實(shí)驗(yàn)中采用圖卷積神經(jīng)網(wǎng)絡(luò)輸出維度的細(xì)節(jié)如表1 所示??臻g維度是關(guān)節(jié)的特征,開始是3,時(shí)間的維度是關(guān)鍵幀數(shù),開始是150,在經(jīng)過(guò)所有時(shí)空卷積之后,關(guān)節(jié)的特征維度增加到256 維,關(guān)鍵幀的維度降低到38,最后使用平均池化和全連接層對(duì)特征進(jìn)行分類,F(xiàn)C層神經(jīng)元的個(gè)數(shù)取決于要分類的類別數(shù)。
在全連接層使用了dropout 技術(shù)避免過(guò)擬合,以0.5 的概率隨機(jī)失活神經(jīng)元。優(yōu)化算法采用了隨機(jī)梯度下降,學(xué)習(xí)率是0.01,每10 個(gè)epoch 衰減0.1。
表1 實(shí)驗(yàn)使用的圖卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)
本文進(jìn)行了三組實(shí)驗(yàn),第一個(gè)實(shí)驗(yàn)室是利用大規(guī)模的視頻動(dòng)作行為識(shí)別數(shù)據(jù)集Kinetics 提取到的骨架信息進(jìn)行訓(xùn)練圖卷積神經(jīng)網(wǎng)絡(luò),第二個(gè)實(shí)驗(yàn)是利用自采集的室內(nèi)監(jiān)護(hù)視頻提取到的骨架特征對(duì)圖卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,第三個(gè)實(shí)驗(yàn)是在第一個(gè)實(shí)驗(yàn)得到的模型的基礎(chǔ)上,進(jìn)行遷移學(xué)習(xí)。識(shí)別的準(zhǔn)確率定義如下:
實(shí)驗(yàn)一的結(jié)果如表2 所示,我們使用了Kinetics 數(shù)據(jù)集中的訓(xùn)練集提供的240000 個(gè)短視頻,然后利用OpenPose 提取到骨架序列,進(jìn)行訓(xùn)練圖卷積神經(jīng)網(wǎng)絡(luò),然后在20000 個(gè)驗(yàn)證集的骨架序列上進(jìn)行了評(píng)估。觀察實(shí)驗(yàn)結(jié)果,發(fā)現(xiàn)準(zhǔn)確度并不高,遠(yuǎn)遠(yuǎn)低于常見的基于RGB 或者光流模態(tài)的方法,例如i3D[5]。分析原因,本文認(rèn)為這是由于Kinetics 包含大量的類別都需要去識(shí)別與人體交互的物體和場(chǎng)景,例如打籃球這個(gè)動(dòng)作,需要有籃球這個(gè)物體,例如踢足球,需要有足球場(chǎng)這個(gè)場(chǎng)景。而基于骨架的行為識(shí)別,能夠?qū)?chǎng)景和物體本身不敏感,對(duì)動(dòng)作本身有較好的區(qū)分度。
表2 Kinetics 視頻數(shù)據(jù)集從頭訓(xùn)練
實(shí)驗(yàn)二的結(jié)果如表3 所示,我們使用了自采集的室內(nèi)監(jiān)護(hù)視頻數(shù)據(jù)集中的訓(xùn)練集提供的1037 個(gè)短視頻,同樣利用OpenPose 提取骨架序列,從頭開始訓(xùn)練圖卷積神經(jīng)網(wǎng)絡(luò),然后在512 個(gè)驗(yàn)證集進(jìn)行評(píng)估,得到0.78 的準(zhǔn)確率。這符合實(shí)驗(yàn)一的分析,基于骨架的行為識(shí)別,對(duì)于不依賴場(chǎng)景和物體本身的動(dòng)作類別具有較好的區(qū)分度。但這個(gè)精度還有提升的空間,分析其原因是數(shù)據(jù)量不夠,基于此,我們進(jìn)行了實(shí)驗(yàn)三。
表3 室內(nèi)監(jiān)護(hù)視頻數(shù)據(jù)集從頭訓(xùn)練
實(shí)驗(yàn)三的結(jié)果如表4 所示,我們利用實(shí)驗(yàn)一訓(xùn)練好的模型的參數(shù)初始化一個(gè)新的圖卷積神經(jīng)網(wǎng)絡(luò),然后再用訓(xùn)練集中1037 個(gè)短視頻提取的骨架,訓(xùn)練新的圖卷積神經(jīng)網(wǎng)絡(luò),得到了0.9 的準(zhǔn)確率。由于實(shí)驗(yàn)一的模型是基于大規(guī)模的數(shù)據(jù)集進(jìn)行訓(xùn)練得到的,有更加豐富的知識(shí),通過(guò)遷移學(xué)習(xí),可以讓基于小數(shù)據(jù)的任務(wù)性能提升。
表4 室內(nèi)監(jiān)護(hù)視頻數(shù)據(jù)集遷移學(xué)習(xí)
本文使用骨架模態(tài)的數(shù)據(jù),基于圖卷神經(jīng)網(wǎng)絡(luò),進(jìn)行人體動(dòng)作行為識(shí)別。通過(guò)實(shí)驗(yàn)證明了基于骨架模態(tài)的動(dòng)作識(shí)別,對(duì)于不依賴場(chǎng)景和物體的類別具有較好的區(qū)分度。使用大規(guī)模動(dòng)作視頻數(shù)據(jù)集提取得到的骨架信息來(lái)訓(xùn)練圖卷積神經(jīng)網(wǎng)絡(luò),再通過(guò)遷移學(xué)習(xí)的方式,對(duì)于小數(shù)據(jù)的任務(wù)性能提升具有很大的幫助。但是由于基于視頻RGB 數(shù)據(jù)來(lái)提取骨架特征的這個(gè)過(guò)程,比較耗時(shí),還不能做到實(shí)時(shí),在未來(lái)的工作中,可以考慮把姿態(tài)估計(jì)網(wǎng)絡(luò)和行為識(shí)別網(wǎng)絡(luò)進(jìn)行有效融合,減少整個(gè)過(guò)程的耗時(shí)。