【视频异常检测】Open-Vocabulary Video Anomaly Detection 论文阅读

Open-Vocabulary Video Anomaly Detection 论文阅读

  • Abstract
  • Method
    • 3.1. Overall Framework
    • 3.2. Temporal Adapter Module
    • 3.3. Semantic Knowledge Injection Module
    • 3.4. Novel Anomaly Synthesis Module
    • 3.5. Objective Functions
      • 3.5.1 Training stage without pseudo anomaly samples
      • 3.5.2 Fine-tuning stage with pseudo anomaly samples
  • 4. Experiments
  • 5. Conclusion

文章信息:
在这里插入图片描述

原文链接:https://arxiv.org/abs/2311.07042
无源码
发表于:CVPR 2024

Abstract

当前的视频异常检测(VAD)方法在弱监督下通常局限于封闭集设置,并且可能在测试数据中存在未见过的异常类别的开放世界应用中遇到困难。最近的一些研究尝试解决一个更现实的问题,即开放集异常检测(open-set VAD),其旨在检测给定已见异常和正常视频的未见异常。然而,这样的设置侧重于预测帧异常分数,无法识别异常的具体类别,尽管这种能力对于构建更加明智的视频监控系统至关重要。本文进一步探讨了开放词汇视频异常检测(OVVAD),我们旨在利用预训练的大型模型来检测和分类已见和未见的异常。为此,我们提出了一种将OVVAD分解为两个相互补充的任务的模型 - 无类别检测和特定类别分类,并联合优化这两个任务。特别地,我们设计了一个语义知识注入模块,从大型语言模型中引入语义知识用于检测任务,并设计了一个新颖的异常合成模块,借助大型视觉生成模型生成伪造的未见异常视频,用于分类任务。这些语义知识和合成异常显著扩展了我们模型在检测和分类各种已见和未见异常方面的能力。在三个广泛使用的基准测试上的大量实验表明,我们的模型在OVVAD任务上达到了最先进的性能水平。

在这里插入图片描述
图1.红色框为作者解决的问题(识别未见过的视频异常,并且还能对未见过的异常进行分类)

作者的贡献总结如下:

  • 我们探索了在一个具有挑战性但在实践中非常重要的开放词汇设置下的视频异常检测。据我们所知,这是针对开放词汇视频异常检测(OVVAD)的第一项工作。
  • 然后,我们提出了一个建立在预训练的大型模型之上的模型,将OVVAD任务分解为两个相互补充的子任务——无类别检测和特定类别分类——并共同优化它们以实现准确的OVVAD。
  • 在无类别检测任务中,我们设计了一个几乎无权重的时间适配器模块和一个语义知识注入模块,大大增强了正常/异常帧的检测能力。
  • 在细粒度异常分类任务中,我们引入了一种新颖的异常合成模块,用于生成伪造的未见异常视频,以便准确分类新型异常类型。

Method

Problem Statement.所研究的问题,OVVAD,可以正式地陈述如下。假设我们有一组训练样本 X = { x i } i = 1 N + A \mathcal{X} = \{ x_i\} _{i= 1}^{N+ A} X={xi}i=1N+A,其中 X n = { x i } i N \mathcal{X} _n= \{ x_i\} _i^N Xn={xi}iN 是正常样本集合, X a = { x i } i = N + 1 N + A \mathcal{X}_a=\{x_i\}_{i=N+1}^{N+A} Xa={xi}i=N+1N+A 是异常样本集合。对于 X a \mathcal{X}_a Xa 中的每个样本 x i x_i xi,它都有一个相应的视频级别的类别标签 y i , y i ∈ C b a s e y_i,y_i\in C_{base} yi,yiCbase,这里, C b a s e C_{base} Cbase 表示基本(已见)异常类别的集合, C C C C b a s e C_{base} Cbase C n o v e l C_{novel} Cnovel 的并集,其中 C n o v e l C_{novel} Cnovel 表示新颖(未见)异常类别的集合。根据训练样本 X \mathcal{X} X,目标是训练一个能够检测和分类基本和新颖异常的模型。具体来说,模型的目标是为每个帧预测异常置信度,并在视频中存在异常时识别异常类别。

3.1. Overall Framework

在这里插入图片描述

传统方法基于封闭集分类不太可能处理开放词汇情景下的VAD。为此,我们利用语言-图像预训练模型,例如CLIP,作为基础,因为它具有强大的零样本泛化能力。如图2所示,给定一个训练视频,我们首先将其馈送到CLIP的图像编码器 Φ C L I P − v \Phi_{CLIP-v} ΦCLIPv 中,以获得具有形状为 n × c n\times c n×c 的帧级特征 x f x_f xf,其中 n n n 是视频帧数, c c c 是特征维度。然后这些特征通过TA模块、SKI模块和detector,产生帧级异常置信度 p p p,这个流程主要用于类别不可知的检测任务。另一方面,对于类别特定的分类,我们从不同视觉任务的其他开放词汇作品中汲取灵感,并使用跨模态对齐机制。具体来说,我们首先生成跨帧特征的视频级聚合特征,然后生成异常类别的文本特征/嵌入,最后根据视频级特征和文本特征之间的对齐估计异常类别。此外,我们引入NAS模块,借助大型语言模型(LLM)和人工智能生成内容模型(AIGC),生成潜在的新颖异常,以实现新类别的识别。

3.2. Temporal Adapter Module

时间依赖性在VAD中起着至关重要的作用。在这项工作中,我们利用了CLIP的冻结图像编码器来获得视觉特征,但由于CLIP是在图像-文本对上预训练的,因此缺乏对时间依赖性的考虑。为了弥补图像和视频之间的差距,最近的研究中出现了使用时间变换器的做法。然而,这样的范式在新颖类别上明显表现出性能下降,可能的原因是时间变换器中的额外参数可能会特化于训练集,从而损害对新颖类别的泛化能力。因此,我们设计了一个几乎无权重的时间适配器来处理时间依赖性,它是建立在经典的图卷积网络之上的。从数学上讲,它可以表示如下:
在这里插入图片描述
其中LN是层归一化操作,H是邻接矩阵,softmax归一化用于确保H的每一行的总和等于一。这样的设计用于基于每两帧之间的位置距离捕获上下文依赖关系。邻接矩阵的计算如下:
在这里插入图片描述
i i i 帧和第 j j j 帧之间的接近关系仅由它们的相对时间位置决定。 σ \sigma σ 是一个超参数,用于控制距离关系的影响范围。根据这个公式,两帧之间的时间距离越接近,接近关系得分越高,反之越低。值得注意的是,在 TA 模块中,只有层归一化涉及少量参数。

3.3. Semantic Knowledge Injection Module

人类在感知环境时通常会利用先验知识,例如,我们可以根据气味和烟雾推断火灾的存在,而不直接看到火焰。基于这个想法,我们提出了 SKI 模块,明确引入额外的语义知识来辅助视觉检测。如图 2 \color{red}{2} 2 所示,对于视频中的正常事件,我们使用大规模语言模型,例如,ChatGPT [2] 和 SparkDesk 1 ^{1} 1,以固定的模板提示,获取关于常见场景和动作的信息,例如街道、公园、购物大厅、步行、奔跑、工作等等。同样,我们生成与异常场景相关的额外词语,包括爆炸、爆裂、火光等术语。最后,我们获得了几个短语列表,表示为 M p r i o r M_{prior} Mprior,其中包含名词词语(场景)和动词词语(动作)。拥有 M p r i o r M_{prior} Mprior 后,我们利用 CLIP 的文本编码器提取文本嵌入作为语义知识,具体如下所示,
在这里插入图片描述
其中 F t e x t ∈ R l × c F_{text}\in\mathcal{R}^{l\times c} FtextRl×c Φ C L I P − t \Phi_{CLIP-t} ΦCLIPt 表示 CLIP 的文本编码器, Φ t o k e n \Phi_{token} Φtoken 是将单词转换为向量的语言分词器。

然后,为了有效地将这些语义知识合并到视觉信息中,以增强异常检测的效果,我们设计了一种跨模态注入策略。该策略鼓励视觉信号寻找相关的语义知识并将其整合到过程中。这样的操作如下所示:
在这里插入图片描述
其中, F k n o w ∈ R n × c F_{know}\in\mathcal{R}^{n\times c} FknowRn×c,我们使用sigmoid而不是softmax,以确保视觉信号可以涵盖更多相关的语义概念。

最后,我们将 F k n o w F_{know} Fknow x t x_t xt连接起来,创建一个包含视觉信息和整合语义知识的输入。我们将这个输入馈送到一个二元检测器中,为类别无关检测生成异常置信度。

3.4. Novel Anomaly Synthesis Module

尽管当前的预训练视觉-语言模型,如CLIP,在零样本能力方面表现出色,但它们在各种下游任务,特别是与视频相关的任务上的零样本性能仍然不尽人意。出于同样的原因,我们的模型是基于这些预训练的视觉-语言模型构建的,并且在基础异常和正常样本上进行训练,这使得它在面对新异常时容易出现泛化缺陷。随着大型生成模型的出现,生成样本作为伪训练数据的做法已经成为一种可行的解决方案。因此,我们提出了NAS模块,根据潜在的异常类别生成一系列伪新异常样本。然后,我们利用这些样本对提出的模型进行微调,以改善对新异常的分类和检测。总的来说,NAS模块包括三个关键过程:

1)首先,我们使用预定义的模板 p r o m p t g e n prompt_{gen} promptgen(例如, g e n e r a t e generate generate)来提示大型语言模型(LLMs,例如ChatGPT、ERNIE Bot [41]),生成关于“Fighting”场景的十个简短描述,以获取潜在新类别的文本描述。然后,我们利用人工智能生成内容(AIGC)模型,例如DALL·E mini [30]、Gen-2 [7],来生成相应的图像,以创建短视频。这可以表示为:
在这里插入图片描述
2) 随后,对于 I g e n I_{gen} Igen,我们借鉴 [18] 的思路,引入了一种简单而有效的动画策略,将单张图像转换为模拟场景变化的视频片段。具体地,给定一张图像,我们使用不同的裁剪比例来选择相应的图像区域,然后将这些区域调整回原始尺寸,并级联它们以创建新的视频片段 S c a t S_{cat} Scat

3)最后,为了模拟现实世界中的情况,其中异常视频通常是长而未经修剪的,我们引入了第三步,伪异常合成,通过将 S c a t S_{cat} Scat 插入到随机选择的正常视频中。此外,插入位置也是随机选择的。这个过程产生了最终的伪异常样本 V n a s \mathcal{V}_{nas} Vnas。详细描述和结果请参考补充材料。

有了 V n a s \mathcal{V}_{nas} Vnas,我们对最初在 X \mathcal{X} X 上训练的模型进行微调,以增强其对新异类的泛化能力。

3.5. Objective Functions

3.5.1 Training stage without pseudo anomaly samples

对于类别不可知的检测,我们遵循之前的视频异常检测工作[27,49],使用 Top-K 机制在异常和正常视频中选择前 K K K 个高异常置信度值。我们计算这些选择的平均值,并将平均值输入到 sigmoid 函数中作为视频级别的预测。在这里,我们设置 K = n / 16 K=n/16 K=n/16 用于异常视频, K = n K=n K=n 用于正常视频。最后,我们计算视频级别预测和二进制标签之间的二元交叉熵 L b c e L_{bce} Lbce

关于类别特定的分类,我们计算聚合的视频级特征与文本类别嵌入之间的相似性,以得出视频级别的分类预测。我们还使用交叉熵损失函数来计算视频级别的分类损失 L c e L_{ce} Lce。鉴于 OVVAD 是一个弱监督任务,我们无法直接从帧级别注释中获得视频级别的聚合特征。我们遵循 [49],使用基于软注意力的聚合方法,如下所示:
在这里插入图片描述

对于文本类别嵌入,我们受到 CoOp[63] 的启发,将可学习的提示附加到原始类别嵌入中。
对于 SKI 模块的参数,即 F t e x t F_{text} Ftext,我们旨在在训练阶段明确进行优化。我们打算区分正常知识嵌入和异常知识嵌入。对于正常视频,我们期望它们的视觉特征与正常知识嵌入的相似性较高,与异常知识嵌入的相似性较低。为此,我们首先提取每个视频与文本知识嵌入之间的相似性矩阵,然后为每个帧选择前 10 % 10\% 10% 最高分,并计算平均值,最后应用基于交叉熵的损失 L s i m − n L_{sim-n} Lsimn。对于异常视频,我们预计异常知识嵌入与异常视频帧特征之间的相似性较高。由于弱监督情况下缺少精确的帧级注释,我们采用了一种硬注意力的选择机制,称为 Top-K,来定位异常区域。然后执行相同的操作来计算损失 L s i m − a L_{sim-a} Lsima

总的来说,在训练阶段,我们使用了三个损失函数,总损失函数为:
在这里插入图片描述
L s i m L_{sim} Lsim L s i m − n L_{sim-n} Lsimn L s i m − a L_{sim-a} Lsima 的总和。

3.5.2 Fine-tuning stage with pseudo anomaly samples

在获得 NAS 模块生成的 V n a s \mathcal{V}_{nas} Vnas 后,我们继续对模型进行微调。 V n a s \mathcal{V}_{nas} Vnas 是合成的,为我们提供了帧级别的标注,使我们能够使用完整的监督来优化我们的检测模型。对于分类, L c e 2 L_{ce2} Lce2 L c e L_{ce} Lce 保持相同,关键区别在于标签不仅适用于基础类别,还适用于潜在的新类别。对于检测, L b c e 2 L_{bce2} Lbce2 是帧级别的二元交叉熵损失。
在这里插入图片描述

4. Experiments

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5. Conclusion

在本论文中,我们提出了一种新模型,基于预训练的大型模型,用于弱监督下的开放词汇视频异常检测任务。由于开放词汇视频异常检测的挑战性质,当前的视频异常检测方法在效率上面临困难。为了解决这些独特的挑战,我们明确将开放词汇视频异常检测分解为类别不可知的检测和类别特定的分类子任务。然后,我们引入了几个临时模块:时间适配器和语义知识注入模块主要旨在促进对基本和新颖异常的检测,新颖异常合成模块生成了几个潜在的伪新颖样本,以帮助所提出的模型更准确地感知新颖异常。在三个公共数据集上进行的大量实验表明,所提出的模型在开放词汇视频异常检测任务上表现出了优势。未来,利用AIGC模型的辅助生成更生动的伪异常样本的研究仍有待探索。

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

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

相关文章

网盘——查看文件

本文主要讲解文件操作过程中,查看文件如何实现,实现步骤如下: 1、实现步骤: A、首先客户端发送查看请求(包含目录信息) B、服务器将文件名字还有文件的类型发送给客户端(只发送文件的名字&am…

Linux2.6内核进程调度队列

目录 运行队列runqueue 活跃队列&过期队列 queue[140]&优先级&队列数组下标 bitmap[5]&O(1)调度算法 nr_active active指针和expired指针 O(1)调度算法之调度过程 本篇是Linux进程概念篇的最后一篇,Linux2.6内核是一个具体的/可行的/实际的存…

【Node.js】03 —— HTTP 模块探索

🌟Node.js之HTTP模块探索✨ 🌟引言 在网络编程中,HTTP协议无处不在。在Node.js的世界里,我们可以通过内置的http模块来轻松创建HTTP服务器和客户端,实现数据的接收和发送。今天就让我们一起打开这扇门,探索…

Fisher判别示例:鸢尾花(iris)数据(R)

先读取iris数据,再用程序包MASS(记得要在使用MASS前下载好该程序包)中的线性函数lda()作判别分析: data(iris) #读入数据 iris #展示数据 attach(iris) #用变量名绑定对应数据 library(MASS) #加载MASS程序包 ldlda(Species~…

Python打怪升级(4)

在计算机领域常常有说"合法"和"非法"指的是:是否合理,是否有效,并不是指触犯了法律。 random.randint(begin,end) 详细讲解一下这个random是指模板,也就是别人写好的代码直接来用,在Python当中,…

C语言入门课程学习笔记1

C语言入门课程学习笔记1 第1课 - 概论第2课 -helloworld第3课 -数据输出第4课 -数据类型与变量第5课 - 深入数据类型与变量第6课 - 类型与变量编程练习第7课 - 程序中的数据输入 本文学习自狄泰软件学院 唐佐林老师的 C语言入门课程,图片全部来源于课程PPT&#xff…

食用油5G智能工厂数字孪生可视化平台,推进食品制造业数字化转型

食用油5G智能工厂数字孪生可视化平台,推进食品制造业数字化转型。在食用油产业中,数字化转型已成为提升生产效率、优化供应链管理、确保产品质量和满足消费者需求的关键。食用油5G智能工厂数字孪生可视化平台作为这一转型的重要工具,正在推动…

《html自用使用指南》--基于w3School实践

1.基础标签 文本输入时&#xff0c;在编辑器中的换行&#xff0c;多个空格&#xff0c;都被编辑器看作一个空格 <p> 这个段落 在源代码 中 包含 许多行 但是 浏览器 忽略了 它们。 </p>结果&#xff1a;这个段落 在源代码 中 包含 许多行 但是 浏览器…

STM32H750时钟频率和功耗以及RTC功能测试

STM32H750时钟频率和功耗和RTC功能测试 &#x1f4cc;相关篇《STM32H750片外QSPI启动配置简要》 ✨在使用STM32CubeMX修改STM32H750时钟树参数时&#xff0c;如果使用软件自动求解&#xff0c;这是一个非常耗时的操作&#xff0c;有时候还不一定成功&#xff0c;还是推荐使用手…

《ElementPlus 与 ElementUI 差异集合》el-select 差异点,如:高、宽、body插入等

宽度 Element UI 父元素不限制宽度时&#xff0c;默认有个宽度 207px&#xff1b; 父元素有固定宽度时&#xff0c;以父元素宽度为准&#xff1b; Element Plus 父元素不限制宽度时&#xff0c;默认100%&#xff1b; 父元素有固定宽度时&#xff0c;以父元素宽度为准&#x…

CDN、边缘计算与云计算:构建现代网络的核心技术

在数字化时代&#xff0c;数据的快速传输和处理是保持竞争力的关键。内容分发网络&#xff08;CDN&#xff09;、边缘计算和云计算共同构成了现代互联网基础架构的核心&#xff0c;使内容快速、安全地到达用户手中。本文将探讨这三种技术的功能、相互关系以及未来的发展趋势。 …

使用表格法插入公式和编号

如何将公式和编号优雅地插入到论文当中呢&#xff1f; 首先插入一个1行2列的表格 调整一下 输入公式方法一&#xff1a;感觉墨迹公式挺好用的&#xff0c;word自带的 输入公式方法二&#xff1a;图片转LATEX代码 这个方法更快 分享一个公式识别网站 图片识别得到LATEX代码&…

atlas 500容器(ubuntu20.04)搭建

1.docker 及环境搭建略 2.宿主机驱动安装略 3.宿主机中能正确使用npu-smi 4.docker 拉取略 5.docker 容器启动 docker run -itd --device/dev/davinci0 --device/dev/davinci_manager --device/dev/devmm_svm --device/dev/hisi_hdc -v /run/board_cfg.ini:/run/b…

Pycharm远程连接实验室服务器Conda环境配置

如何配置Pycharm和远程服务器 这类博客较多&#xff0c;参考内容 https://blog.csdn.net/fengbao24/article/details/125515542 Python解释器选择&#xff08;conda3&#xff09; 1. Settings -> Add Interpreter -> On SSH 注意&#xff0c;这里的SSH需要在你把远程…

OpenHarmony南向开发案例:【 智能家居中控】

应用场景简介 智能家居。 今天打造的这一款全新智能家庭控制系统&#xff0c;凸显应用在智能控制和用户体验的特点&#xff0c;开创国内智能家居系统体验新局面。新的系统主要应用在鸿蒙生态。 工程版本 系统版本/API版本&#xff1a;OpenHarmony SDK API 8IDE版本&#xf…

c++的策略模式,就是多态

一、定义&#xff1a; 策略模式定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;而且使它们还可以相互替换。 策略模式让算法独立于使用它的客户而独立变化。 二&#xff0c;核心 抽象策略&#xff08;抽象基类&#xff09;&#xff08;Strategy&#xff09…

酷开科技逐步为用户构建健全的智慧家庭生活场景

大规模与精细化人群技术则是通过大量的计算能力和精细化的运营能力&#xff0c;建立用户专属数据储存区域&#xff0c;使得用户在使用不同电视的观影偏好和兴趣能够能够得以延续。 不拘泥于自有品牌终端数量&#xff0c;酷开系统除了集成在创维电视上&#xff0c;还服务于飞利…

idea上传项目到gitee(码云)

1、打开码云&#xff0c;新建仓库 2、创建 3、这就是创建成功的页面 4、复制仓库地址&#xff0c;后面需要用到 2、打开我们的项目&#xff1a;例如我现在的项目 1、idea创建git仓库 2、选择我们项目文件夹的目录 3、查看文件是否变色&#xff0c;变色表示成功了 4、添加到缓…

0元实现网站HTTP升级到HTTPS(免费https证书)

HTTPS就是在HTTP的基础上加入了SSL&#xff0c;将一个使用HTTP的网站免费升级到HTTPS主要包括以下几个步骤&#xff1a; 1 获取SSL证书 永久免费的https证书申请通道https://www.joyssl.com/certificate/select/free.html?nid16 免费的SSL证书同样能实现HTTPS&#xff0c;国…

SpringBoot内容协商机制(就是接受数据的类型如json,xml)

目录 一、基于请求头的内容协商机制 二、基于请求参数的内容协商机制 一、基于请求头的内容协商机制 如果我们的Java服务为浏览器和安卓手机同时提供服务&#xff0c;浏览器期望接受的请求是JSON格式&#xff0c;安卓客户端期望接收的请求是XML格式&#xff0c;这个时候是否需…