【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公開源代碼地址https://github.com/bryanyzhu/Hidden-Two-Stream
作者的模型在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 | 算法 | 计算机视觉 |