Synthetic Temporal Anomaly Guided End-to-End Video Anomaly Detection 论文阅读

Synthetic Temporal Anomaly Guided End-to-End Video Anomaly Detection 论文阅读

  • Abstract
  • 1. Introduction
  • 2. Related Work
  • 3. Methodology
    • 3.1. Architecture
      • 3.1.1 Autoencoder
      • 3.1.2 Temporal Pseudo Anomaly Synthesizer
    • 3.2. Training
    • 3.3. Anomaly Score
  • 4. Experiments
    • 4.1. Datasets
    • 4.2. Experimental Setup
    • 4.3. Quantitative Results
    • 4.4. Qualitative Results
  • 5. Conclusion
  • 阅读总结

文章信息:
在这里插入图片描述
中文标题:伪时间异常引导的端到断的视频异常检测
文章信息:
在这里插入图片描述

发表与:ICCV 2021
原文链接:https://arxiv.org/abs/2110.09768
源代码:https://github.com/aseuteurideu/STEAL

Abstract

由于异常样本的有限可用性,视频异常检测通常被视为一类分类(OCC)问题。解决这个问题的一种流行方法是利用仅在正常数据上训练的自编码器(AE)。在测试时,预期AE能够良好地重构正常输入,同时对异常重构较差。然而,一些研究显示,即使只有正常数据的训练,AE也经常会开始将异常样本重构得很好,从而降低了其异常检测性能。为了缓解这一问题,我们提出了一种时间伪异常合成器,利用仅有的正常数据生成假异常样本。然后,训练AE以最大化伪异常的重构损失,同时最小化正常数据的损失。通过这种方式,鼓励AE为正常和异常帧生成可区分的重构。对三个具有挑战性的视频异常数据集进行的大量实验和分析表明,我们的方法在提高基本AE在超越几种现有最先进模型方面的有效性方面表现出了有效性。

1. Introduction

最近,视频序列中的异常检测引起了极大的关注,因为在监控系统中具有重要意义 [37, 41, 18, 4, 16, 21, 19, 1, 46]。由于在现实生活中异常事件很少发生,并且收集大量异常示例可能很麻烦,因此这项任务非常具有挑战性。因此,异常检测通常被视为一类分类(OCC)问题,其中仅使用正常数据来训练新颖性检测模型 [7, 18, 4, 35, 39, 17, 14]。在测试时,不符合学习到的表示的事件被视为异常。

解决OCC问题的一种常见方法是使用深度自动编码器(AE)[8, 45, 39, 4, 21, 29, 20, 35, 7]。通过在正常数据上训练以最小化重构误差,鼓励模型在其潜在空间中提取代表正常数据的特征。这样,在测试时,预期网络会对异常情况进行差劲的重构。然而,正如几位研究人员之前观察到的[47, 26, 39],AEs 也经常能够成功重构异常示例。在这种情况下,正常数据和异常数据之间的重构损失可能不足以成功识别异常情况。

最近,在OCC领域的一个新的补充是利用从正常训练数据中生成的伪异常。例如,Zaheer等人[39]将正常数据中的两个随机图像融合以生成外观异常,并将它们用于训练图像分类器。然而,这项工作需要重构器的旧状态和新状态,并在两阶段方案中进行训练。此外,该方法仅限于外观,并未考虑任何用于异常检测的时间信息。相反,我们的工作提出了一个简单但非常有效的时间伪异常合成器,以一种端到端的方式辅助AE的训练,没有任何复杂的技巧。对于每个伪异常示例作为输入,我们的AE模型被训练以产生高重构损失。这有助于限制AE在测试时重构异常的能力。

我们的方法灵感来源于这样一种直觉,即检测快速或突然变化的运动在很大程度上是重要的,并与检测异常密切相关。例如,人们常常观察到动物通常将强烈的运动与危险情况联系起来。这种情况对人类也是类似的。例如,人们异常奔跑可能表明附近存在生命威胁的情况,如火灾或自然灾害。此外,斗殴或抢劫也可能表现为突然的强烈动作。其他一些例子可能包括在人行道上骑自行车或车辆,超速行驶的车辆等。因此,我们假设大多数异常事件都可以通过所描述的运动来表征。

为此,我们提出了一种时间伪异常合成器,将合成的异常示例注入到自动编码器(AE)的训练中。为了从正常数据中模拟异常运动,我们任意地跳过几帧来生成伪异常序列,如图1所示。然后,进行整体训练,最小化正常数据的重建损失,同时最大化合成异常数据的重建损失。值得注意的是,与现有的基于运动跟踪的异常检测方法不同,我们的方法不提取任何手动选择的运动信息。相反,通过将时间伪异常合成器与深度AE相结合,我们利用深度学习的力量来检测视频中各种异常活动。我们广泛的实验证明了我们的方法在三个具有挑战性的异常检测数据集(Ped2,Avenue和ShanghaiTech)中具有卓越的能力。
在这里插入图片描述
图1. 正常、异常和伪异常帧的可视化。在给定红线作为参考线的情况下,(a)显示了一个正常的运动模式,其中人们以通常的速度行走。(b)显示了异常运动,即异常对象在几帧内几乎完全穿过参考线。©显示了我们从正常帧中生成的伪异常合成器的输出,模拟了异常运动。

总之,本文的贡献如下:1) 我们提出利用时间伪异常合成器辅助训练单类分类器,产生具有高度区分性的正常和异常重构。2) 大量实验表明,与广泛存在的一系列最新工作[12, 25, 22, 19, 44, 33, 8, 45, 20, 21, 34, 39, 1, 4, 18, 7, 29, 10]相比,我们的方法在三个基准数据集上表现出了显著的优越性。

2. Related Work

由于很难获取异常示例,因此流行的异常检测方法是一类分类(OCC),其中仅使用正常数据进行训练。一些研究利用通过目标跟踪器提取的特征来训练一类分类器。然而,这种手动选择的特征往往会限制网络在不同类型活动上的泛化能力。

随着深度学习的近期流行,一些研究人员利用自动编码器(AE)网络来学习正常数据的表示。AE仅在正常数据上进行重建或预测任务的训练。在测试时,模型预期会产生异常数据的差劲重建,对应着较高的异常分数。一些基于AE的方法仅使用外观信息,而另一些则同时使用外观和动态信息。然而,AE通常也能够重建异常数据,因此正常和异常数据变得难以区分。

已经有一些尝试限制自动编码器(AE)在异常数据上的重建能力。基于记忆的网络在AE的编码器和解码器之间的潜在空间上采用了一种记忆机制。该网络被限制只能使用记忆中的正常定义,从而限制了其重建异常数据的能力。然而,这样的网络高度依赖于记忆大小,而且小型记忆可能也会限制它们对正常数据的重建能力。在我们的方法中,我们也尝试限制AE在异常输入上的重建能力。但是,我们没有使用记忆网络,而是利用伪异常合成器生成虚假异常示例,并鼓励AE在这些示例上产生高重建损失。

与我们的工作最相关的是OGNet [39],它将正常图像融合以生成外观异常,并使用正常和伪异常示例来训练网络。此外,OGNet 需要一个两阶段的对抗训练方案,其中鉴别器是基于两个先前冻结的生成器模型进行训练的。另一方面,我们合成异常的方法有很大的不同。我们提出利用时间信息而不是外观来合成异常。此外,我们的方法是端到端可训练的,并且与传统的AE训练相辅相成。

为了增强正常数据和异常数据的区分能力,一些研究者提出采用真实的异常示例进行训练,从而偏离了OCC的基本定义。而我们的方法则利用仅正常数据来合成用于训练的伪异常示例,因此遵循了传统的OCC协议。

3. Methodology

在本节中,我们介绍了我们提出的STEAL(Synthetic TEmporal AnomaLy guided end-to-end video anomaly detection)网络。由于在训练过程中缺乏异常示例,大多数基于AE的异常检测方法在测试时经常无法区分异常与正常数据。因此,我们提出利用伪异常示例来增强AE的性能,这些示例是通过我们的伪异常合成器仅使用正常训练视频生成的。

3.1. Architecture

我们的整体架构如图2所示。

在这里插入图片描述

图2. 我们的方法使用正常序列和伪异常序列训练自动编码器。伪异常是仅使用正常数据合成的。伪异常示例的数量由概率p调节。总体配置旨在减少正常输入的重构损失,同时增加伪异常输入的重构损失。

我们训练一个传统的自动编码器(AE)作为我们的基线模型,它将一系列正常帧作为输入,并将其重构作为输出。为了补充基线训练,我们提出了一个伪异常合成器,用于生成虚假的异常示例。然后,这些示例以概率 p 用于训练。这样,我们通过迫使AE在这些伪异常示例上增加重构损失来限制其重构能力。最后,使用帧级别的重构损失计算异常分数。接下来讨论我们架构的每个组件:

3.1.1 Autoencoder

为了捕获鲁棒性的表示,通常设计自动编码器 ( A E ) (AE) AE以接收多帧输入[7, 29, 8, 45]。因此,我们将我们的AE模型设置为接收大小为 T × C × H × W T×C×H×W T×C×H×W的输入 X X X,其中 T 、 C 、 H T、C、H TCH W W W分别是输入序列中的帧数、通道数、帧的高度和宽度。重构 X ^ \hat{X} X^如下所示:
在这里插入图片描述

其中 ε \varepsilon ε D \mathcal{D} D分别表示模型的编码器和解码器。

传统上,自动编码器(AE)是使用训练集中的正常数据进行训练的。在测试时,它应该能够很好地重建正常数据,而对异常示例的重建效果较差。然而,并非总是如此。自动编码器有时会“过分泛化”,也会对异常示例进行重建 [47, 26, 39]。由于在训练时没有使用异常示例,因此很难训练出基于重建的异常检测模型 [39]。为了解决这个问题,我们提出了一个伪异常合成器,它可以提供虚假的异常示例。然后,利用这些示例来限制自动编码器的生成能力,并鼓励其在任何类型的异常输入上产生高重建损失。

在训练期间,视频帧X的序列被提供给网络作为:
在这里插入图片描述

其中, X P X_P XP是使用我们提出的伪异常合成器生成的一系列帧, X N X_N XN是来自正常训练数据的一系列帧, p p p是定义所使用的伪异常示例比例的概率。请注意,伪异常仅在训练期间引入。在测试时,我们只需将原始的视频帧序列输入到自动编码器中。

3.1.2 Temporal Pseudo Anomaly Synthesizer

在我们提出的方法中,我们遵循仅利用正常数据进行训练的OCC协议。因此,为了生成时间伪异常,我们仅利用正常的训练视频。类似于训练传统自动编码器的常见做法,我们从训练视频 V i = { I 1 , I 2 , . . . , I K i } V_i = \{I_1, I_2, ..., I_{K_i} \} Vi={I1,I2,...,IKi}中提取帧序列 X N X_N XN,其长度为 K i K_i Ki帧,方法是随机选择一个帧索引 n n n V i V_i Vi中,然后取连续的T帧作为序列,具体描述如下:
在这里插入图片描述

另一方面,伪异常 X P X_P XP 是通过将跳帧参数 s s s引入到方程(3)中来合成的:
在这里插入图片描述

跳帧参数 s 控制我们跳过的帧数,用于生成时间上的伪异常示例。当 s = 2 时,示例伪异常序列的可视化如图 1( c ) 所示。

3.2. Training

为了学习正常的表示,常规的自编码器通过最小化输入帧 I n + t I_{n+t} In+t 与其重构 I ^ n + t \hat{I}_{n+t} I^n+t 之间的重构损失来进行训练:
在这里插入图片描述

这里的 ∥ . ∥ \lVert.\rVert .F 表示Frobenius范数。

对于我们的时间伪异常合成器生成的 X P X_P XP,损失可以类似地定义为:
在这里插入图片描述

请注意方程(6)中的负号,它是为了增加伪异常示例的重构损失。这有助于限制我们的自编码器在异常输入上的重构能力。

然后,训练的总损失 L L L采用以下形式:
在这里插入图片描述

3.3. Anomaly Score

在测试阶段,与现有方法[7, 29, 18, 8, 45, 39, 41]相一致,我们在帧级别进行异常分数预测。此外,我们通过利用基于重构的峰值信噪比(PSNR)来计算这些分数。根据Mathieu等人的研究[23],PSNR通常比重构损失本身更好地评估图像质量。最近,它还被用于异常检测[29, 18],其中输入帧与其重构之间的PSNR用于计算异常分数。在我们的方法中,我们计算PSNR P t \mathcal{P}_t Pt如下:
在这里插入图片描述

其中, R R R I ^ t \hat{I}_t I^t中的像素总数, t t t是帧索引,而 M I ^ t M_{\hat{I}_t} MI^t I ^ t \hat{I}_t I^t的最大可能值。

然后,按照[29, 18]的方法,我们通过对测试视频 V i V_i Vi中所有帧的PSNR值进行最小-最大归一化,将其归一化到[0, 1]的范围内,具体如下所示:
在这里插入图片描述
在方程(9)中,较高的 Q t \mathcal{Q}_t Qt表示与Vi中的其他帧相比较低的重构损失,反之亦然。因此,我们计算最终的异常分数 A t \mathcal{A}_t At如下:
在这里插入图片描述

4. Experiments

4.1. Datasets

在这里插入图片描述

4.2. Experimental Setup

Evaluation criteria.为了评估我们的方法,我们遵循广泛使用的帧级ROC曲线下面积(AUC)指标。ROC曲线通过变化异常分数的阈值来绘制整个数据集的假阳性率和真阳性率。更高的AUC值表示更准确的结果。
Parameters and implementation details.我们采用了最近由Gong等人提出的生成式架构作为我们的基线模型,它接受大小为16×1×256×256的输入序列X(公式(1)),并产生相同大小的重构。在训练期间(公式(5)-(6)),所有16帧都用于计算重构损失。在测试时,遵循[7]的做法,仅考虑16帧中的第9帧进行异常分数的计算(公式(8)-(10))。然而,与原始实现不同的是,我们移除了记忆网络,仅利用了自动编码器部分。此外,我们添加了Tanh输出层,使输出范围为[-1, 1]。
STEAL Net和基线的实现是在PyTorch [30]中完成的。使用Adam [13]进行训练,学习率设置为 1 0 − 4 10^{-4} 104,批量大小设置为4。公式(4)中的跳帧参数 s s s设置为{2, 3, 4, 5},这意味着每次生成伪异常序列时,s可以随机选择为2、3、4、5中的一个。公式(2)中的伪异常概率 p p p设置为0.01。在我们的结果中,基线指的是在没有伪异常的情况下训练的模型,即公式(2)中的概率 p p p设置为0。

4.3. Quantitative Results

表1显示了我们提出的STEAL Net在Ped2 [16]、Avenue [19]和ShanghaiTech [21]数据集上的AUC比较结果。我们的方法在所有三个数据集上均优于基线。具体来说,在Ped2、Avenue和ShanghaiTech数据集上,我们的方法分别实现了5.9%、5.6%和2.4%的AUC绝对增益。这表明我们的方法成功地提高了基线在多个不同数据集上的性能。
在这里插入图片描述

与现有方法相比,我们在所有三个数据集上都取得了优越的性能。尽管MNAD-Prediction [29]在Avenue数据集上的性能比我们的方法更好,但其优越性也可能归因于不同的基本架构以及训练设置,即预测任务。然而,与MNAD-Reconstruction相比,后者具有与我们类似的基本架构并执行相同的重建任务,我们的模型表现出明显更好的性能,从而证明了我们方法的优越性。

总体而言,STEAL Net的优越性能验证了我们的假设,即多种不同类型的异常可能可以通过其中存在的运动特征来表征。因此,通过利用时间伪异常合成器,我们释放了深度自动编码器在更准确的异常检测方面的潜力。

4.4. Qualitative Results

图3的前三列显示了STEAL Net和基准模型生成的输入图像及其重构图像的比较。此外,最后两列展示了重构误差热图。这些热图是通过计算重构图像与输入帧之间每个像素的平方误差,然后进行最小-最大归一化得到的。由于我们的方法专门训练用于在异常输入上产生高重构损失,因此它会尝试通过扭曲异常区域来满足这一条件。另一方面,与多项研究报告一致,基准模型对异常的重构效果良好,因此通常无法产生明显的区分。
在这里插入图片描述

5. Conclusion

我们提出了利用伪异常的方法,这些异常是使用正常数据生成的,以辅助自动编码器(AE)进行视频异常检测的训练。除了常规的AE训练,其中网络仅尝试最小化输入的重构误差之外,我们进一步鼓励网络在伪异常上最大化此损失。我们的方法在三个具有挑战性的视频异常数据集上广泛分析了其在增强AE方面的有效性,从而使其在多个现有先进模型面前表现出优势。

阅读总结

方法很简单,通过跳帧的方式合成伪异常来作为部分输入。有时间复现一下,有几个细节地方感觉说的还是有点问题的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

R语言更新版本

目录 一、更新R语言 1、安装最新的R语言版本 2、移动之前安装的packages 3、将Rstudio连接到最新的R语言 二、Rstudio更新 一、更新R语言 1、安装最新的R语言版本 查看当前R语言版本: R.version.string 下载最新的R语言安装包:R: The R Project…

王阳明:在心里中一个春天!吃好喝好不等于吃饱喝足,出租屋的第二个周末——早读(逆天打工人爬取热门微信文章解读)

种一个春天,等下一个天亮 引言Python 代码第一篇 霸王别坤第二篇 (跳)洞见 王阳明:人生若是太苦寒,在心里种一个春天第三篇 人民日报 来了!新闻早班车要闻社会政策 结尾 屋宽不如心宽,物整亦是心…

什么是微隔离技术?

微隔离产生的背景 首先来看下南北向流量以及东西向流量的含义 南北向流量 指通过网关进出数据中心的流量,在云计算数据中心,处于用户业务虚拟机(容器)跟外部网络之间的流量,一般来说防火墙等安全设备部署在数…

基于极大似然算法的系统参数辨识matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于极大似然算法的系统参数辨识。对系统的参数a1,b1,a2,b2分别进行估计,计算估计误差以及估计收敛曲线&#xff0…

【MySQL】表的增删改查——MySQL基本查询、数据库表的创建、表的读取、表的更新、表的删除

文章目录 MySQL表的增删查改1. Create(创建)1.1 单行插入1.2 多行插入1.3 替换 2. Retrieve(读取)2.1 select查看2.2 where条件2.3 结果排序2.4 筛选分页结果 3. Update(更新)3.1 更新单个数据3.2 更新多个…

UE4.27_ParticleSystem(没写完的材料)

UE4.27_ParticleSystem(没写完的材料) 参考实例: UE4[蓝图]下雪效果及雪的材质的实现

Learn OpenGL 04 纹理

纹理环绕方式 纹理坐标的范围通常是从(0, 0)到(1, 1),那如果我们把纹理坐标设置在范围之外会发生什么?OpenGL默认的行为是重复这个纹理图像(我们基本上忽略浮点纹理坐标的整数部分),但OpenGL提供了更多的选择&#xf…

UI 易用性测试 以及自动化实现!

GUI 是指图形用户界面,UI 是指用户界面,对于纯软件系统,这两者没有本质的区别,GUI易用性测试与 UI 易用性测试内容一致。但是如果测试的对象是一个产品,这两者则存在区别,对于产品 UI 则不仅仅包括 GUI&…

基于springboot+vue实现高校学生党员发展管理系统项目【项目源码+论文说明】

基于springboot实现高校学生党员发展管理系统演示 摘要 随着高校学生规模的不断扩大,高校内的党员统计及发展管理工作面临较大的压力,高校信息化建设的不断优化发展也进一步促进了系统平台的应用,借助系统平台可以实现更加高效便捷的党员信息…

JavaSE面试——Collection接口和Collections类

集合分为:Collection 和 Map 两个体系 java8为 Collection 的父接口( Iterable )提供了一个默认的 Foreach 方法,我们可以使用它进行集合遍历 1. Collection 接口 Collection接口是是Java集合类的顶级接口之一,Collection 接口有 3 种子类型…

RESTful API关键部分组成和构建web应用程序步骤

RESTful API是一种基于HTTP协议的、符合REST原则的应用程序接口。REST(Representational State Transfer)是一种软件架构风格,用于设计网络应用程序的通信模式。 一个RESTful API由以下几个关键部分组成: 资源(Resour…

基于springboot实现数据资产管理系统 项目【项目源码+论文说明】

基于springboot实现数据资产管理系统演示 摘要 固定资产管理系统主要是完成对系统用户管理、资产信息管理、资产变更管理、资产用途管理、资产类别管理和资产增减管理。因为利用本系统管理员可以直接录入信息,修改信息,删除信息,并且若在录入…

魔众智能AI系统v2.1.0版本支持主流大模型(讯飞星火、文心一言、通义千问、腾讯混元、Azure、MiniMax、Gemini)

支持主流大模型(讯飞星火、文心一言、通义千问、腾讯混元、Azure、MiniMax、Gemini) [新功能] 系统全局消息提示 UI 全新优化 [新功能] JS 库增加【ijs】类型字符串,支持默认可执行代码 [新功能] 分类快捷操作工具类 CategoryUtil [新功能…

RocketMQ-存储与弹性伸缩

存储与弹性伸缩 一、介绍二、存储架构图1.CommitLog2.ConsumeQueue3.IndexFile 三、消息读写流程1.写入流程1.1 获取Topic元数据1.2 消息投递1.3 消息写入 2.读取流程2.1 获取Topic元数据2.2 消息拉取2.3 消息消费 四、消息持久化1.页缓存2.刷盘2.1 同步刷盘2.2 异步刷盘 五、集…

力扣hot100:76.最小覆盖子串(滑动窗口)

本题使用滑动窗口解决,用right表示滑动窗口的右边界,left表示滑动窗口的左边界。寻找可行解,我们可以这样约定滑动窗口的意义:right指针向右移动,是使得滑动窗口找到可行解。left指针向右移动是为了更新窗口使得其可以…

定位算法——TDOA的Chan算法推导与Matlab实现

TDOA算法原理 TDOA(Time Difference of Arrival)——时间差到达算法,利用了几何数学中双曲线的特点—— 双曲线上的任意点到达两焦点的距离差是固定值。 这个距离差它天然可以抹去用户设备(UE)和基站的之间时钟误差。 P 1 C 1 c ⋅ ( t 11 Δ t ) P_1C_1 c(t_…

武汉灰京文化:5G与云计算技术下的手游行业,技术创新将带来怎样的变革?

随着技术的不断进步,手游行业将迎来一场革命性的变革。5G网络的普及和云计算技术的飞速发展,将为手游带来更加流畅、高清晰度的游戏体验,让玩家们尽情享受更真实、更沉浸式的虚拟现实和增强现实游戏。同时,人工智能技术的运用也将…

【Linux】cpp-httplib库

目录 升级gcc版本 下载cpp-httplib的zip安装包,上传到服务器 ​编辑 简单使用 首先打开gittee,搜索cpp-httplib,选择其中一个即可 也可以点下方链接 cpp-httplib库:cpp-httplib: cpp-httplib (gitee.com) 注意:cpp-httplib在使用的时候需…

BUU [网鼎杯 2020 半决赛]AliceWebsite

BUU [网鼎杯 2020 半决赛]AliceWebsite 开题&#xff1a; hint附件是源码。在index.php中有一个毫无过滤的本地文件包含 <?php $action (isset($_GET[action]) ? $_GET[action] : home.php); if (file_exists($action)) {include $action; } else {echo "File not…

人工智能|机器学习——DBSCAN聚类算法(密度聚类)

1.算法简介 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法&#xff0c;簇集的划定完全由样本的聚集程度决定。聚集程度不足以构成簇落的那些样本视为噪声点&#xff0c;因此DBSCAN聚类的方式也可以用于异常点的检测。 2.算法原…