臧影,劉天嬌,趙曙光*,楊東升
1. 中國(guó)科學(xué)院大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 北京 100049; 2. 中國(guó)科學(xué)院沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110168;3. 湖州師范學(xué)院信息工程學(xué)院,湖州 313000; 4. 煙臺(tái)創(chuàng)跡軟件有限公司,煙臺(tái) 264000
人體行為識(shí)別已經(jīng)在視頻監(jiān)控、人機(jī)交互、無(wú)人駕駛及虛擬現(xiàn)實(shí)中得到了廣泛應(yīng)用(Carreira和Zisserman,2017;Martinez-Hernandez等,2018;Wang和Wang,2017)。最初行為識(shí)別算法使用RGB圖像序列(Zhu等,2018;Sun等,2018)、深度圖像序列(Xu等,2017;Baek等,2017)或這些數(shù)據(jù)的融合(Feichtenhofer等,2016;Wang等,2016)。由于視頻序列數(shù)據(jù)量非常龐大,對(duì)于行為識(shí)別任務(wù)來(lái)說(shuō),存在大量信息冗余。如圖1所示,人體骨架數(shù)據(jù)具有輕量級(jí)及抗干擾性強(qiáng)等優(yōu)點(diǎn),僅包含人體關(guān)節(jié)點(diǎn)位置坐標(biāo)信息,提供了高度抽象的信息,不受外界環(huán)境變化影響。骨架數(shù)據(jù)還可通過(guò)Openpose人體姿態(tài)估計(jì)算法(Cao等,2021)及Microsoft Kinect傳感器(Zhang等,2012)輕松獲得,所以基于骨骼的行為識(shí)別吸引了越來(lái)越多研究者的關(guān)注。
圖1 NTU RGB+D數(shù)據(jù)集中RGB圖像序列與骨架序列Fig.1 RGB image sequence and skeleton sequence in NTU RGB+D dataset
基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)的行為識(shí)別算法通常專(zhuān)注于圖像任務(wù),而時(shí)間信息是行為識(shí)別性能提高的關(guān)鍵因素。如何在CNN中充分地利用空間和時(shí)間信息是行為識(shí)別的關(guān)鍵問(wèn)題。Li等人(2018)提出了一種端到端的共現(xiàn)特征學(xué)習(xí)框架,使用CNN自動(dòng)從骨架序列中學(xué)習(xí)分層的共現(xiàn)特征。在該框架中逐步匯總不同層級(jí)的上下文信息,在時(shí)域和空域?qū)⑺鼈兘M合成語(yǔ)義表示,并總結(jié)出一個(gè)簡(jiǎn)單而又非常實(shí)用的方法來(lái)調(diào)節(jié)按需聚集的程度。Li等人(2019)為了更高效地表示骨架,對(duì)骨架信息進(jìn)行編碼,采用多流CNN模型對(duì)骨架數(shù)據(jù)進(jìn)行識(shí)別。Caetano等人(2019a)引入一種新的骨架圖像表示,作為CNN的輸入,稱(chēng)為Skele-Motion。提出的方法通過(guò)顯式計(jì)算骨架關(guān)節(jié)大小和方向值編碼時(shí)間動(dòng)態(tài)信息,采用不同時(shí)間尺度計(jì)算運(yùn)動(dòng)值,以將更多的時(shí)間動(dòng)態(tài)信息聚集到表示中,從而使其能夠捕獲動(dòng)作中涉及的遠(yuǎn)程關(guān)節(jié)交互以及過(guò)濾嘈雜的運(yùn)動(dòng)值。Caetano等人(2019b)對(duì)Skele-Motion進(jìn)一步進(jìn)行改進(jìn),引入樹(shù)結(jié)構(gòu)參考關(guān)節(jié)圖像(tree structure reference joint image,TSRJI)作為一種新穎的骨架圖像表示。
循環(huán)神經(jīng)網(wǎng)絡(luò)(rerrent neural network,RNN)(Zhang等,2018)是一種處理序列數(shù)據(jù)的有效方法,但是RNN結(jié)構(gòu)缺乏空間建模能力,為了解決該問(wèn)題,Wang和Wang(2017)提出一種新穎的雙流RNN架構(gòu),對(duì)基于骨架的動(dòng)作識(shí)別的時(shí)間動(dòng)態(tài)和空間配置進(jìn)行建模。針對(duì)時(shí)間流提出兩種不同結(jié)構(gòu):堆疊RNN和分層RNN,其中分層RNN是根據(jù)人體運(yùn)動(dòng)學(xué)設(shè)計(jì)的。文章提出兩種有效方法,通過(guò)將空間圖轉(zhuǎn)換成關(guān)節(jié)序列對(duì)空間結(jié)構(gòu)進(jìn)行建模,為了提高模型的通用性,進(jìn)一步利用基于3D變換的數(shù)據(jù)增強(qiáng)技術(shù),在訓(xùn)練過(guò)程中變換骨架的3D坐標(biāo)。該方法為各種動(dòng)作(即通用動(dòng)作,互動(dòng)活動(dòng)和手勢(shì))帶來(lái)了顯著的改進(jìn)。Xie等人(2018)提出一種端到端的內(nèi)存注意網(wǎng)絡(luò)(memory attention networks, mANs),該網(wǎng)絡(luò)由一個(gè)時(shí)間注意力校準(zhǔn)模塊(time attention calibration module,TACM)和一個(gè)時(shí)空卷積模塊(spatio-temporal convolution module,STCM)組成。并利用CNN進(jìn)一步建模骨骼數(shù)據(jù)的時(shí)空信息。這兩個(gè)模塊(TACM和STCM)無(wú)縫地形成了可以以端到端的方式進(jìn)行訓(xùn)練的單個(gè)網(wǎng)絡(luò)體系結(jié)構(gòu)。Zheng等人(2019)提出了注意力遞歸關(guān)系長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(attention recurrent relational network long-short term memory,ARRN-LSTM),同時(shí)對(duì)骨架中的空間和時(shí)間信息建模以進(jìn)行動(dòng)作識(shí)別。嵌入在單個(gè)骨架中的空間模式是通過(guò)遞歸關(guān)系網(wǎng)絡(luò)學(xué)習(xí)的,然后使用多層LSTM-提取骨架序列中的時(shí)間特征。為了利用骨架中不同幾何形狀之間的互補(bǔ)性進(jìn)行關(guān)系建模,設(shè)計(jì)了一種雙流體系結(jié)構(gòu),學(xué)習(xí)關(guān)節(jié)之間的關(guān)系并同時(shí)探索流之間的潛在模式。同時(shí),引入一種自適應(yīng)注意模塊用于關(guān)注針對(duì)特定動(dòng)作的骨架潛在區(qū)分部分。
目前,基于骨架行為識(shí)別的大多數(shù)算法都是利用空間和時(shí)間兩個(gè)維度的信息才能獲得好的效果, 而GCN(graph convolutional network)能夠?qū)⒖臻g和時(shí)間信息完美地結(jié)合起來(lái)。Yan等人(2018)提出一種動(dòng)態(tài)骨架的新模型,稱(chēng)為時(shí)空?qǐng)D卷積網(wǎng)絡(luò)(spatial temporal graph convolutional networks,ST-GCN),可以通過(guò)自動(dòng)從數(shù)據(jù)中學(xué)習(xí)時(shí)空模式來(lái)超越之前方法的局限,具有更強(qiáng)的表達(dá)能力和泛化能力。Shi等人(2019a)提出一種新穎的兩流自適應(yīng)圖卷積網(wǎng)絡(luò)(two-stream adaptive graph convolutional networks,2 s-AGCN)用于基于骨骼的動(dòng)作識(shí)別。BP(back propagation)算法以端到端的方式統(tǒng)一或單獨(dú)學(xué)習(xí)模型中圖的拓?fù)洹_@種數(shù)據(jù)驅(qū)動(dòng)的方法增加了圖構(gòu)建模型的靈活性,并為適應(yīng)各種數(shù)據(jù)樣本帶來(lái)了更多的通用性。Li等人(2019)引入稱(chēng)為A-link推理模塊的編碼器—解碼器結(jié)構(gòu),直接從動(dòng)作中捕獲特定動(dòng)作的潛在依賴(lài)關(guān)系,擴(kuò)展現(xiàn)有骨架圖以表示更高階的依存關(guān)系,并將這兩種類(lèi)型的鏈接組合成廣義骨架圖,進(jìn)一步提出了行動(dòng)結(jié)構(gòu)圖卷積網(wǎng)絡(luò)(action-structure graph convolutional network,AS-GCN),將行動(dòng)結(jié)構(gòu)圖卷積網(wǎng)絡(luò)和時(shí)間卷積網(wǎng)絡(luò)(temporal convolutional network, TCN)作為基本構(gòu)建塊進(jìn)行堆疊,學(xué)習(xí)時(shí)空動(dòng)作識(shí)別功能。
然而,之前的方法都具有較高的計(jì)算復(fù)雜度,訓(xùn)練過(guò)程效率低下。目前的行為識(shí)別算法大多專(zhuān)注于算法的性能。如何在保證精度的同時(shí)減少算法計(jì)算量是行為識(shí)別需要解決的關(guān)鍵性問(wèn)題。Cheng等人(2020)受Shift CNNs(generalized low-precision architecture for inference of convolutional neural networks)(Jeon和Kim,2018;Wu等,2018;Zhong等,2018)的啟發(fā),成功地將shift操作與輕量級(jí)的點(diǎn)卷積相結(jié)合,并引入到GCN中替代常規(guī)的卷積操作,不但降低了計(jì)算量,而且將感受野擴(kuò)大到全局,提高了算法性能。在3個(gè)基于骨骼動(dòng)作識(shí)別的數(shù)據(jù)集上,Shift-GCN明顯超出現(xiàn)有方法,計(jì)算復(fù)雜度降低為原來(lái)的額1/10以上。
本文對(duì)Shift-GCN進(jìn)行更加深入研究,發(fā)現(xiàn)網(wǎng)絡(luò)的特征矩陣及注意力參數(shù)存在冗余,通過(guò)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的合理化設(shè)計(jì)及注意力參數(shù)詳細(xì)分析,提出了精度更高的網(wǎng)絡(luò)結(jié)構(gòu)IntSparse-GCN(integer sparse graph convolutional network)。
本文主要貢獻(xiàn)如下:1)在Shift-GCN基礎(chǔ)上,對(duì)稀疏的shift操作進(jìn)行改進(jìn),為盡量均衡每個(gè)關(guān)節(jié)點(diǎn)的特征向量中的0,改造了原始標(biāo)準(zhǔn)的網(wǎng)絡(luò)結(jié)構(gòu),設(shè)計(jì)輸入輸出通道為關(guān)鍵點(diǎn)整數(shù)倍的網(wǎng)絡(luò)結(jié)構(gòu),有效提高了識(shí)別準(zhǔn)確率。2)對(duì)Shift-GCN注意力函數(shù)進(jìn)行分析,發(fā)現(xiàn)大部分參數(shù)作用在關(guān)節(jié)點(diǎn)上的特征后,不但沒(méi)有提高識(shí)別精度反而影響精度,為此設(shè)計(jì)了基于區(qū)間的自動(dòng)搜索算法,滿足區(qū)間范圍內(nèi)的參數(shù)不需要再進(jìn)行乘法操作,不但提高了精度,速度也進(jìn)一步提升。得到的關(guān)節(jié)點(diǎn)特征具有很強(qiáng)的稀疏性,為下一步的剪枝及量化提供了可能性。
圖2 ST-GCN網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 ST-GCN network structure
在ST-GCN基礎(chǔ)上,Shi等人(2019a)提出一種自適應(yīng)圖卷積神經(jīng)網(wǎng)絡(luò)2 s-AGCN模型,能夠在端到端網(wǎng)絡(luò)中自適應(yīng)地學(xué)習(xí)不同層和骨架樣本的圖拓?fù)浣Y(jié)構(gòu)。然而ST-GCN的注意力機(jī)制不夠靈活,距離較遠(yuǎn)的關(guān)節(jié)點(diǎn)之間由于不存在直接連接而學(xué)習(xí)不到二者間的相關(guān)性。骨骼的長(zhǎng)度和方向能夠表達(dá)更豐富的運(yùn)動(dòng)信息。ST-GCN只使用骨架關(guān)節(jié)點(diǎn)的一階特征,而2 s-AGCN使用骨骼的二階特征,并與一階信息相結(jié)合,顯著提高了模型分類(lèi)正確率。Shi等人(2019a)又進(jìn)一步提出性能更高的MS-AAGCN(multi-stream attention enhanced adaptive graph convolutional neural network),將注意力模塊嵌入圖卷積層中,幫助模型選擇性地提取更具區(qū)分性的節(jié)點(diǎn)和通道,并通過(guò)關(guān)節(jié)和骨骼信息,在時(shí)間維度構(gòu)造運(yùn)動(dòng)信息,使用4流合并的性能大幅提高了模型性能。
傳統(tǒng)卷積具有較強(qiáng)的計(jì)算復(fù)雜度,隨著卷積核的增加計(jì)算量成倍增加,導(dǎo)致深度神經(jīng)網(wǎng)絡(luò)擴(kuò)展困難。從本質(zhì)而言,2維卷積主要是在空間域?qū)μ卣鬟M(jìn)行層次化提取,在通道域?qū)盈B的特征進(jìn)行整合。Wu等人(2018)提出了shift方法,將空間域的特征進(jìn)行不同方向平移,使用點(diǎn)卷積在通道域?qū)μ卣鬟M(jìn)行融合,搭建端到端訓(xùn)練模型,附帶一個(gè)超參控制準(zhǔn)確率與效率的權(quán)衡。可以證明shift卷積層的輸出和輸入是關(guān)于通道排序無(wú)關(guān)的,并且shift卷積的感受野更加靈活,只需要通過(guò)簡(jiǎn)單地改變shift距離實(shí)現(xiàn)。Zhong等人(2018)將shift算子引入CNN,構(gòu)造了3個(gè)基于shift的高效緊致的CNN網(wǎng)絡(luò),在保證預(yù)測(cè)精度的同時(shí),減少了GPU(graphics processing unit)上的推理時(shí)間,shift操作避免了內(nèi)存的復(fù)制,因此具有較快速度。Cheng等人(2020)將0參數(shù)的shift操作應(yīng)用到空間模塊和時(shí)間模塊中,提出一種更輕量級(jí)的Shift-GCN模型,大幅減少了模型的計(jì)算復(fù)雜度。與傳統(tǒng)shift操作一樣,Shift-GCN可以分為shift操作和點(diǎn)卷積兩個(gè)階段,然而傳統(tǒng)shift操作主要用在標(biāo)準(zhǔn)的圖像數(shù)據(jù)中,骨架數(shù)據(jù)是非規(guī)則的圖拓?fù)浣Y(jié)構(gòu),因此構(gòu)造了一種新的空間shift方法,根據(jù)感受野不同可以分為局部shift和非局部shift的方法,非局部的shift方法具有更大的感受野,能夠更好地克服人體的空間結(jié)構(gòu)的限制,使每個(gè)節(jié)點(diǎn)都能夠接收到其他節(jié)點(diǎn)的信息。實(shí)驗(yàn)證明非局部的shift方法具有更優(yōu)的性能。將shift算子引入GCN,不但構(gòu)造了輕量級(jí)的動(dòng)作識(shí)別算法,還有效提升了模型性能。
首先引入基于通道整數(shù)倍的空間shift算法,并借鑒SparseShift-GCN的shift算法,將部分通道位置置0,使特征通道接近一半的位置為0,使其成為具有強(qiáng)規(guī)律性的稀疏特征矩陣,為其他研究者的模型剪枝及量化提供了可能性。然后對(duì)Shift-GCN中的mask掩膜函數(shù)進(jìn)行研究分析,發(fā)現(xiàn)其mask掩膜函數(shù)80%以上的參數(shù)未起作用,為此本文構(gòu)建了新的自適應(yīng)mask掩膜函數(shù),使速度和精度均有提升。
雖然Shift-GCN在很大程度上減少了算法的計(jì)算量。但是網(wǎng)絡(luò)特征存在冗余,網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)設(shè)計(jì)還沒(méi)有達(dá)到最優(yōu)化程度。為了進(jìn)一步解決特征冗余,本文提出首先將網(wǎng)絡(luò)每層的輸入輸出設(shè)置成關(guān)節(jié)點(diǎn)的整數(shù)倍,然后采用將奇數(shù)列向上移動(dòng)、偶數(shù)列向下移動(dòng)的方式對(duì)特征矩陣進(jìn)行移動(dòng)操作。為了防止過(guò)擬合,提升模型泛化能力,將移出部分用0代替。這樣設(shè)計(jì)使網(wǎng)絡(luò)中每個(gè)關(guān)節(jié)點(diǎn)的特征中的0的個(gè)數(shù)幾乎一樣,有效提高了模型的魯棒性和識(shí)別精度。
圖3為網(wǎng)絡(luò)通道整數(shù)倍與非整數(shù)倍的結(jié)構(gòu)對(duì)比。圖中N為人體關(guān)節(jié)點(diǎn)的個(gè)數(shù),C為網(wǎng)絡(luò)某一層的輸出通道數(shù)量,k為正整數(shù),k=1,2,…,n。圖中的N= 7,當(dāng)網(wǎng)絡(luò)某一層的輸出通道為10時(shí),該層中的每個(gè)特征向量的0的個(gè)數(shù)是不相等的,0的個(gè)數(shù)從上到下分別為5、4、3、3、3、3、4,這樣會(huì)導(dǎo)致每個(gè)特征向量的值不均衡。而當(dāng)C=2kN-1時(shí)(k= 1時(shí)),即C=2×7-1,則每個(gè)特征向量中0的個(gè)數(shù)都是6,這樣使每個(gè)特征向量中的0都是均衡的,能有效增加模型的穩(wěn)定性。
圖3 網(wǎng)絡(luò)通道整數(shù)倍與非整數(shù)倍的結(jié)構(gòu)對(duì)比Fig.3 Structure comparison between integer multiples and non-integer multiples of network channels
從圖3中可以看出,提取的特征矩陣是非常稀疏的,接近一半的特征值是0,這些值對(duì)識(shí)別率沒(méi)有任何貢獻(xiàn),不需要對(duì)其進(jìn)行任何計(jì)算,而這樣的設(shè)計(jì)并沒(méi)有降低分類(lèi)精度,反而提高了精度。這樣的稀疏特征矩陣為其他研究者壓縮模型、加速網(wǎng)絡(luò)提供了依據(jù)。所以專(zhuān)門(mén)針對(duì)整數(shù)倍的shift操作設(shè)計(jì)了高效的網(wǎng)絡(luò)結(jié)構(gòu)IntSparse-GCN。圖4展示關(guān)節(jié)點(diǎn)為25時(shí)的IntSparse-GCN結(jié)構(gòu)圖,。其各層網(wǎng)絡(luò)輸入輸出如表1所示。
圖4 關(guān)節(jié)點(diǎn)為25時(shí)的IntSparse-GCN結(jié)構(gòu)圖Fig.4 IntSparse-GCN structure diagram when key point is 25
表1 關(guān)節(jié)點(diǎn)為25時(shí)的IntSparse-GCN各層網(wǎng)絡(luò)輸入輸出Table 1 The input and output description of each layer of IntSparse-GCN when the node is 25
為了與Shift-GCN進(jìn)行對(duì)比,基礎(chǔ)網(wǎng)絡(luò)依然為10層。為了保持總體參數(shù)量與Shift-GCN相當(dāng),將網(wǎng)絡(luò)前4層輸出設(shè)置為74,5—7層輸出設(shè)置為124,8—10層輸出設(shè)置為249。除了輸出通道個(gè)數(shù)為74的特征中0的個(gè)數(shù)不太均衡,其他所有層都滿足特征通道0的個(gè)數(shù)相等的條件。實(shí)驗(yàn)表明,這樣設(shè)計(jì)不但提高了模型性能,而且由于整個(gè)網(wǎng)絡(luò)0的數(shù)量龐大且具有規(guī)律性,為進(jìn)一步的模型剪枝及優(yōu)化提供了可能性。由于本文采用奇數(shù)列向上移動(dòng)、偶數(shù)列向下移動(dòng)的方式對(duì)特征矩陣進(jìn)行移動(dòng),所以計(jì)算網(wǎng)絡(luò)中某一層中0的個(gè)數(shù)要對(duì)奇數(shù)列和偶數(shù)列分別進(jìn)行單獨(dú)處理。
偶數(shù)列0的個(gè)數(shù)為
式中,N為人體關(guān)節(jié)點(diǎn)總數(shù),i為第i個(gè)關(guān)節(jié)點(diǎn),C為通道總數(shù),j為第j個(gè)通道數(shù)。
當(dāng)N=7,C=13時(shí),Meven=7,式(1)前半部分為0,后半部分為1+2+3+4+5+6,所以偶數(shù)列中0的個(gè)數(shù)Zeven= 21。
同理,奇數(shù)列0的個(gè)數(shù)為
最終整個(gè)網(wǎng)絡(luò)的0的總個(gè)數(shù)為Zeven+Zodd。按上式計(jì)算的本文網(wǎng)絡(luò)不同輸出通道各層中0的個(gè)數(shù)在該層特征總數(shù)中的占比如表2所示。
表2 網(wǎng)絡(luò)不同輸出通道各層中0的個(gè)數(shù)在該層特征總數(shù)中的占比Table 2 The proportion of number of 0 in each layer of different output channels of the network in the total number of features of this layer
從表2可以看出,0在整個(gè)網(wǎng)絡(luò)中的占比非常大,本文工作不但能提高網(wǎng)絡(luò)精度,而且為進(jìn)一步的網(wǎng)絡(luò)優(yōu)化提供了可能性。本文網(wǎng)絡(luò)結(jié)構(gòu)都是10層,針對(duì)不同關(guān)節(jié)點(diǎn)個(gè)數(shù)只需要修改IntSparse-GCN參數(shù)即可,不需要修改任何其他參數(shù)。本文設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)與關(guān)節(jié)點(diǎn)個(gè)數(shù)是無(wú)關(guān)的,只是網(wǎng)絡(luò)中每層的輸入輸出通道數(shù)與關(guān)節(jié)點(diǎn)個(gè)數(shù)有關(guān)。不同關(guān)節(jié)點(diǎn)個(gè)數(shù)不需要修改網(wǎng)絡(luò)結(jié)構(gòu),只需要修改網(wǎng)絡(luò)輸入輸出通道數(shù)即可。由于Northwestern-UCLA數(shù)據(jù)集中人體關(guān)節(jié)點(diǎn)個(gè)數(shù)為20,所以需要將網(wǎng)絡(luò)輸入輸出通道改為20的整數(shù)倍。表3展示了適合于關(guān)節(jié)點(diǎn)個(gè)數(shù)為20的網(wǎng)絡(luò)結(jié)構(gòu),描述了關(guān)節(jié)點(diǎn)為20時(shí)IntSparse-GCN各層網(wǎng)絡(luò)輸入輸出情況。
表3 關(guān)節(jié)點(diǎn)為20時(shí)IntSparse-GCN各層網(wǎng)絡(luò)輸入輸出Table 3 The input and output description of each layer of IntSparse-GCN when the node is 20
Shift-GCN提取關(guān)節(jié)點(diǎn)的特征shift之后,不同節(jié)點(diǎn)之間的連接強(qiáng)度是相同的。但由于人類(lèi)骨骼的重要性不同,引入了一種自適應(yīng)的非局部shift機(jī)制。計(jì)算shift特征和可學(xué)習(xí)掩碼之間的元素乘積,通過(guò)一個(gè)可學(xué)習(xí)的自適應(yīng)參數(shù)M增強(qiáng)重要關(guān)節(jié)部位的權(quán)重,具體計(jì)算為
(5)
圖5 不同層的tanh(M) + 1數(shù)據(jù)情況Fig.5 The tanh(M)+1 distribution of different layers((a)layer 1;(b)layer 3;(c)layer 5;(d)layer 7)
表4 不同區(qū)間置0后的精度變化情況Table 4 Accuracy changes after different intervals are set to 0
原模型的Top-1精度為87.88%。圖6是Top-1精度為87.89%時(shí)網(wǎng)絡(luò)第5層刪除一定參數(shù)量后的數(shù)據(jù)分布情況??梢钥闯?,刪除不同程度的參數(shù)量后,精度都有所提升,刪除的參數(shù)量越多,算法優(yōu)化空間越大。
為此,設(shè)計(jì)了一個(gè)帶超參數(shù)的循環(huán)自動(dòng)化刪除一定范圍內(nèi)M值的程序——最優(yōu)模型自動(dòng)搜索算法,通過(guò)該程序可以自動(dòng)選取刪掉一定范圍內(nèi)的M值,不但提高了模型分類(lèi)精度,而且刪掉的這部分參數(shù)不必再做乘法操作,節(jié)省了計(jì)算量。最優(yōu)模型自動(dòng)搜索算法具體實(shí)現(xiàn)過(guò)程如下:
1) 輸入Original Model;
2) forliinL= {l1,l2,…,ln} do;
3) forrjinR= {r1,r2,…,rm} do;
圖6 第5層刪掉某些范圍內(nèi)的數(shù)值后不同置0空間的M的分布Fig.6 The distribution of M in different spaces of setting 0 after deleting some values in the range in the 5th layer((a)0.991.01;(b)0.951.00;(c)0.951.10;(d)0.901.10)
圖7 不同區(qū)間為0的參數(shù)值在各層中的占比情況Fig.7 The proportion of parameter values with different intervals of 0 in each layer
4) for each layerLk∈Original Model do;
5) ifLkis Feature Mask then;
6)M= {x1,x2,…,xNV} is the value ofLk;
7)T= tanh(M) + 1;
8) fortg∈T= {t1,t2,…,tNV} do;
9) iftg>liandtg 10) updatexg= 0; 11) 測(cè)試每個(gè)新模型精度; 12) 選擇精度最高的模型作為最終模型。 在實(shí)現(xiàn)過(guò)程中,通過(guò)設(shè)置tanh(M)+1的左右邊界確定搜索范圍,左邊界搜索范圍為0.90,0.91,…,1.00;右邊界搜索范圍為1.00,1.01,…,1.10。在不同區(qū)間內(nèi)對(duì)所有M值置0,得到n個(gè)區(qū)間置0后的所有Top-1及Top-5的精度值,最終得到最高精度值更改后的模型。 3.1.1 數(shù)據(jù)集 實(shí)驗(yàn)在NTU RGB+D(Shahroudy等,2016)和Northwestern-UCLA(Wang等,2014a)數(shù)據(jù)集上進(jìn)行。NTU RGB+D數(shù)據(jù)集由56 880個(gè)動(dòng)作樣本組成,包含RGB視頻、深度圖序列、3D骨架數(shù)據(jù)和紅外視頻,由3部Microsoft Kinect v2相機(jī)同時(shí)捕獲。RGB視頻分辨率為1 920 × 1 080像素,深度圖和紅外視頻均為512 × 424像素,3D骨架數(shù)據(jù)包含每幀25個(gè)主要身體關(guān)節(jié)的3維位置。3D骨骼節(jié)點(diǎn)信息通過(guò)Kinect相機(jī)的骨骼跟蹤技術(shù)獲得,由人體25個(gè)主要身體關(guān)節(jié)的3維位置坐標(biāo)構(gòu)成。骨骼追蹤技術(shù)通過(guò)處理深度數(shù)據(jù)建立人體各關(guān)節(jié)坐標(biāo),能夠確定人體的各部分(如手、頭部或身體)及所在的空間位置。Northwestern-UCLA數(shù)據(jù)集也是由3部Kinect相機(jī)捕獲,包含1 494個(gè)視頻剪輯,涵蓋10個(gè)類(lèi)別。每類(lèi)動(dòng)作分別由10人完成。本文將前兩臺(tái)攝像機(jī)的樣本作為訓(xùn)練樣本,另一臺(tái)攝像機(jī)的樣本作為測(cè)試樣本。 3.1.2 評(píng)估指標(biāo) 使用Top-1及Top-5作為評(píng)價(jià)指標(biāo)來(lái)計(jì)算分類(lèi)的準(zhǔn)確率。 3.1.3 實(shí)現(xiàn)細(xì)節(jié) 為了與之前方法進(jìn)行比較,使用帶有Nesterov動(dòng)量(0.9)的SGD(stochastic gradient descent)訓(xùn)練140個(gè)epoch后終止學(xué)習(xí)。學(xué)習(xí)率設(shè)置為0.1,在第60、80和100個(gè)epoch時(shí),學(xué)習(xí)率除以10。對(duì)于NTU RGB + D數(shù)據(jù)集,batchsize設(shè)置為64。對(duì)于Northwestern-UCLA,batchsize設(shè)置為16。消融研究中的所有實(shí)驗(yàn)均使用上述設(shè)置。深度學(xué)習(xí)的框架是PyTorch(Paszke等,2017),本文網(wǎng)絡(luò)使用NVIDIA 4 GeForce RTX 2080 Ti GPU進(jìn)行訓(xùn)練。 在NTU RGB + D數(shù)據(jù)集的X-sub上驗(yàn)證本文提出的IntSparse-GCN網(wǎng)絡(luò)及最優(yōu)模型自動(dòng)搜索算法。分別對(duì)4流的精度提升情況進(jìn)行對(duì)比分析,4流分別為joint、bone、joint motion和bone motion。不同改進(jìn)模塊對(duì)每個(gè)流的精度提升情況如表5所示??梢钥闯?,添加不同模塊后對(duì)各個(gè)流產(chǎn)生的影響是不同的,joint、bone和joint motion的Top-1精度分別提高了0.15、0.51和0.09,bone motion的Top-1精度降低了0.09。雖然bone motion有輕微精度下降,但是其他3個(gè)流的精度都有提升,4流融合后的精度是提升的。 為了更加詳細(xì)地對(duì)本文算法進(jìn)行驗(yàn)證,對(duì)4流融合后的精度情況進(jìn)行驗(yàn)證分析,結(jié)果如表6所示,可以看出,與Shift-GCN模型相比,IntSparse-GCN+ M-Sparse模型在4個(gè)流上的精度均有不同程度的提升,在1 s、2 s和4 s的Top-1精度上比Shift-GCN分別提升了0.15、0.03和0.06。 為了驗(yàn)證算法的有效性,在NTU RGB+D數(shù)據(jù)集的X-sub和X-view子集上及Northwestern-UCLA數(shù)據(jù)集上將本文算法與當(dāng)前的先進(jìn)方法進(jìn)行對(duì)比分析,對(duì)比結(jié)果如表7及表8所示。 表7 本文算法與當(dāng)前先進(jìn)方法在NTU RGB+D數(shù)據(jù)集上對(duì)比結(jié)果Table 7 The proposed algorithm is compared with the state-of-the-art methods on the NTU RGB+D dataset 表8 本文算法與state-of-the-art方法在Northwestern-UCLA數(shù)據(jù)集上對(duì)比結(jié)果Table 8 The proposed algorithm is compared with the state-of-the-art methods on the Northwestern-UCLA dataset 從表7可以看出,本文算法與原始的Shift-GCN算法相比,計(jì)算量(floating-point operations per second,F(xiàn)LOPs)雖然略有增加,但仍為同一個(gè)數(shù)量級(jí)。然而,本文網(wǎng)絡(luò)的精度在各個(gè)流上均有不同程度提升,且本文的特征是稀疏的,有近一半的特征值是0,為下一步優(yōu)化模型提供了基礎(chǔ)。 從表8可以看出,在Northwestern-UCLA數(shù)據(jù)集上,與Shift-GCN相比,在Top-1精度上,本文方法的1 s、2 s和4 s分別提升了0.39、1.06和2.17,超過(guò)了所有之前算法的性能。 為了進(jìn)行更進(jìn)一步的比較,使用混淆矩陣與之前算法的精度對(duì)比曲線來(lái)可視化算法的結(jié)果。圖8顯示了某些類(lèi)別的混淆矩陣,可以看出,本文提出的IntSparse-GCN可以提高大多數(shù)類(lèi)別的識(shí)別精度,尤其是對(duì)于一些容易混淆的類(lèi)別,識(shí)別率得到了顯著提高。例如,在Shift-GCN中pick up with one hand有9個(gè)樣本識(shí)別成pick up with two hands,但是本文的IntSparse-GCN將錯(cuò)誤識(shí)別的次數(shù)減少到1,識(shí)別正確個(gè)數(shù)明顯增多。 圖8 Northwestern-UCLA分類(lèi)的混淆矩陣Fig.8 Confusion matrix for Northwestern-UCLA classification ((a) confusion matrix of Shift-GCN; (b) confusion matrix of IntSparse-GCN) 本文算法與先進(jìn)算法的對(duì)比分析結(jié)果如圖9所示。可以看出,本文算法在Northwestern-UCLA數(shù)據(jù)集上的精度提高最為明顯,在NTU RGB+D數(shù)據(jù)集的joint和bone兩個(gè)流上也有較明顯的提高。 圖9 本文算法與先進(jìn)算法在不同數(shù)據(jù)集上的對(duì)比分析結(jié)果Fig.9 The results of comparison and analysis among the state-of-the-art algorithms and ours on different datasets((a) Northwestern-UCLA dataset; (b) NTU RGB+D dataset) 針對(duì)GCN網(wǎng)絡(luò)較高的計(jì)算復(fù)雜度及Shift-GCN的特征冗余問(wèn)題,本文從兩個(gè)方面對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化,主要貢獻(xiàn)及結(jié)論如下: 1)提出整數(shù)倍稀疏shift網(wǎng)絡(luò)IntSparse-GCN。引入基于通道整數(shù)倍的空間shift算法,將移出通道部分的位置置0,使得特征通道中接近一半的特征值為0。這樣的特征矩陣是具有強(qiáng)規(guī)律性的稀疏特征矩陣,不但提高了網(wǎng)絡(luò)精度,還為進(jìn)一步的模型剪枝優(yōu)化提供了可能性。 2)對(duì)Shift-GCN中的mask掩膜進(jìn)行研究分析,發(fā)現(xiàn)80%以上的參數(shù)都未起到注意力的作用。提出了自適應(yīng)mask掩膜獲取方法,不但提高了速度,精度也有所提升。 3)與現(xiàn)有一些經(jīng)典的行為識(shí)別網(wǎng)絡(luò)及Shift-GCN網(wǎng)絡(luò)的對(duì)比實(shí)驗(yàn)表明,本文網(wǎng)絡(luò)不但在各個(gè)流的性能上都有所提升,而且本文改進(jìn)后得到的強(qiáng)稀疏性特征矩陣為模型速度的進(jìn)一步提升提供了可能性。 雖然本文方法從兩方面對(duì)Shift-GCN網(wǎng)絡(luò)進(jìn)行了優(yōu)化,提高了識(shí)別精度,但通過(guò)混淆矩陣等實(shí)驗(yàn)發(fā)現(xiàn),還是存在一定程度的錯(cuò)分及誤分,主要是有一些類(lèi)別的骨架信息不太準(zhǔn)確,并且數(shù)據(jù)集中有一些非常相似的行為。因此,未來(lái)將嘗試通過(guò)注意力機(jī)制等多種手段使相似行為能更好地區(qū)分,并利用特征矩陣的稀疏性對(duì)網(wǎng)絡(luò)進(jìn)行剪枝及量化,使網(wǎng)絡(luò)能夠移植到邊緣計(jì)算設(shè)備上,優(yōu)化后的網(wǎng)絡(luò)在能源節(jié)約、信息安全和計(jì)算效率等方面將有較大的改善。3 實(shí) 驗(yàn)
3.1 數(shù)據(jù)集和評(píng)估指標(biāo)
3.2 消融實(shí)驗(yàn)
3.3 與其他算法的對(duì)比分析
3.4 算法效果可視化
4 結(jié) 論