黃 敏 尚瑞欣 錢惠敏
視頻人體行為識別研究旨在識別并描述視頻中人體的運動模式并進一步分析行為暗含的情感和目的.此研究在視頻檢索、人機交互、醫(yī)療保健、智能安防等領域具有廣泛的應用前景.隨著深度學習在計算機視覺研究中的發(fā)展,基于深度學習的人體行為識別方法因其良好的泛化性能,逐漸替代基于手工設計特征的人體行為識別方法和基于淺層機器學習的人體行為識別方法[1-2].
隨著視頻傳輸技術的發(fā)展和各類視頻軟件的出現,用于人體行為識別的視頻數據也越來越多,小型、中型、大型和超大型數據集相繼出現.例如,小型數據集HMDB51(Human Motion Database)[3]包含51類行為,視頻量不過萬條;中型數據集UCF101(Uni-versity of Central Florida)[4]包含101類行為,視頻量有1萬多條;大型數據集Kinetics-400[5]包含400類行為及30萬多條視頻;超大型數據集IG-65M[6]、Sports-1M[7]等包含高達百萬級的視頻量.而這些視頻數據中的人體行為的多樣性,如人體的自遮擋和被遮擋、動態(tài)背景、視角和光照變化等,使視頻中的人體行為識別仍面臨諸多挑戰(zhàn).
在基于深度學習的人體行為識別研究中,目前最常用的網絡架構為三維卷積神經網絡(簡稱3D網絡)[8-12]和雙流卷積神經網絡(簡稱雙流網絡)[13-17].3D網絡旨在從三維視頻數據(含有多幀圖像的視頻段)中學習人體行為的特征表示,識別行為類型.但是,隨著視頻數據的增加,往往需要更深的3D網絡學習人體行為的特征表示,從而使網絡因參數量過大而難以訓練.針對此問題,Carreira等[9]提出I3D(Two-Stream Inflated 3D ConvNet),將遷移學習引入模型的預訓練中,在ImageNet數據集[18]上預訓練的二維模型的權重膨脹填充到三維模型中相應的權重位置,使三維卷積網絡無需從頭開始訓練,降低網絡的訓練難度.Qiu等[11]提出P3D(Pseudo-3D Residual Net)網絡,將三維卷積核分解為1個1×3×3的空間卷積核和1個3×1×1的時間卷積核,減少網絡參數量,降低網絡的訓練難度.Tran等[12]提出R(2+1)D(ResNets with (2+1)D Convolutions),將3D卷積核進行時空分解,為了保證模型的表征能力,引入一個超參數,使分解前后的網絡參數量不變,實驗證實即使參數量相同,時空分解后的R(2+1)D比R3D(3D ResNets)[8]更容易訓練.
在早期人體行為視頻數據集不足時,學者們已開始廣泛研究雙流網絡.雙流網絡旨在從視頻數據的兩個部分(即空間流和時間流)中分別實現人體行為的表示學習和識別,并融合兩部分的結果,實現最終的人體行為識別.研究多關注于網絡結構、網絡輸入和融合方式的改進.I3D[9]采用淺層的CNN-M(Medium Convolutional Neural Network)架構[18],將視頻分為時間流和空間流分別進行訓練,再將時間流和空間流在最后一層進行均值融合,得到最終識別結果.Wang等[14]以更深層的VGG-16(Visual Geo-metry Group, VGG)[19]作為雙流網絡的主干網絡.Feichtenhofer等[15]選擇ResNet[15]架構作為主干網絡.Wang等[16]提出以Inception[20]為主干網絡的TSN(Temporal Segment Networks),并證明更深的網絡通常可獲得更高的人體行為識別精度.Feichten-hofer等[17]全面研究雙流網絡的融合方式,發(fā)現在網絡的最后一個卷積層進行特征融合的結果更優(yōu),并將其稱為早期融合.但是,雙流網絡中時間流數據(通常為光流圖像序列)的生成通常需要獨立于雙流網絡提前獲得,一方面使雙流網絡不能實現端到端的訓練和預測,另一方面,由于光流圖像序列的生成帶來巨大的計算開銷,影響雙流網絡的時效性.
針對此問題,學者們相繼提出基于深度學習的光流提取網絡.Dosovitskiy等[21]提出FlowNet(Lear-ning Optical Flow with Convolutional Network),由兩個結構略有不同的子網絡FlowNetS (FlowNet Sim-ple)和FlowNetC(FlowNet Correlation)構成.由于缺乏訓練數據,使用椅子的渲染模型對自然圖像進行分層,生成FlyingChairs數據集.雖然訓練數據缺乏導致FlowNet與傳統(tǒng)方法相比無明顯優(yōu)勢,但被證實采用端到端回歸架構實現光流估計的可能性.Ilg等[22]堆疊多個FlowNet子網絡,提出FlowNet2.0,精度比FlowNet提高近50%.但是,FlowNet2.0的網絡結構較深,參數量較大,預測耗時較長.針對這些問題,Sun等[23]引入金字塔結構,改進FlowNet,提出PWC-Net(CNNs for Optical Flow Using Pyramid, Warping and Cost Volume),模型尺寸僅為FlowNet2.0的1/17,預測速度提高一倍,預測精度更高.但根據文獻[2],在基于雙流架構的人體行為識別研究中,基于PWC-Net的研究并不多.
因此,針對3D網絡和雙流網絡各自的優(yōu)缺點,本文提出結合雙流網絡架構和三維網絡架構的復合型深度神經網絡——雙流-I(2+1)D卷積神經網絡(Two-Stream Network with Improved (2+1)D CNN, TN-I(2+1)D CNN).在雙流架構的時間流子網絡和空間流子網絡部分均采用改進的R(2+1)D卷積神經網絡(Improve R(2+1)D CNN, I(2+1)D CNN),并基于時間流子網絡的PWC-Net實現端到端的人體行為識別.I(2+1)D CNN以34層殘差型結構作為主干網絡,在網絡的所有批規(guī)范化層(BatchNorm, BN)之后添加失活層,應對方差漂移問題.同時,采用Leaky ReLU激活函數,避免神經元權重不更新問題.在網絡訓練過程中,提出基于梯度中心化算法(Gradient Centralization, GC)改進的帶動量的隨機梯度下降算法(Stochastic Gradient Descent with Mo-mentum, SGDM),簡記為GC-SGDM.在不改變網絡結構的情況下進一步提高網絡的泛化性能.
構的復合型深度卷積神經網絡
針對現有3D網絡與雙流網絡的不足,本文提出結合雙流網絡架構和3D網絡架構的復合型深度卷積神經網絡(TN-I(2+1)D CNN).網絡在時間流、空間流子網絡均采用I(2+1)D CNN分別學習人體行為的特征表示,并識別行為類型.最后,融合雙流(時間流、空間流)子網絡的結果,實現人體行為識別.
TN-I(2+1)D CNN結構如圖1所示.具體地,給定一個人體行為視頻并按幀提取視頻,生成RGB圖像序列.然后,RGB圖像序列分別輸入空間流子網絡和時間流子網絡進行識別.最后,采用融合方法實現空間流子網絡和時間流子網絡分類結果的融合.在時間流子網絡部分,RGB圖像序列經由PWC-Net[15],生成光流圖像序列,繼而輸入I(2+1)D CNN,并使用Softmax層預測人體行為的類型.在空間流子網絡部分, RGB圖像序列直接輸入I(2+1)D CNN,也使用Softmax層預測人體行為的類型.
圖1 TN-I(2+1)D CNN結構圖Fig.1 Structure of TN-I(2+1)D CNN
PWC-Net[15]是FlowNet2.0[22]的改進,引入P(Pyramid)、W(Warping)、C(Cost Volume)技術,解決光流提取計算量較大且耗時的問題.其中,P,W,C分別指基于特征金字塔網絡(Feature Pyramid Network, FPN)[24]的多尺度特征提取、扭曲[25]和代價容量計算[26].PWC-Net的網絡結構如圖2所示(以4級特征金字塔為例).
圖2 PWC-Net結構圖Fig.2 Network structure of PWC-Net
PWC-Net將相鄰或間隔N0幀的圖像幀(幀1,幀2)分別送入FPN,提取多尺度特征,獲得各個尺度下的特征圖,使各級代價容量層的輸入特征的維度均不大,故網絡可在逐級提高光流精度的同時保持計算量很小.除此之外,PWC-Net還通過扭曲操作實現對幀2的運動補償,減弱像素點在圖像幀間的形變與位移,克服大位移與運動遮擋對光流計算的影響,進一步提高光流估計的精度.
為了更好地學習行為在時間流和空間流上的演變,在R(2+1)D[7]基礎上,本文提出I(2+1)D CNN,并在雙流網絡的時間流子網絡和空間流子網絡均采用I(2+1)D CNN.具體改進如下.
1)針對較深網絡會在小規(guī)模數據集上產生過擬合的問題,本文采用失活層進行抑制,并就其作用位置進行理論實驗分析,發(fā)現失活層在全連接層之后效果最優(yōu).
2)鑒于R(2+1)D中的ReLU激活函數會引起神經元死亡(梯度恒為0,神經元不更新),本文采用Leaky ReLU避免此問題.
在R(2+1)D基礎上添加失活層的34層I(2+1)D CNN的網絡結構如表1所示.
表1 34層I(2+1)D CNN網絡結構Table 1 Network structure of 34-layer I(2+1)D CNN
下面將進一步對I(2+1)D CNN中失活層作用位置及Leaky ReLU激活函數的使用原因進行理論說明.
1)失活層與BN結合產生方差偏移現象,對失活層作用位置產生影響.I(2+1)D CNN在全連接層之后使用失活層技術抑制小數據集的過擬合問題,但是文獻[20]表明,失活技術與I(2+1)D CNN中使用的BN技術存在沖突,會產生方差偏移現象.具體地,假設網絡中某失活層的輸入為d維特征向量
X=(x1,x2,…,xd),
服從正態(tài)分布N~(0,1),輸出
Y=(y1,y2,…,yd),
輸出Y中的yk與輸入X的元素xk對應,k=1,2,…,d.在網絡訓練時,失活層的輸出為
其中:p為神經元的丟棄率;1/(1-p)為輸入的縮放尺度,使輸出Y在訓練階段和測試階段的期望相同(均為0);ak為符合伯努利分布的隨機變量,滿足
在網絡測試時,失活層不丟棄神經元,即p=0,因此輸出Y等于輸入X.經失活層后,輸出數據在訓練階段和測試階段的方差分別為1/(1-p)和1.與此同時,若在失活層后繼續(xù)使用BN層, 則測試階段的BN層會沿用訓練階段計算得到的方差對測試數據進行歸一化操作.但失活層在訓練階段和測試階段的輸出分布不同,這使得BN 層在訓練時統(tǒng)計的方差和測試時需要的方差不一致,從而產生方差偏移,導致網絡性能的下降.為此,將失活層置于所有BN層之后可避免方差偏移現象.因此,本文在設計I(2+1)D CNN時,將失活層放置在全連接層之后、Softmax層之前.
2)Leaky ReLU激活函數避免神經元死亡.I(2+1)D CNN在conv3_x層中殘差塊的結構如圖3所示.由圖可知,I(2+1)D CNN的激活函數為Leaky ReLU.原始R(2+1)D采用的激活函數是ReLU,表達式如下:
圖3 I(2+1)D CNN的Conv3_x層中的殘差塊結構Fig.3 Residual block structure in Conv3_x of I(2+1)D CNN
當x<0時,ReLU(x)=0,其梯度也為0,這意味著該輸入對應的神經元將永不被更新(神經元死亡),從而影響網絡性能.而本文采用的Leaky ReLU表達式如下:
其中,γ為人工設置數值的超參數,作用為保證Leaky ReLU的梯度不為0,即反向傳播時不會有神經元死亡現象.
除此之外Leaky ReLU的引入還保證網絡的復雜度,可有效提高網絡精度.
時間流子網絡和空間流子網絡的識別結果的融合方式是提高雙流架構深度神經網絡識別性能的因素之一.本文選擇較常用的預測值融合方法,包括最大值法和加權融合法.這兩種方法的優(yōu)點是沒有需要訓練的權重.最大值融合將同一輸入的空間流子網絡和時間流子網絡的預測分數中的最高項對應的類別作為最終識別結果,即
ymax=max{xs,xt},
其中,xs、xt分別表示空間流子網絡和時間流子網絡的Softmax層的輸出結果.加權融合是將空間流子網絡和時間流子網絡的預測分數加權求和,然后將分數最高的對應項作為最終預測結果,即
ywei=λxs+(1-λ)xt,
其中,λ、1-λ分別為空間流和時間流的對應權重.
動量的隨機梯度下降算法
為了解決3D網絡因參數量較大而難以訓練的問題,本文在模型訓練過程中提出使用梯度中心化的GC-SGDM.梯度中心化算法(GC)[27]計算梯度向量的均值,對梯度向量進行零均值化,約束網絡參數梯度下降的方向,使網絡訓練更穩(wěn)定、更具泛化能力.
GC對梯度向量進行零均值化是指對每層反向傳播得到的梯度向量零均值化.如果是卷積層,使每個卷積核的梯度向量均值為0.下面以全連接層為例,說明GC的工作原理.
設權重矩陣W∈RM×N,M、N分別對應全連接層的輸入、輸出通道數,wi∈RM為權重矩陣W的第i列,L為損失函數.令?wiL為L對wi的梯度向量,M維梯度向量?wiL的均值為
其中?wi,jL為梯度向量?wiL的第j個元素.權重矩陣W的第i列梯度向量經梯度中心化后,可表示為
再將上式擴展至所有列之后乘以eT,得
eTΦGC(?WL)=eT(I-eeT)?WL=
eTP?WL=0,
(1)
其中I∈RM×M為單位矩陣.通過上述公式推導發(fā)現,GC可幾何解釋為把原先的梯度?WL投射到一個與eT垂直的超平面P上,P?WL是?WL在超平面P上的投影.假設P?WL為權重的更新量,而Wk為第k次梯度下降后的權重,則可在式(1)的基礎上進一步推出:
eTP?WL=eT(Wk+1-Wk)=0.
由上式可發(fā)現,GC能使每次更新后的權重都被限制在超平面P內,這也意味著GC能有效限制梯度下降,約束網絡的解空間,降低網絡訓練的困難.
本文實驗的硬件配置為:型號為RTX 2080Ti的GPU,型號為i7-7800X @3.50GHz×12的CPU.實驗環(huán)境為:Ubuntu16.04,CUDA 8.0,CUDNN 7.4.所有實驗均在PyTorch框架下完成,并使用tensor-boardX將訓練可視化.
本文研究在中、小型數據集上均能獲得良好泛化性能的端到端的深度神經網絡,因此,實驗數據集選擇中型數據集UCF101[17]和小型數據集HMDB51[16].UCF101數據集上所有視頻均從YouTube收集,樣本量為13 320個,類別數為101類.HMDB51數據集上視頻多數來源于電影,還有一部分來自公共數據庫及YouTube等網絡視頻庫.數據集包含6 849段視頻,分為51類,每類至少包含101段視頻.這兩類數據集在相機運動、物體外觀和姿勢、物體比例、視角、背景雜亂度、照明條件等方面均存在較大變化.
在TN-I(2+1)D CNN中,時間流子網絡中的PWC-Net使用在FlyingThings3DHalfRes和Flying-Chairs混合數據集上訓練的模型(https://github.com/philferriere/tfoptflow)[21],用于提取光流圖集.基于該光流圖集和輸入視頻對應的RGB圖集,分別訓練時間流和空間流I(2+1)D CNN.訓練前按訓練集數量和測試集數量為7∶3的比例劃分已有數據集.
為了提高網絡性能,本文共使用2種預訓練模型(https://github.com/open-mmlab/mmaction/blob/
master/MODEL_ZOO.md),一種在Kinetics- 400上訓練,另一種在IG65M上訓練后又在Kinetics- 400上微調.然后,設置Leaky ReLU激活函數中γ=0.02.在模型訓練過程中,采用GC-SGDM作為優(yōu)化器,設置權重衰減為0.000 5,動量為0.9,初始學習率為0.000 1,并以損失是否下降為指標更新學習率,學習耐心設置為10.根據現有實驗條件,所有實驗網絡的輸入幀長均為8,批尺寸均為10.
本文根據現有實驗條件,分別采用18層殘差網絡ResNet-18和34層殘差網絡ResNet-34作為主干網絡進行實驗.實驗發(fā)現,在UCF101數據集上,34層網絡的性能更優(yōu).但是在HMDB51數據集上,兩種深度的網絡均出現過擬合現象.綜合考慮,本文之后的實驗均選擇ResNet-34作為I(2+1)D CNN的主干網絡.
在UCF101、HMDB51數據集上,采用ResNet-34,網絡的輸入幀長為8 h的訓練精度和測試精度曲線如圖4所示.由圖可知:對于中型數據集UCF101而言,網絡擬合效果良好,但對于小型數據集HMDB51而言,訓練精度不斷上升,測試精度卻增長緩慢,并且測試精度與訓練精度曲線的差距較大,說明以ResNet-34為主干網絡的I(2+1)D CNN時間流子網絡出現過擬合.針對此問題,本文引入失活層抑制過擬合,并就失活層位置進行實驗探究.
圖4 2個數據集上的訓練精度和測試精度曲線Fig.4 Training and testing accuracy curves on 2 datasets
本文在1.2節(jié)中已論述:當網絡中同時采用失活層和BN層時,將失活層置于所有BN層之后可避免方差偏移現象,提高網絡性能.本節(jié)將通過實驗驗證該結論.此外,失活層的神經元丟棄率會影響網絡性能,本節(jié)也將尋找最佳神經元丟棄率.
在HMDB51數據集上,分別將失活層置于BN層之后(即全連接層后)和BN層之前(以置于conv5_x前為例).根據經驗,神經元丟棄率分別設置為0.2,0.3,0.4.本文在空間流子網絡和時間流子網絡上分別進行上述實驗,結果如表2所示.由表可知,將失活層置于BN層之后時,空間流子網絡和時間流子網絡的精度均優(yōu)于失活層置于BN層之前時.當空間流子網絡和時間流子網絡的失活層丟失率分別取0.3和0.2時,網絡的識別精度最高.
表2 失活層的位置和丟失率對識別精度的影響Table 2 Effect of loss rates and locations of inactivation layer on recognition accuracy
本文提出在I(2+1)D CNN的殘差塊中采用Leaky ReLU激活函數,通用實驗驗證引入Leaky ReLU激活函數后網絡性能優(yōu)于采用ReLU激活函數時的網絡.在HMDB51數據集上,采用Kinetics-400的預訓練模型,失活層放置在全連接層后,空間流子網絡、時間流子網絡的神經元丟失率分別為0.3和0.2,采用SGDM[27]優(yōu)化器訓練網絡.
識別精度對比如表3所示.由表可知,基于Leaky ReLU激活函數改進I(2+1)D CNN,空間流子網絡和時間流子網絡的識別精度均有所提高,空間流子網絡的識別精度提高約0.5%,時間流子網絡的識別精度提高約0.6%.
表3 激活函數不同對識別精度的影響Table 3 Effect of different activation functions on recognition accuracy %
在HMDB51數據集上,使用SGDM優(yōu)化器和GC-SGDM優(yōu)化器時的識別精度對比如表4所示.由表可知,采用GC-SGDM優(yōu)化器時,空間流子網絡和時間流子網絡的識別精度均提高約1%,說明基于GC改進SGDM優(yōu)化器,可提高網絡性能.
表4 優(yōu)化器對識別精度的影響Table 4 Effect of optimizer on recognition accuracy %
為了進一步提高實驗結果的參考性,針對訓練集和測試集采用7∶3的劃分方式.最終的實驗結果為網絡識別精度均值.此外,本文還使用一個更大的預訓練數據集(IG65M+Kinetics-400)用于對比實驗.實驗選用對比網絡如下:P3D[11]、34層R(2+1)D(簡記為R(2+1)D-34)[12]、Two-Stream ConvNets(Two-Stream Convolutional Networks)[13]、TSN[16]、文獻[17]網絡[17]、C3D(Convolutional 3D)[28]、34層R3D(簡記為R3D-34)[28]、50層R(2+1)D(簡記為R(2+1)D-50)[28]、STFT(Spatio-Temporal Short Term Fourier Transform)[29]、ActionCLIP(Action Re-cognition Using Contrastive Language-Image Pretrai-ning)[30].各網絡的識別精度對比如表5所示.需要說明的是,表中的算法均關注網絡結構的改進,除ActionCLIP采用Transformer結構以外,輸入僅為RGB的行為識別算法均采用3D網絡,輸入為RGB+光流的行為識別算法均采用雙流網絡,預訓練數據集中其他表示對應網絡使用的預訓練數據集無名稱.
表5 各網絡在2個數據集上的識別精度對比Table 5 Accuracy comparison of different networks on 2 datasets %
由表5可知,本文網絡識別性能更佳.R(2+1)D-34的性能優(yōu)于R(2+1)D-50,而采用雙流架構的TN-I(2+1)D在2種融合方式下的性能又均優(yōu)于R(2+1)D-34,其中以采用加權融合的TN-I(2+1)D的性能最佳,在UCF101、HMDB51數據集上的精度分別比R(2+1)D-34提高0.6%和5.6%.此外,相比基于3D架構的STFT和基于Transformer架構的ActionCLIP,基于加權融合的TN-I(2+1)D CNN在兩個數據集上的識別精度也更高.綜上所述,本文網絡在中小型數據集上都具有良好的精度.
本文提出結合雙流網絡架構和3D網絡架構的復合型深度神經網絡(TN-I(2+1)D CNN),對于時間流、空間流均使用基于34層殘差網絡的I(2+1)D CNN作為主干網絡,提取視頻中人體行為的時空特征.在時間流子網絡部分,采用PWC-Net提取光流圖像序列,不僅提高光流提取速度,而且實現端到端的行為識別.本文通過主干網絡的深度、激活函數、失活層的設置及優(yōu)化器的改進,提高網絡性能.后續(xù)可通過其它技術改進進一步提升網絡性能.例如:1)在網絡輸入部分,可采用多種數據增強技術擴大小數據集的規(guī)模,改善網絡輸入;2)可采用剪枝等網絡壓縮方法實現網絡的輕量化,便于實際應用.