1. 程式人生 > >時空建模新文解讀:用於高效視訊理解的TSM

時空建模新文解讀:用於高效視訊理解的TSM

 

接著之前的《淺談動作識別TSN,TRN,ECO》,來談談最近 MIT和IBM Watson 的新文 Temporal Shift Module(TSM)[1]。

 

Something-SomethingV1 資料集上的個演算法效能對比

看看上圖,文章的主要貢獻一目瞭然:

  1. 對比主流的輕量級線上視訊理解ECO系列, TSM系列在引數量少三倍的情況下,效能仍然超越ECO系列
  2. 另外文章的TSM模組的實現非常簡潔而且硬體友好:通過在2D CNN中位移 temporal 維度上的 channels,來實現時間上的資訊互動。故不需要新增任何額外引數,且能捕捉Long-term 時空上下文關係。

Related Work:

大概過一下之前的幾個重要工作(也是本文效能對比的主要幾個state-of-the-art):

  1. TSN[2]:視訊動作/行為識別的基本框架,將視訊幀下采樣(分成K個Segment,各取一幀)後接2D CNN對各幀進行處理+fusion
  2. TRN[3]:對視訊下采樣出來的 frames 的deep feature,使用 MLP 來融合,建立幀間temporal context 聯絡。最後將多級(不同取樣率)出來的結果進行再一步融合,更好表徵short-term 和 long-term 關係。
  3. ECO[4]系列:ECO-Lite:輕量級網路,使用 TSN的中間層 feature maps,來組成 feature clips,然後使用3D CNN來融合時空特徵。ECOen-Lite:在ECO-Lite基礎上,concat上幀間fusion後的 TSN 特徵,再做決策。
  4. NL I3D+GCN[5]:還沒來得及看~~ @Xiaolong Wang 大佬ECCV2018的工作,大佬可以講解下?使用 non-local I3D來捕獲long-range時空特徵,使用 space-time region graphs 來獲取物體區域間的關聯及時空變化。

故上述效能特別高的 ECO系列 和 NL I3D+GCN,都是或多或少都是使用了3D卷積或者偽3D卷積運算,故在大規模線上視訊理解上用,運算量和效率還是有一定瓶頸。

 

 

演算法框架:

啟發:

為了解決上述的3D卷積運算量問題,作者提出了可嵌入到2D CNN中的 TSM 模組。作者發現:一般的卷積操作,可以分解成 位移shift + 權值疊加 multiply-accumulate 兩個過程。

比如說對一個1D vector X 進行 kernel size=3 的卷積操作 Y = Conv(W; X) 可以寫成:

故分解後的兩個操作分別為:

  1. 位移(基本不消耗計算資源,常規地址偏移指標操作)

2. 權值疊加

故作者認為,設計TSM模組時候,儘可能多使用位移操作(幾乎0計算量),把權值疊加操作放到2D CNN本身的卷積裡去做,這樣就可在不加任何引數計算量基礎上,實現更多功能。

TSM模組:

那麼問題來了,怎麼在時空建模的視訊理解任務裡,用好這個位移操作呢?

 

Temporal shift module

上圖中最左邊的二維矩陣是 T_{i} 時刻 tensor中 temporal和 channel維度(不需要考慮 batch 和 spatial 維度先); 中間是通過STM模組位移後的的矩陣,可見前兩個channel向前位移一步來表徵T_{i-1} 的 feature maps,而第三、四個channel 則向後位移一步來表徵 T_{i+1} ,最後位移後的空缺 padding補零;右邊的與中間的類似,不過是 circulant 方式來 padding,後面實驗會對比兩種不同padding方式的效能差異。

這裡就涉及一個超參:究竟多少比例的channel進行 temporal shift 才比較合適呢?

作者也考慮到了這個問題,因為如果太多channel進行時間位移,那麼原始固定時刻幀的 2D CNN空間特徵就會受到損害,但如果太少channel進行時間位移,那麼網路又會因temporal上下文互動太少而學不到準確的temporal representation。

為了解決這個問題,作者提出了殘差TSM,這樣就可以整合位移前後的特徵。

原地TSM與殘差TSM

最後我們來看看用作動作/行為識別的整個框架:

TSM整體框架

文中使用的backbone是ResNet-50,且在每個 residual unit 後都會加入 殘差TSM 模組,當用2D 3x3的卷積時,每次插入TSM模組後的時間感受野都會擴大2,故整個框架最後的時間感受野會很大,足以進行復雜的時空建模。

 

 

實驗結果:

1. 首先在經典的動作/行為識別資料集上,與純2D CNN框架的 TSN baseline 進行對比。由於兩者都使用相同的backbone網路和下采樣方式,故唯一的不同就是有無加 TSM 模組。從表中可見,加入TSM後,特別在 複雜行為 Something-Something 集上效能有極大的提升。

TSM與TSN效能對比

2. 下圖是與 TSN, ECO, NL I3D+GCN 系列的效能綜合對比,可見TSM即使在輸入只有 8 frames的情況下,用最少的引數和浮點運算次數,來取得最高的識別效能,確實BT~~

Something-Something集上 識別效能與速度效能對比

3. 從下面兩圖可見,使用了Residual shift後,網路變得更加穩定,對 shifted channel數比例的依賴更小。而 zero padding 的效能明顯比 環形 padding 要好,因為後者的話會把 temporal 的順序打亂,導致學出來的時間特徵變混亂。

殘差/原地TSM及channel shift比例的超參實驗

不同Padding方式的效能對比

 

 

總結及展望:

文章 first 提出了 temporal shift 這個視角(感覺像是搞硬體底層或晶片的人來跨界融合搞演算法一樣~~),通過人為地排程 temporal channel 的順序讓網路學到其互動的時空特徵,非常地高效實用。

未來的可能效能否探索3D卷積與channel shift之間的新可能性?Temporal 維度multi-scale shifted 是否更有效?channel shift 的思想能否進一步放在其他複雜任務裡,比如4D的任務?

 

Reference:

[1]Ji Lin, Temporal Shift Module for Efficient Video Understanding

[2] Limin Wang, Temporal Segment Networks: Towards Good Practices for Deep Action Recognition, ECCV2016

[3]Bolei Zhou, Temporal Relational Reasoning in Videos,ECCV2018

[4]Mohammadreza Zolfaghari, ECO: Efficient Convolutional Network for Online Video Understanding,ECCV2018

[5] Xiaolong Wang, Videos as Space-Time Region Graphs, ECCV2018