Harnessing Large Language Models for Training-free Video Anomaly Detection

news2024/12/29 9:05:12

在这里插入图片描述
标题:利用大型语言模型实现无训练的视频异常检测
原文链接:https://openaccess.thecvf.com/content/CVPR2024/papers/Zanella_Harnessing_Large_Language_Models_for_Training-free_Video_Anomaly_Detection_CVPR_2024_paper.pdf
源码链接:https://lucazanella.github.io/lavad/
发表:CVPR-2024

文章目录

  • Abstract
  • 1. Introduction
  • 2. Related Work
  • 3. Training-Free VAD
    • 3.1. Problem formulation
    • 3.2. Are LLMs good for VAD?
    • 3.3. LAVAD: LAnguage-based VAD
  • 4. Experiments
    • 4.1. Comparison with state of the art
    • 4.2. Ablation study
  • 5. Conclusions

Abstract

视频异常检测(VAD)旨在定位视频中的异常事件。现有的研究大多依赖于训练深度模型,以学习正常性分布,使用视频级监督、单类监督或无监督设置。基于训练的方法容易受到领域特定的限制,因此在实际部署中成本较高,因为任何领域变化都需要重新收集数据并重新训练模型。本文与以往的工作大为不同,提出了基于语言的视频异常检测方法(LAVAD),这是一种在新颖的无训练范式下处理视频异常检测的方法,利用了预训练的大型语言模型(LLMs)和现有的视觉-语言模型(VLMs)的能力。我们利用基于VLM的字幕生成模型,为每个测试视频的每一帧生成文本描述。通过文本场景描述,我们进一步设计了一个提示机制,激发LLMs在时间聚合和异常评分估计方面的能力,从而将LLMs转化为一种有效的视频异常检测器。我们还利用了对齐模态的VLMs,并提出了基于跨模态相似性的有效技术,用于清理噪声字幕并精细化LLM-based异常评分。我们在两个大规模数据集(UCF-Crime和XD-Violence)上评估了LAVAD,这些数据集包含了真实世界的监控场景,结果表明,LAVAD在不需要任何训练或数据收集的情况下,优于无监督和单类方法。

1. Introduction

视频异常检测(VAD)旨在时间上定位给定视频中与正常模式显著偏离的事件,即异常事件。VAD具有挑战性,因为异常通常是未定义的,并且依赖于上下文,且在现实世界中很少发生。文献[10]通常将VAD视为一种分布外检测问题,并通过不同级别的监督(见图1)来学习正常分布,包括全监督(即对正常和异常视频的帧级监督)[1, 32],弱监督(即对正常和异常视频的全视频级监督)[11, 13, 15, 24, 28, 35],单类(即仅正常视频)[18, 20, 21, 25, 37, 38],以及无监督(即未标注的视频)[30, 31, 40]。虽然更多的监督有助于获得更好的结果,但人工标注的成本是不可承受的。另一方面,无监督方法假设异常视频构成训练数据的一定比例,这在实践中是一个脆弱的假设,无法在没有人工干预的情况下实施。
在这里插入图片描述

图1。我们介绍了视频异常检测(VAD)的第一种无训练方法,与目前最先进的基于不同程度监督的所有训练方法不同。我们的建议LAVAD利用模态对齐的视觉语言模型(vlm)来查询和增强大型语言模型(大型语言模型)生成的异常分数。

至关重要的是,现有的每种方法都需要一个训练过程来建立一个准确的VAD系统,这带来了一些限制。一个主要的担忧是泛化:在特定数据集上训练的VAD模型往往在不同环境(例如,白天与夜间场景)拍摄的视频中表现较差。另一个方面,特别是与VAD相关的,是数据收集的挑战,尤其是在某些应用领域(如视频监控)中,隐私问题可能会阻碍数据的获取。这些考虑促使我们探索一个新颖的研究问题:我们能否开发一个无需训练的视频异常检测方法?本文旨在回答这个具有挑战性的问题。

开发一个无训练的VAD模型是困难的,因为缺乏针对目标设置的显式视觉先验。然而,这些先验可能通过大型基础模型来获取,这些模型以其泛化能力和广泛的知识封装而著称。因此,我们探讨了将现有的视觉-语言模型(VLMs)与大型语言模型(LLMs)结合,以解决无训练VAD的潜力。在我们的初步发现基础上,我们提出了第一个无训练的基于语言的视频异常检测方法(LAVAD),它共同利用了预训练的VLMs和LLMs进行VAD。

LAVAD首先利用现成的字幕生成模型为每一帧视频生成文本描述。通过引入基于字幕和视频帧之间跨模态相似性的清理过程,解决了字幕中的潜在噪声问题。为了捕捉场景的动态变化,我们使用LLM对一个时间窗口内的字幕进行总结。这个总结被用来提示LLM为每一帧提供异常评分,然后通过聚合具有语义相似时间总结的帧之间的异常评分来进一步精细化该评分。

我们在两个基准数据集(UCF-Crime [24] 和 XD-Violence [36])上评估了LAVAD,实验证明我们的无训练方法在这两个数据集上优于无监督和单类VAD方法,证明了在没有训练和数据收集的情况下处理VAD是可能的。

贡献。总之,我们的贡献如下:

  • 我们首次研究了无训练VAD问题,倡导其在实际场景中部署VAD系统的重要性,因为在这些场景中可能无法进行数据收集。
  • 我们提出了LAVAD,这是第一个基于语言的无训练VAD方法,利用LLMs仅通过场景描述检测异常。
  • 我们引入了基于跨模态相似性的创新技术,结合预训练的VLMs来减轻噪声字幕并精细化基于LLM的异常评分,有效提高了VAD性能。
  • 实验表明,在没有任务特定监督和训练的情况下,LAVAD在无监督和单类VAD方法中取得了具有竞争力的结果,为未来VAD研究开辟了新的视角。

2. Related Work

视频异常检测(VAD)。现有的基于训练的VAD方法的文献可以根据监督的级别分为四类:监督式、弱监督式、单类分类和无监督式。监督式VAD依赖于帧级标签来区分正常帧和异常帧[1, 32]。然而,由于其高昂的标注成本,这种方法受到的关注较少。弱监督式VAD方法通过视频级标签进行训练(如果至少一帧是异常的,则整个视频被标记为异常,否则视为正常)[11, 13, 15, 24, 28, 35]。这些方法中的大多数利用3D卷积神经网络进行特征学习,并使用多实例学习(MIL)损失进行训练。单类VAD方法仅在正常视频上进行训练,尽管需要人工验证以确保收集的数据是正常的。一些方法[18, 20, 21, 25, 37, 38]已被提出,例如考虑生成模型[37]或伪监督方法,其中伪异常实例是从正常训练数据中合成的[38]。最后,无监督VAD方法不依赖于预定义标签,而是利用正常和异常视频,假设大多数视频包含正常事件[26, 27, 30, 31, 40]。这一类别中的大多数方法使用生成模型来捕捉视频中的正常数据模式。特别地,生成对抗学习(GCL)[40]采用交替训练:自编码器重建输入特征,并通过重建误差生成伪标签,指导判别器的训练。Tur等人[30, 31]使用扩散模型从噪声特征中重建原始数据分布,并根据去噪样本与原始样本之间的重建误差计算异常评分。其他方法[26, 27]通过使用OneClassSVM和iForest[16]生成的伪标签训练回归网络。

与此不同的是,我们完全绕过了数据收集和模型训练的需求,通过利用现有的大规模基础模型,设计了一个无训练的VAD流程。

LLMs用于视频异常检测(VAD)。近年来,LLMs已被探索用于检测不同应用领域中的视觉异常。Kim等人[12]提出了一种无监督方法,主要利用视觉-语言模型(VLMs)进行异常检测,其中ChatGPT仅用于生成描述正常和异常元素的文本。然而,该方法需要人工参与,根据特定的应用上下文来调整LLM的输出,并且还需要进一步训练以适应VLM。其他例子包括利用LLMs进行图像中的空间异常检测,针对机器人学[4]或工业应用[7]等特定场景。

与此不同,我们结合LLMs和VLMs,提出了第一个无训练的视频异常检测方法,专门用于处理视频中的时间异常检测,不需要任何训练和数据收集。

3. Training-Free VAD

在本节中,我们首先形式化定义了视频异常检测(VAD)问题及我们提出的无训练设置(第3.1节)。接着,我们分析了大型语言模型(LLMs)在为视频帧评分异常方面的能力(第3.2节)。最后,我们描述了LAVAD——我们提出的视频异常检测方法(第3.3节)。

3.1. Problem formulation

给定一个测试视频 V = [ I 1 , … , I M ] V = [I_1, \dots, I_M] V=[I1,,IM],包含 M M M 帧,传统的VAD方法旨在学习一个模型 f f f,该模型可以将每一帧 I ∈ V I \in V IV 分类为正常(分数为0)或异常(分数为1),即 f : I M → [ 0 , 1 ] M f : I_M \to [0, 1]^M f:IM[0,1]M,其中 I为图像空间。通常,f 是在一个由形如 ( V , y ) (V, y) (V,y) 的元组组成的数据集 D 上训练的。根据监督级别,y 可以是一个二进制向量(帧级标签,完全监督),一个二进制视频级标签(弱监督),一个默认值(单类),或缺失(无监督)。然而,在实际应用中,由于异常事件稀少以及视频本身可能涉及隐私问题,收集标签 y 可能是昂贵的。此外,由于应用场景的不断变化,标签和视频数据可能需要定期更新。

与此不同,本文提出了一种新颖的VAD设置,称为无训练VAD。在这种设置下,我们旨在仅使用预训练模型在推理阶段估计每一帧 I ∈ V I \in V IV 的异常评分,即不涉及任何训练或微调,不需要使用训练数据集 D

3.2. Are LLMs good for VAD?

3.2. LLM是否适合VAD?

我们提出通过利用最近在大型语言模型(LLMs)方面的进展来解决无训练的视频异常检测(VAD)问题。由于LLMs在VAD中的应用仍处于起步阶段[12],我们首先分析了LLMs在基于视频帧的文本描述生成异常评分方面的能力。

为了实现这一点,我们首先利用一种最先进的图像描述生成模型 Φ C \Phi_C ΦC,即BLIP-2 [14],为每一帧 I ∈ V I \in V IV 生成文本描述。然后,我们将异常评分估计问题视为一个分类任务,要求LLM Φ L L M \Phi_{LLM} ΦLLM从一个在区间 [0, 1] 上均匀采样的11个值中选择一个分数,其中0表示正常,1表示异常。我们得到的异常评分如下所示:
在这里插入图片描述
其中, P C P_C PC 是一个上下文提示,用于为LLM提供VAD的先验信息, P F P_F PF 指导LLM输出所需的格式,以便自动化文本解析, ∘ \circ 是文本拼接操作。我们设计了 P C P_C PC 来模拟VAD系统的潜在最终用户,例如执法机构,因为我们通过经验观察到模拟用户行为能够有效地引导LLM的输出生成。例如,我们可以将 P C P_C PC 构造为:“如果你是执法机关,你会如何评价描述中的场景,使用0到1的评分,其中0代表标准场景,1代表存在可疑活动的场景?”需要注意的是, P C P_C PC 并不编码任何关于异常类型的先验信息,而仅提供上下文信息

最后,使用从公式 (1) 中获得的异常评分,我们通过标准的接收操作特征曲线(ROC曲线)下面积(AUC)来衡量VAD的性能。图2报告了在UCF-Crime数据集[24]的测试集上,使用不同变体的BLIP-2生成帧描述,并使用不同的LLMs,包括Llama [29]和Mistral [9],来计算帧级异常评分的结果。作为参考,我们还提供了无监督设置下的最新性能(最接近我们设置的情况)[27],以及随机评分作为下限。图示表明,最新的LLMs具备异常检测能力,显著优于随机评分。然而,相较于经过训练的最先进方法,即便在无监督设置下,这一性能仍然较低。
在这里插入图片描述

图2。在UCF-Crime测试集上,通过查询带有各种字幕模型的视频帧文本描述的大型语言模型, VAD性能(AUC ROC)的条形图。不同的条形图对应不同的字幕模型BLIP-2[14],不同的颜色表示两种不同的大型语言模型[9,29]。作为参考,我们还用红色虚线表示表现最好的无监督方法[27]的性能,用灰色虚线表示随机分类器的性能。

我们观察到,LLMs性能的两个方面可能是限制因素。首先,帧级描述可能非常嘈杂:描述可能不完整或未能完全反映视觉内容(见图3)。尽管使用了BLIP-2 [14],这一最先进的图像描述生成模型,但一些描述依然出现错误,导致异常评分的不可靠。其次,帧级描述缺乏关于全局上下文和场景动态的细节,而这些是建模视频时的关键要素。在接下来的部分中,我们将解决这两个限制,并提出LAVAD,这是首个无训练的视频异常检测方法,结合LLM进行异常评分,并与对齐的视觉-语言模型(VLMs)共同使用。
在这里插入图片描述

图3。来自UCF-Crime的视频Shooting033,由Llama b[29]预测的随时间变化的异常分数。我们突出显示了一些带有相关BLIP-2标题的样本帧,以证明标题可能在语义上有噪声或不正确(红色边界框用于异常预测,而蓝色边界框用于正常预测)。真实值异常被突出显示。特别是真实值异常内蓝色边界框包围的帧的标题,由于大型语言模型给出的异常分数较低,无法准确地表示视觉内容,导致分类错误。

3.3. LAVAD: LAnguage-based VAD

在这里插入图片描述

图4. 我们提出的LAVAD架构,用于解决无训练VAD问题。对于每个测试视频V ,我们首先使用一个描述生成模型为每帧 I i ∈ V I_i \in V IiV 生成一个描述 C i C_i Ci,形成一个描述序列 C C C。我们的图像-文本描述清理组件通过跨模态相似性处理噪声和错误的原始描述。我们用一个与图像嵌入 E I ( I i ) E_I(I_i) EI(Ii)最为对齐的描述 C ^ i ∈ C \hat{C}_i \in C C^iC 替换原始描述,从而得到一个清理后的描述序列 C ^ \hat{C} C^。为了考虑场景上下文和动态性,我们的基于LLM的异常评分组件进一步通过在每个 I i I_i Ii 周围的时间窗口内聚合清理后的描述,通过提示LLM生成一个时间摘要 S i S_i Si,从而形成一个摘要序列 S S S。然后,LLM被查询以根据每个帧的 S i S_i Si提供一个异常评分,从而获得所有帧的初步异常评分 a。最后,我们的视频-文本评分精炼组件通过聚合那些其摘要的文本嵌入与围绕 I i I_i Ii的视频片段 V i V_i Vi的表示 E V ( V i ) E_V(V_i) EV(Vi)最为对齐的帧的初步异常评分 a i a_i ai,对每个 a i a_i ai 进行精炼,得到最终的异常评分 a ~ \tilde{a} a~,用于检测视频中的异常(异常帧被突出显示)。

LAVAD将VAD函数 f 分解为五个元素(见图4)。与初步研究中的方法一样,前两个元素是图像描述模块 Φ C \Phi_C ΦC,将图像映射到语言空间 T 中的文本描述,即 Φ C : I → T \Phi_C : I \to T ΦC:IT,以及LLM Φ L L M \Phi_{LLM} ΦLLM,通过语言查询生成文本,即 Φ L L M : T → T \Phi_{LLM} : T \to T ΦLLM:TT。其他三个元素是三个编码器,分别将输入表示映射到共享的潜在空间 Z 。具体来说,图像编码器 E I : I → Z E_I : I \to Z EI:IZ,文本编码器 E T : T → Z E_T : T \to Z ET:TZ,以及视频编码器 E V : V → Z E_V : V \to Z EV:VZ用于视频。需要注意的是,这五个元素均涉及仅使用现成的冻结模型。

基于初步分析中的积极发现,LAVAD利用 Φ L L M \Phi_{LLM} ΦLLM Φ C \Phi_C ΦC来估算每一帧的异常评分。我们设计LAVAD以解决帧级描述中噪声和缺乏场景动态性的限制,通过引入三个组件:i) 通过图像-文本表示 E I E_I EI E T E_T ET进行的图像-文本描述清理ii) 基于LLM的异常评分,通过 Φ L L M \Phi_{LLM} ΦLLM编码时间信息iii) 通过视频-文本相似性进行的异常评分精炼,使用 E V E_V EV E T E_T ET 来提高评分精度。以下将详细描述每个组件。

图像-文本描述清理。对于每个测试视频 V,我们首先使用 Φ C \Phi_C ΦC为每一帧 I i ∈ V I_i \in V IiV 生成一个描述 C i C_i Ci。具体来说,我们将 C = [ C 1 , … , C M ] C = [C_1, \dots, C_M] C=[C1,,CM] 表示为一组描述,其中 C i = Φ C ( I i ) C_i = \Phi_C(I_i) Ci=ΦC(Ii)。然而,正如在3.2节所示,原始描述可能存在噪声,例如句子中断或描述错误。为了缓解这一问题,我们依赖整个视频的描述集 C,假设在这个集合中存在能够更好地捕捉其各自帧内容的完整描述,这一假设在实践中经常得到验证,因为视频通常由静态摄像头以高帧率捕捉场景。因此,无论帧与帧之间的时间距离如何,帧之间的语义内容通常是重叠的。从这个角度来看,我们将描述清理视为在描述集 C 中找到与目标帧 I i I_i Ii 语义最接近的描述

形式化地,我们利用视觉-语言编码器,并通过 E T E_T ET 对每个描述进行编码,形成描述嵌入集 { E T ( C 1 ) , … , E T ( C M ) } \{ E_T(C_1), \dots, E_T(C_M) \} {ET(C1),,ET(CM)}。对于每个帧 I i ∈ V I_i \in V IiV,我们计算其最相似的语义描述,如下所示:
在这里插入图片描述
其中 ⟨ ⋅ , ⋅ ⟩ \langle \cdot, \cdot \rangle , 是余弦相似度, E I E_I EI是视觉-语言模型(VLM)的图像编码器。然后,我们构建清理后的描述集 C ^ = [ C ^ 1 , … , C ^ M ] \hat{C} = [\hat{C}_1, \dots, \hat{C}_M] C^=[C^1,,C^M],将每个初始描述 C i C_i Ci 替换为其在 C 中检索到的对应描述 C ^ i \hat{C}_i C^i。通过执行描述清理过程,我们可以传播那些在语义上与视觉内容更一致的帧描述,无论它们的时间位置如何,从而改善或修正噪声描述

基于LLM的异常评分。虽然得到的清理后的描述序列 C ^ \hat{C} C^ 比初始描述集更为干净,但它缺乏时间信息。为了解决这个问题,我们利用LLM提供时间摘要。具体来说,我们定义一个围绕帧 I i I_i Ii 的 T 秒的时间窗口。在这个窗口内,我们均匀采样 N 帧,形成一个视频片段 V i V_i Vi 和一个描述子序列 C ^ i = { C ^ n } n = 1 N \hat{C}_i = \{ \hat{C}_n \}_{n=1}^N C^i={C^n}n=1N。然后,我们可以用 C ^ i \hat{C}_i C^i和一个提示 P S P_S PS查询LLM,获得围绕帧 I i I_i Ii 的时间摘要 S i S_i Si
在这里插入图片描述
其中,提示 P S P_S PS 形成如下:“请基于以下场景的时间描述,简要总结发生了什么。请不要包含不必要的细节或描述。”

结合公式(3)与公式(2)的精炼过程,我们获得了一个比 C i C_i Ci 更具语义和时间信息的帧描述 S i S_i Si。接下来,我们可以使用 S i S_i Si 查询LLM,估算异常评分。按照第3.2节中描述的相同提示策略,我们要求 Φ L L M \Phi_{LLM} ΦLLM给每个时间摘要 S i S_i Si 分配一个评分 a i a_i ai 在区间 [0, 1] 内。我们得到的评分为:
在这里插入图片描述
其中,和第3.2节一样, P C P_C PC 是一个包含VAD上下文先验的上下文提示, P F P_F PF提供所需输出格式的信息。

视频-文本评分精炼。通过使用公式(4)查询LLM获得视频中每帧的初始异常评分 a = [ a 1 , … , a M ] a = [a_1, \dots, a_M] a=[a1,,aM]。然而,a 完全基于它们摘要中编码的语言信息,而没有考虑整个评分集。因此,我们进一步通过利用视觉信息来聚合来自语义相似帧的评分,从而对这些评分进行精炼。具体来说,我们使用 E V E_V EV 对围绕 I i I_i Ii的视频片段 V i V_i Vi进行编码,并使用 E T E_T ET对所有的时间摘要进行编码。我们定义 K i K_i Ki为与 V i V_i Vi 在 {S1, …, SM} 中最相似的 K 个时间摘要的索引集合,其中 V i V_i Vi和描述 S j S_j Sj之间的相似度是余弦相似度,即 ⟨ E V ( V i ) , E T ( S j ) ⟩ \langle E_V(V_i), E_T(S_j) \rangle EV(Vi),ET(Sj)⟩。我们获得精炼后的异常评分 a ~ i \tilde{a}_i a~i
在这里插入图片描述
其中, ⟨ ⋅ , ⋅ ⟩ \langle \cdot, \cdot \rangle , 表示余弦相似度。注意,公式(5)利用了公式(2)中的相同原理,通过使用帧之间的视觉-语言相似性(即视频/图像)来精炼帧级别的估计(即评分/描述)。最后,使用经过精炼的异常评分 a ~ = [ a ~ 1 , … , a ~ M ] \tilde{a} = [\tilde{a}_1, \dots, \tilde{a}_M] a~=[a~1,,a~M],我们通过阈值分割来识别异常时间窗口

“a 完全基于它们摘要中编码的语言信息,而没有考虑整个评分集”:
初步的异常得分仅反映了语言信息,并未考虑到不同帧之间的视觉信息或帧与帧之间的语义相似性。

4. Experiments

我们在两个数据集上验证了我们的train-free 方法 LAVAD,并与不同监督级别下训练的最新 VAD 方法以及训练-free 基线方法进行了比较。我们进行了广泛的消融实验,以验证我们在提出的组件、提示设计和评分精炼方面的主要设计选择。接下来,我们首先描述实验设置,包括数据集和性能指标。然后,我们在第 4.1 节展示并讨论结果,在第 4.2 节进行消融研究。更多的定性结果和小设计的消融实验请参见补充材料。

数据集。我们使用两个常用的 VAD 数据集来评估我们的方法,这些数据集特征是现实世界的监控场景,即 UCF-Crime [24] 和 XD-Violence [36]。

UCF-Crime 是一个大规模数据集,包含 1900 个长时间未剪辑的真实监控视频,覆盖 13 类真实世界的异常事件。训练集包含 800 个正常视频和 810 个异常视频,而测试集包括 150 个正常视频和 140 个异常视频。

XD-Violence 是另一个大规模暴力检测数据集,包含 4754 个带有音频信号和弱标签的未剪辑视频,这些视频收集自电影和 YouTube。XD-Violence 捕获了 6 类异常,并且被划分为 3954 个视频的训练集和 800 个视频的测试集。

性能指标。我们使用帧级接收操作特征(ROC)曲线下的面积(AUC)来衡量 VAD 性能,因为该指标与检测任务的阈值选择无关。对于 XD-Violence 数据集,我们还报告平均精度(AP),即帧级精度-召回曲线下的面积,遵循 [36] 中的既定评估协议。

实现细节。为了提高计算效率,我们每隔 16 帧对视频进行采样。我们使用 BLIP-2 [14] 作为字幕生成模块 Φ C \Phi_C ΦC。特别地,我们在图像-文本字幕清洗技术中考虑了 BLIP-2 模型的多个变体。有关这些变体的详细分析,请参见补充材料。我们使用 Llama-2-13b-chat [29] 作为我们的 LLM 模块 Φ L L M \Phi_{LLM} ΦLLM。我们使用 ImageBind [6] 提供的多模态编码器。具体来说,时间窗口设置为 T = 10 T = 10 T=10秒,这与 ImageBind 的预训练视频编码器一致。我们在视频-文本评分精炼中采用 K = 10 K = 10 K=10

4.1. Comparison with state of the art

我们将LAVAD与最先进的方法进行了比较,包括无监督方法 [26, 27, 30, 31, 40]、单类方法 [8, 19, 23, 24, 33] 和弱监督方法 [2, 5, 11, 13, 15, 15, 24, 28, 34–36, 39–42]。此外,由于上述方法都没有专门针对训练-free VAD(视频异常检测)进行设计,我们还引入了几个基于VLM(视觉语言模型)的训练-free基线方法,即CLIP [22]、ImageBind [6] 和LLaVa [17]。
具体来说,我们介绍了零样本 CLIP [22](ZS CLIP)和零样本 ImageBind [6](ZS IMAGEBIND)。对于这两个基线方法,我们利用它们的预训练编码器,通过计算每个帧嵌入与两个提示词的文本嵌入的余弦相似度来获取异常得分:一个标准场景和一个具有可疑或潜在犯罪活动的场景。然后,我们应用 softmax 函数将余弦相似度转换为每帧的异常得分。由于 ImageBind 还支持视频模态,我们包括了 ZS IMAGEBIND(视频)方法,使用视频嵌入与这两个提示词的余弦相似度。我们为 ZS-CLIP 选择了 ViT-B/32 [3] 作为视觉编码器,为 ZS-IMAGEBIND(图像,视频)选择了 ViT-H/14 [3],并都使用 CLIP 的文本编码器 [22]。最后,我们介绍了基于 LLAVA-1.5 的基线方法,在此方法中,我们直接查询 LLaVa [17],使用与我们相同的上下文提示词为每帧生成异常得分。LLAVA-1.5 使用 CLIP ViT-L/14 [22] 作为视觉编码器,并使用 Vicuna-13B 作为 LLM。
在这里插入图片描述在这里插入图片描述

表1展示了在 UCF-Crime 数据集 [24] 上与最先进方法及我们提出的训练-free基线方法的全面比较结果。值得注意的是,我们的方法在没有任何训练的情况下,与单类和无监督基线相比,表现优越,AUC ROC 得分更高,相比 GCL [40] 提升了 +6.08%,与当前最先进的 DyAnNet [27] 相比提升了 +0.52%。
此外,显然训练-free VAD 是一个具有挑战性的任务,直接应用 VLMs 于 VAD(如 ZS CLIP、ZS IMAGEBIND(图像)和 ZS IMAGEBIND(视频))导致了较差的 VAD 性能。VLMs 通常主要训练用于关注图像中的前景物体,而不是图像中的背景信息或有助于判断异常的动作信息。这可能是 VLMs 在 VAD 任务中表现不佳的主要原因。
基线 LLAVA-1.5,通过直接提示每帧的异常得分,取得了比直接使用零样本 VLM 更高的 VAD 性能。然而,其性能仍然不及我们的方法,因为我们通过利用更丰富的时间场景描述来进行异常估计,而不是仅依赖于单帧数据。时间总结的类似效果也在我们的消融研究中得到了验证(见表3)。我们还报告了在 XD-Violence 数据集上与最先进方法和我们的基线方法的比较结果,结果见表2。我们的LAVAD在所有单类和无监督方法中表现出色,特别是在 AUC ROC 上,相比最好的无监督方法 RareAnom [26] 提升了 +17.03%。
在这里插入图片描述

图5。我们展示了LAVAD在四个测试视频上获得的定性结果,其中两个视频(上一行)来自UCF-Crime,两个视频来自XD-Violence(下一行)。对于每个视频,我们绘制了通过我们的方法计算的帧的异常分数。我们显示了一些关键帧和它们最一致的时间摘要(蓝色边界框用于正常帧预测,红色边界框用于异常帧预测),说明了预测的异常评分、视觉内容和描述之间的相关性。真实值异常被突出显示。

定性结果

图5展示了LAVAD在 UCF-Crime 和 XD-Violence 中的定性结果,标出了部分关键帧及其对应的时间总结。在三段异常视频中(第1行,第1列和第2行),我们可以看到异常事件发生时关键帧的时间总结准确地描述了视觉内容,并帮助 LAVAD 正确识别异常。在正常视频722(第1行,第2列)的情况下,我们可以看到 LAVAD 在整个视频中始终预测出较低的异常得分。有关测试视频的更多定性结果,请参见补充材料。

4.2. Ablation study

在本节中,我们展示了在 UCF-Crime 数据集上进行的消融研究。我们首先评估了 LAVAD 中每个提出组件的有效性。然后,我们展示了在提示 LLM 估计异常得分时,任务相关的先验信息在上下文提示中的影响。最后,我们展示了在视频-文本得分精炼组件中,聚合 K 个语义最接近帧时 K 值的影响。
在这里插入图片描述

每个提出组件的有效性
我们通过对 LAVAD 方法的不同变体进行消融实验,以证明三个提出组件的有效性,包括图像-文本字幕清理(Image-Text Caption Cleaning)、基于 LLM 的异常得分(LLM-based Anomaly Score)和视频-文本得分精炼(Video-Text Score Refinement)。表3展示了 LAVAD 所有消融变体的结果。当省略图像-文本字幕清理组件(第1行),即 LLM 仅利用原始字幕进行时间总结并进行精炼时,VAD 性能相较于 LAVAD(第4行)在 AUC ROC 上下降了 -3.8%。如果不进行时间总结,仅依赖清理后的字幕进行精炼(第2行),我们观察到 AUC ROC 显著下降了 -7.58%,表明时间总结是 LLM 基于异常得分的有效促进因子。最后,如果仅使用基于清理后的字幕进行时间总结的异常得分,而没有进行语义相似帧的最终聚合(第3行),则 AUC ROC 相较于 LAVAD 显著下降了 -7.49%,证明视频-文本得分精炼在提高 VAD 性能方面也起到了重要作用。
在这里插入图片描述

上下文提示中的任务先验
我们研究了不同先验信息在上下文提示 PC 中的影响,结果见表4。具体而言,我们在两个方面进行了实验,即伪装(impersonation)和异常先验(anomaly prior),我们认为这两者可能有助于 LLM 的估计。伪装有助于 LLM 从 VAD 系统潜在最终用户的角度处理输入,而异常先验(例如,异常是犯罪活动)可能为 LLM 提供更相关的语义上下文。我们通过不同的上下文提示 PC 对 LAVAD 进行消融实验。我们首先使用基本上下文提示:“请问您如何评估描述中的场景,评分范围从 0 到 1,其中 0 代表标准场景,1 代表可疑活动的场景?”(第1行)。我们仅通过在“可疑活动”后添加“或潜在犯罪活动”来注入异常先验(第2行)。我们仅加入伪装,通过在基本提示前加上“如果你是执法机构,”来体现伪装(第3行)。最后,我们将两者先验信息结合到基本上下文提示中(第4行)。如表4所示,对于 UCF-Crime 数据集中的视频,异常先验对 LLM 在评估异常时的影响似乎微乎其微,而伪装使得 AUC ROC 相比仅使用基本提示的情况提高了 +0.96%。有趣的是,将两个先验信息结合并没有进一步提升 AUC ROC。我们推测,过于严格的上下文可能限制了对更广泛异常的检测。

K 值对异常得分精炼的影响
在这个实验中,我们探讨了在视频-文本得分精炼过程中,用于精炼每帧异常得分的语义相似时间总结的数量(即 K)对 VAD 性能的影响。如图6所示,随着 K 值的增加,AUC ROC 指标持续提高,并在 K 接近 9 时趋于饱和。该图确认了考虑语义相似帧对获得更可靠的异常得分的贡献。
在这里插入图片描述

5. Conclusions

在这项工作中,我们提出了 LAVAD,这是一种开创性的无训练视频异常检测(VAD)方法。LAVAD 采用了基于语言的路径来估计异常得分,利用了现成的大型语言模型(LLM)和视频语言模型(VLM)。LAVAD 具有三个主要组件,第一个组件使用图像-文本相似性清理由字幕生成模型提供的噪声字幕;第二个组件利用 LLM 对场景动态进行时间上的聚合并估计异常得分;最后一个组件通过根据视频-文本相似性聚合语义相近帧的得分来精炼异常得分。我们在 UCF-Crime 和 XD-Violence 数据集上对 LAVAD 进行了评估,结果显示,在无监督和单类设置下,LAVAD 相比基于训练的方法表现优越,且无需额外的训练和数据收集。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2255333.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter解压文件并解析数据

Flutter解压文件并解析数据 前言 在 Flutter 开发中,我们经常需要处理文件的读取和解压。 这在处理应用数据更新、安装包、存档文件等场景中尤为常见。 本文将介绍如何在Flutter中使用archive插件来解压文件并解析数据。 准备 在开始之前,我们需要…

论文阅读:Single-cell transcriptomics of 20 mouse organs creates a Tabula Muris

The Tabula Muris Consortium., Overall coordination., Logistical coordination. et al. Single-cell transcriptomics of 20 mouse organs creates a Tabula Muris. Nature 562, 367–372 (2018). 论文地址:https://doi.org/10.1038/s41586-018-0590-4 代码地址…

【算法】模拟

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:替换所有的问号 二:提莫攻击 三:z字形变换 四:外观…

MongoDB整合SpringBoot

MongoDB整合SpringBoot 环境准备 1.引入依赖 <!--spring data mongodb--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 2.配置yml spr…

【简洁明快】使用python读取数据建立pptx (python-pptx图文调整案例)

使用python自动读取数据建立pptx 前言如何使用 Python 自动生成 PPTX第一步&#xff1a;安装所需库第二步&#xff1a;创建一个新的 PPTX第三步&#xff1a;添加幻灯片第四步&#xff1a;添加内容添加文本添加图片第五步&#xff1a;保存 PPTX 图文实操案例&#xff08;自动读取…

三维扫描检测在汽车制造中的应用

三维扫描&#xff0c;通过先进三维扫描技术获取产品和物体的形面三维数据&#xff0c;建立实物的三维图档&#xff0c;满足各种实物3D模型数据获取、三维数字化展示、3D多媒体开发、三维数字化存档、逆向设计、产品开发、直接3D打印制造或辅助加工制造等一系列的应用。 三维扫描…

flyway执行sql遇到变量执行报错解决

前两天在公司使用flyway工具执行sql时&#xff0c;开发写的sql里面有变量&#xff0c;于是这个flyway工具不识别这个变量直接报错&#xff0c;不接着往下执行了。报错信息如下&#xff1a; flyway工具执行sql报错 information: No value provided for placeholder: ${ep1} 于是…

go语言的sdk项目搭建与git 操作标签tag并推送至远程仓库

在搭建 SDK 项目并结合 Git 操作标签&#xff08;Tag&#xff09;时&#xff0c;通常会涉及项目初始化、版本管理、Git 标签的创建与管理等内容。以下是一个完整的步骤指南&#xff0c;帮助您搭建 SDK 项目并学习如何使用 Git 标签。 ### 1. **搭建 SDK 项目** 首先&#xff…

机器学习算法的核心理论小总结

机器学习算法的核心在于利用数据构建模型以解决实际问题&#xff0c;而理解其理论基础是高效应用的关键。本文从机器学习的基本概念出发&#xff0c;详细解析监督学习中的几种经典算法&#xff0c;如逻辑回归、决策树和支持向量机&#xff08;SVM&#xff09;。同时&#xff0c…

3.STM32通信接口之SPI通信---SPI实战(W25Q64存储模块介绍)《精讲》

上一节介绍了SPI的通信过程和方法&#xff0c;接下来就要进行STM32与外围模块通信了&#xff0c;这个模块是一块非易失型存储芯片&#xff0c;能够提供8MB的存储空间。接下来跟着Whappy脚步&#xff0c;进行探索新大陆吧&#xff01;【免费】W25Q64(中英文数据手册)资源-CSDN文…

第七节(1)、T型加减速转动【51单片机-TB6600驱动器-步进电机教程】

摘要&#xff1a;本节介绍步进电机T型加减速的控制方法&#xff0c;分2个小节&#xff0c;本小节主要内容为该控制方法的推导与计算&#xff0c;第二节对T型加减速进行了简化计算 一.加速阶段计算 1.1 计算时间与步数关系 根据位移公式可得&#xff1a; a n g l e 0 n ∗ s…

Python123_Python程序语言设计基础_Python基本图形绘制

turtle八边形绘制 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬ 描述 使用tur…

刘铁猛p3 C# 控制台程序引用System.Windows.Forms报错,无法引用程序集 解决方法

学习刘铁猛老师c#入门详解第三集 引用System.Windows.Forms时报错了 错误图例 为什么控制台应用添加项目引用里面为什么找不到任何项目&#xff0c;同时从com里面加的引用会出现警告&#xff1f; 其实是创建控制台程序的时候出错了 解决方法 重新创建控制台程序 选控制台应…

Linux下,用ufw实现端口关闭、流量控制(二)

本文是 网安小白的端口关闭实践 的续篇。 海量报文&#xff0c;一手掌握&#xff0c;你值得拥有&#xff0c;让我们开始吧&#xff5e; ufw 与 iptables的关系 理论介绍&#xff1a; ufw&#xff08;Uncomplicated Firewall&#xff09;是一个基于iptables的前端工具&#xf…

Leetcode 每日一题 290.单词规律

目录 一、问题分析 二、解题思路 三、代码实现 四、复杂度分析 五、总结 在编程的世界里&#xff0c;我们常常会遇到各种有趣的字符串匹配问题。今天要探讨的就是这样一个问题&#xff1a;给定一种规律 pattern 和一个字符串 s&#xff0c;判断 s 是否遵循与 pattern 相同…

Java项目实战II基于微信小程序的旅游社交平台(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着移动互联网的迅猛发展&#xff0c;旅游已经成为人…

Mybatis-Plus的主要API

一、实体类操作相关API BaseMapper<T>接口 功能&#xff1a;这是 MyBatis - Plus 为每个实体类对应的 Mapper 接口提供的基础接口。它提供了一系列基本的 CRUD&#xff08;增删改查&#xff09;操作方法。例如insert(T entity)方法用于插入一条记录&#xff0c;d…

第一个 JSP 程序

一个简单的 JSP 程序&#xff1a; 使用 IDEA 开发工具新建一个 maven 项目&#xff0c;具体操作如图所示&#xff1a; 配置 Tomcat 服务器 项目结构如下图所示&#xff1a; 3. 修改 index.jsp 页面的代码&#xff1a; <% page language"java" contentType&q…

使用android studio写一个Android的远程通信软件(APP),有通讯的发送和接收消息界面

以下是使用 Android Studio 基于 Java 语言编写一个简单的 Android APP 实现远程通信&#xff08;这里以 TCP 通信为例&#xff09;的代码示例&#xff0c;包含基本的通信界面以及发送和接收消息功能。 1. 创建项目 打开 Android Studio&#xff0c;新建一个 Empty Activity …

记录下nginx接口代理配置问题

其中api和api1是前面定义的upstream&#xff0c;ip相同只是端口不同。 一开始/api1/直接 像api一样 proxy_pass http://api1这样是不行的&#xff0c;因为会代理到 后端的 /api1/...接口&#xff0c;而后端实际接口地址是 /api/..... 所以必须像上面写法才能将外网的 /api…