Temporal Pyramid Network for Action Recognition——基于paddlepaddle的论文复现

Temporal Pyramid Network for Action Recognition——基于paddlepaddle的论文复现

此次参见paddle的论文复现,经历了课程,精选了时间金字塔行动网络作为我精读的内容。
论文的链接
GitHub地址

整篇的概述

视觉节奏是一个动作的动力学和时间尺度的特征。 对不同行动的这种视觉温度进行建模有助于他们的识别。 以前的作品通常通过以多个速率采样原始视频和构建输入级帧金字塔来捕捉视觉节奏, 这通常需要一个昂贵的多分支网络来处理。 在本工作中, 我们提出了一个通用的时间金字塔网络(TPN)在特征级别, 可以灵活地集成到 2D 或 3D 骨干网络的即插即用方式。 TPN 的两个基本组成部分, 即特征的来源和特征的融合, 为骨干形成一个特征层次结构, 以便它能够在不同的温度下捕获动作实例。 主题方案网络还显示了在若干行动识别数据集上与其他具有挑战性的基线相比的一致改进。 具体来说, 当配备 TPN 时, 具有密集采样的 3D ResNet-50 在 Kinetics-400 的验证集上获得 2%的增益。 进一步的分析还表明, TPN 在视觉温度上有很大差异的操作类上获得了大部分改进, 验证了 TPN 的有效性。

引言

虽然深度神经网络在提高视频动作识别的准确性方面取得了很大的进展, 但在这些识别网络的设计中, 往往忽略了描述不同动作的一个重要方面-动作实例的视觉温度。 视觉节奏实际上描述了一个动作的速度,它倾向于在时间尺度上确定识别的有效持续时间。 如图操作类的底部所示, 自然有不同的视觉温度( 例如鼓掌和步行。在某些情况下,区分不同动作类的关键是它们的视觉温度, 因为它们在视觉外观上可能有很高的相似性,例如步行、 慢跑和跑步。 ) 此外, 如图的顶部所示, 当执行相同的动作时, 每个表演者的一般公式, 其中引入了几个组件, 以更好地在多个视觉温度下捕获信息。 然后, 我们评估三个基准的 TPN: 动力学-400, 某种东西-V1&V2 和 Epic-Kitchen 与全面的消融研究。 没有任何铃声和哨声, TPN 带来一致的改进时, 结合2D 和 3D 网络。 此外, 消融研究表明, TPN 的大部分改进来自于在视觉温度上有显著差异的动作类。 这一结果验证了我们的假设, 即在单个模型中聚合特征足以捕获用于视频识别的动作实例的视觉温度。
在这里插入图片描述

上方的动作实例表明,即使时同一动作,人们也倾向于以不同的速度做动作。下图显示了不同的动作类别,按视觉节奏的方差排序。

如上图所示,当执行相同的动作时,由于年龄,情绪和精力水平等各种因素,每个演员可以按自己的视觉节奏来做动作。例如,老人的运动往往比年轻人慢,具有较重体重的人也是如此。对动作实例的视觉节奏中的类内和类间差异进行精确建模,可能会显著改善动作识别准确度

与前期的对比

以前提取动作实例动态视觉温度的尝试主要依赖于构造一个框架金字塔, 其中每个金字塔级别以不同的时间速率对输入帧进行采样。 例如, 我们可以分别从视频实例的总共 64 帧中抽取 16 帧和 2 帧, 构造一个由 4 帧和 32 帧组成的两级帧金字塔。 随后, 将每个级别的帧输入到不同的骨干子网络中, 并将它们的输出特征进一步组合在一起, 以进行最终预测。 通过以不同速率采样帧作为输入, 骨干网络能够提取不同接收场的特征, 并在不同的视觉温度下表示输入动作实例。 因此, 这些主干子网络联合聚合快节奏和慢节奏的时间信息, 在不同的时间尺度上处理动作实例。
以前的方法已经在动作识别方面取得了明显的改进, 但是在输入帧级别处理动作实例的动态视觉温度仍然是计算上昂贵的。 在输入帧金字塔中预先定义tempos,然后将帧馈送到多个网络分支是不可伸缩的, 特别是当我们使用大量采样率时… 另一方面, 许多视频识别中常用的模型, 如 C3D 和 I3D, 往往会叠加一系列时间卷积。 在这些网络中, 随着层的深度增加, 其时间接收场也随之增加。因此, 在单个模型中, 不同深度的特征已经捕获了快节奏和慢节奏信息。 因此, 我们建议建立一个时间金字塔网络(TPN), 在特征层次上聚合各种视觉温度的信息。 [26,1]通过利用网络内部形成的特征层次结构, 所提出的 TPN 能够以单个速率输入帧来工作。 作为一个辅助模块, TPN 可以以即插即用的方式应用于各种现有的动作识别模型, 以带来一致的改进。
在这项工作中, 我们首先提供了拟议的 TPN的一般公式, 其中引入了几个组件, 以更好地在多个视觉温度下捕获信息。 然后, 我们评估三个基准的 TPN: 动力学-400, 某种东西-V1&V2 和 Epic-Kitchen 与全面的消融研究。 没有任何铃声和哨声, TPN 带来一致的改进时, 结合2D 和 3D 网络。 此外, 消融研究表明, TPN 的大部分改进来自于在视觉温度上有显著差异的动作类。 这一结果验证了我们的假设, 即在单个模型中聚合特征足以捕获用于视频识别的实例的视觉温度。

连接网络层

而目前视频动作识别的尝试可分为两类:第一类中的方法通常采用 A2D+1D 范式, 其中 2D CNN 应用于每帧输入, 然后是一个聚集每帧特征的 1D 模块。 具体来说,两流网络分别在每帧视觉外观和光流上使用两个单独的CNN, 以及用于时间聚合的平均池操作。 在其变体中, TSN建议通过从均匀分割的段中采样来表示视频剪辑。 而 TRN和 TSM 分别用可解释的关系模块代替平均池操作, 并利用移位模块, 以更好地捕获沿时间维度的信息。 然而, 由于在这些方法中部署了 2D CNN, 输入帧的语义在早期不能相互交互, 这限制了它们捕获视觉温度动态的能力。 第二类中的方法交替应用叠加 3D 卷积的 3D CNN 来联合建模时和空间语义。 在这一研究过程中, 非本地网络引入了一种特殊的非本地操作, 以更好地利用视频帧之间的长程时间依赖关系。 除了非局部网络外, 对三维 CNN 的不同修改,包括膨胀的二维卷积核和分解的三维卷积核, 也可以提高三维 CNN 的性能。 对不规则卷积/池进行其他影响, 以更好的特征对齐或以细粒度的方式研究动作实例。 虽然上述方法可以更好地处理时间信息, 但视觉温度的大变化仍然被忽略 。
动作识别中的视觉模型。 动作实例的复杂时间结构,特别是在各种视觉温度方面, 对动作识别提出了挑战。 近年来, 研究人员开始探索这一方向。 慢快速硬编码视觉温度的方差使用一个输入级框架金字塔, 有水平的框架抽样在不同的速率。 金字塔的每个层次也由一个网络单独处理,其中这些网络的中层特征是交互结合的。 在框架金字塔和特定级别网络的辅助下, 慢快可以很好地处理视觉温度的变化。 视频内部复杂的时间结构, 特别是节奏变化, 对动作识别提出了挑战。 DTPN 还对每秒不同帧(FPS)的帧进行采样, 以构造任意长度输入视频的自然金字塔表示。 然而,这种硬编码方案往往需要多个帧, 特别是当金字塔放大时。与以往处理目标检测中空间尺度方差较大的特征级金字塔网络不同, 我们利用特征层次来处理时间信息的方差。[35][11,19,20,17]视觉温度。 这样, 我们就可以在一个网络中隐藏对视觉温度的关注, 我们只需要在输入级以单个速率采样帧。

时间金字塔网络

动作实例的视觉节奏是识别它的关键因素之一, 特别是当其他因素含糊不清时。 例如, 我们无法根据动作实例的视觉外观来判断它是否属于步行、 慢跑或跑步。 然而, 由于不同视频之间和类内的差异, 很难捕获视觉温度。 以前的工作解决了这个问题在输入级发布。
在这里插入图片描述

TPN的框架:主干网络提取多个层次的特征。空间语义调制在空间上下采样特征以对齐语义。时间速率调制在时间上下采样特征来调整各个层次之间的相对速度。信息流在各个方向上聚合特征来加强和丰富层次的表示。最终预测重新缩放并连接了沿通道维度的所有金字塔等级。为简洁起见,省略了最终预测中的通道维度和对应的操作。
它们使用一个帧金字塔, 其中包含以预定义的速率采样的帧, 以表示不同视觉温度下的输入视频实例。 由于帧金字塔的每个级别都需要一个单独的骨干网络来处理, 因此这种方法在计算上可能很昂贵, 特别是当金字塔级别上升时。
在观察到单个网络中多个深度的特征已经覆盖了各种视觉温度的启发下, 我们提出了一个特征级时间金字塔网络(TPN)来建模视觉节奏。 TPN 只能在一个网络上运行, 无论它包含多少个级别。 此外, TPN 可以以即插即用的方式应用于不同的体系结构, 为了充分实现 TPN, 必须正确地设计TPN 的两个基本组成部分, 即 1)特征源和 2)特征聚合。 我们提出了空间语义调制和时间节奏调制来控制特征源在Sec.3.1 中的相对差异, 并在 Sec.3.2 中构造多种类型的信息流来进行特征聚合。 最后, 我们展示了如何在 Sec.3.3中采用 TPN 进行动作识别为例骨干网络。

TPN 的特征源

层次特征的集合。虽然TPN是建立在一组M个层次特征上,这些特征从下到上具有越来越大的时间接受域,但是有两种替代方法可以从主干网络收集这些特征。1) 单深度金字塔:一种在某个深度选择大小为CxTxWxH的特征Fbase的简单方法,并且以M个不同的速率{r1, …, rM; r1 < r2 < … < rM} 在时间维度上采样。我们将这种TPN称为由大小为{C x T/r1 x W x H, …, C x T/rM x W x H}的{Fbase(1), …, Fbase(M)}组成的单深度金字塔。以这种方式收集的特征可以减轻融合的工作量,因为它们除时间维度外,都有相同的形状。但是,由于它们仅以单个时间粒度表示视频语义,可能在有效性上受限。2) 多深度金字塔: 一种更好的方法是随着深度的增加收集M个特征集,这使得TPN由大小为{C1 x T1 x W1 x H1, …, CM x TM x WM x HM} 的 {F1, F2, …, FM}组成,特征的维度通常满足{Ci1 >= Ci2, Wi1 >= Wi2, Hi1 >= Hi2; i1 < i2}。这种多深度金字塔在空间维度上含有更丰富的语义,但在特征融合中也需要仔细处理,以确保特征间的正确信息流。
空间语义调制。为了对齐多深度金字塔中特征的空间语义,将空间语义调制用于TPN。空间语义调制以两种互补的方式工作。对除顶层特征以外的每个特征,都会对其应用一组具有特定层次步幅的卷积,使其空间形状和接受域与顶层特征相匹配。此外,还附加了一个辅助分类头,以接受更强的监督,从而增强了语义。因此,采用TPN的主干网络的目标将变为:
在这里插入图片描述
其中LCE, o是原始的交叉熵损失,LCE, i是第i个辅助头的损失。{λi}是平衡系数。经过空间语义调制后,特征在空间维度上有对齐的形状和一致的语义。但是,它在时间维度上仍未校准,因此引入了本文所提出的时间速率调制。

时间速率调制。在SlowFast[5]中使用的输入层帧金字塔,可以动态调整帧的采样率以提高其适用性。相反,因为TPN对主干网络的特征进行操作,因此其灵活性受限,所以这些特征的视觉节奏仅仅受其在原始网络中的深度控制。为了使TPN具有与输入层帧金字塔中类似的灵活性,将一组超参数{αi}i=1到M进一步引入TPN以进行时间速度调制。具体而言,αi表示在空间语义调制之后,使用参数子网在第i层对更新后特征用αi的一个因子进行临时下采样。这些超参数的加入能够更好地控制特征在时间尺度上的相对差异,从而更有效地进行特征聚合。

在这里插入图片描述

TPN 的信息流

按照上一节的要求收集并预处理了特征的层次结构后,使它们在视觉节奏上是动态的,并在空间语义上是一致的。让Fi’为第i层的聚合特征,通常有三个基本选择:
在这里插入图片描述
其中的十字符号表示按元素相加。并且为了确保在连续特征之间相加的兼容性,在聚合期间,沿着时间维应用了一种向下/上采样的操作g(F, δ),其中F是特征向量,δ是因子。请注意,自上而下/自下而上流的顶部/底部特征不会被其它特征聚合。除了上述的基本流在TPN中聚合特征外,还可以将它们结合起来实现两个附加的选择,即级联流和并行流。在自上而下流之后应用自底向上流将导致级联流,同时应用它们将会导致并行流。值得注意的是,可以在这些流的基础上构建更复杂的流(例如[20]中的路径聚合)。然而,我们在这方面的研究并没有显示出进一步的改进。最终,按照图2,将对TPN中所有聚合的特征重新缩放和连接,以进行后续的预测。

执行情况

![一个简单的表格是这么创建的:

在这里插入图片描述
在这里插入图片描述
继FlowFast之后,由于inflated ResNet在各个数据集上出色的性能[1],我们将其作为3D主干网络,同时使用原始的ResNet[12]作为我们的2D主干网络。我们使用res2, res3, res4, res5的输出特征来构造TPN,与输入帧相比,它们在空间上分别下采样4, 8, 16和32倍。在空间语义调制中,M级TPN中处理第i层特征的M维卷积将使特征维数减小或增加到1024.此外,对每个特征的时间速率调制是通过一个卷积层和一个最大池化层实现的。最后,在通过上一节描述的5个流中的1个进行特征聚合后,TPN的特征将通过最大池化操作单独重新缩放,并将连接的特征输入到一个全连接层来实现最终的预测。TPN也可以与主干网络以端到端的方式联合训练。
我们在各种动作识别数据集上评估了TPN,包括Kinetics-400 [1], Something-Something V1 & V2 [10]以及Epic-Kitchen [2]。此外,我们提供了一些实证分析以验证TPN的动机,即单个主干网上的特征级时间金字塔有助于捕获视觉节奏的变化。除非特别说明,否则所有实验均以MMAction[37]上的单一模式(即RGB帧)进行,并在验证集上进行评估。
Training. 除非特别说明,我们的模型默认通过ImageNet [3]上预训练的模型进行初始化。按照 [5]中的设置,输入帧以特定的间隔τ从一组连续的64帧中采样输入帧。每个帧都是随机裁剪的,因此其短边范围在 [256, 320]像素之间,和 [32, 5, 25]中一样。 采用水平翻转增强和0.5的dropout来减少过拟合。并且BatchNorm(BN)[14]没有冻结。我们使用0.9的momentum,0.0001的权重衰减和在8块GPU [9]上同步的SGD进行训练。每块GPU的batch-size为8,因此总共有64个mini-batch。对于Kinetics-400,学习率为0.01,在第100,125个周期(共150个周期)时,学习率分别降低10倍。对于Something-Something V1 & V2 [10] 以及Epic-Kitch [2], 模型分别以150和55个epochs进行训练。

结论

在本文中,主要是通用模块来捕捉动作实例的视觉节奏。TPN作为一种功能级金字塔,可以以一种即插即用的方式应用到现有的2D/3D架构中,并带来一致的改进。

学习感悟

视觉节奏表征了动作的动态和时间尺度,实际上描述了动作进行的速度。对不同动作的这种视觉节奏进行建模有助于它们的识别。在这项工作中,我们在功能级别上提出了一个通用的时间金字塔网络(TPN),该网络可以即插即用的方式灵活地集成到2D或3D骨干网络中。TPN在几个动作识别数据集上也显示出相对于其他具有挑战性的基线的持续改进。进一步的分析还显示,TPN在其视觉节奏有较大差异的动作类别上获得了大部分改进,从而验证了TPN的有效性。
定量结果
我们的TPN可以在动作识别的主流基准(分别为Kinetics-400,Something-Something V1和V2)上达到78.9%,49.0%和62.0%的top-1准确性,这基本上优于其他最新方法。我们的论文中提供了更详细的比较和消融研究。

实证研究
每个班级的性能增益与每个班级的视觉节奏变化: 图4表明,性能增益与视觉节奏的变化明显正相关。这项研究强烈证实了我们的动机,即TPN可以在视觉节奏变化很大的情况下为此类动作带来显着改善。

TPN对视觉节奏变化的稳健性: 图5表明TPN有助于提高I3D-50的稳健性,从而形成具有中等波动的曲线。我们的实验部分提供了更多讨论。

复现

获得源码

git clone https://github.com/decisionforce/TPN.git

环境要求

Linux
Python 3.5+
PyTorch 1.0+
CUDA 9.0+
NVCC 2+
GCC 4.9+
mmcv 0.2.10
安装

#(a) Install Cython
pip install cython
(b) Install mmaction
python setup.py develop

快速使用的quickly demo

python ./test_video.py ${CONFIG_FILE} ${CHECKPOINT_FILE} --video_file ${VIDOE_NAME} --label_file ${LABLE_FILE} --rendered_output ${RENDERED_NAME}

参数调整

--video_file:演示视频的路径,默认为 ./demo/demo.mp4
--label_file:预训练模型的标签文件,默认为 demo/category.txt
--redndered_output:输出文件名。如果指定,脚本将使用标签名称渲染输出视频,默认值为demo/demo_pred.webm。

例如,我们可以通过运行以下内容来预测演示视频(在此处下载并放在下方demo/.):

python ./test_video.py config_files/sthv2/tsm_tpn.py ckpt/sthv2_tpn.pth

渲染的输出视频:
在这里插入图片描述
最后在这里致谢百度paddlepaddle,给我们这个机会区复现,阅读
再次感谢作者
Ceyuan Yang†,1
Yinghao Xu†,1
Jianping Shi2
Bo Dai1
Bolei Zhou1
1The Chinese University of Hong Kong
2SenseTime Group Limited

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值