秦曉飛,蔡銳,陳萌,張文奇,何常香,張學(xué)典
(1.上海理工大學(xué) 光電信息與計算機(jī)工程學(xué)院,上海 200093;2.上海宇航系統(tǒng)工程研究所,上海 201109)
人體動作識別是視頻理解中的一項重要任務(wù),可用于視頻分析、人機(jī)交互等應(yīng)用場景[1-3],主要的數(shù)據(jù)模態(tài)包括視頻、人體骨架序列等。視頻是生活中最常見的數(shù)據(jù)形式,由連續(xù)圖像排列而成,利用圖像的連續(xù)變化和視覺暫留原理,達(dá)到平滑連續(xù)的視覺效果。人體骨架序列是一種結(jié)構(gòu)良好的人體姿態(tài)數(shù)據(jù),通過使用目標(biāo)檢測和人體姿態(tài)估計技術(shù),從視頻數(shù)據(jù)的每一幀圖像中獲取人體主要關(guān)鍵點的空間位置,根據(jù)人體結(jié)構(gòu)自然地將這些關(guān)鍵點連接起來,構(gòu)成一個圖。每個關(guān)鍵點代表圖的頂點,每條連接線代表圖的邊[4],人體骨架數(shù)據(jù)可以看作對視頻數(shù)據(jù)提煉后的結(jié)果,僅保留了每個時刻的人體姿態(tài)信息。與視頻數(shù)據(jù)相比,人體骨架數(shù)據(jù)只關(guān)注人本身的動作,忽視了背景、視角和人物外觀。
主流的人體動作識別算法大多基于視頻數(shù)據(jù),研究者們提出了各種有影響力的算法,主要包括基于2D、3D 卷積神經(jīng)網(wǎng)絡(luò)的算法。直接采用3D 卷積神經(jīng)網(wǎng)絡(luò)對視頻進(jìn)行處理,是目前結(jié)構(gòu)最簡單、應(yīng)用最廣、效果最好的算法,其中slow-fast[5]算法為這個領(lǐng)域的算法提供了一個高效且結(jié)構(gòu)簡單的基準(zhǔn)網(wǎng)絡(luò)結(jié)構(gòu)。這類方法能提取視頻中豐富的特征信息,但是同時也會帶來噪聲,在動作識別任務(wù)中,降低了對人這一主體的關(guān)注度,可以引入人體關(guān)鍵點檢測技術(shù)來提升對人的關(guān)注度。
近些年來,隨著人體姿態(tài)估計技術(shù)和圖神經(jīng)網(wǎng)絡(luò)(GCN)技術(shù)的發(fā)展,人體骨架數(shù)據(jù)的提取變得簡單。許多研究人員開始使用圖卷積神經(jīng)網(wǎng)絡(luò)來解決基于骨架的動作識別問題。圖神經(jīng)網(wǎng)絡(luò)旨在保留圖的拓?fù)浣Y(jié)構(gòu)和節(jié)點信息的情況下,使用機(jī)器學(xué)習(xí)方法,學(xué)習(xí)每個相連節(jié)點之間的相關(guān)性,實現(xiàn)節(jié)點之間的信息融合。通過堆疊圖神經(jīng)網(wǎng)絡(luò)層,充分融合每個頂點的信息,實現(xiàn)對圖中每一個節(jié)點的特征提取。針對基于人體骨架的動作識別這一任務(wù),對人體骨架數(shù)據(jù)進(jìn)行空間維度上的建模時,也要對時間維度進(jìn)行建模。首先,對于空間維度而言,有些研究人員通過手動設(shè)計的人體的拓?fù)浣Y(jié)構(gòu),提升人體關(guān)節(jié)點之間的信息融合效率,例如 MS-G3D[6]。還有一些研究人員提出了自適應(yīng) GCN層[7-9],即基于人體的自然結(jié)構(gòu),自適應(yīng)地動態(tài)產(chǎn)生圖結(jié)構(gòu)??偠灾@些方法都在試圖通過優(yōu)化人體骨架圖的空間拓?fù)浣Y(jié)構(gòu),在圖結(jié)構(gòu)中設(shè)計出高效的連接邊,實現(xiàn)更加輕量化的網(wǎng)絡(luò)模型和更高的精度。對于時間維度而言,一些研究者在相鄰幀之間添加時間上的連接邊,對圖進(jìn)行拓展,或者把相鄰幀的特征直接交換,實現(xiàn)時間上的信息融合[10-14]。還有一些研究者通過將循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和長短期記憶網(wǎng)絡(luò)(LSTM)中的卷積神經(jīng)網(wǎng)絡(luò)層(CNN)替換為GCN層[15-17],來實現(xiàn)時間上的信息交換。但是這種對時間維度的建模方式并不高效,伴隨大量的計算量和參數(shù),本文考慮采用簡單的卷積方式進(jìn)行替代,結(jié)合自注意力機(jī)制,設(shè)計輕量級模塊在時間和空間維度上同時進(jìn)行建模。
視頻數(shù)據(jù)則包含了更豐富的環(huán)境信息,人體骨架數(shù)據(jù)利于對人體動作進(jìn)行精準(zhǔn)建模,將兩者結(jié)合起來進(jìn)行動作識別,能夠有效提升動作識別的精度。一些研究者將人體骨架數(shù)據(jù)還原為熱度圖,與視頻數(shù)據(jù)融合,增強(qiáng)了人體動作特征的表達(dá),在動作識別這一任務(wù)中達(dá)到了空前的精度。本文受這類算法的啟發(fā),設(shè)計雙分支網(wǎng)絡(luò)分別對視頻數(shù)據(jù)和人體骨架數(shù)據(jù)進(jìn)行特征提取并融合,使用深監(jiān)督[18]的方法對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
對于視頻數(shù)據(jù)分支,本文采用slow-fast 網(wǎng)絡(luò)。slow-fast 是一種影響廣泛的視頻理解算法,采用兩個網(wǎng)絡(luò)分支分別對高幀率和低幀率的視頻進(jìn)行處理,分別捕獲運動特征和圖像特征,在每個卷積模塊的結(jié)尾都將高幀率分支的特征圖下采樣,融合進(jìn)入低幀率的特征圖。對于人體骨架分支,本文采用圖卷積神經(jīng)網(wǎng)絡(luò)對人體骨架數(shù)據(jù)進(jìn)行特征提取,該網(wǎng)絡(luò)的設(shè)計主要受非局部神經(jīng)網(wǎng)絡(luò)[19]的啟發(fā),能夠自適應(yīng)地生成鄰接矩陣。非局部神經(jīng)網(wǎng)絡(luò)是一種自注意力模塊,在傳統(tǒng)視覺任務(wù)中,它將每個像素點的特征看作所有像素點特征的加權(quán)之和。這種算法有助于高效獲取長距離特征的相關(guān)性。
深監(jiān)督[18]的方法在人體姿態(tài)估計和目標(biāo)檢測等眾多領(lǐng)域中得到了廣泛的應(yīng)用,近年來在動作識別領(lǐng)域也引起了研究者的關(guān)注。深監(jiān)督是在訓(xùn)練過程中,在網(wǎng)絡(luò)的中間層加入損失函數(shù),提升網(wǎng)絡(luò)中間層的特征表達(dá)能力,而在推理過程中,不考慮這些中間層的輸出。在本文設(shè)計的網(wǎng)絡(luò)中,深監(jiān)督有助于提高兩個分支特征的耦合性,以達(dá)到更好的訓(xùn)練效果。
本文的貢獻(xiàn)主要體現(xiàn)在兩個方面:首先是設(shè)計了一種基于人體骨架的動作識別方法,包括提升骨架數(shù)據(jù)特征顯著性的方法和用于該任務(wù)的自注意力圖卷積模塊;除此之外,本文設(shè)計了一種將骨架數(shù)據(jù)和視頻數(shù)據(jù)相融合的方法。
網(wǎng)絡(luò)的整體結(jié)構(gòu)如圖1 所示,分為兩個分支,分別處理人體骨架數(shù)據(jù)和視頻數(shù)據(jù)。訓(xùn)練的時候,每個卷積模塊的輸出特征,都將被全局平均池化,與對應(yīng)的特征拼接起來送入全連接層,輸出結(jié)果作為分類結(jié)果并計算損失函數(shù)。在測試的時候,僅將最后一層的輸出作為結(jié)果。下面闡述網(wǎng)絡(luò)細(xì)節(jié)。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Model network architecture
人體骨架數(shù)據(jù)的獲取方式是多樣的,有的在數(shù)據(jù)集中給出,有的需要利用人體姿態(tài)估計算法得出,這部分內(nèi)容將在實驗部分詳述。原始的人體關(guān)鍵點數(shù)據(jù)有三個維度P∈R3×V×T,其中3 表示通道數(shù);V表示人體關(guān)鍵點數(shù)量,由數(shù)據(jù)集決定;T表示時間序列的長度,由數(shù)據(jù)的抽幀方式?jīng)Q定。
人體骨架分支主要包括輸入編碼和GCN 模塊,二者在算法中都起到了重要的作用。
在輸入編碼部分,網(wǎng)絡(luò)需要先對人體骨架序列進(jìn)行編碼,提升人體骨架數(shù)據(jù)的表征能力,同時融入骨架數(shù)據(jù)的關(guān)鍵點和時間序列信息。
骨架序列的表示方式有兩種,分別為關(guān)鍵點和骨骼表示法,如圖2 所示。關(guān)鍵點表示法就是用每個關(guān)鍵點的空間位置坐標(biāo)作為節(jié)點特征。而在骨骼表示法中,首先將索引為0 的關(guān)鍵點作為根節(jié)點,每個節(jié)點都被轉(zhuǎn)換為一個表示骨骼連接方式的向量,該向量從上一個關(guān)鍵點指向當(dāng)前關(guān)鍵點,根節(jié)點的骨骼表示指定為零向量。關(guān)鍵點表示法強(qiáng)調(diào)了人體關(guān)鍵點的空間位置這一特征,而骨骼表示法強(qiáng)調(diào)了這些特征的相關(guān)性,也就是人體骨架圖的基本拓?fù)浣Y(jié)構(gòu)。為了便于計算,首先給定一個單位矩陣W∈RV×V,然后將索引與有向連接節(jié)點相同的元素設(shè)置為-1。例如,在任意一幀中,對于3D 的人體骨架數(shù)據(jù),p2,p1兩個關(guān)鍵點相連。有向邊e2的計算公式為e2=p2-p1=(x2-x1,y2-y1,z2-z1)T,并且W中的元素(2,1)被設(shè)置為-1。骨骼的表示是E=P·W,P和E具有相同的維度。然后將E和P在通道維度上拼接起來,作為網(wǎng)絡(luò)輸入:
圖2 關(guān)鍵點表示方法(左)和骨骼表示方法(右)Fig.2 Representations of joints(left) and bones(right)
式中cat 表示在通道上進(jìn)行的拼接操作,I∈R6×V×T。
對于時間維度T上的每一個特征,計算它與前一個時刻的差值,作為基本的運動信息:
此時I∈R6×V×(T-1)。然 后用 兩個 1 ×1卷積層,將通道數(shù)都擴(kuò)張為64,同時增強(qiáng)V和I的特征表達(dá):
最后將兩個部分的特征加以融合,得到強(qiáng)化的特征:
此時,Z∈R64×V×T。增強(qiáng)了輸入信號的表征能力之后,需要將關(guān)鍵點和時間序列信息融合到這部分信息中。這里采用one-hot 編碼方式分別對時間和空間索引的語義信息進(jìn)行編碼得到J和T,再采用與式(4)和式(5)相同的方式,即兩個1×1卷積層對特征進(jìn)行增強(qiáng),得到和。最終融合到輸入中:
至此完成對輸入的編碼,通道數(shù)調(diào)整為128。將編碼后的輸出傳入自注意力圖卷積模塊,實現(xiàn)對骨架數(shù)據(jù)的特征提取。
對于圖卷積模塊,本文方法采用的是一種自適應(yīng)圖卷積網(wǎng)絡(luò)。因為圖的拓?fù)浣Y(jié)構(gòu)和邊的權(quán)重值是自適應(yīng)產(chǎn)生的,同時也可以看作一種自注意力機(jī)制。為了便于理解,先從自注意力機(jī)制進(jìn)行描述。
注意力機(jī)制自從被提出就被廣泛應(yīng)用于各種應(yīng)用場景,近年來也引起了廣泛的關(guān)注。注意力機(jī)制的原理是將每一個特征看作所有特征的加權(quán)之和[20],用公式可以簡單表述為
式(7)中Similarity 是計算相似度權(quán)重的函數(shù),可以通過學(xué)習(xí)得到。當(dāng) Query、Key 和Value相同時,這個公式所代表的就是自注意力機(jī)制。本文所用到的注意力網(wǎng)絡(luò)基于非局部網(wǎng)絡(luò)[19],并針對當(dāng)前數(shù)據(jù)特點進(jìn)行了改進(jìn),首先將非局部網(wǎng)絡(luò)遷移到本任務(wù)中可以得到圖3 所示的實現(xiàn)方法。
圖3 自注意力模塊Fig.3 Self-attention block
在圖3 的描述中,輸入是維度為C×T×V的特征,同時被用作Query、K ey 和V alue 。
首先利用f(x) 產(chǎn)生相似度矩陣的函數(shù),對應(yīng)式(7)中的Similarity 函數(shù),對應(yīng)圖3 可以表示為
式中:θ(x) 和φ(x) 對應(yīng)于Query 和Key分支上所作的 1 ×1 卷積操作和變形操作;上標(biāo)T 表示矩陣的轉(zhuǎn)置操作。圖3中的C要根據(jù)具體輸入的特征通道數(shù)來決定。時空自注意力模塊的具體計算方式可描述為
式中x和y分別表示輸入信號和輸出。g(x) 采用1×1卷積通過增加通道數(shù)增強(qiáng)了Value 分支的表征能力。h(x) 采用 1 ×1 卷積對輸出的通道進(jìn)行了調(diào)整,+x表示殘差連接。
上述自注意力模塊也可以理解為一種動態(tài)圖卷積神經(jīng)網(wǎng)絡(luò)。在圖模型中,邊的連接方式用只含有0 和1 作為元素的鄰接矩陣進(jìn)行表示。對每條邊加上連接的權(quán)重系數(shù)之后,鄰接矩陣的形式就可以看作上述相似度矩陣,也就是f(x) 產(chǎn)生了帶有權(quán)重的鄰接矩陣。本文產(chǎn)生的鄰接矩陣和權(quán)重是通過自注意力網(wǎng)絡(luò)動態(tài)生成的,故可以看作動態(tài)圖卷積神經(jīng)網(wǎng)絡(luò)[9]。圖也分為有向圖和無向圖,根據(jù)鄰接矩陣是否對稱可以判別。顯然,上述注意力機(jī)制生成的鄰接矩陣是非對稱的。若將θ(x) 和φ(x) 設(shè)置為相同的函數(shù),矩陣乘以自身的轉(zhuǎn)置將會得出對稱矩陣。本文通過實驗證明,這種方法減少了一個卷積計算層的計算量和參數(shù)量,但是對輸出精度無影響。此時的相似度矩陣的計算方式變換為
同時,圖3 所示的自注意力模塊的計算量過大,主要在于矩陣相乘,將矩陣的維度降低可以有效減少計算量。嘗試將矩陣點乘的維度降低,減少計算量,故選用了空間自注意力模塊,將對時間的建模部分添加到殘差連接的分支上,用簡單的3×1 卷積加以實現(xiàn),3 對應(yīng)的是時間維度上的卷積。設(shè)計出圖4 所示的模型結(jié)構(gòu)。通過實驗對比可知,圖4 所示的自注意力模塊在減少計算量的同時保證了更高的精度。
圖4 一種自注意力模塊的變體Fig.4 A variant of spatial self-attention block
本文采用圖4 所示的網(wǎng)絡(luò)結(jié)構(gòu),C1設(shè)置為模塊特征的通道數(shù)的一半,以減少計算量,而模塊的輸出通道數(shù)的變化靠g(x) 和殘差連接中的3×1 卷積來實現(xiàn)。對應(yīng)于圖1中的GCN 模塊的輸出通道數(shù)分別設(shè)置為128,256,256,512。
視頻分支采用的是slow-fast 網(wǎng)絡(luò)。該網(wǎng)絡(luò)結(jié)構(gòu)簡單,如表1 所示,包含兩個分支,每個分支都包含四個3D 殘差網(wǎng)絡(luò)模塊。在每個殘差網(wǎng)絡(luò)模塊結(jié)束的時候,采用大小為12×52、步幅為8×12的3D 卷積核將fast 分支的時間維度降采樣為原來的1/8,通道數(shù)擴(kuò)張8 倍,這樣既能保證特征數(shù)不變,同時達(dá)到和slow 分支一樣的特征維度。最后和slow 分支的特征相加,實現(xiàn)將fast 分支的特征向slow 分支的融合。模塊的輸出如果進(jìn)行下采樣,則是在該模塊的第一個卷積塊中,將1×32的步幅設(shè)置為1×22。
表1 slow-fast 網(wǎng)絡(luò)結(jié)構(gòu)Tab.1 Model architecture of slow-fast network
視頻分支和人體骨架分支都具有4 個大的卷積模塊,在每個模塊結(jié)束的時候,都進(jìn)行1 次監(jiān)督,如圖1 所示。以兩個分支的第1 個模塊舉例,GCN 模塊的輸出進(jìn)行全局平均池化之后輸出128 個特征,CNN 模塊的兩個分支在池化之后分別得到256 和32 個特征,全部堆疊起來有416 個特征,最后經(jīng)過全連接層后輸出分類并計算損失。這里采用標(biāo)簽平滑損失函數(shù),本質(zhì)是在交叉熵?fù)p失函數(shù)的標(biāo)簽中加入噪聲,防止因過度收斂而導(dǎo)致訓(xùn)練效果變差。
此時一共得出4 個損失函數(shù)Loss,通過系數(shù)a(a<1)來控制4 個損失函數(shù)的權(quán)重。
式中:N為模塊的數(shù)量,取4;a的具體取值將通過實驗進(jìn)行論證。訓(xùn)練結(jié)束后,只將最后一層的輸出作為最后的推理結(jié)果,所以在訓(xùn)練的時候這一層的權(quán)重值最高。對于中間監(jiān)督層的損失,越是低級的特征,其權(quán)重值越低,按a的指數(shù)倍遞減。
NTU-RGBD60[4]:這是一個大規(guī)模動作識別數(shù)據(jù)集,包含60 個動作類的56 880 個數(shù)據(jù),由40個不同的人執(zhí)行這些動作,并由三個處于相同高度但不同水平角度-45°、0°、45°的Kinect 相機(jī)捕獲。數(shù)據(jù)集提供深度信息、3D 骨骼信息、RGB 幀以及紅外序列。對于Cross-View(CV)設(shè)置,來自兩個攝像頭的數(shù)據(jù)用于訓(xùn)練,而其他攝像頭的數(shù)據(jù)用于測試。對于Cross-Subject(CS)設(shè)置,選用來自20 個人的40 320 個人體關(guān)鍵點序列用于訓(xùn)練,其余用于測試。在實驗過程中,本文隨機(jī)從CS 和CV 兩種不同設(shè)置的訓(xùn)練集里面,選擇10%用作驗證集。
NTU-RGBD120[21]:它 是NTU-RGBD60 數(shù)據(jù)集的擴(kuò)展。它包含120 個動作類的114 480 個數(shù)據(jù),由106 個不同的人執(zhí)行這些動作,每一個數(shù)據(jù)設(shè)置都包含一個ID 序號。對于Cross-Subject設(shè)置,一半執(zhí)行者的數(shù)據(jù)用于訓(xùn)練,而其他人的數(shù)據(jù)用于測試。在Cross-Setup 設(shè)置中,根據(jù)ID序號對數(shù)據(jù)進(jìn)行劃分,分別用于訓(xùn)練和測試,同樣,本文從訓(xùn)練集中選取10%作為驗證集。
Kinetics Skeleton 400[13]:這是一個包含240 000個訓(xùn)練和20 000 個測試的大規(guī)模動作識別數(shù)據(jù)集,類別數(shù)達(dá)到400。原本的Kinetics 400 數(shù)據(jù)集僅包含視頻數(shù)據(jù)集[22],采用OpenPose 姿態(tài)估計算法[23]工具包對視頻數(shù)據(jù)中的每一幀提取人體骨架數(shù)據(jù)。每個骨架圖包含18 個主要關(guān)節(jié),每個關(guān)節(jié)用(X,Y,C)表示,其中(X,Y)是像素坐標(biāo)系中的二維坐標(biāo),C是OpenPose 算法給出的置信度分?jǐn)?shù)。對于視頻中含有多人的情況,在每個視頻中選擇關(guān)節(jié)點平均置信度得分最高的兩個人作為被選取對象進(jìn)行動作識別。
數(shù)據(jù)處理。首先,將每個視頻數(shù)據(jù)按時間維度平均分割成64 個片段,從每個片段中隨機(jī)選取一幀,得到64 幀,視頻分辨率降采樣為224×224 作為視頻分支的輸入,并對每一幀提取骨架數(shù)據(jù)作為總的骨架分支的輸入?;诘谝粠娜梭w關(guān)鍵點坐標(biāo)位置,保持初始位置不變,每一幀的關(guān)鍵點都轉(zhuǎn)化為該位置的相對坐標(biāo)。如果一幀包含兩個人,則通過使每一幀包含一個關(guān)鍵點序列將這一幀分成兩幀。對于數(shù)據(jù)增強(qiáng)方式,視頻和關(guān)鍵點數(shù)據(jù)均被隨機(jī)按照某個角度進(jìn)行旋轉(zhuǎn)。隨機(jī)在[-17°,17°]之間生成兩個角度,分別作為X、Y、Z軸的旋轉(zhuǎn)角度。特別的是,在 NTURGBD60 的Cross-View(CV)設(shè)置中,角度選擇在[-30°,30°]區(qū)間,因為該數(shù)據(jù)集的視角變化很大。對于Kinetics 400 數(shù)據(jù)集,未使用增強(qiáng)功能。
訓(xùn)練細(xì)節(jié)。所有的工作都是在4 張A30 顯卡上實現(xiàn)。實驗過程中,視頻分支采用Kinetics 400數(shù)據(jù)集上的預(yù)訓(xùn)練權(quán)重,骨架數(shù)據(jù)分支采用隨機(jī)初始化參數(shù)。本文采用Adam 優(yōu)化器并將初始學(xué)習(xí)率設(shè)置為 0.001。網(wǎng)絡(luò)訓(xùn)練120 個epoch,并分別在60、90 和110 個epoch 時將學(xué)習(xí)率衰減10 倍epoch。權(quán)重衰減設(shè)置為0.000 1。每個數(shù)據(jù)集的batch 設(shè)置為64。使用標(biāo)簽平滑損失函數(shù),平滑因子設(shè)為0.1。
本文提出的方法包含兩個分支,這兩個分支分別單獨作用時都能達(dá)到很好的效果。本部分實驗的數(shù)據(jù)均為NTU-RGBD60 數(shù)據(jù)集上的結(jié)果,這主要考慮到該數(shù)據(jù)集的人體骨架數(shù)據(jù)的可信度。Kinetics 數(shù)據(jù)集的骨架數(shù)據(jù)是采用OpenPose算法得出,人體姿態(tài)估計算法對實驗結(jié)果影響大。NTU-RGBD60 數(shù)據(jù)集給出的人體骨架數(shù)據(jù)精度高,使得這部分研究更加合理。
基于人體骨架的動作識別近些年來發(fā)展迅猛,本文所設(shè)計的骨架分支單獨工作時,也具有一定的先進(jìn)性。先對這一分支的效果進(jìn)行單獨分析。
在對人體骨架分支的輸入進(jìn)行編碼的過程中,本文采用兩種不同的表示法對輸入進(jìn)行編碼,表2 所示為不同的輸入對結(jié)果的影響。J 表示僅人體關(guān)鍵點作為輸入;B 表示僅用骨骼向量作為輸入;2-stream 表示目前比較流行的雙流輸入法[8],由兩個完全相同的并行分支構(gòu)成網(wǎng)絡(luò);兩個分支的輸入分別是J+B,表示本文采用的兩種輸入拼接后作為輸入的方法,也是本文設(shè)計的方法。
表2 不同數(shù)據(jù)表示方法參數(shù)量和精度對比Tab.2 Comparison of parameters and accuracies between different representations
實際上,本文提出的方法相比于單個關(guān)鍵點或者骨骼向量作為輸入,只增加了大約7 000 個參數(shù),這是完全可以忽略不計的參數(shù)量。相比于只用某一個流作為輸入的方法,2-stream 方法有效提升了精度,卻也帶來了兩倍的參數(shù)和計算量。就此而言,本文所提出的方法中,兩種表示方法的低級特征進(jìn)行融合,既沒有帶來更多的參數(shù)量,同時達(dá)到了更高的精度,優(yōu)于現(xiàn)有的方法。
GCN 模塊堆疊數(shù)量的影響如表3 所示。當(dāng)塊堆疊得越深時,性能越好。但是當(dāng)N大于 4并開始過度擬合訓(xùn)練集時,在測試集上的性能似乎沒有再提升,甚至略微下降。這可能是模型變得過于復(fù)雜,導(dǎo)致了過擬合問題。
表3 GCN 模塊堆疊數(shù)量變化的精度對比Tab.3 Accuracy comparison between different number of stacked GCN blocks
由于視頻分支采用的是slow-fast 算法,該方法的研究者給出了詳細(xì)的報告,故本文不對這部分作過多分析,而將重點放在兩分支融合的情況。各階段損失函數(shù)的權(quán)重值a對精度的影響如表4 所示,在a取值為1/3 時達(dá)到最高精度。
表4 a的取值導(dǎo)致的精度變化Tab.4 Accuracy change caused by the value of a
兩個分支的實際結(jié)果如表5 所示,這里a取值為1/3。對于表中Skeleton 和RGB 數(shù)據(jù)的兩行,本文先對整個網(wǎng)絡(luò)進(jìn)行訓(xùn)練,然后將兩個分支拆開,分別對兩個分支的最后一個全連接層進(jìn)行訓(xùn)練。兩個分支完全各自訓(xùn)練的方式與本文方法相比,精度都有所下降。這是因為在訓(xùn)練過程中,兩個分支的中間特征都互相耦合以達(dá)到高的精度,也只有在兩個分支合并起來工作時,才能達(dá)到更高的精度。
表5 雙分支網(wǎng)絡(luò)的精度對比Tab.5 Accuracy comparison of dual branch network
這部分工作主要關(guān)注兩方面,分別是人體骨架單分支和雙分支協(xié)作的精度。最終模型與許多最先進(jìn)的動作識別方法進(jìn)行了比較,主要是基于人體骨架和人體骨架&視頻數(shù)據(jù)。在表6中,將精度和參數(shù)量與許多有影響力的方法進(jìn)行了比較。有些論文中直接給出了一些數(shù)據(jù),但是沒有提供計算量的數(shù)據(jù)。本文結(jié)果是使用ptfloaps 庫和源代碼計算獲得的。表6、表7 和表8 分別列出了本文的方法與其他方法在NTU-RGBD60、NTU-RGBD120 和Kinetics 400 數(shù)據(jù)集上的精度對比。本文算法以較少的參數(shù)和較低的計算成本達(dá)到了具有競爭力的精度。
表6 NTU-RGBD60 數(shù)據(jù)集精度對比Tab.6 Comparison of the accuracy and parameters on NTU-RGBD60 dataset
表7 NTU-RGBD120 數(shù)據(jù)集精度對比Tab.7 Comparison of the accuracy on NTURGBD120 dataset
表8 Kinetics 400 骨架數(shù)據(jù)集精度對比Tab.8 Comparison of the accuracy on Kinetics 400 skeleton dataset
在動作識別這一領(lǐng)域,主要有基于視頻和基于人體骨架兩種任務(wù),以往的大多數(shù)方法是將兩者作為兩種不同的領(lǐng)域進(jìn)行研究。將視頻數(shù)據(jù)和人體骨架數(shù)據(jù)作為兩種不同的數(shù)據(jù)模態(tài),以合理的方式進(jìn)行融合,可以達(dá)到很好的效果。同時,針對基于人體骨架的動作識別這一任務(wù),輸入數(shù)據(jù)的編碼方式和圖結(jié)構(gòu)設(shè)計起著決定性的作用。根據(jù)骨架數(shù)據(jù)的不同形式,以及人體骨架圖的特點,加入自注意力機(jī)制對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行設(shè)計,可以有效提升網(wǎng)絡(luò)的效率。
相對于視頻數(shù)據(jù),圖模型的實例更加廣泛,如蛋白質(zhì)結(jié)構(gòu)等,本文所設(shè)計的圖卷積神經(jīng)網(wǎng)絡(luò)在這些領(lǐng)域的應(yīng)用可以開展進(jìn)一步研究。同時,本網(wǎng)絡(luò)設(shè)計的方法是一種將圖神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,在多模態(tài)數(shù)據(jù)融合方面有一定啟發(fā)性意義。