Relation Modeling in Spatio-Temporal Action Localization 技术报告翻译
作者:互联网
报告链接
https://www.youtube.com/watch?v=SEqFdkqdwlE
https://www.bilibili.com/video/BV1664y1X7rZ/
Relation Modeling in Spatio-Temporal Action Localization
时空动作定位中的关系建模
Abstract
本文介绍了我们对 CVPR 2021 ActivityNet 研讨会 AVA-Kinetics Crossover Challenge 的解决方案。我们的解决方案利用多种类型的关系建模方法进行时空动作检测,并采用训练策略将多种关系建模集成到两个大规模视频数据集的端对端训练。还研究了记忆库学习和长尾分布的微调,以进一步提高性能。在本文中,我们详细介绍了我们的解决方案的实现,并提供了实验结果和相应的讨论。我们最终在 AVA-Kinetics 的测试集上达到了 40.67 mAP,并获得了 AVA-Kinetics 2021 挑战赛的第一名。
1. Introduction
时空动作定位旨在通过 3D 边界框定位视频中人的原子动作,这在近年来引起了很大的努力 [5, 25, 20, 16, 4, 9]。一般来说,有两个主要因素显示对该任务的性能有根本影响,即视频主干和关系建模。视频网络的设计已被广泛研究 [4, 19, 3] 并大大提高了下游任务的性能。此外,在大规模网络上预训练此类网络也被证明是有效的 [20, 16],例如在 Kinetics700 [2] 上进行预训练。并且还有多种方法可以执行预训练,例如 [18, 17, 24] 中使用的有监督预训练 [21, 4, 1] 和无监督预训练 [8, 6]。对于关系建模,研究了不同的方法在计算机视觉 [23, 1]、社交网络 [12, 10] 和自然语言处理 [22] 领域。具体来说,基于transformed的关系建模已被证明可以改进时空定位任务[25,20,16]。
在本文中,我们研究了用于时空动作定位的多种关系建模方法。受先前作品的启发,首先使用现成的人体检测器来生成视频中的所有人体边界框。然后我们采用骨干模型来提取视觉特征,并通过 roi align [7] 在每个人的特征图上构建关系模块。在关系模块之后,使用动作预测器为每个动作类别生成分数。我们解决方案的整个流程如图 1 所示。在接下来的部分中,我们首先详细介绍我们方法的实现。然后给出了实验结果和相应的讨论。
2. Method
在本节中,我们将介绍我们在时空动作定位中的关系建模方法。首先,我们为这项任务介绍我们的整体管道。然后,关系建模模块提出了基于transformed的架构,以捕捉人在空间和时间维度上的关系。此外,我们调整记忆库来存储沿视频剪辑的时间上下文的人物特征,以模拟长期关系。研究了在 AVA-Kinetics Crossover 上在线或离线维护内存库的不同策略。最后,我们研究了 AVA-Kinetics 数据集 [5, 13] 中长尾类别分布的学习方法。
2.1. Overall Pipeline
我们设计的管道如图 1 所示。给定输入视频剪辑,提取该剪辑的关键帧并将其输入 2D 人物检测器,以在该剪辑内生成人的边界框。整个视频剪辑是以指定的间隔采样成帧并使用视频主干进行编码,例如SlowFast [4] 和 CSN [21],输出 3D 视频特征图。然后 2D 人物框沿时间维度膨胀(将框应用到除关键帧以外所有的帧),并用于使用 3D RoI-Align [7] 从特征图中提取人物特征。池化的人物特征通过channel-wise连接和卷积层进一步与视频特征图融合在一起。为了对同一视频剪辑中人物之间的隐藏关系进行建模以提高动作预测的有效性,我们将人物特征输入到我们 的关系建模模块中,并使用基于转换器的块。为了指定空间和时间关系,我们从不同的人中选择沿相同空间或时间维度的特征。选定的特征被展平为一系列标记,并输入到转换器编码器块中,以通过注意力机制对它们的关系进行建模。最后,空间或时间维度上所有块的输出标记被全局平均并输入全连接层以预测每个检测到的人的动作类别。
2.2. Person Relation Modeling
关系建模模块的输入人物特征是表示为 P i ϵ R T ∗ H ∗ W P^i \epsilon R^{T*H*W} PiϵRT∗H∗W 的 3D 特征图,其中 i 是人物索引。这些人物特征首先被转换为顺序标记作为转换器编码器块的输入。为了有效地对空间和时间维度上的关系进行建模,同时保持较低的计算成本,提出了两种类型的关系头,即 S-only 和 T-only,分别在每个维度上提取关系。对于 S-only 头,我们生成HW个输入序列。空间位置(h,w)对应的序列为{ a g g t = 1 T ( P t , h , w i ) ∣ i ϵ I { agg^T _{t=1} (P^i_{t,h,w}) | i \epsilon I } aggt=1T(Pt,h,wi)∣iϵI},其中agg(~~~)表示聚合函数,例如平均池化或最大池化,I 是人的索引集。类似地,T-only head 生成 T 个输入标记序列,其中与时间位置 t 对应的序列是 { a g g h = 1 H agg^H_{ h=1} aggh=1H w = 1 W ( P t , h , w i ∣ i ϵ I ^W_{w=1} (P^i_{t,h,w } | i \epsilon I w=1W(Pt,h,wi∣iϵI}。
然后将每个 tokens(表征) 序列馈入变压器编码器块以进行关系建模。注意,不同空间或时间位置的变换器块共享相同的权重。然后将变换器块的输出沿不同的空间或时间位置平均到人的最终表示中
2.3. Memory Bank
维护用于存储和利用长期上下文表示的特征记忆库已被证明是该任务的有效策略 [25,20,16]。我们还调整了特征库,它保存了 our pooled feature features,并在当前视频剪辑的长范围内提供了先前存储的时间戳人物特征。加载的特征被连接起来并输入到关系建模模块中。
现有方法使用记忆库的在线维护策略,在训练阶段不断更新当前视频的存储特征。然而,对于 AVA-Kinetics Crossover 来说,这样的在线策略很难实施,因为 Kinetics 中每个视频只有一个官方注释的片段,其余片段在训练阶段不会到达。为了解决这个问题,我们设计了一个两阶段的训练策略。在第一阶段,不考虑 Kinetics 中的非注释剪辑。我们要么只在 AVA 数据集上训练,要么为 Kinetics 数据集维护一个空的内存库。在第二阶段,我们在 Kinetics 中提取和存储所有剪辑的特征,冻结主干的权重,并在 AVA 和 Kinetics 上微调关系头和分类器。此外,我们还研究了第一阶段无记忆库训练的策略,第二阶段用记忆库重新训练另一个头部。不同策略的比较是在实验中显示。
2.4. Long-tailed Learning
原始 AVA 数据集中存在明显的长尾类别分布,这导致学习样本数较少的类别面临挑战。随着 Kinetics 注释数据的加入,长尾分布仍然是这项任务的一个大问题。
为了进行更合适的训练,我们考虑了 [11] 中的解耦策略。训练过程被解耦为两个阶段。第一阶段遵循随机抽样数据的正常训练策略。在第二阶段,我们冻结除最终分类器之外的所有模型,并使用类平衡数据采样进行训练。这样的策略有助于提高小类的表现。
3. Experiments
3.1. Experimental Settings
人体检测器。我们采用GFocalV2 [14]作为人体检测器。我们首先在 COCO 数据集 [15] 的人员类别子集上训练模型。然后我们继续在 COCO-Person 预训练的 AVA-Kinetics 数据集上训练模型。
Backbone。我们采用 CSN152 [21]、slowfast101 [4]、slowfast152 [4] 作为视觉特征提取器。我们首先在 Kinetics700 [2] 数据集的训练集上训练模型,然后使用权重初始化我们pipeline的骨干部分
Heads. 我们用四种类型的头训练来预测动作。线性头简单地使用全连接层作为基线头。对于关系头,考虑到 S-only 头的特征大小将使其可以更改为维护记忆库,我们训练 S-only without memory bank 和 T-only with/without memory bank。
训练和推理。在训练过程中,我们将 AVA 和 Kinetics 的数据列表连接起来进行混合学习。我们使用 SGD 优化器进行训练,初始学习率为 1e-2,批量大小为 64,权重衰减为 1e-7,总训练迭代次数为 30k。所有的 batchnorm 层都在训练中被冻结。我们在前 1.5k 次迭代中进行线性预热,在迭代 13.5k、18k、22.5k 和 27k 时将学习率降低 0.66。输入视频的最小边为 256,最大边为 464。颜色抖动和框抖动用于数据增强。在推理过程中,我们用三个尺度{256、288和320}和水平翻转进行测试。
3.2. Main Results
表 1 显示了我们在 AVA-Kinetics 上的主要结果。我们使用不同的主干、预训练数据集、输入格式关系头和内存库报告模型的结果。我们最好的单个模型在 AVA 和 Kinetics 上分别达到 37.95 mAP 和 35.26 mAP,在 AVA-Kinetics Crossover 上达到 38.43 mAP。对于主干,ir-CSN-152 与 SlowFast-152 相比实现了更好的性能,后者可能归因于 ir-CSN-152 是用 1/16 的较小降级预训练的,而 SlowFast-152 是 1/32。对于预训练数据集,与在 Kinetics400 上预训练的数据集相比,在 Kinetics700 数据集上进行预训练通常会提高 1 mAP。我们还研究了不同时间分辨率的结果,结果表明增加时间分辨率 2倍 可以提高大约 0.6 mAP。对于 S-only 和 T-only 关系头,与线性头相比,它们都取得了很大的进步,并且结果彼此相似。 T-only head with memory bank 增加了大约 0.8 mAP 的 mAP。在这些模型中,我们选择了 15 个模型并将它们的结果与平均投票相结合。集成结果在 AVA-Kinetics 的验证集上达到 40.97 mAP,在测试集上达到 40.67 mAP。值得注意的是,即使没有对验证集进行训练,与验证集相比,我们也只下降了 0.3 mAP。
表 1.AVA-Kinetics v1.0 上的主要结果。所有模型都经过 3 个尺度和水平翻转测试。 “+M”表示用记忆训练。 “A+K”表示 AVA-Kinetics 的结果。
3.3. Ablation Studies and Discussions
记忆库策略的影响。我们在 AVA-Kinetics 上训练了三种不同的维持记忆库的策略。如表 2 所示,只有在第一阶段对 AVA 进行训练并在 AVA-Kinetics 上进行微调才能在 AVA 上取得令人满意的性能,但由于没有在该数据集上充分训练骨干,因此 Kinetics 的结果会很差。第一阶段在 AVA 和 Kinetics 上都没有记忆库的训练头可以大大提高 Kinetics 的结果。然而,这种策略必须在第二阶段重新初始化头部的权重,并且可能会失去一些有价值的训练努力。最终的策略在 AVA-Kinetics 上分两个阶段进行训练,并在第一阶段保持空库,达到最佳性能,并在我们的最终版本中使用。
解耦学习的影响。我们比较了解耦类平衡微调前后所有类的结果。这些类按样本数量排序,我们列出了前 20 类和后 20 类的平均差异。如表 3 所示,这些小类提高了 1.05 mAP。同时,前20名的成绩几乎没有下降。我们还报告了解耦训练后变化最大的类。值得注意的是,一些小类,例如cut,可以得到很大的改进,同时也有一些性能下降的类。这可能归因于那些训练时间增加的类的过度拟合,这可以进一步改进。
表 3. 应用解耦训练对长尾学习的影响。ir-CSN-152+T-only 在 AVA 数据集上的结果用于比较。类按其标记样本的数量进行排序。列出了前 20 和后 20 类、前 3 改进类和后 3 改进类的平均结果。
表 4 人员检测器对 AVA 和 Kinetics 验证集的影响。 AP@0.5 列显示了不同检测器的检测结果。列出了使用 GT 边界框的结果以供参考。所有结果均使用 ir-CSN-152 主干和 T-only 头进行训练,并使用 3 个尺度和水平翻转进行测试。 “*”表示 det-v3 的结果,它的 AP@0.5 与 det-v2 相似,但在测量 AP@0.5:0.95 时取得了更好的性能。
人体探测器的影响。在这里,我们也有考察检测器性能的提高将在多大程度上获得最终的动作检测性能。在我们的管道中应用了三个检测框,分别在 AVA-Kinetics 的 Kinetics 子集上具有 77.0%、81.7%、82.3% AP。如表 4 所示,当检测器的性能从 77% 提高到 81.7% 时,最终性能在数据集的 AVA 和 Kinetics 部分都可以获得约 1 mAP 的显着提高。如果应用 GT 框,动作检测器在两个子集上的性能将分别达到 43.5 mAP 和 48.5 mAP。此外,即使人体检测器的改进是相似的(在 AVA 和 Kinetics 子集上分别为 95.1 与 95.1 和 81.7 与 82.3),最终动作检测器也获得了相应的性能增益。结果表明,人体检测器是动作检测管道中的瓶颈模块之一。
标签:mAP,训练,Localization,Temporal,Kinetics,建模,我们,Relation,AVA 来源: https://blog.csdn.net/dai_tou_dage/article/details/123613347