1. 程式人生 > >【論文閱讀】Human Action Recognition using Factorized Spatio-Temporal Convolutional Networks

【論文閱讀】Human Action Recognition using Factorized Spatio-Temporal Convolutional Networks

【論文閱讀】Human Action Recognition using Factorized Spatio-Temporal Convolutional Networks

這是一篇15年ICCV的論文,在15年的時候,3D卷積網路剛剛興起,但是因為3D卷積網路的引數量較多,而且訓練資料的規模也沒有現在這麼大,所以網路的引數非常不易優化,這個時候,限制3D卷積網路效能的主要是資料。文章根據當時3D網路的侷限性,將 “3D空間時間學習“ 分解為 “2D空間+1D時間學習”,提出了一種空間時間分解卷積網路(factorized spatio-temporal convolutional networks, F

S T C N F_{ST}CN )。 F S
T C N F_{ST}CN
級聯地組合視訊中的時空資訊,在網路的底層,使用2D空間卷積核學習視訊幀的空間appearance特徵。在網路的頂層,使用1D時間卷積核學習視訊的時間motion特徵。這種網路結構與3D卷積網路相比大大減少了引數量,所以對訓練資料量要求比較低。
插一句嘴:自從17年Google的DeepMind提出了kinetics-400,kinetics-600資料集以後,資料量不再是3D卷積網路的侷限[1],人們設計了很多巧妙的3D卷積網路,很大地促進了3D卷積網路的發展。
論文地址:
下載連結

程式碼(pytorch):下載地址

F S T C N F_{ST}CN 網路結構

3 D ( 2 D + 1 D ) 3D\rightarrow (2D+1D) 分解原理

正如上一篇介紹C3D的部落格所說(連結地址),不考慮channel的情況下,3D卷積核 K 3 D K_{3D} 的尺寸為 K ϵ R t × h × w K\epsilon R^{t\times h\times w} ,我們從 K 3 D K_{3D} 表示的集合中抽出一個子集 K ˉ 3 D \bar{K}_{3D} ,該子集可以由一個2D空間卷積核 K h , w K_{h,w} 和一個1D時間卷積核 K t K_{t} 的外積來表示,如下式所示:
在這裡插入圖片描述
其中 \bigotimes 表示外積(outer product),我畫了一張圖方便理解,如下圖所示。
在這裡插入圖片描述
雖然完成 3 D ( 2 D + 1 D ) 3D\rightarrow (2D+1D) 的分解後,只能表達原3D卷積核集合中的一個子集,犧牲了一定的表達能力,但是存在很多優點,比如:

  1. 卷積核的尺寸可以認為從 n h n w n t n_{h}\ast n_{w}\ast n_{t} 降低成了 n h n w + n t n_{h}\ast n_{w}+n_{t} ,大大地減小了網路的引數量,這在當時資料規模不大的情況下還是很有意義的。
  2. 分解後的2D空間卷積核還可以提前在ImageNet上預訓練,這對於提升最終的結果還是很有幫助的。

同時文章也認為犧牲了的表達能力可以通過學習冗餘的2D和1D卷積核來彌補。

詳細的網路結構

文章根據上述分解的原理,提出了一種 F S T C N F_{ST}CN 網路,其結構如下圖所示:
在這裡插入圖片描述
該網路的總體思想是級聯地提取視訊中的時空資訊,在網路的底層使用2D空間卷積核,在網路的頂層使用1D時間卷積核。我們從底到頂一步一步地來分析網路的結構。

在這裡插入圖片描述
首先左側藍色方框中的為2D空間卷積層,也被稱為SCL層(spatial convolutional layer),其作用是提取視訊每一幀的空間appearance特徵。每一層都是(2D卷積核+Relu+LRN+Maxpooling)的結構,如右側黑色方框中所示。

在這裡插入圖片描述
然後緊接著是空間卷積(SCL)和時間卷積(TCL)的並行分流,下方為空間卷積,上方為時間卷積,文章認為新增並行的空間卷積(SCL),可以提取視訊中更加豐富的appearance視覺特徵。

在這裡插入圖片描述
最後詳細介紹一下時間卷積,可以看到時間卷積流中有兩層比較特殊,分別是 T&P層和TCL層,我們分別進行介紹。

  • T&P Operator:該層的目的是為了對輸入的feature map的維度進行變換,方便後續的TCL層沿著時間卷積。我們知道SCL層輸出的feature map的尺寸為 R C × T × H × W R^{C\times T\times H\times W} 。因為當時的深度學習框架還不成熟,所以對該尺寸的feature map單獨實現時間維度的卷積還很難實現,於是作者想到了一種巧妙的方法,如上圖中間的黃色方框內容所示,作者首先將4D尺寸的feature map沿著高和寬展開,得到展開後的feature map的尺寸為 R C × T × H W R^{C\times T\times HW} ,我們顛倒一下feature map的維度順序為 R H W × C × T R^{HW\times C\times T} ,從而可以直接在此3D的feature map上使用2D卷積核完成對時間維度和channel維度的卷積。上述維度展開之後還有一種變換操作,它使用一個變換矩陣 P ϵ R C × C P\epsilon R^{C\times {C}'} 對 feature map中的 C C 維度進行變換,變換後的feature map的尺寸為 R H W × C × T R^{HW\times {C}'\times T} ,文章認為這個變換是為了調節 C C 維度的尺寸,但是後面實驗又設定了 C = C C={C}' →_→。(在程式碼實現中,因為考慮到目前深度學習框架都比較成熟,可以直接實現 4D feature map中的時間維度卷積,所以我對T&P層進行了簡化)
  • TCL層:TCL層是時間卷積層(temporal convolutional layer),其結構如上圖最右的紫色方框內容所示,有點參考了Inception模組的結構,整個TCL層有兩個分支,分別使用 3 × 3 3\times 3 5 × 5 5\times 5 大小的2D卷積核,這樣做的目的是可以捕獲不用時間尺度的運動資訊。

訓練細節

在訓練階段,batch size設定為32,優化方法為動量SGD,動量設定為0.9,weight decay設定為0.0005,視訊幀輸入的尺寸為 204 × 204 204\times 204 。(輸入的視訊時長沒看到,在復現程式碼中定位16幀)

其他補充

論文中也有一些其他值得學習的技巧:

  • 幀差輸入:文章中輸入網路的視訊段為 { V , V d i f f } \left \{ V,V^{diff} \right \} ,其中 V V 是RGB視訊,而 V d i f f V^{diff} 是RGB視訊的幀差,文章認為這樣輸入可以捕獲短時的運動資訊。
  • SCI[2]:是一種late score fusion的方法,在測試階段,每一個視訊會有多個視訊段的預測結果,需要將這些視訊段的結果融合確定整個視訊的預測結果,那麼如何確定每個視訊段的權值呢,文章使用每個視訊段預測結果的熵來確定權值。如果一個視訊段結果的熵越小,我們認為這個結果的置信度越高,其在融合的時候權值越大。

探索性的實驗

特徵視覺化

文章選了7種容易混淆的類,並對其空間特徵、時間特徵和融合後的特徵都做了視覺化,如下圖所示,使用的仍是t-SNE[3]的方法,可以看到不同類的特徵之間還是比較容易區分的。
在這裡插入圖片描述

feature map 反捲積視覺化

文章對網路的feature map反捲積後視覺化,如下圖所示,可以看到響應主要還是集中在salient區域。
在這裡插入圖片描述

[1] Hara, Kensho, Hirokatsu Kataoka, and Yutaka Satoh. “Can spatiotemporal 3D CNNs retrace the history of 2D CNNs and ImageNet.” In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Salt Lake City, UT, USA, pp. 18-22. 2018.
[2] Wright, John, Allen Y. Yang, Arvind Ganesh, S. Shankar Sastry, and Yi Ma. “Robust face recognition via sparse representation.” IEEE transactions on pattern analysis and machine intelligence 31, no. 2 (2009): 210-227.
[3]Maaten, Laurens van der, and Geoffrey Hinton. “Visualizing data using t-SNE.” Journal of machine learning research 9, no. Nov (2008): 2579-2605.