论文笔记《Harnessing Large Language Models for Training-free Video Anomaly Detection》

论文笔记《Harnessing Large Language Models for Training-free Video Anomaly Detection》

Administrator 1 2025-06-14
  • 论文 - 《Harnessing Large Language Models for Training-free Video Anomaly Detection》
  • 代码 - Github
  • 关键词 - 视觉-语言模型VLM、大模型LLM、视频异常检测、无需训练、prompt工程设计

摘要

  • 研究问题
    • 视频异常检测(VAD)旨在在时间维度上定位视频中的异常事件。
    • 现有研究大多依赖训练深度模型,同时采用视频级监督、单类监督或无监督的方式进行。
    • 基于训练的方法往往具有领域特定性,因此在实际部署中成本较高,因为任何领域变化都需要重新收集数据并重新训练模型。
  • 本文工作
    • 提出了基于语言的视频异常检测方法(LAVAD),这是一种全新的、无需训练的范式,充分利用了预训练大语言模型(LLMs)和现有视觉-语言模型(VLMs)的能力。
    • 利用基于VLM的描述生成模型,为任意测试视频的每一帧生成文本描述。
    • 基于这些文本场景描述,作者设计了一种提示机制,以激发LLM在时间聚合和异常得分估计方面的能力,从而将LLM转化为有效的视频异常检测器。
    • 进一步利用模态对齐的VLM,并提出基于跨模态相似度的有效技术,用于清理噪声描述并优化基于LLM的异常得分。

1 引言

  • 视频异常检测(VAD)定义:在时间上定位那些与给定视频中正常模式显著偏离的事件,即异常事件。
  • 文献 [10] 常将 VAD 视为一种分布外检测问题,并使用不同监督程度的训练数据来学习正常行为的分布(见图 1),包括:
    • 全监督(即对正常和异常视频都进行帧级标注)
    • 弱监督(即对正常和异常视频进行视频级标注)
    • 单类方法(即仅使用正常视频)
    • 无监督(即使用未标注视频)
  • 上述工作局限:
    • 1)监督信息的手动标注成本非常高昂。
    • 2)无监督方法假设训练数据中包含一定比例的异常视频,这一假设在缺乏人工干预的实际场景中往往并不成立。
    • 3)现有的所有方法都需要一个训练过程来构建 VAD 系统,在特定数据集上训练的模型泛化能力往往表现不佳。
  • 提出新的研究问题:是否可以开发一种无需训练的视频异常检测方法?
  • 启发:利用 LLM 强大的泛化能力和广泛的知识涵盖,为 VAD 带来对目标场景的显式视觉先验知识。
  • 本文工作
    • 提出了首个无需训练的、基于语言的视频异常检测方法,LAVAD。该方法联合利用了预训练的 VLM 和 LLM 来进行 VAD。
    • LAVAD 首先使用现成的图像描述生成模型,为视频中的每一帧生成文本描述。
    • 为了处理描述中可能存在的噪声,引入了一个基于跨模态相似性(即描述与对应视频帧之间的相似度)的清洗过程。
    • 为了捕捉场景的时间动态信息,使用 LLM 对一个时间窗口内的文本描述进行总结,并利用该总结提示 LLM 为每一帧提供一个异常得分。
    • 进一步地,作者将语义上相似的时间段的异常得分进行聚合,以优化最终的异常评分。

2. 相关工作

2.1 VAD

  • 关于基于训练的 VAD 方法,根据监督程度的不同可分为四类:
    • 全监督 VAD :依赖于帧级标签来区分正常帧与异常帧。然而,由于标注成本极高,这一方向的研究相对较少。
    • 弱监督 VAD :使用视频级标签进行训练(即视频中存在一帧异常即标记整段视频为异常)。大多数此类方法采用三维卷积神经网络进行特征学习,并结合多实例学习(MIL)损失进行训练。
    • 单类 VAD :仅在正常视频上进行训练,尽管通常需要人工验证以确保训练数据的“正常性”。已有多种方法被提出,例如基于生成模型的方法或伪监督方法,其中通过正常训练数据合成伪异常样本。
    • 无监督 VAD :不依赖预定义标签,利用包含正常和异常事件的视频数据,假设大多数视频内容是正常的。该类方法大多借助生成模型来捕捉视频中的正常行为模式。例如:
      • 生成式协同学习(GCL)[40] 采用交替训练策略:一个自编码器用于重建输入特征,重建误差生成伪标签以指导判别器训练。
      • Tur 等人 [30, 31] 则使用扩散模型从带噪声的特征中重建原始数据分布,并基于去噪样本与原始样本之间的重建误差计算异常得分。
      • 其他方法 [26, 27] 则使用 OneClassSVM 和 iForest [16] 生成伪标签,并据此训练回归网络。
  • 相比之下,本文无需数据收集和模型训练,利用现有的大基础模型。

2.2 LLMs 用于 VAD

  • LLMs 用于视觉异常检测
    • Kim 等人 [12] 提出了一种无监督方法,主要利用 VLMs 进行异常检测,其中 ChatGPT 仅用于生成描述正常和异常元素的文本。然而,该方法需要人工参与,根据具体应用场景对 LLM 的输出进行优化,并且还需要进一步训练以适配 VLM。
    • 其他一些研究则将 LLM 应用于图像中的空间异常检测,例如在机器人 [4] 或工业领域 [7] 的特定任务中。
  • 相比之下,本文结合 LLM 与 VLM,专注于视频中的时间异常检测。

3. Training-Free VAD

3.1 问题形式化

输入:一个测试视频 ​ V = [I_1, \dots, I_M] ,其中包含 ​ M 帧。

问题目标:学习一个模型 ​ f ,该模型能够将每一帧 ​ I \in V 分类为正常(0)或异常(1),即 ​ f: \mathcal{I}^M \to [0, 1]^M ,其中 ​ \mathcal{I} 表示图像空间。

模型训练:在一个由元组 ​ (V, y) 构成的数据集 ​ \mathcal{D} 上训练,​ y 根据训练方法监督程度不同而不同。

本文无需训练 VAD 的定义:仅通过预训练模型推理,即无需任何训练或微调,也不涉及训练数据集 ​ \mathcal{D}


3.2 LLMs 是否适用于 VAD?

首先分析 LLM 基于视频帧的文本描述生成异常得分的能力。

分析方法:首先使用图像描述生成模型 ​ \Phi_C (即 BLIP-2 [14]),为每一帧 ​ I \in V 生成文本描述。然后,要求 LLM ​ \Phi_{\text{LLM}} 从区间 ​ [0, 1] 内均匀采样的 11 个值中选择一个异常分数,其中 0 表示正常,1 表示异常。得到的异常得分为:

\Phi_{\text{LLM}}(\mathbb{P}_C \circ \mathbb{P}_F \circ \Phi_C(I)) \tag{1}

其中

  • ​ \mathbb{P}_C 是一个上下文提示,为 LLM 提供关于 VAD 的先验信息。作者设计提示来模拟 VAD 系统的潜在最终用户,例如执法机构,通过角色扮演引导 LLM 输出的方式。
  • ​ \mathbb{P}_F 指导 LLM 输出所需格式。
  • ​ \circ 表示文本拼接操作。

最后,使用 AUC ROC 来衡量 VAD 性能。图 2 报告了在 UCF-Crime 数据集的测试集上,使用不同版本的 BLIP-2 和不同 LLM(包括 Llama 和 Mistral)的结果。作为参考,还有无监督设置下的SOTA方法性能 [27],以及随机评分。

结论:当前最先进的 LLM 具备异常检测能力,显著优于随机评分。但是,仍然远低于现有最先进的方法。

分析:LLMs 的性能可能受到两个方面的限制:(1)帧级描述可能存在噪声,描述可能不完整或无法完全反映视觉内容。(2)帧级描述缺乏全局上下文和场景动态的信息,而这些是建模视频的关键要素。

paper76-1.webp

3.3 LAVAD:基于语言的 VAD

LAVAD 分解成五个部分(如图4):

  • ​ \Phi_C: \mathcal{I} \to \mathcal{T} :将图像映射到语言空间中的文本描述;
  • ​ \Phi_{\text{LLM}}: \mathcal{T} \to \mathcal{T} :根据语言查询生成文本。
  • 图像编码器 ​ \mathcal{E}_I: \mathcal{I} \to \mathcal{Z} :用于图像;
  • 文本编码器 ​ \mathcal{E}_T: \mathcal{T} \to \mathcal{Z} :用于文本;
  • 视频编码器 ​ \mathcal{E}_V: \mathcal{V} \to \mathcal{Z} :用于视频。

需要注意的是,全部使用现成的冻结模型

为了克服第3.2节最后得出的帧级描述噪声和缺乏场景动态的问题,作者引入了三个组件:

  1. 基于视觉-语言表示的图像-文本描述清理
  2. 基于 LLM 的时间信息编码异常评分
  3. 使用视频-文本相似性对异常得分进行优化。
paper76-2.webp

图像-文本描述清理

对于每个测试视频 ​ V ,首先使用 ​ \Phi_C 为每一帧 ​ I_i \in V 生成一个描述,所有帧的描述序列记为 ​ \mathbf{C} = [C_1, \dots, C_M] ,其中 ​ C_i = \Phi_C(I_i)

问题:解决描述噪声等问题。

解决办法

利用整个视频的描述 ​ \mathbf{C} 假设在这个集合中存在一些未损坏且能更好地捕捉各自帧内容的描述,这一假设通常在实践中得到验证。因此,将描述清理视为在 ​ \mathbf{C} 中寻找与目标帧 ​ I_i 最接近的语义描述。

形式上,利用视觉-语言编码器,并通过 ​ \mathcal{E}_T ​ \mathbf{C} 中的每个描述进行编码,形成一组描述嵌入,即 ​ \{\mathcal{E}_T(C_1), \dots, \mathcal{E}_T(C_M)\} 。对于每一帧 ​ I_i \in V 计算其最接近的语义描述为

\hat{C}_i = \arg\max_{C \in \mathbf{C}} \langle \mathcal{E}_I(I_i), \mathcal{E}_T(C) \rangle, \tag{2}

其中 ​ \langle \cdot, \cdot \rangle 表示余弦相似度,​ \mathcal{E}_I 是 VLM 的图像编码器。然后,构建清理后的描述集 ​ \hat{\mathbf{C}} = [\hat{C}_1, \dots, \hat{C}_M] ,用从 ​ \mathbf{C} 中检索到的对应描述 ​ \hat{C}_i 替换初始描述 ​ C_i


基于 LLM 的异常评分

问题:清理后的描述序列 ​ \hat{\mathbf{C}} ,虽然比初始描述集更干净,但缺乏时间信息

解决办法

利用 LLM 提供时间聚合。具体而言,定义一个以帧 ​ I_i 为中心的时间窗口,长度为 ​ T 秒。在该窗口内,均匀采样 ​ N ,形成视频片段 ​ \mathbf{V}_i ,并提取对应的描述子序列 ​ \hat{\mathbf{C}}_i = \{\hat{C}_n\}_{n=1}^N 。然后,使用清理后的描述 ​ \hat{\mathbf{C}}_i 和提示 ​ \mathbb{P}_S 查询 LLM,以获取以帧 ​ I_i 为中心的时间摘要 ​ S_i

S_i = \Phi_{\text{LLM}}(\mathbb{P}_S \circ \hat{\mathbf{C}}_i) \tag{3}

其中,提示 ​ \mathbb{P}_S 形式化为:“请根据以下场景的时间描述,用几句话总结发生了什么。不要包含任何不必要的细节或描述。”。

结合公式 (2) 和 (3),获得了语义上和时间上更加丰富的帧描述 ​ S_i 。有了 ​ S_i 后,可以进一步查询 LLM 来估计异常得分。按照第 3.2 节中描述的策略,​ \Phi_{\text{LLM}} 为每个时间摘要 ​ S_i 分配一个区间 ​ [0, 1] 内的分数 ​ a_i

a_i = \Phi_{\text{LLM}}(\mathbb{P}_C \circ \mathbb{P}_F \circ S_i) \tag{4}

视频-文本得分优化

通过公式 (4) 获得了视频的初始异常得分 ​ \mathbf{a} = [a_1, \dots, a_M]

问题:这些得分仅基于其摘要中编码的语言信息,未考虑整个得分集合。

解决办法

进一步利用视觉信息对语义相似帧的得分进行聚合,以优化这些得分。具体而言,使用 ​ \mathcal{E}_V 编码以 ​ I_i 为中心的视频片段 ​ \mathbf{V}_i ,并使用 ​ \mathcal{E}_T 编码所有时间摘要 ​ \{S_1, \dots, S_M\} 。令 ​ \mathbf{K}_i 表示与 ​ \mathbf{V}_i 最接近的 ​ K 个时间摘要的索引集合,其中视频片段 ​ \mathbf{V}_i 与描述 ​ S_j 的相似度为余弦相似度,即 ​ \langle \mathcal{E}_V(\mathbf{V}_i), \mathcal{E}_T(S_j) \rangle 。获得优化后的异常得分为:

\bar{a}_i = \sum_{k \in \mathbf{K}_i} a_k \cdot \frac{e^{\langle \mathcal{E}_V(\mathbf{V}_i), \mathcal{E}_T(S_k) \rangle}}{\sum_{k \in \mathbf{K}_i} e^{\langle \mathcal{E}_V(\mathbf{V}_i), \mathcal{E}_T(S_k) \rangle}} \tag{5}

其中 ​ \langle \cdot, \cdot \rangle 表示余弦相似度。需要注意的是,公式 (5) 采用了与公式 (2) 相同的原则,利用视觉-语言(即视频/图像)信息与其他帧相结合,对帧级估计(即得分/描述)进行优化。最后,通过阈值处理,使用优化后的异常得分 ​ \bar{\mathbf{a}} = [\bar{a}_1, \dots, \bar{a}_M] 来识别测试视频中的异常时间窗口。

4 实验

4.1 实验设定

  • 数据集

    • UCF-Crime:包含1900个未经修剪的长时监控视频,涵盖13类真实异常事件。其训练集含800个正常视频和810个异常视频,测试集包含150个正常视频和140个异常视频。
    • XD-Violence:面向暴力检测的大规模数据集,包含4754个带音频信号的未修剪视频,该数据集覆盖6类异常事件,划分为3954个视频的训练集和800个视频的测试集。
  • 评估指标

    • AUC ROC
    • 精确率-召回率曲线下面积
  • 实现细节

    • 对每16帧视频采样一次。
    • ​\Phi_C BLIP-2及其变体的集成
    • ​\Phi_{LLM} Llama-2-13b-chat
    • 多模态编码器:采用ImageBind提供的

4.2 与SOTA对比

  • 基线
    • 无监督方法[26,27,30,31,40]
    • 单分类方法[8,19,23,24,33]
    • 弱监督方法[2,5,11,13,15,24,28,34–36,39–42]
    • 基于视觉语言模型(VLM)的免训练基线
      • ZS CLIP [22]与 ZS IMAGEBIND [6]:利用预训练编码器计算每帧图像嵌入与两个文本提示(标准场景/可疑犯罪活动场景)的余弦相似度,通过softmax函数生成帧级异常分数。
      • ZS IMAGEBIND(VIDEO):扩展使用ImageBind的视频模态编码器计算视频嵌入的相似度。
      • LLaVA-1.5基线:直接使用与本文相同的提示模板查询LLaVa[17]生成每帧异常分数。
  • 定量分析表1展示了UCF-Crime数据集[24]上的对比结果
    • 无需任何训练的LAVAD性能超越所有单分类和无监督方法。
    • 直接应用VLM的基线方法(ZS CLIP/ZS IMAGEBIND)表现欠佳,因其主要关注前景物体而非异常检测所需的动作或背景信息。
paper76-3.webp

  • 表2进一步呈现了XD-Violence数据集上的结果
    • LAVAD以AUC ROC指标大幅领先最佳无监督方法RareAnom[26]达+17.03%。
paper76-4.webp

  • 定性分析图5展示了UCF-Crime和XD-Violence的样例视频关键帧及时序描述可视化结果
    • 异常视频(第1行第1列、第2行)中,时序描述准确捕捉异常情境,助力LAVAD正确识别;
paper76-5.webp

4.3 消融实验

本节基于UCF-Crime数据集开展消融研究。

  • 各组件有效性验证
    • 通过消融LAVAD的三个核心组件(图文描述清洗、LLM异常评分、视频-文本分数优化)进行验证。
    • 结果如表3所示。
paper76-6.webp

  • 提示词中的任务先验
    • 表4探究了上下文提示 ​P_C 中两类先验知识的影响:
      • Impersonation:引导LLM从执法机构视角处理输入。
      • Anomaly Prior:明确将异常定义为犯罪活动。
    • 通过组合排列四种情况,可以发现身份模拟对性能有很大帮助。
paper76-7.webp