1. 程式人生 > >Learning Spatiotemporal Features with 3D Convolutional Networks學習筆記

Learning Spatiotemporal Features with 3D Convolutional Networks學習筆記

Learning Spatiotemporal Features with 3D Convolutional Networks

Du Tran, Lubomir Bourdev, Rob Fergus, Lorenzo Torresani, Manohar Paluri ICCV

論文主要通過使用了深度3維卷積神經網路(C3D)提出了一種簡單、高效的方法在大規模有監督視訊資料集上用於時域空域的特徵學習。主要的研究有3點:

  1. 3D卷積網路相對於3D卷積神經網路更加適合學習時域空域(spatiotemporal)特徵學習。
  2. 所有層採用3×3×3卷積核大小的網路結構能夠獲得最好的表現。
  3. 3D網路學習到的特徵輸入到簡單的線性分類器(多分類線性SVM)相對於其它方法能夠獲得比較好的表現。

    有效的視訊特徵描述符的4個性能:

    1. generic
      • 能夠很好地表示不同型別的視訊,具有強大的區分能力
    2. compact
      • 我們是在處理數百萬個視訊,一個緊緻的視訊描述符有助於快速處理、儲存和檢索大規模的的任務
    3. efficient
      • 高效計算,成千上萬個視訊能夠實時處理
    4. simple
      • 特徵描述符簡單,能夠快速實施。

論文貢獻:

1):通過實驗表明,3DConvNet是一個很好的特徵提取器,不管是在表象還是在運動資訊上。

2):通過實驗表明,所有層採用大小為3×3×3卷積核能夠獲得更好的表現

3):提取的特徵通過簡單的線性模型在4個不同任務,6個不同benchmarks上 超出或接近目前最好的方法(如下圖)。他們 足夠緊緻,並且能夠高效計算。

通過3DConvNet學習特徵

2D ConvNet輸入一幅影象,輸出為一幅影象

2D ConvNet輸入多幅影象(把他們視作多通道),輸出為一幅影象

因此2D網路將輸入訊號向有傳播時丟失了時域資訊,只有3DConvNet能夠保持時域資訊,輸出結果為一個輸出流如下圖所示。同樣的現象適用於下采樣層。

大多數的網路在輸入資料經過第一層卷積層之後就完全丟失了時域的資訊。李飛飛的那篇文章Slow Fusion model使用了3D卷積並且在其前3層卷積層後使用平均下采樣,因此取得不錯效果,但是這個網路在第3層之後仍然丟失了時域資訊。

  • Notation
    • videoclips:c×l×h×w
      c:表示通道數量; l:表示幀的長度 ;h:高度;w:寬度
    • kernelsize:d×k×k
      d:表示核的時域深度;k:表示核的空間尺寸

1、一般的網路設定

這個部分介紹我們訓練的網路相同的設定,網路將UCF101視訊片段作為輸入,然後預測輸出的類別。

  • 所有的視訊幀resized into 128×171,大概是原始視訊解析度的一半。
  • 視訊分割為不重疊的16幀視訊片段,作為網路的輸入。
  • 輸入維度為3×16×128×171,訓練階段使用抖動(jittering by using random crops),尺寸變為
    3×16×112×112
  • 網路有5層卷積層,5層下采樣層(連線在5層卷積層),2層全連線層,1層softmax分類層。
    5層卷積層的卷積核數量依次分別為(64,128,256,256,256).
  • 每一個卷積核有一個時域核深度為d, 通過改變d的取值,設計一個好的3D網路結構。卷積核的步長設定為1,所有的下采樣層尺寸為2×2×2(第一層pooling除外),第一層為1×2×2.
  • 所有的全連線層有2048個單元,mini-batch=30clips, 初始化 learning rate =0.003;每4個週期過後,學習速率除以10,迭代16個週期後結束。

2、改變網路結構

為了研究這個目的,我們主要感興趣的地方在於怎麼通過網路融合時域資訊。我們在保持網路的其他相同設定的前提下,只改變卷積層的時域深度d_i。由此設定了兩種不同的方案:

  • 每一卷積層有相同的時域網路深度。測試深度分別為 1,3,5,7四種情況
  • 隨著網路,時域的深度發生改變。測試兩種情況下的網路結構,分別為一種是時域深度隨著網路向前傳播增加(3-3-5-5-7),另一種隨著網路的向前傳播深度減小(7-5-5-3-3)。

所有的這些網路在最後的下采樣層輸出訊號擁有相同的尺寸,因此他們在全連線層有相同數量的網路引數,由於時域的深度不同,所以卷積層的引數數量不同。但是對於全連線層數百萬的引數,卷積層不同的數量規模是非常小的。例如上面深度差2的網路,只有17K引數數量多於或者少於彼此。depth-1和depth-7網路之間進行比較,depth-7有比depth-1多51K的引數,但是隻相對於17.5百萬的網路結構的總引數,相差的規模不到0.3%。

得出結論,網路的學習能力是相當的,引數數量的不同不會影響網路的結果。

探索時域的深度

在UCF101分支1上訓練這個網路,圖2展示了不同網路的視訊片段取得的準確度。

可以發現,不管是相同的網路深度還是不同的網路深度之間的比較,當時域深度為3的時候效果最好,而且是全部卷積層的深度均為3×3×3

時域空域特徵學習

網路結構:基於當前的GPU,我們設計的3D網路有8個卷積層,5個下采樣層,後面接著2個全連線層和1個softmax層,網路結構及相關引數如下圖所示:

我們稱這個網路為C3D.所有的卷積濾波器網路深度為3×3×3,1×1×1.

Dataset:為了學習時域空域特徵資訊,我們在Sports-1M上訓練我們的網路,該資料集有1.1million 運動視訊,共487類。

Training:訓練過程是在Sports-1M訓練分支上完成的,,Sports-1M擁有大量的長視訊,

  • 資料準備:
    • 提取片段:對於每一個訓練視訊,我們隨機提取5個時長為2s的視訊片段。
    • resized: 調整大小為128×171
  • 訓練階段:
    • 裁切(crop):將輸入視訊片段隨機剪下為16×112×112
    • 水平翻轉:50%的概率
    • SGD with mini-batch size = 30;
    • 初始學習速率為0.003,每150K次迭代除以2.
    • 最優化過程在1.9M次 (13個週期)
    • 除了用C3D網路從頭開始訓練,我們同樣使用在I380K上預訓練的模型進行微調。

Sports-1M分類結果:表二表示了C3D網路的結果以及 Deep-Video(李飛飛)和Convolution pooling的結果。

  • clip hit:在視訊片段預測(clip)中,我們使用一個視訊片段的中間的裁切部分,輸入到網路中進行預測.
  • Video hit:對從視訊中提取的10個視訊片段的預測結果求平均值得到視訊預測分類的結果。

3

  1. DeepVideo每一個視訊片段預測採用了4個裁切,每個視訊預測採用了80個裁切;而C3D分別是1和10.
  2. C3D的效果仍然比DeepVideo準確度更高。
  3. C3D的方法效果比Convolution pooling效果差5.6%.主要在於這個方法每個片段使用了120幀。

    C3D 視訊描述符 :在網路訓練之後,C3D可以用作一個特徵提取器,從而對其他的視訊進行視訊分析。為了提取C3D特徵,一個視訊被分割為16幀長的視訊片段,其中8幀為連續片段的重疊幀。這些視訊片段輸入到C3D網路,提取fc6響應。fc6響應平均之後組成1個4096維度的視訊描述符,然後進行L2-正則化。我們將fc6層輸出後的響應正則化後作為視訊的描述符(特徵)。
    what does C3D learn?:可以通過反捲積來視覺化每一層學習到的內容。C3D區別C2D網路的地方主要是運動資訊和表象。

    運動識別
    Dataset:我們在UCF101資料集上評價我們的C3D網路,這個資料集包括13320個視訊,110類。我們使用資料集提供的3個分割。
    分類模型:提取C3D特徵,並且將它們輸入多分類的線性SVM分類器作為訓練模型。我們通過使用3個不同網路的C3D描述符進行實驗:C3D trained on I380K,C3D trained on Sports-1M,C3D trained on I380K 並在Sports-1M上微調。
    Results:表3顯示了C3D以及其他方法運動識別的精度。如下圖所示:

    • C3D(1net):輸出的維度為4096,獲得了82.3%的精度。
    • C3D(3nets):輸出維度為12288,獲得了85.2%的精度。
    • C3D(3nets)+iDT獲得了90.4%的精度。C3D結合ImageNet只獲得了0.6%的提高,這表明了C3D網路可以很好獲取表象和運動資訊,因此沒有必要結合ImageNet.
    • C3D結合iDT兩者之間能夠很好的對彼此進行補充,事實上,iDT是基於光流追蹤和低層次梯度直方圖,而C3D能夠獲取較高層次抽象的語義資訊。
    • C3D在Sports-1M上訓練,但是沒有在任何其他的資料集上進行微調。(有點不明白,不是結合了3個網路,而其中有一個網路是進行了微調嗎?)
      * C3D is compact: *為了檢驗C3D特徵的緊緻性,我們使用PCA降維技術將提取的高維特徵對映到低維空間,並且在UCF101資料集上使用對映特徵檢驗分類的準確性,同樣使用了SVM。結果如圖5所示:
      可以發現在對映的特徵維度為10時,C3D能夠獲得52.8%的準確度,比ImageNet及iDT的32%高20%以上;當維度為50和100時,C3D獲得準確度分別為72.6%和75.6%,這比另外兩種方法高個10%到20%;最後維度為500時,C3D可以獲得79.4%的準確度,比iDT結果高6%,比ImageNet高11%。
      -

    4、結論

    論文主要提出了通過3D ConvNet在大規模視訊資料集上訓練 學習視訊時域空域資訊。同時找到了3DConvNet 最佳的時域核深度,可以發現3DConvNet可以很好的表示表象和運動資訊。3DConvNet 提取的特徵輸入到多分類線性濾波器(SVM)優於或者接近當前最好的方法。我們提取的特徵高效、緊緻、使用簡單。