TSN论文阅读

阅读之前

本文题目是Temporal Segment Networks for Action Recognition in Videos,可以看出主要介绍的是视频中的动作识别问题,那么很有必要对动作识别的具体任务稍作了解
https://zhuanlan.zhihu.com/p/34439558

一、了解TSN

TSN(Temporal Segment Networks)即时间段网络。

论文首先提出目前深层次的卷积神经网络在图像识别方面已经非常成功了,但是在视频识别上的优势并不明显。
然后引出TSN这种新的基于分段采样聚合的模块,用于对长范围时间结构建模,这种模型在动作识别方面通过平均池化和多尺度时间窗口融合可以轻松适应已剪辑的与未剪辑的视频。

TSN结构在几个动作识别数据集上的表现都不错,在UCF101上的准确率达到了94.9%。

二、为什么需要TSN?

2.1 传统方式进行视频中动作识别的障碍

使用一般的深层次卷积网络处理视频动作识别问题有以下三个障碍

  1. 侧重于短期动作,缺乏整合长范围时间结构的能力
  2. 要将模型应用于未剪辑视频,但无剪辑视频中动作可能只占视频很小一部分,需要排除其余背景视频的影响
  3. 数据量缺乏,易产生过拟合,并且光流提取短期运动信息在部署到大规模的数据集上时有计算瓶颈

这也就有了需要解决的三个问题

  • Q1:如何有效地学习长范围时间结构?
  • Q2:如何处理未剪辑视频,解决背景干扰问题?
  • Q3:如何利用有限的数据获得更好的表现?

之前的模型无法很好的解决这些问题。
首先是时间跨度长的视频动作识别,已有的模型主要针对的是单帧图像或者短期时间内的结构,它们处理长范围时间信息只能进行密集的采样,但是密集的采样会增加计算成本;其次就是训练数据较少,容易产生过拟合。

2.2 解决方式

作者提供了三个与之对应的解决方式

  • A1:为了捕获长范围时间结构,并且要避免成本过高,用稀疏采样代替密集采样。在视频中,连续帧之间往往具有高度冗余性,因此使用稀疏和全局时间采样更合适。具体的做法是,首先使用稀疏采样方案在长视频序列上提取短片段,视频首先被划分为固定数量的片段,从每个片段中随机采样,然后使用分段聚合函数聚合采样片段的信息。最后的分段采样函数尝试了五种,分别是平均池化、最大池化、加权平均、top-K池化和自适应注意力加权机制。
  • A2:为了将模型更好地应用在未剪辑视频中,使用多尺度时间窗口集成的分层聚合策略。首先将未剪辑的视频分割为一系列固定持续时间的短窗口,然后分别对这些窗口进行动作识别,最后采用top-K池化或者注意力加权聚合窗口预测结果,产生视频级别的识别结果。
  • A3:为了解决有限样本造成的问题,提出了一种跨模态初始化策略,将RGB模态转换到其他模态,如光流和RGB差分;其次使用部分BN,只用第一个BN层的均值和方差自适应更新处理域移位;此外,分别研究了四种类型的输入模式,即单个RGB、叠加RGB差分、叠加光流场和叠加扭曲光流场。

2.3 问题总结——论文三大贡献

  • 提出了一个端到端的框架,称为时间段网络(TSN),用于学习捕获长期时间信息的视频表示
  • 设计了一个分层聚合方案,将动作识别模型应用于未剪辑的视频
  • 调查了一系列学习和应用深度动作识别模型的良好实践

三、介绍TSN

3.1 网络架构图

TSN网络
首先将输入视频分为K个时间段(这里K为3),从每个段中随机选取一个短片段输入到网络中,该片段由RGB帧、光流或者RGB差分模型表示。不同片段的类分数通过分段聚合函数进行融合产生分段一致性,最终得到视频级的预测。
注:代码段上的所有convnet共享参数,所有模式的预测都要聚合以产生最终预测结果。

下面对结构的各部分分别进行解释。

3.2 采样方式

过去对长范围时间结构的建模通常是堆叠更多的连续帧,或者以固定速率采样更多帧,尽管这种密集和局部采样有助于缓解原始短期COVnet的问题,但是这种方式存在两个问题

  1. 从计算的角度看,密集采样通常需要大量帧来捕获远程结构,这将大大增加ConvNet训练的成本
  2. 从建模的角度看,它的时间覆盖仍然是局部的,并且受到固定采样间隔的限制,无法捕获整个视频中的视觉内容。

实际在视频中,内容变化较慢,所以上述采样方式获取的大量密集帧在它们表达的信息上是重复的,TSN使用了一种分段采样的策略,该策略本质上是一种稀疏全局采样。
在各种动作的视频中,只有少量的稀疏采样片段会被用于建模时间结构。一次训练迭代的采样帧数固定为一个预定义值,与视频的持续时间无关,这保证了无论需要处理的时间范围如何,计算成本都是恒定的。
在全局属性上,基于段的采样确保这些采样片段沿时间维度均匀分布。因此,无论动作视频持续多长时间,采样片段都将大致覆盖整个视频的视觉内容,使得模型能够具备在整个视频中建模长范围时间结构的能力。

需要特别明确的一点是,采样的目标是使这些采样片段代表整个视频的内容,同时保持合理的计算成本。

下面对整个过程进行介绍:
给定一个视频V,将其划分为K个持续时间相等的段 S 1 , S 2 , . . . , S K { {S_1,S_2,...,S_K}} S1,S2,...,SK,从对应的 S K S_K SK中随机抽取一个片段 T K T_K TK,然后时间段网络对片段序列 ( T 1 , T 2 , . . . , T K ) (T_1,T_2,...,T_K) (T1,T2,...,TK)建模

建模
结合我们在上面网络结构部分所阐述的内容做出解释

  1. F ( T k ; W ) F(T_k;W) F(Tk;W)代表 T k T_k Tk经过代表参数为W的卷积网络得到 T k T_k Tk在所有类上的分数
  2. G G G为分段的聚合函数,它将多个短片段的输出组合,融合之后得到它们之间的类别一致性
  3. H为预测函数,负责预测整个视频中每个动作类别的概率,这里选择H为softmax函数

3.3 后续计算

使用标准的交叉熵来计算聚合函数G的损失

G损失
其中, C C C是行动类的数量, y i y_i yi是第 i i i类的真实标签, g j g_j gj是G的第 j j j维。
基于此公式,可以推导出损失函数对模型参数 W W W
的梯度为
G梯度
其中K是时间段的段数。

可看出,参数更新利用了所有片段预测结果得出的分段一致性G,所以时间段网络可以从整个视频中学习参数。

3.4 聚合函数

主要有五种聚合函数,具体如下:

  1. Max pooling:最大池化应用于采样片段的预测函数( g i = m a x k f i k g_i=max_kf^k_i gi=maxkfik)。基本思想是为每个动作类寻找一个单一的、最有区别的片段,并利用这个最强的激活作为这个类别的视频级响应,将重点放在单个片段上,而完全忽略其他片段的响应。因此,缺乏为视频级动作理解联合建模多个片段的能力。
    最大池化梯度

  2. Average pooling:平均池化( g i = 1 K Σ k = 1 K f i k g_i=\frac{1}{K}\Sigma^K_{k=1}f^k_i gi=K1Σk=1Kfik)。基本思想是利用所有片段的响应进行动作识别,并使用它们的平均激活作为视频级别的预测。平均池化能够联合建模多个片段,并从整个视频中捕获视觉信息。但是对于复杂背景的嘈杂视频,一些片段可能与动作无关,这些背景片段加入平均可能会影响最终的识别性能。
    平均池化梯度

  3. Top-K pooling:Top-K池化是对最大池化和平均池化的折中,为每个操作类别选择K个最有区别的代码段,然后对这些选定的片段执行平均池化,即 g i = 1 K Σ k = 1 K α k f i k g_i=\frac{1}{K}\Sigma^K_{k=1}\alpha_kf^k_i gi=K1Σk=1Kαkfik α k α_k αk是选择的标记,如果选择,则设置为1,否则为0。最大池化和平均池化可分别看做是其K设置为1或K的特殊情况。
    这种方式兼顾最大池化和平均池化的优点,能够联合建模多个片段的同时避免背景片段的影响。
    Top-K梯度

  4. Linear weighting:对每个动作的预测分数线性加权( g i = Σ k = 1 K w k f i k g_i=\Sigma^K_{k=1}w_kf^k_i gi=Σk=1Kwkfik),交替性地更新网络权重和组合权重
    线性加权梯度
    将动作分解为不同阶段,可以学习不同阶段重要性的权重,但是权重与原本的数据无关,缺乏视频间分辨差异的能力。

  5. Attention weighting:在线性加权中,加入的权重与原本的数据无关,这里提出一种自适应加权方式,称为注意力加权,根据视频内容自动为每个片段分配重要性权重。即 g i = Σ k = 1 K A ( T k ) f i k g_i=\Sigma^K_{k=1}A(T_k)f^k_i gi=Σk=1KA(Tk)fik,其中 A ( T k ) A(T_k) A(Tk)是片段Tk的注意权重,根据视频内容自适应计算,其梯度更新方式为
    注意力加权梯度
    对于 A ( T k ) A(T_k) A(Tk)的设计,目前还未能完全明白,在此不做描述。

在五种聚合机制中,值得特别关注的是注意力加权,它引入了一个注意模型 A ( T k ) A(T_k) A(Tk),我们暂且不关注模型的设计过程,但是不可否认这种模型的优势还是很大的,它的优势主要来自两方面:

  • 注意模型通过基于视频内容自动估计每个片段的重要性权重来增强时间段网络框架的建模能力
  • 由于注意模型基于ConvNet表示,因此它利用额外的反向传播信息来指导ConvNet参数的学习过程W,并且可能加速训练的收敛。

四、TSN输入

对于TSN输入方式,论文中给出了四个示例
输入示例
以上分别是单一RGB图像、差分RGB、光流和扭曲光流场,具体内容不做介绍,可参看原文。

五、缓解过拟合问题

在一开始就谈到过,用于动作识别的数据集在大小方面是有限的,在这些数据集上训练深度convnet很容易过度拟合。为了缓解这个问题,本文设计了几种策略来改进时间段网络框架中的训练。

  1. 跨模态初始化:即使用其他输入模式预训练网络参数,并对参数进行初始化。
    因为空间网络是以RGB图像作为输入,所以可以对其他输入模式,如光流和差分RGB使用跨模式初始化策略。
    具体做法是,首先通过线性变换将光流场离散为0到255的区间,然后在第一层中对经过预训练的RGB模型在RGB通道上的权重进行平均,并通过时态网络输入的通道数复制平均值,最后直接从预训练的RGB网络复制时间网络剩余层的权重。
  2. 正则化(部分BN):在使用第一步预先训练好的模型初始化之后,冻结除第一层之外的所有批次标准化层的均值和方差参数,同时为了进一步减少过拟合,在全局池化层之后增加一个dropout层。
  3. 数据扩充:使用两种新的数据增强技术:角裁剪尺度抖动。在角点裁剪技术中,提取的区域仅从图像的角点或中心选择,以避免隐式地更多地聚焦于中心区域。在多尺度裁剪技术中,将ImageNet分类中使用的尺度抖动技术应用于动作识别。将输入大小固定为256×340,裁剪区域的宽度和高度从{256、224、192、168}中随机选择,最后,这些裁剪区域将调整为224×224,用于网络训练。

六、TSN实验结果

在这一部分,主要是进行消融实验,对比TSN在不同参数下的表现,并且与其他网络进行对比。

这里仅给出最后的表格8并对其做一个简单的介绍
table8
表格8展示了在HMDB51、UCF101、THUMOS14和ActivityNet数据集上,比较基于时间段网络(TSN)的方法与其他最新方法的结果,分别给出了使用TSN(3段)和TSN(7段)学习的模型的结果。可以看出TSN的表现明显优于其他几种算法。

猜你喜欢

转载自blog.csdn.net/qq_41533576/article/details/119733494
TSN