SlowFast Networks for Video Recognition
- Journal reference: 2019 IEEE/CVF International Conference on Computer Vision (ICCV)
- Author: Christoph Feichtenhofer, Haoqi Fan, Jitendra Malik, Kaiming He (Facebook AI Research, FAIR)
- Github: https://github.com/facebookresearch/SlowFast
- 論文連結:SlowFast Networks for Video Recognition
Introduction
- 作者設計了雙通道的架構,分別於低幀率下提取空間資訊,以及於高幀率下捕捉時序動態特徵。
- 其模型設計來自於生物學研究的啟發,模仿人類的視覺系統,即 ~80% 的小細胞(P-cells)和 ~15-20% 的大細胞(M-cells)所構成。以此為基礎,將模型設計為slow和fast之雙通道。大細胞負責處理快速的時序動態資訊,但對於空間上的細節與色彩不敏銳;而小細胞則是負責精細的空間特徵,但對動態資訊的反應較慢。
Related Works
- 時空序列特徵過濾
- [44]的two-stream架構採用光流作為影片辨識之另一個輸入,作者以此為雙通道模型的啟發。
Methodology
architecture | instantiation |
---|---|
- Slow pathway: 採大的時序步伐,每隔 $\tau$ 取一幀,總共取 $T \times \tau$ 幀作為slow pathway之輸入。作者預設為 $\tau = 16$ 。
- Fast pathway: 採較小的時序步伐,每隔 $\tau / \alpha$ 取一幀,總共取 $\alpha T$ 幀作為fast pathway之輸入。作者預設為 $\alpha = 8$ 。此外,整個fast pathway皆不使用downsampling layer,而僅有分類前的global pooling layer,因此時序特徵形狀會保持在 $\alpha T$ 幀。
- Fast pathway與Slow pathway同樣為捲積網路,但僅有 $\beta$ 比例的通道大小,因此就算取較多幀資料作為輸入,作者預設為 $\beta=1/8$ 。其運算量也不大,甚至運算效率較slow pathway高,同時代表其較弱的空間特徵提取能力。作者對此做過實驗,例如減少輸入之空間特徵(resolution)或移除色彩資訊,實驗結果顯示皆能夠獲得好的結果。
- 僅於res4和res5使用non-degenerate temporal convolution,因為於模型前層即使用temporal convolution會降低準確率。*
- 橫向連接(Lateral connections)[35]:
- 在每一階段皆對二通道先進行 資料維度轉換 ;
二通道之時序維度不同,需進行轉換再連接。
- 在每一階段皆對二通道間進行橫向連接,將fast pathway資料透過 單向連接 融合至slow pathway;
- 二通道之各別輸出進行 global average pooling ;
- 將二通道之輸出進行 加總(summation) 或 合併(concatenation) ;
- 經過pooling之二通道之特徵向量再餵入 全連階層進行分類 。
- Feature shape
- Slow pathway: ${T, S^2, C}$
- Fast pathway: ${\alpha T, S^2, \beta C}$
- Data transformation:作者提出三種資料為度轉換的方式,結果如Results
- Time-to-channel:將時間維度轉換為通道維度,使Fast pathway與Slow pathway的輸出在通道維度上具有相同的維度,方便兩者進行融合。
$transform \ {\alpha T, S^2, \beta C} \ into\ {T, S^2, \alpha \beta C}$
- Time-strided sampling:僅選擇其中一個 $\alpha$ 時間步,以降低時間維度的資訊量,同時保留空間維度和通道維度的資訊。
$transform \ {\alpha T, S^2, \beta C} \ into\ {T, S^2, \beta C}$
- Time-strided convolution:對Fast pathway的輸出進行3D卷積,並將輸出與 Slow pathway 進行融合。
$kernel =5 \times 1^{2},\ output\ channels= 2 \beta C,\ stride= \alpha$
- 以上 Time-strided sampling 和 Time-strided convolution 都是對時間維度資訊進行壓縮和提取,以便於模型學習到更有用的時間特徵。
- Time-to-channel:將時間維度轉換為通道維度,使Fast pathway與Slow pathway的輸出在通道維度上具有相同的維度,方便兩者進行融合。
- 在每一階段皆對二通道先進行 資料維度轉換 ;
Experiments
Settings
- Dataset: Kinect400 (~240k training & 20k validation)
- mini batch size = 8 clips pre GPU x 128
Results
- slowfast fusion: 作者實驗三種不同的資料轉換和融合方式進行橫向連接(Lateral connections),皆優於僅使用slow pathway的方法。
- channel capacity ratio ( $\beta$ ): 作者實驗不同 $\beta$ 值得最適值為 $\beta=1/8$
- weaker spatio input to fast pathway: 作者嘗試弱化Fast pathway之空間感知能力,例如將RGB資訊減半、使用灰階、時間差、光流等方式減少空間資訊,其準確率仍與一般使用RGB時無大差異,而計算量最多可減少約 2 GFLOPs。
- train from scratch: 在不使用pretrained model的情況下,可以獲得優異的表現。
- 與SOTA之比較
與Kinect400之SOTA 與Kinect600/Charades之SOTA - Ablation Study