文章目录
- 速览
- 摘要
- 01 引言
- 1.1 关键观察与研究问题
- 1.2 我们的方法
- 1.3 贡献
- 02 相关工作
- 2.1 视频异常检测
- 2.2 针对VLM的语言化学习
- 03 VERA框架
- 3.1 视频异常检测的任务定义
- 3.2 在VERA中通过语言化学习寻找VAD指导性问题
- 训练目标
- 训练数据
- 通过学习者与优化器更新 Q Q Q
- 学习者与优化器
- 学习者的任务
- 优化器的优化步骤
- 3.3 在VERA中推理:通过指导性问题与上下文实现从粗到细的异常评分
- 第一步:利用学习到的指导性问题生成初始异常评分
- 第二步:通过场景上下文集成片段级异常评分
- 第三步:通过时间上下文生成帧级异常评分
- Explainable VAD by VERA
- 04 实验与结果
- 4.1 实验设置
- 数据集
- 评估指标
- 基线方法
- VERA的实现
- 4.2 实验结果对比
- 4.3 消融研究
- 训练帧采样策略
- 批量大小和采样帧数
- 获取指导问题 Q Q Q的方法
- 问题数量 m m m
- 粗到细的异常分数计算
- 泛化性测试
- 4.4 定性结果与案例研究
- 05 结论与局限性
arxiv’24 - 爱荷华大学/ 马普学会智能系统研究所(图宾根)/奥本大学
项目主页
VERA: Explainable Video Anomaly Detection via Verbalized Learning of Vision-Language Models
速览
动机
方法
训练阶段:学习指导性问题
- 学习者(Learner) 根据当前的问题 Q 进行异常二分类任务。
- 优化器(Optimizer) 通过对比学习者的预测与真实标签,基于自然语言优化 Q。
- 多轮迭代后,选择在验证集上准确率最高的 Q 作为最终问题。
推理阶段:由粗到细,由片段级到帧级
- 利用学到的问题 Q 生成片段级异常评分。
- 通过场景上下文优化片段分数(片段特征表示之间余弦相似度计算加权平均)。
- 通过时间上下文优化帧级分数(局部高斯平滑 + 全局位置加权)。
实验
结论
摘要
视觉-语言模型(VLM)的快速发展为视频异常检测(VAD)确立了一种新的范式:利用VLM同时检测异常并为决策提供可理解的解释。现有的相关工作通常假设,VAD所需的复杂推理能力超出了预训练VLM的能力范围。因此,这些方法要么在推理过程中引入专门的推理模块,要么依赖指令微调数据集,通过额外的训练使VLM适配VAD。然而,这些策略往往会带来显著的计算成本或数据标注开销。
为了解决解释性VAD中的这些挑战,我们提出了一种名为VERA的语言化学习框架,该框架能够在不修改模型参数的情况下让VLM执行VAD。具体而言,VERA自动将VAD所需的复杂推理分解为对捕捉不同异常模式的简单、聚焦的指导性问题的反思。它将这些反思性问题视为可学习的参数,并通过学习者和优化器VLM之间基于粗略标注训练数据的语言交互进行优化。在推理过程中,VERA将学习到的问题嵌入模型提示中,以引导VLM生成片段级异常评分,然后通过融合场景和时间上下文细化为帧级评分。
在具有挑战性的基准测试中,实验结果表明,VERA学习到的问题具有很强的适应性,显著提升了VLM在VAD任务中的检测性能和解释能力。
为什么不修改模型参数,又可以将反思性问题视为可学习的参数呢?
250206:是“通过学习一些通用问题,并在处理具体样本时,将这些问题嵌入到大模型的提示词(prompt)中”。
01 引言
视频异常检测(VAD)的目标是自动识别视频序列中意外和异常的事件,其应用范围广泛,包括自动驾驶【2】和工业制造【34】等领域。在VAD中,除了取得良好的检测性能外,为检测到的异常提供清晰的解释也至关重要。
因此,本研究主要聚焦于可解释的VAD,这一任务不仅需要全面的视觉理解能力,还需要生成对人类友好的解释。视觉-语言模型(VLM)的快速发展【8, 20, 23, 61】使我们能够通过其强大的视觉推理和语言交互能力同时满足这两项需求。作为一种多模态架构,VLM能够有效结合大型语言模型(LLMs)的推理能力【4】和预训练视觉编码器【9】的视觉理解能力,特别适合用于VAD任务。它们能够提供清晰展示具体异常原因的可解释预测,使结果对用户更具可理解性。
近年来,有关VAD的研究逐渐转向如何高效地利用预训练VLM的能力。如图1所示,现有方法试图通过额外的推理模块或指令微调(IT - Instruction Tuning)来解决VLM预训练任务与VAD需求之间的错位问题:
- 一类研究引入外部LLMs辅助冻结的VLM进行VAD推理【49, 55】。其流程是通过VLM对给定视频生成描述,然后将这些描述传递给外部LLM(如GPT-4【1】)以判断是否存在异常。
- 另一类研究通过指令微调扩展VLM,以生成可解释的预测【29, 58】。此类研究创建额外的VAD数据集(包含帧级注释),并利用示例性指令微调VLM,使其能够检测异常并生成人类可理解的解释。
1.1 关键观察与研究问题
尽管现有研究展示了将VLM应用于VAD的潜力,但我们发现这一新范式面临一个共同的关键问题:额外推理模块或细粒度标注数据集的使用在推理或训练阶段带来了显著的计算成本。首先,将VAD系统分解为冻结的VLM和额外的LLM会在推理中引入更多开销,因为描述生成和推理过程是分离的。其次,基于IT的方法虽然能够使VLM有效整合描述和推理能力,但它需要额外的人力和计算资源来注释和微调细粒度的指令数据集,这既耗时又难以扩展至大规模数据集。
基于此,我们提出了一个尚未被探索但非常重要的问题:
我们能否在不进行指令微调的情况下,使冻结的VLM整合描述和推理能力以完成VAD任务?
1.2 我们的方法
这一研究问题并非易事,因为冻结的VLM在一般视觉任务中的推理能力有限,难以处理VAD这样复杂的推理任务。这些任务通常需要理解微妙且依赖上下文的异常情况。例如,表1显示,利用现有工作中的简单VAD问题提示冻结的VLM会导致不理想的结果。因此,似乎需要对VLM进行指令微调,使其能够响应特定的指令提示并捕获细微的视觉变化。然而,本文质疑这种操作的必要性,并提出一种系统的方法来针对VAD任务调整冻结的VLM。
具体而言,我们的方法基于以下直觉:如果我们能找到具有合适且具体异常模式描述的问题,而不是抽象和泛化的问题(如“是否存在异常?”),那么VLM的VAD推理能力将会得到改善。我们的思路是通过迭代将异常描述从抽象问题逐步精炼为更详细、具体的特征化表述
。
受此启发,我们提出了一种名为VERA的框架,用于探索基于语言化学习的VAD方法。考虑到手动为VLM设计VAD指导问题的低效性和局限性,VERA引入了一种数据驱动的学习任务,通过使用粗略标注的数据集,自动识别包含具体异常模式的适合冻结VLM的问题描述,消除了对指令微调的需求。
具体来说,在训练阶段,VERA将指导VLM进行VAD推理的问题
视为可学习参数,并基于优化器VLM(optimizer VLM)
对学习者VLM(learner VLM)
在中间VAD子任务(对 VAD 训练集中的每个视频进行二元视频分类)上性能所给予的语言反馈来优化这些问题。这种设计高效且适用于VAD任务,因为它考虑了视频的时间特性,同时仅依赖提供的粗略视频级标签。
250113:目前的理解是,基于 ‘优化器VLM’ 对 ‘学习者VLM在二分类任务上的性能’ 所给出的语言反馈 来优化。简单来说,就是VLM1看VLM2的性能如何,然后根据这个性能给出文本,然后根据这个文本来优化问题。
在推理阶段,考虑到视频帧的巨大规模,VERA通过粗到细的方式为每一帧分配精细的异常评分。首先,VERA通过学习到的指导问题
对VLM进行查询,生成片段级异常评分。接着,VERA通过对每个片段评分整合场景上下文
进一步优化初始评分。最后,VERA通过高斯平滑和帧级位置加权融合
时间上下文,输出帧级评分。
250207:场景上下文是似于LAVAD的那个聚合过程,也是用的视频片段的相似度作为权重;时间上下文就是高斯平滑(局部时间上下文是在片段内,全局时间上下文是整个视频)
1.3 贡献
-
首创将冻结的VLM作为集成系统用于VAD:我们提出了首个方法——VERA,通过在提示中学习详细的异常表征问题,将异常分解为具体且可识别的模式,从而适配冻结的VLM进行VAD。VERA直接
从粗标注数据集中学习
这些问题,无需指令微调(instruction tuning)或外部推理模块。 -
引入基于语言化学习的高效算法:我们设计了一种基于语言化学习的有效算法,用于直接适配VAD中的VLM,而
无需修改模型参数
。仅使用粗标注的VAD数据集,我们的方法通过学习者和优化器VLM之间的语言化交互获得适用于VAD的指导问题
。此外,我们设计了一种粗到细的策略,从语言化学习得到的指导问题推导帧级异常分数,结合场景和时间上下文来提升VAD性能和推理能力。 -
提供自然语言表达的指导问题以实现知识转移:VERA学习到的指导问题以自然语言形式表达,为编码和转移VAD先验知识提供了一种统一的方法,可以无缝适配于其他数据集或VLM。在具有挑战性的VAD数据集(如UCF-Crime和XD-Violence)上,VERA实现了最先进的可解释VAD性能,并展现出良好的模型和数据集间的泛化能力。
02 相关工作
2.1 视频异常检测
视频异常检测(VAD)的任务是在给定视频中定位包含异常事件的帧。这一任务具有挑战性,因为异常事件范围广泛,例如事故和犯罪活动,而训练集中仅提供粗略的标注信息。现代VAD方法基于深度神经网络(DNN),因其在性能上的优越性,并且在逐渐向使用视觉-语言模型(VLM)转变。
- 早期的DNN方法:这些方法通常为任务特定的,采用无监督(包括单类学习)或弱监督(WS)学习技术进行训练。大多数无监督学习方法【25, 28, 40, 41, 51, 59】通过帧重构或预测任务训练DNN,以建立正常/异常视频的表示空间。WS学习方法【6, 30, 35, 50, 56】利用正常视频和异常视频进行训练,通过多实例学习(MIL)【35】目标区分正常性和异常性。这些方法充分利用了仅有的视频级标签,但其训练模型难以提供可解释的结果。
- 基于VLM的现代方法:最近的研究【29, 49, 55, 58】利用VLM生成异常检测的文本描述,增强了VAD的预测解释性。然而,现有方法由于需要外部LLMs或大量额外数据集进行微调而导致计算成本较高,不论是在训练还是推理阶段都效率低下。我们的研究通过学习指导性问题,直接适配冻结的VLM进行VAD任务,既无需修改模型参数,也不需要额外的推理模块,从而显著降低了计算开销。
2.2 针对VLM的语言化学习
设计的语言化学习框架受到最近一种技术——语言化机器学习(Verbalized Machine Learning, VML)【47】的启发。VML的主要思想是使用大语言模型(LLMs)近似函数,并学习执行特定任务的语言规则和描述,这将传统的机器学习任务(例如回归和分类)转化为基于语言的学习任务。该方法将定义分类规则和其他任务特定准则的语言表达视为可学习参数,并通过学习者与优化器(由LLMs或VLMs建模)之间的交互,以数据驱动的方式优化它们。然而,VML框架仅限于涉及标量值回归或静态图像分类的任务。
随后,另一种类似的方法TextGrad【52】提出了一个类似的理念,即结合从LLMs中获取的文本反馈,用于优化提示。这种方法被证明在代码生成、问答以及化学和医学中的优化任务中是有效的。与现有工作相比,我们的研究在VAD任务和视频数据上开创了语言化学习的应用领域。之前的语言化学习框架主要聚焦于具有静态输入数据的任务,无法应对输入中涉及时间性和场景动态的复杂视觉推理任务,例如VAD。
具体而言,VERA引入了一种适用于VAD的新学习范式:生成能够捕捉视频关键异常模式的有效问题,从而激发VLM的推理能力以实现可解释的VAD。此外,VERA适用于任何VAD数据集并支持弱监督(Weakly Supervised, WS)学习。不像传统的WS方法,VERA只需学习简洁的文本,而不是数百万个参数,因此训练过程更加轻量化。
具体的 商店盗窃检测 场景来细化优化过程
最初 Learner 提问 → “有没有异常?” → 问题太宽泛,没法识别具体异常
Optimizer 反馈 → “要问得更具体,比如‘有没有没结账就走出去’?”
Learner 提问改进 → “这个人有没有拿起东西并离开?” → 比之前好,但还是不够
Optimizer 再次优化 → “增加更多行为细节,比如是否放进口袋、是否四处张望”
Learner 生成最终问题 → “这个人有没有把物品放入口袋但没有结账?”
最终,VLM 根据 Learner 提出的问题,做出更准确的推理和解释 🎯
03 VERA框架
我们的方法通过学习指导性问题
,使冻结的视觉-语言模型(VLM)在无需额外推理模块或指令微调的情况下完成视频异常检测(VAD)。以下将详细介绍VAD任务的定义及VERA的设计细节。
3.1 视频异常检测的任务定义
视频异常检测:给定一个包含 F F F帧的视频 V V V,表示为 V = { I i } i = 1 F V = \{I_i\}_{i=1}^F V={Ii}i=1F,其中 I i I_i Ii是第 i i i帧( 1 ≤ i ≤ F 1 \leq i \leq F 1≤i≤F)。我们的目标是定位并检测视频中异常事件的开始与结束。在标准标注中,与异常相关的任何帧都标记为 1 1 1,正常帧则标记为 0 0 0。因此, V V V的真实标签序列表示为 Y = [ y 1 , … , y F ] Y = [y_1, \dots, y_F] Y=[y1,…,yF],其中 y i ∈ { 0 , 1 } y_i \in \{0, 1\} yi∈{0,1}表示帧 I i I_i Ii的精细标注。我们希望利用冻结的VLM( f VLM f_\text{VLM} fVLM)为所有帧生成异常分数预测,表示为 Y ^ = [ y ^ 1 , … , y ^ F ] \hat{Y} = [\hat{y}_1, \dots, \hat{y}_F] Y^=[y^1,…,y^F],其中 y ^ i ∈ [ 0 , 1 ] \hat{y}_i \in [0, 1] y^i∈[0,1]为帧 I i I_i Ii的连续异常分数。
可用的VAD训练数据:通常,VAD数据集仅提供粗略标注的训练集【25, 28, 35, 45】。我们将一个VAD训练集表示为 D = { ( V ( j ) , Y ( j ) ) } j = 1 N D = \{(V^{(j)}, Y^{(j)})\}_{j=1}^N D={(V(j),Y(j))}j=1N,其中 N N N是训练视频的总数, V ( j ) V^{(j)} V(j)是第 j j j个视频( 1 ≤ j ≤ N 1 \leq j \leq N 1≤j≤N), Y ( j ) Y^{(j)} Y(j)是对应的视频级标签。如果 V ( j ) V^{(j)} V(j)包含数据集注释者定义的任何异常(如虐待或纵火行为),则 Y ( j ) = 1 Y^{(j)} = 1 Y(j)=1;否则, Y ( j ) = 0 Y^{(j)} = 0 Y(j)=0。假设 V ( j ) V^{(j)} V(j)包含 F j F_j Fj帧,其帧序列表示为 V ( j ) = { I i ( j ) } i = 1 F j V^{(j)} = \{I_i^{(j)}\}_{i=1}^{F_j} V(j)={Ii(j)}i=1Fj,其中 I i ( j ) I_i^{(j)} Ii(j)是 V ( j ) V^{(j)} V(j)中的第 i i i帧( 1 ≤ i ≤ F j 1 \leq i \leq F_j 1≤i≤Fj)。
VAD_120">3.2 在VERA中通过语言化学习寻找VAD指导性问题
训练目标
我们的目标是学习指导性问题,这些问题可以将复杂且模糊的概念(如“什么是异常”)分解为一组可识别的异常模式,从而激发冻结的VLM在VAD任务中的推理能力。这些模式因数据集而异,使得手动设计的描述难以具备良好的泛化能力。为了解决这一问题,我们提出了一种通用的语言化学习框架(如图2所示),用于生成所需的指导性问题。我们将指导性问题集表示为 Q = { q 1 , … , q m } Q = \{q_1, \dots, q_m\} Q={q1,…,qm},其中 q i q_i qi是第 i i i个问题( 1 ≤ i ≤ m 1 \leq i \leq m 1≤i≤m), m m m是问题的数量。该训练框架将 Q Q Q视为可学习参数,通过学习者和优化器的语言交互优化这些参数,并利用VLM的指令理解能力。
图2. VERA 的整体训练流程旨在迭代优化 VAD 指导性问题。在每次迭代中,优化过程通过提供语言指令给学习者(learner)和优化器(optimizer)进行语言化(verbalized)。它们分别生成预测结果和新的指导性问题。
训练数据
用于学习 Q Q Q的训练数据由采样的视频帧及其对应的视频级标签组成。由于视频帧数量巨大,我们无法处理每一帧,因此需要进行采样。我们探索了三种采样策略,并发现均匀采样【57】表现最佳。因此,我们将在本文的实验部分详细讨论其他采样方法。在此处举例说明,对于任意视频 V ( j ) ∈ D V^{(j)} \in D V(j)∈D,我们首先计算采样帧之间的间隔 l = ⌊ F j / S ⌋ l = \lfloor F_j / S \rfloor l=⌊Fj/S⌋,其中 S S S是采样帧的数量, ⌊ ⋅ ⌋ \lfloor \cdot \rfloor ⌊⋅⌋表示向下取整。根据 l l l,从 V ( j ) V^{(j)} V(j)中均匀采样的帧表示为 V ~ ( j ) = [ I 1 ( j ) , I l + 1 ( j ) , … , I ( S − 1 ) l + 1 ( j ) ] \tilde{V}^{(j)} = [I_1^{(j)}, I_{l+1}^{(j)}, \dots, I_{(S-1)l+1}^{(j)}] V~(j)=[I1(j),Il+1(j),…,I(S−1)l+1(j)]。用于训练的标签仅为视频级标签 Y ( j ) Y^{(j)} Y(j),从而生成训练数据对 { ( V ~ ( j ) , Y ( j ) ) } j = 1 N \{(\tilde{V}^{(j)}, Y^{(j)})\}_{j=1}^N {(V~(j),Y(j))}j=1N。
通过学习者与优化器更新 Q Q Q
由于
Q
Q
Q 是用于特定异常模式的语言表达,VERA 在训练中继承了语言化机器学习(VML)的思想【47】:通过学习者与优化器之间的语言交互优化基于语言的参数
,而非通过数值优化算法如 Adam【18】。
我们以任意一次迭代 t t t 为例说明该过程。完整的 VERA 迭代训练过程请参见附录中的算法 1。
学习者与优化器
我们将任何基于大型语言模型(LLM)的模型表示为 f ( x ; ϕ ) f(x; \phi) f(x;ϕ),其中 x x x 为输入数据, ϕ \phi ϕ 为自然语言指令。在语言化学习框架中,这些指令被视为可学习参数。具体来说, Q Q Q 包含需要学习的参数。在每次迭代 t t t 中,学习者代理 f learner ( t ) f_\text{learner}^{(t)} flearner(t) 由冻结的 VLM f VLM ( ⋅ ) f_\text{VLM}(·) fVLM(⋅) 构建,并通过一个提示模板 θ \theta θ 指导 VLM 执行学习任务,聚焦于当前指导性问题 Q t Q_t Qt。学习者代理表示为: f learner ( t ) ( x ) = f VLM ( x ; ( θ , Q t ) ) f_\text{learner}^{(t)}(x) = f_\text{VLM}(x; (\theta, Q_t)) flearner(t)(x)=fVLM(x;(θ,Qt)),其中 x x x 是学习任务的输入, Q t Q_t Qt 是迭代 t t t 的指导性问题,是区分不同迭代学习者的核心参数。
同时,引入优化器代理 f opt ( t ) f_\text{opt}^{(t)} fopt(t),用于评估学习者的预测结果并优化 Q t Q_t Qt。同样,优化器代理使用冻结的 VLM 模型 f VLM f_\text{VLM} fVLM 构建,并通过另一个提示模板 ψ \psi ψ 指导优化器优化 Q t Q_t Qt,表示为: f opt ( t ) ( z ) = f VLM ( z ; ( ψ , Q t ) ) f_\text{opt}^{(t)}(z) = f_\text{VLM}(z; (\psi, Q_t)) fopt(t)(z)=fVLM(z;(ψ,Qt)),其中 z z z 是优化器的输入, ψ \psi ψ 是用于优化 Q t Q_t Qt 的指令。需要注意的是, f learner ( t ) ≠ f opt ( t ) f_\text{learner}^{(t)} \neq f_\text{opt}^{(t)} flearner(t)=fopt(t),因为学习者通过 ( θ , Q t ) (\theta, Q_t) (θ,Qt) 执行学习任务,而优化器通过 ( ψ , Q t ) (\psi, Q_t) (ψ,Qt) 优化 Q t Q_t Qt。
学习者的任务
学习者(learner)执行“前向传播”并输出预测结果。回顾我们仅使用原始的粗粒度标注信息进行训练。因此,我们为 f learner f_{\text{learner}} flearner 设计了一个二分类任务,该任务考虑到视频数据的时间序列特性、异常事件的稀疏性以及VAD数据集中的弱监督特性。在该任务中, f learner f_{\text{learner}} flearner 的目标是根据采样的视频帧 V ~ ( j ) Ṽ^{(j)} V~(j) 生成二分类预测 Y ^ ( j ) Ŷ^{(j)} Y^(j),以判断视频中是否存在异常事件。
如图 2 所示,我们在提示模板 θ \theta θ 的“模型描述”部分以自然语言形式解释了该任务。此外,指导性问题 Q t Q_t Qt 被嵌入至 θ \theta θ 的“提示性问题”部分,以引导视觉-语言模型(VLM)的推理。该模板设计基于VML(Verbalized Machine Learning)中的提示结构,并针对该弱监督学习任务进行了针对性的调整。由于篇幅限制,请参阅附录获取 θ \theta θ 的详细信息。
给定 θ \theta θ 和采样帧集 V ~ ( j ) Ṽ^{(j)} V~(j),学习者的输出预测为:
Y ^ ( j ) = f learner ( t ) ( V ~ ( j ) ) , (1) Ŷ^{(j)} = f_{\text{learner}}^{(t)}(Ṽ^{(j)}), \tag{1} Y^(j)=flearner(t)(V~(j)),(1)
其中,如果学习者在浏览 V ~ ( j ) Ṽ^{(j)} V~(j) 并基于指导性问题 Q t Q_t Qt 进行推理后认为该视频存在异常事件,则 Y ^ ( j ) = 1 Ŷ^{(j)} = 1 Y^(j)=1,否则 Y ^ ( j ) = 0 Ŷ^{(j)} = 0 Y^(j)=0。
优化器的优化步骤
优化器执行“反向传播”,通过小批量数据更新指导性问题
Q
t
Q_t
Qt(批量大小为
n
n
n)。假设批量中的视觉输入为
V
batch
=
[
V
~
batch
(
1
)
,
…
,
V
~
batch
(
n
)
]
V_\text{batch} = [\tilde{V}_\text{batch}^{(1)}, \dots, \tilde{V}_\text{batch}^{(n)}]
Vbatch=[V~batch(1),…,V~batch(n)],对应的真实标签为
Y
batch
=
[
Y
batch
(
1
)
,
…
,
Y
batch
(
n
)
]
Y_\text{batch} = [Y_\text{batch}^{(1)}, \dots, Y_\text{batch}^{(n)}]
Ybatch=[Ybatch(1),…,Ybatch(n)]。学习者根据当前的
Q
t
Q_t
Qt 生成预测(式1):
Y
^
batch
=
[
Y
^
batch
(
1
)
,
…
,
Y
^
batch
(
n
)
]
\hat{Y}_\text{batch} = [\hat{Y}_\text{batch}^{(1)}, \dots, \hat{Y}_\text{batch}^{(n)}]
Y^batch=[Y^batch(1),…,Y^batch(n)],然后优化器通过提示
ψ
\psi
ψ 和批量数据输出一组新的指导性问题
Q
t
+
1
Q_{t+1}
Qt+1,表示为:
Q
t
+
1
=
f
opt
(
t
)
(
V
batch
,
Y
^
batch
,
Y
batch
)
,
(2)
Q_{t+1} = f_\text{opt}^{(t)}(V_\text{batch}, \hat{Y}_\text{batch}, Y_\text{batch}), \tag{2}
Qt+1=fopt(t)(Vbatch,Y^batch,Ybatch),(2)
其中, Q t + 1 Q_{t+1} Qt+1 由 f opt ( t ) f_{\text{opt}}^{(t)} fopt(t) 生成,该函数利用其文本生成和指令遵循能力,在阅读 ψ \psi ψ 后优化 Q t Q_t Qt。由于篇幅限制,请参阅附录获取 ψ \psi ψ 的详细信息。
如附录的算法 1 所示,我们会重复执行公式 (1) 和 (2) 共 P P P 轮迭代以优化 Q Q Q,最终选择在验证集上达到最高准确率的 Q ∗ Q^* Q∗ 作为最终的指导性问题集。
3.3 在VERA中推理:通过指导性问题与上下文实现从粗到细的异常评分
给定学习到的最佳指导性问题 Q ∗ Q^* Q∗,VERA 在推理阶段通过一个粗到细的过程为测试视频 V V V 生成细粒度的异常评分 Y ^ Ŷ Y^。如图3所示,整个过程分为以下几个步骤:
第一步:利用学习到的指导性问题生成初始异常评分
我们首先将视频分为多个片段,并独立分析每个片段。按照【55】中的方法,我们在 V V V 中进行等间隔帧采样,以获取每个片段的中心帧集合 C C C,其形式为 C = { I 1 , I d + 1 , … , I ( h − 1 ) d + 1 } C = \{I_1, I_{d+1}, \dots, I_{(h-1)d+1}\} C={I1,Id+1,…,I(h−1)d+1},其中 d d d 是中心帧之间的间隔, h = ⌊ F / d ⌋ h = \lfloor F / d \rfloor h=⌊F/d⌋ 是片段总数。对于每个中心帧 I ( u − 1 ) d + 1 I_{(u-1)d+1} I(u−1)d+1( 1 ≤ u ≤ h 1 \leq u \leq h 1≤u≤h),定义以其为中心的10秒时间窗口作为第 u u u 个片段,并在该窗口内均匀采样8帧。我们将第 u u u 个片段的采样帧集合表示为 V u V_u Vu。
接着,将
V
u
V_u
Vu 和提示
(
θ
,
Q
∗
)
(\theta, Q^*)
(θ,Q∗) 输入冻结的VLM
f
VLM
f_\text{VLM}
fVLM,以获得初始片段评分:
y
~
u
=
f
VLM
(
V
u
;
(
θ
,
Q
∗
)
)
,
(3)
\tilde{y}_u = f_\text{VLM}(V_u; (\theta, Q^*)), \tag{3}
y~u=fVLM(Vu;(θ,Q∗)),(3)
其中,如果 VLM 认为该片段包含异常,则
y
~
u
=
1
\tilde{y}_u = 1
y~u=1,否则
y
~
u
=
0
\tilde{y}_u = 0
y~u=0。重复此过程对于所有片段,我们可以获得片段级初始异常评分集合:
Y
~
=
[
y
~
1
,
…
,
y
~
h
]
.
\tilde{Y} = [\tilde{y}_1, \dots, \tilde{y}_h].
Y~=[y~1,…,y~h].
250207:10秒为时间窗口作为一个片段,然后在这10秒中再均匀采样8帧
第二步:通过场景上下文集成片段级异常评分
需要注意的是,上述评分仅检查了视频中的短时片段,未考虑上下文信息。为了解决这一问题,我们通过场景上下文对初始片段级评分进行优化。场景上下文被定义为与当前片段包含相似元素(如人物和背景)的前后片段
。
我们通过计算视频片段特征表示之间的余弦相似度来度量片段之间的相关性【24】。这些特征由预训练的视觉特征提取器 g g g 提取,例如 ImageBind【11】。对于第 u u u 个片段 V u V_u Vu,其与任意片段 V w V_w Vw( 1 ≤ w ≤ h 1 \leq w \leq h 1≤w≤h)的相似度表示为: sim ( u , w ) = cos ( e u ⋅ e w ∥ e u ∥ ⋅ ∥ e w ∥ ) \text{sim}(u, w) = \cos\left(\frac{e_u \cdot e_w}{\|e_u\| \cdot \|e_w\|}\right) sim(u,w)=cos(∥eu∥⋅∥ew∥eu⋅ew),其中 cos \cos cos 表示余弦函数, e u = g ( V u ) e_u = g(V_u) eu=g(Vu) 和 e w = g ( V w ) e_w = g(V_w) ew=g(Vw) 分别为片段的特征表示。
然后,对于第
u
u
u 个片段,我们定义与其最相似的
K
K
K 个片段的索引集合为
κ
u
=
[
κ
u
(
1
)
,
…
,
κ
u
(
K
)
]
\kappa_u = [\kappa_u^{(1)}, \dots, \kappa_u^{(K)}]
κu=[κu(1),…,κu(K)]。基于这些相似片段,我们优化第
u
u
u 个片段的异常评分,表示为:
y
ˉ
u
=
∑
i
=
1
K
y
~
κ
u
(
i
)
⋅
exp
(
sim
(
u
,
κ
u
(
i
)
)
τ
)
∑
j
=
1
K
exp
(
sim
(
u
,
κ
u
(
j
)
)
τ
)
,
(4)
\bar{y}_u = \sum_{i=1}^K \tilde{y}_{\kappa_u^{(i)}} \cdot \frac{\exp\left(\frac{\text{sim}(u, \kappa_u^{(i)})}{\tau}\right)}{\sum_{j=1}^K \exp\left(\frac{\text{sim}(u, \kappa_u^{(j)})}{\tau}\right)}, \tag{4}
yˉu=i=1∑Ky~κu(i)⋅∑j=1Kexp(τsim(u,κu(j)))exp(τsim(u,κu(i))),(4)
其中
τ
\tau
τ 是温度超参数,
y
~
κ
u
(
i
)
\tilde{y}_{\kappa_u^{(i)}}
y~κu(i) 是最相似片段的初始评分,权重由余弦相似度决定,并通过Softmax函数进行归一化。
通过此操作,场景中更相似的片段被赋予更高的权重,使得优化后的评分更全面地反映视频上下文中的异常情况。应用上述公式对所有片段进行优化后,我们获得优化后的片段级异常评分集合:
Y
ˉ
=
[
y
ˉ
1
,
…
,
y
ˉ
h
]
.
\bar{Y} = [\bar{y}_1, \dots, \bar{y}_h].
Yˉ=[yˉ1,…,yˉh].
第三步:通过时间上下文生成帧级异常评分
在得到片段级优化评分 Y ˉ \bar{Y} Yˉ 后,我们希望通过时间上下文捕捉事件随时间的演变,从而计算帧级异常评分,因为异常的发生往往依赖于观察到的活动的时间序列和动态过程。
首先,我们使用高斯平滑【12】将局部时间上下文信息聚合到片段级异常评分中。高斯核函数(假设滤波器大小为 ω \omega ω)表示为: G ( p ) = exp ( − p 2 2 σ 1 2 ) G(p) = \exp\left(-\frac{p^2}{2\sigma_1^2}\right) G(p)=exp(−2σ12p2),其中 p p p 是距核中心的距离, σ 1 \sigma_1 σ1 是高斯核的方差。然后对片段级评分应用卷积操作,更新片段级评分为: Γ ˉ = Y ˉ ∗ G = [ γ 1 , … , γ h ] \bar{\Gamma} = \bar{Y} * G = [\gamma_1, \dots, \gamma_h] Γˉ=Yˉ∗G=[γ1,…,γh],其中 ∗ * ∗ 表示卷积操作。
接下来,为了结合全局时间上下文,我们对 Γ ˉ \bar{\Gamma} Γˉ 进行扁平化,将片段级评分 γ u \gamma_u γu 分配给片段 u u u 的每一帧 [ I ( u − 1 ) d + 1 , … , I u d ] [I_{(u-1)d+1}, \dots, I_{ud}] [I(u−1)d+1,…,Iud],从而得到帧级评分序列 [ ρ 1 , … , ρ F ] [\rho_1, \dots, \rho_F] [ρ1,…,ρF]。然后,我们通过位置加权对评分进行调整,位置加权函数表示为: w ( i ) = exp ( − ( i − c ) 2 2 σ 2 2 ) w(i) = \exp\left(-\frac{(i-c)^2}{2\sigma_2^2}\right) w(i)=exp(−2σ22(i−c)2),其中 i i i 是帧索引, c = ⌊ F / 2 ⌋ c = \lfloor F/2 \rfloor c=⌊F/2⌋ 是中心帧索引, σ 2 \sigma_2 σ2 是位置加权函数的方差。
最终,第
i
i
i 帧的异常评分计算为:
y
^
i
=
w
(
i
)
⋅
ρ
i
,
(5)
\hat{y}_i = w(i) \cdot \rho_i, \tag{5}
y^i=w(i)⋅ρi,(5)
通过这一操作,评分根据帧在事件中的位置进行调整,从而降低接近事件起点或终点的帧的异常评分,更好地捕捉异常事件的时间演变过程。
完成上述步骤后,帧级异常评分序列表示为: Y ^ = [ y ^ 1 , … , y ^ F ] . \hat{Y} = [\hat{y}_1, \dots, \hat{y}_F]. Y^=[y^1,…,y^F].
VAD_by_VERA_224">Explainable VAD by VERA
在使用嵌入了 Q ∗ Q^* Q∗ 的模板 θ \theta θ 计算 Y ^ \hat{Y} Y^ 时,我们要求 VLM 在推理时“用一句话提供解释”。随后,VLM 会基于 Q ∗ Q^* Q∗ 对其分配的异常评分进行解释。有关 VERA 可解释 VAD 的演示,请参阅第 4.4 节和附录的第 B.4 节。
04 实验与结果
在本部分,我们对VERA进行如下评估,回答以下关键问题:
- Q1:是否能够增强冻结VLM在VAD任务中的有效性?
- Q2:其设计是否合理且结构良好?
- Q3:在不同场景下的泛化能力如何?
4.1 实验设置
数据集
我们在以下两个大规模VAD数据集上进行了实验:
-
UCF-Crime【35】
- 该数据集由真实监控视频组成,总时长为128小时,涵盖与犯罪相关的异常事件,包括虐待、逮捕、纵火、攻击、入室盗窃、爆炸、打斗、交通事故、抢劫、商店行窃、枪击、偷窃和破坏行为。
- 训练集包含1610个视频(其中810个为异常视频,800个为正常视频),测试集包含290个视频(其中140个为异常视频,150个为正常视频)。
- 测试集总帧数超过100万帧(1,111,808),异常帧占比为7.92%。测试视频的平均时长为2.13分钟,较常见的视频数据集更长,因此更具挑战性。
-
XD-Violence【45】
- 这是另一个具有代表性的大规模VAD数据集,总时长为217小时,包含6种异常类别:虐待、交通事故、爆炸、打斗、骚乱和枪击。该数据集从电影和YouTube视频中收集,将与暴力相关的事件定义为异常。
- 训练集包含3954个视频,测试集包含800个视频(其中500个为异常视频,300个为正常视频)。
- 测试集总帧数超过200万帧(2,335,801),异常帧占比为23.07%。测试视频的平均时长为1.62分钟。
评估指标
遵循 [55, 58] 的方法,我们使用帧级受试者工作特征(Receiver Operating Characteristic, ROC)曲线的 曲线下面积(AUC, Area Under the Curve) 作为 VAD 性能的评估指标,因为它能够全面衡量模型在不同阈值下的整体表现。AUC 提供了一种综合评估方法,用于衡量模型区分异常与正常帧的能力。
此外,我们还使用 平均精度(AP, Average Precision) 作为另一种 VAD 评估指标,该指标通常用于 XD-Violence 数据集。与 AUC 相比,AP 主要关注模型识别异常事件的能力,即更侧重于正确分类异常类别,而不是整体的区分能力。
我们在附录中报告了 XD-Violence 数据集上的 AP 结果。
基线方法
我们按照 [58] 的方法,将基线方法分为 不可解释的(Non-explainable)方法和 可解释的(Explainable)方法。
不可解释的方法主要采用弱监督(Weakly Supervised, WS)学习 [7, 10, 17, 19, 21, 35, 38, 44–46, 53, 54, 60] 和无监督(Unsupervised)学习[14, 28, 36, 37, 40, 41],它们无法提供基于自然语言的 VAD 解释,并具有以下特征:
-
弱监督学习方法(WS learning) [7, 10, 17, 19, 21, 35, 38, 44–46, 53, 54, 60] 通常使用特定任务的预训练模型(如 C3D [39]、I3D [5]、VideoSwin [27]、ResNet [15]、ResNext [48])来提取视频段特征,并基于此构建分类器进行训练。由于 VAD 任务没有帧级标注信息,这些方法通常将包含异常场景的视频段视为正样本(positive bags),而其他视频段视为 负样本(negative bags),并采用 多实例学习(Multiple Instance Learning, MIL)进行训练。MIL 目标函数能够充分利用仅有的视频级标签信息,并有效提升模型区分正常和异常事件的能力。然而,这些方法训练出的神经网络依赖高度抽象的特征表示,难以被人类直观理解。
-
无监督学习方法(Unsupervised learning) [14, 28, 36, 37, 40, 41] 试图在没有任何视频标签的情况下提升模型对异常与正常事件的区分能力。其中,单类学习(One-Class Learning)方法 [14, 28, 40, 41] 也属于该类别。无监督方法通常采用重建模型(Reconstruction Models) 从无标注数据中学习表示,并通过重建误差(Reconstruction Errors)来区分正常和异常帧。另一种常见策略 [36, 37] 是为无标注数据引入伪标签(Pseudo Labels),并利用这些信息训练更具判别能力的 VAD 模型。然而,由于其网络结构的限制,这些方法无法为 VAD 任务提供可解释的预测结果。
对于 可解释的方法(Explainable Approaches),我们选取 LAVAD [55]、Holmes-VAD [58] 和 VADor [29] 作为代表,它们分别对应于图 1 中的 Pipeline 1和 Pipeline 2。需要注意的是,[49] 并未在 UCF-Crime 和 XD-Violence 数据集上报告实验结果。此外,我们还包括基于冻结 VLMs(Frozen VLMs) 的 零样本(Zero-shot, ZS) VAD 方法 [55] 作为基线。
VERA的实现
在我们的实验中,默认选择小型VLM InternVL2-8B【8】作为VERA的骨干模型 f V L M f_{VLM} fVLM,如果没有特别说明,则均基于此模型构建VERA。在此设置下,我们在NVIDIA RTX A6000 GPU上实现了VERA。
此外,我们还探索了其他骨干模型,例如Qwen2-VL-7B【43】以及InternVL2系列的更大模型版本,以进行消融实验。原则上,VERA适用于不同的骨干模型。
我们训练 Q Q Q不超过10个epoch,每100次迭代计算一次验证精度,以确定最优 Q ∗ Q^* Q∗。最终的 Q ∗ Q^* Q∗如图5所示。在训练中,批量大小 n n n设为2,每个视频采样帧数 S S S设为8,问题数量 m m m设为5。更多有关推理阶段超参数的详细信息,请参阅附录和第4.3节。
4.2 实验结果对比
我们通过与现有的VAD方法进行对比来回答问题(Q1)。首先,在表2中,VERA在UCF-Crime数据集上实现了解释性VAD方法中的最高AUC,优于Holmes-VAD和VADor(它们在文献中均未使用指令微调)。重要的是,与这些方法不同,VERA无需修改模型参数,从而证明了其能够直接将VLM适配于VAD任务,并且训练需求极低。此外,VERA在UCF-Crime上的AUC比LAVAD高出6%,并且能够在VAD任务中有效结合描述和推理能力。相比非解释性方法,VERA的AUC性能可与UCF-Crime中的顶尖方法CLIP-TSA相媲美,同时具备额外的解释性预测优势。
类似的优势也在XD-Violence数据集的表3中得到了体现。综合考虑性能、训练效率、系统集成和可解释性,VERA在VLM应用于VAD方面表现出极大的潜力。
4.3 消融研究
我们在UCF-Crime数据集上进行了必要的消融研究,以全面评估并回答问题(Q2)和(Q3)。
训练帧采样策略
我们比较了三种用于生成每个 V ( j ) V^{(j)} V(j)的训练帧采样策略:均匀采样、随机采样和TSN采样(从等分段中随机采样)。表4显示,均匀采样的效果最好(批量大小 n = 2 n=2 n=2,采样帧数 S = 8 S=8 S=8)。这是因为均匀采样能够保留视频的时间结构,并在整个长视频中保持一致的运动模式,从而使VLM能够更好地理解视频并更新 Q Q Q。
批量大小和采样帧数
在训练过程中,批量大小 n n n和每个视频 V ( j ) V^{(j)} V(j)的采样帧数 S S S是需要设置的重要超参数。在VERA的语言化学习框架中, S S S和 n n n的选择是相关的,因为它们决定了优化器需要查看并提供反馈的总帧数,即 S ⋅ n S \cdot n S⋅n。在具体实现中,当在GPU上实现VLM时,我们会面临内存限制。在我们的训练中,我们发现默认情况下用于训练的 f VLM f_{\text{VLM}} fVLM在NVIDIA RTX A6000 GPU上最多可以处理16帧。因此,我们将 S ⋅ n S \cdot n S⋅n设置为16。在此限制下,我们进一步探索 S S S和 n n n的权衡,以确定最佳设置。
表5显示了不同批量大小和采样帧数的结果。如果批量大小 n n n设置为1且 S = 16 S=16 S=16,由于批次中包含的视频样本数量有限,导致所学习的问题无法泛化,从而使AUC表现次优,并且训练时间更长。与此同时,如果我们将 n n n设置为较大的值(如4或8,对应的 S S S分别为4或2),学习到的问题同样表现不佳,因为较少的采样帧通常缺乏足够的时间性细节,优化器无法深入研究细节并构思出优质的问题。因此,本文默认设置 n = 2 n=2 n=2和 S = 8 S=8 S=8,以在训练效率和效果之间取得平衡。
获取指导问题 Q Q Q的方法
如表6所示,如果在VLM的提示中未包含指导问题,AUC会大幅下降至78.81%,这证实了使用更简单、更聚焦的问题来激发VLM在VAD任务中的推理能力是必要的。此外,如果我们使用人工编写的问题(详细内容见附录),性能也不尽如人意,AUC仅为81.15%,这表明使用语言化学习以生成指导问题是必要的。最后,如果在优化器中仅输入批量预测
Y
^
batch
\hat{Y}_{\text{batch}}
Y^batch和真实标签
Y
batch
Y_{\text{batch}}
Ybatch,而不输入视频帧
V
batch
V_{\text{batch}}
Vbatch,则优化器更新的
Q
Q
Q会显著降低VLM的性能,导致较低的AUC。这表明如公式(2)所示,输入视频帧进行优化是学习优质
Q
Q
Q的必要条件。
问题数量 m m m
如图4所示,当问题数量 m m m设置为1时,推理仅限于单一视角,导致AUC较低。随着 m m m增加到5,模型能够捕获更全面的异常模式,从而提高AUC。然而,当 m m m超过5时,性能提升不再显著。因此,本文默认将 m m m设置为5,除非另有说明。
粗到细的异常分数计算
我们还验证了VERA中异常分数的计算过程。表7显示,当仅使用第1步中获得的初始分数时,AUC为76.10%;在第2步中通过场景上下文检索相关的片段后,AUC显著提升至84.53%,这表明基于场景上下文的集成分数在异常检测中具有显著效果。同时,在第3步中加入平滑和位置加权操作后,AUC进一步分别提高了约1%,验证了时间上下文整合的好处。
泛化性测试
我们进一步测试了VERA在不同模型规模、VLM架构和数据集上的泛化性,以回答问题(Q3)。
首先,我们将VERA应用于InternVL2-40B,这是比InternVL2-8B更大的同系列模型。如表8所示,InternVL2-40B在AUC性能上略优于InternVL2-8B,表明VERA的语言化学习能够使不同规模的模型找到适合其推理能力的指导问题
Q
Q
Q。此外,我们还评估了
Q
Q
Q在不同模型规模之间的可迁移性,观察到一种有趣的现象:由InternVL2-8B学习的
Q
Q
Q对InternVL2-40B仍然有效,而由InternVL2-40B学习的
Q
Q
Q对InternVL2-8B的效果较差。这可能是因为小模型学习的
Q
Q
Q在语法结构上更简单,更容易被大模型理解,而大模型生成的
Q
Q
Q则更复杂,与小模型的推理框架不完全契合。
其次,我们选择了另一种VLM架构Qwen2-VL-7B作为VERA的骨干网络。如表9所示,虽然Qwen2-VL-7B的AUC低于InternVL2-8B,但VERA的语言化学习仍然有效,使其性能超越了LAVAD等知名基线方法。然而,表9显示在不同模型架构之间迁移 Q Q Q存在显著差距。开发能够有效激发各种VLM结构推理能力的通用 Q Q Q将是未来研究的一个有前景的方向。
最后,我们观察到 Q Q Q的迁移能力取决于训练数据集。如表10所示,将从UCF-Crime数据集中学习的 Q Q Q迁移到XD-Violence数据集时的性能下降较小,而反过来则下降更为明显。这表明源数据集在 Q Q Q跨数据集迁移中的重要性。
4.4 定性结果与案例研究
为了展示VERA在视频异常检测中的表现,我们选取了一段视频作为示例,定性地展示了通过学习到的 Q Q Q所带来的可解释性,如图5所示。如果您感兴趣,请参阅附录以获取更多定性示例。这段视频的主要异常是,一名男子试图从洗衣房的洗衣机中偷钱,在被警察发现后被逮捕。在图5中,我们展示了VERA学习到的指导问题,并选取了该视频的6个主要片段(每个片段包含2帧采样图像,其时间索引在图6中给出)作为示例,展示VERA生成的解释。
从给出的每个答案中可以看出,带有VERA学习问题的冻结VLM能够通过学习到的5个详细异常特征问题,准确地解释场景。例如,在第二个片段中, Q ∗ Q^* Q∗中的一个问题是“视频中是否有人未处于典型位置或从事不符合其常规行为的活动?”,该问题成功激发了冻结VLM的推理能力。随后,VLM准确描述了异常事件,并在问题的提示下解释了为何将其视为异常。
此外,由于测试中采用了本文提出的粗到细检测策略,图6中显示的异常分数动态很好地代表了视频中的实际实时异常水平。当该男子被逮捕时,分数逐渐接近1。这一结果验证了VERA能够通过整体模型有效识别异常,从而减少解释性VAD所需的人力和计算开销。
更有趣的是,VERA还具有另一项优势,即允许用户进一步与VLM进行交互,因为它保留了预训练VLM的一般问答能力。这是因为VERA不需要微调VLM的主干权重。虽然使用像LoRA这样的参数高效微调方法【16, 26, 32】是容易且计算上可行的,但经过指令微调的模型不可避免地会因“灾难性遗忘”而丧失处理一般问题的灵活性,因为这些模型被训练为对特定查询以固定样式作答。相反,如图7所示,学习到的
Q
∗
Q^*
Q∗既可以引导冻结VLM进行推理,也能让VLM回答开放式(例如后续或反事实)问题,这是一项指令微调模型无法实现的重要能力。
05 结论与局限性
我们提出了一种新颖的流程——VERA,它能够有效激发VLM的推理能力,从而在无需额外计算开销的情况下执行可解释的视频异常检测(VAD)。这一目标通过将语言化机器学习【47】的有效应用扩展到VLM得以实现。在训练阶段,VERA通过学习者和优化器代理之间的语言交互,获取详细描述异常模式的指导问题。在推理阶段,VERA利用这些问题增强VLM的异常检测能力,并通过粗到细的过程计算帧级异常分数。实验结果验证了VERA框架在实现最先进的可解释VAD性能方面的有效性。
与现有的基于VLM的VAD方法类似,VERA的性能在很大程度上依赖于VLM的视觉感知能力。大多数VLM采用CLIP视觉编码器【33】,其在捕获细粒度视觉细节方面存在局限性。这一限制可能会削弱精确的异常检测能力。如果重要的视觉特征在视觉编码过程中丢失,那么VERA就难以执行有意义的语言化学习。因此,对于基于VLM的VAD来说,一个基本的挑战是确保足够的视觉和时间特征被编码。一旦这一能力得以验证,VERA就能够执行语言化学习,以提取指导视频异常推理的关键线索。