胡 凱,陳 旭,朱 俊,高陳強
(重慶郵電大學 通信與信息工程學院,重慶 400065)
行為識別是指從一段未知的視頻中自動分析正在發(fā)生的感興趣行為,是計算機視覺研究領域的一項極其重要且困難的研究任務。其研究成果可以廣泛應用于智能監(jiān)控系統(tǒng)、海量視頻檢索、機器人視覺、非法視頻檢測等領域[1]。到目前為止,研究人員已經提出了各種行為識別方法,取得了較大的進步,然而,該技術離實際應用還有一段距離。主要原因是行為識別面臨諸多挑戰(zhàn):①視頻視角變化、相機移動和背景干擾;②行為定義復雜、視頻復雜多樣;③數據規(guī)模大、硬件資源有限。
早期行為識別算法大多運用描述子對不同圖像的紋理信息、視覺形態(tài)和多個連續(xù)圖像之間的運動信息等設計手工特征,然后利用這些人工設計特征區(qū)分不同的行為。常用的描述子有時空興趣點特征(spatial-temporal interest point, STIP)[2]、方向梯度直方圖(histogram of oriented gradient, HOG)[3]和運動邊界直方圖(motion boundary histogram, MBH)[4]等,其中,H.Wang等[5]提出改進的密集軌跡(improved dense trajectories, iDT)是這類算法中最優(yōu)秀的算法。iDT從視頻幀的密集采樣特征點開始,用光流跟蹤,對每個跟蹤器沿著軌跡提取不同的手工制作特征。盡管該方法具有良好的性能,但它的計算非常耗時,并且在大規(guī)模數據集上變得難以處理。
近年來,卷積神經網絡(convolutional neural network, CNN)[6]因其良好的容錯能力、并行處理能力和特征表達學習能力被廣泛應用于圖像處理[7]、人臉識別[8]和人體姿態(tài)估計[9]等任務中,且取得了巨大成功。與計算機視覺的其他領域一樣,行為識別最近的工作主要是通過應用卷積神經網絡來完成這項任務。最初,G.Gkioxari等[10]假設視頻中的行為發(fā)生時,每幀圖像都能夠代表正在發(fā)生的行為,以2D CNN提取視頻單幀的特征用于分類。而后,A.Karpathy等[11]使用2D CNN對視頻的每幀圖像提取特征,然后進行特征編碼形成最終的特征用于行為分類,此方法取得了一定的效果。特別指出的是,K.Simonyan等[12]提出的雙通道卷積神經網絡結構在一定程度上促進了卷積神經網絡在行為識別領域的發(fā)展。該方法中,一個通道用光流算法[13]來計算視頻中單幀圖像周圍的光流圖來模擬時序信息,另一個通道用來提取三原色(red green blue,RGB)的特征信息,然后將2個通道的特征融合之后進行行為分類。
然而包含行為的視頻是一個時空3D空間,基于2D卷積的神經網絡輸出結果只包含空間信息,缺少時間信息。相比而言,3D卷積神經網絡的卷積和池化操作都是在時空上進行的,它能更好地對時間信息進行建模。2D卷積與3D卷積的區(qū)別如圖1。其中,H,W分別表示圖片的長和寬;k代表卷積核的大??;L表示幀長度。
圖1 2D卷積與3D卷積Fig.1 Difference of 3D convolution and 2D convolution
D.Tran等[14]提出一種基于3D卷積的神經網絡架構C3D。該方法與上文其他深度學習方法相比,引入3D卷積和3D池化操作來對輸入視頻的時間和空間信息同時建模,不僅省去了大量繁瑣的預處理操作,而且是端到端模型,在行為識別領域取得了實質性的進展。由于C3D在本質上更加適合行為識別這種包含時空信息的任務,因此,該方法一提出就引起了廣泛關注。但是,C3D同其他用于圖像分類的卷積神經網絡類似,例如VGG-Net[15]和ResNet[16]等。這類網絡每一層只是從上一層的特征圖中學習更高層次的特征,沒有考慮之前更低層次的特征圖。簡而言之,每一層的特征在整個網絡中大多只使用一次。這種方式造成了特征圖重用率低,進而導致網絡的學習效率不高。雖然一些研究表明,深層次的網絡擁有更好的特征提取能力,但是提升網絡而忽略特征圖的使用率反而會造成模型退化。本文針對上述問題借鑒現有成熟的2D網絡,如特征金字塔網絡(feature pyramid network, FPN)[17]和單激發(fā)多目標檢測算法[18]等特征金字塔結構,在分類時不僅使用高層的語義信息而且融合淺層的特征信息,以此提高模型的性能。
本文提出了一種基于C3D的多尺度3D卷積神經網絡(Multiscale-C3D)的行為識別方法。該方法在原C3D的基礎上融合C3D的淺層特征信息實現端到端的行為識別。同時,該方法以現有的深度學習理論為基礎,利用遷移學習[19]的思想,將C3D和Multiscale-C3D相同的參數遷移到Multiscale-C3D,以降低模型的訓練時間。實驗結果表明,本文所提出的方法相較于現有的行為識別方法具有更高的識別精度。
為了使用網絡中淺層特征信息進行行為識別,本文提出Multiscale-C3D網絡結構如圖2。圖2中所述的池化層均為最大池化層,除了備注說明的池化操作以外,卷積層下方的數字表示通道數。較C3D網絡只用最后一層的特征圖作為分類信息相比,本文增加了2個通道提取淺層特征圖的信息用于分類,這樣做既能提高特征圖的使用率,也能將淺層特征信息應用于分類。除此之外,最后用于分類的特征既包括淺層特征信息,也包含高層的語義信息,能夠提高模型的魯棒性。具體操作如下:在卷積層3a之后增加一個1×1的卷積層,1×1卷積層的卷積核個數遠遠小于其輸入特征圖的通道數,以降低輸出特征圖的通道數,進而使最后所接的全連接層的參數量大大減少;1×1的卷積層之后接的平均池化層,因為在卷積層3a之后,在時間維度上的卷積操作還很少,時間維度信息還很豐富,如果使用最大池化會遺漏很多信息;卷積層4a之后的操作與卷積層3a之后的相同,只是池化操作選擇的是最大池化。對于最后得到的特征直接連接(concatenation)起來組成全連接層8,然后線性變換為分類類別數目,作為softmax層的輸入。
從圖1可以看出2D卷積和3D卷積的區(qū)別,3D卷積能夠有效地建模視頻時間和空間的信息。3D卷積的運算公式為
u(m-1)l(w-i,h-j,t-k)+bmn)
(1)
(1)式中:ymn(w,h,t)表示第m層第n個特征塊經過神經元運算后(w,h,t)位置的輸出;vmn(i,j,k)表示第m層第n個特征塊在位置(i,j,k)的權重;bmn表示第m層第n個特征塊的偏置。
在卷積過程中,使用多個不同的3D卷積核,以固定步長平移,對圖像序列進行卷積運算,獲得多樣的特征。
池化操作同3D卷積一樣,都從空間域擴展到了時空域。池化是一種聚合的操作,它能夠概要統(tǒng)計特征,降低模型的參數量,加快模型訓練。3D池化公式為
(2)
(2)式中:W,H,T分別表示視頻塊中寬、高、時間維度;ymnl表示(m,n,l)位置的輸出。對于池化層,輸出卷積核的個數是不變的,特征圖的大小根據池化層池化核大小變化。例如,如果池化層的核的某個維度大小為2,則對于維度成倍減小。(2)式使用的是最大池化,本文還使用了平均池化來處理時間維度上較長的特殊情況。
表1為C3D的網絡架構配置參數,其輸入的尺寸為16×112×112,分別表示時間、長和寬3個維度。C3D共有8個卷積層,5個最大池化層和2個全連接層,接著是softmax的輸出層。所有的3D卷積核在空間和時間維度上的大小均為3×3×3,步長為1。3D池化層除了pool1的池化核大小為1×2×2以外,所有池化層的核大小都是2×2×2。全連接層具有4 096個輸出單元。從表1中可以看出,有的卷積層既有卷積層a又有卷積層b,這樣使用相同的卷積層串聯能在降低參數的同時增加卷積層的感受視野。
表1 C3D網絡結構
如上所述,如果僅僅考慮加深網絡來提高學習能力,會忽略了特征圖的使用率,且效果提升不明顯。FPN網絡結構采用特征金字塔的方法提高特征圖的重用率,從而進一步提高網絡的魯棒性和學習效率,在目標檢測任務上取得了巨大的成功[17]。
檢測任務同分類任務相比,其整體框架類似。即分類任務使用深度卷積神經網絡提取特征用于分類,而檢測任務用深度神經網絡提取特征用于檢測,所以可以將檢測任務中優(yōu)秀的模型應用到分類任務中。
本文受C3D和FPN等神經網絡的啟發(fā),提出一種基于C3D的多尺度3D卷積神經網絡,該方法不僅使用高層的語義信息而且融合淺層的特征信息進行分類。本文方法包含訓練階段和測試階段,具體算法如圖3。具體流程如下:在訓練階段,本文采用交叉驗證法,按文獻[20]中將UCF101中80%的數據用作訓練集和驗證集,訓練集和驗證集的比例按4∶1隨機分配,并對訓練集和驗證集預處理,加載C3D網絡已訓練好的模型到Multiscale-C3D與C3D相同的部分,設置好學習率和訓練輪數之后開始迭代。將訓練集的數據及標注信息送入Multiscale-C3D網絡,經過前向傳播,并利用交叉熵損失函數和隨機梯度下降法不斷更新模型的參數,直到迭代到設置輪數;用驗證集為模型訓練提供監(jiān)督信息,具體流程與圖3中測試階段一致,每輪都加載正在訓練的模型,對驗證集的數據進行測試,如果測試結果是最優(yōu),則保存最優(yōu)模型。在測試階段,對測試數據預處理后,輸入到最優(yōu)的模型中,經過前向傳播,得到最終的分類結果。
圖3 本文方法流程框圖Fig.3 Diagram of the proposed method
本文采用網上公開的數據集UCF101[21]。該數據集共有13 320個Youtube用戶上傳的視頻,包含101個動作類別,每個動作類別用于訓練的視頻大約有100個。這個數據集相比其他公共數據集更復雜,因為它包含了視頻中動作的各個方面,例如各種類型的活動、相機運動、雜亂的背景和視角變化。除此之外,該數據集還提供了大量的訓練ConvNet/LSTM網絡的樣本,因此被大家廣泛使用。本文按照文獻[20]中的方法,將數據集80%的視頻作為訓練集,20%的視頻作為測試集,且使用分類精度作為評估指標。由于UCF101數據集中用于訓練網絡的數據量還是相對較少,因此,本文采取隨機裁剪、翻轉等方式擴充數據集。為了更好地訓練模型,本文采用以下預處理。
1)每個視頻統(tǒng)一按照每5幀采用1幀,并且將圖像大小改為171×128像素,當圖像尺度小于修改尺度時,使用雙線性插值上采樣。
2)輸入時對圖像進行隨機裁剪,裁剪成112×112像素大小。對用于訓練的圖像進行歸一化處理,歸一化后的圖像為
(3)
(3)式中:m表示1)中處理后圖像像素;μ表示原始圖像像素的均值;σ表示原始圖像像素的標準差。
本文采用pytorch[22]開源深度學習庫,使用NVIDIA Tesla P100顯卡進行加速。
訓練時,本文加載預訓練好的C3D模型到Multiscale-C3D的原C3D的卷積層,其他層采用隨機初始化的方法進行初始化。本文使用SGD[23]優(yōu)化算法訓練模型,初始化學習率為0.000 01,使用余弦退火學習率衰減策略[24],并且采用L2正則化(衰減因子為0.000 3)以降低過擬合風險。
測試時,輸入一個視頻片段(16幀)到訓練好的網絡中,通過前向傳播輸出101個動作類別的概率分數,選取最高的概率分數作為預測結果。
本文實驗采用平均分類精度來定量評價不同方法的分類效果。平均分類精度指各類別精度之和除以總類別數。
因為本文方法涉及不同特征層的融合,所以本文首先比較當同時選用全連接層4a和全連接層7時,使用3種不同的融合策略對平均分類精度的影響,選用最優(yōu)的融合策略。3種融合策略分別是相連融合、相加融合和最大融合。
下述公式中,f表示映射函數,x表示特征向量,y表示融合之后特征向量,R表示向量空間。
相連融合表示為ycat=fcat(xa,xb),在特征通道d相同空間位置i處,將2個特征圖堆疊起來。其中
(4)
相加融合表示為ysum=fsum(xa,xb),計算特征通道d相同空間位置i處2個特征映射的總和。其中
(5)
且1≤i≤L, 1≤d≤D;xa,xb,y∈RL×D。
最大融合表示為ymax=fmax(xa,xb),取2個特征圖對應位置的最大值。其中
(6)
特征向量xa,xb與 (5) 式中一樣。
全連接層4a與全連接層7采用不同融合策略在UCF101上的平均精度如表2。
表2 全連接層4a與全連接層7采用不同融合策略在UCF101上的平均精度Tab.2 Mean classification accuracy on UCF101 of different fusion strategy of the fully connected layer 4a and the fully connected layer 7
從表2可以看出,當使用相連融合時,本文方法在UCF101上的平均分類精度最好,明顯優(yōu)于相加融合和最大融合。但是文獻[12,20]中使用相加融合的效果最佳,究其原因可能是可見光圖像與光流圖像具有互補性,使用相加融合時能保證在可見光通道信息的前提下,更多地融合其他通道的特征信息。但是在本文中僅使用可見光用于行為識別,而且特征來自不同的特征層,需要更多地保留各層特征之間的相對獨立,所以本文方法使用相連融合最優(yōu)。表3給出了不同特征層與全連接層7特征使用相連融合對平均分類精度的影響。
表3 不同淺層特征與高層特征融合之后在UCF101上的平均精度Tab.3 Mean classification accuracy on UCF101 of different underlying feature fusion with higher-level feature
一直保留全連接層7是為了確保每次用于分類的特征都含有高層的語義信息,因為行為識別更注重的是高層的語義信息分類,淺層的特征只是用于輔助。從表3中可以看出,當僅使用一個從淺層特征圖提取出的特征與全連接層7的特征融合時,本文發(fā)現隨著卷積層的加深,淺層特征對平均分類精度的提升越小。這是因為淺層的特征包含更多的紋理特征,能夠結合高層的語言信息提高之前區(qū)分度不高的行為。如圖4,跳水與懸崖跳水,類別之間的差異很小,都是跳水,更多的區(qū)別卻在于背景不同,使用特征金字塔的方法能夠更好地挖掘這些背景信息,提高行為識別的精度。淺層特征信息能夠輔助高層的語義信息進行分類。最終本文選用全連接層3a、全連接層4a和全連接層7之間的特征相互融合,作為最后的分類特征。
表4給出了近年來不同方法在UCF101的平均精度和測試一個4 s視頻所用時間。
表4 不同方法在UCF101上的平均精度和測試一個4 s視頻的時間Tab.4 Mean classification accuracy on UCF101 and test a video time of about 4 s of different approaches
文獻[5,12,20]都需計算光流,而計算一個4 s視頻的光流就需耗時6 s,所以測試時間大于6 s。表4中文獻[5]為傳統(tǒng)方法,文獻[12,14]均為深度學習方法。從表4可以看出,本文方法的性能不但明顯好于傳統(tǒng)的基于人工設計特征的行為識別方法,而且也好于當前基于深度學習的方法。相較于文獻[12,20]這類方法,本文方法沒有繁瑣的預處理操作,如計算光流等操作,時間開銷更小且模型性能更好。與文獻[14]相比,本文設計的方法,使用特征金字塔的結構在稍微損失測試時間的情況下提升了模型的魯棒性和性能。
本文受目前流行的深度學習模型的啟發(fā),提出一種基于Multiscale-C3D的行為識別方法。該方法受到目標檢測算法特征金字塔的啟發(fā),本文首次將特征金字塔方法應用于3D卷積神經網絡,在原C3D的基礎上使用相連融合來融合C3D的淺層特征信息實現端到端的行為識別。同時該方法以現有的深度學習理論為基礎,利用遷移學習的思想,將C3D和Multiscale-C3D相同的參數遷移到Multiscale-C3D,以降低模型的訓練時間。實驗結果表明,本文所提出的方法好于現有的方法。