cv論文筆記(動作識別1):Convolutional Two-Stream Network Fusion for Video Action Recognition

一、基本信息

標題:Convolutional Two-Stream Network Fusion for Video Action Recognition
時間:2016
引用格式:Feichtenhofer C, Pinz A, Zisserman A. Convolutional two-stream network fusion for video action recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 1933-1941.

二、研究背景

本文是對標準原始2-steam網絡進行改進,和原始2-steam網絡在softmax後融合分數不同的是,本文提出在卷積層進行融合,以此學習在空間域和時間域的融合關係,而後再把這種融合關係應用到網絡中。

視頻動作識別領域卷積神經網絡還不如向人臉識別,物體分類,動作識別領域那麼表現優秀。原因:

  1. 一個原因是訓練數據太少或者噪音太多。和圖像分類相比,視頻動作識別還受到運動和視角的影響。所以可能需要更多的訓練樣本。
  2. 另一個原因是卷積神經網絡架構目前還不能很好的對時間域的信息進行有效利用,目前作用還是集中在空間域,比如物體識別。
    而Two-Stream的架構通過獨立的訓練兩個卷積神經網絡:
    通過分別爲靜態圖像的外觀和堆疊的光流獨立的訓練ConvNets。

在這裏插入圖片描述

分爲兩個流:

  • 空間流處理靜止圖像幀,得到形狀信息
  • 時間流處理連續多幀稠密光流,得到運動信息
    兩個流最後經過SoftMax後,做分類分數的融合

缺點:

  • 無法學習到時間特徵和空間特徵的像素間的對應關係
  • 如何隨時間演變的(對時間維度的利用很有限,空間網絡只用了1幀,時間網絡只用了10幀)

空間流卷積網絡:
輸入的就是一幀,因此可以用ImageNet預訓練,識別動作

時間流卷積網絡:
在這裏插入圖片描述
上圖計算2幀之間的位移向量(上圖藍色窗口的位移在c中),IτRw×h×2LI_{\tau} \in \mathbb{R}^{w \times h \times 2 L}
在這裏插入圖片描述
光流堆: 圖片w * h中每個位置p有L*2層(*2代表分爲x和y方向位移)
Iτ(u,v,2k1)=dτ+k1x(pk)Iτ(u,v,2k)=dτ+k1y(pk),u=[1;w],v=[1;h],k=[1;L]\begin{array}{l} I_{\tau}(u, v, 2 k-1)=d_{\tau+k-1}^{x}\left(\mathbf{p}_{k}\right) \\ I_{\tau}(u, v, 2 k)=d_{\tau+k-1}^{y}\left(\mathbf{p}_{k}\right), \quad u=[1 ; w], v=[1 ; h], k=[1 ; L] \end{array}

在這裏插入圖片描述
運動軌跡堆:有遞推式
p1=(u,v);pk=pk1+dτ+k2(pk1),k>1\mathbf{p}_{1}=(u, v) ; \quad \mathbf{p}_{k}=\mathbf{p}_{k-1}+\mathbf{d}_{\tau+k-2}\left(\mathbf{p}_{k-1}\right), k>1

三、創新點

空間域融合(Spatial fusion)

融合方式:
 Sum fusion ysum=xta+xtbysumRH×W×D Max fusion ymax=max(xta,xtb)ymaxRH×W×D Concat fusion ycat =cat(3,xta,xtb)ycat RH×W×2D Conv fusion yconv =ycat f+bfR1×1×2D×D,bRDyconv RH×W×D Biliner fusion ybil =j=1Mi=1Mxi,jaxi,jbybilRD×D\begin{array}{ccc} \text { Sum fusion } & y^{s u m}=x_{t}^{a}+x_{t}^{b} & y^{s u m} \in R^{H \times W \times D} \\ \text { Max fusion } & y^{\max }=\max \left(x_{t}^{a}, x_{t}^{b}\right) & y^{\max } \in R^{H \times W \times D} \\ \text { Concat fusion } & y^{\text {cat }}=\operatorname{cat}\left(3, x_{t}^{a}, x_{t}^{b}\right) & y^{\text {cat }} \in R^{H \times W \times 2 D} \\ \text { Conv fusion } & y^{\text {conv }}=y^{\text {cat }} * f+b & \begin{array}{c} f \in R^{1 \times 1 \times 2 D \times D}, b \in R^{D} \\ y^{\text {conv }} \in R^{H \times W \times D} \end{array} \\ \text { Biliner fusion } & y^{\text {bil }}=\sum_{j=1}^{M} \sum_{i=1}^{M} x_{i, j}^{a} \otimes x_{i, j}^{b} & y^{b i l} \in R^{D \times D} \end{array}
連接方式比較:
在這裏插入圖片描述

sum和max沒有改變維數D
cat保留了2個網絡,因此通道數爲2D,全連接參數翻倍
conv在cat基礎上卷積,卷積核的通道就是2D,數目D個,因此通道又變爲D,但是增加了卷積參數和偏置項b
bil沒太明白原理,D維叉乘的意義是什麼呢

在這裏插入圖片描述
融合位置:
上邊的例子展示了在conv4之後的fusion。
而右邊的例子展示了兩次融合。分別在conv5和fc8。右邊的例子最後在第一次融合後,仍然獨立保持了兩個網絡,一個是時空混合的網絡,一個是獨立的空間的網絡。
在這裏插入圖片描述
融合太淺的層會減弱效果,比如最後一行

時間域融合(Temporal fusion)

在這裏插入圖片描述

2D Pooling:把網絡對不同時刻的預測值進行平均。這種架構只是在2D上進行pooling 。
3D Pooling:用max-pooling對一個大小爲 W‘ * H’ * T‘ 的立方體進行3D pooling。
3D Conv+Pooling: 用個filter組成的f( W * H * T* D * D‘ )對四維(W * H * T * D)的input x 進行卷積,加上一個biases ,輸出y = x * f + b ( D‘ )然後再接3D pooling。 f的作用是對局部時空features的融合權重化。

總體結構

卷積學習時域(綠)和空域(藍)的權重(對應關係),同時也能學習局部x, y, t權重。
融合後的時空流和獨立的時域流都在通過在時間和空間上的3D pooling去學習時空(左)以及獨立的時域(右)features,然後用來識別輸入的視頻。
在這裏插入圖片描述

四、實驗結果

在這裏插入圖片描述
參數更少的情況下,性能有所提升

五、結論與思考

作者結論

總結

與以前的方法相比,新的結構沒有顯著增加參數的數量,但在兩個標準基準數據集上超過了現有的水平。
結果表明,在空間和時間上高度抽象的卷積網絡特徵之間的學習對應關係的重要性。

思考

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章