雙流網絡論文
視頻相比圖像包含更多信息:運動信息、時序信息、背景信息等等。
原先處理視頻的方法:
- CNN + LSTM:CNN 抽取關鍵特征,LSTM 做時序邏輯;抽取視頻中關鍵 K 幀輸入 CNN 得到圖片特征,再輸入 LSTM,進行時間戳上的融合,得到視頻的特征。最后將 LSTM 最終時刻的特征接一個 FC 層得到最終結果。
- 3D 網絡:輸入 3D CNN,模型參數量大。
作者認為 CNN 本身適合處理靜態信息(如物體的形狀、大小、顏色等)而非運動信息。于是采取另一個網絡(光溜網絡)抽取運動信息,CNN 只需要學習輸入光流和最后動作信息之間的映射。
最后的融合有兩種方式:1)late fusion:兩個 logits 加權平均得到最終結果;2)將 argmax 結果作為特征再訓練一個 SVM 分類器。
光流是描述視頻中物體的運動信息,對每個點實際上都是需要計算的,故而是一種密集表示。在本文中,作者將光流值壓縮至 [0,255],采用 JPEG 存儲。(光流的弊端——存儲空間大、提取速度慢)
在本文中,光流采取了兩種方式:1)簡單疊加:每個點多次光流的疊加,光流點位置不更新;2)按軌跡疊加:每一幀都根據光流軌跡,更新光流點位置。(在本文實驗中第一種方式更好,但實際上第二種更合理。)
在光流網絡中,對所有視頻首先 rescale 至 256,再固定抽取 25 幀(不管視頻多長,等間距抽取),對抽取出來的每一幀都做 10 crop(每一幀裁剪 4 個邊和 1 個中心,翻轉之后再 crop 五張圖)。
實驗結果
- 空間流網絡:使用預訓練模型更好,可以直接使用從 ImageNet 上預訓練的模型。
- From scratch:從頭訓練,效果更差。
- Pre-trained + fine-tuning:微調整個模型。因為數據集過小,擔心過擬合,實驗了 dropout ratio=0.9
- Pre-trained + last layer:微調最后一層,不擔心過擬合。
- 時間流網絡:簡單疊加效果更好
- Single-frame:輸入是單張光流圖。
- Optical flow stacking、 Trajectory stacking:簡單疊加和按軌跡疊加。
總結
之前的深度學習方法沒有利用運動信息,導致效果遠不如手工特征,由此引入運動信息——光流;同時雙流網絡的應用同時表明了,當魔改單個網絡無法解決時,可以給模型提供一些先驗信息,往往能大幅簡化。同時也證明了數據的重要性,更多更好的數據能夠提升模型效果、泛化性等一系列問題。