龔蘇明,陳 瑩
江南大學 輕工過程先進控制教育部重點實驗室,江蘇 無錫 214122
在計算機視覺領域,對人類行為識別的研究既能發展相關理論基礎,又能擴大其工程應用范圍。對于理論基礎,行為識別領域融合了圖像處理、計算機視覺、人工智能、人體運動學和生物科學等多個學科的知識,對人類行為識別的研究可以促進這些學科的共同進步。對于工程應用,視頻中的人類行為識別系統有著豐富的應用領域和巨大的市場價值。其應用領域包括自動駕駛、人機交互、智能安防監控等。
早期的行為識別方法主要依賴較優異的人工設計特征,如密集軌跡特征、視覺增強單詞包法等。得益于神經網絡的發展,目前基于深度學習的行為識別方法已經領先于傳統的手工設計特征的方法。Karpathy 等率先將神經網絡運用于行為識別,其將單張RGB圖作為網絡的輸入,這只考慮了視頻的空間表觀特征而忽略了時域上的運動信息。對此,Simonyan 等提出了雙流網絡。該方法使用基于RGB 圖片的空間流卷積神經網絡(spatial stream ConvNet)和基于光流圖的時間神經網絡(temporal stream ConvNet)分別提取人類行為的靜態特征和動態特征,最后將雙流信息融合進行識別。Wang 等提出了時間片段網絡(temporal segment network,TSN)結構來處理持續時間較長的視頻,其將一個輸入視頻分成段(segment),然后每個段中隨機采樣得到一個片段(snippet)。不同片段的類別得分采用段共識函數進行融合來產生段共識,最后對所有模型的預測融合產生最終的預測結果。為了解決背景信息干擾,周波等結合目標檢測使神經網絡有側重地學習人體的動作信息。劉天亮等提出融合卷積網絡(convolutional neural network,CNN)與長短期記憶網絡(long short-term memory,LSTM)的行為識別方法來指導網絡學習更有效的特征。借鑒2D 卷積神經網絡在靜態圖像的成功,Ji等將2D 卷積拓展為3D 卷積,從而提出了3D-CNN 方法來提取視頻中的運動信息。Qiu 等將3D 卷積解耦為2D 空間卷積和1D 時間卷積,在一定程度上減少了網絡參數,緩解了網絡難以優化的問題。Zhou 等提出了結合3D 和2D 的想法,其核心思想是在空間2D 卷積網絡中,加入3D卷積核(×1×1)來獲取視頻序列中多幀之間的相關信息,以此來補充時間維度上的特征。
上述方法中,普通的2D 卷積網絡無法學習輸入幀間時空特征信息,從而導致整體結果不佳;3D 卷積方法雖然能同時提取表觀信息和時空特征信息,但網絡參數過多致使網絡難以優化。基于此,本文提出全新的時空特征金字塔模塊,該模塊對輸入特征構建特征金字塔模型并使用空洞卷積金字塔提取輸入幀間時空特征信息,同時只引入較少的額外參數和計算量。該模塊是一種即插即用模塊,能嵌入主流2D 卷積網絡中提升識別精度。
本章首先介紹殘差網絡ResNet50的構成模塊Bottleneck;接著介紹將特征金字塔模塊引入Bottleneck 后的網絡構成模塊;最后給出本文網絡的整體架構。特征金字塔模塊將在2.1 節詳細介紹。
ResNet50 由4 個網絡層(Stage1~4)構成,每層構成模塊是Bottleneck,其結構過程如圖1(a)所示。該模塊首先對輸入特征圖使用1×1 卷積(Conv1)進行卷積操作,主要目的是為了減少參數的數量,從而減少計算量,且在降維之后可以更加有效、直觀地進行數據的訓練和特征提取。接著使用感受野較大的3×3 卷積(Conv2)來提取更細化特征。最后使用1×1卷積(Conv3)進行升維操作,使輸出能與原始輸入維度相匹配,從而進行特征相加。

圖1 ResNet50 構成模塊及改進模塊Fig.1 Composition module of ResNet50 and corresponding improvement module
從圖中可以看到,模塊輸入尺寸為[,,,],表示批大小(batch_size),表示輸入幀數,表示通道數,、則是特征圖尺寸大小。盡管網絡輸入幀數為,但維度一直與維度在一起,因此網絡依舊是對每幀輸入進行單獨操作,并未提取幀間信息。
為了解決Bottleneck 存在的問題,本文提出了時空特征金字塔模塊并將其插入Bottleneck構建STFPB(spatio-temporal feature pyramid block),該模塊流程如圖1(b)所示。
輸入特征[,,,]首先經過1 次卷積操作變成[,,,],記為;然后將送入STFPM(spatio-temporal feature pyramid module)提取時空特征信息,在此部分特征尺寸將變為[,1,,],得到時空特征后將特征尺寸轉化為原始尺寸;然后將、、等加權融合,其中權值固定為1,、等權值由網絡學習得到;最后將融合特征送入后續的兩個卷積層并與原始輸入特征相加。
以STFPB 為基礎,本文構建了全新的行為識別網絡STFP-Net。網絡整體結構如圖2 所示。圖中,黑色虛線框表示網絡層(stage),紫紅色立方體表示輸入,黃色矩形表示卷積核為7×7 的卷積操作,藍色立方體表示ResNet50 原本的Bottleneck(①~?),紅色立方體表示STFPB(?~?),綠色框表示全連接層(Fc),橙色橢圓表示交叉熵損失函數,紫色圓圈則是每類結果的預測得分。輸入首先經過7×7 卷積操作進行特征圖尺寸縮減,然后將輸出送入Bottleneck 與STFPB 進行特征提取,最后的高層特征經過全連接層拉平后得到每類結果的預測得分,完成行為識別任務。

圖2 網絡整體架構Fig.2 Overall structure of network
本章首先介紹特征金字塔,其作用是說明需要對哪些輸入幀進行操作;接著介紹空洞卷積和由它構成的空洞卷積金字塔,其作用是提取時空特征信息;最后介紹時空特征的融合方式。
給定一個輸入∈R,首先通過網絡提取特征,然后如圖3 所示構建特征金字塔。圖3 中,藍色立方體表示某一幀圖像的全部特征信息,紫色虛線立方體表示該幀被跳過,不參與特征金字塔的構建。為了畫圖簡便,省略了維度,同時T表示第幀的全部特征信息。

圖3 特征金字塔示意圖Fig.3 Schematic diagram of feature pyramid
以T為例,在特征金字塔中,T作為金字塔的第一層;然后(T,T,T)三幀圖像特征信息作為金字塔第二層;接著將采樣步長設為2,則金字塔第三層便是(T,T,T),此時跳過了(T,T)。以此類推,便能構建多層特征金字塔。值得注意的是,金字塔第一層只包含T,后續的每一層都包含3幀圖像特征信息。
此外,和其他特征金字塔方法不同的是,本文的特征金字塔并不減小特征圖的尺寸,這避免了原始信息的丟失。與此同時,本文也不引入額外的損失函數來指導網絡學習,這從網絡的訓練和復雜性角度來說是有益的。
與普通卷積相比,空洞卷積多了一個超參數dilation factor。圖4 給出了空洞卷積的示意圖。當dilation factor 等于1 時,此時的卷積核便是普通的卷積核,隨著dilation factor 的增大,卷積核的尺寸也在變大。圖中紅點表示卷積核需要學習的參數,其余的空白部分用0 進行填充。

圖4 空洞卷積和卷積金字塔Fig.4 Dilated convolution and convolution pyramid
空洞卷積的主要優勢是在特征圖不做池化操作損失信息的前提下,加大了感受野,讓每個卷積輸出都包含較大范圍的信息。此外,空洞卷積的另一個優勢便是0 值填充帶來的“跳躍”特性。很多文章都沒有考慮過此特性,本文將不同dilation factor的空洞卷積組合在一起,構建了空洞卷積金字塔,并將它應用到特征金字塔中提取幀間時空特征信息。


圖5 時空特征金字塔詳細過程Fig.5 Detailed process of spatio-temporal feature pyramid
對得到的時空特征,本文考慮了兩種特征融合策略:特征級聯和加權相加。
假設有兩路通道數相同的輸入(,,…,Y) 和(,,…,Z),特征級聯和加權相加分別為:

式(1)、式(2)中,表示原始特征,表示提取后的特征,表示通道數,表示卷積操作,和表示權重系數。
可以這么理解上述公式,特征級聯是通道數的合并,也就是說描述圖像本身的特征數(通道數)增加了,而每一特征下的信息沒有增加。加權相加則是每一維下的特征信息量在增加,特征數(通道數)沒有改變。特征級聯操作中每個通道對應著相應的卷積核,而加權相加操作則將對應的特征圖相加,再進行下一步卷積操作,相當于加了一個先驗:對應通道的特征圖語義類似,從而對應的特征圖共享一個卷積核。本文的核心思想是對空域特征進行時域信息的增加,這更符合特征加權相加的思想,因此,本文選用加權相加的方式進行特征融合,后續對比實驗也佐證了這一想法。
本文中,第一層金字塔特征的權重固定為1,其余各層金字塔特征的權重系數由網絡學習得到。
完整的時空特征金字塔流程如圖5 所示。給定一個輸入∈R,首先通過矩陣維度變換操作,將變為∈R(圖5①)。圖5①中,矩形的每一行表示某一幀的全部特征。然后對使用空洞卷積金字塔進行時空特征提取(圖5②),接著對得到的時空特征使用加權相加策略進行特征融合操作(圖5③),此時融合后的特征的尺寸和原始輸入不相符,因此需要再次使用矩陣維度轉換操作將特征維度進行轉換(圖5④)。相比原始輸入,經過時空特征金字塔模塊后的特征具有時空特征信息,因此更有利于視頻行為識別任務。
本文在最常見的行為識別數據集UCF101和HMDB51上對本文網絡結構進行評估實驗,以便將其性能與目前主流的方法進行比較。
UCF101 數據集是從YouTube 收集的具有101 個動作類別的逼真動作視頻的動作識別數據集。101個動作類別中的視頻分為25 組,每組可包含4~7 個動作視頻。來自同一組的視頻可能共享一些共同的功能,例如類似的背景、類似的觀點等。
HMDB51 數據集內容主要來自電影,一小部分來自公共數據庫,如YouTube 視頻。該數據集包含6 849 個剪輯,分為51 個動作類別,每個動作類別至少包含101 個剪輯。
本文Baseline 采用ResNet50 作為主干網絡。針對每個視頻輸入,首先將其分為8個片段,然后在每個片段隨機采樣1 幀,共計8 幀作為輸入。網絡對每幀作出預測,然后將8個預測值取平均作為最終預測值。
本文實驗中,卷積神經網絡基于PyTorch平臺設計實現。網絡采用ResNet50 作為主干網絡,訓練采用小批量隨機梯度下降法,動量為0.9,權值在第15、35、55個epoch時衰減一次,衰減率為0.1,總訓練數設置為70。初始學習率設為0.001。Dropout 設置為0.8。實驗采用兩張TITAN 1080Ti GPU進行,batch_size設置為24。
本文主要考慮兩種特征融合策略:特征級聯和加權融合。表1 給出了兩種融合策略在UCF101 上的結果。從結果來看,加權融合比特征級聯高了3.331個百分點,故本文后續實驗均采用加權融合方式。在2.3 節中已經說明,金字塔第一層特征權值固定為1,后續層的特征權值由網絡自主學習得到。

表1 特征融合策略的影響Table 1 Influence of feature fusion strategy
從2.1 節和2.2 節描述可以知道,特征金字塔的層數和空洞卷積金字塔的層數是相同的。理論上,當輸入幀是無限數量時,可以構建無限多層金字塔。因此采用ResNet50 作為主干網絡,然后用實驗來說明金字塔層數最合理的值。實驗結果如表2 所示。從結果來看,金字塔層數為3 時結果最高。主要原因如下:2 層金字塔只包含兩個相鄰幀的信息,這限制了它提取時間信息的能力;當層數大于等于4時,空洞卷積本身的“網格”效應造成嚴重的信息不連續,影響最終的識別結果。因此,在后續實驗中,金字塔等級的數量固定為3。

表2 金字塔層數的影響Table 2 Influence of pyramid layers
金字塔模塊可以直接嵌入到現有網絡中使用,選擇合適的嵌入位置對網絡來說至關重要。對于深度神經網絡,低層網絡會提取一些邊緣特征,然后高層網絡進行形狀或目標的認知,更高的語義層會分析一些運動和行為。
基于此共識,本文首先在ResNet50 的Stage4 中添加金字塔模塊,然后逐步往低層網絡添加金字塔模塊。表3 給出了不同位置嵌入金字塔后的結果。從結果來看,在語義層(Stage4)嵌入金字塔模塊后表現最好。當Stage3 和Stage4 同時嵌入金字塔模塊后,識別結果下降了0.106 個百分點,這是因為行為識別任務更依賴語義信息。因此,本文最終只在Stage4 中嵌入金字塔模塊。

表3 嵌入位置的影響Table 3 Influence of embedding position
通過前3 個小實驗,本文網絡最終配置為3 層金字塔,Stage4 添加和加權融合,并記為STFP-Net。一個優秀的嵌入性模塊不僅能給網絡帶來結果正確率的提升,同時引入的額外計算量也應該很少。基于此,對本文最終網絡的模型大小與計算量進行定量分析,如表4 所示。采用每秒浮點運算次數(FLOPs)作為計算量的評價指標,該指標值越大則意味著網絡需要更多的計算資源。

表4 模型參數和計算量Table 4 Model parameters and calculation amount
從表4 結果來看,相比于Baseline,3 層金字塔只增加了54 Byte 的模型參數,計算量只增加了0.06%,約為2×10次浮點運算數量。綜上所述,本文的金字塔模塊是高效的嵌入性模塊。
在本小節中,將通過具體實驗進一步展示所提出的STFP-Net 與最先進的動作識別方法的比較結果。關于UCF101 和HMDB51 的相關結果詳見表5。

表5 與主流方法正確率的比較Table 5 Comparison of accuracy with mainstream methods 單位:%
在當下主流方法中,有的采用了先進的時空融合方法來獲得高效的網絡特征,如TLE;有的則利用CNN 和LSTM 網絡的結合體來獲得輸入幀之間的序列信息以此來獲得比單純RGB 表觀信息更豐富的時空信息;I3D直接將最先進的2D CNN 架構膨脹成3D CNN 網絡,以利用訓練好的2D 模型;為了減少參數量,P3D通過將3D 卷積分解為沿空間維度的2D 卷積和沿時間維度的1D 卷積來建模時空信息,從而學習非常深的時空特征;MiCT則提出混合2D/3D卷積模塊,利用2D 卷積提取RGB 圖像的表觀信息,利用3D 卷積提取序列間的相關信息。ISTPA-Net通過對不同網絡層的特征進行下采樣從而構建注意力金字塔,旨在突出特征圖中某些重要的特征,同時引入兩個額外的損失函數來約束網絡學習。
從表5 結果來看,在UCF101 數據集上,本文的STFP-Net以96.4%的正確率排在所有方法中第一位;同樣的,在HMDB51 數據集上,本文的STFP-Net 以75.5%的正確率排在第一名。
綜上所述,由本文提出的特征金字塔模塊所構建的STFP-Net確實具有明顯的效果提升。
本文提出了時空特征金字塔模塊下的人體行為識別方法。通過分析現有基礎網絡的局限性,提出了時空特征金字塔模塊。為了驗證模塊的有效性,分別從特征融合方式、金字塔層數、嵌入位置、額外計算量等方面進行實驗驗證。最后在通用數據集上與其他主流方法進行比較,實驗結果再次證明了時空特征金字塔模塊的高效性。