Generative Cooperative Learning for Unsupervised Video Anomaly Detection

news2024/11/18 1:44:22

介绍

在现实世界中,基于学习的异常检测任务极具挑战性,这主要是因为此类事件很少发生。由于这些事件的无约束性质,这一挑战进一步加剧。因此,获取足够的异常示例是相当麻烦的,而人们可以安全地假设,将永远不会收集到一个详尽的集合,特别是训练完全监督的模型所需的集合。为了使学习变得容易理解,通常将异常归因于与正常数据的显著偏差。因此,异常检测的一种流行方法是训练一类分类器,该分类器仅使用正常训练示例来学习主要数据表示。
在这里插入图片描述
单类分类(OCC)方法的一个明显缺点是正常训练数据的可用性有限,无法捕获所有正常变化[9]。
此外,OCC方法通常不适用于视频监控中经常出现的具有多种类别和广泛动态情况的复杂问题。
在这种情况下,看不见的正常活动可能会显著偏离学习到的正常表示,从而被预测为异常,从而导致误报[14,67]。

最近,弱监督异常检测方法获得了显著的普及[24,26,34,46,56,63],通过使用视频级别标签[50,65,67,69,74]降低了获得手动细粒度注释的成本。
具体而言,如果视频的某些内容异常,则将其标记为异常;如果视频的所有内容正常,则将视频标记为正常,需要手动检查完整视频。尽管这样的注释相对经济高效,但在许多实际应用中仍然不切实际。有大量的视频数据,特别是原始镜头,如果不产生注释成本,可以用于异常检测训练。不幸的是,据我们所知,在利用未标记的训练数据进行视频异常检测方面几乎没有任何值得注意的尝试。

在这项工作中,我们探索了视频异常检测的无监督模式,这肯定比完全、弱或一类监督更具挑战性(图1)。然而,由于最小的假设,它也更有价值,因此将鼓励开发新的更实用的算法。注意,文献中的术语“无监督”通常指假设所有正常训练数据的OCC方法[11,37,64,66]。

然而,它重新定义了部分监督的整体学习问题[19]。在接近视频中的无监督异常检测时,我们利用了一个简单的事实,即视频与静止图像相比信息丰富,并且异常比正常发生的频率低[8,29,51,67],并试图以结构化的方式利用此类领域知识。

为此,我们提出了一种生成合作学习(GCL)方法,该方法将未标记视频作为输入,并学习预测帧级异常分数预测作为输出。

生成器不仅重建了大量可用的正常表示,还通过使用新的负学习(NL)方法扭曲了可能的高置信度异常表示。相反,鉴别器估计实例异常的概率。对于无监督异常检测,我们从生成器中创建伪标签,并使用这些伪标签来训练鉴别器。在接下来的步骤中,我们从经过训练的鉴别器版本创建伪标签,然后使用这些标签来改进生成器。整个系统以交替的方式进行训练,在每一次迭代中,生成器和鉴别器都通过相互合作得到改进。

贡献。我们提出了一种异常检测方法,能够在复杂的监视场景中定位异常事件,而不需要标记的训练数据。据我们所知,我们的方法是首次在完全无监督模式下处理监控视频异常检测的严格尝试。提出了一种新的生成式合作学习(GCL)框架,该框架包括生成器、鉴别器和交叉监督。通过使用新的负学习方法,生成器网络被迫不重构异常。在两个大型复杂异常事件检测数据集(UCF犯罪和上海科技)上的大量实验表明,我们的方法比基线和几种现有的无监督和OCC方法提供了明显的增益。

相关工作

异常检测是图像[7,16,39]和视频[49,50,64,67,69]领域中广泛研究的问题。我们回顾了视频异常检测的不同监督模式和相互学习策略。

异常检测作为一类分类(OCC)。 OCC方法在广泛的异常检测问题中找到了自己的方法,包括医疗诊断[58]、网络安全[11]、监控安全系统[20、29、32、64]和工业检查[5]。其中一些方法使用手工制作的特征[3,31,38,55,71],而其他方法使用使用预训练模型提取的深度特征[42,47]。随着生成模型的出现,许多方法方法提出了此类网络的变体,以学习正常数据表示[12,35,36,43–45,61,62,64]。OCC方法发现,避免异常测试输入的well-reconstruction具有挑战性。该问题归因于这样一个事实,即由于OCC方法在训练时仅使用正常类数据,因此可能会实现无效的分类器边界,该边界在封闭正常数据的同时排除异常[64]。为了解决这一限制,一些研究人员最近提出了伪监督方法,其中使用正常训练数据生成伪异常实例[1,64]。

无监督异常检测。 使用未标记训练数据的异常检测方法在文献中相当稀少。根据图1所示的命名法,文献中大多数无监督方法实际上属于OCC类别。例如,MVTecAD[5]基准确保训练数据仅正常,因此其评估协议为OCC,继承该假设的方法本质上也是一类分类器[6,12]。与这些算法相比,我们提出的GCL方法能够从未标记的训练数据中学习,而不假设任何正常性。视频形式的训练数据符合关于异常检测的几个重要属性,例如,异常比正常事件更不频繁,并且事件通常在时间上是一致的。我们从这些线索中获得动机,以完全无监督的方式进行训练。

师生网络。 我们提出的GCL与师生(TS)知识提炼框架有一些相似之处[18]。GCL不同于TS框架,主要是因为它的目的不是知识提炼。此外,我们的生成器生成有噪声的标签,而我们的鉴别器对噪声相对鲁棒,它会清除这些标签,这在TS框架中不是这样的。

相互学习(ML)。GCL框架也与ML算法有相似之处[73]。然而,GCL的两个组成部分学习不同类型的信息,并且与ML算法所使用的监督学习相比,通过交叉监督进行训练。此外,在GCL中,每个网络的输出都经过阈值处理以产生伪标签。在ML中,队列学习匹配每个成员的分布,而在GCL中,每个成员尝试从其他成员生成的伪标签中学习。在无监督模式下,使用未标记的训练数据对队列进行相互学习尚未探索。

对偶学习。 这也是一种相关的方法,其中两种语言翻译模型相互交互教学[15]。然而,外部监督是使用预先培训的无条件语言专家模型提供的,该模型检查翻译质量。这样,不同的模型具有不同的学习任务,而在我们提出的GCL方法中,学习任务是相同的。合作学习的另一个变体[4]先前已被提出为跨不同领域的同一任务联合学习多个模型。例如,通过在RGB图像上训练一个模型和在深度图像上训练另一个模型来制定对象识别,然后这些模型传达域不变的对象属性。然而,在我们的GCL方法中,两个模型在同一领域中处理相同的任务。

方法

我们提出的用于异常检测的生成合作学习方法(GCL)包括特征提取器、生成器网络、鉴别器网络和两个伪标签生成器。图2显示了总体架构。接下来将讨论每个组件。
在这里插入图片描述

3.1 Training Data Organization

为了最小化计算复杂性并减少GCL的训练时间,类似于现有的SOTA[50,52,65,67,69,74],我们利用深度特征提取器将视频数据转换为紧凑的特征。所有输入视频被安排为片段,然后提取其特征。此外,这些特征按批次随机排列。在每次迭代中,使用随机选择的批次来训练GCL模型(图2)。

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

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

相关文章

Xcode9 无证书真机调试​

写在前面​ 公司分配了新的测试机,证书99台名额已满,所以上网找教程,学习了一下如何使用Xcode无证书进行真机调试。​ 一. 创建证书​ 1. 运行Xcode, Xcode–》Preference–》添加账号(能在appstore下载的账号)​ 2. 选中刚才添加的AppleID…

光华股份在深交所上市:市值突破51亿元,前三季度收入约10亿元

12月8日,浙江光华科技股份有限公司(下称“光华股份”,SZ:001333)在深圳证券交易所主板上市。本次上市,光华股份的发行价格27.76元/股,发行数量为3200万股,募资总额约为8.88亿元,扣除…

JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK11特性讲解】

JDK各个版本特性讲解-JDK11特性 lecture:波哥 一、JAVA11 概述 2018年9月26日,Oracle官方发布JAVA11.这是JAVA大版本周期变化后的第一个长期支持版本,非常值得关注.最新发布的JAVA11将带来ZGC HttpClient等重要特性,一共17个需要我们关注的JEP,参考文档http://openj…

Docker_简介、优势、架构、常用命令

Docker简介 Docker是什么 Docker就是将环境在不消耗大量资源的情况下复制出一个一样的环境 一次镜像,处处运行 内核级虚拟化 基于GO语言实现的开源项目 解决运行环境和配置问题的软件容器 容器与虚拟机比较 虚拟机是模拟的整套操作系统,会有资源占用…

Unity Cg着色器开发教程

Unity Cg着色器开发教程 学习在 Unity 中对图形管道进行编程,以便为游戏对象创建独特的视觉表面 课程英文名:Shader Development from Scratch for Unity with Cg 此视频教程共2.0小时,中英双语字幕,画质清晰无水印&#xff0c…

代码随想录算法训练营第二天| 977.有序数组的平方, 209.长度最小的子数组, 59.螺旋矩阵II

代码随想录算法训练营第二天| 977.有序数组的平方, 209.长度最小的子数组, 59.螺旋矩阵II 题目链接: 977.有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排…

ASEMI整流桥KBU610和KBP210封装参数区别

编辑-Z 很多人在选型时容易把KBU和KBP给搞混,这两种封装是有区别的,下面是整流桥KBU610和KBP210封装参数区别。 整流桥KBU610参数: 型号:KBU610 封装:KBU-4 最大重复峰值反向电压(VRRM)&…

1557_AURIX_TC275_复位控制单元以及相关寄存器

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 这是之前没看完的一张表,结合之前的一般看起来,大部分的模块还是支持重启机制的。 状态寄存器中可以读到上一次复位的触发原因,这个对于软件的一些状态判…

嵌入式分享合集118

一、模电--数电 晶体管 VS 二进制数 模电里面的二极管、三极管(开关状态)、晶闸管,分别对应数电的二进制数0和1。 放大器 VS 乘法/移位器 模电里的放大器就是把信号放大N倍,对应数电里面的乘法,当然如果乘的系数是2的…

C# SuperSocket 手把手教你入门 傻瓜教程---6(SuperSocket内置的命令行协议)

C# SuperSocket 手把手教你入门 傻瓜教程系列教程 C# SuperSocket 手把手教你入门 傻瓜教程---1(服务器单向接收客户端发送数据) C# SuperSocket 手把手教你入门 傻瓜教程---2(服务器和客户端双向通信) C# SuperSocket 手把手教…

No.1 初步认识Vue2.0

目录一、准备工作二、简单使用Vue2.1 初步使用Vue绑定2.2 Vue中数据绑定(用于表单元素,即有value属性的元素)2.2.1 单向数据绑定2.2.2 双向双向数据绑定2.2.3 数据绑定的简写2.3 Vue中el与data的两种书写方式2.3.1 el的写法——方式一2.3.2 e…

流体力学课上的老师这句话,让我义无反顾的上了CFD这艘“贼船”

CAE(Computer Aided Engineering):利用计算机辅助求解分析复杂工程和产品的结构力学性能并进行优化,涵盖的分析对象包括结构、流体、热、电磁等。在工业4.0和中国制造2025大趋势下,CAE技术已上升为国家战略&#xff0c…

葡聚糖修饰线性聚乙烯亚胺(Dex-SS-LPEI)|A54修饰葡聚糖-PLGA嫁接物胶束

葡聚糖修饰线性聚乙烯亚胺(Dex-SS-LPEI)|A54修饰葡聚糖-PLGA嫁接物胶束 葡聚糖修饰线性聚乙烯亚胺(Dex-SS-LPEI) 产品描述:通过二硫吡啶端基化的线性聚乙烯亚胺(LPEI-SSPy,M_n5 000)与巯基化葡聚糖(Dex-SH,Mw5 000)的偶联反应,制备出生物还原响应的葡聚糖基线…

基于数字孪生概念,开启精细化城市管理模式

一座城市囊括森罗万象,各个领域的数据资源繁冗复杂,政务、经济、民生等问题层出不穷,管理者基本上很难对整座城市进行统一管理。由此,业内提出了“智慧城市”的概念。 最开始的时候,智慧城市可视化仅仅停留在把数据图形…

集成Springboot+Prometheus+Grafana

Springboot pom.xml导入prometheus依赖 <!--prometheus--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>io.mi…

Docker——DockerCompose简单使用

目录 一、DockerCompose 1.1 基本介绍 1.2 Centos7安装DockerCompose 1.2.1 安装 1.2.2 修改文件权限 1.2.3 Base自动补全命令 二、部署微服务集群 一、DockerCompose 1.1 基本介绍 DockerCompose&#xff1a;可以基于Compose文件帮我们快速部署分布式应用&#xff0c;而…

Mysql int(11)和Oracles nubmer(11) 的区别

先说Mysql int(11)到底代表什么意思 这里的int(11)不是表示限制int的长度为11&#xff0c;而是字符的显示宽度&#xff0c;在字段类型为int时&#xff0c;无论你显示宽度设置为多少&#xff0c;int类型能存储的最大值和最小值永远都是固定的 那么这个显示宽度到底有什么用呢&am…

vue项目中,js代码动态控制网页的link标签与title内容

最近正在开发一个微模块系统&#xff0c;产品想要根据子系统的不同&#xff0c;动态生成link标签与title中的内容&#xff0c;于是就做了一个简单的demo&#xff0c;希望分享出来给到后续有同样需求的伙伴&#xff0c;共勉。 首先肯定是需要有一套**.svg**的图标来对应相应的系…

Blender 纹理绘制

文章目录简介.进入纹理绘制.笔刷.自由线.模糊.涂抹.克隆.填充.遮罩.保存绘制好的纹理.简介. 1 纹理绘制允许我们直接在图片上画出图案 2 要求模型必须已经展开UV 进入纹理绘制. 1 左上角视窗类型里选择 3D视图/纹理绘制 笔刷. 自由线. 1 纹理&#xff1a;如果使用的是程…

Docker[6]-.DockerCompose

1 DockerCompose介绍 Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose&#xff0c;您可以使用 YML 文件来配置应用程序需要的所有服务。然后&#xff0c;使用一个命令&#xff0c;就可以从 YML 文件配置中创建并启动所有服务。 一键启动所有的服务 Docker…