【CV-Action Recognition】Hidden Two-Stream Convolutional Networks for Action Recognition閱讀筆記

原文標題:Hidden Two-Stream Convolutional Networks for Action Recognition

motivation

Action Recognition領域主流方法之一是two-stream,包含兩個分支Spatial Stream和Temporal Stream。Spatial Stream可以通過CNN實現,但是Temporal Stream的optical flow需要提前計算。目前實現optical flow也有CNN實現的演算法,比如FlowNet,FlowNet2.0 。 傳統行為識別演算法有兩個缺點:

1、提前計算 optical flow需要額外佔用GPU計算時間和存儲空間,已經成為two-stream演算法的瓶頸。2、傳統的optical flow計算方法完全獨立於two-stream框架,不是端到端訓練,提前的運動信息不是最優的。

但是實現end-to-end也很有挑戰:沒有optical flow這類帶標註的數據集,不能使用在ImageNet等預訓練的模型,不能簡單使用傳統 optical flow estimation損失函數。

為了應對這些挑戰,論文首先訓練從視頻幀中生成運動信息的模型MotionNet,然後將MotionNet加入到temporal stream,實現整個模型的end-to-end行為預測目標。論文認為這種堆疊的temporal stream CNN優於傳統的兩階段方法:

1、模型不需要任何附加標籤信息,因此沒有前期資源需求。

2、模型計算高效,比傳統計算方法快10倍。

3、沒有額外存儲空間需求。

4、使用CNN計算光流有更多的改進空間。

因為在行為識別中已經隱含生成的運動信息,論文稱這種模型為hidden two-stream networks。不過需要注意的是,論文中生成的運動信息和傳統的光流信息是有區別的。

Architecture

MotionNet

如上圖所示Hidden Two-Stream Convolutional Networks,我沒首先看MotionNet部分,不就是encoder-decoder架構?這種架構在semantic segmentation經常看到。 論文把光流計算的過程看做是圖像重建的過程。比如相鄰的兩幀圖片I1和I2,CNN產生光流幀V。在給定V和I2情況下,能夠重建I1』幀圖像。損失函數的目標是最小化I1』和I1圖像的誤差。

論文中MotionNet是一個FCN,模型的架構和參數在論文的Table 1,上半部分是MotionNet,下半部分實現傳統的 temporal stream CNN。

為了產生良好的optical flow,MotionNet使用了三個損失函數:

1、標準的像素級重建誤差函數

2、平滑損失函數,解決光圈問題導致的運動信息的模糊性。

3、結構相似性(SSIM)損失函數可以幫助模型學習框架的結構。

MotionNet最終的損失函數是以上三個損失函數的疊加。

在訓練過程中,MotionNet使用三種網路架構進行對比:Tiny-MotionNet,VGG16-MotionNet 和ResNet50-MotionNet.

Stacked Temporal Stream

在MotionNet直接加入到temporal stream CNN之前,論文採取一些措施:

1、規範化計算的光流信息。

2、微調和損失函數選擇。論文通過對比採用MotionNet 和temporal stream CNN都進行微調,所有的損失函數都需要計算。

3、輸入圖像採用11幀疊加方式,生成10幀的光流信息。(在TABLE I中看到光流幀是20 channel,數目不一致!)

Branched Temporal Stream

論文使用共享參數的方式,既MotionNet的encoder過程和Temporal Stream CNN使用相同的參數

Experiment

論文的實驗環境是Intel Core I7 (4.00GHz) and an NVIDIA Titan X GPU.使用Caffe,並在github公開源代碼地址github.com/bryanyzhu/Hi

作者的模型在UCF101和HMDB51數據驗證,並且和各種光流生成方法對比,在精度和速度方面都取得領先優勢。

Conclusion

視頻行為識別的Two-Stream總算可以end-to-end實現,效果還不錯。視頻的很多應用領域,Pose Estimation,tracking是否也都可以通過Two-Stream實現?圖像識別的演算法很多是相通的,一個領域的突破應該帶來另一個領域的提高。

返回CV-Action Recognition目錄

返回CV總目錄


推薦閱讀:

沐神的第三代parameter server的worker節點只需要保存部分參數,怎麼理解?
CNN為什麼能使用在NLP?
如何利用深度學習打敗水哥王昱珩?
如何理解卷積神經網路中的權值共享?
最近看到udacity的納米學位很火,號稱學完可以找到工作了,這是真的嗎?

TAG:深度学习DeepLearning | 算法 | 计算机视觉 |