BIT: Bi-Level Temporal Modeling for Efficient Supervised Action Segmentation
原文翻译 仅供个人学习!!!
2023
目录
Abstract
解决全监督动作分割任务,任务旨在-将视频分割成不重叠的片段,每个片段表示不同动作。最近的工作应用transformer在帧级别执行时间建模,这存在高计算成本,并且不能很好地捕捉长时间范围内的动作依赖性。为了解决这些问题,我们提出了一种高效的BI级时间建模(BIT)框架,该框架学习明确的动作标记来表示动作片段,并行地在帧和动作级别上执行时间建模,同时保持较低的计算成本。
本模型包括:i frame branch – 使用卷积学习帧级关系的帧分支
ii action branch – transformer学习动作级依赖关系
iii cross attention – 两个分支之间的通信
本文应用 a set-prediction objective,允许每个动作token代表一个或多个动作片段,从而可以避免在具有多个片段的长视频中学习大量token。
1.Introduction
与对短视频片段的动作进行分类的动作识别任务不同,动作分割旨在将长视频和未修剪的视频划分为不重叠的动作片段。这项任务的一个关键挑战是理解动作之间的长期相关性,因为许多动作只能在其他动作的背景下准确分类(例如,拿起汽车扳手的人可以继续松开或拧紧凸耳螺母)。
现有工作基于frame,根据帧级特征估计动作关系,见图1(a)。然而,它们在处理长视频时有一个固有的缺点,即模型必须从数万帧中推断出动作关系。最近的工作(cross-enhancement、asformer)[46,50]使用了transformer而不是时间卷积来提高分割性能,然而,这在效率上有很大的牺牲,如图1a。事实上,对长期动作依赖性的准确建模和推理需要学习动作片段的显式表示。然而,这是一项具有挑战性的任务,因为它需要提前了解视频的动作片段,而这对于测试视频来说是不可用的。所以(UVAST、graph-based)[1,4,17]使用两阶段模型,该模型首先计算初始逐帧预测,然后根据预测估计动作片段,见图1b,然而忽略了frame和action之间的双向联系,它们的性能受到初始预测质量的限制,而初始预测仍然是使用基于帧的方法获得的。
Contribution
1.提出时间建模BIT框架,高效准确捕捉长时间依赖,该框架学习action token来表示action segment,并行估计帧和动作级别的时间关系,以实现轻松的跨级别通信,同时保持低计算成本,如图1c,蓝色为frame branch,对帧级特征进行操作,以对low-level细节进行编码,绿色为action branch,在所有视频的固定大小的action token上进行操作,以捕捉高级动作关系,橘色cross-att,在两个分支之间进行通信。BIT分配token的一个子集来编码其中的动作段,同时将多余的动作段分配给一个特殊的null类。
2.提出set-prediction loss,来估计动作标记和基本事实片段之间的最佳匹配
3.a:与帧级模型比较,BIT直接从对应的动作token中推断动作之间的依赖性,而不是从长帧序列中计算依赖性。
b:与两阶段模型比较,BIT在学习帧级特征的同时学习action token,同时允许它们通过交叉注意力利用彼此的互补信息。它还包含多个块,以实现预测的迭代细化。
c:计算高效,因为在anction branch中使用transformer,anction token数量远小于帧的数量;在frame branch中使用时间卷积进一步减少计算量
d:将action token作为一个集合而不是一个序列进行学习,允许BIT处理具有许多action token的长视频,因为action token和action segments之间的映射没有限制。因此,每个token可以表示same action class的一个或多个segment。这有效地将所需token的数量从action segments数量的线性减少到视频中唯一action class数量的线性。
4.可以使用action token利用外部知识,一些视频(如教学视频)具有文本叙述,可以解析为描述视频中动作序列的视频转录。
BIT优于所有现有方法,同时比以前最先进的方法快30倍
2.Related Works
2.1. Action Segmentation
2.2. Set Prediction
DETR
使用集合的一个重要动机是有效地处理具有许多重复动作片段的长视频。事实上,视频通常包含重复的动作,这些动作具有相似的语义,并且可以由共享token表示。
[1,4] (UVAST)通过一系列action feature进行建模,排序指示特征与ground-truth相匹配,如果一个特征可以对应于不同位置的几个片段,则它们只允许一对一匹配,因为排序变得不明确。相反,我们将action token构造为一个集合,这意味着从token到segment的匹配没有约束。因此,我们可以将重复的segment匹配到同一个token,并有效地减少所需token的数量,从而简化计算。虽然DETR[5]解决了一对一匹配的问题,但我们提出了一种新的算法来找到一对多匹配,同时确保token的所有匹配segment都属于同一个动作类别。
3.Proposed Method
具有T帧和预训练的特征X∈RT*D,D为特征维度,预测结果∈[1,…,A],动作类别数量为A。
3.1. BIT Network
整体结构由一个Input block和多个update block组成,每个模块都由两个分支组成,input block执行两个分支的初始特征学习,而update block使得能够在两个分支之间进行交叉关注的通信以细化特征。设置A0和F0为两个分支的input,使用固定大小的M个action token的集合作为A0,使用可学习的位置编码ρa来区分,ρa∈RM*D。
初始action token标记为A0=0,我们的模型更新token,将其中一些token与ground-truth action segment相关联,同时允许其他token不分配给任何segment。一个token可以表示同一动作类的一个segment(一对一)或多个片段(1对多),而M被设置为大于视频中动作片段或唯一动作的典型数量。action token学习action class及其相关片段的位置,而我们不允许两个token表示同一片段。对于frame-branch,我们使用F0 = X,和具有绝对正弦的位置编码ρf作为输入。
3.1.1. Input Block
Input block进行初始特征学习
frame-branch:使用时间卷积捕获帧之间的时间信息,F1(refine)是更新的帧级特征,P1f∈RT×A是帧的action probabilities的初始估计,F1是两者的级联,也是frame-branch的输出。
action-branch:使用具有多头交叉注意力和自注意力的transformer来使用帧特征F1初始化action token,并学习token之间的依赖性,A1(refine)是action token的更新,P1α∈RM×A+1是token的action probabilities,A1是action-branch的输出。
与(End-to-end object detection with transformers)[5]类似,除了A实际操作类之外,我们还包括一个特殊的null类,该类表示未分配给任何分段的标记的标签。
3.1.2. Update Block
我们的update block的目的是使用交叉关注来允许帧级特征利用在动作分支中学习的高级动作依赖性,并允许token访问frame分支中的低级信息。
首先,使用一个交叉注意力,以基于帧级特征更新action token,使用A1作为q,F1作为k和v。
A2(attn)表示更新的action token,∇2α∈RM×T是attention map,∇2α的每一行表示从一个token到所有frame的注意力并加和。使用一个attention map,因为它允许我们获得动作token和帧之间的对齐(指示标记的相关片段的时间位置)。接下来,我们使用只有多头自注意的transformer来细化token并预测它们的动作class,
A2(refine)表示细化后的action token,P2α表示动作类别的概率,A2表示动作分支的输出。
给定动作分支的更新输出A2,我们类似地使用单头交叉注意力来更新帧特征,并用卷积来细化,
∇2f∈RM×T是从帧到动作标记的注意力(每列加一),还表示基于最新特征的action token和帧之间的信息对齐,Pf2是对帧的动作的更新估计。最后,A2和F2是下一个update block的输入。
3.1.3. Temporal Downsampling
当动作的数量和帧的数量之间存在很大差异时,学习交叉注意力变得具有挑战性,通过在交叉注意力之前对帧特征进行适当的时间下采样,然后再进行上采样,可以有效地解决这个问题。具体来说,如图2(左)所示,我们计算下采样特征F1来代替(5)和(8)中的F1。从(8)我们得到了F(attn)2,它是交叉注意的输出。然后,我们对其进行上采样以获得F(attn)2,从而在(10)中使用它。
不会以固定的比例对F1进行下采样,因为它会重新移动短片段的特征。相反,我们根据帧的动作预测将视频划分为多个片段,y’=argmax(Pf1) ,然后通过平均池为每个片段计算一个特征来向下采样F1,如图2(右)所示。
我们发现通过GRU进一步细化所获得的特征是有帮助的。因此使用F1=GRU(downsample(F1),F1的位置编码ρf是片段中间帧的位置。然后为了上采样F(attn)2,复制特征,见图2(右)。由于上采样的特征丢失了帧的低级细节,我们使用全连接层将其与F1合并,即我们在(10)中使用的F(attn)2=FC(F1,upsample(F(attn)2))。在这个过程中获得的注意力map也是下采样的,因此,我们将对它们进行类似的上采样,以供以后使用。
3.1.4. Generating Predictions
BIT由B个块组成,其中1个input block和B-1个update block。
我们可以通过帧分支得到动作预测,i)帧分支通过计算argmax(PBf)∈[1,…,A] ii)动作分支的输出。为此我们计算action token预测的类别,c=argmax(PαB)∈[1,…,A+1]M,以及使用最后一个交叉注意力mt=argmax(AfB(m,t)),意味着帧t属于分段中标记为mt,预测类别为c(mt)。对于分类为null类的令牌,我们在∇fB中屏蔽它们的注意力,以避免将帧分配给它们。
3.2 Proposed Loss Functions
在帧级分支中,用ground-truth y来学习帧的类别;在动作分支中,token需要正确学习动作类别和gd片段的位置。由于我们将token构造为无序集,因此token和segment之间没有预定义的匹配。因此,我们在它们之间寻找最佳匹配,并将其用作计算损失的监督。假设有N个gd段,其中分段n可以用类别an和时间间隔Tn描述,我们将最优匹配表示为π*∈{1,…,M],π*n=m,意为段n被分配给token m。
3.2.1. Frame Loss
强制帧的动作概率PFb与y一致
3.2.2. Action Token Loss
强制动作token学习其相关片段的动作类
3.2.3. Cross-Attention Loss
强制token关注其匹配段的帧,而每个段中的帧关注其匹配的token
3.2.4. Temporal Smoothing Loss
解决了过度分割的问题,即帧级预测在动作边界附近的动作之间振荡。我们将平滑损失应用于帧的动作概率以及帧和动作标记之间的对齐(注意力map),
3.2.5. Computing Optimal Token-Segment Matching
为了获得最优匹配π*,设S(n,m)为片段n和token m的匹配cost。为了在一对一、一对多中的匹配,使总matching-cost 最优化,具体来说,当每个token可以表示一个分段(一对一)时,我们强制每个m在π*中不会出现一次以上,并通过匈牙利算法求解[21]。当每个token可以表示多个分段(一对多)时,我们要求这些分段必须属于同一个动作类,三步法。
matching-cost考虑token m的预测类别及其在交叉注意力中关联的帧,定义为:
其中第一项 PαB(m,an) 是token与segment属于相同动作的概率,第二项是片段m与所关联帧之间的IoU。1t∈T是指示符,如果t在段中,则为1,否则为0。∇fB(m,t)∈[0,1]指示帧t是否与token m对齐,β控制这两项之间的平衡。
3.3 Leveraging Video Transcripts
BIT还可以很容易地合并视频记录(视频中片段的有序列表)。请注意,分段的时间位置仍然未知。当transcript可用,用来初始化token。具体而言,1)不再学习a set of action token,而是学习动作类别的embedding,动作被构造为动作在transcript中的嵌入,具有绝对正弦位置编码。2)基于transcript创建token意味着我们知道token和分段之间的基本匹配,因此我们可以在损失中使用它来代替最优匹配π。通过这两个简单的更改,BIT可以在保持相同推理速度的同时合并文本转录。
4.Experiments
4.1.1. Implementation
采用具有1个input block和3个update block,在Breakfast、GTEA和EgoProceL上分别用60、60和200个token学习token和片段之间的一对一匹配,在EPIC Kitchen上用300个token学习一对多匹配,因为学习一对一配对至少需要1500个token,这会效率较低。我们在我们的网络的后面的块中应用时间向下采样。
4.1.2. Comparison with the State-of-the-Art
表1显示了不同动作分割方法的结果,其中“BIT帧”和“BIT-动作”分别表示帧分支和动作分支的预测准确性。在Breakfast上,BIT的推理时间比UVAST快30倍,比ASFormer快6倍。在大多数指标上,BIT动作比BIT-帧更准确,因为它可以纠正BIT帧中的错误上下文外分段。
4.1.3. Ablation Studies
Number of Action Tokens
在图4中,我们测试了在EgoProceL上学习不同数量的动作标记以进行动作分割。首先,没有标记显示只有框架分支的基线模型。因此,它变成了一种基于帧的方法,并且不能很好地捕捉长时间依赖性,导致F1非常低。另一方面,使用具有令牌和分段之间的一对多(OTM)或一对一(OTO)匹配的动作令牌可以将F1提高8-10%,表明动作级时间建模是良好动作分割的关键。
Matching between Action Tokens and Segments
图4展示了使用动作标记和片段之间的不同匹配进行学习的效果。首先,OTO匹配显示出比OTM更好的F1,因为它分别表示每个片段,从而更好地编码它们的动作类别和位置,但两者之间的性能差距不大。我们还将OTM与“每类一个”(OPC)匹配进行了比较,在这种匹配中,我们总是分配一个token来对特定动作类的片段进行编码。请注意,OPC所需令牌的数量是所有动作类的数量,并且大于OTM的数量,OTM与一个视频中的动作类数量呈线性关系。OPC也具有较低的F1,因为它总是融合相同动作的片段的信息,而OTM允许模型决定何时用一个令牌对片段进行编码。最后,我们将OTO与Seq-To-Seq(STS)进行比较,其中我们将token视为一个序列,将前N个token与N个segment匹配(N是gd分段的数量),其余的匹配到null类。STS获得较低的F1,因为它在tokens之间施加了顺序依赖性,因此一个token中的错误(例如,token5应该预测第5个分段,但错误地预测了第6个分段)影响了所有后续token的预测。在OTO中,一个token中的此类错误不会影响其他token。
Effect of Losses
Performance by the Number of Action Segments
本文研究了与视频片段数量相关的模型性能,
在图3中,我们根据breakfast中真实片段的数量将其分为四组,并分别评估每组的ASFormer、UVAST和BIT。尽管所有模型在具有更多分段的组上的性能都有所下降,但BIT始终优于ASFormer和UVAST,这表明即使有大量分段,我们的方法也可以学习令牌和分段之间的鲁棒匹配。相比之下,虽然UVAST在第一组(1-5)中超过了ASFormer,但在第二组和之后的组中,其性能迅速下降。这是因为它的解码器在具有更多片段的视频上预测不太准确的转录物。
Learning with less data
Effect of Background Frames
动作分割任务旨在分割未修剪的视频,这些视频可能包含与视频任务无关的背景帧。因此,在表3中,我们通过排除评估期间的背景帧来额外报告模型性能。虽然所有模型的性能都有所下降,但BIT仍然始终优于先前的工作。
4.1.4. Qualitative Results
我们研究了我们的模型如何分配动作标记来编码不同动作类的片段。为此,在图7中,对于Breakfast上的令牌子集,我们显示了一个类的分段与某个令牌关联的频率(令牌被重新排序以更好地突出显示模式)。请注意,尽管我们学习了60个令牌,超过了动作类的数量,但BIT并不是简单地为每个类分配一个令牌,而是为类似的类共享令牌。例如,令牌54通常与倾倒动作有关;令牌59与切割有关,令牌23与向锅中倒东西有关,表示令牌已经学习了动作的语义。
5.Conclusion
在本文中,我们提出了BIT,
i)有效地学习一组固定大小的动作标记来显式表示动作片段。
ii)并行地对动作和帧级别执行时间建模,这使我们能够以更低的计算成本胜过基于帧和两阶段的方法。
动作标记的设计还使我们能够在文本转录本可用时将其合并,从而可以用更少的训练数据实现更高的分割精度。我们在四个数据集上进行了大量实验,并进行了各种消融研究,证明了BIT的有效性。BIT的一个限制是,所有视频的动作令牌的数量都是固定的,这导致只有几个片段的视频的计算开销。在未来的工作中,我们将扩展BIT,以允许在推理过程中进行令牌修剪。