CVPR 2024 | Open-Vocabulary Video Anomaly Detection

news2024/11/25 0:44:42

CVPR 2024 - Open-Vocabulary Video Anomaly Detection

  • 论文:https://arxiv.org/abs/2311.07042
  • 原始文档:https://github.com/lartpang/blog/issues/14

在这里插入图片描述

这篇文章主要研究了开放词汇视频异常检测(openvocabulary video anomaly detection,OVVAD)的问题,这是一个具有挑战性但实际重要的问题。

传统方法不能处理开放词汇场景下的视频异常检测:

  • 主要是因为它们通常针对特定类别或已知异常进行训练和检测,缺乏对未知异常(即开放词汇)的泛化能力。
  • 此外,传统方法往往难以充分挖掘和利用视频数据中的时空信息以及外部知识,从而限制了其在开放词汇场景下的性能。

该研究提出了一种基于预训练大型模型的解决方案。利用语言图像预训练模型,如 CLIP 作为基础,得益于其强大的零样本泛化能力。

在这里插入图片描述

具体而言,将开放词汇视频异常检测任务分解为类无关检测(class-agnostic detection)和类特定分类(class-specific categorization)这样两个互补的子任务,以更好地处理开放词汇视频异常检测问题。并引入了几个专用模块来促进对基线和新异常的检测。

  • 对于类无关的检测:设计了时序适配器模块(TA)和语义知识注入模块(SKI),主要旨在提高检测性能;
    • 时序适配器模块 TA:现有的基于时序 Transformer 的设计面对新的类别时性能衰退严重,可能的原因是其中的额外参数特化于训练集,损害了对于新类别的泛化能力。因此本文设计了一个构建在经典的图卷积网络之上的几乎无权重的时序适配器来处理时序依赖,即 x t = LN ( softmax ( H ) x f ) , H i , j = − ∣ i − j ∣ σ x_t = \text{LN}(\text{softmax}(H)x_f), H_{i,j}=\frac{-|i-j|}{\sigma} xt=LN(softmax(H)xf),Hi,j=σij 来对各帧特征进行交互重组,这里仅有的额外参数来自于 LN。
    • 语义知识注入模块 SKI:该模块旨在将额外的语义知识引入视觉检测任务中,以提高模型性能。SKI 引入额外的关于异常场景的短语(包括场景名词和动作动词)作为先验知识输入 CLIP。然后使用视觉特征利用类似于 cross-attention 的操作从文本特征中寻找相关的语义知识 F k n o w = sigmoid ( x t F t e x t ⊤ ) F t e x t ⊤ / l F_{know} = \text{sigmoid}(x_t F^{\top}_{text})F^{\top}_{text}/l Fknow=sigmoid(xtFtext)Ftext/l。这里使用 sigmoid 函数来促使视觉信号可以组合更多相关的语义概念。模块输出直接送入二值检测器中获得类无关检测的帧异常和视频异常得分。
  • 对于细粒度异常分类:考虑到 CLIP 这样的预训练 VLM 面对视频相关的数据时 zore-shot 能力有限,本文使用新异常合成模块(NAS)基于潜在的异常类别生成可能的伪新异常视频样本,以帮助模型更准确地分类新异常类型。主要由三个关键过程组成:
    • 首先,使用预定义的模板提示生成器(prompt_gen)来提示大型语言模型(LLMs),例如 ChatGPT 和 ERNIE Bot,以生成有关现实世界中“战斗”的十个简短场景描述。
    • 然后,使用 AI 生成模型(AIGC)例如 DALLE mini 和 Gen-2,从生成的文本描述中产生相应的图像(Igen)或短视频(Sgen)。
    • Igen 会从单个图像转成视频片段,具体使用不同的检测比例中心剪裁图像中的对应区域,然后放缩到原始尺寸后,堆叠形成新的视频片段 Scat。
    • 为了模拟完整长异常视频中真实世界场景,这里将生成的 Scat 或者 Sgen 被随机插入到正常视频中的随机位置上,从而获得最终的伪异常视频样本 Vnas。
    • 利用这些 Vnas 可以微调训练在现有标准数据集(包含正常样本和异常样本)上的模型,从而增强其对于新异常的泛化能力。

实验结果表明,该模型在三个公开基准 UBnormal,UCF-Crime,XD-Violence 上优于现有方法,特别是在处理新类别时表现出明显的优势。

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

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

相关文章

网络广播系统是什么?网络广播的作用及应用

网络广播系统是什么?网络广播的作用及应用 商场广播的目的:提醒人员有序、监控配合点对点呼叫、物品遗失广播、背景音乐防噪、紧急情况呼叫等等,各个场景有各个场景的需求模式,广播系统的建设重点在于突发情况的应对,国家已经把广…

【NPS】内网穿透工具之 NPS

一、linux 安装 nps nps-releases:https://github.com/ehang-io/nps/releases 1.1、在 ubuntu下安装对应版本(非docker) 可以看到如下指令 wget https://ghproxy.com/https://github.com/ehang-io/nps/releases/download/v0.26.10/linux…

麒麟系统(kylin)安装ssh后,无法上传文件

1.赋予文件夹权限 chmod 777 filename 2.修改ssh配置文件 vi /etc/ssh/sshd_config 将Subsystem sftp /xxxxx 改为Subsystem sftp internal-sftp 重启服务 sudo service sshd restart 断开ssh连接,重新连接,即可正常上传文件

c++之旅第九弹——模版

大家好啊,这里是c之旅第九弹,跟随我的步伐来开始这一篇的学习吧! 如果有知识性错误,欢迎各位指正!!一起加油!! 创作不易,希望大家多多支持哦! 一.模版的概念…

1分钟以上情感短视频素材去哪里找?推荐五个素材网站

在这个充斥着各种短视频的世界里,我就像是一名寻宝的冒险家,不断在素材的海洋中潜水,寻找那些能让我的视频金光闪闪的珍珠。让我告诉你,这不仅仅是一场寻宝,这简直是一场奇妙的冒险。九才素材网: 我的创作…

运用OSI模型提升排错能力

1. OSI模型有什么实际的应用价值? 2. 二层和三层网络的区别和应用; 3. 如何通过OSI模型提升组网排错能力? -- OSI - 开放式系统互联 - 一个互联标准 - 从软件和硬件 定义标准 - 不同厂商的设备 研发的技术 - 具备兼容性 -- O…

vim卡死了,没有反应怎么办?

解决办法: 很有可能是你有个在window下的好习惯,没事儿就ctrl s保存文件。但是在vim里,ctrl s默认是发送一种流控制信号,通常用于停止终端的输出,所以你的屏幕就卡死了。 解决办法也很简单,按下ctrl q即…

element-ui backtop 组件源码分享

今日简单分享 backtop 组件的源码实现,从以下三个方面: 1、backtop 组件页面结构 2、backtop 组件属性 3、backtop 组件事件 一、backtop 组件页面结构 二、backtop 组件属性 2.1 target 属性,触发滚动的对象,类型 string&am…

立方变自身-JavaB(6届)

public class L3 {public static void main(String[] args) {int cnt 0;//记录满足要求的个数//立方再往上&#xff0c;各位相加不会等于原数for (int i 1; i < 100; i) {//得到三次方int ans (int) Math.pow(i, 3);//得到立方的每位数相加int number get(ans);//判断是…

点击notify里面的通知,实现路由跳转

需求描述&#xff1a; 右上角有出来通知用户的有代办任务的消息框&#xff0c;点击消息框会跳转到代办路由页面。 duration:3000//弹窗显示时间, 毫秒 getElementsByClassName() – 获取所有指定类名的元素 效果展示&#xff1a;

基于 GPIO 、Pinctl子系统、设备树的LED 驱动程序

理论部分&#xff1a; 编写思路&#xff1a; GPIO 的地位跟其他模块&#xff0c;比如 I2C 、 UART 的地方是一样的&#xff0c;要使用某个引脚&#xff0c;需要先把引脚配置为 GPIO 功能&#xff0c;这要使用 Pinctrl 子系统&#xff0c;只需要在设备 树里指定就可以。在…

java:字符集和字符流

字符集 规定了字符和二进制之间对应关系的一张表 字节是计算机最基本的存储单位 字符则是通过字符组成和编码而成的文本 常见字符集 1,ASCII字符集 基础字符编码标准,包含128个字符,只包括英文字母,数字和一些常见的符号 一个字节表示一个字符 所有的字符集均兼容ASCII…

论文复现:nn.L1Loss()

nn.L1Loss() 是 PyTorch 中的一个损失函数&#xff0c;属于 torch.nn 模块的一部分。它计算预测值和真实值之间差的绝对值的平均值&#xff0c;也就是 L1 距离&#xff08;或曼哈顿距离&#xff09;。这个损失函数常用于回归任务&#xff0c;特别是当你希望减少异常值对总体损失…

Jenkins+AWS CodeCommit(git)

问题 需要使用Jenkins搭建一套CI流&#xff0c;即通过git代码托管拉取代码&#xff0c;构建自定分支的代码&#xff0c;构建出jar&#xff0c;并进一步构建出docker镜像&#xff0c;并推送到docker私有库中。 准备 AWS云准备 这里假设已经在CodeCommit已经存在私有git代码仓…

springCloudAlibaba集成sentinel实战(超详细)

一、Sentinel介绍 1. 什么是Sentinel Sentinel是阿里开源的项目&#xff0c;提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。 分布式系统的流量防卫兵&#xff1a; 随着微服务的普及&#xff0c;服务调用的稳定性变得越来越重要。Sentinel以“流…

纯css实现左右拖拽改变盒子大小

效果&#xff1a; 代码 <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html;charsetutf-8"><title></title><style>body {background-color: black;color: white;}.column {ove…

超2亿欧元,全球首个量子专项基金启动新一轮募资

今天&#xff0c;Quantonation宣布已完成其第二期基金的7000万欧元募资&#xff0c;计划到2025年初达到2亿欧元的规模。这家法国风险投资公司在全球范围内对量子计算、传感和通信应用领域的初创公司进行投资&#xff0c;主要关注于预种子轮和种子轮阶段。 其第一期基金在2021年…

2024/4/5—力扣—字符串相乘

代码实现&#xff1a; 方法一&#xff1a;常规解法——超出整数表示范围 long long char_to_num(char *str) {long long num 0;for (int i 0; i < strlen(str); i) {num num * 10 (str[i] - 0);}return num; }char* multiply(char *num1, char *num2) {long long a cha…

零基础教程|四步学会自制宣传手册

在当今竞争激烈的市场中&#xff0c;一本精美而引人注目的宣传手册是吸引客户和推广产品的重要工具。但对于许多人来说&#xff0c;制作宣传手册似乎是一项艰巨的任务&#xff0c;特别是对于零基础的人来说。然而&#xff0c;通过以下四个简单的步骤&#xff0c;您也可以轻松学…

每日两题 / 142. 环形链表 II 146. LRU 缓存(LeetCode热题100)

142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; 用哈希记录走过的节点即可 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:Lis…