论文笔记《SlowFastVAD: Video Anomaly Detection via Integrating Simple Detector and RAG-Enhanced VLM》

论文笔记《SlowFastVAD: Video Anomaly Detection via Integrating Simple Detector and RAG-Enhanced VLM》

Administrator 8 2025-06-24
  • 论文 - 《SlowFastVAD: Video Anomaly Detection via Integrating Simple Detector and RAG-Enhanced Vision-Language Model》
  • 代码 - 预计开源
  • 关键词 - 大小模型协作、视频异常检测、高效检测、微调、RAG增强、视觉-语言模型VLM

1 引言

  • 现有工作局限
    • 仅使用正常样本训练的半监督方法通常存在高误报率的问题。
    • 利用深度神经网络的方法,其决策结果通常单调且缺乏可解释性和推理能力,难以满足对透明度和可解释性要求高的应用场景。
    • 利用视觉-语言模型VLM的方法提供了可解释的异常检测,然而,它们面临高计算成本以及缺乏对特定领域的适应性限制了其在实际场景种的实时部署与可靠性。
  • 本文工作 - SlowFastVAD
    • 方法概括:通过结合基于传统前馈网络的快速检测器基于高泛化能力VLM的慢速检测器,实现高效、准确且具有可解释性的异常检测。
    • 创新点:
      • 1)为了增强大模型在特定场景中的适应性与检测性能,作者设计了一个基于检索增强生成(RAG)的异常推理模块。该模块引导VLM从正常样本中生成多种视觉描述,在给定上下文中总结正常行为模式,并进一步利用思维链(CoT)推理推断潜在的异常模式。这些正常与异常模式被结构化为一个知识库。知识库的构建仅需少量正常样本,无需全量样本训练。
      • 2)为了使 VLM 更好地适应特定领域的 VAD 场景,作者基于少量正常样本构建了一个知识库,其中包含正常模式,并结合 VLM 推理出的异常模式。
      • 3)在推理阶段,系统会检索相关行为规则并将其用于增强提示信息,以引导VLM进行更具针对性的异常检测。同时,为降低VLM推理带来的高计算开销,作者提出了一种基于熵值的干预检测策略。该策略利用快速检测器生成的异常置信度识别不确定性较高的视频片段,并有选择地将这些片段送入基于VLM的慢速检测器进行深入分析。
      • 4)最后,作者引入了一种决策融合机制,将快慢检测器的预测结果进行融合,从而增强整个框架的鲁棒性。
    • 图1中展示了SlowFastVAD与现有工作的关键区别。
    • SlowFastVAD优点:有效地克服了当前快速检测器泛化能力有限、可解释性差的问题,同时降低了慢速检测器的计算成本。
paper90-1.webp

2 方法

2.1 概述

本文方法如图2所示。

  • 包含两个分支
    • 基于 DNN 的快速检测器:基于自编码器架构构建,具有较高的检测速度,但可解释性有限;
    • 基于 VLM 的慢速检测器:推理速度较慢,但具备强大的可解释能力。
  • 整体流程如下
    1. 快速检测器首先进行初步检测,并且结合了基于熵值的干预检测策略,识别出可能误判的视频片段。
    2. 随后,这些片段被传递给慢速检测器,慢速检测器生成异常置信度评分以及可解释的描述。
    3. 此外,为提升VLM在特定异常检测场景中的适应能力,作者引入了一个面向异常的RAG模块,该模块通过从训练视频中提取正常模式并推理潜在异常模式,增强对特定场景的理解能力。
    4. 最后,一个融合机制将两个检测器的输出结合起来,得到最终预测结果。这一机制有助于缓解VLM常见的“幻觉”效应,使系统实现高检测精度、快速推理和可解释输出。
paper90-2.webp

2.2 快速检测器

2.2.1 基础模型

作者直接采用了 AEDMAE [48],一个基于轻量级掩码自编码器架构。其模型结构紧凑、推理速度快。


2.2.2 干预检测策略

动机:由于快速检测器仅使用正常样本进行重建训练,它在推理阶段可能会对一些罕见但正常的样本产生较高的重建误差,从而导致异常置信度评分出现噪声或波动。

解决思路:提出了一种基于熵值的干预检测策略,用于识别不确定性较高的视频片段,并将其送入慢速检测器进行进一步分析。

方法概述:对于一个测试视频,从快速检测器中提取其帧级异常置信度分数 ​S_{\text{fast}} ,并使用窗口大小 ​n 将其划分为一组不重叠的子序列 ​ S = \{S_q\}_{q=1}^m 。对于每个子序列 ​S_q ,计算其熵值。为了考虑时间上下文,应用高斯滤波器进行平滑处理,整合相邻子序列的熵值以获得上下文感知的熵评分。由于异常置信度分数是介于 0 到 1 的小数,采用差分熵公式进行计算。

详细的计算过程如下所示:

(1)概率密度函数计算:首先,估计子序列 ​ S_q = \{\text{score}_i\}_{i=1}^n 的概率密度函数,其中 ​\text{score}_i 表示第 ​ i 帧的异常评分。在这里,使用频率分布直方图作为子序列 ​ S_q 的概率密度函数的近似。以下是具体的步骤:

  1. 确定直方图的组数 ​N_c
  2. 计算子序列 ​S_q 中的最大值与最小值之间的差值。
  3. 将该差值除以组数 ​N_c ,得到组间隔,从而确定各组的区间范围。
  4. 在此基础上,统计 ​S_q 中每个组内的元素数量并计算对应的频率,从而得到频率分布直方图 ​\text{pdf} \in \mathbb{R}^{N_c}
  5. 对于子序列 ​S_q 中的每个值 ​\text{score}_i,首先确定它在频率分布直方图中的所属组,并将该组的频率视为其发生的概率。
  6. 通过这种方式,最终得到子序列 ​S_q 概率密度函数 ​\hat{p}(\text{score}_i)

(2)差分熵计算:基于概率密度函数 ​ \hat{p}(\text{score}_i) ,计算子序列 ​ S_q 的差分熵 ​H_q ,公式如下:

H_q = -\sum_{i=1}^n \hat{p}(\text{score}_i) \log_2 (\hat{p}(\text{score}_i)) \tag{1}

(3)高斯滤波平滑:为了进一步考虑时间上下文,对差分熵 ​H_q 应用高斯滤波器 ​G(\cdot) ,整合相邻子序列的信息 ​H_{q+j} ,从而获得最终的熵值 ​\hat{H}_q 。具体公式如下:

G(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{x^2}{2\sigma^2}\right) \\ \hat{H}_q = \sum_{j=-Z}^Z H_{q+j} \cdot G(j), \quad Z = [3\sigma] \tag{2}

(4)阈值设定:设置一个阈值 ​ \theta ,用于确定哪些子序列为不确定的。如果某个子序列的熵值超过 ​\theta ,则对应的视频片段 ​ VF = \{\text{frame}_i\}_{i=1}^T 将被送入慢速检测器进行进一步分析。

(5)周期采样机制:此外,为了提高整体检测结果的可解释性,作者还引入了周期采样机制。具体而言,从每 ​T 个视频片段中抽取一个片段,并将其发送到慢速检测器进行语义描述和异常评分。这些结果作为全局上下文线索,补充最终决策过程,提供可解释的输出。


2.3 慢速检测器

2.3.1 基本流程

作者分析了时空信息在 VAD 的作用:

  • 时间信息可以捕捉事件的序列演化过程及其持续时间,有助于区分正常行为和异常行为,因为异常通常表现为时间维度上的突然中断。
  • 空间信息可以分为两个部分
    • 前景信息关注前景对象的位置和运动模式。
    • 背景信息则聚焦于场景中相对稳定的特征。通过理解背景信息,VLM 和 LLM 能够更好地提取和总结当前场景中的正常和异常模式。

基于此,模糊视频片段 ​VF 被与思维链提示拼接,并输入到 VLM 中( ​F_{\text{VLM}} ),以提取其时空表示 ​ ST_{\text{test}} 。随后,时空表示 ​ST_{\text{test}} 通过嵌入模型 text-embedding-v2​ F_{\text{emb}} )编码为向量 ​ E 。详细流程如下:

ST_{\text{test}} = F_{\text{VLM}}(VF) \\ E = F_{\text{emb}}(ST_{\text{test}}) \tag{3}

基于相似性检索相关模式

根据向量 ​E 与构建的知识库中模式的相似性,从知识库 ​\mathcal{D} 中检索出与当前视频相关的前 ​K 个相关模式 ​P 及其对应的二元异常预测 ​y (即正常或异常)。具体公式如下:

J = \text{TopK}(K, \{ (P_i, y_i, \text{sim}(E, P_i)) \mid (P_i, y_i) \in \mathcal{D} \}) \tag{4}

其中,​\text{sim}(\cdot) 表示相似度计算。

结合时空表示与检索知识进行推理

最后,提取的时空表示 ​ST_{\text{test}} 和检索到的知识 ​J 被拼接起来,并与一个 CoT 推理提示一起形成结构化的提示 ​ P_{\text{RAG}} = [ST_{\text{test}}; J] 。该提示被输入到 LLM 中进行逐步推理,生成异常评分 ​S_{\text{slow}} 以及相应的可解释描述 ​R 。具体公式如下:

(S_{\text{slow}}, R) = F_{\text{VLM}}(P_{\text{RAG}}) \tag{5}

2.3.2 RAG驱动的异常推理

该模块旨在从训练视频中提取正常模式,使在通用场景下训练的 VLM 能够更好地适应特定的 VAD 任务。为此,作者采用了一种稀疏时间采样策略,其中从固定长度的训练视频片段中随机选择包含 ​n 个连续帧的片段。

整体流程分为四个阶段:视觉描述生成、模式提取与预测、模式精炼与聚合、知识库构建,接下来依次介绍。

(1)视觉描述生成:在此阶段,按照第 3.3.1 节中描述的过程,提取视频片段的时空表示 ​ST_{\text{ref}}

(2)模式提取与预测:基于提取的时空表示 ​ST_{\text{ref}} ,进一步利用 CoT 提示引导 LLM 精化代表性的正常模式 ​N(例如,“一个人在路上慢慢行走”)。在这些模式的基础上,模型被进一步引导去推理空间规律性行为模式交互动态,从而实现对潜在异常模式 ​A 的预测。详细过程如下:

N = \text{CoT-LLM}(ST_{\text{ref}}) \\ A = \text{CoT-LLM}(N) \tag{6}

其中,​\text{CoT-LLM} 表示在 CoT 提示辅助下的 LLM 推理。

(3)模式精炼与聚合:为了精炼和聚合从训练视频中提取的正常模式和异常模式,作者设计了一种基于投票的策略。该策略考虑了同一场景中正常模式的一致性异常模式的多样性。可以分成以下三步:

  • 模式相似性比较:对于第 ​i 个场景中的每个正常模式 ​N_{ik} ,将其与知识库中的现有模式 ​N_{il} 进行相似性计算。如果 ​N_{ik} 与现有模式的平均相似度低于阈值 ​\tau ,则认为其为新模式,直接添加到知识库中。如果相似度之和不小于 ​\tau ,则识别出知识库中与 ​N_{ik} 相似的前 ​j 个模式 ​N_{ij} ,并对这些模式进行聚合和清理。
  • 模式聚合与保留:高度相似的模式被聚合,以提炼稳定的行为表示。不相似的模式被保留,以保持行为多样性。
  • 结果整合:对于第 ​i 个场景,经过上述处理后得到所有正常模式的集合 ​\mathcal{N}_i^* 和异常模式的集合 ​ \mathcal{A}_i^*。最终,将两者结合,形成该场景的所有模式集合 ​\mathcal{P}_i

通过这种方式,形成了一个既具有代表性又多样化的模式集合,为后续的知识库构建奠定了基础。公式表达如下:

\mathcal{N}_i^* = \bigcup_{k=1}^{K} \begin{cases} \{N_{ik}\}, & \text{if } \frac{1}{|N_{il}|_{l \neq k}} \sum_{j \neq k} \text{sim}(N_{ik}, N_{il}) < \tau \\ \left( \bigcup_{j: \text{sim}(N_{ik}, N_{ij}) \geq \tau} N_{ij} \right), & \text{otherwise} \end{cases} \tag{7}
\mathcal{A}_i^* = \bigcup_{m=1}^{M} \begin{cases} \{A_{im}\}, & \text{if } \frac{1}{|A_{in}|_{n \neq m}} \sum_{n \neq m} \text{sim}(A_{im}, A_{in}) < \tau \\ \left( \bigcup_{n: \text{sim}(A_{im}, A_{in}) \geq \tau} A_{in} \right), & \text{otherwise} \end{cases} \tag{8}
\mathcal{P}_i = \mathcal{N}_i^* \cup \mathcal{A}_i^* \tag{9}

(4)知识库构建:经过清理的正常模式 ​\mathcal{N}_i^* 和异常模式 ​\mathcal{A}_i^* ,连同它们对应的异常预测 ​y_i ,被结构化为标准化的数据格式,并使用 text-embedding-v2 模型编码为向量表示,从而构建出针对 VAD 任务定制的知识库。数学上,知识库 ​ \mathcal{D} 可以表示为:

\mathcal{D} = \bigcup_{i=1}^{I} \{F_{\text{emb}}(\mathcal{P}_i, y_i)\} \tag{10}

2.4 快慢融合与推理

为了得出最终的异常置信度分数,作者通过一种融合机制将 ​ S_{\text{fast}} ​ S_{\text{slow}} 进行整合。首先,使用加权平均法获得初始融合结果 ​S_{\text{fusion}},公式如下:

S_{\text{fusion}} = \alpha S_{\text{slow}} + (1 - \alpha) S_{\text{fast}} \tag{11}

其中,权重因子 ​\alpha 用于平衡快慢检测器的性能。随后,应用高斯滤波器进行平滑处理。此外,慢速检测器生成的异常推理 ​R 赋予了检测结果高度的可解释性。


3 实验

3.1 实验设定

  • 数据集:UCSD Ped2、Avenue、ShanghaiTech 和 UBnormal。
  • 评估指标:Micro AUC (所有测试视频中的帧被合并为一个单一序列)和 Macro AUC(为每个单独的测试视频计算再平均)
  • 实现细节
    • 用作视觉感知的VLM:Qwen-VL-Max
    • 用作时空信息聚合和检索增强生成的LLM:Qwen-Max
    • 快速检测器:AED-MAE

3.2 实验结果

  • 如表1和2所示
    • 在四个数据集上将SlowFastVAD 与数十种基线 VAD 方法进行比较。
    • SlowFastVAD 取得了整体最先进的结果,尤其在 UCSD Ped2 和 UBnormal 数据集上表现优异。
paper90-3.webppaper90-4.webp

  • 消融实验 - 各组件的影响
    • 结果如表3所示。
    • 作者将SlowFastVAD分成了三个组件:Intervention(2.2.2)、Integration(2.4)和RAG(2.3.2)。
paper90-5.webp

  • 消融实验 - 不同检测器的影响
    • 结果如表4所示。
    • 进一步评估了快速检测器、慢速检测器及混合后的SlowFastVAD在不同数据集上的性能,结果汇总于表4中。
paper90-6.webp

4 相关工作

4.1 基于非 VLM 的 VAD

4.1.1 半监督 VAD

  • 半监督 VAD 定义:模型训练仅依赖于正常样本。
  • 半监督 VAD 方法可以分为三类
    • 基于自编码器的方法:通过编码器和解码器重建输入,使用重建误差来检测异常。
    • 基于 GAN 的方法:生成器合成逼真的正常样本,判别器试图突分真实和生成样本。判别器给出低真实性评分的测试样本被视为异常样本。
    • 基于扩散模型的方法:通过反向扩散过程逐步从噪声中生成样本。较差的重建效果表明可能存在异常。

4.1.2 弱监督 VAD

  • 弱监督 VAD 定义:在训练过程中同时使用正常和异常样本,但只有粗粒度的视频级标签可用。
  • 当前研究主要遵循两种范式
    • 单阶段多实例学习方法
    • 两阶段自训练策略
  • 近年来还探索了多种增强技术:
    • 时序建模:捕捉视频中的序列依赖关系,使模型能够利用上下文信息;
    • 时空建模:融合空间与时间特征,在抑制背景噪声的同时定位异常区域;
    • 基于MIL的优化策略:解决传统MIL方法仅关注高分片段的局限性,引入外部先验知识(如文本信息)以提升异常定位能力;
    • 特征度量学习:通过聚合同类特征并分离异类特征,构建具有判别性的嵌入空间,从而增强特征表达能力。

4.2 基于VLM的视频异常检测

4.2.1 半监督 VAD

  • 相关工作
    • AnomalyRuler,该方法通过融合VLM的归纳总结与演绎推理能力来检测异常。具体而言,在归纳阶段,模型从少量正常样本中提取行为规则;在演绎阶段,基于这些规则识别异常帧。
    • VLAVAD,该框架采用跨模态预训练模型,并利用 LLMs 的推理能力,提升VAD的可解释性与有效性。
  • 局限:处理时间高。

4.2.2 弱监督 VAD

  • 相关工作
    • 通过视觉-语言增强特征(CLIP-TSA
    • 跨模态语义对齐(VadCLIPTPWNGSTPrompts
    • 生成对异常事件的描述增强了模型的可解释性(Holmes-VAU
    • 无需训练的方法(LAVAD