论文笔记《VadCLIP: Adapting Vision-Language Models for Weakly Supervised Video Anomaly Detection》

论文笔记《VadCLIP: Adapting Vision-Language Models for Weakly Supervised Video Anomaly Detection》

Administrator 3 2025-06-17
  • 论文 - 《VadCLIP: Adapting Vision-Language Models for Weakly Supervised Video Anomaly Detection》
  • 代码 -Github
  • 关键词 - 视频异常检测、CLIP、对比学习、局部全局、时许建模、弱监督学习

摘要

  • 研究问题:如何高效地将 CLIP 适配到视频领域,并设计出鲁棒的视频异常检测器。
  • 本文工作
    • 提出了 VadCLIP,一种新的弱监督视频异常检测(WSVAD)范式,该方法直接利用冻结的 CLIP 模型,无需任何预训练和微调过程。
    • VadCLIP 充分利用了 CLIP 所具备的细粒度视觉与语言对齐能力,并引入了双分支结构。其中一个分支仅使用视觉特征进行粗粒度的二分类,另一个分支则充分利用了细粒度的语言-图像对齐关系。
    • 借助双分支结构的优势,VadCLIP 通过迁移 CLIP 的预训练知识,实现了对视频异常检测任务中的粗粒度和细粒度检测。

1 引言

  • 现有研究的常见处理流程

    • 1)首先使用预训练的视觉模型(如C3D、I3D 和 ViT)提取帧级别的特征;
    • 2)然后将这些特征输入基于多实例学习(MIL)的二分类器进行模型训练;
    • 3)最后根据预测的异常置信度检测异常事件。
    • 局限:未能充分利用跨模态关系,例如视觉与语言之间的关联。
  • CLIP 结合视频异常检测

    • Joo 和 Lv 等人视图在视频异常检测任务中利用 CLIP,然而这些方法仅局限于直接使用 CLIP 图像编码器提取的视觉特征,而忽视了视觉与语言之间语义关系的利用。
  • CLIP 结合弱监督视频异常检测的挑战:

    • 1)必须探索如何捕捉时间上的上下文依赖关系。
    • 2)需要确定如何有效利用已学习的知识以及视觉与语言之间的联系。
    • 3)在弱监督条件下保持 CLIP 的最佳性能至关重要。
  • 本文工作 - VadCLIP

    • 针对挑战一
      • 提出了一个局部-全局时序适配器(LGT-Adapter),这是一个用于视频时序关系建模的轻量级模块。LGT-Adapter 包含两个部分:局部时序适配器全局时序适配器。其中,前者主要高效地捕捉局部时序依赖关系;后者则以更少的参数从整体视角平滑特征信息。
    • 针对挑战二:
      • VadCLIP 采用双分支结构设计:C-branch简单直接地利用视觉特征进行二分类;A-branch则结合视觉和文本特征进行视觉-语言对齐。这种双分支结构无缝实现了粗粒度和细粒度的 WSVAD。
      • 还提出了两种提示机制,即可学习提示(learnable prompt)视觉提示(visual prompt),用以明确简洁的文本描述对应的是哪个视频。
    • 针对挑战三:
      • 在 A-分支中的视觉-语言对齐过程中,我们引入了一种 MIL-Align(多实例学习-对齐) 机制,其核心思想是为每个标签选择最匹配的视频帧,以代表整个视频。
  • 注意:在训练过程中,CLIP 的图像和文本编码器的权重保持固定不变,梯度仅反向传播以优化所设计的适配器模块和提示模块中的可学习参数


2 相关工作

2.1 弱监督视频异常检测

  • WSVAD工作
    • Sultani 等人首次提出了一种深度多实例学习模型,将视频视为一个“包”,其中包含多个片段作为“实例”。
    • Zhong 等人提出了一种基于图卷积网络(GCN)的方法,用于建模视频片段之间的特征相似性和时间一致性。
    • Tian 等人使用自注意力网络来捕捉视频的全局时间上下文关系。
    • Li 等人提出了一种基于 Transformer 的多序列学习框架。
    • Huang 等人则提出了一种基于 Transformer 的时间表示聚合框架。
    • Zhou 等人在 Transformer 层中引入了全局与局部多头自注意力模块,以获取更具表达力的嵌入表示,从而更好地捕捉视频中的时间依赖性。
  • 细粒度WSVAD工作(能够区分不同类型异常帧之间的差异)
    • Wu 等人则提出了一种细粒度的 WSVAD 方法,能够区分不同类型异常帧之间的差异。
    • Lv 等人基于 CLIP 的视觉特征,提出了一种新的多实例学习框架——无偏 MIL(Unbiased MIL, UMIL),用于学习无偏的异常特征以提升 WSVAD 的性能。
    • Joo 等人则提出利用 CLIP 提取的视觉特征高效地提取判别性表示,并通过时间自注意力机制建模长距离和短距离的时间依赖关系,从而提名感兴趣的片段。
  • 局限:上述所有方法均基于分类范式,通过预测异常帧的概率来检测异常事件。但这种分类范式并未充分利用文本标签中的语义信息。

2.2 视觉-语言预训练

  • 最具代表性的工作 - CLIP
    • 用于多种视觉-语言下游任务,包括图像分类、图像描述生成、目标检测等
    • 也有用于视频领域,例如:CLIP4Clip 将 CLIP 的知识迁移至视频-文本检索任务、视频识别任务、视频动作定位任务等。
  • 本工作研究将 CLIP 在图像级别上预训练得到的视觉-语言知识高效地迁移至视频级别的弱监督视频异常检测任务中。

3 方法

3.1 问题定义

WSVAD定义:

  • 假设在训练阶段仅提供视频级别的标签。当前仅当视频中所有帧都不包含异常事件时,定义为正常视频,标签 ​y=0
  • 目标检测模型能够在仅提供视频级别标注的情况下预测帧级别的异常置信度。

本文工作使用了 CLIP 的图像编码器和文本编码器,已充分利用视觉和文本的强大关联性,整体框架如图2所示。

paper80-1.webp

3.2 局部与全局时序适配器

在本节中,从效率和感受野的角度出发,设计了一种新的时序建模方法,能够兼容局部和全局的感受野。


3.2.1 局部模块

为了捕捉局部时间依赖关系,作者在 CLIP 冻结的图像编码器生成的帧级特征 ​ X_{\text{clip}} \in \mathbb{R}^{n \times d} 上引入了一个 Transformer 编码层,其中 ​ n 是视频的长度,​ d 是特征维度大小。需要注意的是,这一层与普通的 Transformer 编码层有所不同,因为它将自注意力计算限制在局部窗口内,而不是全局范围。具体而言,将帧级特征按时间维度分割为等长且重叠的窗口,自注意力计算仅限于每个窗口内部,窗口之间不进行信息交换。这种操作具有类似卷积的局部感受野特性,并降低了计算复杂度。


3.2.2 全局模块

为了进一步捕捉全局时间依赖关系,在局部模块之后引入了一个轻量级 GCN 模块,用于建模全局时间依赖关系。局部 Transformer 层和 GCN 层均采用残差连接以防止特征过平滑。根据前人工作的设置,从特征相似性和相对距离的角度使用 GCN 建模全局时间依赖关系,可以总结如下:

X_g = \text{gelu}\left([\text{Softmax}(H_{sim}); \text{Softmax}(H_{dis})] X_l W\right) \tag{1}

其中,​ H_{sim} ​ H_{dis} 邻接矩阵,Softmax 归一化用于确保 ​ H_{sim} ​ H_{dis} 的每一行之和等于 1。​ X_l 是从局部模块获得的帧级视频特征,​ W 是唯一一个可学习的权重,用于转换特征空间(轻量化)。

特征相似性分支

为 GCN 生成一个基于相似性的邻接矩阵。使用逐帧余弦相似性来计算邻接矩阵 ​ H_{sim} ,公式如下:

H_{sim} = \frac{X_l X_l^\top}{\|X_l\|_2 \cdot \|X_l\|_2} \tag{2}

作者还使用阈值操作来过滤弱关系。

位置距离分支

位置距离分支用于基于每两帧之间的位置距离捕捉长距离依赖关系。邻接矩阵 ​ H_{dis} 表示如下:

H_{dis}(i, j) = \frac{-|i - j|}{\sigma} \tag{3}

​ i 帧和第 ​ j 帧之间的接近关系仅由它们的相对时间位置决定。​ \sigma 是一个超参数,用于控制距离关系的影响范围。


3.3 双分支与提示机制

3.3. 双分支

核心思想:在传统的二分类分支(C-Branch)之外,作者还引入了一个新的视频-文本对齐分支(A-Branch)。

具体而言,在时间建模之后,视频特征 ​ X_g 被输入到一个全连接层 FC 中,以获得最终的视频特征 ​ X \in \mathbb{R}^{n \times d} 。在 C-Branch 中,我们将 ​ X 输入到一个包含 FFN 层、一个 FC 层和 Sigmoid 激活函数的二分类器中,从而获得异常置信度 ​ A \in \mathbb{R}^{n \times 1}

A = \text{Sigmoid}\left(FC\left(FFN(X) + X\right)\right) \tag{4}

在 A-Branch 中,文本标签不再被编码为独热向量,而是通过 CLIP 的文本编码器将其编码为类别嵌入。然后,我们计算类别嵌入与帧级视觉特征之间的匹配相似性,以获得对齐图 ​ M \in \mathbb{R}^{n \times m} ,其中 ​ m 是文本标签的数量。这种设置类似于 CLIP 的做法。


3.3.2 可学习提示

在 WSVAD 中,文本标签是单词或短语,过于简洁,难以很好地总结异常事件。为了学习具有鲁棒迁移性的文本嵌入,作者将可学习提示添加到原始类别嵌入中。具体而言,原始文本标签首先通过 CLIP 分词器转换为类别标记,即 ​ t_{init} = \text{Tokenizer}(Label) ,其中 ​ Label 是离散文本标签。然后,我们将 ​ t_{init} 与包含 ​ l 个上下文标记的可学习提示 ​ \{c_1, ..., c_l\} 连接起来,形成一个完整的序列标记,因此文本编码器的输入表示如下:

t_p = \{c_1, ..., t_{init}, ..., c_l\} \tag{5}

注意类别标记置于序列的中间位置。然后,该序列标记被添加到位置嵌入中以获取位置信息,最后,CLIP 的文本编码器将 ​ t_p 作为输入,并生成类别嵌入 ​ t_{out} \in \mathbb{R}^d


3.3.3 异常关注的视觉提示

动机:为了进一步提高文本标签对异常事件的表示能力,作者希望使用视觉上下文来细化类别嵌入(更加准确)。

具体方法

提出了一种异常关注的视觉提示,它专注于异常片段中的视觉嵌入,并聚合这些嵌入作为类别嵌入的视频级别提示。首先,使用从 C-Branch 获得的异常置信度 ​ A 作为异常注意力,然后通过异常注意力和视频特征 ​ X 的点积计算视频级别的提示 ​ V ,公式如下:

V = \text{Norm}\left(A^\top X\right) \tag{6}

其中,​ \text{Norm} 表示归一化操作,​ V \in \mathbb{R}^d 异常关注的视觉提示。然后,我们将 ​ V 添加到类别嵌入 ​ t_{out} 中,并通过简单的 FFN 层和残差连接获得最终的实例特定类别嵌入 ​ T

T = \text{FFN}\left(\text{ADD}(V, t_{out})\right) + t_{out} \tag{7}

其中,​ \text{ADD} 表示逐元素相加。这种实现方式允许类别嵌入从视频中提取相关的视觉上下文。

有了 ​ X ​ T 后,计算所有类别嵌入与帧级视觉特征之间的匹配相似性,以获得对齐图 ​ M


3.4 损失函数

对于 C-Branch,遵循之前的工作(Wu et al. 2020),使用 Top-K 机制从异常视频和正常视频中选择 ​ K 个最高的异常置信度作为视频级别的预测。然后,计算视频级别预测与真实标签之间的二元交叉熵损失来计算分类损失 ​ \mathcal{L}_{bce}

对于 A-Branch,作者提出了 MIL-Align 机制。具体而言,考虑对齐图 ​ M ,它表示帧级视频特征与所有类别嵌入之间的相似性。对于每一行,选择前 ​ K 个相似度,并计算平均值以衡量该视频与当前类别的对齐程度。然后,可以获得一个向量 ​ S = \{s_1, ..., s_m\} ,它表示该视频与所有类别的相似性。计算多类别预测如下:

p_i = \frac{\exp(s_i / \tau)}{\sum_j \exp(s_j / \tau)} \tag{8}

其中,​ p_i 是相对于第 ​ i 类的预测,​ \tau 是用于缩放的温度。最后,对齐损失 ​ \mathcal{L}_{nce} 可以通过交叉熵计算得到。

除了分类损失 ​ \mathcal{L}_{bce} 和对齐损失 ​ \mathcal{L}_{nce} ,我们还引入了一个对比损失,以略微推动正常类别嵌入和其他异常类别嵌入分开。具体而言,我们首先计算正常类别嵌入其他异常类别嵌入之间的余弦相似性,然后计算对比损失 ​ \mathcal{L}_{cts} 如下:

\mathcal{L}_{cts} = \sum_j \max\left(0, \frac{t_n^\top t_{aj}}{\|t_n\|_2 \cdot \|t_{aj}\|_2}\right) \tag{9}

其中,​ t_n 是正常类别嵌入,​ t_a 是异常类别嵌入。

总体而言,VadCLIP 的最终总目标函数由以下公式给出:

\mathcal{L} = \mathcal{L}_{bce} + \mathcal{L}_{nce} + \lambda \mathcal{L}_{cts} \tag{10}

3.5 推理

VadCLIP 包含双分支结构,使其能够同时处理细粒度和粗粒度的 WSVAD 任务。

对于细粒度 WSVAD,在对齐图 ​ M 上采用阈值策略来预测异常事件。

对于粗粒度 WSVAD,有两种方法可以计算帧级别的异常程度:

  1. 直接使用 C-Branch 中的异常置信度;
  2. 使用 A-Branch 中的对齐图,具体做法是将视频与正常类别的相似度从 1 中减去,得到异常程度。

最终,作者选择这两种方法中效果最佳的一种来计算帧级别的异常程度。


4 实验

4.1 实验设定

  • 数据集:UCF-CrimeXD-Violence(训练视频都是仅包含视频级别的标签)
  • 评估指标
    • 对于粗粒度,使用帧级别的平均精度(AP)和 AUC。
    • 对于细粒度,使用不同交并比(IoU)阈值下的mean Average Precision(mAP)。
  • 实现细节
    • 采用预训练的 CLIP(ViT-B/16)的冻结图像和文本编码器。
    • VadCLIP 在单张 NVIDIA RTX 3090 GPU 上使用 PyTorch 进行训练。
    • 具体参数见论文。

4.2 与SOTA比

作者将 VadCLIP 与在粗粒度和细粒度 WSVAD 任务上的SOTA进行对比。为了公平起见,所有对比方法均使用与 VadCLIP 相同的从 CLIP 提取的视觉特征。

  • 粗粒度结果
    • 表1和表2。
    • VadCLIP 在两个常用基准数据集上的所有评估指标上都显著优于半监督方法和基于分类的弱监督方法。
    • 并且 AVVD 使用了细粒度类别标签的方法,但是性能仍落后于 VadCLIP,因为过多的标签输入反而增加了二分类任务的难度。
paper80-2.webp

  • 细粒度结果
    • 表3和表4。
    • 细粒度 WSVAD 是一个更具挑战性的任务,因为它需要同时考虑多类别的分类准确性和检测片段的连续性。
    • VadCLIP 在 XD-Violence 和 UCF-Crime 数据集上也明显优于这些优秀的对比方法。
paper80-3.webp

4.3 消融实验

  • 表5-7分别展示了LGT-Adapter 的有效性、双分支结构的有效性、提示机制的有效性。
paper80-4.webp