牛為華,翟瑞冰
(1.華北電力大學計算機系,河北 保定 071003;2.華北電力大學復雜能源系統(tǒng)智能計算教育部工程研究中心,河北 保定 071003)
視頻人體行為識別研究是近些年圖像識別領域的一個熱門研究方向,同時也在社會各個行業(yè)得到了廣泛應用,比如電廠工人規(guī)范化行為監(jiān)控、智能醫(yī)療方面的AI康復訓練等。相比較單幅圖像的行為識別,基于視頻的人體行為識別技術是在其基礎上加入了人體行為時序信息,使得識別的準確率得到提升。但是,由于人體運動時背景的復雜性和多變性、視頻圖像在不同視角的差異性,以及存在遮擋抖動等客觀因素的影響,該技術仍有很大的研究空間[1]。
視頻分類領域發(fā)展至今,基于深度網絡的視頻人體行為識別研究方向由基于2D卷積的循環(huán)神經網絡RNN(Recurrent Neural Network)、雙流卷積神經網絡Two-Stream CNN(Convolutional Neural Network)向3D卷積神經網絡3D CNN轉變。起初,在RNN發(fā)展過程中衍生了許多具有針對性的變體,比如長短期記憶神經網絡LSTM(Long Short-Term Memory)。Liu等[2]在LSTM中加入了新的門控機制來保證順序輸入數據的可靠性,同時調整存儲在記憶單元中的長期上下文信息的更新效果,以處理3D數據中的噪聲和遮擋問題。Zhang等[3]設計了一個具有LSTM架構的自適應循環(huán)神經網絡,使網絡本身能夠在一端到另一端之間尋找最合適的觀察視點,當一個行為發(fā)生時可以自動調節(jié)觀察視點。Meng等[4]提出了一種可解釋的、易于插入的視頻識別時空注意機制,以解決視頻的信息冗余問題。在這個階段,Simonyan等[5]提出了雙流卷積網絡并用于視頻人體動作識別。之后,Ye等[6]提出將LSTM與基于RGB和光流的雙流卷積網絡結合起來,采用適當的融合位置和融合方法使模型達到最佳性能水平。
以上2種網絡架構大多是使用2D卷積神經網絡進行研究。針對視頻人體行為的時空特征,使用3D卷積似乎能更好地表達。近些年來,隨著對3D卷積的不斷研究,3D CNN在動作識別領域的性能水平有了顯著提高。3D卷積最早在2013年被提出并用于行為識別,Ji等[7]基于3D卷積在時間和空間3個維度獲取特征,實現(xiàn)了利用3D卷積進行人體行為識別的方法。后經發(fā)展,C3D(Con-volutional 3D)作為一個通用的網絡被提出來[8]。2018年,Hara等[9]通過實驗研究發(fā)現(xiàn),多個3D CNN需要由大量的標簽視頻來優(yōu)化3D內核,才能使其發(fā)揮出更好的效果。同時,該文獻在ResNet結構中引入多個3D CNN,3D ResNet(Residual Network)開始進入人們的視線。但是,目前傳統(tǒng)的多3D CNN方法雖然可以獲取時序信息,卻需要大規(guī)模數據集預訓練的支撐,并且,傳統(tǒng)的3D卷積神經網絡泛化性能差,相比2D卷積,計算量增加、內存占用更大,進而限制了網絡深度,無法獲取更加豐富、抽象的特征。
針對以上現(xiàn)有方法存在的問題,本文提出一種基于改進3D ResNet的視頻人體行為識別方法。該方法使用3D ResNet-50作為主干網絡,將3D ResNet-50內的較大卷積核拆分為2個非對稱卷積核的串聯(lián);并在改進網絡的平均池化層之后加入CBR(Convolution-Batch normalization-ReLU)模塊,對行為特征進行更深入和更充分的提取和分析。連續(xù)的視頻圖像數據輸入網絡,先經過2次3D卷積進行時間和空間上的3D特征提取,再通過4個基礎模塊Layer對特征進行進一步的分析和處理,之后連接自適應全局平均池化層和CBR模塊,再將輸出數據展為一維并在全連接層FC(Fully Connected layers)進行特征映射。該改進方法既提高了視頻人體行為識別的準確率,又優(yōu)化了網絡的泛化能力,且能夠克服識別過程中的遮擋、光線、相似人體干擾等問題。
傳統(tǒng)的2D卷積輸入數據為單幀圖像,內部核心是2D卷積核(i×i)。由于2D卷積的卷積計算只涉及空間維度,即以單幀圖像的高度和寬度為維度進行計算,所以當待處理問題涉及時序信息時會在很大程度上由于丟失時序信息而無法進行精確分類[10]。在3D卷積中,輸入數據是多幀連續(xù)的圖像。在計算時,3D卷積將2D卷積的卷積核由i×i改進為i×i×i的形式,這也是3D卷積同2D卷積的本質區(qū)別。多個視頻連續(xù)幀按照時序依次通過3D卷積層進行計算,即獲得了具備時序性的運動特征信息。整個計算過程如式(1)所示[11]:
(1)
3D ResNet網絡的內部卷積核采用3D卷積,其網絡結構同2D ResNet網絡的類似,由一個個基礎模塊Layer構成,這些Layer內部又包含若干殘差塊。殘差塊按照結構的不同分為2類:BasicBlock和Bottleneck[12]。殘差塊的核心為殘差結構,即每隔幾層卷積增加一個Skip-Layer。在傳統(tǒng)神經網絡每層順序連接的基礎上,Skip-Layer會將殘差塊的頂部連接到塊中最后一個ReLU激活函數之前的網絡層,即輸入數據不僅順序通過網絡,同時還會經歷一次跳躍連接(Skip Connection)。
3D ResNet-18和3D ResNet-34網絡采BasicBlock殘差塊。BasicBlock[13]由2個3×3×3卷積層組成,每個卷積層之后是批歸一化BN(Batch Normalization)層以及ReLU激活函數層。BasicBlock結構如圖1所示。
Figure 1 Structure of Basicblock
若想加深網絡深度以處理更復雜的問題,則使用另一種殘差塊——Bottleneck[13],比如3D ResNet-50網絡、3D ResNet-101網絡等。更深的網絡對顯存和算力有更高的要求,在算力有限的情況下,深層網絡中的殘差塊應當減少算力消耗,因此在Bottleneck中會使用2個1×1×1卷積層和1個3×3×3卷積層[14]。該類卷積層的優(yōu)勢是可以在更深的網絡中用較小的參數量處理通道數很大的輸入數據。深層次的3D殘差網絡更適合處理具備時序信息的人體行為識別問題[15]。Bottleneck結構如圖2所示。
Figure 2 Structure of Bottleneck
基于3D ResNet在處理人體行為識別問題中的優(yōu)勢,本文在此網絡基礎上提出了一種基于改進3D ResNet的視頻人體行為識別方法。該方法使用3D ResNet-50作為主干網絡,首先結合非對稱卷積的思想對網絡中的較大3D卷積核進行拆分;其次構建CBR模塊,置于網絡的最大池化層之后。該方法的整體網絡結構如圖3所示,其中,A模塊指網絡中的若干對3D非對稱卷積串聯(lián)的結構,包括用于特征提取的1×7×7卷積層和7×1×1卷積層的串聯(lián)以及各Layer內1×3×3卷積層和3×1×1卷積層的串聯(lián)。
Figure 3 Structure of improved 3D ResNet
本文方法所提出的改進3D ResNet網絡結構包含4個基礎模塊Layer,每個Layer內包含若干個Bottleneck。Bottleneck內部具體結構如圖4所示。
Figure 4 Structure of improved Bottleneck
本文方法對主干網絡3D ResNet-50的具體改進如下:
(1)對網絡中的大卷積核進行拆分。首先,將用于特征提取的7×7×7卷積層改為1個1×7×7卷積層和1個7×1×1卷積層的串聯(lián);其次,將Bottleneck中3×3×3卷積層改為1個1×3×3卷積層和1個3×1×1卷積層的串聯(lián)。
(2)在模型的全連接層(FC)之前插入CBR模塊。CBR模塊包括1層1×1×1卷積(Convolution,Conv)、1層BN和1層ReLU激活函數。
改進的3D ResNet網絡結構的內部參數設置具體如下:首先,該網絡結構的輸入數據為RGB類型,輸入尺寸為[3,16,112,112]。
其次,該網絡對輸入的連續(xù)多幀視頻圖像進行時間和空間上的3D特征提取,依次進行2次3D卷積、必要的BN、ReLU和1次全局最大池化操作,其中卷積和池化的具體參數設置如下所示:
(1)第1次卷積采用大小為1×7×7的卷積核,卷積核數目為110,步長為[2,1,1],Padding為[0,3,3],輸出RGB網絡尺寸為[110,8,112,112];
(2)第2次卷積采用大小為7×1×1的卷積核,卷積核數目為64,步長為[1,2,2],Padding為[3,0,0],輸出RGB網絡尺寸為[64,8,56,56];
(3)最大池化的卷積核大小為3×3×3,步長為[2,2,2],Padding為[1,1,1],輸出RGB網絡尺寸為[64,4,28,28]。
提取到的特征數據會通過4個Layer進行進一步分析和處理。對于任一Layer內的首個Bottleneck,會通過跳躍連接對獲得的特征進行下采樣(Downsample),而剩下的Bottleneck只進行順序連接,不會通過跳躍連接。每個Bottleneck包含若干個必要的BN層和ReLU層。針對網絡中的下采樣部分,第1個基礎模塊Layer1內的首個Bottleneck內置1個步長為[1,1,1]的1×1×1卷積層和1個BN層,余下基礎模塊內的首個Bottleneck內置1個步長為[2,2,2]的1×1×1卷積層和1個BN層。此外,每個Layer內的Bottleneck在順序連接路徑上會依次經過:
(1)1次1×1×1卷積操作:步長為[1,1,1],Padding為[0,0,0],輸出RGB網絡尺寸為[256,4,28,28];
(2)1次1×3×3卷積操作:步長為[1,1,1],Padding為[0,1,1],輸出RGB網絡尺寸為[512,2,14,14];
(3)1次3×1×1卷積操作:步長為[1,1,1],Padding為[1,0,0],輸出RGB網絡尺寸為[1 024,1,7,7];
(4)1次1×1×1卷積操作:步長為[1,1,1],Padding為[0,0,0],輸出RGB網絡尺寸為[2 048,1,4,4]。
上述4次卷積操作中的具體卷積核數目如表1所示,表內Kernel Num列數據代表Layer中每一層卷積的卷積核數目,其中每個Layer內的Bottleneck包含3個大小為1×1×1的卷積層,對應3個不同的卷積核數目。
Table 1 Internal parameters of each layer of the model
經過4個Layer之后的輸出數據會進行一次自適應全局平均池化操作,然后進入CBR模塊。CBR模塊包含1個卷積核大小為1×1×1的卷積層,該卷積層步長為[1,1,1],Padding為[0,0,0],除此之外還包含1個BN層和1個ReLU層。CBR模塊的輸出RGB網絡尺寸為[2 048,1,1,1]。
最后將CBR模塊的輸出數據展為一維并經過全連接層FC進行特征映射,輸入大小為2 048,輸出大小為101,輸出即為類別數量。
UCF101數據集是人體行為識別研究領域的一個公用數據集。該數據集主要從視頻網站獲取特定類別的人體行為視頻,共分為101個動作類別,比如擊劍、爬行、打籃球等。UCF101數據集規(guī)定每一類行為都由25個實例構成,且每個實例有4~7組視頻數據[16],因此該數據集共有13 320段視頻作為人體行為實例。UCF101數據集因其視頻內容都是人體實例在無限制和無預先排練的前提下,在真實環(huán)境中隨機拍攝的網絡視頻,在人體外觀、視頻背景、動作幅度和表現(xiàn)形式方面具有很大的多樣性[17]。另外在攝像機類型、視頻光線、視頻分辨率等方面也存在較大的差異。
在數據預處理階段,首先,將視頻數據集劃分為訓練集和測試集,劃分結果如表2所示。劃分方式采用UCF101 Train TestSplits Recognition Task內的testlist01方式。其次,將數據集內的每個視頻轉換為圖像序列,按照原始幀率每一幀提取一幅視頻圖像,并將圖像分辨率大小固定為240×240。接著,保持圖像中心點不變,對圖像進行裁剪,Sample size設為112。采用這種數據預處理方式可以最大程度地保留原始數據的信息,以便對數據進行更充分的特征提取。按照一定的規(guī)律對這些圖像幀序列進行間隔抽取,最終得到的輸入數據大小可表示為[batch size,3,16,112,112],其中batch size為批處理大小;3為圖像通道個數;16表示一次處理的連續(xù)且不重疊的圖像幀數;而圖像大小為112×112。
Table 2 Partition results of UCF101 dataset
本文實驗采用深度學習框架PyTorch 1.1.0版本作為實現(xiàn)平臺,GPU規(guī)格為NVIDIA?Tesla?P40 24 GB。模型訓練超參數設置如表3所示。
Table 3 Super parameters setting of model training
為驗證本文方法所提出的非對稱卷積A模塊和CBR模塊在3D ResNet網絡中的改進能提高人體行為識別的準確率,進行了4組消融實驗。在超參數和實驗環(huán)境不變的情況下,分別使用3D ResNet-50、3D ResNet-50+A模塊、3D ResNet-50+CBR模塊和本文方法所提出的改進模型,即3D ResNet-50+A模塊+CBR模塊在UCF101數據集上進行訓練和測試。本文實驗對各個網絡從頭開始進行訓練,即無預訓練。
圖5和圖6為200輪迭代過程中各個模型每一輪測試時的Top1準確率、Top5準確率變化情況。Top1準確率和Top5準確率是公認的圖像分類評價標準,具有普遍性和可參照性。從圖5和圖6可以看出,在200次迭代中,分別結合A模塊和CBR模塊后原始3D ResNet模型均有準確率上的提升,而融合A模塊和CBR模塊的改進方式,不但增強了卷積層對圖像幀時序信息的特征提取,也加深了網絡層數,進而可以對特征進行更充分的分析,所以其準確率提升最大。
Figure 5 Change of Top1 accuracy rate in 200 iterations
Figure 6 Change of Top5 accuracy rate in 200 iterations
表4為消融實驗中各組模型在200次迭代后的Top1準確率和Top5準確率。本文方法在200次迭代后的Top1準確率趨于50%左右,Top5準確率趨于75%左右。相比較原始3D ResNet模型,本文方法在Top1準確率上高出了4.03%,Top5準確率上高出了4.99%。
Table 4 Comparison of accuracy of Top1 and Top5 of each method
損失函數Loss越小,模型的魯棒性就越好。圖7為200輪迭代過程中各個模型每一輪Loss數值變化的情形。從圖7可以明顯看出,在迭代過程中,3D ResNet-50+A模塊+CBR模塊的Loss數值遠遠小于原始3D ResNet的,也小于其它3組實驗的。在迭代100輪后,Loss值趨于平穩(wěn)。此時3D ResNet-50+A模塊+CBR模塊的Loss值比原始3D ResNet的低大約0.5,表明與原始網絡相比,本文方法魯棒性更好,泛化能力更強,可以有效解決人體行為識別過程中因數據集的復雜背景和遮擋等造成的訓練不充分問題。
Figure 7 Loss value change in 200 iterations
為進一步研究人體行為識別過程中因數據集的復雜背景和遮擋等而造成的訓練不充分問題,在UCF101數據集上選取了部分動作類別的混淆矩陣,如圖8所示,主要研究在光線、遮擋、復雜背景和相似人體干擾情況下,本文方法對人體行為識別的效果。由圖8可以看出,本文方法對具有明顯遮擋的行為(沖浪)識別效果突出,對光線影響較大的行為(擊鼓、蕩秋千)和相似人體干擾(投籃、扣球)的行為識別效果相對良好,但對復雜背景(臥推)的識別稍顯不足,因其背景的復雜性,很容易將其識別為具有強烈光線變化的擊鼓行為。
Figure 8 Confusion matrix of UCF101 dataset
將本文方法與 C3D[18]、I3D(two-stream Inflated 3D ConvNets)[19]、3D ResNet、3D DenseNet[20]以及將通道注意力機制SE(Squeeze-and-Excitation)[21]與3D ResNet結合的 SE-ResNet在UCF101數據集上進行比較,實驗結果如表5所示。
Table 5 Comparison of experimental results
文獻[18]中的C3D是用于人體行為識別的一個通用網絡,是人體識別領域3D研究的基礎。文獻[19]中的I3D網絡將膨脹卷積應用到視頻研究領域。文獻[20]中的3D DenseNet是在3D ResNet基礎上的改進網絡,其明確區(qū)分了添加到網絡中的信息和保存的信息,具有更好的參數效率。文獻[21]提出了通道注意力機制并將其作為一個模塊插入到網絡中。從表5可看出,本文所提出的在3D ResNet基礎上,融合非對稱卷積A模塊和CBR模塊的視頻人體行為識別方法準確率更高。相比較主流方法C3D、I3D和3D ResNet,其Top1準確率分別提高了5.10%,0.46%和4.03%,Top5準確率分別提高了6.82%,0.76%和4.99%。相比較基于3D ResNet的改進網絡3D DenseNet和3D SE-ResNet,準確率也均有提高。
本文提出了一種基于3D ResNet,融合非對稱卷積A模塊和CBR模塊的視頻人體行為識別方法。首先,將3D ResNet網絡中卷積層拆分為一個卷積層和一個卷積層的串聯(lián)對圖像幀序列進行下采樣獲取圖像特征;然后,將Bottleneck中的卷積層拆分為一個卷積層和一個卷積層的串聯(lián),以減少資源的消耗并對圖像特征融合時空信息進行處理分析;最后,通過增加CBR模塊來加深網絡層數,以獲取更復雜的特征。實驗結果表明,本文提出的視頻人體行為識別方法能夠提高識別準確率,且有較好的泛化能力,能夠克服光線、遮擋、相似人體干擾等識別中的問題,但對復雜背景的處理還需進一步研究。在接下來的工作中,要考慮如何弱化復雜背景的干擾;考慮重定位人體位置、縮小運動區(qū)域,或者模糊背景等方法;同時還考慮在無預訓練、小規(guī)模的數據集上如何更進一步地提升準確率、減少模型參數量、降低訓練時間。