[論文筆記] I3D

論文概述

純屬個人理解,梳理自己思路用,僅供參考(可能會有標點錯誤或語句不通順 +_+)

論文主要貢獻是提出了Inflated 3D conv,為了應對視頻分類領域數據集缺乏,避免之前只能從頭在小數據上訓練的囧境,文章利用I3D將在Imagenet上訓練成功的經典模型遷移學習到video數據集上,並藉助two-stream結構實現了目前最好的效果,80.9%(HMDB)和98.0%(UCF-101)。

行為分類的結構

基於靜態圖片的cnn已經有很多有效的網路結構,而基於視頻的cnn目前處於發展階段。視頻相關的網路結構區分,可以根據是使用2D conv還是3D conv?是使用RGB輸入還是RGB+optical flow?是使用LSTM做時間建模還是通過其他方式融合temporal特徵?

簡要的可以分為以下四種結構,除了C3D的網路,其他都或多或少利用Imagenet的訓練模型。

  • 方法1:ConvNet+LSTM

    該方案主要考慮到cnn在圖像分類領域的成功以及LSTM對於序列建模的能力,很自然提出將兩者結合起來的方案。如果只是用cnn的話,需要對每一幀都提取特徵,然後將視頻的所有幀特徵進行總匯,以此來表達對視頻的表示,顯然這樣做忽略的時間結構特徵。而LSTM可以處理長時間依賴的問題,可以對視頻從第一幀開始建模直到最後一幀,使用cnn網路對每幀提取特徵,然後將特徵送入LSTM來捕捉時間特徵,最後一幀的輸出用來對視頻特徵表示。

    LSTM往往依賴cnn的最後一層特徵最為輸入,因此不能夠捕捉到low-level motion的特徵,而且對於遍歷整個視頻也很難去訓練。

  • 方法2:3D ConvNets 3D ConvNets是對視頻建模最自然的方式,和標準cnn區別在於由2d conv變為3d conv,來捕捉spatio-temporal feature。想法很好,但目前遇到一些問題,問題一:3D ConvNets3d conv多了一個維度,參數量有較大增加,這將會很難去訓練。問題二:沒有利用那些Imagenet上成功的預訓練模型來遷移學習,往往使用層數少的cnn在小數據集上從頭訓練。簡要說就是要利用已有預訓練模型,要減少參數或增大數據集。

    論文中實現了C3D(與原版略有差異)有8 conv layer、5 pooling layer 和 2 fc layer,並在所有圈卷積層和fc層加bn。輸入是16×112×112(通過crop方法),將第一個pooling layer對時間的stride由1變成2,為了可以減少memory和允許更大batch。
  • 方法3:Two-Stream Networks

    該方案利用短的視頻段來建模,用每個clip的預測分數平均的方式(其實C3D也是類似),但不同的是輸入,包括一張RGB和10張optical flow(其實是5張,x/y兩個方向,運動特徵)。模型能使用two-branch方式,利用預訓練的imagenet模型,最後將預測結果平均下(最原始的,或者在最後softmax做融合),這樣建模的模型比較好訓練,同時也能獲得更高的分數。

    模型的兩個輸入流也可以在後面的cnn層來進行融合,以提升相同,同時可以end-to-end訓練。論文實現一個類似的two-stream方案,在最後一層用3d conv將spatial和flow特徵進行融合。
  • 方法4:Two-Stream Inflated 3D ConvNets

    該方案是論文提出的,出發點是要利用imagenet的預訓練模型,同時利用3d conv來提取RGB streamtemporal feature,最後再利用optical-flow stream提升網路性能,也就大融合的方案(把有效的技巧都用上)。

    通過對預訓練的2D conv增加temporal維度,把N×N的filter變為N×N×N。簡單的辦法就是對N×N的filter重複複製N遍,並歸一化,這樣多的出發點是短期內時間不變性的假設,姑且把這當成3D filter初始化的一種策略吧。

    池化操作怎麼膨脹?stride怎麼選?主要依賴感受野尺寸,如果圖像水平方向和豎直方向相等,那麼stride也相等,而且越深的特徵感受野越大。但是考慮到時間因素,對稱感受野不是必須的,這主要還是依賴幀率和圖片大小。時間相對於空間變化過快,將合併不同object的邊信息,過慢將不能捕捉場景變化。

    雖然3D conv能夠捕捉motion信息,但是與光流優化的方式和效果還是不一樣,因此使用two-stream的方式構建,並分開訓練兩個網路。


數據集不同,評測結果也不同。flow在UCF-101上效果比HMDB-51、kinetics上好(有更多camera運動的原因)。

在imagenet上訓練後遷移到kinetics和直接在kinetics上的對比,遷移後的效果好,說明RGB流起的作用大。整體上I3D模型參數更少,更深,訓練輸入在時間和空間維度上都比C3D大。


推薦閱讀:

TAG:深度學習DeepLearning | 計算機視覺 |