文章位址:《TEA: Temporal Excitation and Aggregation for Action Recognition》
代碼位址:暫無
該文章發表于CVPR2020,文章認為對于視訊動作識别需要将視訊的short-range資訊和long-range資訊都利用起來。是以文章提出了兩個子產品,motion excitation (ME) module用來提取short-range資訊, multiple temporal aggregation (MTA) module用來提取long-range資訊。
一、網絡結構
網絡結構如下圖所示

對于一個輸入視訊,首先将視訊等分為T份,然後從每一份中随機抽取一幀,将抽取出的T幀作為網絡的輸入。文章的模型是基于2D CNN ResNet改進的,改進方法就是加入ME和MTA來構成 Temporal Excitation and Aggregation(TEA) block。
ME和MTA的結構如下圖所示
1.1 motion excitation (ME) module
文章認為特征的不同通道擷取到了不同的資訊,比如一部分通道用來學習背景資訊,其它通道學習動态的運動資訊,而ME子產品就是為了發現并加強學習動态運動資訊的通道。
如上圖所示,ME的輸入為X,其次元為 [ N , T , C , H , W ] [N,T,C,H,W] [N,T,C,H,W],N表示batch size,T表示時間次元,C表示特征通道次元,H、W分别為特征的空間次元。
首先X經過一個 1 × 1 1\times 1 1×1的2D卷積來減少通道數,提高計算效率。
X r = c o n v r e d ∗ X , X r ∈ R N × T × C / r × H × W X^r=conv_{red}*X, X^r\in R^{N\times T\times C/r \times H \times W} Xr=convred∗X,Xr∈RN×T×C/r×H×W
其中 X r X^r Xr表示卷積輸出的特征,*表示卷積操作, r = 16 r=16 r=16表示減少的通道數。
接下來要估計計算t時刻兩個相鄰幀之間的差别,差别的展現不是直接采用原始特征相減,而是經過一個channel-wise transformation然後在進行做差操作,公式表示為
M ( t ) = c o n v t r a n s ∗ X r ( t + 1 ) − X r ( t ) , 1 ≤ t ≤ T − 1 M(t)=conv_{trans}*X^r(t+1)-X^r(t),1\leq t\leq T-1 M(t)=convtrans∗Xr(t+1)−Xr(t),1≤t≤T−1
其中, M ( t ) ∈ R N × C / r × H × W M(t)\in R^{N\times C/r\times H\times W} M(t)∈RN×C/r×H×W是t時刻的運動特征。 c o n v t r a n s conv_{trans} convtrans是一個 3 × 3 3\times 3 3×3的2D channel-wise卷積。
這裡還需要注意,上述做差操作,在T時刻是沒有的,這裡定義 M ( T ) = 0 M(T)=0 M(T)=0,這樣将上述所有的內插補點進行從concatenate得到所有的運動特征 [ M ( 1 ) , . . . , M ( T ) ] [M(1), ..., M(T)] [M(1),...,M(T)]。
接着将上述特征輸入空間的global average pooling層
M s = P o o l ( M ) , M s ∈ R N × T × C / r × 1 × 1 M^s=Pool(M), M^s\in R^{N\times T\times C/r\times 1 \times 1} Ms=Pool(M),Ms∈RN×T×C/r×1×1
再接着 M s M^s Ms通過一個 1 × 1 1\times 1 1×1的2D卷積 c o n v e x p conv_{exp} convexp将特征的通道數還原為C,再送入sigmoid function,進而得到了一個motion-attentive權重A。
A = 2 δ ( c o n v e x p ∗ M s ) − 1 , A ∈ R N × T × C × 1 × 1 A=2\delta(conv_{exp}*M^s)-1, A\in R^{N\times T\times C\times 1\times 1} A=2δ(convexp∗Ms)−1,A∈RN×T×C×1×1
其中 δ \delta δ表示sigmoid操作。
因為ME子產品最終的目的是加強運動資訊通道的特征,簡單的做法就是利用A與X相乘,然而這樣直接相乘可能會影響子產品對背景提取的能力,為了解決這個問題,文章采用了residual的方式,在增強運動資訊的同時保留原始資訊。公式表示如下:
X o = X + X ⊙ A , X o ∈ R N × T × C × H × W X^o=X+X\odot A, X^o\in R^{N\times T\times C\times H\times W} Xo=X+X⊙A,Xo∈RN×T×C×H×W
X o X^o Xo是ME子產品最終的輸出, ⊙ \odot ⊙表示channel-wise的乘積。
這一系列操作很像SEnet中的attention操作,文章讨論了與SE的幾點不同:
- ME子產品是針對視訊提出來的,SE是針對圖檔任務
- SE是為了增強特征中通道資訊,ME是為了增強motion-sensitive資訊
- SE會抑制一些無用的通道,但ME會通過residual結構保留靜态的背景資訊
可以看出通過利用相鄰兩幀特征的差别,來擷取motion-sensitive attention資訊,這樣ME就可以很好的加強了short-range資訊。
1.2 multiple temporal aggregation (MTA)
MTA結構類似于Res2net,子產品輸入為X,然後将X在通道次元劃分為4部分,每一部分的次元為 [ N , T , C / 4 , H , W ] [N,T,C/4,H,W] [N,T,C/4,H,W]。
MTA子產品用公式表示如下:
X i o = X i , i = 1 , X^o_i=X_i, \quad i=1, Xio=Xi,i=1,
X i o = c o n v s p a ∗ ( c o n v t e m p ∗ X i ) , i = 2 , X^o_i=conv_{spa}*(conv_{temp}*X_i), \quad i=2, Xio=convspa∗(convtemp∗Xi),i=2,
X i o = c o n v s p a ∗ ( c o n v t e m p ∗ ( X i + X i − 1 ) ) , i = 3 , 4 , X^o_i=conv_{spa}*(conv_{temp}*(X_i+X_{i-1})), \quad i=3,4, Xio=convspa∗(convtemp∗(Xi+Xi−1)),i=3,4,
其中 X i o ∈ R N × T × C / 4 × H × W X^o_i\in R^{N\times T\times C/4 \times H\times W} Xio∈RN×T×C/4×H×W表示每部分的輸出, c o n v t e m p conv_{temp} convtemp表示kernel size為3的1D channel-wise時序卷積, c o n v s p a conv_{spa} convspa表示 3 × 3 3\times 3 3×3 2D空間卷積。
MTA子產品最終的輸入為幾個部分輸出的concatenate結果
X o = [ X 1 o ; X 2 o ; X 3 o ; X 4 o ] , X o ∈ R N × T × C × H × W X^o=[X^o_1;X^o_2;X^o_3;X^o_4], X^o\in R^{N\times T\times C\times H\times W} Xo=[X1o;X2o;X3o;X4o],Xo∈RN×T×C×H×W
可以看出MTA每個部分的感受野是不一樣的,文章認為這種結構比強行堆疊多個卷積操作效果要好且計算更高效。
1.3 将ME與MTA整合進resnet block
整合方式如下圖所示
視訊算法交流qq群:657626967