王志強
(上海海事大學(xué)信息工程學(xué)院,上海 201306)
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,基于視頻的人體行為識別在人機交互、安全駕駛、智能家居等領(lǐng)域取得了廣泛的應(yīng)用,行為識別的研究也更加注重人體行為時空的變化。
Ji 等將2D 卷積擴展到3D 卷積,能夠捕獲多個連續(xù)幀中的運動信息,學(xué)習(xí)動態(tài)連續(xù)的視頻序列,通過支持向量機(SVM)分類識別人體行為,但隨著網(wǎng)絡(luò)層數(shù)變深會引起梯度彌散。Tran等采用大小為3×3×3(××)的3D卷積核,其中是輸入的幀數(shù),是卷積核空間大小的寬和高,提出了C3D 網(wǎng)絡(luò)提取時空特征,計算高效且具有很強的通用性。何愷明等利用殘差網(wǎng)絡(luò)結(jié)構(gòu)ResNet 進行行為識別,殘差網(wǎng)絡(luò)通過shortcut 操作,不僅緩解了網(wǎng)絡(luò)層數(shù)的增加帶來的梯度消失問題,還可以優(yōu)化和提升網(wǎng)絡(luò)性能。
為進一步提高人體行為識別準(zhǔn)確率,增強其特征表達能力,本文基于三維殘差網(wǎng)絡(luò),利用分組卷積和膨脹卷積的思想,建立了一種三維殘差網(wǎng)絡(luò)分組膨脹卷積的行為識別模型。首先將視頻數(shù)據(jù)輸入到三維卷積神經(jīng)網(wǎng)絡(luò)進行時間維度和空間維度的淺層特征提取,接著通過3D GD-ResNet 殘差塊進一步提取深層圖像特征。3D GD-ResNet 殘差塊利用分組卷積,將殘差塊分成32個并行分組,減少模型參數(shù)量,同時在分組卷積中引入膨脹系數(shù),擴大卷積核感受野,以捕獲更豐富的圖像特征信息,最后經(jīng)過平均池化和全連接層,通過softmax 分類函數(shù)輸出。
傳統(tǒng)三維卷積隨著網(wǎng)絡(luò)深度的增加,參數(shù)量的增多導(dǎo)致過擬合,影響了網(wǎng)絡(luò)的泛化性能。本文模型以3D-ResNet101 為基礎(chǔ),設(shè)計GDResNet 特征提取模塊,以提取更深層次的圖像特征。結(jié)構(gòu)如圖1 所示,模型共100個卷積層,一個最大池化層,一個平均池化層和全連接層。首先對輸入視頻數(shù)據(jù)進行三維卷積并歸一化,然后輸入到33個GD-ResNet 殘差塊進行特征提取。在每個GD-ResNet 塊使用分組卷積,同時在卷積過程中引入用膨脹系數(shù)擴大感受野,使用膨脹卷積替代普通卷積,最后通過全連接層輸出,使用softmax 函數(shù)輸出行為識別的最終結(jié)果。
圖1 本文3D GD-ResNet模型結(jié)構(gòu)
本文模型以3D ResNet101 為基礎(chǔ)進行改進。三維卷積層中的每個特征圖都會與上一層中多個臨近的連續(xù)幀相連捕獲人體運動信息,保證時序信息的關(guān)聯(lián)性,其本質(zhì)是對多個視頻幀堆疊的立方體進行三維卷積運算,卷積過程如公式(1)所示。
其中V為池化后的輸出,為池化層的輸入,,,為不同方向的采樣步長。
網(wǎng)絡(luò)的輸入輸出以及卷積核的大小用××的三維張量來表示,、、分別表示時間長度,寬度和高度,本文3D GD-ResNet 的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)如表1 所示(其中表示分組卷積的組數(shù),表示膨脹系數(shù),為了簡化描述,表中省略了輸出尺寸特征的通道數(shù))。
表1 3D GD-ResNet的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)
本文采用對輸入視頻幀歸一化處理為224×224 大小的預(yù)處理方式,以連續(xù)16 幀大小為224×224 的圖像輸入到Conv1 層中,采用大小為7×7×7,步長為1×2×2 的卷積核進行淺層特征提取,其中7 表示時間長度,7×7 表示卷積核空間維度的大小,將得到的8×112×112 大小特征圖通過Conv2_x的最大池化層,池化層卷積核大小為3×3×3,步長為2,通過同時對時間維度和空間維度進行下采樣,減小計算量,輸出特征圖大小為4×56×56,并產(chǎn)生64 維特征圖。之后依次通過33個GD-ResNet 特征提取模塊進行深層特征提取。網(wǎng)絡(luò)的Conv2_x-Conv5_x層都采用了殘差連接,并在每個殘差塊中使用了分組膨脹卷積,優(yōu)化網(wǎng)絡(luò)性能。最后通過全連接層和softmax層,輸出101個類別概率。
殘差結(jié)構(gòu)通過shortcut 操作,在加深網(wǎng)絡(luò)的同時,減少了性能下降,但依然存在參數(shù)量過多、信息丟失等問題。本文設(shè)計GD-ResNet 特征提取模塊,以圖1 中的GD-ResNet1 為例,其內(nèi)部結(jié)構(gòu)及處理過程如圖2所示。輸入視頻幀經(jīng)過卷積和最大池化操作后輸出特征圖T1in,大小為4×56×56,輸入到GD-ResNet1 特征提取模塊。在L1 層采用1×1×1 大小的卷積核進行3D 卷積,通道數(shù)為128,增加特征的非線性轉(zhuǎn)換次數(shù)。為了降低參數(shù)量,將L2層分成32個并行分組,用3×3×3 大小的卷積核在每個分組上做特征變換,輸出特征圖大小不變。不增加參數(shù)量的前提下,對每個分組引入膨脹率為3的膨脹卷積代替普通卷積,在不改變卷積核大小的情況下擴大感受野,最后將分組膨脹后的特征圖合并輸入L3 層,卷積核大小為1×1×1,通道數(shù)由128 增加到256。在每一層卷積操作后添加BN操作以保持?jǐn)?shù)據(jù)分布一致,加快網(wǎng)絡(luò)訓(xùn)練,最后對整個殘差塊使用ReLU 激活函數(shù)克服梯度消失。
圖2 GD-ResNet1模塊的分組膨脹卷積處理
傳統(tǒng)CNN 中每一個輸出通道都與輸入通道相連接,通道之間采用稠密連接,計算復(fù)雜度高且容易產(chǎn)生過量的參數(shù),本文分組卷積中通道被分成了32 組,每組通道數(shù)為4,輸出通道只與該組內(nèi)的輸入通道連接,與其他通道無關(guān)。采用分組卷積能減小計算復(fù)雜度且擁有較強特征表示能力。
若定義輸入特征圖尺寸為××,卷積核尺寸為×,輸出特征圖尺寸為××,采用標(biāo)準(zhǔn)卷積的參數(shù)量為:
其中、表示輸入和輸出通道數(shù),、分別表示特征圖的寬和高。而采用分組卷積,則輸入特征圖按通道分成組,分別對每組進行單獨的卷積操作,則卷積操作中每組輸入特征圖的尺寸為××,對應(yīng)卷積核的尺寸為××,卷積操作完成后對組進行組合,輸出特征圖通道數(shù)為,每組卷積特征圖通道數(shù)為,分組卷積的參數(shù)量可表示為:
由公式(4)可知,分組數(shù)為的分組卷積參數(shù)量為標(biāo)準(zhǔn)卷積的1,在GD-ResNet1模塊中,當(dāng)輸入特征圖尺寸為128×4×56×56 時,其中128表示卷積核個數(shù),4表示時間長度,56表示特征圖的寬和高,普通卷積和本文GD-ResNet1參數(shù)量的對比如表2所示。
表2 普通卷積和GD-ResNet1參數(shù)量對比
普通卷積和GD-ResNet1分別表示ResNet101和本文分組卷積的第一個殘差塊,分組卷積組數(shù)取32,本文3D GD-ResNet 參數(shù)量是無分組卷積參數(shù)量的132,表明分組卷積能有效降低參數(shù)量,防止模型過擬合,提高網(wǎng)絡(luò)性能。
感受野是CNN 網(wǎng)絡(luò)每一層輸出特征圖的像素點在原始圖像上的映射區(qū)域大小,膨脹卷積可通過控制窗口的寬度,擴展感受野區(qū)域,提取更多的特征圖信息,能夠保持圖像分辨率不受損失的情況下減少空間信息的損失。經(jīng)過膨脹處理后,感受野大小如式(5)所示:
其中表示卷積核的大小,表示膨脹卷積的擴張率,表示擴張后的感受野。
GD-ResNet 模塊中對每個分組的卷積核上增加膨脹系數(shù)為3 的膨脹率,由公式(5)計算可知,卷積核大小為3×3×3 時,感受野大小為7×7。以圖1 中GD-ResNet1 為例,當(dāng)膨脹系數(shù)為1和本文膨脹系數(shù)為3時,卷積過程如圖3所示。
圖3 膨脹系數(shù)為1和3時卷積輸出過程
圖中(a)表示膨脹系數(shù)為1時卷積輸出過程,卷積核在特征圖上的感受野為3×3,(b)表示本文加入膨脹系數(shù)為3 時卷積輸出過程,4×56×56的特征圖T1in為GD-ResNet1殘差塊的輸入,通過加入膨脹卷積,卷積核在特征圖上的感受野為7×7,輸出特征圖大小不變。本文通過實驗表明,膨脹卷積能夠提取更豐富的特征圖信息,優(yōu)化網(wǎng)絡(luò)性能。
本文實驗采用UCF101數(shù)據(jù)集,包含101個類別,共13320 段視頻,其中訓(xùn)練數(shù)據(jù)集9537個視頻,測試數(shù)據(jù)集3783個視頻,視頻幀圖像大小為320×240。
實驗在Linux 操作系統(tǒng)下進行,計算機顯卡為NIVDIA的Tesla V100,采用PyTorch深度學(xué)習(xí)框架。用預(yù)訓(xùn)練3D ResNet101 神經(jīng)網(wǎng)絡(luò)初始化本文模型的權(quán)重參數(shù),采用隨機梯度下降算法優(yōu)化模型。網(wǎng)絡(luò)訓(xùn)練的初始學(xué)習(xí)率為0.1,每經(jīng)過50epoch 學(xué)習(xí)率降為原來的10%,動量為0.9,batch_size 設(shè)置為128,共訓(xùn)練200 epoch。分別比 較 了 3D ResNet101、 不 同 分 組 數(shù) 3D ResNet101和加入分組卷積基礎(chǔ)上采用不同膨脹率的對比結(jié)果,通過實驗驗證了本文方法的有效性。
本文實驗以3D ResNet101 為基礎(chǔ)模型,采用Kinetics 數(shù)據(jù)集預(yù)訓(xùn)練3D ResNet101 初始化權(quán)重參數(shù),對模型1 在UCF101 數(shù)據(jù)集上進行訓(xùn)練和測試。采用訓(xùn)練損失loss和acc(accuracy)準(zhǔn)確率曲線驗證模型性能和準(zhǔn)確率。如圖4所示,橫坐標(biāo)表示迭代次數(shù),縱坐標(biāo)表示模型訓(xùn)練和測試的準(zhǔn)確率和損失值,由圖可見,在沒有加入分組膨脹卷積下,3D ResNet101 訓(xùn)練集準(zhǔn)確率高,loss損失值小,而測試集損失值大,準(zhǔn)確率低,由于UCF101 數(shù)據(jù)集相比Kinetics 數(shù)據(jù)集過小而出現(xiàn)了嚴(yán)重過擬合。
圖4 模型1在UCF101上的準(zhǔn)確率和loss損失
針對模型1存在過擬合嚴(yán)重問題,在實驗中加入不同組數(shù)的分組卷積,通過對比選擇最優(yōu)分組數(shù),以模型1 為基礎(chǔ),模型2 將殘差塊分成64 組,模型3 將殘差塊分成32 組,以驗證不同分組數(shù)對模型識別準(zhǔn)確率的影響。結(jié)果如圖5所示,結(jié)果表明,采用32 組分組比64 組穩(wěn)定,模型識別準(zhǔn)確率更高。從圖4和圖3 的實驗結(jié)果對比看,引入分組卷積,參數(shù)量減少,有效降低了模型過擬合。
圖5 模型2和模型3的準(zhǔn)確率和loss損失對比
為驗證感受野的大小對網(wǎng)絡(luò)性能的影響,在模型3 的基礎(chǔ)上,引入不同的膨脹率進行對比。模型4 的膨脹系數(shù)為2,本文模型膨脹系數(shù)為3,圖6 分別比較了模型4和本文模型不同膨脹系數(shù)下的準(zhǔn)確率和損失,從圖中可以看出,本文模型比模型4的損失值更小,測試準(zhǔn)確率更高,特征更有區(qū)分度,測試識別率達到了88.4%。
圖6 模型4和本文模型的準(zhǔn)確率和loss損失對比
上述五個模型實驗結(jié)果對比如表3所示,結(jié)果表明,模型1 在UCF101 上存在過擬合;在引入分組卷積以后,由于參數(shù)量減少,有效降低了過擬合,當(dāng)采用分組數(shù)為32 的模型3 時,測試效果更好,識別率達到了82%,比模型2 高1個百分點;在模型3基礎(chǔ)上,加入膨脹系數(shù)后本文模型行為識別準(zhǔn)確率曲線穩(wěn)定且達到了88.4%,比膨脹系數(shù)為2 的模型4 高了1.4%。表明本文模型中的GD-ResNet 特征提取模塊能有效減少模型參數(shù)量,提取更多圖像特征,提高人體行為識別準(zhǔn)確率。
表3 五種不同模型行為識別準(zhǔn)確率比較
為了進一步檢驗本文模型對人體行為識別的效果,將本文方法和3D 卷積神經(jīng)網(wǎng)絡(luò)(C3D)模型、劉瀟等提出的三維殘差卷積神經(jīng)網(wǎng)絡(luò)、Varol G 等提出的LTC 網(wǎng)絡(luò)模型在相同數(shù)據(jù)集下進行了對比。結(jié)果如表4所示,可見本文模型方法較其他方法行為識別準(zhǔn)確率有所提高。
表4 不同方法結(jié)果對比
本文建立了一種基于三維殘差網(wǎng)絡(luò)分組膨脹卷積的人體行為識別方法,以3D ResNet101網(wǎng)絡(luò)為基礎(chǔ),利用三維殘差網(wǎng)絡(luò)提取時空特征。GD-ResNet 將殘差塊分成32個并行分組,減少了模型參數(shù)量,并在每個分組上使用膨脹率為3的膨脹卷積,增大了模型感受野,提取了更為豐富的特征圖信息,最后通過softmax進行分類。在UCF101數(shù)據(jù)集上進行測試,行為識別準(zhǔn)確率為88.4%,驗證了本文方法的有效性。