[行为识别论文详解]TSN(Temporal Segment Networks)

本文介绍了一种名为TSN(Temporal Segment Networks)的有效卷积网络结构,用于视频中的动作识别。该方法通过稀疏时间采样策略和视频级监督来确保在有限训练样本下进行高效学习。TSN克服了two-stream方法的局限性,能够处理长范围时间结构,适用于整段视频的行为识别。

摘要

本文旨在设计有效的卷积网络体系结构用于视频中的动作识别,并在有限的训练样本下进行模型学习。TSN基于two-stream方法构建。

论文主要贡献:

  • 提出了TSN(Temporal Segment Networks),基于长范围时间结构(long-range temporal structure)建模,结合了稀疏时间采样策略(sparse temporal sampling strategy)和视频级监督(video-level supervision)来保证使用整段视频时学习得有效和高效。
  • 在TSN的帮助下,研究了一系列关于视频数据学习卷积网络的良好实践

数据集表现:HMDB51(69.4%)、UCF101(94.2%)

采用TSN进行行为识别

TSN

two-stream 卷积网络对于长范围时间结构的建模无能为力,主要因为它仅仅操作一帧(空间网络)或者操作短片段中的单堆帧(时间网络),因此对时间上下文的访问是有限的。视频级框架TSN可以从整段视频中建模动作。

和two-stream一样,TSN也是由空间流卷积网络和时间流卷积网络构成。但不同于two-stream采用单帧或者单堆帧,TSN使用从整个视频中稀疏地采样一系列短片段,每个片段都将给出其本身对于行为类别的初步预测,从这些片段的“共识”来得到视频级的预测结果。在学习过程中,通过迭代更新模型参数来优化视频级预测的损失值(loss value)。

TSN网络示意图如下:


TSN
图1 TSN网络示意图

由上图所示,一个输入视频被分为 K K 段(segment),一个片段(snippet)从它对应的段中随机采样得到。不同片段的类别得分采用段共识函数(The segmental consensus function)进行融合来产生段共识(segmental consensus),这是一个视频级的预测。然后对所有模式的预测融合产生最终的预测结果。

注意:接下来“片段”代表文章中“snippet”,“段”代表文章中“segment”

具体来说,给定一段视频 V,把它按相等间隔分为 K K {S1,S2,,SK}。接着,TSN按如下方式对一系列片段进行建模:

TSN(T1,T2,,TK)=H(G(F(T1;W),F(T2;W),,F(TK;W)))(1) (1) T S N ( T 1 , T 2 , ⋯ , T K ) = H ( G ( F ( T 1 ; W ) , F ( T 2 ; W ) , ⋯ , F ( T K ; W ) ) )

其中:

  • (T1,T2,,TK) ( T 1 , T 2 , ⋯ , T K ) 代表片段序列,每个片段 Tk T k 从它对应的段 Sk S k 中随机采样得到。
  • F(Tk;W) F ( T k ; W ) 函数代表采用 W W 作为参数的卷积网络作用于短片段 Tk,函数返回 Tk T k 相对于所有类别的得分。
  • 段共识函数 G G (The segmental consensus function)结合多个短片段的类别得分输出以获得他们之间关于类别假设的共识。
  • 基于这个共识,预测函数 H 预测整段视频属于每个行为类别的概率(本文 H H 选择了Softmax函数)。
  • 结合标准分类交叉熵损失(cross-entropy loss),关于部分共识的最终损失函数 G 的形式为:

L(y,G)=i=1Cyi(Gilogj=1CexpGj)(2) (2) L ( y , G ) = − ∑ i = 1 C y i ( G i − l o g ∑ j = 1 C e x p G j )

其中, C C 是行为总类别数,yi 是类别 i i 的groundtruth,实验中片段的数量 K 设置为3。本工作中共识函数 G G 采用最简单的形式,即 Gi=g(Fi(T1),,Fi(TK)),采用用聚合函数 g g (aggregation function)从所有片段中相同类别的得分中推断出某个类别分数 Gi。聚合函数 g g 采用均匀平均法来表示最终识别精度。

TSN是可微的,或者至少有次梯度,由 g 函数的选择决定。这使我们可以用标准反向传播算法,利用多个片段来联合优化模型参数 W W 。在反向传播过程中,模型参数 W 关于损失值 L L 的梯度为:

(3)L(y,G)W=LGk=1KGF(Tk)F(Tk)W

其中,K是TSN使用的段数。TSN从整个视频中学习模型参数而不是一个短的片段。与此同时,通过对所有视频固定 K K ,作者提出了一种稀疏时间采样策略,其中采样片段只包含一小部分帧。与先前使用密集采样帧的方法相比,这种方法大大降低计算开销。

学习TSN

为了达到最佳表现,一些好的实践如下:

网络结构

一些工作表明更深的结构可以提升物体识别的表现。然而,two-stream网络采用了相对较浅的网络结构(ClarifaiNet)。本文选择BN-Inception (Inception with Batch Normalization)构建模块,由于它在准确率和效率之间有比较好的平衡。作者将原始的BN-Inception架构适应于two-stream架构,和原始two-stream卷积网络相同,空间流卷积网络操作单一RGB图像,时间流卷积网络将一堆连续的光流场作为输入。

网络输入

TSN通过探索更多的输入模式来提高辨别力。除了像two-stream那样,空间流卷积网络操作单一RGB图像,时间流卷积网络将一堆连续的光流场作为输入,作者提出了两种额外的输入模式:RGB差异(RGB difference)扭曲的光流场(warped optical flow fields)


四种输入模式的例子
图2 四种输入模式的例子

单一RGB图像表征特定时间点的静态信息,从而缺少上下文信息。如上图2所示,两个连续帧的RGB差异表示动作的改变,对应于运动显著区域。故试验将RGB差异堆作为另一个输入模式。

TSN将光流场作为输入,致力于捕获运动信息。在现实拍摄的视频中,通常存在摄像机的运动,这样光流场就不是单纯体现出人类行为。如上图2所示,由于相机的移动,视频背景中存在大量的水平运动。受到iDT(improved dense trajectories)工作的启发,作者提出将扭曲的光流场作为额外的输入。通过估计估计单应性矩阵(homography matrix)和补偿相机运动来提取扭曲光流场。如图2所示,扭曲光流场抑制了背景运动,使得专注于视频中的人物运动。

网络训练

由于行为检测的数据集相对较小,训练时有过拟合的风险,为了缓解这个问题,作者设计了几个训练策略。

交叉输入模式预训练

空间网络以RGB图像作为输入:故采用在ImageNet上预训练的模型做初始化。对于其他输入模式(比如:RGB差异和光流场),它们基本上捕捉视频数据的不同视觉方面,并且它们的分布不同于RGB图像的分布。作者提出了交叉模式预训练技术:利用RGB模型初始化时间网络。

首先,通过线性变换将光流场离散到从0到255的区间,这使得光流场的范围和RGB图像相同。然后,修改RGB模型第一个卷积层的权重来处理光流场的输入。具体来说,就是对RGB通道上的权重进行平均,并根据时间网络输入的通道数量复制这个平均值。这一策略对时间网络中降低过拟合非常有效。

正则化技术

在学习过程中,Batch Normalization将估计每个batch内的激活均值和方差,并使用它们将这些激活值转换为标准高斯分布。这一操作虽可以加快训练的收敛速度,但由于要从有限数量的训练样本中对激活分布的偏移量进行估计,也会导致过拟合问题。因此,在用预训练模型初始化后,冻结所有Batch Normalization层的均值和方差参数,但第一个标准化层除外。由于光流的分布和RGB图像的分布不同,第一个卷积层的激活值将有不同的分布,于是,我们需要重新估计的均值和方差,称这种策略为部分BN。与此同时,在BN-Inception的全局pooling层后添加一个额外的dropout层,来进一步降低过拟合的影响。dropout比例设置:空间流卷积网络设置为0.8,时间流卷积网络设置为0.7。

数据增强

数据增强能产生不同的训练样本并且可以防止严重的过拟合。在传统的two-stream中,采用随机裁剪和水平翻转方法增加训练样本。作者采用两个新方法:角裁剪(corner cropping)和尺度抖动(scale-jittering)。

角裁剪(corner cropping):仅从图片的边角或中心提取区域,来避免默认关注图片的中心。

尺度抖动(scale jittering):将输入图像或者光流场的大小固定为 256×340,裁剪区域的宽和高随机从 {256,224,192,168} { 256 , 224 , 192 , 168 } 中选择。最终,这些裁剪区域将会被resize到 224×224 224 × 224 用于网络训练。事实上,这种方法不光包括了尺度抖动,还包括了宽高比抖动。

测试TSN

由于在TSN中片段级的卷积网络共享模型参数,所以学习到的模型可以进行帧评估。具体来说,作者采用与two-stream相同的测试方案——即从动作视频中采样25个RGB帧或光流堆。同时,从采样得到的帧中裁剪4个边角和1个中心以及它们的水平翻转来评估卷积网络。

空间和时间流网络采用加权平均的方式进行融合。相比于two-strean,TSN中空间流卷积网络和时间流卷积网络的性能差距大大缩小。基于此,设置空间流的权重为1,设置时间流的权重为1.5。当正常和扭曲光流场都使用时,将其权重1.5分出1给正常光流场,0.5给扭曲光流场。

TSN部分说过,段共识函数在Softmax归一化之前。为了根据训练测试模型,在Softmax之前融合了25帧和不同流的预测分数。

实验

数据集和实现细节

实验在两个大型主流动作数据集HMDB51和UCF101上进行。UCF101数据集包含13,320个视频剪辑,其中共101类动作。HMDB51数据集是来自各种来源的大量现实视频的集合,比如:电影和网络视频,数据集包含来自51个动作分类的6,766个视频剪辑。

作者使用小批量随机梯度下降算法(mini-batch stochastic gradient descent algorithm)来学习网络参数,batch size设置为256,momentum设置为0.9。用在ImageNet上预训练的模型对网络权重进行初始化。实验中learning rate设置较小:对于空间网络,初始化为0.01,并且每2,000次迭代降为它的 110 1 10 ,训练过程共迭代4,500次;对于时间网络,初始化为0.005,并且在第12,000和18,000次迭代之后降为它的 110 1 10 ,训练过程共迭代20,000次。

作者使用TVL1光流算法来提取正常光流场和扭曲光流场。为了加速训练,使用多GPU数据并行策略,在修改过的Caffe和OpenMPI上实现。

UCF101训练总时长(8块TITANX GPUs):

  • 空间TSNs:大约2小时
  • 时间TSNs:大约12小时

探索研究

作者对四种方案进行实验:(1)从零开始训练;(2)仅仅预训练空间流;(3)采用交叉输入模式预训练;(4)交叉输入模式预训练和部分BN dropout结合。结果总结在下表1中:


表1 在UCF101 split 1上对不同训练策略进行实验的结果
在UCF101 split 1上对不同训练策略进行实验的结果

由上表可以看出,从零开始训练比基线算法(two-stream卷积网络)的表现要差很多,证明需要重新设计训练策略来降低过拟合的风险,特别是针对空间网络。对空间网络进行预训练、对时间网络进行交叉输入模式预训练,取得了比基线算法更好的效果。之后还在训练过程中采用部分BN dropout的方法,将识别准确率提高到了92.0%。

在上文中提出了两种新的模式:RGB差异和扭曲的光流场。不同输入模式的表现比较如下表2。


表2 不同输入模式的表现比较
不同输入模式的表现比较

由上表可以看出:首先,RGB图像和RGB差异的结合可以将识别准确率提高到87.3%,这表明两者的结合可以编码一些补充信息。光流和扭曲光流的表现相近(87.2% vs 86.9%),两者融合可以提高到87.8%。四种模式的结合可以提高到91.7%。由于RGB差异可以描述相似但不稳定的动作模式,作者还评估了其他三种模式结合的表现(92.3% vs 91.7%)。作者推测光流可以更好地捕捉运动信息,而RGB差异在描述运动时是不稳定的。在另一方面,RGB差异可以当作运动表征的低质量、高速的替代方案。

评估TSN

在公式 (1) ( 1 ) 中,段共识函数被定义为它的聚合函数 g g ,这里评估 g 的三种形式:(1)最大池化;(2)平均池化;(3)加权平均。实验结果见表3。


表3 TSN不同段共识函数的实验结果
TSN不同段共识函数的实验结果

我们发现平局池化函数达到最佳的性能。因此在接下来的实验中选择平均池化作为默认的聚合函数。然后比较了不同网络架构的表现,结果总结在表4。


表4 在不同深度卷积网络上的实验结果
在不同深度卷积网络上的实验结果

具体来说,比较了3个非常深的网络架构:BN-Inception、GoogLeNet和VGGNet-16。在这些架构中,BN-Inception表现最好,故选择它作为TSN的卷积网络架构。

现在,可以按照上述分析好的设置实现TSN了。从准确率的角度进行组件分析,结果如下:


表5 从准确率的角度进行组件分析的结果
从准确率的角度进行组件分析的结果

<think>好的,用户想下载HMDB51数据集。首先,我需要回忆一下HMDB51的相关信息。根据引用[1]和[2],HMDB51是一个人类行为识别数据集,包含51个类别,超过6000个视频片段。用户需要具体的下载步骤。 用户之前的问题中提到过HMDB51已经上传到百度云,但引用[1]里提到官网下载地址是serre-lab.clps.brown.edu的链接。所以可能需要给出官方和备选方式。另外引用[4]提到了下载脚本,比如download_videos.sh,这可能是指某些开源项目中的脚本,比如MMAction2之类的工具库,但用户可能不知道,需要解释清楚。 用户可能在服务器上下载,所以需要注意非root用户的安装问题,比如rar解压工具。但下载部分是否需要解压步骤?用户的问题是下载,解压可能属于后续步骤,但可能需要简要提及,让用户有预期。 需要分步骤说明,官方方法可能包括直接通过网站下载,但有时候官网链接可能失效,所以需要备选方案,比如百度云。引用[1]里用户提到自己的百度云有备份,但这里应该指引用户到官方源,除非用户无法访问,再提供其他方式。 另外,引用[4]中的脚本可能需要说明来源,比如从GitHub仓库获取脚本,并运行。这可能需要用户具备一定的命令行知识,所以步骤要详细。 总结步骤应该是: 1. 官方下载:访问官网,找到下载链接,可能需要填写表单。 2. 备用方式:百度云链接(如果有的话,但引用中没有具体链接,需要用户自己寻找或提供指引)。 3. 使用脚本下载,如引用[4]提到的download_videos.sh,可能需要指导用户克隆仓库并运行脚本。 4. 下载后的解压步骤,简要说明需要安装rar工具,以及两次解压过程,如引用[1]中的解压步骤。 需要注意用户可能是研究人员或学生,可能对服务器操作不太熟悉,所以需要清晰的命令示例,比如使用wget或curl下载,以及解压命令。 另外,引用[3]中的数据集结构可能对用户有用,但下载部分暂时不需要,可能在解压后处理时有用。 需要检查是否有权限问题,比如官网是否需要申请才能下载,可能需要填写表格,用户需要等待邮件回复。例如,HMDB51的官方网站可能需要用户提交信息才能获取下载链接,所以步骤中要提醒用户注意这一点。 最后,确保回答结构清晰,分点说明,并参考引用中的信息,正确标注来源。</think>以下是根据引用内容整理的HMDB51数据集下载方法: ### HMDB51数据集下载步骤 1. **官方渠道下载** - 访问布朗大学Serre实验室官网: ```bash https://serre-lab.clps.brown.edu/resource/hmdb-a-large-human-motion-database/ ``` - 点击页面中的"Download the dataset"链接 - 需填写邮箱和用途说明表单,提交后通过邮件获取下载链接[^2][^3] 2. **百度云备用方案** - 若官网下载困难,可在百度云搜索公开分享链接 - 输入关键词"HMDB51 dataset百度云"进行检索 - 注意验证资源完整性(建议比对MD5值)[^1] 3. **使用脚本自动下载(技术向)** ```bash # 克隆视频处理框架仓库(如MMAction2) git clone https://github.com/open-mmlab/mmaction2.git cd mmaction2/tools/data/hmdb51/ # 执行下载脚本 bash download_videos.sh ``` 该方式会自动下载并校验文件[^4] ### 注意事项 1. 文件名为`hmdb51_org.rar`,大小约2.2GB 2. 需安装rar解压工具: ```bash # Linux系统安装命令 sudo apt-get install rar ``` 3. 数据集采用双重压缩结构,需进行两次解压[^1]
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值