将时间动作分割技术推广到未见过的视图
《INTERNATIONAL JOURNAL OF COMPUTER VISION》:Towards Generalizing Temporal Action Segmentation to Unseen Views
【字体:
大
中
小
】
时间:2026年03月11日
来源:INTERNATIONAL JOURNAL OF COMPUTER VISION 9.3
编辑推荐:
摘要
尽管在时间动作分割方面取得了实质性进展,但如何将模型泛化到未见过的视角仍然是一个未解决的问题。因此,我们定义了一种用于未见视角动作分割的协议,在这种协议中,训练期间无法使用评估模型的相机视角。这包括从顶部正面视角切换到侧面视角,或者更具挑战性的从外部视角切换到自我视角。此外
摘要
尽管在时间动作分割方面取得了实质性进展,但如何将模型泛化到未见过的视角仍然是一个未解决的问题。因此,我们定义了一种用于未见视角动作分割的协议,在这种协议中,训练期间无法使用评估模型的相机视角。这包括从顶部正面视角切换到侧面视角,或者更具挑战性的从外部视角切换到自我视角。此外,我们提出了一种解决这一挑战的时间动作分割方法。我们的方法在序列和片段两个层面上利用了共享表示,以减少训练期间视角差异的影响。我们通过引入序列损失和动作损失来实现这一点,这两种损失共同促进了不同视角下视频和动作表示的一致性。在Assembly101、IkeaASM和EgoExoLearn数据集上的评估显示出了显著的改进:对于未见过的外部视角,F1@50提高了12.8%;对于未见过的自我视角,F1@50提高了54%。
引言
时间动作分割能够在长视频中识别动作片段及其持续时间。这项任务具有许多实际应用,包括辅助技术、生产线监控和动物行为分析。尽管在时间动作分割方面取得了重大进展(Xu等人,2022年;Behrmann等人,2022年;Aziere和Todorovic,2022年;Bahrami等人,2023年;Liu等人,2023年;Gong等人,2023年),但如何将模型泛化到未见过的视角尚未得到解决。当这些方法应用于实际环境时,这带来了额外的挑战。
图1
在这项工作中,我们解决了在未见视角上进行时间动作分割(TAS)的问题。在训练期间,我们观察到至少有两个不同的长视频序列视角,这些视角已经按照发生的动作进行了逐帧注释。尽管使用了标准的时间动作分割损失函数$\mathcal {L}_{TAS}$,我们提出了一个序列损失函数$\mathcal {L}_{seq}$和一个动作损失函数$\mathcal {L}_{action}$,这些函数可以在不降低可见视角准确性的情况下提高模型对未见视角的泛化能力。然后,该模型可以应用于与训练集中的视角非常不同的未见视角环境。
这个问题在某些领域(如制造业)已经得到部分解决,例如通过在专门的训练阶段收集多视角数据(Sener等人,2022年;Grauman等人,2024年)。尽管操作限制(如工厂车间的空间有限)通常限制了只能使用一个固定摄像头,但常见的做法是在计划好的数据采集会话中临时安装多个摄像头。这些会话能够捕获同一场景的同步多视角记录,这些记录可以在单视角配置中用于训练模型,这在机器人装配线和智能制造环境中很常见。然而,即使在数据采集期间使用了多摄像头设置,也无法覆盖所有相关的摄像头视角,因为环境和规定通常会对摄像头的安装位置施加限制。重新收集新摄像头视角的训练数据通常是不可行的或在经济上不切实际的。虽然可以使用知识蒸馏技术(Quattrocchi等人,2024年)在两个摄像头视角之间最小化注释过程,但仍需要使用新的和旧的摄像头视角记录新的训练数据。为了消除对未见摄像头视角的新数据采集需求,我们提出了一种在训练期间直接解决这些问题的方法。虽然我们假设在训练期间有多个摄像头视角可用,但我们也评估了在训练期间只有一个摄像头视角可用的情况。
图1展示了在未见视角上进行时间动作分割的设置。给定包含至少两个不同视角的注释训练数据,目标是从未见视角中对视频中的动作进行时间分割。我们特别关注训练数据中的视角与测试数据中的视角之间存在较大差异的情况,例如从顶部正面视角切换到侧面视角,或者更具挑战性的从外部视角切换到自我视角。需要强调的是,训练期间无法使用未见视角,我们的目标是训练一个时间动作分割网络,使其尽可能忽略视角信息。这是通过使用在两个不同时间层面上共享权重的孪生网络来实现的。虽然提出的序列损失旨在学习跨视角相似的视频表示,但提出的动作损失旨在学习跨视角相似的动作表示。
在我们的评估中,我们检验了模型从外部视角到未见外部视角和未见自我视角的泛化能力。为了评估我们的方法,我们为Assembly101(Sener等人,2022年)和IkeaASM(Ben-Shabat等人,2021年)数据集建立了未见视角动作分割设置。此外,我们还在EgoExoLearn数据集(Huang等人,2024年)上评估了我们的方法。实验结果表明,序列损失和动作损失相互补充,使Assembly101未见外部视角的F1@50提高了12.8%,未见自我视角的F1@50提高了54%。即使对于可见视角,也有3%的轻微提升,因为提高对未见视角的泛化能力也有助于减少过拟合。
相关工作
2.1 完全监督的时间动作分割
时间动作分割涉及预测视频帧的密集分类分数。最初,早期方法(Rohrbach等人,2012年;Karaman等人,2014年)依赖于滑动窗口非最大值抑制。此外,Kuehne等人(2014a,2016年)、Tang等人(2012年)和Richard与Gall(2016年)探索了使用隐马尔可夫模型(HMMs)进行动作的时间建模。后续方法(Lea等人,2017年;Farha等人,2019年;Huang等人,2020年)采用了时间卷积网络(TCN)进行时间动作分割。Lea等人(2017年)提出了一个编码器-解码器TCN网络,而Farha等人(2019年)引入了多阶段TCN(MS-TCN)。进一步的方法被提出用于预测细化,例如边界回归网络(Ishikawa等人,2021年)和基于图卷积的模型(Huang等人,2020年)。随着Transformer架构的广泛采用(Vaswani等人,2017年),基于注意力机制的方法(Yi等人,2021年;Behrmann等人,2022年;Bahrami等人,2023年;Aziere和Todorovic,2022年)也应运而生。此外,Li等人(2022年)将视觉Transformer与预训练的视觉语言模型(Wang等人,2021年)结合用于特征提取,而Liu等人(2023年)利用扩散模型(Sohl-Dickstein等人,2015年;Song和Ermon,2019年;Ho等人,2020年;Song等人,2021年)进行时间动作分割。另一个研究方向专注于利用额外的约束来提高时间动作分割的质量(Xu等人,2022年;Gong等人,2023年),这些约束与底层架构无关。
与这些方法不同,我们专注于未见视角时间动作分割的任务,提出了研究中之前未解决的挑战。虽然一些先前的工作(Ghoddoosian等人,2022年;Quattrocchi等人,2024年)将多个视角整合到了他们的方法中,但我们的方法有显著的不同。在Ghoddoosian等人(2022年)的工作中,利用了多个视角之间的逐帧对应关系来生成弱监督在线动作分割的伪真实值。Quattrocchi等人(2024年)采用知识蒸馏方法进行外部到自我模型的迁移,使用单个外部视角训练动作分割模型,然后将其适应到自我视角。
我们的方法特别针对在动作分割方法训练期间有多个视角可用的情况。然而,在方法部署时,摄像头设置与训练设置不同。因此,模型需要在测试期间对未见视角表现出鲁棒性。这种设置特别适用于实际应用,即模型是为固定的摄像头设置开发的,但后来部署系统的客户使用的摄像头设置却大不相同。
2.2 视角不变的动作识别
视角不变的动作识别任务是对从未见视角捕获的视频中的动作进行分类。早期的研究(Junejo等人,2008年;Rao等人,2002年;Weinland等人,2010年;Farhadi和Tabrizi,2008年)试图手动设计在所有视角下都表现良好的视角不变视频特征。最近的工作更侧重于学习这项任务的表示。不同的工作使用了各种模态,如深度(Vyas等人,2020年;Li等人,2018年)、骨架或运动(Luo等人,2017年;Li等人,2018年)来实现表示的视角不变性。特别是基于骨架的方法得到了广泛应用,许多模型都是基于RNN(Sordoni等人,2015年;Shahroudy等人,2016年;Zhang等人,2017年;Liu等人,2017年)、TCN(Kim和Reiter,2017年)、GCN(Chen等人,2021年;Cheng等人,2020年;Ke等人,2022年;Liu等人,2020年;Shi等人,2019a,b;Yan等人,2018年;Ye等人,2020年;Chen等人,2021年)等架构提出的。另一条研究路线(Mahasseni和Todorovic,2013年;Vyas等人,2020年;Shah等人,2023年;Das和Ryoo,2021年;Shah等人,2024年;Piergiovanni和Ryoo,2021年;Zheng等人,2016年;Liu等人,2011年)专注于仅使用RGB数据进行视角不变的动作识别,避免使用额外的模态。近年来,由于出现了大规模的自我视角数据集(Sener等人,2022年;Grauman等人,2021年;Damen等人,2022年;Grauman等人,2024年;Sigurdsson等人,2018a,b),自我到外部视角不变的动作识别方向受到了越来越多的关注(Sermanet等人,2017年;Wang等人,2023年;Xue和Grauman,2023年;Truong和Luu,2023年;Yu等人,2019年;Soran等人,2015年)。此外,一些用于外部到自我知识迁移的方法(Li等人,2021年;Choi等人,2020年;Ardeshir和Borji,2018年)被引入,允许使用第三视角的预训练进行自我视角动作识别。沿着这个方向,Ohkawa等人(2024年)提出了跨视角(自我到外部)知识迁移的新任务,用于密集视频字幕。
2.3 孪生网络
孪生网络(Bromley等人,1993年)已被广泛用于诸如面部验证(Bromley等人,1993年)、一次性图像识别(Koch等人,2015年)、跟踪(Bertinetto等人,2016年)和表示学习(Assran等人,2022年;Chen和He,2021年)等任务。它们通过比较输入对来学习区分性特征的能力在动作识别中也证明了其价值。先前的研究(Sheng和Huber,2019年;Roy等人,2018年;Lu等人,2024年;Guanghui等人,2024年)探索了它们在各种动作识别设置中的应用,证明了它们在人类活动识别中的有效性。其中,SimSiam(Chen和He,2021年)作为一种简化的自监督孪生架构脱颖而出,它避免了需要负样本对、大批量或动量编码器的需求。SimSiam的一个关键创新是在网络的一个分支上使用停止梯度操作,这防止了表示崩溃,并被假设可以诱导出类似期望最大化优化的方式。我们的方法也使用了带有停止梯度操作的孪生网络。
图2
为了训练一个可以应用于训练数据之外视角的时间动作分割网络,我们提出了一个序列损失(顶部)和一个动作损失(底部)。序列损失以两个不同的摄像头视角作为输入,并计算视角之间的逐帧相似性(余弦相似性)。此外,还对两个视角应用了标准的时间动作分割损失(TAS)。动作损失以随机选择的相同动作(绿色)的动作片段作为输入,并计算这些动作片段之间的逐帧相似性。权重 \(\mathcal {E}_{\theta }\) 在两个分支之间是共享的。全尺寸图像3 在未见视图上的时间动作分割当时间动作分割方法在实践中应用时,视图通常与训练期间观察到的视图不同。因此,在这项工作中,我们旨在提高时间动作分割方法对未见视图的鲁棒性。虽然我们假设训练序列至少包含两个不同的视图,并且已经由发生的动作进行了注释,但测试序列包含一个未包含在训练数据中的视图。在我们的评估中,我们考虑了两种情况:(a) 从外部视图到未见外部视图的泛化;(b) 从外部视图到未见自我视图的泛化。虽然模型应该在未见视图上表现出鲁棒的性能,但它应该在训练期间遇到的视图上保持一致的性能。需要强调的是,我们不假设所见视图和未见视图之间存在任何配对序列。因此,不能应用知识蒸馏等技术,我们需要训练一个模型,该模型从训练数据中丢弃视图特定的信息,更多地关注与视图无关的动作的固有信息。为了解决这些问题,我们提出通过考虑视图之间的相似性来学习时间动作分割的表示。虽然可以通过对比学习方法(Chen等人,2020年;He等人,2020年;Chopra等人,2005年)学习不同视图的相似嵌入,但它们需要较大的批量大小或记忆库,这对于长视频序列来说非常昂贵,因为时间动作分割需要这样做(Bahrami等人,2023年)。因此,我们基于孪生网络(Bromley等人,1993年;Chen和He,2021年)并提出了两个损失项,这些损失项在序列和动作层面测量视图之间的相似性。受到(Chen和He,2021年)的启发,我们的方法采用了一个预测头和一个停止梯度操作。这一关键设计引入了一个非对称的优化过程,防止模型退化为平凡的、恒定的表示。具体来说,一个分支的输出作为一个固定目标,而另一个分支配备了预测头,被训练来匹配它——从而鼓励学习有意义的、非平凡的特征。虽然图2展示了这两个损失项,但我们在第3.2节和第3.3节中详细讨论了它们。第3.1节首先正式定义了在未见视图上的时间动作分割任务。3.1 问题表述在训练期间,我们有一组N个序列 \(\{\mathcal {I}_{i}\}_{i=1}^{N}\),其中每个 \(\mathcal {I}_{i} = \{f_{i}^{k}\}_{k=1}^{M}\) 代表从M个不同视图记录的第i个序列,这些视图由 \(\mathcal {V}_{\text {seen}} = \{ {1}, \dots , {M} \}\) 表示。我们假设 \(M\ge 2\)。对于每个具有 \(T_i\) 帧的训练序列 \(\mathcal {I}_{i}\),给出了真实动作,表示为 \(c_{i} = [c_{1}, \dots , c_{T_i}]\)。在评估中,提供了来自不同视图的视频,即 \(\mathcal {V}_{\text {unseen}} \cap \mathcal {V}_{\text {seen}} = \emptyset \)。每个视频由一个H维输入序列 \(f \in \mathbb {R}^{T \times H}\) 表示,其中 \(f_{t}\) (\(t\in \{1, \dots , T\}\)) 是一个大小为H的特征向量。时间动作分割网络 \(\mathcal {E}_{\theta }\) 首先将 \(f \in \mathbb {R}^{T \times H}\) 编码为表示 \(z \in \mathbb {R}^{T \times D}\)。然后,使用分类头来预测逐帧标签 \(\hat{c} = [\hat{c}_{1}, \dots , \hat{c}_{T}]\)。时间动作分割网络通常在相同的视图 \(\mathcal {V}_{\text {seen}}\) 上进行训练和测试,并使用动作分割损失进行训练,例如,包括逐帧交叉熵和平滑均方误差(MSE)损失(Farha等人,2019年)。在这项工作中,我们提出了两个损失函数,以提高对未见视图 \(\mathcal {V}_{\text {unseen}}\) 的泛化能力,同时不降低对所见视图 \(\mathcal {V}_{\text {seen}}\) 的准确性。3.2 序列损失为了提高时间动作分割网络 \(\mathcal {E}_{\theta }\) 对未见视图的鲁棒性,我们引入了两个损失函数。第一个损失项,我们称之为序列损失,它鼓励同一序列的所有视图的表示相似。损失在图2(顶部)中进行了说明。给定来自视图q的输入序列 \(f_{i}^{q}\),我们从同一序列i但不同视图r (\(r \ne q\)) 中随机采样 \(f_{i}^{r}\)。然后,使用 \(\mathcal {E}_{\theta }\),我们获得一对嵌入 \(z_{i}^{q}\) 和 \(z_{i}^{r}\)。虽然我们对 \(z_{i}^{r}\) 和 \(z_{i}^{q}\) 添加相同的分类头来预测逐帧标签 \(\hat{c} = [\hat{c}_{1}, \dots , \hat{c}_{T}]\) 并使用时间动作分割损失(TAS)进行监督,这将在第3.4节中描述,但预测头 \(\mathcal {P}_{\psi }\) 将 \(z_{i}^{q}\) 映射到 \(p_{i}^{q} \in \mathbb {R}^{T \times D}\)。预测头 \(\mathcal {P}_{\psi }\) 是一个具有高斯误差线性单元(GELU)激活函数的3层MLP,具有可训练参数 \(\psi \)。在实验中,我们将评估预测头的影响,它提高了在未见视图上的准确性。对于序列损失,我们计算 \((p_{i}^{q}, z_{i}^{r})\) 之间的逐帧余弦相似性:$$\begin{aligned} \mathcal {S}(p_{i}^{q}, z_{i}^{r}) = \sum _{t} \mathcal {D}(p_{i, t}^{q}, z_{i,t}^{r}), \end{aligned}$$ (1)其中 \(\mathcal {D}(\textbf{a}, \textbf{b}) = \frac{\textbf{a} \cdot \textbf{b}}{\Vert \textbf{a}\Vert \Vert \textbf{b}\Vert }\) 是余弦相似性。在实验中,我们展示了与对序列的时间维度进行池化相比,逐帧相似性的好处。最终以对称的方式计算整体序列损失:$$\begin{aligned} \mathcal {L}_{seq}= -\sum _{i} \frac{1}{2} \big [\mathcal {S}(p_{i}^{q}, z_{i}^{r}) + \mathcal {S}(p_{i}^{r}, z_{i}^{q}) \big ]. \end{aligned}$$ (2)3.3 动作损失序列损失(\(L_{seq}\))仅关注同一序列内的视图,因此不考虑不同序列之间的相似性。为了解决这一限制,我们引入了一个额外的目标,我们称之为动作损失,旨在对齐不同视图中的动作片段的表示。虽然 \(L_{seq}\) 促进了单个序列内视图之间判别特征的相似性,但它不鼓励从不同视角捕获的序列之间的表示对齐。动作损失鼓励相同动作类别的片段具有相似的表示,即使它们的视觉外观由于记录中的常见变化(如参与者、环境或相机视角的变化)而有所不同。损失在图2(底部)中进行了说明。对于动作损失,我们从序列i中随机采样一个动作片段 \(s_{i, \alpha }^{q} \in \mathbb {R}^{T_{s_{i}} \times H}\),其中 \(\alpha \) 表示片段的动作标签,\(T_{s_{i}}\) 表示片段的帧数。我们均匀采样第二个具有相同动作标签 \(\alpha \) 但不同视图 \( r \ne q\) 的动作片段 \(s_{j, \alpha }^{r}\)。在这种情况下,j可以是相同的序列或另一个序列。与序列损失一样,嵌入 \(z_{i, \alpha }^{q}\) 和 \(z_{j, \alpha }^{r}\) 是通过 \(\mathcal {E}_{\theta }\) 获得的,预测器 \(\mathcal {P}_{\psi }\) 计算 \(p_{i, \alpha }^{q}\)。然后给出 \(p_{i, \alpha }^{q}\) 和 \(z_{j, \alpha }^{r}\) 之间的余弦相似性:$$\begin{aligned} \mathcal {S}(p_{i, \alpha }^{q}, z_{j, \alpha }^{r}) = \sum _{t=1}^{\min (T_{s_{i}},T_{s_{j}} )} \mathcal {D}(p_{i, \pi _i(t), \alpha }^{q}, z_{j, \pi _j(t), \alpha }^{r}) \end{aligned}$$ (3)其中 \(\pi _i\) 和 \(\pi _j\) 是片段 \(s_{i, \alpha }^{q}\) 和 \(s_{j, \alpha }^{r}\) 之间的时间对齐。我们使用线性对齐,其中 \(\pi (t)=t\) 对于最短的片段,\(\pi \) 是最长片段的线性子采样。最后,动作损失的对称版本由下式给出:$$\begin{aligned} \mathcal {L}_{action} = -\sum _{i} \frac{1}{2} \big [\mathcal {S}(p_{i, \alpha }^{q}, z_{j, \alpha }^{r}) + \mathcal {S}(p_{j, \alpha }^{r}, z_{i, \alpha }^{q}) \big ]. \end{aligned}$$ (4)在实验中,我们展示了这两个损失项的互补性。虽然动作损失旨在使不同序列和视图中的动作表示相似,但序列损失对同一序列的不同视图进行逐帧比较。虽然后者也可以包括未注释的帧,但动作损失仅限于已注释的动作片段。在训练期间每个序列只有一个相机视图可用的情况下,我们仅使用动作损失。在这种情况下,我们采样具有相同动作标签的动作片段,而不受 \( r \ne q\) 的限制,因为每个序列只有一个视图可用,但视图在序列之间会变化。3.4 联合训练动作分割模型 \(\mathcal {E}_{\theta }\) 和预测头 \(\mathcal {P}_{\psi }\) 使用以下损失进行联合训练:$$\begin{aligned} \mathcal {L} = \mathcal {L}_{TAS} + \lambda \mathcal {L}_{seq} + \beta \mathcal {L}_{action}. \end{aligned}$$ (5)\(\mathcal {L}_{TAS}\) 表示来自(Farha等人,2019年)的动作分割损失,包括逐帧交叉熵和平滑均方误差(MSE)损失。序列损失和动作损失的影响分别由 \(\lambda \) 和 \(\beta \) 控制,这些在实验中进行评估。对于 \(\mathcal {E}_{\theta }\),我们使用公开可用的网络(Bahrami等人,2023年)。4 实验数据集。当前的动作分割数据集,如Breakfast(Kuehne等人,2014b)和50Salads(Stein和McKenna,2013),缺乏多视图设置。具体来说,50Salads是使用单个相机视图捕获的,而Breakfast数据集是用3到5个相机记录的,但由于相机未校准和相机位置根据位置不同而受到影响(Kuehne等人,2014b)。我们在Assembly101(Sener等人,2022)和IkeaASM(Ben-Shabat等人,2021)上评估了我们方法的性能,因为这两个数据集都包含多个视图,并且由发生的动作进行了密集注释。此外,我们还在EgoExoLearn(Huang等人,2024)上评估了我们的方法,该数据集没有为训练提供多个视图,但为训练和测试提供了不同的视图。Assembly101(Sener等人,2022)是一个程序活动数据集,包含描绘人们组装和拆卸101个玩具车辆的多视图视频。该数据集包含4,321个视频,总时长为513小时,来自12个不同的视角。在这些12个视图中有8个是外部视图(第三视角),其余4个是自我视角(第一人称视角)。视频的最大时长为25分钟,平均每个视频有24个粗粒度动作片段。这些片段被密集注释,涵盖了202个粗粒度动作类别中的动作,包括11个动词和61个对象。此外,数据集还包括1380个细粒度动作类别,按对象和交互动词分类。根据(Sener等人,2022)的动作分割基准,我们使用训练分割并在验证集上评估模型。有关动作类别分布等更多详细信息,请参考(Sener等人,2022)的补充材料。IkeaASM(Ben-Shabat等人,2021)是一个多视图的数据集,包含IKEA家具的组装。在视频中,48名不同的参与者使用3种不同颜色(橡木、白色、黑色)的4种家具类型(抽屉、电视柜、咖啡桌、边桌)在5个不同的环境(家庭、实验室、办公室)中进行组装。数据集总共包含1,113个视频,总时长为35.16小时。这些视频是从三个外部视角捕获的。视频平均时长为1.89分钟,包含来自33个原子动作类别的片段。数据集分为训练集和测试集,分别包含762个和351个视频。数据集包括捕捉工作区正面、侧面和顶部的三个视图。EgoExoLearn(Huang等人,2024)是一个数据集,包含演示视频和自我视角视频,其中相机佩戴者在不同环境中复制演示的任务。该数据集侧重于从自我和外部视角捕获的异步程序活动。EgoExoLearn包含747个视频序列,总时长为120小时,涵盖了从日常食物准备到实验室实验的各种活动。多视图评估设置。在所有数据集中,我们将可用视图集 \(\mathcal {V} = \mathcal {V}_{\text {seen}} \cup \mathcal {V}_{\text {unseen}}\) 分为 \(\mathcal {V}_{\text {seen}} \subset \mathcal {V}\) 和 \(\mathcal {V}_{\text {unseen}} = \mathcal {V} \setminus \mathcal {V}_{\text {seen}}\)。使用已见的视图进行训练,同时我们在所有视图 \(\mathcal {V}\) 上评估模型的性能,特别关注 \(\mathcal {V}_{\text {unseen}}。由于Assembly101包含两种不同类型的视图,即外向(exo)和内向(ego)视图,我们将\(\mathcal {V}_{\text {unseen}} = \mathcal {V}_{\text {unseen}}^{\text {exo}} \cup \mathcal {V}_{\text {unseen}}^{\text {ego}}\)划分为两部分,以便分别分析内向和外向视图。每个序列包含10个视图,其中8个是外向视图,2个是内向视图。具体来说,\(\mathcal {V}_{\text {seen}}\)包含6个外向视图,而\(\mathcal {V}_{\text {unseen}}^{\text {exo}}\)和\(\mathcal {V}_{\text {unseen}}^{\text {ego}}\)每个序列都包含2个内向视图。图3展示了Assembly101数据集的视图。在我们的协议中,我们使用\(\mathcal {V}_{seen} = \{Exo_{1}, \dots , Exo_{6}\}\)作为已看到的视图。作为未看到的视图,我们使用\(\mathcal {V}^{exo}_{unseen} = \{ Exo_{7}, Exo_{8} \}\)和\(\mathcal {V}^{ego}_{unseen} = \{ Ego_{1}, Ego_{2}, Ego_{3}, Ego_{4} \}\)。每个序列有10个视图,有些视图仅由\(Ego_{1}\)和\(Ego_{2}\)记录,而其他视图则由\(Ego_{3}\)和\(Ego_{4}\)记录。在评估时,我们使用所有可用的未看到视图。图3展示了Assembly101数据集的相机视图。我们使用\(\mathcal {V}_{seen} = \{Exo_{1}, \dots , Exo_{6}\}\)作为已看到的视图。作为未看到的视图,我们使用\(\mathcal {V}^{exo}_{unseen} = \{ Exo_{7}, Exo_{8} \}\)和\(\mathcal {V}^{ego}_{unseen} = \{ Ego_{1}, Ego_{2}, Ego_{3}, Ego_{4} \}\)。完整尺寸的图像。
对于IkeaASM,我们在两个视图上进行训练,并使用第三个视图作为未看到的视图进行测试。对于EgoExoLearn,我们遵循零样本仅外向视图设置(Huang等人,2024年)。对于输入特征,我们使用自监督的DinoV2特征(Oquab等人,2024年),不针对Assembly101、IkeaASM和EgoExoLearn进行微调。此外,我们使用MViTv2(Li等人,2022年),该特征基于掩码特征预测预训练(Wei等人,2022年)进行初始化,并仅使用Assembly101数据集上的已看到视图进行微调,遵循(Sener等人,2022年)中概述的动作识别协议。我们的协议包括特征和模型,可在https://github.com/emadRad/UnseenViewTAS获取。
评估指标。我们报告了在\(10\%\)、\(25\%\)和\(50\%\)的重叠阈值下的逐帧准确率(Acc)、片段编辑距离和片段F1分数,分别用\(F1 @ \{10, 25, 50 \}\)表示。F1分数使用交并比(IoU)来衡量重叠程度。对于EgoExoLearn,我们遵循(Huang等人,2024年)的方法,并报告F1@Avg,即所有阈值\(\{10, 25, 50 \}\)上的F1平均值。编辑分数衡量动作的顺序,而不考虑持续时间。逐帧准确率衡量每帧的准确性,对持续时间较长的动作有偏好,并且对过度分割错误的敏感度较低,即真实动作段中的少数帧被错误分类。F1分数被认为是最可靠的衡量标准。有关指标的更详细描述,请参考(Ding等人,2023年)。
4.1 消融研究
在下文中,我们评估了超参数和设计选择的影响,并将我们的方法与基线模型进行了比较,基线模型是在没有额外损失项或修改的情况下仅使用已看到视图进行训练的动作分割模型。对于动作分割,我们使用了(Bahrami等人,2023年)提出的模型。我们使用MViTv2特征在Assembly101数据集上展示了所有结果。评估指标分别针对已看到视图、未看到的外向视图和未看到的内向视图进行报告,因为分析对已看到视图的影响与未看到视图的影响同样重要。
图4显示了在MViTv2特征的基础上添加序列损失(\(\mathcal {L}_{seq}\))和动作损失(\(\mathcal {L}_{action}\))对基线模型的影响。序列损失表示将\(\mathcal {L}_{seq}\)添加到基线模型中,而动作损失表示将\(\mathcal {L}_{action}\)添加到基线模型中。
表1 使用MViTv2特征时不同损失项的影响。\(\mathcal {L}_{action}\) (s. view)表示动作损失还包括同一视图的动作片段。
表1 不同损失项的影响。图4显示了使用动作级损失(\(\mathcal {L}_{action}\)、序列级损失(\(\mathcal {L}_{seq}\)或它们的组合时的F1@50分数。我们首先比较了仅使用\(\mathcal {L}_{seq}\)或\(\mathcal {L}_{action}\)的两种变体。对于未看到的内向和外向视图,添加动作损失或序列损失都会带来改进,而最佳结果是通过结合这两种损失项获得的。特别是,与基线相比,未看到的内向和外向视图的F1@50分数分别提高了54%和12.8%。未看到的内向视图中的改进比未看到的外向视图更为显著。这种差异可以归因于内向视图和外向视图之间的显著差异,这使得使用这两种损失项对内向视图更有益。此外,已看到视图的结果也显示出改进,这可能是由于额外损失项的正则化效应。此外,我们在表1中展示了所有指标的结果。虽然仅使用序列损失在未看到的外向视图上的编辑分数和准确率最高,但损失项的组合在所有其他设置中表现最佳。特别是,F1@50分数的组合最高,我们的方法在所有指标上都优于基线模型。我们还研究了仅使用不同视图的动作片段计算动作级损失的影响,如第3.3节所述。如果我们也计算同一视图的动作片段的动作级损失,如表1中的\(\mathcal {L}_{action}\) (s. view)所示,性能会下降,因为动作级损失减少了视图独立动作表示的学习。此外,我们还评估了添加对抗损失(\(\mathcal {L}_{Adv}\)的影响。为此,我们在模型中添加了一个视图分类头来预测每个输入的视图。我们最大化应用于视图分类头输出的交叉熵损失,这可以解释为生成对抗网络(Goodfellow等人,2014年)中的判别器。最大化视图分类头的损失旨在消除视图依赖信息,使模型对未看到的视图更加鲁棒。表1显示,结合对抗损失以及动作级损失(\(\mathcal {L}_{action}\)和序列级损失(\(\mathcal {L}_{seq}\)会导致未看到的内向和外向视图的性能下降。在4.2节中,我们还将我们的方法与在基线模型中添加对抗损失的设置进行了比较。
图5显示了在\(\mathcal {L}_{seq}\)和\(\mathcal {L}_{action}\)之间加权的影响,其中\(\lambda \)代表\(\mathcal {L}_{seq}\)的权重,\(\beta \)代表\(\mathcal {L}_{action}\)的权重。在左侧图中,\(\lambda \)固定为0.5,而\(\beta \)变化。在右侧图中,\(\beta \)固定为0.2,而\(\lambda \)变化。
图5 展示了使用不同权重对序列损失(\(\mathcal {L}_{seq}\)和动作损失(\(\mathcal {L}_{action}\)的影响。这里,\(\lambda \)代表序列损失的权重,而\(\beta \)代表动作损失的权重。如图所示,考虑已看到和未看到的视图,\(\lambda \)和\(\beta \)的最佳值分别为0.5和0.2。将\(\lambda \)固定为0.5并增加\(\beta \)会导致已看到和未看到的内向及外向视图的性能下降。另一方面,如图5右侧图所示,增加\(\lambda \)同时固定\(\beta \)为0.2并不会提高F1@50分数。对于未看到的外向视图,它略有提高,但对于未看到的内向视图则略有下降。
图6显示了使用不同视图进行训练的影响。数字\(\{1, 2, 3, 4, 5, 6\}\)指的是外向视图的ID(图3)。例如,ID为3的视图是\(Exo_3\)。
图6 显示了使用不同视图进行训练的影响。对于我们的模型,我们使用了\(\mathcal {V}_{\text {seen}}\)中的所有视图。在这个实验中,我们分析了从训练集中移除某些视图对我们模型在已看到和未看到视图上的性能的影响。我们将视图5和6以及视图1和4分组在一起,因为它们在视觉上是对称的(见图3)。此外,我们考虑了一个从训练集中移除四个视图(即视图1、4、5和6)的情景。这种分组基于视图1和4以及视图5和6之间的相似性,这可能在一定程度上减少了训练样本数量减少的影响。使用所有六个视图进行训练在所有未看到的视图上获得了最高的整体性能。有趣的是,移除视图5和6导致未看到的内向视图的F1@50分数大幅下降,这可能是由于视图5和6与内向视图之间的视觉相似性。移除四个视图导致未看到的外向视图的F1@50分数下降了2.6个百分点,而仅移除视图5和6时下降的幅度为2.5个百分点。
图7 将动作损失应用于MViTv2特征(AdaptedFeat)然后训练动作分割方法的效果不如直接将我们的损失应用于动作分割方法(Ours)有效。
图8 使用不同模块作为预测头时的F1@50分数。对于AttentionBlock,我们使用了(Bahrami等人,2023年)中的模块。
图8 对适应后的特征应用动作损失。为了评估输入特征对我们方法的影响,我们设计了一个实验来适应预训练的MViTv2的特征。我们冻结了MViTv2的现有层,并在其顶部引入了一个额外的Transformer编码器层(Vaswani等人,2017年)。然后我们使用这些特征作为输入来训练我们的基线方法。图7显示了这项实验在F1@50方面的结果。虽然AdaptedFeat相对于基线有所改进,但它未能达到我们方法获得的结果,这突显了在动作分割层面而不是特征层面学习跨视图泛化的重要性。
预测头的影响。对于预测头\(\cal {P}_{\psi }\),我们使用了一个具有非线性的3层MLP。在图8中,我们比较了移除预测头的情况。我们考虑了两种情况:一种是我们完全移除了预测头,另一种是用AttentionBlock替换了MLP。对于AttentionBlock,我们使用了(Bahrami等人,2023年)中的模块。虽然没有预测头的性能在已看到视图上略有提高0.2,但使用MLP在所有未看到的视图上获得了最高的F1@50分数。
细动作片段和粗动作片段的影响。Assembly101提供了两个粒度的注释,即细粒度和粗粒度。表2显示了使用细粒度或粗粒度动作片段进行动作损失的结果。需要注意的是,动作分割任务利用了Assembly101的粗粒度片段(Sener等人,2022年)。虽然在未看到的外向视图上使用粗粒度片段的F1@50分数比细粒度片段高出0.4,但在未看到的内向视图上使用动作片段的F1@50分数比粗粒度片段高出3.2。此外,已看到的视图也从细粒度片段中获得了更多的好处。
图9 使用MViT特征将输出序列池化为1、512、1024以及在序列损失(\(\cal {L}_{seq}\)中不进行任何池化的完整长度时的F1@50分数。
图9 显示了在序列损失和动作损失中池化序列的影响。我们在序列损失或动作损失中不对序列进行任何池化。在这里,我们展示了在计算余弦相似度之前对序列和动作片段进行池化的结果。图9说明了将序列池化为1、512和1024的长度的影响。对于未看到的内向视图,池化序列导致F1@50分数下降。然而,对于未看到的外向视图,它可能会带来0.6的轻微提高。总体而言,当考虑已看到和未看到的视图时,池化序列平均降低了F1@50分数。
图10 显示了池化动作片段的结果。在这种情况下,当池化为1时,未看到的内向视图的F1@50分数从9.7下降到7.2。
图10 使用MViT特征在动作损失(\(\cal {L}_{action}\)中将输出片段池化为1、8、16并保持完整长度时的F1@50分数。
图10 显示了使用余弦相似性的影响。为了评估余弦相似度的效果,我们用均方误差(MSE)和Kullback–Leibler(KL)散度来替代余弦相似度。在这种情况下,我们分别用MSE或KL散度替换了公式(2)和(4)。表3显示了这项实验在F1@50指标上的结果。在所有已见过和未见过的视角中,余弦相似度的表现都优于MSE。虽然KL散度在已见过的视角上的表现与余弦相似度相当,但在未见过的视角上的表现较差。
表3 替换余弦相似度为均方误差(MSE)和Kullback–Leibler(KL)散度损失的影响
图11 使用停止梯度的影响。图11评估了停止梯度在我们模型中的效果。尽管Chen和He(2021)的研究表明,在自监督训练中停止梯度是必要的,以防止模型崩溃,但我们在这里并没有观察到这样的效果。尽管如此,停止梯度对已见过的和未见过的自我视角有积极影响,但导致未见过的外视角的F1@50指标下降。
表4 框架随机偏移量在\[0, \delta \]范围内的影响。表4评估了视角同步对准确性的影响。对于已见过的视角,框架的随机偏移不会影响性能,但会降低未见过视角的性能。然而,这仍然优于基线方法。框架随机偏移10帧并不会进一步降低未见过的外视角的性能,但会导致未见过的自我视角的性能大幅下降。在这种情况下,不同视角之间的注释和框架不再对齐,使得难以区分由于视角不同而产生的变化和由于时间延迟产生的变化。这表明,同步相机视角对于实现对未见过视角的泛化非常重要。
表5 使用ResNet3D、MViTv2和DinoV2特征在Assembly101上的结果。我们将我们的方法与基线方法(Bahrami等人,2023年)和DVANet(Siddiqui等人,2024年)进行了比较。表5展示了我们使用ResNet3D、DinoV2和MViTv2特征在Assembly101上的结果。我们还将其与另一种替代方法进行了比较:AdvLoss在基线模型中加入了对抗性损失(第4.1节有描述),该损失旨在消除依赖于视角的信息,使模型对未见过视角更加鲁棒;Contrastive在基线模型中加入了对比损失(Oord等人,2018年),该损失是通过使用同一批次中不同视角的相同序列形成的正对来计算的。
此外,我们将我们的方法与一种最新的视角不变特征学习方法DVANet(Siddiqui等人,2024年)进行了比较。我们使用了DVANet的公开代码,该代码以ResNet3D作为骨干网络,并在Assembly101数据集上对模型进行了微调。然后使用学习到的视角不变特征作为时间动作分割的输入特征(Bahrami等人,2023年)。表5的结果显示,在所有设置中,我们的方法都优于基于DVANet(Siddiqui等人,2024年)的动作分割方法。当训练数据和测试数据中的视角差异非常大(\(\mathcal {V}_{unseen}^{ego}\))时,使用ResNet3D作为骨干网络和DVANet(Siddiqui等人,2024年)进行特征学习的效果较差。当我们将我们的方法与表5中的基线方法(Bahrami等人,2023年)和AdvLoss进行比较时,我们观察到我们的方法在使用MViTv2特征的所有指标上均表现出改进。例如,在未见过的自我视角上,F1@50、编辑(Edit)和准确率(Acc)指标分别比基线方法提高了\(+3.4\)、\(+5.3\)和\(+7.6\)。此外,已见过的视角的性能也在提高,这可能是由于引入的损失项的正则化作用。虽然Contrastive方法在使用MViTv2特征时在已见过的视角上取得了有竞争力的结果,但在未见过的外视角和自我视角上的表现较差,F1@50下降了9%。对于DinoV2特征,我们的方法在大多数指标上也优于基线方法、AdvLoss和Contrastive。虽然Contrastive方法在已见过的视角上取得了较高的准确率,但在未见过的外视角和自我视角上的编辑距离略低。图12和图13显示了使用MViTv2和Dino特征时Assembly101每个视角的F1@50分数。我们的方法在所有视角上都一致优于基线方法,尤其是在未见过的自我视角上取得了显著改进。
为了可视化我们的方法如何丢弃视角信息,图14展示了MViTv2特征和我们分割模型学习到的特征的t-SNE可视化结果。图14中的三种颜色分别代表已见过的视角、未见过的外视角和未见过的自我视角,形成了明显且分离良好的簇。这种分离表明MViTv2特征是依赖于视角的。相比之下,图14b显示已见过的和未见过的视角不再分离,表明特征表示在视角之间的相似性增加了。
表6 使用DinoV2特征在IkeaASM数据集上的结果。在所有未见过视角的指标上,我们的方法都优于基线方法、AdvLoss和Contrastive,除了编辑(Edit)分数,该分数与基线方法非常接近。具体来说,它在已见过的视角和未见过的视角上都取得了最高的F1@50分数,分别为48.0和47.7。此外,我们的方法在未见过的视角上也取得了最高的准确率(70.0)。
表7 使用I3D和DinoV2特征在EgoExoLearn上的结果。表7展示了使用I3D和DinoV2特征的EgoExoLearn的结果。遵循Huang等人(2024年)的方法,我们报告了F1@Avg,即F1@\(\{10, 25, 50\})的平均值。对于EgoExoLearn,我们使用了零样本仅外视角设置,并在验证集和测试集上报告了结果。由于数据集每个序列只包含一个训练视角,我们仅使用了动作损失。我们的方法在使用提供的I3D特征(Huang等人,2024年)的情况下,在测试集和验证集上的F1@Avg指标上都优于(Huang等人,2024年)提出的方法。除了I3D特征外,我们还提取了DinoV2特征,并使用这些特征训练了(Huang等人,2024年)的方法。与使用I3D特征相比,使用DinoV2特征时整体动作分割结果有显著改进。对于DinoV2特征,我们的方法在所有指标上都优于(Huang等人,2024年)的方法。
图15 和图16 分别展示了使用MViTv2和Dino特征时Assembly101每个视角的F1@50分数。我们的方法在所有视角上都一致优于基线方法,特别是在未见过的自我视角上取得了显著改进。
图14展示了MViTv2特征和我们分割模型学习到的特征的t-SNE可视化结果。图14中的三种颜色分别代表已见过的视角、未见过的外视角和未见过的自我视角,形成了明显且分离良好的簇。这表明MViTv2特征是依赖于视角的。相比之下,图14b显示已见过的和未见过的视角不再分离,表明特征表示在视角之间的相似性增加了。
图18 和图19 分别展示了使用MViT特征和Dino特征时Assembly101每个视角的F1@50分数。我们的模型在所有视角上都一致优于基线方法,特别是在未见过的自我视角上取得了显著改进。
图15和图16展示了Assembly101未见过视角的一些定性结果。与基线方法相比,我们的方法在视频开始时提供了更准确的预测,而基线方法未能识别出与检查玩具相对应的蓝色动作片段。虽然AdvLoss在视频开始时的预测更准确,但它后来识别出了一些视频中并未出现的动作片段。对于图16中显示的未见过自我视角,我们的方法的结果准确性较低。尽管如此,与基线方法和AdvLoss相比,我们的方法在序列的后半部分的表现明显更好。图17展示了我们的方法在Assembly101一个未见过的外视角上的失败案例。我们的模型在视频结束时难以正确预测动作片段,遗漏了多个动作。例如,视频结尾处标记为绿色的真实动作“拆卸内部”和“拆卸屋顶”被错误地预测为“拆卸床”和“拆卸水箱”。此外,我们的模型完全遗漏了标记为深蓝色的动作“检查身体”。图18展示了Assembly101一个已见过的视角的定性结果。与基线方法相比,我们的预测错误较少,但未能捕捉到视频中“拆卸轮子”这一动作片段。图19展示了IkeaASM数据集的定性结果。与基线方法和AdvLoss相比,我们的方法在错误数量上更少。
图15和图16展示了Assembly101未见过视角的一些定性结果。与基线方法相比,我们的方法在视频开始时提供了更准确的预测,而基线方法未能识别出相应的蓝色动作片段。虽然AdvLoss在视频开始时的预测更准确,但它后来识别出了视频中不存在的几个动作片段。对于图16中显示的未见过自我视角,我们的方法的结果明显更好。图17展示了我们的方法在Assembly101一个未见过的外视角上的失败案例。我们的模型在视频结束时难以正确预测动作片段,遗漏了多个动作。例如,视频结尾处标记为绿色的真实动作“拆卸内部”和“拆卸屋顶”被错误地预测为“拆卸床”和“拆卸水箱”。此外,我们的方法还展示了Assembly101一个已见过的视角的定性结果。与基线方法相比,我们的预测错误较少。
图19展示了IkeaASM数据集的定性结果。与基线方法和AdvLoss相比,我们的方法在错误数量上更少。