遵循规则:利用大语言模型进行视频异常检测的推理
文章目录
- 速览
- 摘要
- 01 引言
- 02 相关工作
- 视频异常检测
- 大语言模型
- 03 归纳
- 3.1 视觉感知
- 3.2 规则生成
- Normal and Anomaly (正常与异常)
- Abstract and Concrete (抽象与具体)
- Human and Environment (人类与环境)
- 3.3 规则聚合
- 4 演绎
- 4.1 感知平滑
- 初始异常匹配
- 指数多数平滑(Exponential Majority Smoothing)
- 第一步:EMA
- 第二步:多数投票
- 异常分数(Anomaly Score)
- 描述修改(Description Modification)
- 4.2 鲁棒推理
- 05 实验
- 5.1 实验设置
- 数据集
- 评估指标
- 实现细节
- 5.2 与基于LLM的基线比较
- 检测性能
- 推理性能
- 5.3 与最先进方法的比较
- 检测性能
- 领域适应性
- 5.4 消融研究
- 策略的消融研究
- 规则数量
- 规则质量
- 其他策略
- 超参数的消融研究
- 规则聚合
- 感知平滑
- 06 结论
Follow the Rules: Reasoning for Video Anomaly Detection with Large Language Models
ECCV’24
Johns Hopkins University (约翰霍普金斯大学) ; Honda Research Institute USA (本田研究所美国分部)
速览
动机
现有的视频异常检测(VAD)方法在结果输出时,几乎没有提供推理依据。这种缺乏透明度的情况限制了这些方法在实际部署中的应用,尤其在公众信任方面造成了阻碍。
方法
归纳阶段:
- 随机选择正常帧: 从训练集中随机选取若干正常视频帧。
- 生成帧描述: 使用视觉语言模型(VLM)为每帧生成描述。
- 总结正常规则: 利用大语言模型(LLM)根据帧描述总结出正常行为的规则。
- 推导异常规则: 通过对比正常规则,推导出异常行为的规则。
- 规则聚合: 采用规则聚合技术,筛选并保留多次出现的有效规则。
演绎阶段:
- 生成测试帧描述: 为每个测试视频帧生成描述。
- 与规则匹配: 使用LLM将测试帧描述与已生成的正常和异常规则进行匹配。
- 判断是否异常: 若描述中包含异常关键词,则标记该帧为异常;否则标记为正常。
- 平滑处理: 结合指数移动平均(EMA)和平滑投票机制,优化检测结果。
- 修改描述: 修改那些平滑后与平滑前的分数不一致的帧的描述,就是去掉或加上包含的异常关键词。
- 再验证推理: 将修改后的描述和虚拟答案输入LLM进行验证,确认虚拟答案是否准确。
- 最终平滑: 对最终的检测分数再次使用EMA进行平滑处理。
实验
实验在四个标准VAD数据集上进行,分别为Ped2、Avenue、ShanghaiTech和UBnormal。实验结果表明,AnomalyRuler在这些数据集上的表现还不错。
摘要
视频异常检测(Video Anomaly Detection,VAD)在安全监控和自动驾驶等应用中至关重要。然而,现有的VAD方法在检测结果中几乎没有提供推理依据,从而阻碍了其在实际部署中的公众信任。在本文中,我们通过一种推理框架来处理VAD问题。尽管大语言模型(Large Language Models,LLMs)在推理能力方面展现了革命性进展,我们发现直接使用它们并不能很好地适用于VAD任务。具体来说,LLMs中预训练的隐式知识主要关注通用上下文,因此可能无法适用于所有实际的VAD场景,导致灵活性和准确性的不足。
为了解决这个问题,我们提出了 AnomalyRuler,这是一个基于规则的创新推理框架,用于结合LLMs进行VAD。AnomalyRuler 包括两个主要阶段:归纳和演绎。在归纳阶段,LLM通过少量正常参考样本
进行推理,总结这些正常模式以归纳出一组用于检测异常的规则。在演绎阶段,则按照归纳出的规则
对测试视频中的异常帧进行检测。此外,我们设计了规则聚合、感知平滑以及鲁棒推理策略
,以进一步增强 AnomalyRuler 的鲁棒性。
AnomalyRuler 是针对单类VAD任务的首个推理方法,仅需少量正常样本提示,无需进行全量训练,从而能够快速适应多种VAD场景。在四个VAD基准数据集上的全面实验表明,AnomalyRuler 在检测性能和推理能力方面达到了最新的研究水平。AnomalyRuler 是开源的,代码可在以下地址获取: https://github.com/Yuchen413/AnomalyRuler
01 引言
图1: 单类VAD方法的比较。在这个特定的安全应用示例中,仅“行走”被认为是正常的。测试帧包含“滑板运动”,因此被认为是异常的。
(a) 传统方法需要全量训练,并仅输出异常分数,缺乏推理能力。
(b) 直接使用LLM可能无法满足特定的VAD需求。例如,这里GPT-4V错误地将“滑板运动”识别为正常。
(c) 我们的AnomalyRuler通过归纳和演绎阶段,从少量正常参考帧中推导出规则,成功地将“滑板运动”正确识别为异常。
视频异常检测(Video Anomaly Detection,VAD)的目标是识别在监控视频中罕见或意料之外的异常活动。它在许多实际应用中具有广泛意义,包括安全(例如,暴力事件)、自动驾驶(例如,交通事故)等。由于异常在现实生活中稀少且呈现长尾分布,导致缺乏大规模、具有代表性的异常数据,这使得VAD成为一个具有挑战性的问题。
因此,单类VAD(又称无监督VAD)范式被优先采用,因为它假设仅有更容易获取的正常数据可用于训练。现有的大多数单类VAD方法通过自监督的预训练任务(如帧重建[16,25,27,36,45,53,54]和帧顺序分类[14,43,49])来建模正常模式。尽管这些传统方法在性能上表现良好,但它们只能输出异常分数,对其检测结果提供的推理依据有限(参见图1a)。这一缺陷阻碍了这些方法在实际产品中部署时赢得公众信任。
我们通过一个推理框架来解决VAD问题,以实现更加可信的系统。这一方向在现有文献中较少被探索。一种直观的方法是引入新兴的大语言模型(Large Language Models,LLMs)[1,7,19,38,39,47],这些模型在各种推理任务中展现了革命性的能力。然而,我们发现直接使用LLMs难以有效地执行VAD任务。具体而言,LLMs中预训练的隐式知识主要关注通用上下文,这意味着它可能无法始终契合特定实际场景中的VAD需求。换句话说,LLMs对异常的理解与某些场景中需要的异常定义之间存在不匹配。例如,GPT-4V[1]通常将“滑板”视为一种正常活动,而某些安全应用需要将其定义为异常活动,例如在受限的校园内(参见图1b)。然而,为每个应用场景通过微调LLMs注入特定知识的成本很高。这突显了灵活提示方法的重要性,该方法能够将LLMs的推理能力引导至不同的VAD应用场景。
为了解决上述问题,我们回顾了科学方法的基本过程,强调了推理的重要性,该过程以严谨的方式得出结论[4,41]。我们的动机来源于两种推理方式:归纳推理
(inductive reasoning),即从观察中推断一般性原则;以及演绎推理
(deductive reasoning),即根据已知前提得出结论。
在本文中,我们提出了 AnomalyRuler,这是一种基于LLMs推理的新型VAD框架。AnomalyRuler 包括两个主要阶段:归纳阶段和演绎阶段,如图1c所示。在归纳阶段,LLM通过少量正常样本的视觉描述作为参考,推导出一组用于判断正常性的规则。这里我们采用视觉语言模型(Vision-Language Model,VLM)[23,51]为每个输入视频帧生成描述。接下来,LLM通过对比正常规则,生成用于检测异常的规则。在演绎阶段,该过程同样是一个推理阶段,遵循归纳出的规则以识别测试视频序列中的异常帧。
此外,为应对VLM和LLM在感知和推理中的潜在误差,我们设计了多种策略,包括利用随机平滑
(randomized smoothing)[10]进行规则聚合以缓解归纳阶段的错误,通过提出的指数多数平滑
(Exponential Majority Smoothing)减少感知误差并增强时间一致性,以及通过复查机制
(recheck mechanism)实现可靠的推理输出。这些策略被集成到 AnomalyRuler 管道中,以进一步增强其检测的鲁棒性。
除了赋予VAD推理能力外,AnomalyRuler还具有以下几个优势。首先,AnomalyRuler 是一种新颖的少量正常样本提示方法(few-normal-shot prompting approach),仅需从训练集中使用少量正常样本作为参考即可推导出VAD规则,从而避免了传统单类VAD方法中昂贵的全量训练或微调整个训练集的需求。更重要的是,这种方法通过少量正常参考样本即可高效地将LLM的隐式知识重定向到不同的VAD应用场景。其次,AnomalyRuler 在跨数据集的领域适应性上表现出色,因为语言提供了一种一致的描述方式,能够跨越不同的视觉领域,例如,“行走”在不同的视觉数据中保持一致。这使得诱导规则可以应用于场景相似但视觉外观不同的数据集。
此外,AnomalyRuler 是一个通用框架,可以与VLM和LLM主干模型互补,兼容闭源模型(如GPT家族[1,39])和开源替代方案(如Mistral[19])。据我们所知,所提出的 AnomalyRuler 是针对单类VAD问题的首个推理方法。通过在四个VAD数据集上的大量实验,AnomalyRuler 展现了其最先进的性能、推理能力和领域适应性。
综上所述,本文的主要贡献包括以下三点:
- 我们提出了一种基于规则的推理框架用于结合LLMs的VAD任务,即 AnomalyRuler。据我们所知,这是针对单类VAD问题的首个推理方法。
- 我们提出的 AnomalyRuler 是一种新颖的少量正常样本提示方法,无需昂贵的全量微调,能够快速适应各种VAD场景。
- 我们提出了规则聚合、感知平滑和鲁棒推理策略,以增强 AnomalyRuler 的鲁棒性,从而实现最先进的检测性能、推理能力和领域适应性。
02 相关工作
视频异常检测
视频异常检测(Video Anomaly Detection,VAD)是一个具有挑战性的问题,因为异常数据稀缺且呈现长尾分布。因此,研究人员通常关注单类VAD(又称无监督VAD)范式[14,16,18,25,27,36,43,45,53,54],该方法仅使用正常数据进行训练。大多数单类方法通过自监督的预训练任务学习正常模式,例如帧重建[16,25,27,36,45,53,54]或帧顺序分类[14,43,49],其假设模型在异常数据上的预训练任务表现会较差。基于重建的方法[16,25,27,36,45,53,54]使用生成模型(如自编码器和扩散模型)进行帧重建或帧预测作为预训练任务。基于距离的方法[14,43,49]通过分类器完成如帧顺序分类的预训练任务。这些传统方法仅能输出异常分数,难以为检测结果提供合理的推理依据。
一些最近的研究开始探索在异常检测中利用VLMs或LLMs的可能性。Elhafsi等人[12]利用目标检测器[33]和LLM[7]在驾驶场景中分析语义异常。然而,该方法依赖于预定义的正常性和异常性概念,限制了其对不同场景的适应性,并且无法处理长尾的未定义异常。此外,该方法尚未在标准的VAD基准数据集[2,22,24,28]上进行评估。Cao等人[8]探索了使用GPT-4V进行异常检测,但直接使用该方法可能因GPT-4V隐式知识与特定VAD需求不匹配而表现不佳(如前所述)。Gu等人[15]采用大型VLM进行异常检测,但其专注于工业图像。尽管支持对话,该方法只能描述异常,而无法解释其检测背后的推理依据。Lv等人[31]在VAD框架中引入基于视频的LLM以提供检测解释,但需要对繁重的视频LLM进行三阶段训练。此外,该方法专注于弱监督的VAD,这是一个较为宽松的范式,需要使用异常数据及其标签进行训练。与这些工作不同,我们的 AnomalyRuler 提供了一种基于规则的推理方法,通过高效的少量正常样本提示实现快速适应各种VAD场景。
大语言模型
大语言模型(LLMs)[1,7,19,38,39,46,47]在自然语言处理领域取得了显著成功,并且最近被用于探索计算机视觉问题。诸如GPT家族[1,7,38,39]、LLaMA家族[46,47]和Mistral[19]等近期进展展示了其在理解和生成人类语言方面的显著能力。另一方面,大型视觉语言模型(VLMs)[1,21,23,34,44,51,57,58,60]在视觉和语言领域的桥接方面表现出潜力。例如,BLIP-2[21]利用Q-Former将视觉特征集成到语言模型中;LLaVA[23]通过视觉指令调优方法实现视觉和语言的理解;CogVLM[51]训练了一个视觉专家模块以增强大型VLM的视觉能力;Video-LLaMA[57]扩展LLM以理解视频数据。这些模型的参数化知识是为通用目的训练的,因此可能无法适用于所有VAD应用。
最近的一些研究探索了利用LLMs推理能力的方法。例如,链式思维(Chain-of-Thought, CoT)[11,52]指导LLMs通过多个较小的中间步骤解决复杂问题;从简到繁(Least-to-Most, LtM)[20,59]将复杂问题分解为多个更简单的子问题并按顺序解决。假设到理论(Hypotheses-to-Theories, HtT)[61]从有标签的训练数据中学习一个规则库用于推理。然而,在单类范式下针对VAD任务的推理方法仍然没有被深入探索。
图 2: AnomalyRuler管道图。AnomalyRuler管道由两个主要阶段组成:归纳和推理。归纳阶段包括:i) 视觉感知将正常参考帧转换为文本描述;ii) 规则生成基于这些描述推导规则,以确定正常性和异常性;iii) 规则聚合通过投票机制缓解规则中的错误。推理阶段包括:i) 视觉感知将连续帧转换为描述;ii) 感知平滑调整这些描述,考虑时间一致性,确保相邻帧具有相似特征;iii) 鲁棒推理重新检查先前的初步答案并输出推理结果。
03 归纳
归纳阶段旨在从少量正常参考帧中推导出一组规则以执行视频异常检测(VAD)。图2的顶部部分展示了归纳流程中的三个模块。视觉感知模块使用视觉语言模型(VLM),将少量正常参考帧作为输入,并输出帧描述。规则生成模块利用大语言模型(LLM)基于这些描述生成规则。规则聚合模块采用投票机制以减轻规则生成中的错误。在接下来的章节中,我们将详细讨论每个模块及其应用的策略。
3.1 视觉感知
我们设计了视觉感知模块作为管道的初始步骤。该模块利用视觉语言模型(VLM)将视频帧转换为文本描述。我们将 F normal = { f normal 0 , … , f normal n } F_{\text{normal}} = \{f_{\text{normal}_0}, \dots, f_{\text{normal}_n}\} Fnormal={fnormal0,…,fnormaln} 定义为少量正常参考帧集合,其中每个帧 f normal i ∈ F normal f_{\text{normal}_i} \in F_{\text{normal}} fnormali∈Fnormal 是从训练集中随机选择的。该模块输出每个正常参考帧的文本描述:
D normal = { VLM ( f normal i , p v ) ∣ f normal i ∈ F normal } D_{\text{normal}} = \{\text{VLM}(f_{\text{normal}_i}, p_v) \mid f_{\text{normal}_i} \in F_{\text{normal}}\} Dnormal={VLM(fnormali,pv)∣fnormali∈Fnormal}
其中, p v p_v pv 为提示语(prompt):“What are people doing? What are in the images other than people?”(“人们在做什么?图像中除了人之外还有什么?”)。与直接询问 “What are in the image?”(“图像中有什么?”)不同,我们设计了 p v p_v pv 来区分人类与环境,其具有以下优点:首先,它通过引导模型关注场景中特定的方面,提高了感知精度,确保没有细节被忽略。其次,它通过将任务分为两个子问题(即,人类活动的规则和环境对象的规则[20])简化了后续规则生成模块。我们将此策略称为“Human and Environment”。
3.2 规则生成
根据正常参考帧 D normal D_{\text{normal}} Dnormal 的文本描述,我们设计了一个规则生成模块,使用冻结的大语言模型(LLM)生成规则(记作 R R R)。形式化表示为:
R = { LLM ( d normal i , p g ) ∣ d normal i ∈ D normal } R = \{\text{LLM}(d_{\text{normal}_i}, p_g) \mid d_{\text{normal}_i} \in D_{\text{normal}}\} R={LLM(dnormali,pg)∣dnormali∈Dnormal}
其中, p g p_g pg 是附录A.2中详细说明的提示语(prompt)。我们通过三种策略设计 p g p_g pg,以指导LLM从观察到的正常模式中逐步推导规则:
Normal and Anomaly (正常与异常)
提示 p g p_g pg 引导LLM执行对比操作,首先基于 D normal D_{\text{normal}} Dnormal 归纳出正常规则,这些规则被假设为真实的正常性规则。然后,通过与正常规则的对比生成异常规则。例如,如果“行走”是 D normal D_{\text{normal}} Dnormal 中的一个常见模式,它将被归入正常规则中,随后“非行走动作”会被纳入异常规则中。该策略在无需接触异常帧的情况下,为正常和异常之间设定了明确的边界。
Abstract and Concrete (抽象与具体)
提示 p g p_g pg 引导LLM执行类比操作,从抽象概念出发,逐步推广到更具体的示例。以同样的“行走”示例为例,正常规则的定义可以扩展为“行走,无论是独自一人还是与他人一起”。因此,异常规则演变为包括特定的非行走动作,例如骑自行车、滑板车或滑板。这一策略通过详细的示例澄清了规则,并使LLM能够利用类比推理,而无需穷尽所有潜在的场景。
Human and Environment (人类与环境)
该策略继承自视觉感知模块。提示 p g p_g pg 引导LLM分别关注环境元素(例如,车辆或场景因素)和人类活动。这种方法将规则集扩展到VAD任务中,在人类与其环境的交互中异常往往会发生。
这些策略与链式思维(CoT)[52]的理念一致,并进一步针对VAD任务进行了优化。第5.4节中的消融实验验证了其有效性。
3.3 规则聚合
规则聚合模块使用LLM作为聚合器,并结合投票机制将从 n n n 个随机选择的正常参考帧独立生成的规则集(即 R R R)合并为一个鲁棒规则集 R robust R_{\text{robust}} Rrobust:
R robust = LLM ( R , p a ) R_{\text{robust}} = \text{LLM}(R, p_a) Rrobust=LLM(R,pa)
该模块旨在减轻前几个阶段的错误,例如视觉感知模块可能将“行走”误解为“滑板运动”,从而导致错误的规则。聚合过程会过滤掉不常见的规则元素,仅保留在 n n n 个规则集中始终存在的元素。实现这一过程所需的提示 p a p_a pa 详见附录 A.2。
这一策略基于 随机平滑(randomize smoothing) 的假设[10],即错误可能出现在单个输入中,但不太可能在多个随机采样的输入中持续发生。因此,通过聚合这些输出,AnomalyRuler 生成的规则对个体错误更加鲁棒。
超参数 n n n 可以被视为批次数量。为了简化讨论,之前的假设是每个批次仅包含一个帧,即 m = 1 m = 1 m=1。这里我们将 m m m 定义为每个批次的正常参考帧数量(即批次大小)。我们在第5.4节中展示了规则聚合的有效性,并对不同的 n n n 和 m m m 值进行了消融研究。
4 演绎
在归纳阶段生成一组鲁棒规则之后,演绎阶段根据这些规则执行视频异常检测(VAD)。图2的底部部分展示了演绎阶段,其目标是精确感知视频中的每一帧,并使用LLM根据规则推断它们是否为正常或异常帧。为了实现这一目标,我们设计了三个模块。
首先,视觉感知模块的工作方式与归纳阶段中描述的类似。然而,不同之处在于,演绎阶段处理的是每个测试视频中的连续帧,并输出一系列帧描述 D = { d 0 , d 1 , … , d t } D = \{d_0, d_1, \dots, d_t\} D={d0,d1,…,dt}。
其次,感知平滑模块通过提出的指数多数平滑(Exponential Majority Smoothing)减少错误。仅此一步即可提供初步的检测结果,称为 AnomalyRuler-base。
第三,鲁棒推理模块利用LLM根据规则重新检查初步检测结果并进行推理。感知平滑和鲁棒推理模块的详细内容将在接下来的章节中进一步阐述。
4.1 感知平滑
如我们在第3.3节中讨论的那样,视觉感知错误可能会在归纳阶段发生,这一问题在演绎阶段同样值得关注。为了解决这一挑战,我们提出了一种名为 指数多数平滑(Exponential Majority Smoothing) 的新机制。该机制通过考虑视频中的时间一致性(即,运动是连续的,且应在时间上呈现一致的模式)来减轻错误。我们利用这种平滑的结果来指导帧描述的校正,从而增强 AnomalyRuler 在面对错误时的鲁棒性。
初始异常匹配
对于连续帧描述 D = { d 0 , d 1 , … , d t } D = \{d_0, d_1, \dots, d_t\} D={d0,d1,…,dt},AnomalyRuler 首先将异常关键字 K K K 与归纳阶段生成的异常规则进行匹配(详见附录 A.2),并为每个 d i d_i di 分配标签 y i y_i yi,其中 i ∈ [ 0 , t ] i \in [0, t] i∈[0,t],表示预测的标签。形式化表示为:
y i = 1 如果 ∃ k ∈ K ⊆ d i , y_i = 1 \quad \text{如果 } \exists k \in K \subseteq d_i, yi=1如果 ∃k∈K⊆di,
这里就是让LLM根据异常规则挑选出异常关键词(动词和名词),如果包含异常关键词就判断为异常。
表明异常由诸如动名词“riding”或“running”这样的关键字触发。否则, y i = 0 y_i = 0 yi=0 表示正常帧。我们将初始匹配的预测记为 Y = { y 0 , y 1 , … , y t } Y = \{y_0, y_1, \dots, y_t\} Y={y0,y1,…,yt}。
指数多数平滑(Exponential Majority Smoothing)
我们提出了一种结合指数移动平均(Exponential Moving Average, EMA)和多数投票(Majority Vote)的方法。该方法旨在通过调整预测结果反映指定时间窗口内人或物体运动的最常见状态,从而增强连续性。最终平滑后的预测结果记为 Y ^ = { y ^ 0 , y ^ 1 , … , y ^ t } \hat{Y} = \{\hat{y}_0, \hat{y}_1, \dots, \hat{y}_t\} Y^={y^0,y^1,…,y^t},其中每个 y ^ i \hat{y}_i y^i 的值为 0 0 0 或 1 1 1。形式化表示如下:
第一步:EMA
对于原始预测值 y t y_t yt,EMA 值 s t s_t st 的计算公式为:
s t = ∑ i = 0 t ( 1 − α ) t − i y i ∑ i = 0 t ( 1 − α ) i s_t = \frac{\sum_{i=0}^{t}(1-\alpha)^{t-i}y_i}{\sum_{i=0}^{t}(1-\alpha)^i} st=∑i=0t(1−α)i∑i=0t(1−α)t−iyi
其中, α \alpha α 是影响EMA计算中数据点权重的参数。
这里就是做一个分数平滑,因为初始分数都是0或1,所以是离散的,需要平滑
公式解释:
- s t s_t st:第 t t t 帧的平滑值,是根据原始预测结果 y i y_i yi 进行加权计算得到的。
- y i y_i yi:第 i i i 帧的原始预测结果, y i y_i yi 可以是 0(正常)或 1(异常)。
- ( 1 − α ) t − i (1-\alpha)^{t-i} (1−α)t−i:这是一个指数衰减因子,表示较早的帧对当前帧的影响逐渐减小。 α \alpha α 是平滑系数,它控制着历史帧的衰减程度:
- 如果 α \alpha α 较大,较新的预测结果的权重较大,较旧的结果的影响较小。
- 如果 α \alpha α 较小,则较旧的结果对当前帧的影响较大,较新的结果的影响较小。
- ∑ i = 0 t ( 1 − α ) i \sum_{i=0}^{t} (1-\alpha)^i ∑i=0t(1−α)i:这是一个归一化因子,用于确保平滑值 s t s_t st 的计算是标准化的,避免加权结果偏向某些帧,确保所有帧的权重之和为常数。
作用:
- 平滑预测结果:通过加权历史预测结果,EMA 帮助减少噪声并增强视频序列中的时间一致性。
- 增强稳定性:较新的帧会有更高的权重,减少瞬时波动带来的影响,从而使得当前帧的预测更加平稳、稳定。
第二步:多数投票
为了平滑每个 EMA 值 s i s_i si,我们在以 s i s_i si 为中心的窗口内应用多数投票法,窗口的填充大小为 p p p。对于每个 s i s_i si,我们考虑其在窗口内的邻域EMA值,并根据这些值的多数投票结果确定平滑预测值 y ^ i \hat{y}_i y^i 是否大于阈值 τ \tau τ。阈值 τ \tau τ 的定义如下:
τ = 1 t ∑ i = 1 t s i \tau = \frac{1}{t} \sum_{i=1}^{t} s_i τ=t1i=1∑tsi
平滑预测值 y ^ i \hat{y}_i y^i 的计算公式为:
y ^ i = { 1 , if ∑ j = max ( 1 , i − p ) min ( i + p , t ) 1 ( s j > τ ) > min ( i + p , t ) − max ( 1 , i − p ) + 1 2 0 , otherwise (1) \hat{y}_i = \begin{cases} 1, & \text{if } \sum_{j=\max(1, i-p)}^{\min(i+p, t)} \mathbb{1}(s_j > \tau) > \frac{\min(i+p, t) - \max(1, i-p) + 1}{2} \\ 0, & \text{otherwise} \end{cases} \tag{1} y^i={1,0,if ∑j=max(1,i−p)min(i+p,t)1(sj>τ)>2min(i+p,t)−max(1,i−p)+1otherwise(1)
其中, 1 ( ⋅ ) \mathbb{1}(\cdot) 1(⋅) 表示指示函数,窗口大小被动态调整为 min ( i + p , t ) − max ( 1 , i − p ) + 1 \min(i+p, t) - \max(1, i-p) + 1 min(i+p,t)−max(1,i−p)+1,确保窗口不会超出帧范围 max ( 1 , i − p ) \max(1, i-p) max(1,i−p) 到 min ( i + p , t ) \min(i+p, t) min(i+p,t)。
指数多数平滑中的公式解释
y ^ i \hat{y}_i y^i:表示第 i i i 帧的平滑后的最终预测结果, 1 1 1 表示异常, 0 0 0 表示正常。
s j s_j sj:表示第 j j j 帧的平滑值,通常是通过指数移动平均(EMA)计算的值。
τ \tau τ:阈值,用于判断平滑值是否足够高,从而判断该帧是否为异常。
p p p:窗口大小,决定了计算中考虑的相邻帧的范围。
∑ j = max ( 1 , i − p ) min ( i + p , t ) 1 ( s j > τ ) \sum_{j=\max(1,i-p)}^{\min(i+p,t)} 1(s_j > \tau) ∑j=max(1,i−p)min(i+p,t)1(sj>τ):计算窗口范围内,平滑值 s j s_j sj 大于阈值 τ \tau τ 的帧的数量。
min ( i + p , t ) − max ( 1 , i − p ) + 1 2 \frac{\min(i+p,t) - \max(1,i-p) + 1}{2} 2min(i+p,t)−max(1,i−p)+1:窗口大小的归一化值,用于确保多数投票的合理性。它计算当前帧周围的相邻帧的数量并进行标准化,避免在不同视频长度或帧数下产生不一致的结果。
步骤解释:
窗口范围计算:
- 公式中的 max ( 1 , i − p ) \max(1, i-p) max(1,i−p) 确保窗口左边界不小于视频的第一个帧,即不会超出视频的起始位置。
- min ( i + p , t ) \min(i+p,t) min(i+p,t) 确保窗口右边界不超过视频的最后一帧,避免超出视频的结束位置。
多数投票:
- 计算窗口范围内,平滑值大于阈值 τ \tau τ 的帧的数量。如果数量超过窗口大小的一半,则认为当前帧是异常的, y ^ i = 1 \hat{y}_i = 1 y^i=1。
- 如果大于阈值的帧的数量不满足条件,则认为当前帧是正常的, y ^ i = 0 \hat{y}_i = 0 y^i=0。
直观解释:
- 该公式通过在相邻帧之间进行“投票”,判断当前帧是否为异常。如果大多数相邻帧是异常的,那么当前帧也被判定为异常,反之则为正常。
- 通过归一化窗口大小,公式保证了计算在不同长度的视频中始终具有一致性。
异常分数(Anomaly Score)
给定 Y ^ \hat{Y} Y^ 表示 AnomalyRuler 初步检测的结果,我们通过计算二级EMA进一步评估这些结果的异常分数。异常分数记为 A = { a 0 , a 1 , … , a t } A = \{a_0, a_1, \dots, a_t\} A={a0,a1,…,at},其中:
a t = ∑ i = 0 t ( 1 − τ ) t − i y ^ i ∑ i = 0 t ( 1 − τ ) i (2) a_t = \frac{\sum_{i=0}^{t}(1-\tau)^{t-i}\hat{y}_i}{\sum_{i=0}^{t}(1-\tau)^i} \tag{2} at=∑i=0t(1−τ)i∑i=0t(1−τ)t−iy^i(2)
我们将上述过程定义为 AnomalyRuler-base 作为我们方法的基线,它提供了一个“虚拟答案”(即,如果 y ^ i = 1 \hat{y}_i = 1 y^i=1 则为“异常”,否则为“正常”),并具有与最新的VAD方法[3, 25, 35, 43]相当的异常分数。随后,AnomalyRuler 在鲁棒推理模块中利用该虚拟答案进行进一步分析。
这里还是对异常分数做一个EMA平滑处理
描述修改(Description Modification)
在此步骤中,AnomalyRuler 通过比较 Y Y Y 和 Y ^ \hat{Y} Y^ 修改描述 D D D,并输出修改后的 D ^ \hat{D} D^。如果 y i = 0 y_i = 0 yi=0 而 y ^ i = 1 \hat{y}_i = 1 y^i=1,这表明感知模块中存在假阴性,AnomalyRuler 会通过添加 “There is a person { k } \{k\} {k}.” 来修正 d i d_i di,其中 k ∈ K k \in K k∈K 是窗口大小为 w w w 内最频繁的异常关键字。
相反,如果 y i = 1 y_i = 1 yi=1 而 y ^ i = 0 \hat{y}_i = 0 y^i=0,这表明感知模块中存在假阳性,AnomalyRuler 会通过移除描述中包含异常关键字 k k k 的部分来修改 d i d_i di。
这里并没有重新推理,只是根据设定好的去添加或者去除异常关键词
4.2 鲁棒推理
在鲁棒推理模块中,AnomalyRuler 利用LLM来完成VAD的推理任务,并以从归纳阶段生成的鲁棒规则 R robust R_{\text{robust}} Rrobust 作为上下文。LLM 接收每一帧的修改描述 d ^ i \hat{d}_i d^i 和其虚拟答案(即由 AnomalyRuler-base 生成的“Anomaly”或“Normal”)作为输入。鲁棒推理的输出表示为 Y ∗ = { LLM ( d ^ i , y ^ i , R robust , p r ) ∣ d ^ i ∈ D ^ , y ^ i ∈ Y ^ } Y^* = \{\text{LLM}(\hat{d}_i, \hat{y}_i, R_{\text{robust}}, p_r) \mid \hat{d}_i \in \hat{D}, \hat{y}_i \in \hat{Y}\} Y∗={LLM(d^i,y^i,Rrobust,pr)∣d^i∈D^,y^i∈Y^}。
为了确保结果的可靠性,提示 p r p_r pr(详见附录A.2)指导LLM重新检查虚拟答案 y ^ i \hat{y}_i y^i 是否与根据 R robust R_{\text{robust}} Rrobust 推导的描述 d ^ i \hat{d}_i d^i 相匹配。这个验证步骤并非直接让LLM分析 d ^ i \hat{d}_i d^i,而是通过虚拟答案作为提示来改进决策过程。该方法帮助AnomalyRuler减少漏检(即假阴性),并确保其推理更贴合规则。
此外,为了将AnomalyRuler与基于阈值化异常分数的最新方法进行比较,我们将式(2)中的 y ^ i \hat{y}_i y^i 替换为 y i ∗ ∈ Y ∗ y_i^* \in Y^* yi∗∈Y∗ 来输出异常分数。
将之前得到的虚拟答案和修改后的描述给LLM,让其检查虚拟答案是否正确,而不是直接让LLM分析的。
最终的分数又使用EMA平滑了一下。
05 实验
本节将 AnomalyRuler 与基于LLM的基线方法以及最先进的方法在检测能力和推理能力方面进行比较。我们还对 AnomalyRuler 中的每个模块进行了消融研究,以评估它们的贡献。完整的提示语、推导出的规则以及输出的示例详见附录 A.2。
5.1 实验设置
数据集
我们在四个VAD基准数据集上评估了我们的方法:
- UCSD Ped2 (Ped2) [22]:一个单场景数据集,拍摄于行人步道,包含超过4500帧视频,包括滑板和骑自行车等异常活动。
- CUHK Avenue (Ave) [28]:一个单场景数据集,拍摄于CUHK校园的街道,包含超过30000帧视频,包括奔跑和骑自行车等异常活动。
- ShanghaiTech (ShT) [24]:一个具有挑战性的数据集,包含13个校园场景,超过317000帧视频,包括骑自行车、打架以及在行人区域的车辆等异常活动。
- UBnormal (UB) [2]:一个由Cinema4D软件生成的开放集虚拟数据集,包含29个场景,超过236000帧视频。
对于每个数据集,我们使用了符合单类设置的默认训练集和测试集。AnomalyRuler 使用的正常参考帧是从正常训练集中随机采样的。如果未另行说明,我们对整个测试集进行评估。
评估指标
按照常规实践,我们使用ROC曲线下面积(AUC)作为主要的检测性能指标。为了与无法输出异常分数的基于LLM的方法进行比较,我们使用准确率(accuracy)、精确率(precision)和召回率(recall)指标。此外,我们采用 Doubly-Right 指标 [32] 来评估推理能力。所有指标均基于逐帧的真实标签计算。
实现细节
我们使用 PyTorch [37] 实现了我们的方法 AnomalyRuler。如果没有特别说明,我们使用 CogVLM-17B [51] 作为视觉感知的VLM,GPT-4-1106-Preview [1] 作为归纳的LLM,以及开源的 Mistral-7B-Instruct-v0.2 [19] 作为演绎的LLM(因为在整个测试集上使用GPT的成本太高)。我们在附录 A.4 中讨论了其他VLM/LLM选择。
AnomalyRuler 的默认超参数设置如下:规则聚合中的批次数 n = 10 n = 10 n=10,每批的正常参考帧数 m = 1 m = 1 m=1,多数投票中的填充大小 p = 5 p = 5 p=5,以及EMA中的权重参数 α = 0.33 \alpha = 0.33 α=0.33。
5.2 与基于LLM的基线比较
使用LLM进行单类VAD推理尚未被深入探索。为了证明AnomalyRuler相较于直接使用LLM的优越性,我们构建了直接询问LLM/基于视频的LLM作为基线方法,同时将 相关工作[8,12] 适配到我们的目标问题作为基线。在测试阶段,我们用 F = { f 1 , f 2 , … , f t } F = \{f_1, f_2, \dots, f_t\} F={f1,f2,…,ft} 表示测试视频帧。以下详细说明我们的四个基线方法:
-
直接询问LLM: { LLM ( d i , p ) ∣ d i ∈ D } \{\text{LLM}(d_i, p) \mid d_i \in D\} {LLM(di,p)∣di∈D},其中LLM为Mistral-7B, D D D 是由CogVLM生成的 F F F 的帧描述, p p p 是提示语:“Is this frame description anomaly or normal?”(“该帧描述是异常还是正常?”)。
-
使用Elhafsi等人的方法[12]询问LLM: { LLM ( d i , p ) ∣ d i ∈ D } \{\text{LLM}(d_i, p) \mid d_i \in D\} {LLM(di,p)∣di∈D},其中LLM为Mistral-7B, D D D 是由CogVLM生成的 F F F 的帧描述, p p p 是文献[12]的提示语和预定义的正常/异常概念。
-
直接询问基于视频的LLM: { Video-based LLM ( c i , p ) ∣ c i ∈ C } \{\text{Video-based LLM}(c_i, p) \mid c_i \in C\} {Video-based LLM(ci,p)∣ci∈C},其中 p p p 是基于视频的LLM的提示语:“Is this clip anomaly or normal?”(“该视频片段是异常还是正常?”)。我们使用Video-LLaMA[57] 作为基于视频的LLM,其执行逐片段推理。每个视频片段 c i c_i ci 由 F F F 中具有相同标签的连续帧组成。
-
使用Cao等人[8]的方法询问GPT-4V: { GPT-4V ( f i , p ) ∣ f i ∈ F } \{\text{GPT-4V}(f_i, p) \mid f_i \in F\} {GPT-4V(fi,p)∣fi∈F},其中 p p p 是文献[8]的提示语。作为一个大型VLM,GPT-4V直接将帧作为输入。
检测性能
表1比较了ShT数据集上的准确率(accuracy)、精确率(precision)和召回率(recall)。总体而言,AnomalyRuler 在准确率上平均提升了26.2%,在召回率上提升了54.3%,表现出显著的改进。这些改进归因于归纳阶段生成规则的推理能力。
相比之下,基线方法倾向于根据LLM中预训练的隐式知识将大多数样本预测为正常,这导致非常低的召回率和接近随机猜测的准确率。其相对较高的精确率是由于它们很少预测异常,因此假阳性较少。
推理性能
推理性能通过 Doubly-Right 指标 [32] 进行评估: { RR, RW, WR, WW } \{\text{RR, RW, WR, WW}\} {RR, RW, WR, WW}(%),其中:
- RR 表示正确检测且推理正确,
- RW 表示正确检测但推理错误,
- WR 表示错误检测但推理正确,
- WW 表示错误检测且推理错误。
我们期望 RR 的准确率高(最好是100%),而 RW、WR 和 WW 的百分比低(最好是0%)。由于 RW 和 WW 可能由视觉感知错误而非推理错误引起,我们还考虑了在手动校正视觉感知的情况下,对每种方法的推理能力进行独立评估,即“含感知错误(w. Perception Errors)”与“无感知错误(w/o. Perception Errors)”,结果列于表2中。
由于缺乏针对VAD推理的评估基准,我们创建了一个包含100个从ShT测试集中随机选择的帧的数据集,其中正常帧和异常帧各占50%。对于每一帧,我们提供四个选项:一个正常选项和三个异常选项,其中仅与匹配规则一致的选项被标记为 RR,其他选项对应 RW、WR 或 WW。该数据集的详细信息和示例见附录A.3。由于这100个随机选择的帧并非连续,AnomalyRuler 的感知平滑模块未被使用。
表2展示了评估结果。在含感知错误的情况下,AnomalyRuler 在 RR 上超越基线方法10%至27%,并且其 WW 仅为1%,相比之下,第二好的方法(使用 Cao 等人[8]的提示语的GPT-4V)为17%。在无感知错误的情况下,AnomalyRuler 的 RR 跃升至99%。这些结果表明,AnomalyRuler 相较于 GPT-4(V) 基线的优越性,以及其在正确检测和推理方面的强大能力。
5.3 与最先进方法的比较
本节将 AnomalyRuler 与15种最先进的单类VAD方法在四个数据集上的检测性能和领域适应性进行比较。这些方法的性能数据均来源于各自的原始论文。
检测性能
表3展示了 AnomalyRuler 的效果,主要有以下三点观察:
-
基础版本超越图像方法
即使使用其基础版本 AnomalyRuler-base,AnomalyRuler 也在具有挑战性的 ShT 和 UB 数据集上超越了所有图像方法竞争者。这些方法不使用任何附加特性(例如,来自目标检测器的边界框或动作识别网络的3D特性)。这表明,我们基于规则的推理对于具有挑战性的单类VAD任务是有效的。 -
在 Ped2 和 Ave 上的表现
在 Ped2 和 Ave 数据集上,AnomalyRuler 的表现与图像方法持平。这是在没有任何调优的情况下实现的,表明我们的少量正常样本提示方法在这些基准上的效果与昂贵的全量训练相当。 -
鲁棒推理模块的改进
AnomalyRuler 相较于 AnomalyRuler-base 表现更好,表明鲁棒推理模块进一步提高了性能。
领域适应性
领域适应性考虑了源领域(即训练/归纳阶段)数据集与目标领域(即测试/演绎阶段)数据集不同的情况[13,26,48]。我们将 AnomalyRuler 与声称具有领域适应能力的三种最先进VAD方法[3,29,30]进行比较。
我们遵循相关工作的设置,使用 ShT 作为源领域数据集,并将其规则应用于其他目标数据集。如表4所示,AnomalyRuler 在 Ped2、ShT 和 UB 数据集上实现了最高的AUC,平均提高了9.88%。尽管 AnomalyRuler 在 zxVAD[3] 上落后0.6%,但其平均值仍高于其他方法的8.85%。结果表明,AnomalyRuler 在不同数据集之间具有更好的领域适应性。
这种优势得益于语言在不同视觉领域中的一致性描述。这种一致性允许将诱导规则应用于具有相似异常场景但视觉外观不同的数据集。相比之下,传统方法提取的高维视觉特征对视觉外观敏感,因此难以将其知识迁移到不同数据集上。
5.4 消融研究
在本节中,我们研究了所提出的策略如何影响 AnomalyRuler 的性能。我们探讨了两个方面:规则数量(即归纳出的规则数量)和规则质量(即其最终性能)。针对这一点,我们在 ShT 数据集上评估了 AnomalyRuler-base 的变体。
策略的消融研究
表5展示了移除各单独策略后,与使用所有策略的效果对比。
规则数量
移除“人类与环境”或“正常与异常”策略会显著减少规则数量,分别减少了47.6%和82.4%。这种减少是由于未将人类和环境的规则分开,从而导致规则数量减少了一半。此外,在不从正常规则中推导异常规则的情况下,仅生成了一组有限的正常规则。移除“抽象与具体”或“规则聚合”策略会略微增加规则数量,因为前者合并了同一类别中的规则,后者删除了不正确的规则。感知平滑对规则数量没有影响,因为它是在演绎阶段使用的。
规则质量
在规则质量方面,移除“正常与异常”或“规则聚合”对性能的负面影响最大。前者的影响在于当仅存在正常规则时,LLM 对稍有不同的动作(例如“打着伞行走”)会过度反应,与“行走”规则相比,导致误报。此外,在没有异常规则作为参考的情况下,LLM 很容易错过异常。这是因为归纳阶段中的感知错误会导致针对正常情况的规则生成错误。
其他策略
移除其他策略也会降低AUC,进一步突出了这些策略的重要性。
总结来看,提出的策略有效提升了 AnomalyRuler 的性能。在规则数量和质量之间没有直接的正/负相关性:规则过少会导致正常和异常概念覆盖不足,而规则过多则会导致冗余和错误。
超参数的消融研究
图3展示了规则聚合模块和感知平滑模块中的超参数对性能的影响。
规则聚合
我们在批次数 n = [ 1 , 5 , 10 , 20 ] n = [1, 5, 10, 20] n=[1,5,10,20] 和每批正常参考帧数 m = [ 1 , 2 , 5 , 10 ] m = [1, 2, 5, 10] m=[1,2,5,10] 上进行了交叉验证。观察到规则数量和AUC随 n n n 和 m m m 的增加而提升,但当 n × m n \times m n×m 过大时开始波动。例如,当 n = 20 n = 20 n=20 时,随着 m m m 的增加,AUC 从 85.9% 下降到 72.2%,这是因为参考帧过多(如超过100帧)会导致长上下文中的冗余信息。
感知平滑
我们测试了多数投票中的填充大小 p = [ 1 , 5 , 10 , 20 ] p = [1, 5, 10, 20] p=[1,5,10,20] 和 EMA 中的权重参数 α = [ 0.09 , 0.18 , 0.33 , 1 ] \alpha = [0.09, 0.18, 0.33, 1] α=[0.09,0.18,0.33,1]。结果表明, p = 5 p = 5 p=5 最优,因为它能够捕捉视频中的运动连续性,同时避免更多邻域可能带来的过多噪声。
α \alpha α 调整了最近帧与先前帧的权重关系。较小的 α \alpha α 强调了先前帧,导致更强的平滑效果,但对最近变化的响应性较差。总体来看,将 α \alpha α 从 0.09 增加到 0.33 提升了AUC,表明适度的EMA平滑是有益的。
06 结论
在本文中,我们提出了 AnomalyRuler,这是一种结合LLM的基于规则的推理框架,用于VAD。通过归纳和演绎阶段,AnomalyRuler 仅需少量正常样本提示(few-normal-shot prompting),无需昂贵的全量调优,从而快速引导LLM的推理能力应用于各种特定的VAD任务。据我们所知,AnomalyRuler 是第一个用于单类VAD的推理方法。
大量实验表明,AnomalyRuler 在性能、推理能力和领域适应性方面均达到了最先进水平。本文还在附录A.1中讨论了本研究的局限性及潜在的负面社会影响。
在未来的研究中,我们希望该方法能推动更广泛的单类问题及相关任务的发展,例如工业异常检测[6,55]、开放集识别[5,40]和分布外检测[17,42]。