周 云,陳淑榮
(上海海事大學(xué)信息工程學(xué)院,上海201306)
行為識(shí)別是對(duì)視頻圖像中的人體行為動(dòng)作進(jìn)行特征提取、分析,并自動(dòng)識(shí)別出其類別,在日常生活中有著廣泛應(yīng)用。如智能監(jiān)控中行人的異常行為檢測(cè)、人機(jī)交互、運(yùn)動(dòng)分析等。
傳統(tǒng)的行為識(shí)別方法通常由人工提取特征,再進(jìn)行特征編碼和分類器訓(xùn)練,最后完成行為識(shí)別,耗時(shí)長(zhǎng)且泛化性差。隨著深度學(xué)習(xí)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Nets,CNN)針對(duì)人體運(yùn)動(dòng)行為提取的特征更加多樣,魯棒性更好,在行為識(shí)別中得到了廣泛應(yīng)用。Ji等[2]通過引入時(shí)間信息結(jié)合空間維度構(gòu)成三維CNN,從空間和時(shí)間維度提取特征,進(jìn)行3D 卷積,以捕捉多個(gè)連續(xù)幀中的運(yùn)動(dòng)信息,最后通過支持向量機(jī)(Support Vector Machine,SVM)進(jìn)行行為分類得到最終識(shí)別結(jié)果;該方法速度較快,但精度低。Simonyan 等[3]提出了雙流卷積神經(jīng)網(wǎng)絡(luò)(Two-Stream Convolutional neural Network,Two-Stream ConvNet),利用視頻的RGB(Red-Green-Blue)圖像和密集光流圖像分別訓(xùn)練CNN模型,并將兩個(gè)分支網(wǎng)絡(luò)的Softmax 輸出進(jìn)行融合,得到的最終行為識(shí)別精度有所提高。Wang 等[4]提出了更深的 Two-Stream ConvNet 結(jié)構(gòu),解決了較小數(shù)據(jù)集過度訓(xùn)練的問題,改善了識(shí)別精度。
為進(jìn)一步提高人體行為識(shí)別的準(zhǔn)確率,增強(qiáng)網(wǎng)絡(luò)的特征表達(dá)能力,本文結(jié)合殘差網(wǎng)絡(luò)和非局部神經(jīng)網(wǎng)絡(luò)的思想,提出了一種基于雙流非局部殘差網(wǎng)絡(luò)(Non-local Residual Network,NL-ResNet)的行為識(shí)別模型。首先對(duì)視頻數(shù)據(jù)集進(jìn)行預(yù)處理,利用角落裁剪和多尺度裁剪方法進(jìn)行數(shù)據(jù)增強(qiáng)和歸一化,避免模型訓(xùn)練中出現(xiàn)過擬合現(xiàn)象;然后通過兩組NL-ResNet分別提取視頻的空間和時(shí)間特征,該網(wǎng)絡(luò)能充分利用所有殘差塊的局部特征,并傳遞到非局部特征提取模塊(Non-Local block,NL block)[6]中獲取局部特征的全局信息,以增強(qiáng)整張?zhí)卣鲌D的語義信息,彌補(bǔ)特征圖逐層傳遞時(shí)的信息丟失;同時(shí)網(wǎng)絡(luò)中采用A-softmax 損失函數(shù)[7]以角度約束類別分類,提高行為動(dòng)作的分類精度;最后將兩路輸出加權(quán)融合得到最終的識(shí)別結(jié)果。
圖1 雙流NL-ResNet模型結(jié)構(gòu)Fig. 1 Structure of the two-stream NL-ResNet model
傳統(tǒng)雙流CNN 包含卷積、池化、全連接層,利用卷積核僅能提取樣本的局部特征,易導(dǎo)致人體行為的部分信息丟失而影響最終的識(shí)別效果。本文以殘差網(wǎng)絡(luò)為基礎(chǔ)網(wǎng)絡(luò),通過引入NL block,更好地融合局部特征全局信息,模型結(jié)構(gòu)如圖1所示,主要包括數(shù)據(jù)預(yù)處理、NL-ResNet 特征提取、A-softmax loss 三部分。首先對(duì)待輸入視頻進(jìn)行預(yù)處理,提取RGB 幀和密集光流圖進(jìn)行數(shù)據(jù)增強(qiáng)及歸一化,分別輸入到NL-ResNet中進(jìn)行級(jí)聯(lián)的卷積、池化、非局部計(jì)算以提取視頻的表觀信息和運(yùn)動(dòng)信息;同時(shí),在兩路分類層采用A-softmax 損失函數(shù),使相似動(dòng)作類間距離更大、類內(nèi)距離更小,提升模型分類效果;最后將兩路的A-softmax 分類結(jié)果加權(quán)融合,得出行為識(shí)別的最終結(jié)果。
為避免深度雙流卷積網(wǎng)絡(luò)模型訓(xùn)練出現(xiàn)過度擬合,實(shí)驗(yàn)中采用了角落裁剪和多尺度裁剪的預(yù)處理方法,對(duì)RGB 圖像和光流圖像進(jìn)行數(shù)據(jù)集擴(kuò)充和增強(qiáng)處理。首先將輸入圖像大小固定為256 × 340,從{256,224,192,168}中隨機(jī)選取裁剪寬度和高度,裁剪圖像的4個(gè)角和1個(gè)中心如圖2所示的a、b、c、d 和e,實(shí)現(xiàn)對(duì)數(shù)據(jù)集的擴(kuò)充,以及對(duì)輸入圖像的多尺度和差異性增強(qiáng),并將裁剪后的圖像歸一化為224 × 224,作為雙路網(wǎng)絡(luò)的輸入,從而解決了因隨機(jī)裁剪導(dǎo)致的裁剪區(qū)域中間化而使訓(xùn)練損失下降很快,進(jìn)而產(chǎn)生過度擬合的問題。
圖2 裁剪效果示意圖Fig. 2 Schematic diagram of cropping effect
傳統(tǒng)的雙流卷積神經(jīng)網(wǎng)絡(luò)常采用CNN 分別提取時(shí)間域運(yùn)動(dòng)信息和空間域表觀信息,網(wǎng)絡(luò)越深提取的特征越抽象,語義信息越豐富,但網(wǎng)絡(luò)深度達(dá)到一定程度時(shí)會(huì)導(dǎo)致梯度爆炸或梯度消失。此外,傳統(tǒng)CNN 網(wǎng)絡(luò)主要是靠級(jí)聯(lián)卷積層提取局部特征,在全連接層整合得到全局信息,因此,一些局部重要信息會(huì)在逐層提取中損失,且給全連接層帶來大量參數(shù)。本文采用圖1中的NL-ResNet對(duì)行為特征進(jìn)行提取,通過引入批量歸一化(Batch Normalization,BN)和NL block 解決了梯度爆炸問題,彌補(bǔ)了特征信息的丟失,能夠較好地提取視頻的表觀信息和運(yùn)動(dòng)信息,提升識(shí)別效果。具體原理如圖3 所示,對(duì)一組RGB 和光流輸入圖像,首先分別用卷積核為7× 7、步長(zhǎng)為2的Conv1卷積層進(jìn)行淺層特征提取,為防止深度網(wǎng)絡(luò)梯度爆炸,在每一個(gè)卷積層后都加入BN 層進(jìn)行批量歸一化,使網(wǎng)絡(luò)優(yōu)化不受初始化、學(xué)習(xí)率的影響,加快網(wǎng)絡(luò)訓(xùn)練的收斂。之后經(jīng)最大池化處理后,特征圖大小減半,并產(chǎn)生64 維特征圖,接著采用兩組并聯(lián)的NL-Res2、NL-Res3、NL-Res4 和NL-Res5進(jìn)行非局部運(yùn)算、卷積操作和BN 處理,提取圖像的全局信息和局部特征,經(jīng)平均池化在全連接層將行為特征整合為具有高層語義的特征向量。
圖3 NL-ResNet結(jié)構(gòu)Fig. 3 Structure of NL-ResNet
BN 層的本質(zhì)是對(duì)網(wǎng)絡(luò)的每一層輸出作歸一化處理(歸一化至:均值為0,方差為1),然后再進(jìn)入網(wǎng)絡(luò)的下一層。歸一化公式如式(1)、(2)所示。
假設(shè)一層有d維輸入:
每一維的歸一化為:
其中E[x(k)]和Var[x(k)]分別指各神經(jīng)元輸入值的平均值和方差。
若僅僅使用上面的歸一化公式,對(duì)網(wǎng)絡(luò)某一層A 的輸出數(shù)據(jù)作歸一化,然后送入網(wǎng)絡(luò)下一層B,這樣會(huì)影響本層網(wǎng)絡(luò)A 所學(xué)習(xí)到的特征。比如網(wǎng)絡(luò)中間某一層學(xué)習(xí)到的特征數(shù)據(jù)本身就分布在S 型激活函數(shù)的兩側(cè),若強(qiáng)制將它作歸一化處理,把數(shù)據(jù)變換成分布于S 函數(shù)的中間部分,如此就相當(dāng)于這一層網(wǎng)絡(luò)所學(xué)習(xí)到的特征分布被破壞了。為了恢復(fù)出原始的某一層所學(xué)到的特征,對(duì)x^(k)進(jìn)行變換重構(gòu),引入可學(xué)習(xí)重構(gòu)參數(shù)γ和β,如式(3)所示:
網(wǎng)絡(luò)訓(xùn)練時(shí)每一個(gè)神經(jīng)元x(k)都會(huì)產(chǎn)生一對(duì)參數(shù)γ 和β,通過反向傳播不斷更新,當(dāng)網(wǎng)絡(luò)便可以學(xué)習(xí)恢復(fù)出原始網(wǎng)絡(luò)所要學(xué)習(xí)的特征分布。BN層的最終輸出為y(k)。
為了更好地融合局部特征的全局信息,NL block 通過對(duì)經(jīng)過卷積、BN 處理、最大池化后得到的特征圖進(jìn)行非局部計(jì)算,獲得特征圖全部像素點(diǎn)之間的相關(guān)性信息,進(jìn)而提取行為特征的全局信息,之后再輸入到下一級(jí)殘差塊中繼續(xù)提取局部特征。NL block對(duì)特征點(diǎn)的信息補(bǔ)償,使得NL-ResNet提取的行為特征更豐富。以圖3的NL-Res2中的NL block為例,處理過程如圖4所示。
圖4 NL-Res2中的NL block處理過程Fig. 4 NL block processing in NL-Res2
最大池化后產(chǎn)生112×112 大小的特征圖X,通道數(shù)為64,經(jīng)過 θ、φ、g 三個(gè) 1*1 卷積通道得到 Wθxi、Wφxj、Wgxj,其中 Wθ、Wφ、Wg均為 1*1 卷積的待學(xué)習(xí)權(quán)值參數(shù),i 和 j 為像素坐標(biāo),xi和xj表示位置i 和j 的特征圖像。通過f(xi,xj)函數(shù)計(jì)算特征圖位置i 與其他所有位置j 之間的相關(guān)性權(quán)重,一元函數(shù)g(xj)計(jì)算輸入信號(hào)在位置j 的表征,具體計(jì)算公式如式(4)、(5)所示:
將f(xi,xj)與g(xj)作矩陣乘法運(yùn)算,即計(jì)算所有的xj加權(quán)后的結(jié)果,并將結(jié)果通過響應(yīng)因子C(x)進(jìn)行標(biāo)準(zhǔn)化得到最終的響應(yīng)值yi,此時(shí),yi便包含了xi與周圍所有像素點(diǎn)之間相關(guān)性的信息。這就是非局部計(jì)算,公式如式(6)所示:
NL block 是一個(gè)殘差結(jié)構(gòu),非局部計(jì)算結(jié)果yi經(jīng)過一個(gè)1*1 卷積通道得到Wzyi,將Wzyi與原輸入xi相加得出最終的輸出信號(hào)zi,如式(7)所示:
此時(shí)zi包含特征圖xi中所有像素點(diǎn)的相關(guān)性信息,將帶有全局信息的新特征圖Z輸入到NL-Res2的Conv2_1中,如圖3 所示,經(jīng)過兩組并聯(lián)的卷積、BN 和ReLU 激活處理得到的特征圖與特征圖Z 相加,依次輸入到級(jí)聯(lián)的NL-Res3、NL-Res4、NL-Res5 中繼續(xù)進(jìn)行特征提取,得到包含較豐富的全局信息和局部信息的特征圖。
通常,CNN 多采用softmax 損失函數(shù)進(jìn)行多分類任務(wù),原始的softmax損失是一個(gè)交叉熵?fù)p失,如式(8)所示:
式中:xi表示第 i 個(gè)特征向量;yi表示類別標(biāo)簽;W 表示權(quán)重;b為 偏 置 項(xiàng) ;θyi,i表 示 行 為 特 征 xi與 權(quán) 重 Wyi之 間 的 夾 角 ;j ∈ [1,K],K為類別總數(shù)。
由于原始softmax 損失函數(shù)在進(jìn)行分類時(shí),類間距小且對(duì)類內(nèi)距離的控制不夠易導(dǎo)致分類準(zhǔn)確率低,因此本文在歸一化權(quán)值和角度間距上對(duì)傳統(tǒng)softmax 損失函數(shù)進(jìn)行了改進(jìn),利用分類角度進(jìn)行更精細(xì)的學(xué)習(xí)和分類誤差抑制,使類內(nèi)距離更小,類間距離更大,從而實(shí)現(xiàn)最大類內(nèi)距離小于最小類間距離的識(shí)別標(biāo)準(zhǔn),完成本文行為動(dòng)作的分類任務(wù),提升行為分類的準(zhǔn)確率。改進(jìn)后的損失函數(shù)為A-softmax 損失函數(shù)[7],如式(9)所示:
A-softmax 損失函數(shù)將式(8)中全連接層的權(quán)值W 和偏置b 設(shè)置為,使分類決策邊界僅取決于W 和x之間的角度,若θyi,i比其他所有類的角度都小,則輸入特征xi屬于 yi類。另外,在 ψ(θyi,i)中對(duì)分類角度 θyi,i添加了 m 倍數(shù)限制,從而產(chǎn)生一個(gè)決策余量,使分類決策函數(shù)更加精細(xì)。m取值越大,學(xué)習(xí)到的特征區(qū)分性越強(qiáng),但學(xué)習(xí)難度也更大,本文選取m = 4,經(jīng)多次實(shí)驗(yàn)驗(yàn)證能取得較好的分類識(shí)別效果。
本文實(shí)驗(yàn)在Windows 10 系統(tǒng)下進(jìn)行,計(jì)算機(jī)顯卡為NVIDIA GeForce GTX 1050Ti,采用PyTorch深度學(xué)習(xí)框架。
實(shí)驗(yàn)選用UCF101 視頻數(shù)據(jù)集,共13 320 段視頻樣本,包含101個(gè)視頻類別,其中每類動(dòng)作由25個(gè)人分別完成,每人做4~7 組,視頻分辨率為320 × 240。實(shí)驗(yàn)中將數(shù)據(jù)集劃分成訓(xùn)練集和測(cè)試集兩部分,其中9 537 個(gè)視頻作為訓(xùn)練集,3 783 個(gè)視頻作為測(cè)試集。為滿足雙流卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練需求,分別提取視頻集的RGB 圖像和光流圖像,對(duì)光流圖的提取采用OpenCV 視覺庫中稠密光流幀提取方法中的TVL1(Total Variation-L1)光流算法[10],分別提取水平方向和垂直方向的光流序列。
用ImageNet 預(yù)訓(xùn)練好的ResNet18 卷積神經(jīng)網(wǎng)絡(luò)初始化特征并提取網(wǎng)絡(luò)卷積層權(quán)重,采用隨機(jī)梯度下降算法優(yōu)化整個(gè)網(wǎng)絡(luò)模型。將數(shù)據(jù)預(yù)處理后的RGB 圖和光流圖歸一化為224 × 224,空間流輸入單個(gè) RGB 幀,而時(shí)間流輸入L個(gè)連續(xù)的光流圖,將光流圖在時(shí)間域上的長(zhǎng)度設(shè)置為L(zhǎng)= 10[3]。網(wǎng)絡(luò)訓(xùn)練的初始學(xué)習(xí)率設(shè)為0.001,空間流網(wǎng)絡(luò)每經(jīng)過150 個(gè)epoch 學(xué)習(xí)率降為原來的10%,共訓(xùn)練250 個(gè)epoch;時(shí)間流網(wǎng)絡(luò)每經(jīng)過200 個(gè)epoch 學(xué)習(xí)率降為原來的10%,共訓(xùn)練350 個(gè)epoch,動(dòng)量為0.9,批次大小為4。根據(jù)UCF101 數(shù)據(jù)庫的行為類別數(shù),將雙流NL-ResNet 網(wǎng)絡(luò)模型的全連接層的參數(shù)設(shè)置為101。
空間流和時(shí)間流網(wǎng)絡(luò)融合采用加權(quán)線性組合各自預(yù)測(cè)分?jǐn)?shù)的方法,經(jīng)多次實(shí)驗(yàn)驗(yàn)證,將時(shí)間網(wǎng)絡(luò)的權(quán)重設(shè)置為2,空間網(wǎng)絡(luò)的權(quán)重設(shè)置為1,得到的最終分類結(jié)果效果最好。
實(shí)驗(yàn)中采用訓(xùn)練損失loss 和準(zhǔn)確率acc(accuracy)曲線判斷模型訓(xùn)練是否過擬合,以驗(yàn)證本文角落裁剪和多尺度裁剪相結(jié)合的數(shù)據(jù)預(yù)處理方法的有效性。利用傳統(tǒng)雙流卷積神經(jīng)網(wǎng)絡(luò),在原始和增強(qiáng)后的UCF101 數(shù)據(jù)集上分別實(shí)驗(yàn),圖5 給出了原始和增強(qiáng)后的UCF101數(shù)據(jù)集loss和acc曲線比較:圖5(a)原始數(shù)據(jù)集訓(xùn)練損失值小、準(zhǔn)確率高,測(cè)試損失值大、準(zhǔn)確率低,出現(xiàn)了過度擬合;而圖5(b)增強(qiáng)后的數(shù)據(jù)集訓(xùn)練損失值小、準(zhǔn)確率高,測(cè)試損失值小、準(zhǔn)確率高,有效解決了模型過度擬合的問題,表明了本文數(shù)據(jù)預(yù)處理方法的有效性。
圖5 原始和增強(qiáng)后的數(shù)據(jù)集loss和acc曲線比較Fig.5 Comparison of loss and acc curves of original and enhanced datasets
接下來,為驗(yàn)證本文方法提出的引入NL block 對(duì)網(wǎng)絡(luò)模型的作用,在UCF101 數(shù)據(jù)集上對(duì)比了雙流網(wǎng)絡(luò)以ResNet18為基礎(chǔ),加入不同數(shù)量NL block 的設(shè)計(jì)方案對(duì)網(wǎng)絡(luò)性能的影響,結(jié)果如表1 所示。實(shí)驗(yàn)表明更多的NL block 通常有更好的結(jié)果,能夠捕獲更多的依賴信息。
表1 加入不同數(shù)量NL block對(duì)網(wǎng)絡(luò)的影響Tab. 1 Impact of adding different numbers of NL blocks on the network
最后,為驗(yàn)證本文A-softmax 損失函數(shù)的有效性以及模型的總體性能,首先選擇VGG16的雙流CNN結(jié)構(gòu)模型和softmax損失函數(shù),輸入大小為224 × 224 的單幀RGB 和10 對(duì)堆疊光流圖,本文將其稱之為模型1;其次,以相同輸入,選擇以ResNet18 為基礎(chǔ)網(wǎng)絡(luò)的雙流CNN 模型進(jìn)行實(shí)驗(yàn),稱之為模型2;在模型2 的基礎(chǔ)上損失層采用A-softmax 損失函數(shù)進(jìn)行實(shí)驗(yàn),稱之為模型3;之后,以模型3 為基礎(chǔ),在網(wǎng)絡(luò)的每個(gè)卷積層后添加一個(gè)BN 層進(jìn)行實(shí)驗(yàn),稱之為模型4;而本文模型在模型4 的基礎(chǔ)上在ResNet18 中加入8 個(gè)NL block 進(jìn)行實(shí)驗(yàn)。五種模型設(shè)置如表2所示。
表2 五種不同模型的設(shè)置Tab. 2 Settings of five different models
實(shí)驗(yàn)結(jié)果對(duì)比如圖6 所示,在輸入相同的情況下,模型3相較于模型2 在數(shù)據(jù)集UCF101 上的測(cè)試準(zhǔn)確率提升了0.9個(gè)百分點(diǎn),表明模型分類層采用A-softmax 損失函數(shù)能夠使不同類別之間的距離更大,相同類別之間的距離更小,得到更精細(xì)的分類結(jié)果,進(jìn)而有效提高行為識(shí)別的準(zhǔn)確率。而本文模型相較于模型2的測(cè)試準(zhǔn)確率又提升了1.3個(gè)百分點(diǎn),表明在ResNet 每一個(gè)殘差塊之前加入Non-local 特征提取模塊能更好地融合特征圖的全局信息,提高模型識(shí)別的準(zhǔn)確率。
將本文模型與傳統(tǒng)雙流卷積神經(jīng)網(wǎng)絡(luò)(Two-Stream ConvNet)[3]模 型 、3D 卷 積 神 經(jīng) 網(wǎng) 絡(luò)( Convolutional neural network based on 3D-gradients,C3D)[2]模型、非常深的雙流卷積神經(jīng)網(wǎng)絡(luò)(Very Deep Two-Stream ConvNets)[4]模型和隱藏式雙流卷積神經(jīng)網(wǎng)絡(luò)(Hidden Two-Stream ConvNets)[9]模型等現(xiàn)有方法在相同的實(shí)驗(yàn)環(huán)境和數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)對(duì)比,結(jié)果如表3 所示,可以看出,本文方法比其他方法在行為識(shí)別的識(shí)別準(zhǔn)確率上有所提高。
圖6 不同模型的準(zhǔn)確率曲線Fig. 6 Accuracy curves of different models
表3 本文方法與現(xiàn)有方法的行為識(shí)別準(zhǔn)確率比較Tab. 3 Comparison of behavior recognition accuracy between the proposed method and existing methods
本文建立了一種基于非局部殘差雙流卷積神經(jīng)網(wǎng)絡(luò)的人體行為識(shí)別方法:首先利用空間流和時(shí)間流網(wǎng)絡(luò)分別提取視頻的空間表觀信息和運(yùn)動(dòng)信息,再采用角落裁剪策略和多尺度裁剪方法對(duì)輸入數(shù)據(jù)作增強(qiáng)處理;然后通過NL block 和殘差塊卷積分別提取圖像的非局部信息和局部信息;最后用A-softmax 通過角度學(xué)習(xí)對(duì)各行為樣本進(jìn)行更精細(xì)化分類,得出相應(yīng)的概率矢量,將空間流網(wǎng)絡(luò)和時(shí)間流網(wǎng)絡(luò)的A-softmax輸出進(jìn)行加權(quán)融合,在UCF101 數(shù)據(jù)集上得到最終行為識(shí)別準(zhǔn)確率為93.5%,驗(yàn)證了本文方法的有效性。