李圣京,李樹斌
(廣州海格通信集團股份有限公司 無人系統(tǒng)技術(shù)創(chuàng)新中心,廣東 廣州 510700)
隨著深度學習技術(shù)的發(fā)展以及硬件設(shè)備性能的提升,針對視頻識別的研究越受重視[1]。與目標檢測等任務(wù)不同,視頻識別任務(wù)不僅需要處理每一幀的特征信息,還需要處理時序上的特征信息,計算量也會更大。
人體行為識別是視頻識別的一個重要任務(wù),主要是從視頻或圖像序列中分析出人體正在進行或即將進行的行為動作,在監(jiān)控安防、人機交互、體育運動等領(lǐng)域有重要的實用性。利用人體行為識別技術(shù)對目標自動識別,對監(jiān)控區(qū)域進行全區(qū)域、全天時的實時感知,及時預警,可極大地降低安防成本,減少人工監(jiān)控可能出現(xiàn)的疲勞、誤報、漏報等問題。
基于人體骨骼關(guān)節(jié)點的行為識別對光照和場景有很好的魯棒性,并且在計算量和存儲空間上都有很大的優(yōu)勢。人體姿態(tài)信息可以通過姿態(tài)估計算法或穿戴傳感設(shè)備例如Kinect獲取。時空卷積神經(jīng)網(wǎng)絡(luò)(Spatial-Temporal Graph Convolution Networks,STGCN)開創(chuàng)了使用圖卷積神經(jīng)網(wǎng)絡(luò)處理姿態(tài)估計信息并其識別的精度超過了之前的大多數(shù)算法[2]。STGCN通過圖卷積對同一幀的關(guān)節(jié)點位置信息特征提取,通過時空卷積對同一關(guān)節(jié)連續(xù)幀提取關(guān)節(jié)的運動信息。相比于傳統(tǒng)的骨架建模,ST-GCN具有更好的擬合能力和泛化能力。圖1所示為在姿態(tài)估計關(guān)節(jié)點的基礎(chǔ)上建立的單人的ST-GCN連接示意圖。
圖1 ST-GCN的連接示意圖
但是,ST-GCN網(wǎng)絡(luò)只關(guān)注物理連接近的關(guān)鍵點,也未考慮物理連接遠的關(guān)節(jié)點的影響。針對上述的問題,本文借鑒了ST-GCN的思想,創(chuàng)新性提出以下3種辦法,進一步提升了人體行為識別任務(wù)的準確率:(1)通過對特征圖轉(zhuǎn)置,關(guān)節(jié)點放置到通道的維度,利用3層卷積聚集關(guān)節(jié)點的全局信息,提升行為識別的準確率;(2)提出新的注意力結(jié)構(gòu),通過學習的方式獲取兩個節(jié)點聯(lián)系的強弱;(3)提出使用不平衡多網(wǎng)絡(luò)集成學習分支在線監(jiān)督蒸餾行為識別算法,提高模型的精度。
ST-GCN是基于圖卷積神經(jīng)網(wǎng)絡(luò)(GCN)同時增加對時間維度信息的擬合。圖卷積提取關(guān)節(jié)點之間的相對位置信息,時空卷積對相同關(guān)節(jié)點不同時間進行連接和信息融合,保證關(guān)節(jié)點在時序過程中動作的連續(xù)性。
以常見的圖像二維卷積為例,輸出特征圖上任意位置x可以表示為:
式中,fm大小為h*w*c的特征圖;K為卷積核的大??;采樣函數(shù)p是指以像素x為中心,區(qū)域大小與卷積核大小相同的矩陣特征;w為二維卷積核的權(quán)重值。
在同一幀姿態(tài)估計結(jié)果數(shù)據(jù)中,以關(guān)節(jié)點vti為中心點,其他關(guān)節(jié)點vtj到vti的最短距離表示為d(vtj,vti)。其中,相鄰的關(guān)節(jié)點間的距離為1。距離越遠代表兩點之間的物理緊密程度越小。
設(shè)定距離閾值D,到根節(jié)點vti的最短距離小于的集合為:
假定采樣函數(shù)p使用D=2的相鄰區(qū)域B(vti),則采樣函數(shù)p(vti,vtj)為:
針對ST-GCN缺少遠距離關(guān)節(jié)點關(guān)聯(lián)的不足,本文在ST-GCN的基礎(chǔ)上,提出了一個如圖2所示以圖卷積網(wǎng)絡(luò)為基礎(chǔ)、引入新的注意力機制和共現(xiàn)特征學習、在線蒸餾結(jié)構(gòu)的網(wǎng)絡(luò)結(jié)構(gòu)[3]。
如圖2主干網(wǎng)絡(luò)所示,本網(wǎng)絡(luò)結(jié)構(gòu)包含10個圖3所示的ATG結(jié)構(gòu),ATG結(jié)構(gòu)類似于ST-GCN中的時空卷積單元結(jié)構(gòu),該結(jié)構(gòu)先通過注意力掩碼與圖卷積的鄰接矩陣相加,使用一個卷積核大小與為5×9圖卷積提取相同一幀的關(guān)節(jié)點特征,再通過時空卷積對于不同時序同一關(guān)節(jié)點進行卷積,最后通過殘差的方式與輸入的特征進行融合,實現(xiàn)特征的跨區(qū)域提取;注意力機制的改變具體可查看2.2.2節(jié);COF結(jié)構(gòu)即為共現(xiàn)特征單元結(jié)構(gòu),具體可查看2.2.1節(jié);在第五個ATG結(jié)構(gòu)和第八個AGT結(jié)構(gòu)后使用步長為2的卷積對特征下采樣。本文所述模型的前4個ATG結(jié)構(gòu)的輸出通道均為64,第五個到第七個ATG結(jié)構(gòu)的輸出通道均為128,后面3個ATG結(jié)構(gòu)的輸出通道數(shù)均為256;對最后一個ATG的輸出特征圖,通過平均池化操作和全連接層計算,對全連接層輸出的特征圖通過Softmax分類器完成對動作的分類。
圖2 多任務(wù)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
圖3 AGT結(jié)構(gòu)示意圖
2.2.1 共現(xiàn)特征學習結(jié)構(gòu)
一個行為動作不僅僅與物理相鄰的關(guān)節(jié)點相關(guān),也有可能與其他相鄰很遠的關(guān)節(jié)點有關(guān)系。直覺上,“行走”這個動作,手與腳的聯(lián)系比較大;“舉著”這個動作,左手與右手的動作聯(lián)系較大。在ST-GCN中,手與腳的距離或者左右手腕的距離較遠,聯(lián)系很小,不能學習到很好的協(xié)調(diào)動作。基于此,本文提出一種如圖4所示共現(xiàn)特征學習(COF)模塊,通過將所有關(guān)鍵點信息轉(zhuǎn)置到同一維度,經(jīng)過3層2d卷積與Relu激活后,再轉(zhuǎn)置回原有的輸入形狀,與輸入的特征圖在對應(yīng)的元素相加作為輸出。
圖4 共現(xiàn)特征學習結(jié)構(gòu)
具體而言,對于同一個人,一個T幀時序范圍,N個骨骼關(guān)節(jié)點,每個關(guān)節(jié)點有C種特征的骨骼序列可表示為一個尺寸是C×T×N×1的張量Fin。首先將張量轉(zhuǎn)置為T×(C×N),通過3層大小均為1*1,步長為1,通道數(shù)分別為64、128、(C×N)的卷積核計算,對卷積結(jié)果轉(zhuǎn)置到后與Fin。相同形狀得到F1,通過對應(yīng)元素相加的方式得到輸出Fout:
2.2.2 注意力模塊
由公式(9)可以看出,在ST-GCN網(wǎng)絡(luò)中,時空卷積單元結(jié)構(gòu)首先由一個可學習的注意力掩碼Mk是與鄰接矩陣Ak直接元素相乘,這就意味著,對于某些需要兩個物理連接很遠的關(guān)節(jié)協(xié)調(diào)的動作,雖然兩個關(guān)節(jié)的聯(lián)系很大,但是圖上沒有直接相連,鄰接矩陣對應(yīng)的參數(shù)為0。此時注意力掩碼Mk并不能學習到兩者之間的聯(lián)系。
針對ST-GCN的注意力機制靈活性不夠的缺點,本文在T-GCN的基礎(chǔ)上,提出另外一種注意力機制方式。
具體而言,與ST-GCN的注意力機制類似,本文構(gòu)建一個訓練的權(quán)重Mk,權(quán)重形狀與鄰接矩陣Ak一致。與ST-GCN不同,注意力掩碼Mk并不是直接與鄰接矩陣Ak對應(yīng)元素點乘,而是對應(yīng)元素相加。Mk中的參數(shù)并不會進行歸一化等任何約束條件,完全是從數(shù)據(jù)學習過來的參數(shù),因此不僅能學習兩個節(jié)點是否存在聯(lián)系,還能表示聯(lián)系的強弱。
新的圖卷積的表達由公式(9)演變?yōu)椋?/p>
2.2.3 多網(wǎng)絡(luò)分支集成在線蒸餾學習
常見的蒸餾學習需要先訓練大網(wǎng)絡(luò),訓練完畢的大型網(wǎng)絡(luò)作為教師網(wǎng)絡(luò),讓小網(wǎng)絡(luò)學習逼近教師網(wǎng)絡(luò)的輸出分布。集成學習是通過訓練若干個基學習器(base learner),通過一定的結(jié)合策略,最終形成一個強學習器,達到博采眾長的目的。集成學習的效果往往比基學習器效果好。
本文創(chuàng)新性地提出多網(wǎng)絡(luò)分支集成學習進行蒸餾學習。通過在網(wǎng)絡(luò)的不同位置增加兩個結(jié)構(gòu)不一致的額外輸出分支,對不同分支的輸出結(jié)果集成,達到蒸餾學習中教師網(wǎng)絡(luò)輸出的結(jié)果。在訓練過程中,分支的集成結(jié)果可以作為教師網(wǎng)絡(luò)的輸出結(jié)果,對3個分支學生分支輸出的結(jié)果分別蒸餾。在推理過程中,通過去掉其余兩個分支,只保留主干結(jié)構(gòu),減少運算量,加快推理速度。整體網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
具體而言,本文在第四個、七個AGT模塊之后各增加一個與主干網(wǎng)絡(luò)結(jié)構(gòu)不一的分支結(jié)構(gòu),每個分支單獨計算損失,教師網(wǎng)絡(luò)的輸出結(jié)果通過3個分支輸出的結(jié)果平均加權(quán)集成,如表達式(12)。
直接使用Fteacher的輸出結(jié)果進行Softmax對于正確的答案會有一個很高的置信度,不利于學習到集成結(jié)果的相似信息。本文使用Softmax-T激活函數(shù),通過控制T的大小從而控制網(wǎng)絡(luò)的學習能力,公式如(13)所示:
式中,qi是每個分支網(wǎng)絡(luò)學習的對象;zi是前的輸出象;T是溫度參數(shù),通過控制T的大小決定蒸餾學習的平滑程度。如果將T取值1,則該公式退化為Softmax函數(shù);T越大,輸出結(jié)果的分布越平滑,保留相似信息越多。本文中取值為2。
本模型的損失函數(shù)計算公式為:
式中,CE是交叉熵(Cross Entropy)函數(shù);y是真實標簽的one-hot編碼;q是集成教師網(wǎng)絡(luò)的輸出結(jié)果;p是每個學生分支的輸出結(jié)果。
通過本文所提供的辦法無需訓練額外的教師網(wǎng)絡(luò)也可以達到蒸餾學習的效果,有效提升行為識別模型的準確性。
Kinetics-skeleton 數(shù)據(jù)集[4]與 NTU-RGB+D 數(shù)據(jù)集[5]是基于姿態(tài)估計進行行為識別的兩個重要數(shù)據(jù)集。
Kinetics數(shù)據(jù)集包含網(wǎng)上收集的約30萬個視頻片段,涵蓋多達700個人類動作,是目前數(shù)量最大的無約束動作識別數(shù)據(jù)集。Yan[6]等使用OpenPose姿態(tài)估計算法在該數(shù)據(jù)集上視頻中獲得每一幀圖像中每個人的關(guān)節(jié)點坐標與置信度,記錄為(x,y,c),每一幀保留置信度最高2個人的數(shù)據(jù)。該數(shù)據(jù)集包含了24萬個訓練集數(shù)據(jù)與2萬驗證集數(shù)據(jù)。
NTU-RGB+D數(shù)據(jù)集是南洋理工大學通過3個Microsoft Kinect v2傳感器的骨骼跟蹤技術(shù)與3個不同角度的攝像機采集得到,涵蓋60個種類的動作,包括40類日常行為動作,9類健康相關(guān)的行為動作,11類多人行為動作。共計56 880個樣本。NTURGB+D數(shù)據(jù)集分為X-Sub子數(shù)據(jù)集與X-View 子數(shù)據(jù)集。X-Sub子數(shù)據(jù)集包括40 320個訓練數(shù)據(jù)和16 560個測試數(shù)據(jù),其中訓練集來自同一個演員子集,測試數(shù)據(jù)來自其余的演員。X-View子數(shù)據(jù)集包含37 920個訓練數(shù)據(jù)和18 960個測試數(shù)據(jù),訓練數(shù)據(jù)與測試數(shù)據(jù)是按照攝影機的ID劃分。
本文在Kinetics-skeleton數(shù)據(jù)集和數(shù)據(jù)集上進行模型訓練和測試,本文使用1塊1080ti 的顯卡,顯存大小為11 GB,CPU 為Intel Xeon(R) silver 4210 CPU@2.2GHZ*40,訓練系統(tǒng)環(huán)境為ubuntu16.08,CUDA環(huán)境為10.2,CUDNN環(huán)境為7.6.5,深度學習框架為pytorch1.6,優(yōu)化器為SGD ,動量設(shè)置為0.9,權(quán)重衰減為10-5。初始學習率為10-2,使用余弦退火的學習率變化策略。訓練的批次大小為64,一共迭代200 000次。在Kinetics-skeleton 數(shù)據(jù)集的表現(xiàn)與其他算法對比如表1[5,7]:
表1 本文算法與其他算法在Kinetics-skeleton 數(shù)據(jù)集準確率對比
使用相同配置訓練NTU-RGB+D數(shù)據(jù)集,在NTU-RGB+D數(shù)據(jù)集表現(xiàn)與其他算法對比如表2[8]。
表2 本文算法與其他算法在NTU-RGB+D 數(shù)據(jù)集準確率對比
本文提供了一種以時空圖卷積網(wǎng)絡(luò)為基礎(chǔ)、引入了注意力機制和共現(xiàn)特征學習結(jié)構(gòu)的網(wǎng)絡(luò)結(jié)構(gòu),通過增強不同關(guān)節(jié)之間的聯(lián)系,提升行為識別模型的精度。同時提供一種在線蒸餾學習的方式增強模型的泛化能力。本文提供的模型在Kinetics-skeleton數(shù)據(jù)集上取得31.25%的Top-1 精度與53.45%的Top-5性能精度,相比于原版的ST-GCN算法,Top-1和Top-5分別提升了0.44%和0.65%。本文提供的模型在NTU-RGB+D的子數(shù)據(jù)集X-Sub取得86.7%的Top-1精度,在NTU-RGB+D的子數(shù)據(jù)集X-View取得94.6%的Top-1精度,對比于原版的ST-GCN算法,提升了5.2%和 6.3%。證明了引入注意力機制和共現(xiàn)特征學習機制增強模型的感受野,以及使用蒸餾學習能增強ST-GCN算法的性能。