郝偉,呂學強,韓晶
(1.北京信息科技大學 機電系統(tǒng)測控北京市重點實驗室,北京 100192;2.北京信息科技大學 網(wǎng)絡文化與數(shù)字傳播北京市重點實驗室,北京 100101)
視頻動作識別是機器視覺領域重要的研究方向,在人機交互、智能機器人、無人駕駛、健康監(jiān)控等領域發(fā)揮著重要作用。相對于圖像,視頻增加了時間維度,可以看作是在時間上連續(xù)的圖像集合。作為2D卷積在3D場景的自然擴展,3D卷積被廣泛應用于視頻動作識別任務,如早期的C3D[1]和I3D[2]等方法。X3D[3]、MoViNets[4]對輕量化的3D卷積網(wǎng)絡進行了探索,取得了令人矚目的效果。但3D卷積核在處理視頻數(shù)據(jù)時,是將局部時空信息耦合在一起進行特征表示,無法有效地對目標的空間特征在整段視頻時間跨度上的變化進行建模。Feichtenhofer等[5]從靈長類動物的眼睛對運動信息的捕捉方式上獲得啟發(fā),提出快慢分支建模的方法,對時空特征的提取過程進行解耦,最后進行時空特征融合,證明了時空信息解耦的重要性。但面向視頻的動作識別是基于一段時間內(nèi)動作的變化進行動作判別,在做出最終的判斷前,大腦對已接收的時空融合信息進行了預判,即最終用于動作識別的信息是多次時空特征融合的結(jié)果。
基于該假設,本文在輕量化的3D卷積網(wǎng)絡MoViNetA0[4]的基礎上,對其主要組件進行時空解耦設計,提出時空解耦的卷積神經(jīng)網(wǎng)絡(spatio-temporal decoupled convolutional neural network,STDNet),通過級聯(lián)時空解耦模塊,模擬大腦對視頻動作的識別過程。同時,考慮到相鄰幀的空間信息具有高度相似性,提出了一種時間注意力模塊,對不同幀的特征賦予不同的重要性,減少時間方向上冗余的空間信息的影響。在公開數(shù)據(jù)集HMDB51[6]和UCF101[7]上的實驗證明了本文方法的有效性。
STDNet整體結(jié)構(gòu)如圖1所示。MoViNetA0從輸入端到輸出端可劃分為瓶頸段、主干、頭部三部分。本文對MoViNetA0的瓶頸段和主干部分進行了改進。首先,在瓶頸段的3D卷積殘差模塊中插入時間注意力模塊,形成時間注意力殘差塊;其次,將主干的4個模塊替換為本文提出的時空解耦模塊,并保持相同的網(wǎng)絡深度和輸入輸出尺寸。其中,時空解耦模塊中不使用時間注意力模塊。時間注意力模塊本質(zhì)上是對輸入視頻中冗余空間信息的抑制,如在時空解耦模塊中再次使用時間注意力模塊,會造成空間信息的過度損失,不利于行為識別。頭部仍沿用MoViNetA0的結(jié)構(gòu)。
圖1 STDNet結(jié)構(gòu)示意圖Fig.1 Structure diagram of STDNet
3D卷積殘差塊是MoViNetA0的基礎組件,其中3D 壓縮和激勵(squeeze-and-excitation,SE)模塊[8]在計算通道注意力時,所有幀的空間信息被壓縮在一起。然而視頻數(shù)據(jù)幀間空間信息的相似度與幀間距離成反比,相鄰幀空間信息相似度較高,存在信息冗余,距離較遠的幀在通道方向的重要性也有所不同,3D池化操作忽略了這種差異性。本文提出時間注意力模塊,進行幀間注意力計算,將時間注意力模塊插入3D卷積殘差塊中,與3D SE模塊串聯(lián),并在3D SE模塊前執(zhí)行,構(gòu)成STDNet基礎組件之一的時間注意力殘差塊,如圖2所示。
圖2 時間注意力殘差塊Fig.2 Temporal attention residual block
本文以圖像處理中使用的卷積塊注意力模塊(convolutional block attention module,CBAM)[9]為基礎,將其擴展到視頻處理任務中,設計了時間注意力模塊(time attention module,TAM),在時間方向計算注意力分數(shù),為輸入視頻的每一幀賦予不同的權(quán)重,抑制冗余空間信息的表達。如圖3所示,輸入特征圖首先經(jīng)過通道轉(zhuǎn)換,將時間維度和通道維度置換,形狀由B×c×T×h×w變?yōu)锽×T×c×h×w,其中B為批大小,c為特征圖通道數(shù),T為幀數(shù),h為特征圖的高度,w為寬度。其次,分別經(jīng)3D平均池化和3D最大池化操作壓縮信息,兩種池化后的信息經(jīng)權(quán)重共享的3D SE模塊計算注意力分數(shù),并相加,之后經(jīng)Sigmoid操作將注意力分數(shù)轉(zhuǎn)換到0~1的區(qū)間內(nèi),經(jīng)通道轉(zhuǎn)換操作還原時間和通道維度,最后與原始輸入數(shù)據(jù)相乘后輸出。
圖3 時間注意力模塊Fig.3 Time attention module
常規(guī)3D卷積將局部時空信息耦合,得到新的時空特征。SlowFast網(wǎng)絡[5]根據(jù)靈長類動物的眼睛對運動信息的捕捉機理提出快慢分支模型,證明了實現(xiàn)時空特征提取過程解耦的重要性。但SlowFast僅在分類前進行了一次時空特征融合,不符合大腦對視頻的動作識別過程。本文提出時空解耦模塊(spatio-temporal decoupling module,STDM),在STDM內(nèi)部完成時空特征解耦提取以及時空特征融合,多個時空解耦模塊串聯(lián),實現(xiàn)時空特征的多級融合,如圖4所示。對于輸入特征圖X,首先對其進行2倍空間下采樣操作,其中卷積核尺寸kt=5,ks=3,得到時空融合特征Fds:
圖4 時空解耦模塊Fig.4 Spatio-temporal decoupling module
Fds=f(X)
(1)
式中:f(·)表示基于3D卷積的下采樣操作。之后分為2條并行分支,分別沿時間方向和空間方向進行特征表示,最后經(jīng)過加權(quán)求和得到融合特征Ffuse:
(2)
本文使用4個STDM串聯(lián)的方式構(gòu)建網(wǎng)絡的主干部分,完成對輸入數(shù)據(jù)的逐級特征提取。其中4個STDM共享相同的權(quán)重參數(shù)α,各STDM中的時空特征提取操作層數(shù)n依次設為2,2,3,3。各層3D卷積時空方向卷積核尺寸kt、ks如表1所示。相對于SlowFast[5]的末端時空特征融合方式,本文通過STDM的串聯(lián),在特征提取的中間過程實現(xiàn)了多次時空特征融合,且時空特征的提取過程依然是解耦的,更符合大腦對動作的識別過程。
表1 STDNet結(jié)構(gòu)Table 1 Structure of STDNet
在HMDB51[6]和UCF101[7]數(shù)據(jù)集上對本文提出的STDM模塊和TAM模塊的有效性進行驗證。在HMDB51數(shù)據(jù)集上對STDNet的動作識別準確率、參數(shù)量和計算量指標進行評估。實驗設計上,首先對提出的STDM模塊和TAM模塊的有效性進行獨立驗證,之后對STDM和TAM的組合方式進行探索,最后與4種輕量的3D卷積方法進行比較。
HMDB51數(shù)據(jù)集:共51種動作類別,6 841條視頻,分辨率為320像素×240像素,幀率為30 幀/s。該數(shù)據(jù)集有3種訓練集和測試集的劃分,本文采用第一種劃分進行實驗。在數(shù)據(jù)預處理中,對每條視頻重采樣若干子片段,其中重采樣幀率r為5 幀/s,原幀率為r0時,采樣步長p由式(3)確定:
(3)
片段間距設為2幀,每個片段幀數(shù)為16,對視頻長度不滿足重采樣的最小幀數(shù)要求的樣本進行舍棄處理。
UCF101數(shù)據(jù)集:共101種動作類別,13 320條視頻,分辨率為320像素×240像素,幀率為25幀/s或29幀/s。訓練集和測試集同樣采用官方提供的第一種劃分。由于數(shù)據(jù)量較大,在數(shù)據(jù)預處理中,對每條視頻重采樣1個子片段,其他設置同HMDB51數(shù)據(jù)集一致。
實驗細節(jié):本文實驗均在1塊Tesla V100 GPU上進行,批大小設為16,使用AdamW優(yōu)化器,相關(guān)參數(shù)取默認值,使用交叉熵損失函數(shù),最大訓練輪數(shù)設為100。模型訓練過程中,使用隨機水平翻轉(zhuǎn)、縮放、隨機裁剪等數(shù)據(jù)增強方法,推理時不進行隨機水平翻轉(zhuǎn)。為了防止過擬合,設置早停機制,以模型在驗證集上的分類準確率為判斷依據(jù)。其中對HMDB51數(shù)據(jù)集上的實驗,容忍度設為20,即連續(xù)訓練20輪模型的分類準確率沒有提升,則停止訓練,保留最高準確率的訓練結(jié)果。對UCF101數(shù)據(jù)集上的實驗,容忍度設為10。同時為確保實驗結(jié)果的可重復性,設置隨機數(shù)種子為97。使用余弦退火的學習率更新方法,初始學習率設為10-5,最小學習率設為10-10,僅設置1個循環(huán)周期。
STDNet以MoViNetA0為基礎模型進行構(gòu)建,其中主干部分由4個模塊構(gòu)成,本文對STDM的位置進行了實驗探索。實驗時由深到淺,依次從模塊4到模塊1疊加使用STDM,共形成4種可選方案,如圖5(b)、(c)、(d)、(e)所示,圖5(a)為基礎模型的結(jié)構(gòu)。
圖5 4種STDM使用位置方案示意圖Fig.5 Schematic diagram of the 4 STDM usage location scenarios
實驗結(jié)果如圖6所示,隨著STDM從網(wǎng)絡深層到淺層的疊加使用,兩種數(shù)據(jù)集上網(wǎng)絡的準確率均呈現(xiàn)逐漸提升的趨勢,且均優(yōu)于基礎模型,證明了時空解耦模塊的有效性。當4個模塊均替換為STDM時,網(wǎng)絡的動作識別準確率最高。因此,本文選擇該方案4作為STDNet主干部分的最終形態(tài)。后續(xù)對TAM與STDM組合模式探索實驗,也將在該方案的基礎上進行。
圖6 STDM使用位置探索Fig.6 STDM Usage Location Exploration
TAM為即插即用的模塊,本文將其插入3D卷積殘差塊中,構(gòu)成新的時間注意力殘差塊。實驗時,將MoViNet系列最小的3個網(wǎng)絡MoViNetA0、MoViNetA1、MoViNetA2中的3D卷積殘差塊均替換為時間注意力殘差塊。該系列其他網(wǎng)絡在訓練時需求的顯存較大,1塊Tesla V100 GPU無法滿足實驗需求,因此本文僅在最小的3個網(wǎng)絡上進行實驗。如表2所示,使用TAM后,3個網(wǎng)絡的準確率均有提升,證明了本文提出的TAM的有效性。
表2 有無TAM的準確率對比實驗Table 2 Accuracy comparative experiment with and without TAM %
TAM作為一種即插即用的模塊,可以嵌入任意一層3D卷積殘差塊,因此也可以插入STDM模塊中。本文設計了3種TAM與STDM的組合方式,如圖7所示。
圖7 三種TAM與STDM結(jié)合的方式Fig.7 Three ways to combine TAM with STDM
STDM由若干層3D卷積殘差塊構(gòu)成,其中第一層進行2倍空間下采樣,之后左右兩條分支分別沿時間和空間方向提取特征,一種自然的組合方式就是將TAM插入第一層時空耦合的3D卷積殘差塊以及空間分支的3D卷積殘差塊中,以緩解其時間方向上的信息冗余,如圖7方案1所示。第二種結(jié)合方式是只在STDM的第一層3D卷積殘差塊中使用TAM,維持時空信息解耦的特性,如圖7方案2所示。第三種結(jié)合方式是不在STDM中使用TAM,僅在網(wǎng)絡中非STDM的部分使用TAM,如圖7方案3所示。
3種方案的準確率如表3所示,從表中可以看出,方案3的結(jié)合方式具有更好的性能提升效果。TAM對不同幀的特征圖進行重要性區(qū)分,增強空間信息具有區(qū)分性的幀的特征響應,抑制冗余的幀的特征響應。而在STDM中,時空信息被單獨提取,在空間信息提取分支中,卷積核在時間方向的尺寸為1,即幀間共享相同的卷積核,空間分支中使用TAM可以增加幀間空間信息的差異性,相同的卷積核可以提取到更豐富的抽象特征,因此方案1較方案2效果更好。但網(wǎng)絡在瓶頸段已經(jīng)對輸入數(shù)據(jù)的冗余空間信息進行抑制,在時空解耦模塊的第一層卷積塊中再使用TAM,會造成一定的空間信息丟失,相當于減少了視頻幀數(shù),不利于視頻的行為識別,因此方案3相對于方案1具有更好的表現(xiàn)。本文選擇方案3的結(jié)合方式作為STDNet的最終形態(tài)。
表3 TAM與STDM結(jié)合方式的準確率對比Table 3 Comparison of the accuracy of the combined TAM and STDM %
本文在HMDB51數(shù)據(jù)集上與現(xiàn)有的輕量化動作識別方法進行對比,以準確率為評價指標。為了確保對比實驗的公平性,在不使用預訓練權(quán)重的條件下,采用相同的訓練策略進行訓練和驗證,輸入數(shù)據(jù)的幀數(shù)統(tǒng)一設為16幀。其中對比方法SlowFast[5]、X3D[3]、I3D[2]使用mmaction2工具箱的代碼實現(xiàn),MoViNetA0~A2網(wǎng)絡使用第三方的Pytorch實現(xiàn)。實驗結(jié)果如表4所示,STDNet不僅在輕量化方面具有一定的優(yōu)勢,同時具有更好的動作識別準確性,相對于基礎模型MoViNetA0,STDNet的準確率指標提升了2.66百分點,且高于比MoViNetA0體量更大的MoViNetA1和MoViNetA2。
I3D、X3D-M、MoViNetA0~A2是常規(guī)的3D卷積模型,雖然在模型輕量化方面有了顯著的改進,但動作識別的準確性仍受3D卷積時空耦合特性的限制,沒有明顯的提升。SlowFast的快慢分支結(jié)構(gòu)實現(xiàn)了時空特征的解耦,并在末端進行特征融合。為了平衡快慢分支的速度,快分支對輸入數(shù)據(jù)在時間維度進行重采樣,只利用了部分幀的信息,雖然時間維度的空間信息存在冗余,但對于輸入幀數(shù)較少的場景,如在線動作識別,快分支不能充分利用輸入數(shù)據(jù)的信息,其動作識別準確性也會受到影響。而本文提出STDNet通過時間注意力模塊,充分利用輸入數(shù)據(jù)的信息,同時對冗余的空間信息進行抑制。同時由串聯(lián)的時空解耦模塊進行逐級時空解耦的特征提取和融合,更符合人的大腦對動作的識別過程,因此也具有更好的動作識別準確率。
針對視頻動作識別任務,本文以實時視頻理解模型MoViNetA0為基礎模型,提出一種時空解耦的卷積神經(jīng)網(wǎng)絡STDNet,對時空特征的提取過程進行解耦,較常規(guī)時空特征耦合的3D卷積網(wǎng)絡,擁有更好的動作識別準確性。STDNet的網(wǎng)絡結(jié)構(gòu)分為瓶頸段、主干、頭部三部分。在瓶頸段,本文提出一種即插即用的時間注意力模塊TAM,通過注意力機制抑制冗余的空間信息,同時增強重要的空間信息的表達,為后續(xù)主干部分的特征提取過濾冗余的空間信息;主干部分由4個時空解耦模塊STDM串聯(lián)構(gòu)成,模擬大腦對連續(xù)的時空解耦特征的處理過程。在HMDB51數(shù)據(jù)集上的對比實驗表明,時空解耦的方法較時空耦合的方法有更好的動作識別準確性。
由于MoViNetA0的網(wǎng)絡結(jié)構(gòu)參數(shù)是在給定搜索空間中采用神經(jīng)結(jié)構(gòu)搜集技術(shù)得到的,本文在使用TAM和STDM構(gòu)建STDNet時,沿用了部分MoViNetA0的結(jié)構(gòu)參數(shù),雖然在準確率指標上有顯著的提升,但不一定達到其最優(yōu)狀態(tài),STDNet的網(wǎng)絡結(jié)構(gòu)仍有探索的空間。