Revisiting Foreground and Background Separation in Weakly-supervised Temporal Action Localization: A Clustering-based Approach 论文阅读
文章信息:
发表于:ICCV2023
原文链接:https://openaccess.thecvf.com/content/ICCV2023/html/Liu_Revisiting_Foreground_and_Background_Separation_in_Weakly-supervised_Temporal_Action_Localization_ICCV_2023_paper.html
源码:https://github.com/Qinying-Liu/CASE
Abstract
弱监督时间动作定位旨在仅使用视频级动作标签来定位视频中的动作实例。现有方法主要采用通过分类进行定位的流程,使用视频分类损失来优化片段级预测。然而,这种方法由于分类和检测之间的差异,导致前景和背景(F&B)片段的分离不准确。为了解决这个问题,我们提出通过无监督片段聚类来探索片段之间的潜在结构,而不是过度依赖视频分类损失。具体来说,我们提出了一种新颖的基于聚类的F&B分离算法。该算法包含两个核心组件:一个片段聚类组件,用于将片段分组到多个潜在聚类中;一个聚类分类组件,用于进一步将聚类分类为前景或背景。由于没有真实标签来训练这两个组件,我们引入了一种基于最优传输的统一自标记机制,以产生高质量的伪标签,这些伪标签符合若干合理的先验分布。这确保了片段的聚类分配可以准确地与它们的F&B标签关联,从而提高F&B分离的效果。我们在三个基准数据集上评估了我们的方法:THUMOS14、ActivityNet v1.2和v1.3。我们的方法在所有三个基准数据集上都取得了有前途的性能,同时比以前的方法显著轻量。
1. Introduction
图1:我们基于聚类的前景和背景(F&B)分离算法的概念图示。在片段聚类中,我们将片段(或帧)划分为具有明确特征的多个集群。在集群分类中,我们将这些集群分类为前景或背景。上述结果是根据我们方法的预测得出的。
时间动作定位(TAL)[43]是一项在视频中定位动作实例的时间边界并识别其类别的任务。近年来,许多工作致力于全监督方式并取得了巨大成就。尽管取得了成功,但这些方法需要大量的手工帧级标注,既昂贵又耗时。不需要帧级标注,弱监督时间动作定位(WTAL)越来越受到关注,因为它只需要视频级动作标签就可以检测动作实例。
文献中已经开发了广泛的WTAL方法[48, 58, 37, 29]。仅使用视频级标签,主流方法采用基于分类的定位管道,将WTAL表述为一个视频动作分类问题,以学习时间类激活序列(T-CAS)。对于这种管道,前景(即动作)和背景的分离仍然是一个悬而未决的问题,因为视频级标签并未提供任何背景类别的线索。现有方法有两种类型来解决这个问题。第一种类型[48, 58]基于多实例学习(MIL),使用T-CAS为每个动作类别选择最有信心的片段。第二种类型[37, 29]引入了注意力机制,以学习与类别无关的前景权重,这些权重表示片段属于前景的概率。尽管最近取得了一些进展,但这些方法通常依赖于视频分类损失来指导T-CAS或注意力权重的学习。其固有的缺点是:损失容易被显著片段最小化[33],未能探索所有片段的分布,导致错误的T-CAS或注意力权重。这个问题根植于分类和检测任务之间的监督差距。最近的一些研究[39, 31]致力于生成片段级伪标签以弥合这一差距。然而,伪标签仍然是从不可靠的T-CAS或注意力权重中得出的。
深度聚类[6],即自动将样本划分为不同组的方法,已经在许多标签稀缺的任务中被证明能够揭示样本的内在分布[1, 4, 10, 27]。由此产生了一个自然的问题:是否可以采用聚类来捕捉片段的分布?由于聚类可以以自监督的方式进行,因此它不受视频分类损失的影响。这表明聚类在WTAL中进行前景和背景分离具有巨大的潜力。一种蛮力解决方案是将片段分为两个聚类,一个用于前景,一个用于背景。然而,我们经验发现这种方法在实践中表现不佳(参见第5.3节)。我们认为原因在于,无论是前景还是背景,片段在外观上可能差异很大(参见图1(a))。因此,自监督模型可能难以准确地对它们进行分组。幸运的是,在现实世界的视频中,一组片段通常具有共同的特征(例如“采访”、“跑步”)(参见图1(b))。相比于在复杂视频内容中学习两个用于前景和背景的聚类,探索具有清晰和独特特征的片段聚类可能更容易。这就需要一个具有多个聚类的聚类算法。此外,可以观察到聚类的特征有时是前景和背景分离的指示性线索。例如,我们可以根据聚类级特征,自信地将“跑步”聚类分类为前景,将“采访”聚类分类为背景。因此,进一步利用聚类级表示来辅助前景和背景分离是很有前途的。
鉴于上述讨论,我们提出了一种新颖的基于聚类辅助的前景和背景分离(CASE)网络。首先,我们构建了一个标准的弱监督时间动作定位(WTAL)基线,以提供前景和背景片段的初步估计。然后,我们引入了一种基于聚类的前景和背景分离算法(参见图1)来优化前景和背景的分离。该算法由两个主要组件组成:片段聚类,用于将片段分成多个聚类;聚类分类,用于将这些聚类分类为前景或背景。考虑到没有可用的真实标签来训练这些组件,我们提出了一种统一的自标签机制,为它们生成高质量的伪标签。具体来说,我们将两个组件中的标签分配问题统一为一个最优传输问题,从而可以灵活地在伪标签的分布上施加若干定制约束。在训练完这两个组件后,我们可以将片段的聚类分配转换为它们的前景和背景分配,这可以用于优化基线的前景和背景分离。
我们的实验结果表明,与之前的方法相比,我们的方法在性能上表现优异且更为轻量化。总的来说,我们的贡献有三方面:
- 我们提出了一种基于聚类的前景和背景(F&B)分离算法,用于弱监督时间动作定位(WTAL),将前景和背景分离问题转化为片段聚类和集群分类的组合。
- 我们提出了一种基于最优传输的统一自标签机制,用于指导片段聚类和聚类分类。
- 我们进行了大量实验,证明了我们的方法相比现有方法的有效性和效率。
2. Related Work
Deep clustering.当前的深度聚类方法大致可以分为两类。第一类是从最新的模型迭代计算聚类分配,并通过估计的信息监督网络训练过程[51, 52, 6, 3, 5, 50]。DeepCluster[51]是一种典型的方法,它通过迭代对特征进行分组,并使用后续的分配来更新深度网络。第二类方法是同时学习特征表示和聚类分配[12, 22, 15],近年来越来越受欢迎。Asano等人[1]提出强制平衡标签分配约束以避免退化解。Caron等人[4]使用[1]中的算法引入了一种交换机制,利用同一图像的两种随机变换来相互指导。在这项工作中,我们将[1]从图像分类扩展到弱监督时序动作定位(WTAL),并结合任务特定的设计,例如对伪标签的分布施加多种合理约束。
Weakly-supervised temporal action localization.现有的弱监督时序动作定位(WTAL)方法大致可以分为四大类。第一类旨在提高特征的辨别能力,探索了各种技术,如深度度量学习[33, 35]和对比学习[58, 26]。第二类致力于发现完整的动作区域。[33, 44, 60]通过隐藏一些片段来逼迫模型探索更多的动作区域,而[29, 21]则使用多分支框架来发现互补的片段。第三类关注于学习注意力权重。[57, 36]设计了损失函数来正则化注意力权重的值。[39, 31]为注意力权重生成伪标签。然而,伪标签是从片段的初步预测中得出的,这些预测仍然使用视频分类损失进行优化。最后一类与我们的方法最为接近,除了动作类之外还引入了辅助类。[42]引入了视频级上下文类。[30, 47, 29]挖掘了跨动作类别共享的动作单元或子动作。[18, 17]探索了类特定的子动作。最近,[28]学习了一组用于细粒度动作定位的视觉概念。我们的方法在三个显著方面优于这些方法。1)这些方法依赖视频级监督来发现辅助类。相反,我们以自监督方式开发聚类,与视频级监督正交。2)这些方法设计了多种损失项来正则化辅助类。相比之下,我们在最优传输中引入正则化,这可以以系统的方式解决。3)我们的方法显著优于这些方法。
3. Preliminaries and Baseline Setup
在每次训练迭代中,我们首先从 B B B 个视频中随机抽取一个小批量。对于每个视频,我们只能访问其视频级标签 Y ∈ R G \boldsymbol{Y}\in\mathbb{R}^G Y∈RG,其中 G G G 是真实动作类别的数量。按照惯例,我们首先从每个视频中抽取一个 T T T 个片段的序列,然后使用预训练的特征提取器提取RGB和光流流的片段特征。为了简化,以下只展示一个流。因此,我们得到一个片段特征序列 F ∈ R T × D \boldsymbol{F}\in\mathbb{R}^{T\times D} F∈RT×D,其中 D D D 是通道维度。
对于基线方法,按照惯例[24],我们使用一个由视频分类分支和注意力分支组成的双分支框架,如图2(a)所示。在前者分支中,我们首先将输入特征 F F F 送入嵌入编码器,然后通过一个动作分类器得到 P V ∈ R T × G \boldsymbol{P}^{\boldsymbol{V}}\in\mathbb{R}^{T\times G} PV∈RT×G,即时间类激活序列(T-CAS)。在后者分支中, F \boldsymbol{F} F 首先通过另一个嵌入编码器以获得片段嵌入,然后这些嵌入被送入一个注意力层以提取一维注意力权重 P A ∈ R T \boldsymbol{P^{A}}\in\mathbb{R}^{{T}} PA∈RT,这些权重表示片段的前景概率。
我们应用了流行的多实例学习(MIL)来训练视频分类分支。简而言之(详见补充材料),我们首先使用注意力权重校准T-CAS以限制背景片段。然后,我们根据激活值为每个类别选择前k个片段以构建视频级得分 P ˉ V ∈ R G \bar{\boldsymbol{P}}^{\boldsymbol{V}}\in\mathbb{R}^G PˉV∈RG。最后,我们用已知视频标签 labels Y {\text{labels }Y} labels Y 优化视频分类损失。
为了训练注意力分支,我们采用了[32]提出的基于伪标签的方案,因为它简洁且有效。具体来说,我们将前景伪标签 Q A ∈ R T \boldsymbol Q^{A}\in\mathbb{R}^T QA∈RT 定义如下:在真实视频级类别的前k个激活片段中出现的片段为正样本,其余片段为负样本。为了提高模型对标签噪声的鲁棒性,我们使用广义二元交叉熵损失 [59,32]:
其中, γ ∈ ( 0 , 1 ) \gamma\in(0,1) γ∈(0,1)控制噪声容忍度, N p o s N_{\mathrm{pos}} Npos和 N n e g N_{\mathrm{neg}} Nneg分别表示正样本和负样本的数量。
4. Our Method
图 2:我们 CASE 的框架。 (a) 描述了基线模型,包括视频分类分支和注意力分支。 (b) 展示了我们提出的基于聚类的前景和背景分离算法,该算法包含片段聚类组件 (SCC) 和聚类分类组件 (CCC)。这两个组件使用基于最优传输 (OT) 的统一自标记机制进行训练。 ( c) 展示了聚类辅助测试技术,该技术在推理期间利用 SCC 和 CCC 的结果来辅助前景和背景的分离。
4.1. Overview
Snippet Clustering Component.SCC旨在将片段分组到潜在的聚类中。为了实现注意力层和片段聚类的联合学习,我们将SCC附加到注意力分支中的嵌入层上,如图2(b)所示。为了简化表示法,我们将一个批次中的总片段数称为 N = B T N=BT N=BT,其中 B B B为视频数量,片段嵌入称为 E ∈ R N × D \boldsymbol{E}\in\mathbb{R}^N\times D E∈RN×D。我们将 E \boldsymbol{E} E输入由一个具有 K K K类(聚类)的线性分类器组成的聚类头部,生成片段级聚类分配概率,称为 P S ∈ R N × K \boldsymbol{P^{S}}\in\mathbb{R^{N\times K}} PS∈RN×K。受自监督学习[38,41]的启发,我们将 K K K设为预定义参数,发现其实践中是稳健的。为了训练聚类头部,我们首先为 P S \boldsymbol{P}^{\boldsymbol{S}} PS生成(软)伪标签 Q S ∈ R N × K \boldsymbol{Q}^{\boldsymbol{S}}\in\mathbb{R}^{N\times{K}} QS∈RN×K,具体将在第4.2节中描述。然后,我们最小化以下损失:
Cluster Classification Component.CCC通过将簇原型映射到F&B原型来强制每个簇被分类为前景或背景,如图2(b)所示。具体而言,基于从SCC获得的片段伪簇分配 Q S ∈ R N × K \boldsymbol{Q}^{S}\in\mathbb{R}^{N\times K} QS∈RN×K,我们可以在片段嵌入 E ∈ R N × D \boldsymbol{E}\in\mathbb{R}^N\times D E∈RN×D上计算第 k k k个簇原型:
其中 E ˉ k S ∈ R D \bar{E}_k^S\in\mathbb{R}^D EˉkS∈RD。类似地,使用前景伪标签 Q A ∈ R N Q^A\in\mathbb{R}^N QA∈RN和背景标签 1 − Q A 1-Q^A 1−QA,我们可以计算F&B原型 E ˉ A ∈ R 2 × D \bar{\boldsymbol{E}}^{\boldsymbol{A}}\in\mathbb{R}^{2\times D} EˉA∈R2×D。 E ˉ 1 A \bar{\boldsymbol{E}}_1^{\boldsymbol{A}} Eˉ1A和 E ˉ 2 A \bar{\boldsymbol{E}}_2^{\boldsymbol{A}} Eˉ2A分别对应前景和背景。然后,我们通过测量簇原型和F&B原型之间的相似性来计算簇级分类概率 P C ∈ R K × 2 \boldsymbol{P}^{\boldsymbol{C}}\in\mathbb{R}^{K\times2} PC∈RK×2:
其中 cos ( ⋅ ) \cos(\cdot) cos(⋅)表示余弦相似度函数, ρ \rho ρ为温度参数。 P k , i C \boldsymbol{P}_{k,i}^{\boldsymbol{C}} Pk,iC表示第 k k k个簇属于前景( i ′ = 1 i'=1 i′=1)或背景( i = 2 i=2 i=2)的概率。为了优化该组件,我们为 P C P^C PC生成(软)标签 Q C Q^C QC,具体将在第4.2节中描述。相应地,我们将得到一个损失项:
4.2. Self-Labeling via Unified Optimal-Transport
本节解释了生成SCC中 P S P^S PS标签 Q S Q^S QS和CCC中 P C \boldsymbol{P}^C PC标签 Q C Q^C QC的自我标注机制。首先,我们描述在SCC和CCC中共享的基本标注公式。该公式将标签分配转换为一个最优传输问题,同时对标签的分布施加约束。然后,我们分别讨论SCC和CCC所需的独特调整。对于SCC,我们引入 Q S Q^S QS的先验分布,以避免在SCC中观察到的不确定标签分配问题。对于CCC,我们利用片段级的F&B标签来估计 Q C Q^C QC的先验边缘分布。这些调整可以无缝地集成到最优传输公式中,形成一个统一的解决方案,易于实现,如算法1所示。
Basic
formulation.
\textbf{Basic formulation.}
Basic formulation. 关于伪标签
Q
\boldsymbol{Q}
Q的生成,一个直接的解决方案是寻找一个合理的
Q
Q
Q,使其接近当前模型的预测
P
\boldsymbol{P}
P,例如,通过对
P
P
P应用arg max。然而,在我们的无监督设置中,这种方法可能会导致琐碎的解决方案,例如,所有样本都被分配到同一个类(参见第5.3节)。相反,在搜索
Q
Q
Q时,我们建议对分配给每个类别的元素比例施加约束。正式地,我们将其公式化为一个优化问题:
其中,
E
(
P
,
Q
)
=
−
∑
n
N
∑
k
K
Q
n
,
k
log
P
n
,
k
\mathrm{E}(\boldsymbol{P},\boldsymbol{Q})=-\sum_n^N\sum_k^K\boldsymbol{Q}_{n,k}\log\boldsymbol{P}_{n,k}
E(P,Q)=−∑nN∑kKQn,klogPn,k表示
Q
Q
Q和
P
P
P之间的距离,
N
N
N是样本数,
K
K
K是类别数。约束条件
Ω
\Omega
Ω定义为:
其中, α \boldsymbol{\alpha} α和 β \boldsymbol{\beta} β分别是 Q \boldsymbol{Q} Q在其行和列上的边缘分布。我们设置 α = 1 N \alpha=1^N α=1N以确保 Q Q Q是一个概率矩阵。 β ∈ R K \beta\in\mathbb{R}^K β∈RK表示属于每个 K K K类的元素比例。当没有先验知识时,等分[1,4]可以作为一般的归纳偏置来设置 β \beta β:
这确保了平均而言,每个类别分配到相同数量的样本,从而避免了琐碎的解决方案。
值得注意的是,方程 (7) 是一个最优传输问题,计算求解非常昂贵。参照 [8],在其中引入了一个熵项:
Prior distribution for SCC. \textbf{Prior distribution for SCC.} Prior distribution for SCC.在方程(10)中,引入了一个熵项,以使其具有可接受的复杂度。然而,最大化熵也可能导致标签分配的不确定性,即样本被分配到不同的类时具有相等的概率。在实践中,这个问题在SCC中表现得更为明显,而在CCC中则不然。这可能是因为SCC涉及的实例和类别数量远多于CCC,使得算法更难收敛(参见图4)。
为了弥补SCC中的缺陷,我们借用了早期的序列匹配方法[45],引入了伪标签的先验分布 Q ^ S ∈ R N × K \hat{\boldsymbol{Q}}^{\boldsymbol{S}} \in \mathbb{R}^{N \times K} Q^S∈RN×K,其中代表将 N N N个片段分配到 K K K个簇的概率。一个合理的先验分布应该鼓励前景片段更有可能分配到前景簇中,而背景片段也是如此。为实现这一点,我们首先根据前景概率 P A \boldsymbol{P}^A PA对片段进行升序排序,并将得到的 N N N个片段的排名表示为 r a n k ∈ R N rank \in \mathbb{R}^N rank∈RN。然后,我们构造先验分布 Q ^ S \hat{\boldsymbol{Q}}^S Q^S,使得排名较高的片段(即, r a n k rank rank)更有可能被分配到具有较高前景概率的簇中(即, Q : , 1 C \boldsymbol{Q}_{:,1}^C Q:,1C),反之亦然。形式上, Q ^ S \hat{\boldsymbol{Q}}^{\boldsymbol{S}} Q^S被定义为一个高斯分布:
其中
r
a
n
k
n
rank_n
rankn 是第
n
n
n个片段的排名,
Q
k
,
1
C
Q_{k,1}^C
Qk,1C 是第
k
k
k个簇的前景概率。最后,我们将公式(10)替换为以下目标函数:
其中 KL(·) 是 Kullback-Leibler 散度。通过最小化 KL 项,我们鼓励标签 Q S Q^S QS 接近先验分布 Q ^ S \hat{Q}^S Q^S,这有助于避免原始熵项引起的不确定标签分配。重要的是,公式(12)仍然可以通过 Sinkhorn-Knopp 算法高效解决。详细推导请参见附录。
Prior marginal distribution for CCC. \textbf{Prior marginal distribution for CCC.} Prior marginal distribution for CCC.尽管等分配(例如,公式(9))是传统聚类中的常见先验,但它不适合对簇级 F&B 标签 Q C \boldsymbol{Q}^C QC 的边际分布 β C ∈ R 2 \beta^C \in \mathbb{R}^2 βC∈R2 进行等分配。这是因为 β C \beta^C βC 代表分配给前景和背景的簇的比例,而这些比例并不总是平衡的。然而,由于 SCC 在片段级别上强制等分配,每个簇包含相似数量的片段。因此,F&B 簇的比例预计会接近 F&B 片段的比例。为此,我们不是使用公式(9),而是基于片段级前景标签 Q A Q^A QA 的分布经验性地估计 β C \beta^C βC:
4.3. Training and Testing
Joint training. \textbf{Joint training.} Joint training.我们将所有组件以端到端的方式一起训练。整体目标函数写为:
其中,
λ
S
\lambda_S
λS 和
λ
C
\lambda_C
λC 表示损失权重。由于基线模型和我们提出的算法在注意力分支中共享相同的嵌入编码器,联合训练也促进了基线模型的训练。
Clustering-assisted testing. \textbf{Clustering-assisted testing.} Clustering-assisted testing.在推理阶段,利用簇级前景概率 Q : , 1 C Q_{:,1}^C Q:,1C,我们可以根据全概率法则将片段级簇分配 P S \boldsymbol{P}^{\boldsymbol{S}} PS转换为片段级前景概率 P T \boldsymbol{P^T} PT,如图2( c)所示。考虑到 Q C Q^C QC在训练期间是稳定的,我们简单地使用最后一次训练迭代中的 Q C Q^C QC进行推理。此外,如表6所验证的那样,转换后的前景概率 P T \boldsymbol{P}^T PT与来自注意力层的前景概率 P A \boldsymbol{P^A} PA是互补的。因此,我们通过凸组合融合 P A ^ \boldsymbol{P^{\hat{A}}} PA^和 P T \boldsymbol{P^T} PT: P M = 0.5 P A + 0.5 P T \boldsymbol{P^M}=0.5\boldsymbol{P^{A}}+0.5\boldsymbol{P^T} PM=0.5PA+0.5PT。组合后的概率 P M \boldsymbol P^M PM然后用于帮助在推理期间定位动作实例。
5. Experiments
6. Conclusion and Limitation
在这项工作中,我们提出了一个名为 CASE 的弱监督时序动作定位 (WTAL) 框架,该框架利用片段聚类来改善前景和背景的分离。具体来说,CASE 包含一个片段聚类组件,该组件将片段划分为多个聚类,随后是一个聚类分类组件,该组件识别前景和背景聚类。为了优化这些组件,我们采用了基于最优传输的统一自标记策略。我们的广泛分析表明了 CASE 的有效性和效率。我们方法的一个限制是需要一个 WTAL 基线模型来提供前景和背景类别的语义级参考,以便将聚类分类为前景和背景。未来的工作将致力于开发一个更加自包含的基于聚类的框架。
阅读总结
这图画错了吧,图中的 L R \mathcal{L}_R LR论文里就没出现过。其他几个出现了的感觉也是错乱了,SCC和CCC的一些符号表达对不上,不看图单看论文逻辑应该是问题不大。应该就是画图画错了吧。
引用目前只有4,但是github有一百多个star,感觉有点虚高。有时间跑跑源码看看。