《Action Recognition》-Temporal Segement Network(TSN)
Motivation
TSN网络的主要motivation如下:
-
设计一个有效和高效的视频级框架来训练视频分类,能够捕获长期的时间信息
在Two-stream 网络中的一个显著的问题就是它不能很好的利用long-range的时序信息,因为输入是一帧RGB的图像和图像的堆叠光流信息。而TSN在整个视频进行多帧采样,每个采样都会输出一个预测值,利用到了整个视频的时序信息,建立了video级别的网络。 -
如何在训练样本较少的情况下训练网络
a).跨模态训练
b).regularization
c).数据增强
Framework
一段输入视频被均分成K段,在每个片段中随机采样得到RGB图像及其对应的optical flow,分别输入到Spatial Convnet和Temporal Convnet中,将各个模态的每个类别的分数进行融合就得到了各个模态的分数,最后融合各个模态的预测,就得到了最后的类别分数,值得注意的是,各个片段的网络共享权重。在这里,Spatial Convnet和Temporal Convnet采用的都是BN_Inception结构,片段分数的融合采用平均值法。
- 正向传播
T S N ( T 1 , T 2 , . . . , T k ) = H ( G ( F ( T 1 ; W ) , F ( T 2 ; W ) , . . . , F ( T k ; W ) ) ) F : 卷 积 网 络 层 G : 分 数 融 合 , 文 章 采 用 e v e n t l y a v e r a g i n g H : S o f t m a x TSN(T_1,T_2,...,T_k)=H(G(F(T_1;W),F(T_2;W),...,F(T_k;W))) \\ F:卷积网络层 \\ G:分数融合,文章采用evently \quad averaging \\ H:Softmax TSN(T1,T2,...,Tk)=H(G(F(T1;W),F(T2;W),...,F(Tk;W)))F:卷积网络层G:分数融合,文章采用eventlyaveragingH:Softmax
- 损失函数
L ( y , G ) = − ∑ i = 1 C y i ( G i − log ∑ j = 1 C exp G j ) \mathcal{L}(y, \mathbf{G})=-\sum_{i=1}^{C} y_{i}\left(G_{i}-\log \sum_{j=1}^{C} \exp G_{j}\right) L(y,G)=−i=1∑Cyi(Gi−logj=1∑CexpGj) - 反向传播
∂ L ( y , G ) ∂ W = ∂ L ∂ G ∑ k = 1 K ∂ G ∂ F ( T k ) ∂ F ( T k ) ∂ W \frac{\partial \mathcal{L}(y, \mathbf{G})}{\partial \mathbf{W}}=\frac{\partial \mathcal{L}}{\partial \mathbf{G}} \sum_{k=1}^{K} \frac{\partial \mathcal{G}}{\partial \mathcal{F}\left(T_{k}\right)} \frac{\partial \mathcal{F}\left(T_{k}\right)}{\partial \mathbf{W}} ∂W∂L(y,G)=∂G∂Lk=1∑K∂F(Tk)∂G∂W∂F(Tk)
网络的训练
Input
除了 RGB 图像和 optical flow 外,作者还尝试了其他类型的输入,如 RGB difference, warped optical flow fileds:
Training
- Cross Modality Pre-training
对于spatial network,可以使用ImageNet进行预训练模型的参数进行初始化,但对于optical flow呢?作者提出了一种跨模态训练的方式来初始化temporal network的参数,简单来讲,首先把光流图像的值线性映射到0至255,然后把spatial network的第一层卷积层的参数在各通道进行平均后复制到temporal network第一层卷积层各通道的参数。 - Regularization Techniques
采用了BN层,但为了防止过拟合,冻结第一个BN层以外的每个BN层的 mean 和 variance parameters ,这是因为optical flow 和RGB图像的激活值的数值分布存在差异。 - Data Augmentation
random cropping and horizontal flipping
new:corner cropping and scale-jittering
Result
-
不同输入对比
-
不同backbone的对比
-
主要的提升点对比
-
Compare with SOTA