楊清山,穆太江
清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,北京 100084
動(dòng)作識(shí)別有著廣泛的應(yīng)用,包括人機(jī)交互、視頻理解與檢索、場(chǎng)景理解和老人監(jiān)護(hù)等,是計(jì)算機(jī)視覺(jué)一個(gè)活躍的研究領(lǐng)域。早期人們主要研究基于RGB數(shù)據(jù)、深度數(shù)據(jù)和光流數(shù)據(jù)等的動(dòng)作識(shí)別,隨著深度學(xué)習(xí)技術(shù)對(duì)人體姿勢(shì)和關(guān)鍵點(diǎn)估計(jì)準(zhǔn)確度的提升,催生了很多工具和設(shè)備(Cao等,2017,2021;Fankhauser等,2015),可以方便地估計(jì)人體骨架數(shù)據(jù),從而吸引了眾多的研究者研究基于骨架的動(dòng)作識(shí)別。
骨架(skeleton)是人體結(jié)構(gòu)和姿勢(shì)的一種簡(jiǎn)單表示,每一幀骨架數(shù)據(jù)包含多個(gè)關(guān)鍵點(diǎn)(joints),不同時(shí)刻的骨架數(shù)據(jù)組合在一起構(gòu)成一個(gè)骨架序列(skeleton series)即可表示一個(gè)動(dòng)作。骨架數(shù)據(jù)由于簡(jiǎn)單、冗余信息少和計(jì)算快捷等特點(diǎn),廣泛用于人體動(dòng)作識(shí)別。大多數(shù)方法采用與循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)、卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)或者圖卷積網(wǎng)絡(luò)(graph convolutional network,GCN)相關(guān)的經(jīng)典深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)建模型。GCN類的方法可以用鄰接矩陣等顯式地表示關(guān)鍵點(diǎn)的空間位置關(guān)系,并基于空間拓?fù)潢P(guān)系和時(shí)域信息設(shè)計(jì)模型中數(shù)據(jù)的更新方式??傮w來(lái)說(shuō),與其他類型的方法相比,GCN類的方法在多個(gè)數(shù)據(jù)集上取得了更好的結(jié)果,更適用于基于骨架關(guān)鍵點(diǎn)的動(dòng)作識(shí)別任務(wù)。然而,動(dòng)作識(shí)別既要處理關(guān)鍵點(diǎn)空間上的位置信息,還要處理時(shí)序上的變化信息,目前很多前沿的GCN類方法的模型結(jié)構(gòu)比較復(fù)雜,層數(shù)比較深,參數(shù)量較大,因此需要研究更加簡(jiǎn)單輕量化和更加魯棒的模型。另外,關(guān)鍵點(diǎn)的坐標(biāo)、角度和相機(jī)視野等都是重要的信息,不同形式的輸入數(shù)據(jù)對(duì)模型準(zhǔn)確率影響較大。在GCN類的方法中,Shi等人(2019a,2020)和Yan等人(2018)使用了用于模擬光流的motion數(shù)據(jù)以及joints和bone數(shù)據(jù)等,整體提高了識(shí)別準(zhǔn)確率,但是單獨(dú)使用某一種數(shù)據(jù)時(shí)模型的準(zhǔn)確率較低。
基于當(dāng)前方法存在的問(wèn)題,本文研究如何將數(shù)據(jù)增強(qiáng)、知識(shí)蒸餾、模型融合和分組卷積等與深度學(xué)習(xí)相關(guān)的技術(shù)和方法更好地應(yīng)用于該任務(wù),在降低模型參數(shù)量的同時(shí)進(jìn)一步提高模型的識(shí)別準(zhǔn)確率。具體而言,用分組卷積替換全卷積設(shè)計(jì)時(shí)空卷積模型,降低模型的參數(shù)量;為了保證簡(jiǎn)單模型的準(zhǔn)確性,模型訓(xùn)練時(shí)使用知識(shí)蒸餾的技術(shù),用訓(xùn)練好的教師模型指導(dǎo)學(xué)生模型訓(xùn)練;受Shi等人(2019a,b)的啟發(fā),采用有向圖卷積和自適應(yīng)圖卷積兩種圖卷積形式構(gòu)建模型的空間卷積(spatial convolution)模塊,使兩種結(jié)構(gòu)的子模型得以優(yōu)勢(shì)互補(bǔ),結(jié)合仿射變換的數(shù)據(jù)增強(qiáng)方式,最后訓(xùn)練得到一個(gè)多股并聯(lián)的融合模型。
本文有3個(gè)主要貢獻(xiàn):1)使用分組卷積等技術(shù)設(shè)計(jì)了輕量的時(shí)序卷積模塊,降低了模型參數(shù)量。首次將知識(shí)蒸餾應(yīng)用于基于骨架數(shù)據(jù)的動(dòng)作識(shí)別問(wèn)題,保證參數(shù)量減少后模型的準(zhǔn)確性。2)利用仿射變換等數(shù)據(jù)增強(qiáng)技術(shù)增加了新的輸入數(shù)據(jù)形式,為模型增加了額外觀察動(dòng)作的角度,增加了模型的魯棒性。3)提出了一個(gè)多股并聯(lián)的融合模型,在NTU RGB + D數(shù)據(jù)集上有更高的識(shí)別準(zhǔn)確率。
基于骨架的動(dòng)作識(shí)別方法可以分為傳統(tǒng)機(jī)器學(xué)習(xí)類的方法和深度學(xué)習(xí)類的方法。對(duì)于傳統(tǒng)機(jī)器學(xué)習(xí)類的方法,通常需要手動(dòng)設(shè)計(jì)用于動(dòng)作分類的特征,然后用其他常規(guī)的機(jī)器學(xué)習(xí)的方法對(duì)動(dòng)作進(jìn)行識(shí)別和分類。Climent-Pérez等人(2012)使用遺傳算法(genetic algorithm)選擇對(duì)不同動(dòng)作有貢獻(xiàn)的點(diǎn),然后使用K均值聚類(K-means)方法分類動(dòng)作;Wang等人(2013)根據(jù)身體部位將關(guān)鍵點(diǎn)分為不同的組,然后使用數(shù)據(jù)挖掘技術(shù)在時(shí)間和空間域上挖掘位姿信息,并且使用支持向量機(jī)對(duì)動(dòng)作進(jìn)行分類。此類傳統(tǒng)的機(jī)器學(xué)習(xí)相關(guān)算法需要手動(dòng)設(shè)計(jì)分類特征,表達(dá)能力較弱,基本無(wú)法勝任分類類別多、數(shù)據(jù)集龐大的分類任務(wù)。深度學(xué)習(xí)類的方法又可以分為RNN類的方法、GCN類的方法和其他CNN類的方法。RNN類的方法中,研究最多的是使用長(zhǎng)短期記憶(long short-term memory,LSTM)結(jié)構(gòu)解決該問(wèn)題,前人設(shè)計(jì)了包含不同LSTM變體結(jié)構(gòu)的模型,如ST-LSTM(spatio-temporal long short-term network)(Liu等,2016)、Part-aware LSTM(Shahroudy等,2016)等。LSTM結(jié)構(gòu)的模型在處理語(yǔ)音和文本等時(shí)序數(shù)據(jù)類的任務(wù),例如語(yǔ)音識(shí)別、文本翻譯等任務(wù)中表現(xiàn)突出,盡管此處的骨架數(shù)據(jù)一定程度上也可以看做時(shí)間序列的數(shù)據(jù),所不同的是,動(dòng)作識(shí)別中,非常依賴骨架數(shù)據(jù)在空間和時(shí)間各個(gè)維度的變化,使此類方法難以發(fā)揮其處理時(shí)間序列數(shù)據(jù)的優(yōu)勢(shì)。其他CNN類的方法,有使用3維卷積的如Two-Stream 3DCNN(Liu等,2017a),或者將骨架數(shù)據(jù)通過(guò)不同方式排列以及設(shè)計(jì)定制化的卷積核大小,從而滿足2維卷積操作的方法,如TCN(temporal convolutional networks)(Kim和Reiter,2017)、Synthesized CNN(Liu等,2017b)等。但因?yàn)楣羌荜P(guān)鍵點(diǎn)在人體中是有自然連接關(guān)系的,這類方法一個(gè)共同的不足就是沒(méi)有很好地利用骨架數(shù)據(jù)這種“內(nèi)在信息”;另外,其他使用3D卷積的方法一個(gè)比較明顯的劣勢(shì)就是3D卷積導(dǎo)致模型參數(shù)多,計(jì)算代價(jià)大。而GCN是最近兩年在這一問(wèn)題上使用最多的一類方法。
Yan等人(2018)提出的ST-GCN(spatial temporal graph convolution networks)模型,首次將基于圖的卷積網(wǎng)絡(luò)應(yīng)用于基于骨架的動(dòng)作識(shí)別這一任務(wù),與其他類型的方法相比,顯著地提高了在NTU RGB+D數(shù)據(jù)集上的準(zhǔn)確率,證明了圖卷積網(wǎng)絡(luò)在這一任務(wù)上強(qiáng)大的表達(dá)和生成能力。自此以后,圖卷積成為研究該問(wèn)題的熱門方法,不同結(jié)構(gòu)的圖卷積模型相繼出現(xiàn)。Shi等人(2019b)提出使用端到端的方式學(xué)習(xí)一個(gè)數(shù)據(jù)驅(qū)動(dòng)的矩陣,作為表示骨架空間連接關(guān)系拓?fù)浣Y(jié)構(gòu)的鄰接矩陣的補(bǔ)充,從而使這種拓?fù)浣Y(jié)構(gòu)更具彈性。Shi等人(2019a)使用一個(gè)無(wú)環(huán)的有向圖表示骨架的拓?fù)浣Y(jié)構(gòu),設(shè)計(jì)了一個(gè)有向圖卷積網(wǎng)絡(luò)用于提取和更新關(guān)鍵點(diǎn)(joints)和連接關(guān)鍵點(diǎn)之間的骨(bone)的特征,并根據(jù)這些特征進(jìn)行動(dòng)作識(shí)別。Shi等人(2020)在圖卷積網(wǎng)絡(luò)層中增加了注意力(attention)模塊,幫助網(wǎng)絡(luò)更加注意輸入數(shù)據(jù)中重要的點(diǎn)、幀和特征。Wu等人(2019)在圖卷積模型中設(shè)計(jì)了一個(gè)新的殘值層和稠密鏈接塊,幫助模型更好地學(xué)習(xí)時(shí)域和空域上的有效信息。這些方法都證明了圖卷積在基于骨架的動(dòng)作識(shí)別任務(wù)中的有效性。
模型蒸餾訓(xùn)練是“機(jī)器教機(jī)器”學(xué)習(xí)范式的一種深度學(xué)習(xí)模型訓(xùn)練方式。蒸餾知識(shí)(Hinton等,2015)的目的是讓復(fù)雜度低的模型學(xué)習(xí)復(fù)雜模型處理任務(wù)的方式,從而將知識(shí)由復(fù)雜模型轉(zhuǎn)移到簡(jiǎn)單模型用于解決問(wèn)題,降低模型的計(jì)算量。另一個(gè)相關(guān)的概念是特權(quán)信息(privileged information),Vapnik和Izmailov(2015)介紹了使用特權(quán)信息訓(xùn)練的方法,對(duì)于“特征—標(biāo)簽”數(shù)據(jù),在訓(xùn)練時(shí)加上特權(quán)信息成為“特征—特權(quán)信息—標(biāo)簽”數(shù)據(jù)用于訓(xùn)練,而用于測(cè)試的“特征—標(biāo)簽”數(shù)據(jù)則并不包含這種特權(quán)信息。通過(guò)這種方式訓(xùn)練的模型在測(cè)試集上能有更高的準(zhǔn)確率。綜合這些思想,用模型A蒸餾訓(xùn)練模型B的過(guò)程為:使用模型A在“特征—標(biāo)簽”數(shù)據(jù)上訓(xùn)練得到教師模型,然后用教師模型全連接層之前的特征作為特權(quán)信息添加到訓(xùn)練數(shù)據(jù)。最后,“特征—特權(quán)信息—標(biāo)簽”數(shù)據(jù)用于訓(xùn)練模型B,模型B為最終的測(cè)試模型。
模型融合是在深度學(xué)習(xí)各個(gè)領(lǐng)域使用較多的一種策略,其目的是融合一些表達(dá)力較弱的分支網(wǎng)絡(luò),以構(gòu)建一個(gè)全局優(yōu)化的整體模型。在基于骨架的動(dòng)作識(shí)別這個(gè)問(wèn)題中,圖卷積是有效的一種方法,但不同結(jié)構(gòu)的圖卷積模型提取的特征,以及模型做出識(shí)別判斷時(shí)依據(jù)的特征信息不一樣,融合模型能起到優(yōu)勢(shì)互補(bǔ)的作用。
模型的整體示意圖如圖1所示,模型由有向圖卷積子模型(directed graph convolutional sub neural network,DGCNNet)和自適應(yīng)圖卷積子模型(adaptive graph convolutional sub neural network,AGCNNet)兩種結(jié)構(gòu)的圖卷積子模型組成,其中,DGCNNet和AGCNNet中的空間卷積模塊分別采用與有向圖神經(jīng)網(wǎng)絡(luò)(directed graph neural networks,DGNN)(Shi等,2019a)和自適應(yīng)圖卷積神經(jīng)網(wǎng)絡(luò)(adaptive graph convolutional networks for skeleton-based action,AGCN)(Shi等,2019b,2020)相同的圖卷積模塊,時(shí)序卷積模塊使用分組卷積設(shè)計(jì),子模型的參數(shù)量較少。
圖1 融合模型示意圖Fig.1 The proposed ensemble model
DGCNNet是本文提出的融合模型中的一個(gè)子模型,包含10層light-DGC(light directed graph convolutional)基礎(chǔ)層,結(jié)構(gòu)如圖2所示,虛線框表示當(dāng)前后張量通道(channel)數(shù)不匹配的時(shí)候使用卷積,其中的空間卷積模塊DGC模塊采用與DGNN(Shi等,2019a)相同的圖卷積結(jié)構(gòu),用于在空間上更新骨架信息。除此之外,在light-DGC基礎(chǔ)層中進(jìn)行了如下設(shè)計(jì):
1)在空間卷積模塊之后串聯(lián)自注意(self-attention)模塊。在深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)中,自注意機(jī)制(Parikh等,2016)是一種用來(lái)計(jì)算輸入數(shù)據(jù)不同位置特征重要性的機(jī)制,每個(gè)自注意模塊學(xué)習(xí)一個(gè)權(quán)重張量,用于表示各位置特征的“重要程度”,已經(jīng)成功應(yīng)用于語(yǔ)音識(shí)別、文本翻譯以及計(jì)算機(jī)視覺(jué)的多種任務(wù)中。具體而言,在空間卷積模塊之后串聯(lián)了3個(gè)自注意模塊,其作用是為特征圖在時(shí)間、空間和特征3個(gè)維度分別學(xué)習(xí)一個(gè)系數(shù)向量,用于增強(qiáng)特征圖中重要的點(diǎn)、重要的幀和重要的特征通道對(duì)模型分類中的影響。
2)為了更好地學(xué)習(xí)時(shí)間上的變化信息,時(shí)域維度的卷積核通常較大,使用普通卷積導(dǎo)致模型的參數(shù)量較大,因此,用于更新數(shù)據(jù)時(shí)域信息的light-TCN模塊中使用參數(shù)量較少的分組卷積替換普通的全卷積。light-TCN模塊的結(jié)構(gòu)如圖3所示,使用一個(gè)卷積核為(9,1)的逐通道的2維卷積和一個(gè)核為(1,1)的普通2維卷積處理特征圖的時(shí)域信息,替換卷積核為(9,1)的普通2維卷積。使用該分組卷積策略后,用Ci和Co分別表示輸入和輸出特征圖通道數(shù),在只考慮卷積的情況下,該模塊的參數(shù)量由Co×Ci×9×1減少為Co×1×1×9+Co×Ci×1×1。
圖3 light-TCN模塊Fig.3 light-TCN block
用鄰接矩陣表示人體骨架關(guān)鍵點(diǎn)之間的連接關(guān)系,并基于連接關(guān)系設(shè)置卷積方式,各點(diǎn)的數(shù)據(jù)由與其相連的點(diǎn)更新,是另外一類使用廣泛的圖卷積模型。為了能夠在模型訓(xùn)練過(guò)程中更加關(guān)注重要的幀、重要的點(diǎn)和重要的特征,Shi等人(2020)在模型中引入了注意力增強(qiáng)模塊。受Shi等人(2019b,2020)工作的啟發(fā),用自適應(yīng)圖卷積作為模型的空間卷積模塊,構(gòu)建融合模型AGCNNet。AGCNNet由10層light-AGC基礎(chǔ)層構(gòu)成,light-AGC基礎(chǔ)層如圖4所示,虛線框表示當(dāng)前后張量通道數(shù)不匹配的時(shí)候使用卷積。與Shi等人(2020)的方法相比,light-AGC基礎(chǔ)層使用參數(shù)更少的light-TCN模塊更新特征圖的時(shí)域信息,因?yàn)樵赟hi等人(2020)的方法中,用來(lái)處理時(shí)域的卷積模塊的卷積核較大,導(dǎo)致模型的參數(shù)量大,此處將其替換為light-TCN模塊,顯著降低了模型的參數(shù)量。
圖4 light-AGC層Fig.4 light-AGC layer
圖5 模型蒸餾訓(xùn)練Fig.5 The framework of the distillation training
(1)
式中,crossEntropy()表示計(jì)算交叉熵?fù)p失,MSE()表示計(jì)算均方差損失。
蒸餾訓(xùn)練時(shí),用DGCNNet和AGCNNet模型作為學(xué)生模型,用AGCN和DGNN分別作為教師模型蒸餾訓(xùn)練子模型。通過(guò)比較學(xué)生模型與教師模型的準(zhǔn)確率證明使用的蒸餾訓(xùn)練方法的有效性。除了這種教師模型與學(xué)生模型結(jié)構(gòu)不同的情況之外,本文也設(shè)置了大量的用同一種模型結(jié)構(gòu),在不同的數(shù)據(jù)上分別訓(xùn)練教師模型和學(xué)生模型的跨數(shù)據(jù)的蒸餾訓(xùn)練實(shí)驗(yàn),用于證明蒸餾訓(xùn)練的有效性。對(duì)AGCN進(jìn)行跨數(shù)據(jù)蒸餾訓(xùn)練時(shí),首先使用在joints數(shù)據(jù)上訓(xùn)練得到的模型作為教師模型,然后用bone數(shù)據(jù)蒸餾訓(xùn)練學(xué)生模型;對(duì)DGNN模型做跨數(shù)據(jù)蒸餾訓(xùn)練時(shí),首先使用骨架數(shù)據(jù)訓(xùn)練教師網(wǎng)絡(luò),然后用仿射變換后的骨架數(shù)據(jù)蒸餾訓(xùn)練學(xué)生網(wǎng)絡(luò)。
考慮到在NTU RGB+D數(shù)據(jù)集采集數(shù)據(jù)時(shí),相機(jī)設(shè)置的偏移角度為±45°,為了不失一般性以及簡(jiǎn)化運(yùn)算,此處設(shè)置θ=60°,b=0。
(2)
最終的融合模型如圖1所示。
實(shí)驗(yàn)在NTU RGB + D數(shù)據(jù)集上進(jìn)行,該數(shù)據(jù)集有cross-subject和cross-view兩種評(píng)判標(biāo)準(zhǔn)。通過(guò)在兩種標(biāo)準(zhǔn)下設(shè)置實(shí)驗(yàn),訓(xùn)練和評(píng)估本文提出的模型,并與前沿的方法對(duì)比,以說(shuō)明方法的有效性。
NTU RGB+D數(shù)據(jù)集是使用3個(gè)微軟的Kinect v2相機(jī)拍攝的動(dòng)作識(shí)別相關(guān)的數(shù)據(jù)集。整個(gè)數(shù)據(jù)集包含60類動(dòng)作,超過(guò)56 000個(gè)動(dòng)作實(shí)例和400萬(wàn)幀數(shù)據(jù)。每個(gè)動(dòng)作實(shí)例包含RGB視頻、深度數(shù)據(jù)、人體關(guān)鍵點(diǎn)數(shù)據(jù)和紅外數(shù)據(jù)。其中,本文使用的人體關(guān)鍵點(diǎn)數(shù)據(jù)為:每個(gè)人體有25個(gè)關(guān)鍵點(diǎn),每個(gè)關(guān)鍵點(diǎn)表示為相機(jī)坐標(biāo)系的3維空間點(diǎn)。NTU RGB + D提供兩種訓(xùn)練和評(píng)判的標(biāo)準(zhǔn):CS(cross-subject)和CV(cross-view),前者使用20個(gè)志愿者的數(shù)據(jù)作訓(xùn)練集訓(xùn)練,剩下20個(gè)志愿者的數(shù)據(jù)作測(cè)試集評(píng)估模型;后者則使用其中兩個(gè)視角拍攝的數(shù)據(jù)作訓(xùn)練集訓(xùn)練,剩余一個(gè)視角拍攝的數(shù)據(jù)作測(cè)試集評(píng)估模型(Shahroudy等,2016)。對(duì)于輸入數(shù)據(jù)需要做一些預(yù)處理,包括坐標(biāo)變換使動(dòng)作主體位于視野中央,將所有動(dòng)作序列擴(kuò)展至300幀等,處理過(guò)程與Shahroudy等人(2016)和Shi等人(2019a)的方法相同,得到形狀為C×T×V的多維joints數(shù)據(jù),其中C為坐標(biāo)維數(shù)、T為幀數(shù)、V為點(diǎn)數(shù)。除此之外,模型還用到了連接關(guān)鍵點(diǎn)的bone數(shù)據(jù)。bone數(shù)據(jù)的產(chǎn)生方式與Shi等人(2019a,2020)的方法相同。
模型采用Pytorch深度學(xué)習(xí)框架實(shí)現(xiàn)。對(duì)于DGCNNet和AGCNNet子網(wǎng)絡(luò),分別使用10層light-DGC基礎(chǔ)層和10層light-AGC基礎(chǔ)層搭建模型,兩支子網(wǎng)絡(luò)的輸出通道數(shù)相同,10層的輸出通道數(shù)分別為(64、64、64、64、128、128、128、256、256、256)。訓(xùn)練數(shù)據(jù)批大小為32,優(yōu)化器使用隨機(jī)梯度下降法(stochastic gradient descent,SGD),學(xué)習(xí)率初始化為0.1。訓(xùn)練教師網(wǎng)絡(luò)時(shí),在訓(xùn)練到40和90代后將學(xué)習(xí)率縮小為1/10,模型總共訓(xùn)練120代。蒸餾訓(xùn)練學(xué)生網(wǎng)絡(luò)時(shí),先后在訓(xùn)練到30和40代后將學(xué)習(xí)率縮為1/10,模型總共訓(xùn)練60代。訓(xùn)練前10代,反向傳播不修改DGCNNet和AGCNNet網(wǎng)絡(luò)中表示連接關(guān)系的矩陣的值,10代以后正常訓(xùn)練。對(duì)于蒸餾訓(xùn)練時(shí)損失函數(shù)中α的取值,通過(guò)實(shí)驗(yàn)確定,用預(yù)訓(xùn)練好并固定權(quán)重的AGCN模型作教師模型,以AGCNNet作為學(xué)生模型在bone數(shù)據(jù)上進(jìn)行訓(xùn)練和測(cè)試,不同的α取值及對(duì)應(yīng)的測(cè)試準(zhǔn)確率如圖6所示,根據(jù)實(shí)驗(yàn)結(jié)果,將所有子模型的蒸餾訓(xùn)練的α值都設(shè)置為50。
圖6 模型準(zhǔn)確率與損失函數(shù)系數(shù)α的關(guān)系Fig.6 The relationship between model accuracy and loss function coefficient α
學(xué)生模型使用輕量的時(shí)序卷積模塊,顯著降低了模型參數(shù),同時(shí)利用模型蒸餾訓(xùn)練的方法使模型在降低參數(shù)量的情況下?lián)碛休^高的準(zhǔn)確率。對(duì)DGCNNet子模型的蒸餾訓(xùn)練,首先在骨架數(shù)據(jù)joints+bone上訓(xùn)練DGNN,由于原文(Shi等,2019a)未公開(kāi)源碼,此處使用的DGNN網(wǎng)絡(luò)單層結(jié)構(gòu)如圖5中教師網(wǎng)絡(luò)所示,可能與原文代碼有微小差別。然后用其蒸餾訓(xùn)練學(xué)生模型DGCNNet。對(duì)AGCNNet子模型的蒸餾訓(xùn)練,首先在bone數(shù)據(jù)上訓(xùn)練教師模型AGCN,然后用教師模型蒸餾訓(xùn)練學(xué)生模型AGCNNet。對(duì)蒸餾得到的AGCNNet和DGCNNet學(xué)生模型與對(duì)應(yīng)的教師模型在參數(shù)量、收斂速度和top1準(zhǔn)確率3項(xiàng)指標(biāo)上進(jìn)行對(duì)比,結(jié)果如表1所示。從表1可以發(fā)現(xiàn),兩種結(jié)構(gòu)的學(xué)生模型的參數(shù)量都有顯著降低(減少約50%),通過(guò)蒸餾訓(xùn)練的模型準(zhǔn)確率比沒(méi)有蒸餾訓(xùn)練的高,甚至比參數(shù)量大的教師模型的準(zhǔn)確率高。這是因?yàn)閷W(xué)生模型中使用了輕量的時(shí)域卷積模塊,降低了模型的參數(shù)量,而且訓(xùn)練時(shí)通過(guò)損失函數(shù)增加了來(lái)自教師模型的約束,利用模型蒸餾訓(xùn)練的方法保證了學(xué)生模型的識(shí)別準(zhǔn)確率。
表1 學(xué)生模型與教師模型對(duì)比Table 1 Comparison of student model and teacher model
模型時(shí)域卷積模塊量化對(duì)比如表2所示,g表示分組卷積的分組數(shù)。由于DGNN未公開(kāi)源碼,用做教師網(wǎng)絡(luò)的DGNN模型在具體實(shí)現(xiàn)時(shí),時(shí)域卷積使用兩個(gè)核大小為9×1的2維卷積分別處理joints和bone數(shù)據(jù)。表中展示的是模型最后一層的參數(shù),其他層同理。
表2 模型最后一層時(shí)序卷積層參數(shù)對(duì)比Table 2 Comparison of last temporal convolution layer in student model and teacher model
為了提高融合模型的準(zhǔn)確率,本文使用仿射變換數(shù)據(jù)增強(qiáng)技術(shù),其效果相當(dāng)于為模型增加了觀察動(dòng)作的視角,增加模型的魯棒性。實(shí)驗(yàn)設(shè)置時(shí),分別用仿射變換前后的骨架數(shù)據(jù)joints + bone作為輸入,采用蒸餾訓(xùn)練方法,分別對(duì)DGCNNet和AGCNNet進(jìn)行蒸餾訓(xùn)練。使用不同輸入進(jìn)行訓(xùn)練得到的子模型的結(jié)果,以及將各子模型融合得到多股并聯(lián)的融合模型的結(jié)果如表3所示。實(shí)驗(yàn)數(shù)據(jù)表明,利用仿射變換做數(shù)據(jù)增強(qiáng)能夠幫助模型提高準(zhǔn)確率,同時(shí)進(jìn)一步證明了本文提出模型的有效性。
表3 本文模型在不同輸入數(shù)據(jù)上的識(shí)別準(zhǔn)確率Table 3 The accuracy of our model on different input modalities /%
模型對(duì)NTU RGB + D數(shù)據(jù)集中各個(gè)類別的識(shí)別準(zhǔn)確率如圖7所示,有些動(dòng)作例如falling、standing up、jump up在動(dòng)作發(fā)生過(guò)程中,骨架信息在空間和時(shí)間維度變化很大,這類動(dòng)作通過(guò)融合不同結(jié)構(gòu)的圖卷積網(wǎng)絡(luò)(AGCNNet和DGCNNet)能夠準(zhǔn)確識(shí)別;而有的動(dòng)作例如writing、playing with phone等,骨架信息變化不大,對(duì)于這類動(dòng)作,盡管模型融合了不同結(jié)構(gòu)圖卷積網(wǎng)絡(luò),并使用了數(shù)據(jù)增強(qiáng),識(shí)別的準(zhǔn)確率依然不高,需要更深入的研究。
圖7 融合模型對(duì)NTU RGB+D數(shù)據(jù)集各類別動(dòng)作的識(shí)別準(zhǔn)確率Fig.7 Each class accuracy of the proposed ensemble model on NTU RGB+D dataset
模型蒸餾訓(xùn)練是本文提高模型準(zhǔn)確率的一個(gè)重要策略,蒸餾訓(xùn)練的損失函數(shù)包含均方誤差和交叉熵兩項(xiàng),均方誤差項(xiàng)的系數(shù)通過(guò)實(shí)驗(yàn)確定,準(zhǔn)確率與系數(shù)的關(guān)系如圖6所示,根據(jù)實(shí)驗(yàn)結(jié)果,損失函數(shù)中均方誤差項(xiàng)的系數(shù)取值為50。通過(guò)大量的實(shí)驗(yàn),證明了蒸餾訓(xùn)練的有效性,詳細(xì)數(shù)據(jù)見(jiàn)表1和表4。表1展示了使用蒸餾訓(xùn)練的學(xué)生網(wǎng)絡(luò)有更少的參數(shù)量和更高的準(zhǔn)確率,而且蒸餾訓(xùn)練的收斂速度快,訓(xùn)練代數(shù)少。表4展示了使用相同結(jié)構(gòu)的模型在不同數(shù)據(jù)上蒸餾訓(xùn)練的效果,訓(xùn)練結(jié)果顯示通過(guò)蒸餾訓(xùn)練能夠提高模型的準(zhǔn)確率。另外,蒸餾訓(xùn)練也有一定的局限性,因?yàn)樵谀P陀?xùn)練階段需要首先訓(xùn)練教師網(wǎng)絡(luò),訓(xùn)練時(shí)增加了一定的計(jì)算代價(jià)。
為了驗(yàn)證本文提出的融合模型的性能,與其他前沿方法進(jìn)行對(duì)比。由于訓(xùn)練使用的NTU RGB+D動(dòng)作識(shí)別數(shù)據(jù)集較大,只有基于深度學(xué)習(xí)的相關(guān)算法表現(xiàn)出了優(yōu)異性能,因此選擇基于深度學(xué)習(xí)的算法進(jìn)行對(duì)比,這些算法大致可以分為基于RNN的深度學(xué)習(xí)算法、基于CNN的深度學(xué)習(xí)算法以及GCN相關(guān)的深度學(xué)習(xí)算法3類,對(duì)比結(jié)果如表5所示。本文模型在數(shù)據(jù)集的CS和CV兩種評(píng)判標(biāo)準(zhǔn)下準(zhǔn)確率分別達(dá)到了90.9%和96.5%,明顯優(yōu)于基于GCN的基準(zhǔn)方法(Yan等,2018)的81.5%和88.3%,與其他優(yōu)秀的前沿方法相比,同樣有比較強(qiáng)的競(jìng)爭(zhēng)力。另外,與其他方法一樣,模型在CS評(píng)判標(biāo)準(zhǔn)下的準(zhǔn)確度比在CV評(píng)判標(biāo)準(zhǔn)下的低,這與兩種標(biāo)準(zhǔn)的設(shè)置是密切相關(guān)的,在CV標(biāo)準(zhǔn)下,測(cè)試集和訓(xùn)練集分別是從不同角度同步拍攝的相同動(dòng)作,而在CS標(biāo)準(zhǔn)下,同一個(gè)動(dòng)作在訓(xùn)練集和測(cè)試集由不同的人完成,難以保證一致性,再加上骨架估計(jì)模塊的誤差導(dǎo)致其比CV標(biāo)準(zhǔn)更具挑戰(zhàn)性。盡管如此,本文提出的融合模型在CS評(píng)判標(biāo)準(zhǔn)下測(cè)試集的識(shí)別準(zhǔn)確率依然達(dá)到90.9%,是所有實(shí)驗(yàn)方法中的最優(yōu)結(jié)果。
表5 不同方法的準(zhǔn)確率對(duì)比Table 5 Comparison of accuracy among different methods /%
本文首先采用兩種不同結(jié)構(gòu)的圖卷積構(gòu)建的空間卷積模塊,結(jié)合通道、空間、時(shí)間3個(gè)維度上的自注意模塊,并使用逐通道的分組卷積設(shè)計(jì)的時(shí)序卷積模塊構(gòu)建了多支輕量化的子模型。然后用蒸餾訓(xùn)練的方法從參數(shù)量大的教師模型中蒸餾知識(shí),訓(xùn)練這些學(xué)生子模型。為了增加模型的魯棒性,訓(xùn)練和測(cè)試時(shí)使用了仿射變換等數(shù)據(jù)增強(qiáng)技術(shù),用于增廣輸入數(shù)據(jù)。最終,訓(xùn)練得到了6支更輕量更準(zhǔn)確的子模型,并進(jìn)一步用其融合構(gòu)建了一支參數(shù)量較少且準(zhǔn)確性和魯棒性更好的多股并聯(lián)融合模型。
在NTU RGB+D數(shù)據(jù)集上采用兩種評(píng)判標(biāo)準(zhǔn)對(duì)本文提出的融合模型進(jìn)行了大量實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,模型的準(zhǔn)確率比同樣是基于圖卷積的基準(zhǔn)方法有了很大提高,優(yōu)于眾多現(xiàn)行的基于骨架的動(dòng)作識(shí)別前沿算法。在未來(lái)的工作中,擬研究解決骨架信息變化小的動(dòng)作識(shí)別問(wèn)題。這類動(dòng)作識(shí)別與環(huán)境和周邊物體有密切關(guān)系,需要使用其他數(shù)據(jù)例如RGB數(shù)據(jù)結(jié)合物體檢測(cè)和識(shí)別等技術(shù)構(gòu)建人物與環(huán)境和周邊物體的關(guān)系圖。
致 謝研究過(guò)程中模型訓(xùn)練使用的服務(wù)器等研究設(shè)備得到了“北京市高等學(xué)校工程研究中心”和“清華—騰訊互聯(lián)網(wǎng)創(chuàng)新技術(shù)聯(lián)合實(shí)驗(yàn)室”的支持,在此表示感謝。