当前位置:   article > 正文

利用大型语言模型进行视频异常检测(Harnessing Large Language Models for Training-free Video Anomaly Detection)

harnessing large language models for training-free video anomaly detection

更新中……

摘要

现有工作的不足

  • 大多依赖训练深度模型(就是有监督、无监督那些)
  • 基于训练的方法往往是特定于领域的,如果想更改领域将涉及数据收集和模型训练,这个成本比较高

提出LAVAD

LAVAD - language-based video anomaly detection,不涉及数据收集和模型训练,利用预训练的大型语言模型(LLMs - large language models)和视觉语言模型(VLMs - vision-language models)

  • 利用基于VLMs的字幕模型(VLM-based captioning models)为测试视频的每一帧生成文本描述
  • 设计了一种提示机制(prompting mechanism),用于解锁LLMs在时间聚合和异常评分估计方面的能力,使LLMs成为有效的视频异常检测器
  • 利用与模态对齐的VLMs,并提出了基于跨模态相似性(cross-modal similarity)的有效技术,用于清理噪声字幕和细化基于LLMs的异常评分

实验结果

在两个具有真实世界监控场景的大型数据集(UCF-Crime和XD-Violence)上LAVAD均优于无监督和单类VAD方法(unsupervised and one-class methods)

一、引言

1.1 VAD任务的挑战性

  • 异常通常是未定义的
  • 依赖于上下文
  • 在现实世界中很少发生

1.2 SOTA方法的不足

  • 目前最先进的方法包括:
    • 全监督(fully-supervised):对正常和异常视频的帧级监督
    • 弱监督(weakly-supervised):对正常和异常视频的视频级监督
    • 单类(one-class):只有正常的视频
    • 无监督(unsupervised):没有标记视频
  • 它们的缺点:
    • 手工打标的成本太高
    • 无监督虽然不需要打标,但是他提出的这种假设(即假设异常视频构成训练数据的一部分),在没有人为干预的情况下是不可靠的
    • 具有局限性。都需要一个训练程序来建立一个精确的VAD系统,即没有泛化性(泛化性是指在特定数据集上训练的VAD模型往往在不同设置(例如,日光与夜景)下录制的视频中表现不佳)
    • 数据收集难。特别是在某些特定领域,例如视频监控的隐私问题等

总结来说:①数据收集难,涉及隐私;②模型的泛化问题;③打标成本高。 \color{red}{总结来说:①数据收集难,涉及隐私;②模型的泛化问题;③打标成本高。} 总结来说:数据收集难,涉及隐私;模型的泛化问题;打标成本高。

图1: 方法对比。左侧是四个目前最先进的方法,右侧是本文提出的方法

在这里插入图片描述

1.3 提出LAVAD

  • 提出利用大型基础模型(large foundation models)的以下特点解决“对目标设定缺乏明确的视觉先验”的问题(就是指的模型没有提前学到过关于异常或者正常的相关知识
    • 泛化能力
    • 知识封装能力
  • 提出将现有的视觉语言模型(VLMs)与大型语言模型(LLMs)结合起来解决无训练的VAD(training-free VAD)
  • 提出了第一种无需训练的基于语言的VAD方法(LAVAD, LAnguage-based VAD method),联合使用预训练好的LLMs和VLMs进行VAD
    • 利用现成的字幕模型(基于VLMs)为测试视频的每一帧生成文本描述
    • 引入基于视频中字幕和帧之间的跨模态相似性的清洗过程(基于VLMs)来解决字幕中的潜在噪声
    • 使用LLMs总结时间窗口的字幕以捕获场景的动态内容。该总结用于提示LLMs为每一帧提供异常分数。然后通过将具有语义相似的总结的帧之间的异常分数聚合在一起,进一步改进该分数
    • 在两个基准数据集(UCF-Crime和XD-Violence)上LAVAD均优于无监督和单类VAD方法

1.4 主要贡献

  • 首次研究了无训练VAD问题

  • 提出LAVAD,是第一个使用LLMs从场景描述中检测异常的方法

  • 引入新技术(基于VLM的跨模态相似性)

    • 减轻噪声字幕
    • 改进基于LLM的异常分数
  • 提供了新范式(不使用特定任务监督和训练的视角去解决VAD问题)

二、相关工作

  1. 本文完全避免了收集数据,仅通过利用现有的大型基础模型来实现VAD任务
  2. 本文利用LLM和VLM联合解决VAD任务,并且不需要收集数据和训练模型

三、无训练的VAD

3.1 公式化问题

在推理时仅使用预训练的模型来估计每个视频帧 I ∈ V \mathbf I \in \mathbf V IV,即不涉及数据集 D \mathcal D D 的任何训练/微调

  • I \mathbf I I 表示帧
  • V = [ I 1 , I 2 , . . . , I M ] \mathbf V=[\mathbf I_1, \mathbf I_2, ... , \mathbf I_M] V=[I1,I2,...,IM] 表示视频,其中 M M M 表示帧数
  • y y y 表示真实标签(0/1)

3.2 LLMs的异常评分能力

这里主要分析了LLMs基于视频帧的文本描述来对异常进行评分的能力。

3.2.1 评分

①首先利用SOTA字幕生成模型BLIP-2对每一帧生成文本描述;②然后将异常评分视为分类任务,即让LLM在11个值([0, 1]之间均匀的11个值)中选择
在这里插入图片描述

  • Φ C \Phi_{\mathbf C} ΦC 表示字幕生成模型BLIP-2
  • Φ L L M \Phi_{\mathbf{LLM}} ΦLLM 表示大语言模型
  • P C \mathrm{P_C} PC 表示文本提示,用于给LLM提供关于VAD的先验
  • P F \mathrm{P_F} PF 表示输出格式
  • ◦ ◦ 表示文本连接操作

P C \mathrm{P_C} PC:“If you were a law enforcement agency, how would you rate the scene described on a scale from 0 to 1, with 0 representing a standard scene and 1 denoting a scene with suspicious activities?”

注意: P C \mathrm{P_C} PC 不包括与异常类型有关的任何内容

3.2.2 评估

由式1可以得到异常分数,然后使用AUC作为评价指标。

如图2,展示了在UCF-Crime的测试集上的结果,使用了5个不同类别的CLIP-2和2个不同的LLM。同时,也提供了 弱监督的SOTA性能 和 随机性能 作为参考。

图2:在UCF-Crime的测试集上VAD任务的AUC柱状图。

  • 不同的柱状图代表CLIP-2的不同类别的字幕生成模型
  • 不同颜色代表了两种不同的LLMs
  • 红色虚线代表弱监督的SOTA性能
  • 灰色虚线代表随机性能

在这里插入图片描述

3.2.3 分析结果

LLMs性能比随机好,但是比SOTA性能差很多,即使是弱监督的SOTA性能。

原因可能为:

  1. 逐帧生成的字幕有很多噪音(如图3)
  2. 帧级字幕缺乏对全局的理解

图3:Llama对某视频的异常分数预测。

  • 红色区域为真实发生异常的帧;淡蓝色的线为模型预测出的异常分数。
  • 同时真实发生异常的帧中挑选了两帧举例,给出了这两帧的字幕。可以发现:
    ①红色边框的那一帧异常分数给的很高,这是因为其字幕是正确的描述了异常
    ②蓝色边框的那一帧给的异常分数很低,这是因为其字幕没有正确的描述异常

在这里插入图片描述

3.3 LAVAD方法

图4:LAVAD方法的流程。

在这里插入图片描述

如图4,LAVAD包括5个组件:

  1. Φ C : I → T \Phi_{\mathbf C}:\mathcal{I \rightarrow T} ΦC:IT,字幕生成器,将图像映射为文本描述(在文本空间 T \mathcal T T
  2. Φ L L M : T → T \Phi_{\mathbf{LLM}}:\mathcal{T\rightarrow T} ΦLLM:TT,大语言模型,从语言询问中生成文本
  3. 还包括3个编码器,将输入表示 映射到 潜在空间 Z \mathcal Z Z
    • ε I : I → Z {\LARGE \varepsilon}_I:\mathcal{I\rightarrow Z} εI:IZ ,图像编码器
    • ε T : T → Z {\LARGE \varepsilon}_T:\mathcal{T\rightarrow Z} εT:TZ ,文本编码器
    • ε V : V → Z {\LARGE \varepsilon}_V:\mathcal{V\rightarrow Z} εV:VZ ,视频编码器

注意:这5个组件都是冻结模型

3.3.1 图像-文本 字幕清洗

Image-Text Caption Cleaning.

首先会使用 Φ C \Phi_{\mathbf{C}} ΦC 对测试视频 V \mathbf V V 中的每一帧 I i ∈ V \mathbf I_i \in \mathbf V IiV 生成字幕 C = [ C 1 , . . . , C M ] \mathbf C = [C_1, ..., C_M] C=[C1,...,CM],其中 C i = Φ C ( I i ) C_i=\Phi_{\mathbf C}(\mathbf I_i) Ci=ΦC(Ii)

但是此时生成的字幕是有噪音的,如图3。为了清楚噪音,提出了一个假设:在整个是视频的字幕 C \mathbf C C 中,肯定会存在一些 未损坏且很好的捕捉到其对应帧的内容 的字幕(依据:视频是静态摄像机以高帧率捕获的场景)。因此,无论时间距离有多远,帧的语义内容可以是重叠的

基于这个观点,我们将 字幕清洗 视为 从字幕 C \mathbf C C 中给帧 I i \mathbf I_i Ii 找到语义最接近的字幕

形式上,利用 视觉-文本编码器 对字幕 C \mathbf C C中的字幕编码,形成一套 字幕嵌入,即 { ε T ( C 1 ) , . . . , ε T ( C M ) } \{ {\LARGE \varepsilon}_T(C_1), ..., {\LARGE \varepsilon}_T(C_M) \} {εT(C1),...,εT(CM)},然后计算语义相似度:
在这里插入图片描述

  • ⟨ ⋅ , ⋅ ⟩ \langle ·, ·\rangle ⋅,⋅ 表示余弦相似度
  • ε I {\LARGE \varepsilon}_I εI 表示VLM的图像编码器

最终会构建出清洗后的字幕 C ^ = [ C ^ 1 , . . . , C ^ M ] \hat{\mathbf C}=[\hat{C}_1, ..., \hat{C}_M] C^=[C^1,...,C^M],他们是从 C \mathbf C C 中检索出来的

3.3.2 基于LLM的异常评分

3.3.2.1 生成时间总结

虽然字幕噪音减少了,但是缺乏时间信息,这个对于视频来说很重要,所以 利用LLM生成时间总结

具体来说:

  1. 定义了一个 以 帧 I i \mathbf I_i Ii 为中心的时间窗口( T T T 秒)
  2. 在这个窗口中均匀采样 N N N 帧,形成视频片段 V i \mathbf V_i Vi 和字幕子集 C ^ i = { C ^ n } n = 1 N \hat{\mathbf C}_i=\{\hat C_n\}_{n=1}^N C^i={C^n}n=1N
  3. C ^ i \hat{\mathbf C}_i C^i + 提示 P S \mathrm{P}_S PS 输入给LLM得到 以帧 I i \mathbf I_i Ii为中心的时间总结 S i S_i Si

在这里插入图片描述

P S \mathrm{P}_S PS为:“Please summarize what happened in few sentences, based on the following temporal description of a scene. Do not include any unnecessary details or descriptions.”

3.3.2.2 生成异常分数

上面得到的第 i 帧的描述 S i S_i Si 语义信息和时间信息更加丰富,将 S i S_i Si + 提示 P C \mathrm P_C PC + 格式提示 P F \mathrm P_F PF 输入给LLM来生成分数:
在这里插入图片描述
注意:这里的两个提示与3.2节的一样,并且分数也在区间 [ 0 , 1 ] [0, 1] [0,1]

3.3.3 视频-文本 分数优化

上面的分数 a = [ a 1 , . . . , a M ] \mathbf a=[a_1,...,a_M] a=[a1,...,aM] 仅是根据语言信息 S S S 得到的,并未考虑整个分数集。因为这里通过聚合语义相似帧的评分来改进初始评分。

具体来说:

  1. 使用 ε V {\LARGE \varepsilon}_V εV 对视频片段 V i \mathbf V_i Vi 进行编码
  2. 使用 ε T {\LARGE \varepsilon}_T εT所有的时间总结 S S S 进行编码
  3. 定义 K i \mathbf K_i Ki 为在 S = { S 1 , . . . , S M } S=\{S_1,...,S_M\} S={S1,...,SM} 中与 V i \mathbf V_i Vi 最相似的前 K K K 个时间总结的索引
    • 其中相似指的是 V i \mathbf V_i Vi S j S_j Sj 余弦相似度,即 ⟨ ε V ( V i ) , ε T ( S j ) ⟩ \lang {\LARGE \varepsilon}_V(\mathbf V_i), {\LARGE \varepsilon}_T(S_j)\rang εV(Vi),εT(Sj)⟩

在这里插入图片描述

  • ⟨ ⋅ , ⋅ ⟩ \langle ·, ·\rangle ⋅,⋅ 表示余弦相似度
  • a ~ = [ a ~ 1 , . . . , a ~ M ] \mathbf{\tilde{a}}=[\tilde a_1, ..., \tilde a_M] a~=[a~1,...,a~M] 表示最终得到的异常评分

注意:式5 利用与 式2 相同的原则,即使用视觉-语言相似性来优化帧级估计。在式2中,这种相似性用于清理字幕;在式5中,这种相似性用于聚合语义相似帧的得分。

四、实验

数据集

使用 UCF-Crime 和 XD-Violence

评价指标

使用 AUC,因为与阈值无关,同时对于 XD-Violence 还使用了 AP

实现细节

  • 每隔16帧采样1次(从视频中选择每第16帧进行处理,而跳过其余的15帧,以提高计算效率)
  • Φ C \Phi_{\mathbf C} ΦC 为 BLIP-2
  • Φ L L M \Phi_{\mathbf{LLM}} ΦLLM 为 Llama-2-13b-chat
  • 多模态编码器由 ImageBind 提供
  • 时间窗口 T = 10 T=10 T=10,与预训练的 ImageBind的视频编码器 一致
  • K = 10 K=10 K=10

多模态编码器用于:

  1. 比较视频帧和字幕之间的相似性,从而找到与帧内容最匹配的字幕
  2. 比较视频片段和时间总结之间的相似性,通过聚合相似视频片段的得分来优化每帧的异常评分

4.1 与SOTA比较

比较了不同监督程度的多种方法,同时还引入了一些无训练基准(包括CLIP、ImageBind 和 LLaVa),具体来说:

  1. Zero-shot CLIP (ZS CLIP):
    • 使用预训练的编码器来计算每帧视频的嵌入向量
    • 计算每帧嵌入向量两个文本提示的嵌入向量之间的余弦相似度。这两个提示分别描述了标准场景和可疑或潜在犯罪活动场景
    • 余弦相似度用于softmax函数获得每帧的异常评分
    • 使用ViT-B/32作为ZS-CLIP的视觉编码器,并使用CLIP的文本编码器
  2. Zero-shot ImageBind (ZS IMAGEBIND):
    • 使用预训练的编码器来计算每帧视频的嵌入向量
    • 计算相似度并用于softmax函数获得每帧的异常评分
    • 使用视频嵌入向量进行相似度计算,因为ImageBind支持视频模态
    • 使用ViT-H/14作为ZS-IMAGEBIND(IMAGE,VIDEO)的视觉编码器,并使用CLIP的文本编码器
  3. LLAVA-1.5:
    • 直接查询每帧的异常评分
    • 使用与LAVAD相同的上下文提示来生成异常评分
    • 使用CLIP ViT-L/14作为视觉编码器,使用Vicuna-13B作为LLM

4.1.1 在UCF-Crime上的比较

如表1:

  • 原始的VLMs性能较差,这可能是因为它们大多被训练来关注前景对象,而不是图像中有助于判断异常的动作或背景信息
  • 基线LLAVA-1.5的性能还可以,因为它有文本提示
  • LAVAD性能最好,因为它还利用了时间总结描述,而不是单帧

零样本方法:通常只使用简单的文本提示,如“标准场景”和“可疑或潜在犯罪活动场景”,这些提示直接与视频帧进行相似度比较。

LLAVA-1.5:使用更丰富的上下文提示,可能包含更多关于场景的信息和更复杂的语言模型处理,使得评分更加准确和上下文相关。

表1:在 UCF-Crime 上与SOTA方法和基线的性能比较。

在这里插入图片描述

4.1.2 在XD-Violence上的比较

表2:在 XD-Violence 上与SOTA方法和基线的性能比较。

在这里插入图片描述

4.1.3定性结果

图5:定性结果。第一行是UCF-Crime的,第二行是XD-Violence的。可以发现正确的时间总结描述会促进评分,证明了 分数、视觉内容和描述 之间的相关性。
在这里插入图片描述

4.2 消融实验

4.2.1 每一个组件的影响

表3:在UCF-Crime上对每一个组件的消融实验。
在这里插入图片描述

4.2.2 上下文提示中的任务先验

对两方面进行了消融:

  • 模拟先验
  • 异常先验

可以发现,如果两种先验同时使用不会增加性能,可能是因为更严格的背景会限制广泛的异常

表4:在UCF-Crime上使用不同的先验的消融实验。

  1. 基本的上下文提示:“How would you rate the scene described on a scale from 0 to 1, with 0 representing a standard scene and 1 denoting a scene with suspicious activities?”
  2. 仅使用异常先验:“How would you rate the scene described on a scale from 0 to 1, with 0 representing a standard scene and 1 denoting a scene with suspicious or potentially criminal activities?”
  3. 仅使用模拟先验:“If you were a law enforcement agency, how would you rate the scene described on a scale from 0 to 1, with 0 representing a standard scene and 1 denoting a scene with suspicious activities?”
  4. 两种先验都使用:“If you were a law enforcement agency, how would you rate the scene described on a scale from 0 to 1, with 0 representing a standard scene and 1 denoting a scene with suspicious or potentially criminal activities?”

在这里插入图片描述

4.2.3 在优化分数时 K K K的影响

AUC 在 K K K 接近 9 9 9 时会达到饱和

图6:在UCF-Crime上 K K K的影响。
在这里插入图片描述

五、结论

  1. 提出LAVAD,是第一个无训练VAD方法,采用语言驱动来估计分数,利用现成的LLM和VLM
    • 利用图像-文本相似性来清理由字幕生成模型提供的噪声字幕
    • 利用LLM聚合场景的时间动态并估算异常评分
    • 根据视频-文本相似性,通过聚合语义相近帧的得分来优化异常评分
  2. 在UCF-Crime和XD-Violence上评估了LAVAD的性能,结果很好,且不需要进行训练和额外的数据收集
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/974393
推荐阅读
相关标签
  

闽ICP备14008679号