论文笔记《AnyAnomaly: Zero-Shot Customizable Video Anomaly Detection with LVLM》

论文笔记《AnyAnomaly: Zero-Shot Customizable Video Anomaly Detection with LVLM》

Administrator 3 2025-09-12
  • 论文 - 《AnyAnomaly: Zero-Shot Customizable Video Anomaly Detection with LVLM》
  • 代码 - Github
  • 关键词 - 关键帧采样、无需微调/训练、零样本、视频异常检测、视觉语言模型VLM

这篇论文主要是利用VLM的通用泛化能力来实现零样本视频异常检测,并且提出了一种可定制视频异常检测的能力,即用户可以通过文本来自定义异常类别或事件。动机非常简单,方法和动机的联系相对较弱,方法上主要目标是提高VLM的异常检测能力,并且保持无需训练的特性。

1 引言

  • 现有工作局限性:现有VAD模型难以适应多样化的环境,在面对新环境时,往往需要重新训练模型或开发独立的AI模型。

  • 动机:可以利用大模型的泛化能力,实现零样本的VAD。

  • 新技术:“可定制视频异常检测”(C-VAD)将用户自定义的文本视为异常事件,并在视频中检测包含这些事件的帧。这意味着,随着视觉-文本分析泛化能力的提升,异常检测在各种环境中的效果也将随之增强。

  • 使用 VLM 是实现零样本C-VAD的有效途径。然而,简单的向模型提供prompt进行异常检测存在以下局限性:

    1. 由于大型视觉语言模型(LVLM)计算开销巨大,导致推理延迟高
    2. 受限于监控视频的特性(如前景-背景不平衡、物体密集拥挤),难以精准分析特定目标
    3. 无法利用时序信息,难以检测与动作相关的异常事件。
  • 为克服上述局限性,作者设计了如图2所示结构的 AnyAnomaly 模型

    • 首先,为降低延迟,采用片段级处理方法,将连续帧聚合成单个片段进行处理。为此,我们引入了一个关键帧选择模块(KSM),用于从每个片段中挑选最具代表性的关键帧,并在片段级别执行视觉问答。
    • 其次,摒弃了简单的图像-文本匹配方式,转而提出一种上下文感知的VQA方法,以实现对场景更深层次的理解。为此,作者额外引入了两种上下文信息:
      • 位置上下文(PC):PC 通过强调帧内重要区域,增强LVLM对特定目标的分析能力。
      • 时序上下文(TC):TC 将场景随时间的变化结构化为网格形式,从而提升LVLM对动作类异常的识别能力。
    • 值得注意的是,KSM模块与上下文生成模块均无需训练,可直接部署,从而轻松实现C-VAD,无需额外数据或模型微调。
paper109-1.webp

2 方法

2.1 概述

图2展示了AnyAnomaly模型的结构,该模型执行上下文感知的视觉问答(VQA)。

处理流程:

  1. 输入一段包含 N 帧的视频片段 S,关键帧选择模块(KSM)从 S 中选出一组关键帧 ​ K = \{k_0, \ldots, k_3\}
  2. 在所选的关键帧中,最具代表性的帧 ​ \hat{k} 用于生成位置上下文(PC),而整个关键帧集合 K 则用于构建时序上下文(TC)
  3. 随后,​ \hat{k} 、PC 和 TC 被作为图像输入提供给 LVLM ,用户提供的文本 ​ X 则与 prompt 结合,作为文本输入。
  4. 最终,LVLM 的响应结果被整合,用于计算异常得分。

用户定义的文本 ​ X 是用户希望检测的异常事件的自然语言描述。它可以是一个单词、多种事件或复杂行为。对于多事件情况,每个事件关键词将被单独处理,视为一个独立的单词。


2.2. 关键帧选择模块

图3a展示了KSM,使用预训练的 CLIP 模型选取了四个能代表该视频片段的帧作为集合 ​ K

具体而言,视频片段 ​ S 和用户文本 ​ X 分别输入到图像编码器 ​ E_I 和文本编码器 ​ E_T ,通过计算 N 个图像嵌入向量与文本嵌入向量之间的点积来获得相似度。相似度最高的帧被选为最具代表性的帧 ​ \hat{k}

\hat{k} = \arg\max_{s_i \in S} (E_I(s_i) \cdot E_T(X)) \tag{1}

代表性帧 ​ \hat{k} 的索引,记作 ​ \hat{i} ,用于选择其他关键帧。将视频片段划分为四个等大小的组,并从每组中选取第 ​ \hat{i} \mod \frac{N}{4} 帧。例如,当 ​ N=8 ​ \hat{i}=4 时,每组的第0帧被选中,最终得到的关键帧集合为 ​ K = \{s_0, s_2, s_4, s_6\} 。该过程定义如下:

k_i = s_x,\quad x = (i \times \frac{N}{4}) + (\hat{i} \mod \frac{N}{4}) \tag{2}

通过KSM,集合 ​ K 的生成综合考虑了文本对齐性和时间均匀性,从而有效支持上下文信息的构建。

paper109-2.webp

2.3. 上下文生成

核心思想:上下文分为PC(位置上下文)和 TC(时序上下文)。其中:

  • PC 通过基于 WinCLIP 的注意力机制(WA) 生成,用于提升大型视觉语言模型(LVLM)对目标的分析能力
  • TC 通过网格图像生成(GIG) 方法构建,增强 LVLM 对动作行为的分析能力
paper109-3.webp

2.3.1 WinCLIP-based Attention

WA 方法借鉴 Jeong [12] 提出的 WinCLIP 技术,用于突出代表性帧 ​ \hat{k} 中与用户文本 ​ X 相关的区域。首先,将 ​ \hat{k} 划分为多个窗口,并使用图像编码器 ​ E_I 为每个窗口生成独立的嵌入向量。通过调整窗口大小,所有窗口的嵌入向量被收集形成一个小尺度窗口嵌入图 ​ W^s 、中尺度窗口嵌入图 ​ W^m 和大尺度窗口嵌入图 ​ W^l ,并分别计算这些嵌入图与文本嵌入 ​ z \in \mathbb{R}^D 之间的相似度。最终的相似度图 ​ M 是通过对三个尺度上的相似度进行平均得到:

M = \frac{1}{3} \left( z(W^s)^T + z(W^m)^T + z(W^l)^T \right) \tag{3}

将 Jeong [12] 提出的模板与用户文本 ​ X 进行结合,并通过文本编码器 ​ E_T 生成文本嵌入 ​ z 。最后,将相似度图 ​ M 与原始图像 ​ \hat{k} 相乘,生成位置上下文 PC

PC = f_{\text{norm}}(M) \odot \hat{k} \tag{4}

其中,​ f_{\text{norm}} 表示最小-最大归一化,​ \odot 表示逐元素相乘。在插值和重整形后,​ M 被调整至与 ​ \hat{k} 相同的分辨率。由于 PC 集成了多尺度的相似性信息,因此对物体大小和位置具有鲁棒性,即使在包含多个物体的复杂场景中也能有效工作。


2.3.2 Grid Image Generation

图3c 展示了 GIG 方法,其包含两个阶段

多尺度网格生成阶段,关键帧集合 ​ K 用于在不同尺度上生成网格图像。类似于 WA 中的过程,​ K 中的每一帧被划分为多个窗口,相同位置的窗口以 ​ 2\times2 的网格格式连接,生成单个网格图像。该过程定义如下:

g^i = \begin{bmatrix} u_0^i & u_1^i \\ u_2^i & u_3^i \end{bmatrix} \tag{5}

其中,​ u_j^i 表示从 ​ k_j 生成的第 ​ i 个窗口,​ g^i 表示第 ​ i 个网格图像。我们分别定义小、中、大尺度窗口生成的网格图像集合为 ​ G^s ​ G^m ​ G^l

网格图像选择阶段,上述生成的集合被聚合为一个整体集合 ​ G^{all}

G^{all} = G^s \cup G^m \cup G^l \tag{6}

随后,采用与KSM中相同的方法(即基于文本相似度),从 ​ G^{all} 中选择与用户文本 ​ X 最相似的网格图像作为时序上下文 TC:

TC = \arg\max_{g^i \in G^{all}} \left( E_I(g^i) \cdot E_T(X) \right) \tag{7}

通过该过程生成的 TC 反映了同一背景下的物体随时间的运动轨迹,有利于动作分析,并对不同大小的物体具有鲁棒性。


2.4. 异常检测

我们并未对大型视觉语言模型(LVLM)进行微调,而是提出了一种新的提示(prompt)和上下文机制,以实现上下文感知的视觉问答(VQA)。VQA 的输出结果被用作异常得分,从而实现无需训练的零样本异常检测。

2.4.1 提示设计

图4展示了所提出的提示 ​ P 。该提示包含三个主要部分:

  • task”定义了LVLM应执行的操作,即判断用户提供的文本 ​ X 是否出现在图像中。
  • consideration”指明了在评估过程中需要考虑的因素;
  • output”则规定了评估结果的呈现格式。

为了利用思维链(CoT)的效果,作者要求模型在返回异常得分的同时提供简要推理过程,并将得分保留一位小数。当使用TC进行VQA时,在“task”与“consideration”之间插入一个额外元素——“context”,向LVLM传达TC中行与列的语义信息。

paper109-4.webp

2.4.2 异常评分

然而,由于LVLM仅接受单张图像作为输入,同时利用原始图像和附加信息存在挑战。为解决这一问题,作者采用 后融合(late fusion) 策略。具体而言,​ \hat{k} 、PC 和 TC 分别作为图像输入送入LVLM,LVLM为每个输入返回一个异常得分,这三个得分通过加权融合计算最终的异常得分 ​ ascore

ascore = \gamma_1 \cdot \Phi_{\text{LVLM}}(\hat{k}, P) + \gamma_2 \cdot \Phi_{\text{LVLM}}(PC, P) + \gamma_3 \cdot \Phi_{\text{LVLM}}(TC, P^*) \tag{8}

其中,​ \gamma 是超参数,用于调节各上下文信息在最终得分中的占比。

最后,为了生成帧级异常得分,将每个片段的 ​ ascore 复制至该片段长度,并应用一维高斯滤波器进行时间平滑处理。


3 实验

3.1 实验设置

  • 数据集
    • 三个传统VAD数据集:CUHK Avenue(Ave)、ShanghaiTech Campus(ShT)、UBnormal(UB)
    • 作者在其他数据集基础上自建的C-VAD数据集:Customizable-ShT(C-ShT)、Customizable-Ave(C-Ave)
  • 评估指标:micro AUROC

3.2 实验结果

  • 表1和表2展示了在C-VAD数据集上的评估结果。
    • 作者按照异常类别分成了“动作类”和“外观类”两种异常,并分别进行了实验。
    • 作者还进行了消融实验,分别对KSM和两个上下文(PC TC)进行消融,
    • 结论:
      • 所提模型在C-ShT和C-Ave数据集上分别实现了9.88%和13.65%的性能提升。
      • 仅引入位置上下文(PC)后,相比仅使用KSM,性能分别提升5.64%和3.62%,这是因为LVLM能聚焦于与用户文本X相关的物体进行分析;
      • 引入时序上下文(TC)后,相比仅使用KSM,性能分别提升8.38%和14.43%,尤其在“动作类”异常上提升显著,表明网格图像中提供的时序信息对于动作分析至关重要。
paper109-5.webppaper109-6.webp

  • 消融-关键帧选择
    • 三种变体:RD(随机选择)、CP(基于CLIP的帧选择,仅考虑文本对齐)、GR(分组)(这里可以分为先分组再用CLIP选择、先CLIP选择再分组)。此外,RD* 和 CP* 方法未使用上下文信息。
    • 结论:先用CLIP筛选后再进行分组,可使关键帧在时间上分布均匀,同时兼顾文本对齐与时间均匀性。
paper109-7.webp

  • 表4展示了在PC和TC中采用不同窗口大小的实验结果
    • 对于动作类异常,在C-ShT数据集上大窗口表现最优,在C-Ave数据集上中等窗口表现最佳。
    • 对于外观类异常,C-ShT数据集以小窗口效果最好,而C-Ave数据集以中等窗口最优。
    • 融合三种尺度窗口的方法取得了整体最优性能。
paper109-8.webp

  • 表5展示了与传统VAD的SOTA方法进行性能对比
    • 尽管AnyAnomaly未在任何VAD数据集上进行训练,其性能仍可与当前最优方法相媲美。
paper109-9.webp

  • 表7展示了泛化性能对比
paper109-10.webp