论文地址:https://arxiv.org/abs/2010.11929
代码链接:GitHub - yjxiong/temporal-segment-networks: Code & Models for Temporal Segment Networks (TSN) in ECCV 2016
《Temporal Segment Networks: Towards Good Practices for Deep Action Recognition》是由Limin Wang等人于2016年在European Conference on Computer Vision(ECCV)上发表的论文。该论文介绍了一种名为Temporal Segment Networks(TSN)的模型,旨在改善视频动作识别任务的性能,并提出了一些优化实践方法。
论文中指出,传统的深度学习方法在处理视频动作识别任务时面临着两个主要问题:1)缺乏对时间信息的充分利用,2)在训练过程中需要大量的标注帧。为了解决这些问题,作者提出了TSN模型和一些优化实践。
TSN模型的核心思想是采用时序抽样策略,将视频分割为多个时间段(segments)。对于每个时间段内的帧,通过卷积神经网络(CNN)进行特征提取,并将这些特征输入到一个二分类器中,用于判断视频中是否存在某个特定的动作类别。最终,通过对多个时间段内的特征进行平均或投票等集成策略,得出视频的分类结果。
此外,论文中还提出了一些优化实践方法,包括数据增强技术和网络结构设计。数据增强方法包括随机裁剪、随机水平翻转和颜色抖动等,以增加数据的多样性和模型的鲁棒性。网络结构设计方面,作者采用了Inception结构和三维卷积等技术,以提取视频中的时空特征。
通过在多个视频动作识别数据集上进行实验证明,TSN模型及其优化实践方法在性能上超过了传统的方法,并达到了当时最先进的水平。
摘要:深度卷积网络在静态图像的视觉识别方面取得了巨大的成功。然而,对于视频中的动作识别,与传统方法的优势并不那么明显。本文旨在发现设计有效的视频动作识别架构的原理,并在有限的训练样本的情况下学习这些模型。我们的第一个贡献是时间段网络(TSN),这是一个新的基于视频的动作识别框架。这是基于远程时间结构建模的思想。它结合了稀疏时间采样策略和视频级监督,使整个动作视频能够有效地学习。另一个贡献是我们在时间段网络的帮助下对视频数据学习的一系列良好实践。我们的方法在HMDB51(69.4%)和UCF101(94.2%)的数据集上获得了最先进的性能。我们还可视化了学习到的卷积神经模型,这定性地证明了时间段网络的有效性和所提出的良好实践。
关键词:动作识别,时序段网络,良好实践,卷积神经网络
基于视频的动作识别由于其在安全和行为分析等许多领域的应用,已经引起了学术界[1,2,3,4,5,6]的大量关注。在行动识别中,有两个关键的和互补的方面:外观和动力学。识别系统的性能在很大程度上取决于它是否能够从其中提取和利用相关信息。然而,由于一些复杂性,如尺度变化,视点变化,和相机运动。因此,设计能够处理这些挑战,同时保留动作类的分类信息变得至关重要。最近,卷积网络(ConvNets)在对物体、场景和复杂事件的图像进行分类方面取得了巨大的成功。并引入卷网络来解决基于视频的动作识别[12,1,13,14]问题。深度卷积集具有强大的建模能力,并能够在大规模监督数据集的帮助下从原始视觉数据中学习鉴别表示。然而,与图像分类不同的是,端到端深度视频动作识别仍然无法取得比传统手工功能的显著优势。
我们认为,convnet在基于视频的动作识别中的应用受到两个主要障碍的阻碍。首先,长程时间结构在理解动作视频[15,16,17,18]的动态方面起着重要的作用。然而,主流的网络框架[1,13]通常关注外观和短期运动,因此缺乏纳入长期时间结构的能力。最近有一些尝试用[19,4,20]来处理这个问题。这些方法大多依赖于具有预定义采样间隔的密集时间采样。这种方法在应用于长视频序列时,会产生过高的计算成本,限制了其在现实实践中的应用,并存在超过最大序列长度的视频丢失重要信息的风险。其次,在实际应用中,训练深度网络需要大量的训练样本才能达到最佳性能。然而,由于数据收集和注释的困难,公开可用的动作识别数据集(如UCF101 [21],HMDB51 [22])在大小和多样性上仍然有限。然而,由于数据收集和注释的困难,公开可用的动作识别数据集(如UCF101 [21],HMDB51 [22])在大小和多样性上仍然有限。因此,在图像分类方面取得了显著成功的非常深度的ConvNets [9,23]面临着很高的过拟合风险。
这些挑战促使我们研究两个问题: 1)如何设计一个有效的视频级框架来学习视频表示,能够捕获长期时间结构;2)在有限的训练样本下如何学习ConvNet模型。特别是,我们在成功的双流架构[1]之上构建了我们的方法,同时解决了上面提到的问题。在时间结构建模方面,一个关键的观察结果是,连续的帧是高度冗余的。因此,密集的时间采样通常不会导致采样帧高度相似的采样。相反,在这种情况下,稀疏时间采样策略将更有利。基于这一观察结果,我们开发了一个视频级的框架,称为时间段网络(TSN)。该框架采用稀疏采样方案在长视频序列上提取短片段,其中样本沿时间维度均匀分布。因此,采用分段结构来聚合来自采样片段的信息。从这个意义上说,时间段网络能够在整个视频上建模远程时间结构。此外,这种稀疏采样策略以显著的更低的成本保留了相关信息,从而能够在合理的时间和计算资源预算下对长视频序列进行端到端学习。
释放时间段网络框架的全部潜力,我们采用非常深的通信架构[23,9]最近介绍,并探索大量良好的实践来克服上述困难造成的数量有限的训练样本,包括1)跨模态预训练;2)正则化;3)增强数据增强。同时,为了充分利用视频中的视觉内容,我们对两种输入模式进行了实证研究,即单RGB图像、叠RGB差、叠光流场和叠扭曲光流场。我们在UCF101 [21]和HMDB51 [22]这两个具有挑战性的动作识别数据集上进行了实验,验证了该方法的有效性。在实验中,使用时间段网络学习的模型在这两个具有挑战性的动作识别数据集上显著优于现有技术。我们还将我们学习到的双流模型可视化,试图为未来的行动识别研究提供一些见解。
行动识别在过去几年中得到了广泛的研究。之前与我们相关的工作可以分为两类: (1)用于动作识别的卷积网络,(2)时间结构建模。用于动作识别的卷积网络。一些工作一直在尝试设计有效的[12,1,13,27,28]架构,用于视频[12,1,13,27,28]中的动作识别。卡帕西等人[12]在一个大数据集(Sports-1M)上测试了具有深度结构的ConvNets。[1]利用ImageNet数据集,设计了包含时空网的双流集合集,进行预训练和计算光流,明确地捕获运动信息。Tran等人[13]在现实和大规模的视频数据集上探索了3D ConvNets [27],他们试图通过3D卷积操作来学习外观和运动特征。Sun等人的[28]提出了一个因子分解的时空卷积核,并利用不同的方法来分解三维卷积核。最近,一些研究工作集中在用ConvNets [4,19,20]建模长期时间结构。然而,这些方法直接作用于一个较长的缺点
时序结构建模。许多研究工作致力于对动作识别中的时序结构进行建模[15,16,17,29,30,18]。Gaidon等人[16]为每个视频的每个原子动作进行了注释,并提出了Actom Sequence Model (ASM)来进行动作检测。Niebles等人[15]提出使用潜在变量来对复杂动作的时序分解进行建模,并采用迭代方法中的潜在SVM [31]来学习模型参数。Wang等人[17]和Pirsiavash等人[29]分别使用潜在分层模型(Latent Hierarchical Model,LHM)和分段语法模型(Segmental Grammar Model,SGM)将复杂动作的时序分解扩展到层次化的方式。Wang等人[30]设计了一个序列骨骼模型 (Sequential Skeleton Model,SSM)来捕捉动态姿势之间的关系,并进行时空动作检测。Fernando[18]对BoVW表示的时序演化进行了建模,用于动作识别。然而,这些方法仍然无法组装成一个端到端的学习方案来建模时序结构。提出的时序段网络(Temporal Segment Network,TSN)虽然也强调了这一原则,但它是第一个在整个视频上进行端到端时序结构建模的框架。
在本节中,我们将详细描述使用时间段网络执行动作识别。具体来说,我们首先介绍了时态段网络框架中的基本概念。然后,我们研究了在时间段网络框架内学习双流卷积神经网络的良好实践。最后,我们描述了学习的双流网络的测试细节。
2.4.2时序段网络
正如我们在第二节中所讨论的。1、双流网络当前形式的一个明显问题是它们无法建模长期时间结构。这主要是由于它们对时间上下文的访问有限,因为它们被设计为仅在单个帧(空间网络)或短片段中的单个帧堆栈(时间网络)上操作。然而,复杂的动作,如运动动作,包括跨越相对较长时间的多个阶段。如果不能在这些动作中利用远程时间结构来进行卷积神经训练,那将是一个相当大的损失。为了解决这个问题,我们提出了时间段网络,一个如图1所示的视频级框架,以实现整个视频的动态模型。
具体来说,我们提出的时间段网络框架,旨在利用整个视频的视觉信息来进行视频级预测,也由空间流压缩网络和时间流压缩网络组成。时间段网络不是在单帧或帧堆栈上工作,而是在从整个视频中稀疏采样的短片段序列上进行操作。这个序列中的每个代码片段都将产生它自己的对动作类的初步预测。然后,这些片段之间的共识将作为视频级别的预测。在学习过程中,除了在双流连续神经网络中使用的片段级预测外,通过迭代更新模型参数,对视频级预测的损失值进行了优化。形式上,给定一个视频V,我们将它分成K个等效时间的片段{S1、S2、···、SK}。然后,时间段网络对一系列的片段进行建模如下:
TSN模型由两个主要的网络组成:时序特征提取网络(Temporal Feature Extraction Network)和时序聚合网络(Temporal Aggregation Network)。
时序特征提取网络:
时序特征提取网络采用了深度卷积神经网络(ConvNet)来提取视频帧级别的特征表示。论文中采用了Inception架构作为基础的ConvNet,并在顶部加入全局平均池化层。这个网络用于从视频的每个时间段内提取时间序列上的帧级别特征。
时序聚合网络:
时序聚合网络用于对时间段级别的特征进行聚合和分类。它包括两个步骤:时序聚合和分类预测。
时序聚合:该步骤的目的是对时间段级别的特征进行融合,以捕捉视频中的时序信息。论文中采用了平均池化的方式,将每个时间段内的特征进行平均,得到一个时间段级别的特征表示。
分类预测:将时序聚合的特征输入到一个线性分类器中进行动作分类预测。分类器将时间段级别的特征映射到不同的动作类别上,并使用交叉熵损失函数进行优化。
原理:
TSN模型的原理是利用时间段级别的特征融合和分类预测来捕捉视频中的时序结构和动作信息。
在训练过程中,模型通过监督学习使用交叉熵损失函数进行优化,并采用随机梯度下降(SGD)算法进行参数更新。为了提高模型的泛化能力和鲁棒性,作者还采用了一些良好的实践方法,如数据增强和网络结构设计。
在测试过程中,对于输入的视频序列,将其分割成多个时间段,提取特征并进行时序聚合和分类预测。最终,通过对不同时间段的预测结果进行投票策略,得到最终的视频动作分类结果。
时序段网络为执行视频级学习提供了一个坚实的框架,但为了达到最佳的性能,需要解决一些实际问题,例如有限的训练样本数量。为此,我们研究了一系列在视频数据上训练深度网络的良好实践,这些实践也直接适用于时间段网络的学习。
网络架构:网络架构是神经网络设计中的一个重要因素。一些研究表明,更深层次的结构提高了目标识别性能[9,10]。然而,最初的双流ConvNets [1]采用了一个相对较浅的网络结构(清晰网[32])。在这项工作中,我们选择了初始与批处理归一化(bn-初始)[23]作为构建块,因为它在准确性和效率之间有良好的平衡。我们将原来的bn-初始架构应用于双流卷积网的设计。就像在原来的双流ConvNets [1]中一样,空间流ConvNet处理单个RGB图像,而时间流ConvNet以一堆连续的光流场作为输入。
网络输入:我们也有兴趣探索更多的输入模式,以提高时间段网络的鉴别能力。最初,双流ConvNets使用RGB图像作为空间流,使用堆叠的光流场作为时间流。在这里,我们提出研究两种额外的模式,即RGB差分和扭曲光流场。单个RGB图像通常在特定时间点的静态外观进行编码,并且缺乏关于前一帧和下一帧的上下文信息。如图2所示,两个连续帧之间的RGB差值描述了外观的变化,这可能对应于运动突出区域。受[28]的启发,我们实验采用了添加堆叠的RGB差值作为另一种输入模式,并研究了其在动作识别中的性能。
网络训练:由于用于动作识别的数据集相对较小,训练深度集合集受到过拟合风险的挑战。为了缓解这一问题,我们设计了几种训练时间段网络的策略。交叉模式预训练。当目标数据集没有足够的训练样本[1]时,预训练是一种初始化深度集合集的有效方法。由于空间网络以RGB图像作为输入,自然会利用ImageNet [33]训练的模型作为初始化。对于其他模式,如光流场和RGB差异,它们本质上捕获了视频数据的不同视觉方面,它们的分布不同于RGB图像。我们提出了一种交叉模态的预训练技术,其中我们利用RGB模型来初始化时间网络。首先,我们通过线性变换将光流场离散到0到255的区间内。这一步使得光流场的范围与RGB图像相同。然后,我们修改RGB模型的第一卷积层的权值来处理光流场的输入。具体来说,我们对RGB信道之间的权值进行平均,并通过时间网络输入的信道数来复制这个平均值。这种初始化方法在时间网络中效果很好,减少了实验中过拟合的影响。
数据增强数据增强可以生成多样化的训练样本,防止严重的过拟合。在原始的双流网络中,采用随机裁剪和水平翻转来增加训练样本。我们利用了两种新的数据增强技术:角裁剪和缩放调整。在角裁剪技术中,提取的区域只从图像的角或中心中选择,以避免隐式聚焦于图像的中心区域。在多尺度裁剪技术中,我们采用ImageNet分类中的尺度抖动技术[9]用于动作识别。我们提出了一种有效的尺度抖动的实现方法。我们将输入图像或光流场的大小固定为256×340,并从{256、224、192、168}中随机选择裁剪区域的宽度和高度。最后,这些裁剪区域将被调整为224×224,用于网络训练。事实上,这个实现不仅包含尺度抖动,而且还涉及到高宽比抖动。
最后,我们介绍了Temporal Segment Networks(TSN)的测试方法。由于所有片段级别的ConvNets在Temporal Segment Networks中共享模型参数,学习的模型可以像普通的ConvNets一样进行逐帧评估。这使得我们能够与没有Temporal Segment Networks框架学习的模型进行公平比较。具体来说,我们遵循原始的双流ConvNets [1]的测试方案,从动作视频中采样25个RGB帧或光流堆栈。同时,我们对采样的帧进行4个角落和1个中心的裁剪,并对它们进行水平翻转,以评估ConvNets。对于空间流和时间流网络的融合,我们对它们进行加权平均。当在Temporal Segment Networks框架内进行学习时,空间流ConvNets和时间流ConvNets之间的性能差距要比原始的双流ConvNets小得多。基于这个事实,我们将更多的权重赋予空间流,将其权重设置为1,而时间流的权重设置为1.5。当同时使用正常和变形的光流场时,时间流的权重被分为1用于光流和0.5用于变形的光流。在第3.1节中已经描述了在Softmax归一化之前应用的片段一致性函数。为了符合训练时的模型测试,我们在Softmax归一化之前融合了25个帧和不同流的预测分数。
数据集:
作者在实验中使用了多个公开的动作识别数据集,包括UCF101、HMDB51和Kinetics。这些数据集涵盖了各种不同的动作类别和复杂度级别,用于评估模型在不同场景下的泛化能力。
实验设置:
在实验中,作者使用了TSN模型进行动作识别任务,并采用了随机梯度下降(SGD)算法进行模型的训练和优化。同时,作者还采用了数据增强技术,如随机裁剪、水平翻转和颜色抖动等,以增加训练数据的多样性和泛化能力。
评估指标:
作者使用了准确率(accuracy)作为评估指标,即正确预测的样本数占总样本数的比例。在每个数据集上进行了多次实验运行,并报告了平均准确率和标准差。
与其他方法的比较:
作者将TSN模型与其他流行的动作识别方法进行了比较,包括Two-Stream ConvNets、C3D和I3D等。比较的重点是模型的性能和效率。
结果分析:
实验结果表明,TSN模型在多个动作识别数据集上取得了优秀的性能,并且明显优于传统的Two-Stream ConvNets方法。此外,TSN模型还展现出在不同数据集和任务上的泛化能力,验证了其良好的实践性。
在本文中,我们提出了时间段网络(TSN),一个视频级的框架,旨在建模长期的时间结构。正如在两个具有挑战性的数据集上所展示的那样,这项工作将技术水平带到了一个新的水平,同时保持了合理的计算成本。这在很大程度上归因于具有稀疏抽样的分段体系结构,以及我们在本工作中探索的一系列良好实践。前者提供了一种有效的捕获长期时间结构和有效的方法,而后者使得在有限的训练集上训练非常深的网络而不需要严重的过拟合。