动作识别0-04:mmaction2(SlowFast)-白话给你讲论文-翻译无死角(2)

以下链接是个人关于mmaction2(SlowFast-动作识别) 所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:17575010159 相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是对我最大的鼓励。 文末附带 \color{blue}{文末附带} 文末附带 公众号 − \color{blue}{公众号 -} 公众号 海量资源。 \color{blue}{ 海量资源}。 海量资源
动作识别0-00:mmaction2(SlowFast)-目录-史上最新无死角讲解
本论文名为: S l o w F a s t N e t w o r k s f o r V i d e o R e c o g n i t i o n \color{red}{本论文名为: SlowFast Networks for Video Recognition} 本论文名为:SlowFastNetworksforVideoRecognition

极度推荐的商业级项目: \color{red}{极度推荐的商业级项目:} 极度推荐的商业级项目:这是本人落地的行为分析项目,主要包含(1.行人检测,2.行人追踪,3.行为识别三大模块):行为分析(商用级别)00-目录-史上最新无死角讲解

4. Experiments: Action Classification

我们使用标准的视频识别方式评估了该算法,针对于动作分类,使用被广泛使用的 Kinetics-400,Kinetics-600 以及 Charade 数据集作为基准。对于动作检测,在第 5 小节进行讲解。我们使用挑战的AVA数据集。

Training. 基于 Kinetics 数据集使用随机初始化训练的模型(不使用基于ImageNet的预训练模型)。我们按照[19]中的方法使用同步的SGD训练,详见附录。
对于时间维度,我们从一个视频全部帧中,剪辑出 α T × τ αT×τ αT×τ 帧。Slow and Fast pathways 网络的输入大小分别为 T T T 以及 α T αT αT。对于空间维度,从 256x320视频随机剪切 224x224 像素大小的图片,进行随机水平反转。

Inference 跟随通常的做法,沿时间维度采样10个 clips 片段,对于每 clips,我们将较短的空间侧缩放到256像素,并取3个crops 256×256图像,覆盖空间维度。类似于一种全卷积的测试方式,接下来使用 softmax scores 进行预测分类。

我们报告了实际的推理时间,对于在时间和空间维度的 cropping/clipping 和现在一些存在的推理方式不一样。相对于最近的一些算法,我们报告每个时空"view"(temporal clip with spatial crop) 的数目。回想一下我们的例子,在推断的时候,其大小为 25 6 2 256^2 2562(代替训练时的 22 4 2 224^2 2242), 以及 10 个时间维度上的 clips,每个 clips 都包含了3个空间维度上的 crops。所以推断时,在时空上共 3x10 个 “view”。

Datasets. Kinetics-400 包含了大约 240k 个训练视频,以及 20k 个评估视频,行为动作的种类共400。 Kinetics-600 包含了大约 392k 个训练视频,以及 30k 个评估视频,行为动作的种类共600。我们报告了 top-1 与 top-5 的分类准确率,我们报告了单个空间中央裁剪的剪辑的计算成本(单位为FLOPs)。
Kinetics-400 包含了大约 9.8k 个训练视频,以及 1.8k 个评估视频,行为动作的种类共157。其是一个多标签的数据集,性能以平均精度来衡量。

4.1. Main Results

Kinetics-400. 下表Table 2展示了 SlowFast 与最先进算法比较的结果,使用各种类型( T × τ T×τ T×τ)的输入,与主干网络:ResNet-50/101(R50/101) [24] and Nonlocal (NL) [56]。
与最先进的算法进行比较, top-1 的准确率,我们提高了2.1%,我们的算法大幅度的超过使用ImageNet作为预训练的模型。特别是,我们的模型(79.8%)比之前最好的结果(73.9%)绝对要好5.9%。我们也尝试了 SlowFast 使用 ImageNet 的预训练模型,发现和不加载ImageNet 预训练模型的效果差距不大,约 ±0.3%。
我们的结果以较低的推理时间成本获得,注意到现在很多存在的算法,都报告沿着时间维度使用稠密的 clips 采样方式。在推断的时候,甚至多余 100 个 “views” ,这里消耗的时间经常被忽略掉了,与子相反,我们的算法在时序方向不需要很多的 clips, 虽然时间分辨率高,但是 Fast pathway 是轻量级的,平均下来我们每个时空“views”的消耗是很低的 (e.g., 36.1 GFLOPs),同时还有很高的准确率。
在这里插入图片描述
Table2图解:在 Kinetics-400 数据集上与最先进的算法进行比较,在最后一列我们报告了推断时一个“view"(temporal clip with spatial crop)x 所使用的此类视图的数量。慢速模型具有不同的输入采样( T × τ T×τ T×τ)和骨架(R-50, R-101, NL)。“N/A”表示我们无法获得该数值。

图2中对比了表2中的慢速变异体(不同骨架和样本率)及其对应的慢速变异体,以评估快速变异体带来的改善。Fig. 2如下所示:
在这里插入图片描述
图解Figure 2. 在 Kinetics-400数据集上对Accuracy/complexity的权衡,SlowFast (green) 与 Slow-only (blue) 架构进行对比。 可以看到SlowFast的准确率一致都是高于 Slow-only。. SlowFast 获得了更高准确率以及更低的性能消耗(如红色箭头)。复杂度为单个 25 6 2 256^2 2562视图,通过30视图测试获得精度

从图2可以看出,对于所有变量,Fast pathway 都能够以相对较低的成本持续地提高慢 Slow pathway的性能。在下一个子章节,基于 Kinetics-400 数据集提供更加详细的数据。

Kinetics-600 相对来说是比较新的数据集,以及存在的实验结果是比较少的。所以我们的目标主要是在表3中提供结果供以后参考如下。
在这里插入图片描述
注意的是,Kinetics-600 和 Kinetics-400 的训练数据集是有重叠部分的,在 ActivityNet Challenge 2018比赛中的胜利者报告了他们最优的模型。当模态的准确率为79.0%,我们展现出了更加好的效果,为 81.8%。

Charades 是具有较长范围活动的数据集。Table4 报告了我们结果,如下:
在这里插入图片描述
为了公平的进行对比,我们的基线是只有Slow pathway 的对应方,其mAP为39.0mAP。SlowFast 增加 3.1mAP(达到42.1)。如果额外再加入NL(光流)能够再提高0.4mAP。如果使用基于 Kinetics-600 的预训练模型,能够提高到 45.2 mAP。

4.2. Ablation Experiments

在这个小节,我们将基于 Kinetics-400 数据集研究SlowFast的准确率和计算成本。
Slow vs. SlowFast. 我们首先通过改变样本率( T × τ T×τ T×τ)来探讨SlowFast 与 Slow 的互补问题。因此对 α 进行消融实验。在前面的 Fig. 2 中,展示了 Slow 与 SlowFast 模型准确率和计算复杂度的对比。可以看到,在Slow pathway 中,将帧数增加一倍可以提高性能(纵轴)计算成本加倍(横轴),但是 SlowFast 显著的提高性能,只增加了少量的计算成本。即使Slow pathways使用高帧率运行。绿色箭头说明了将快速通道添加到相应的仅慢速架构的好处。红色箭头说明慢速提供更高的精度和降低的成本。

接下来Table 5 中对 Fast pathway 进行了一系列的消融实验,默认的 SlowFast, T × τ = 5 x 16 T×τ=5x16 T×τ=5x16, R-50 网络结构。如下:
在这里插入图片描述
图解Table 5:这是 Fast pathway 基于Kinetics-400的消融实验,我们报告了 top-1 和 top-5 的分类准确率,以及用浮点运算GFLOPs(以乘加数的# * 109表示)测量的计算复杂度)为单个剪辑输入的空间大小
25 6 2 256^2 2562。当使用固定数量的30个视图时,推理时间计算成本与此成比例。R-50支柱:4×16日。

Individual pathways. 首先在Table 5a 的前两排展示了使用单个 pathway 的精确率。缓慢和快速路径的默认实例化非常轻量级,只有27.3和6.4 GFLOPs,32.4M和0.53M参数,产生72.6%和51.7%的最高精度。分别。如果他们共同使用,这些通道将由他们的专门知识设计,就像接下来的烧蚀一样。

SlowFast fusion. Table 5a 展示了Slow 与 Fast pathways 的融合方式。作为一个简单的融合基线,我们报告了一个没有使用 lateral connection 的实验结果:它只连接两个路径的最终输出。这种变异有73.5%的准确性,比慢Slow Fast pathways 多出0.9%准确率。
接下来,我们使用time-to-channel (TtoC), time-strided sampling(T-sample)以及 time-strided convolution (T-conv)进行了烧烛实验。对于能够匹配通道维度的TtoC,我们还报告了通过元素级求和(TtoC, sum)进行融合。对于所有其他变体,融合采用连接。
Table 5a 显示 SlowFast 模型的结果都是优于Slow-only pathway的,性能最好的是使用 lateral connection of T-conv。Fast pathways 比Slow-only pathway好3.0%。我们使用T-conv作为默认值。有趣的是,仅快速途径只有51.7%的准确性(表5a)。但是它给慢路径带来了高达3.0%的改进,表明由快路径建模的底层表示在很大程度上是互补的。我们通过下一组洗礼来加强这一观察。

Channel capacity of Fast pathway. 凭借一个关键的自觉-快速路径采用低通道的方式,来降低其对空间信息的捕获能力。其通道的数目通过 β β β进行控制。Table 5b显示出了 β β β对准确率的影响。
最好的结果为 β = 1 / 6 β=1/6 β=1/6 β = 1 / 8 β=1/8 β=1/8(默认设置)。 可以看到 β = 1 / 4 β=1/4 β=1/4 β = 1 / 32 β=1/32 β=1/32 其结果都是优于 Slow-only 的。特别的是,当 β = 1 / 32 β=1/32 β=1/32 只增加了 1.3 GFLOPs(约5%)却提高了1.6%的准确率。

Weaker spatial inputs to Fast pathway. 更进一步,我们我们减少Fast pathway 模型空间信息的输入。考虑到以下几点:
1.空间分辨率减少一半(112x112),使用 β = 1 / 4 β=1/4 β=1/4(vs默认1/8)大致维持FLOPs不变。
2.使用 gray-scale 当作输入帧。
3.“time difference" frames,通过用前一帧减去当前帧来计算。
4. Fast pathway使用光流当作输入。

Table 5c 显示,这些方式都是有着不错效果的,都比Slow-only的效果好。尤其是输入gray图像的效果和输入RGB图像效果是非常接近的。但是 FLOPs 减少了接近5%,有趣的是,这也与m细胞对颜色不敏感的行为一致[27,37,8,14,51]。

我们观察表格,Table 5b 和 Table 5c 的结果是令人信服的,虽然时间分辨率是比较高的,但是Fast pathway网络是轻量级的。

Training from scratch. 我们的模型从scratch(随机初始化)开始训练,不使用 ImageNet 的预训练模型。为了进行公平的比较,检查潜在的影响是有帮助的(正影响或者负影响)。为此,我们训练了[56]中指定的完全相同的3D ResNet-50架构。我们训练完全相同的3D ResNet-50架构在[56]中指定,使用我们的大规模SGD食谱从零开始训练。

Table 6显示了使用这个3D R-50基线架构的比较,我们观察到,我们的训练配方取得了与所报道的ImageNet 预训练版本相当好的结果。当食谱还在的时候[56]不能很好地进行从头开始的直接培训,这表明,作为实验基础的训练系统对这个基线模型没有损失,尽管没有使用ImageNet进行预训练。

5. Experiments: AVA Action Detection

Dataset. AVA数据集[20]专注于人类行为的时空定位,数据取自437部电影,提供了每秒一帧的时空标签,每个人都有一个边框和(可能有多个)动作。AVA的难点是动作检测,而actor定位难度较小。而actor本地化则不那么具有挑战。我们使用的AVA v2.1有211k的训练视频和57k的验证视频片段。使用标准的方式在60个类别中进行了评估。性能指标是平均平均精度(mAP),使用帧级IoU阈值0.5。
Detection architecture. 我们的检测架构使用Faster R-CNN,进行了小幅度的修改,使其能适用于视频检测。我们使用 SlowFast 或者他的变体当作主干网络。设置 r e s 5 res_5 res5的空间步伐为1(代替2),filters 的放大倍数为2, r e s 5 res_5 res5 的空间分辨率为2倍。在 r e s 5 res_5 res5 的 feature map 提取 region-of-interest (RoI)特征。我们首先提取2D的RoI,然后在沿着时间轴进行复制,变成3D的RoI。类似的方法在[20]中提出。然后通过 RoIAlign 计算 RoI features,在空间上和在时间上进行全局平均池化。然后将感兴趣区域的特征进行最大汇聚,并将其输入到一个基于每个类的s型分类器中进行多标签预测。
我们跟随之前的一些相关工作,我们的区域建议是由现成的人员检测器计算的,其和行为检测模型没有进行联合训练。使用一个基于 Detectron [18]训练的行人检测模型。其主干网络为 Faster R-CNN with a ResNeXt-101-FPN,使用了基于COCO 人类数据训练的模型作为预训练模型。然后在AVA(person actor)上进行微调。最后在AVA验证集上对人检测达到93.9 AP@50。然后,如果检测出来的box 置信度 >0.8,则进行行为检测。person类召回率为91.1%,精确度为是90.7%。
Training. 网络权重的初始化,是基于Kinetics-400训练出来的模型,在验证误差饱和的情况下,采用步进式学习率,将学习率降低10倍。一共迭代了14K次(64epoch~211k数据集)。对于最开始的1000次迭代,采用 linear warm-up。权重衰减为 1 0 − 7 10^{-7} 107。其他的所有参数和Kinetics的实验是一样的。Ground-truth boxes 作为训练的样本。输入的参数为:大小为224×224的 α T × τ αT×τ αT×τ 帧。

Inference. 在推断的时候,对于每个 clip,围绕你周围取 α T × τ αT×τ αT×τ 帧。改变空间维度的大小,让其最短的边为256个像素。主干网络通过全卷积进行特征提取。就像标准的Faster R-CNN[40]。

5.1. Main Results

在Table 7中,与之前的一些相关研究进行了比较。表格如下:
在这里插入图片描述
可以看到一个有趣的现象,其使用NL(光流)是更加有利于准确率的提升的(观察"flow"则一例)。现有的工作已经观察到轻微的改进:I3D[20]增加了1.1mAP,ATR[29]增加了1.7mAP。在看如下表格 Table 9:
在这里插入图片描述
我们的Fast pathway增加了5.2 mAP。后面会有详细的介绍。此外,使用光流的两流方法可以使计算成本翻倍,而我们的快速通道是轻量级的。
作为系统级比较,我们的慢速模型有26.3mAP只使用Kinetics-400预训练地图。这比之前在类似设置下的最佳mAP高5.6 (ATR[29]的21.7,单模式),比不使用光流时高7.3(Table 7)。
[16]的工作在更大的kinetics600上进行预训练,完成21.9mAP。为了公平比较,我们观察到使用Kinetics- 600时从26.3 mAP到26.8 mAP的改进。使用NL块[56]将这个值增加到27.3。我们在train+val上训练这个模型(1.5倍),提交至AVA v2.1测试服务器[34]。实现了27.1 mAP单作物测试集的准确率。
通过使用IoU > 0.9所提出的与groundtruth box重叠的预测建议,除了groundtruth box,我们实现了28.2 mAP单 crop 验证精度,这是AVA上最新的技术。
使用AVA v2.2数据集(提供了更一致的注释)将这个数字提高到29.0 mAP(Table 8如下)29.8映射并使用多个空间比例尺和水平翻转进行测试,该数字将增加到30.7mAP。
在这里插入图片描述
最后,我们创建了7个模型的集合,并将其提交到2019年ActivityNet挑战赛的官方测试服务器
[1]。如表8所示,该条目(SlowFast++, ensemble)在测试集上实现了34.3 mAP accuracy,在2019年AVA动作检测挑战赛中排名第一。在相应的技术报告[11]中提供了我们获胜方案的更多细节。

5.2. Ablation Experiments

在这里插入图片描述
表9比较了低速基线和低速基线,以及图3所示的按类别划分的AP。我们的方法极大地改进了5.2 mAP(相对28%)19.0到24.2。这完全得益于我们的“慢速”理念。在分类方面(图3),我们的慢速模型在
在60个类别中有57个,而它的对比只有慢速。最大的绝对增益是“拍手”(+27.7AP),“游”(+27.4AP),“运行/慢跑”)(+18.8AP),“跳舞”(+15.9AP)和“吃”(+12.5AP)。我们还观察到,“跳/跳”、“挥手”、“放下”等词语的相对增幅较大,“扔”、“嗨。在这些类别中,建模动力学至关重要。慢速模式只有3个方面更差:“接电话”(-0.1 AP),“lie/sleep”(-0.2 AP)、“shoot”(-0.4 AP)的减少相对于其他的增加较小。

6. Conclusion

时间轴是一个特殊的维度。这篇论文研究了一种建筑设计,对比沿着这个轴的速度。它为视频动作分类和检测实现了最先进的精度。我们希望这种慢速概念能促进视频识别的进一步研究

A. Appendix

Implementation details. 我们研究的主干网络包括ResNet-50和更深的ResNet-101[24],可以选择使用非本地(NL)块[56]扩展。对于涉及R-101的模型,我们使用的比例抖动范围为[256,340]。使用从 T × τ T×τ T×τ = 8×8训练(对其进行了一半的训练,以减少训练时间)的权重初始化 T × τ T×τ T×τ = 16×8的模型。对于所有涉及到NL的模型,我们用未经NL训练的对应模型来初始化它们,以促进收敛。我们只在res4的(融合的)慢速特性上使用NL(而不是res3+res4[56])。
学习率动力学方面,我们在128个GPU上采用同步SGD培训按照[19]的配方,我们发现它的准确性和典型的8 gpu机器训练一样好,但它扩展得很好。 mini-batch大小是8个 clips 每个GPU(所以总的 mini-batch大小是1024)。我们使用[23]中的初始化方法。我们用批处理归一化(BN)[28]进行训练,并在每个8个剪辑中计算BN统计值。我们采用学习率衰减的半周期余弦调度[38]。在前8k次迭代中,我们还使用了线性预热策略[19]。对于Kinetic-400,当T≤4帧时,我们训练256个epoch (60k迭代,总的迷你批大小为1024,在∼240k动力学视频中),当T > 4帧时,训练196个epoch:当一个clip 有更多帧时,训练更短就足够了。我们使用的动量为0.9,重量衰减为 1 0 − 4 10^-4 104。在最终的分类器层之前使用0.5的Dropout[25]。
对于Kinetics-600,我们将训练时间(和时间表)延长了2倍,并将基础学习率设定为0.8。对于Charades,我们对动力学模型进行微调。perclass sigmoid输出用于说明多类的特性。我们在一台机器上进行24k迭代训练,使用批量大小为16,基础学习率为0.0375(Kinetics-400 pre-trained)和0.02 (Kinetics-600预训练)
如果验证误差饱和,则为10倍的逐级衰减。为了进行推断,我们暂时最大池化层[56]。

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南才尽,年少无知!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值