E2E-LOAD: End-to-End Long-form Online Action Detection

标题:E2E-LOAD:端到端长格式在线动作检测

发表:ICCV2023

原文链接:https://arxiv.org/abs/2212.05638

源码链接:GitHub - sqiangcao99/E2E-LOAD

摘要

最近,基于特征的在线动作检测(OAD)方法越来越受到关注。然而,这些方法受到固定主干设计的限制,无法充分利用可训练主干的潜在优势。本文介绍了一种改进这些方法的端到端学习网络,并结合了提高有效性和效率的骨干网设计。我们提出的模型为所有帧使用共享的初始空间模型,并保持扩展的序列缓存,从而实现低成本的推理。我们提倡一种不对称的时空模型以适应长形式和短形式的建模。此外,我们提出了一种创新和高效的推理机制,加速了广泛的时空探索。通过全面的消融研究和实验,验证了该方法的性能和效率。值得注意的是,我们在THMOUS ' 14、TVSeries和HDD上分别使用72.4%(+1.2%)、90.3%(+0.7%)和48.1% (+26.0%)mAP实现了17.3 (+12.6)FPS的端到端学习OAD。源代码可从https://github.com/sqiangcao99/E2E-LOAD获得。

1.介绍

在线动作检测(OAD)[10]已成为计算机视觉的一个关键领域,其广泛的适用性跨越监视、自动驾驶等领域。最近的研究努力[29,3,26,32]已经开始将Transformer体系结构[24]用于这项任务。通过利用注意力机制进行远程交互的能力,这些方法比基于RNN的方法有了明显的改进[28,5]。然而,大多数现有研究[28,29,3]依赖于预训练网络的特征。对冻结主干的依赖逐渐限制了速度和精度的提高。虽然有一些努力[30,4]直接对主干进行微调,但它们往往无法平衡出色的性能和可接受的计算成本。这主要是因为这些基于特征的方法采用了一种范式,该范式为单个本地块使用了重型时空主干,同时为块交互使用了轻量级的时序模型。这样的架构通常会导致性能和效率之间的不太理想的平衡。具体而言,重型时空模型的局部应用可能无法充分利用主干在建模长期依赖关系方面的全部潜力。此外,随后的轻量级时序模型常常难以有效地捕获长期关系。此外,这种设计对端到端训练提出了挑战,因为它需要并行执行多个骨干网络以从每个视频块中提取特征,从而导致大量GPU内存消耗。为此,本文提出了一种面向OAD的端到端学习转换器的设计,以增强其在实际应用中的可扩展性。

具体来说,我们为OAD任务引入了一种名为基于Transformer的端到端长格式的新方法,简称为E2E-LOAD。我们的方法采用了“空间-时空”范式。最初,原始视频帧由空间模型处理并转换为特征,随后缓存在缓冲区中。该技术有助于管理视频流数据,因为它允许跨不同时间步重复利用这些缓冲特性,从而显著降低计算开销。此外,缓冲机制提高了模型处理扩展历史序列的能力,因为它将大多数帧保留为缓冲区内的紧凑表示,从而减轻了计算负担。接下来,我们将缓存中保存的序列划分为长期历史和短期历史,并独立进行时空建模。我们为长期流实现一个浅分支,为短期流实现一个深分支。这种非对称结构促进了高效的长形式特征提取。最后,我们引入了一种令牌重用策略,以减轻扩展视频片段的时空交互的高计算成本,实现2倍的速度提升。在实现方面,我们使用较短的历史序列进行训练,然后增加序列长度进行推理。这种技术减少了与长期视频相关的训练开销,同时使我们能够利用长期背景的好处。实验表明,该策略在不影响模型有效性的前提下,有效地降低了训练成本。

通过这些架构创新和效率技术,E2E-LOAD解决了基于特征的方法固有的局限性,实现了卓越的有效性和效率。E2E-LOAD与其他基于特征的方法的比较如图1所示。结果表明,与其他方法相比,该模型具有较高的效率和有效性。我们在三个公共数据集上进行了全面的实验:THUMOS14 [13], TVSeries[10]和HDD[20]。E2ELOAD的mAP值为72.4 (+1.2)%,mcAP值为90.3 (+0.7)%,mAP值为48.1(+26.0)%。值得注意的是,E2E-LOAD在推理速度方面大约比这些方法快3倍。总之,我们的主要贡献是:

(i)我们提出了一个独特的端到端学习框架,该框架集成了空间和时空模型之间的流缓冲,从而提高了在线数据处理的有效性和效率。

(ii)我们引入了一种高效的推理机制,通过令牌重用加速时空注意力处理,使运行时间减少2倍。

(iii)我们的方法在三个公共数据集上仅使用RGB帧实现了显着的准确性和推理速度进步,突出了其在现实世界场景中的实际应用前景。

2. 相关工作

在线动作检测。在线动作检测(OAD)是一种即时识别未修剪视频流中传入帧的方法。与离线视频任务访问所有帧不同,OAD中每个时刻只有逐渐积累的历史帧可用。几种方法[26,5,9,30]完全依赖于最近的视频帧,这些视频帧跨越几秒钟作为当前帧的上下文信息。然而,这种方法可能会忽略长期历史框架中的关键信息,从而潜在地提高性能。为了解决这个问题,TRN[28]使用LSTM[12]来记忆所有历史信息,尽管在建模长依赖关系方面存在限制。最近,LSTR[29]提出使用Transformer[24]同时探索长期和短期记忆,由于全局参与的长期历史,显著提高了当前框架下的动作识别性能。除了历史信息探索之外,一些方法[26,28]试图通过预测未来来规避因果约束。例如,OadTR[26]将预测的未来和当前特性结合起来,以确定正在进行的操作。其他方法[8,22]专注于检测动作的开始,StartNet[8]将该任务分解为动作识别和动作起点检测。最近,GateHUB[3]引入了一种门机制来过滤历史序列中的冗余信息和噪声。此外,Zhao等人提出了TeSTra[32]方法,该方法重用了前一步的计算,非常有利于实时推理。不确定性-OAD[11]将预测不确定性引入到OAD的时空注意中。

动作识别。对于经典动作识别方法的全面概述,我们建议读者参考Zhu等人的调查。由于空间限制,我们在这里关注的是最新的作品,特别是那些基于Transformer范式的作品[2,1,18,27,17,6,15],它们在视频理解任务方面取得了显著的进步。这些方法遇到的主要挑战是由时空维度上的元素交互产生的大量计算负担。为了解决这个问题,最近的研究[2,1,17]提出了几种使用时空因子分解的时空注意力的变体。例如,MViT[6,15]引入了注意力池来减少不同尺度上的令牌数量,Video Swin Transformer[17]采用了移位窗口机制[16]来约束局部3D窗口内的元素智能交互。尽管这些方法表现出令人印象深刻的时空建模能力,但它们很少适合于速度和准确性至关重要的OAD

3. 方法

3.1. 任务定义

给定流媒体视频\mathbf{V}=\{f_{t}\}_{t=-T}^{0}.。OAD旨在计算当前帧f0的动作概率分布{\boldsymbol{y}_{0}}\in{[0,1]}^{C},其中T表示观察到的帧数,C表示动作类的总数。值得注意的是,f1, f2,…代表未来帧,这是无法得到的。与之前使用预提取特征的作品[28,29,3,32]不同,我们的E2E-LOAD直接端到端处理原始RGB帧。在介绍它之前,我们先阐明了我们的模型中包含的高效注意力机制,这是受到视频理解的最新进展的启发[1,15,2]。

3.2. 高效注意力(Efficient Attention)

考虑输入序列,\mathbf{X}_1\in\mathbb{R}^{N_1\times D}, \mathbf{X}_2\in\mathbb{R}^{N_2\times D},其中N1, N2表示序列长度,D表示通道维数。注意力机制为X_2中的单个元素分配权重,将相应的元素进行加权,然后被聚合以更新X_1。然而,该操作的复杂度与输入序列的长度呈正相关。为了解决这个问题,我们对查询(Q)、键(K)和值(V)采用下采样技术D来降低计算复杂性。

\begin{aligned}\mathbf{Q}&=\mathbf{X}_1\mathbf{W}_q,\quad&\mathbf{\hat{Q}}&=\mathcal{D}(\mathbf{Q})\quad&(1)\\\mathbf{K}&=\mathbf{X}_2\mathbf{W}_k,\quad&\mathbf{\hat{K}}&=\mathcal{D}(\mathbf{K})\quad&(2)\\\mathbf{V}&=\mathbf{X}_2\mathbf{W}_v,\quad&\mathbf{\hat{V}}&=\mathcal{D}(\mathbf{V})\quad&(3)\end{aligned}

由于在经验上优越的性能,我们采用了带步长的卷积进行下采样。该技术已广泛应用于动作识别任务,促进了时空注意力加速[16,15,6]。接下来,我们对这些张量应用注意力操作来生成下采样特征图,\hat{\mathbf{X}}_{1}\in\mathbb{R}^{N^{\prime}\times D^{\prime}}.,通过X_1\hat{\mathbf{X}}_{1}的残差连接以及池化操作D对齐序列长度,然后由MLP处理所得序列\tilde{\mathbf{X}_{1}}\in\mathbb{R}^{N^{\prime}\times D^{\dot{\prime}}}以产生最终输出。为了简单起见,我们将注意力机制定义为:

\begin{aligned} \hat{\mathbf{X}}_{1}& =\mathrm{Softmax}\left(\mathbf{\hat{Q}}\mathbf{K}^{T}/\sqrt{\mathbf{D}^{\prime}}\right)\mathbf{V} && \left(4\right) \\ \tilde{\mathbf{X}}_{1}& =\hat{\mathbf{X}}_1+\mathcal{D}(\mathbf{X}_1) && \left(5\right) \\ \operatorname{Attn}(\mathbf{X}_{1},\mathbf{X}_{2})& =\mathrm{MLP}(\widetilde{\mathbf{X}}_{1}) && \text{(6)} \end{aligned}

3.3. 架构

我们提出了E2E-LOAD架构,它使用流缓冲区(SB)来提取和缓存传入帧的空间表示,然后将这些表示分为两个部分,旧的、较长的部分被定向到长期压缩(LC)分支来压缩时间分辨率,相反,较新的、较短的片段被发送到短期建模(SM)分支以仔细地对最近的上下文进行建模,最后,通过长短期融合(LSF)模块对这两种表示进行融合以预测最新帧。在推理过程中,我们引入了一种高效推理(EI)技术来加速SM的时空探索。图2描述了E2E-LOAD的结构。每个模块的细节将在后面的小节中讨论。

3.3.1块嵌入(Chunk Embedding)

通常在离线视频识别[1,2]中,从视频中均匀采样2D或3D块(patches),并投影到Transformer编码器的令牌序列中。对于OAD,以前的方法[29,32,3]在块级别识别正在进行的动作,其中每个块由几个连续的视频帧组成。按照这种配置,我们从τ×H×W的每个块中均匀采样t帧,沿着空间维度将其划分为n_{h}\cdot n_{w}个大小为t×h×w得3D块,其中\begin{matrix}n_h&=&\left\lfloor\frac{H}{h}\right\rfloor\end{matrix}, \begin{matrix}n_w&=&\left\lfloor\frac{W}{w}\right\rfloor\end{matrix},然后从视频中提取的3D块通过块嵌入(Chunk Embedding,CE)操作转换为一个块嵌入矩阵Et,该矩阵的维度为\mathbf{E}_{t}\in\mathbb{R}^{(n_{h}\cdot n_{w})\times D},这种嵌入过程允许每个标记包含局部时空线索,有利于细粒度识别。值得注意的是,基于特征的方法[29,3,32]通常依赖于重型时空主干,如双流[23]和TimeSFormer[2],来提取块特征,而通常采用轻量级模块进行块交互,以保持整体效率。这种不灵活和不平衡的设计阻碍了OAD效率和有效性的提高

3.3.2流缓冲区(Stream Buffer)

在在线场景中,OAD模型一次接收一个帧,使用现有内存识别正在进行的操作,然而,大多数动作识别模型需要这些帧之间的时间交互,导致处理在线视频的效率低下,因为这种设计阻碍了中间帧表示的重用,序列随着时间的推移而演变。为了解决这个问题,我们引入了一个空间注意力模块,该模块带有一个缓冲区,用于存储中间的每帧特征。空间注意力将原始帧投影成紧凑但语义丰富的表示,可以在不同的时间步长重复使用,减轻了后续时空建模的负担。缓存内存M_t表示为:

\begin{aligned}\mathbf{\hat{E}}_t&=\mathrm{Attn}_\mathrm{S}(\mathbf{E}_t)&&(7)\\\mathbf{M}_t&=[\mathbf{\hat{E}}_{t-T+1},\ldots,\mathbf{\hat{E}}_{t-1},\mathbf{\hat{E}}_t]&&(8)\end{aligned}

其中T表示内存长度,t表示时间戳,T可以很大,这对长期理解至关重要,最后,我们将[CLS]标记附加到每个块以进行动作分类([CLS]标记用于标记分块),因为OAD需要细粒度的块级预测。

3.3.3短期建模(Short-term Modeling)

以往的研究[28,29]经常使用重型时空骨架[23,2]从块中提取特征。然后将这些特征汇集成一维格式,使用轻量级时间建模[12,24]创建依赖关系。虽然这种方法提供了一定的计算效率,但它忽略了块间时空建模对细粒度动作分类的重要性(只考虑了视频块内得时序关系,而没有考虑到块与块之间得时序关系)。相比之下,我们的方法使用流缓冲区(SB)模块来捕获每个块中的空间特征,然后,我们在这些块间应用时空建模,这种“空间-然后-时空”的设计充分利用了主干对远程依赖关系的表示能力,而不会在计算单个块中的依赖关系上浪费过多的资源。因此,我们的端到端训练框架提供了效率和有效性方面的改进。具体地说,我们从Stream Buffer中取最近的前T_S个数据块\mathbf{M}_{t}^{S}=\left[\hat{\mathbf{E}}_{t-T_{S}+1},...,\hat{\mathbf{E}}_{t-1},\hat{\mathbf{E}}_{t}\right],作为短期建模(Short-term Modeling,SM)的输入,然后,将多层注意力机制叠加在一起,构建具有T_{S}\cdot n_{h}\cdot n_{w}个令牌(tokens)之间的时空交互,这些“令牌”代表了各种视频块之间的时空关系,以便后续的动作分类或其他任务使用。

{\hat{\mathbf{M}}}_{t}^{S}=\operatorname{Attn}_{\mathrm{ST}}(\mathbf{M}_{t}^{S})\qquad(9)

此外,为了确保模型的预测是基于当前时刻之前的信息,采用了一个因果性掩码(causal mask)来限制短期历史的影响,以阻止未来时刻的交互,这与之前的工作[29]一致。在完成当前上下文的时空探索后,我们将最后一帧的[CLS]令牌提供给分类器进行动作预测(这个[CLS]标记包含了整个视频块的语义信息)。

3.3.4长期压缩(Long-term Compression)

随着时间的推移,大量的视频帧被缓存在流缓存中,这些帧可能包含有助于识别当前帧的关键信息。因此,我们将长期历史序列压缩成多个时空特征图,为短期建模(SM)模块提供可扩展的时间尺度上下文。具体来说,我们对Mt的长期历史进行了采样,其中\mathbf{M}_{t}^{L}=\bigg[\hat{\mathbf{E}}_{t-T_{S}-T_{L}+1},\ldots,\hat{\mathbf{E}}_{t-T_{S}-1},\hat{\mathbf{E}}_{t-T_{S}}\bigg],其中,T_L表示长期历史的长度,然后,我们利用时空注意力压缩M_t^L,使用比SM更大的下采样率,为了提高效率,我们构建了一个具有L_{LC}注意力机制层的浅压缩模块,因为与短期历史相比,长期历史与当前行为之间的相关性通常较弱,该模块逐步降低了空间和时间分辨率。通过几个阶段,生成的令牌集合了最关键的时空线索。更重要的是,在M_t^L被馈送到压缩模块之前,我们分离M_t^L以阻止从M_t^L到流缓冲区的反向传播,如果不应用这种梯度截断,我们会根据经验观察到训练失败,值得注意的是,短期建模已经为训练流缓冲区提供了梯度。用于实现这种分离的“停止梯度”算子表示为sg(·)。这个过程的公式如下所示。

\begin{aligned}\mathbf{M}_t^L&=\operatorname{sg}([(\hat{\mathbf{E}}_{t-T_L+1}),\ldots,(\hat{\mathbf{E}}_{t-T_S-1}),(\hat{\mathbf{E}}_{t-T_S})])&(10)\\\hat{\mathbf{M}}_t^L&=\operatorname{Attn}_{\mathrm{ST}}(\mathbf{M}_t^L)&(11)\end{aligned}

其中,\hat{\mathbf{M}}_t^L\in\mathbb{R}^{T_L^{\prime}\cdot n_h^{\prime}\cdot n_w^{\prime}\times D}T_{L}^{\prime},n_{h}^{\prime},n_{w}^{\prime}表示压缩历史表示的分辨率。

3.3.5长短期融合(Long-Short-term Fusion)

长期和短期历史的融合是一个关键的技术方面,它会显著影响每个分支更好地学习其特征表示的能力。因此,我们探索了不同的融合算子和位置,以实现长期压缩\hat{\mathbf{M}}_{t}^{L}短期历史\hat{\mathbf{M}}_{t}^{S}之间更有效的融合。与之前的工作不同[23,7,27,29],我们的目标是将它们融合在时空中。这种方法允许\hat{\mathbf{M}}_{t}^{S}通过更细粒度的时空维度发现和积累\hat{\mathbf{M}}_{t}^{L},而不是依赖于整个图像表示。(使用更小的时空单元,短期历史信息可以更准确地捕捉视频中的细微变化和动作,从而更好地利用长期压缩信息中的时空相关性。这有助于提高模型对于视频中动作和特征的理解和分类能力。)这个方法的细节如下。

融合算子。交叉注意力机制(CA)融合中,我们以压缩后的长期历史\hat{\mathbf{M}}_{t}^{L}作为键值标记,以短期历史\hat{\mathbf{M}}_{t}^{S}作为查询标记,进行交叉注意力机制计算(根据短期历史信息来寻找长期历史信息中与之相关的内容)。相反,我们在基于自注意机制(SA)的融合中,通过将长期历史\hat{\mathbf{M}}_{t}^{L}与短期历史\hat{\mathbf{M}}_{t}^{S}连接起来,作为自注意力机制的键和值(模型同时关注长期历史信息和短期历史信息,并使用自注意力机制来理解它们之间的关系),虽然这种方法不引入额外的参数,但它增加了计算成本。

融合位置。一种直观的方法,称为后期融合,是在长期和短期记忆被充分探索后进行融合,类似于之前的OAD方法[29,3,32]。相比之下,早期融合将压缩的长期历史与短期建模模块的一层中的中间表示集成在一起,允许后续层进一步探索融合的表示。

3.4. 高效推理

虽然所提出的流缓冲可以重用计算的特征并加速在线推理,但我们观察到在短期建模(SM)中进行时空探索的推理时间消耗很大。为了解决这个问题,我们提出了高效推理(EI)来加速SM。在每一步中,常规的规则推理(RI)都需要更新短期窗口内的所有帧,EI直接重用了上一时刻的T_S-1帧的计算结果。这样,只需通过交叉注意力机制计算单个最新帧的特征,并将其与上一时刻的计算结果进行连接,计算复杂度从O(T_S^2)降低到O(T_S),其中,\mathbf{X}_{[1:T_{S}]}^{t}\mathbf{Y}_{[1:T_{S}]}^{t}分别为时刻t的时空注意模块的输入和输出:

\begin{gathered} \mathbf{Y}_{T_{S}}^{t} =\mathrm{Attn}_{\mathrm{ST}}\left(\mathbf{X}_{T_{S}},\mathbf{X}_{[1:T_{S}]}\right) \left.\left(\begin{matrix}{12}\\\end{matrix}\right.\right) \\ \mathbf{Y}_{[1:T_{S}]}^{t} =\mathrm{Concatenate}\left(\mathbf{Y}_{[2:T_S]}^{t-1},\mathbf{Y}_{T_S}^{t}\right) \left.\left(\begin{matrix}{13}\\\end{matrix}\right.\right) \end{gathered}

对于RI,感受野被T_S固定,因此会更新自注意力窗口内的所有帧。相反,提出的EI重用了T_S-1重叠帧的计算特征,这些特征包含了窗口中从最后一刻开始的所有信息。因此,感受野变得循环并从开始扩展到当前时刻,将长期背景引入短期历史,作为LC的补充。此外,EI机制并不改变训练过程。虽然这引入了训练和测试之间的差异,但测试期间使用的令牌重用策略不会导致信息丢失,因为我们在训练期间使用因果掩码来切断令牌与未来的连接。相反,这种策略使我们能够获得窗外的信息,并且对于长视频的理解是有效的。

3.5. 损失函数

在LSTR[29]和GateHUB[3]之后,我们对所有短期帧应用交叉熵损失,给出如下:

\mathcal{L}=-\sum_{i=t-T_S+1}^t\sum_{j=1}^C\boldsymbol{y}_{i,j}\log\hat{\boldsymbol{y}}_{i,j}\quad\text{(14)}

其中yi表示第i帧的真值,而\hat{y_i}对应于C类的预测概率。

4.实验

5.总结

本文提出了一个基于transformer的端到端在线动作检测框架E2E-LOAD。我们的框架解决了OAD的关键挑战,包括长期理解和高效推理,具有新颖的设计,如缓冲流、短期建模、长期压缩、长短期融合和高效推理。通过在三个基准上的广泛实验,E2E-LOAD比现有方法实现了更高的效率和有效性。由于E2E-LOAD为长视频建模提供了一个有效的框架,这可能对其他长视频任务有所帮助。

  • 21
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值