视频异常检测新基准

简介: 视频异常检测新基准

-  论文题目:UBnormal: New Benchmark for Supervised Open-Set Video Anomaly                                Detection- 论文链接:https://arxiv.org/pdf/2111.08644.pdf-  代码链接:https://github.com/lilygeorgescu/UBnormal

3b2ce1abead72c817d18a56ab2f4e9e6.png

综述


  检测视频中的异常事件通常被定义为二分类任务,其中训练视频仅包含正常事件,而测试视频包含正常和异常事件。在这种情况下,异常检测是一个开放集问题。然而,一些研究将异常检测等同于动作识别。这是一个封闭的场景,无法测试系统检测新异常类型的能力。

       为此,我们提出了UBnormal,一种新的有监督的开放集基准,由多个虚拟场景组成,用于视频异常检测。与现有数据集不同,我们在训练时引入了像素级注释的异常事件,这是第一次使用完全监督学习方法进行异常事件检测。为了保留典型的开集公式,我们确保在视频的训练和测试集合中包含不相交的异常类型集。据我们所知,UBnormal是第一个视频异常检测基准,允许在一类开集模型和监督闭集模型之间进行公平的面对面比较;此外,我们还提供了实证证据,表明UBnormal可以在两个重要数据集(Avenue和ShanghaiTech)上提高最先进的异常检测框架的性能。


异常检测算法研究现状


在近几年的文献及研究中,对于异常检测的方法任务无非通过两种形式:

一是将异常检测视为二分类任务(或离群值检测任务),在这种情况下,模型框架在训练时只训练正常事件的数据集,而测试数据则包含正常事件和异常事件。模型方法从测试数据中学习到一个正态分布模型,在测试时遇到“不熟悉”的数据时会将其标记为异常;

二是将异常检测视为弱监督的动作识别任务,其中训练视频包含正常和异常事件,但异常视频标注是在video-level(视频级别)提供的,不是帧级别。此方法对应于一个封闭集评估场景,其中训练和测试异常属于相同的动作类别,无法测试系统检测未发现异常类型的能力。

为了解决这些问题,我们提出了一种新的范式——将视频异常检测作为一个有监督的开集分类问题进行框架化。在此方法中,正常和异常事件在训练时都可用,但在测试推理阶段发生的异常属于一组不同的异常类型(类别),即训练时是一种异常类别,测试时又是另一种类别。将异常检测视为一个有监督的开集问题的主要优点是:(i)由于训练时异常的可用性,可以使用完全有监督的模型,(ii)能够在测试和训练时使用不同的异常动作类别情况下评估模型在“遇到”其它异常行为的性能;(iii)实现了一类开集方法和弱监督闭集方法之间的公平比较。对于一类问题的公式,监督开集公式的一个问题在于难以从现实世界中收集异常数据。

为了缓解这个问题,我们提出了UBnormal数据集,这是一个新的基准测试,它包含用于视频异常检测的多个虚拟场景。我们的场景是在Cinema4D中使用虚拟动画角色和放置在现实世界背景中的对象生成的,如下图所示。

e428e68387272c32adcc473b9c20da32.png

本文作者对于异常检测任务的贡献有三个:

  • 我们将视频异常检测作为一项有监督的开放集任务,引入了UBnormal,一个包含29个虚拟场景的新数据集,其中包含236902个视频帧;
  • 我们表明,对异常事件加入训练集有助于各种最先进的异常事件检测模型性能提升;
  • 我们进行了一项以数据为中心的研究,表明UBnormal数据可以为两个自然场景数据集(Avenue和Shanghai Tech)的最新技术方法带来性能提升。

UBnormal Benchmark数据集


UBnormal基准是使用Cinema4D软件生成的,它允许我们使用2D背景图像和3D动画创建场景。我们总共选择了29幅自然图像,代表街道场景、火车站、办公室等。在选定的背景图像中,我们确保消除应该属于前景的人、车或其他对象。从每个自然图像中,我们创建一个虚拟3D场景,每个场景平均生成19个视频。对于每个场景,我们生成正常和异常视频。在整个UBnormal数据集中,正常视频与异常视频的比例接近1:1。

在数据集中,我们包含了多达20多种异常,其中测试集、验证集及训练集中的异常类别都是不相同的。为了增加数据集的多样性,我们包括多个对象类别,例如人、汽车、滑板、自行车和摩托车;场景包括但不限于雾场景、夜间场景、火灾场景等等,如下图所示。

28e8e30826cdd6879d53b65eda8e6d39.png

基准数据集测试方法


二分类开集模型

我们采用了论文A Background-Agnostic Framework with Adversarial Training for Abnor-mal Event Detection in Video.中介绍的最先进的框架。这是一种object-level方法,它将异常检测视为二分类任务。该框架由三个自动编码器和三个分类器组成。为了提高异常检测方法的性能,Georgescu等人为自动编码器提出了一种对抗性学习方法。为了克服训练期间缺乏异常样本的问题,他们创建了一组与场景无关的伪异常。伪异常样本在对抗训练过程中用作对抗样本,在二进制分类器的训练中用作异常样本。

监督闭集模型

我们采用Sultani等人在论文Real-World Anomaly Detection in Surveillance Videos.中提出的监督闭集模型。在这个框架中,正常和异常视频都表示为bags,视频片段是多实例学习中的实例。他们使用预处理C3D模型提取的特征表示每个视频。使用视频特征表示法,他们训练了一个前馈神经网络,使得来自异常bags的实例的最大得分高于来自正常bags的实例最大得分。它们还将稀疏性和平滑性约束合并到损失函数中,以进一步提高框架的性能。

动作识别框架

我们基准的第三个基线是动作识别模型。我们选择了Bertasius等人提出的最先进的模型Timesformer。其体系结构通过从帧序列中学习时空特征,将标准transformer体系结构调整为视频域。TimeSformer使用分散注意力,即分别学习空间和时间注意力图。我们训练TimeSformer模型来区分正常和异常行为。该模型预测了一系列帧异常的概率。

自监督多任务模型

我们使用Georgescu等人在论文Anomaly Detection in Video via Self-Supervised and Multi-Task Learning.中提出的的最先进的多任务学习框架来证明UBnormal可以用于提高两个重要异常检测数据集的性能。

实验结果


fecc96c7d73d4a5634e128860e0a57b4.png


73f24530a4ba969aa8acbb9b83520b0d.png

在上图中,我们可以观察到,基于该数据集提出的不同最先进方法可以准确定位和检测异常。

结论


在这项工作中,我们引入了UBnormal,一种新的视频异常检测基准。据我们所知,这是监督开集异常检测的第一个也是唯一一个基准。UBnormal的唯一限制可能是它由虚拟角色和模拟动作组成。然而,我们展示了几个证明UBnormal重要性的重要优点:

(i)它可以对开集模型和闭集模型进行公平和直接的比较;

(ii)它可以缓解现实数据集中缺乏训练异常的情况,与当前最先进的模型相比有了显著的改进。

存在问题


  • 卡通虚拟人物跟现实人物还是有区别的,容易出现问题或者检测不准确
  • 其模拟场景与自然场景属于不同的数据分布。因此,在现实场景中,完全监督模型的行为可能不清楚。

数据集展示


8a9886cb84aec03a0c04f2ae6eb6a1ba.png

数据集中的卡通人物

103aa74392c2385a3fe65ce62881b4a7.png

数据集中的异常种类

相关文章
|
机器学习/深度学习
评分是机器学习领域中的一种评估模型性能的指标
评分是机器学习领域中的一种评估模型性能的指标
98 1
|
6月前
|
运维 算法 安全
异常检测算法及其在安全领域的应用
【6月更文挑战第4天】在数字化时代,数据安全至关重要,异常检测算法扮演着守护者角色。它能自动学习正常行为模式,及时发现网络攻击和欺诈行为。非监督式异常检测算法尤其重要,如基于距离的方法,通过计算数据点间距离识别偏离常规的点。Python的scikit-learn库可实现这一算法。异常检测不仅应用于金融领域的欺诈检测,还广泛用于工业监控、医疗诊断和社交媒体分析,为多领域数据安全提供保障。随着技术进步,异常检测将更智能、高效,成为数据安全的重要防线。
178 2
|
5月前
|
机器学习/深度学习 运维 算法
Doping:使用精心设计的合成数据测试和评估异常检测器的技术
在这篇文章中,我们将探讨测试和评估异常检测器的问题(这是一个众所周知的难题),并提出了一种解决方案被称为“Doping”方法。使用Doping方法,真实数据行会被(通常是)随机修改,修改的方式是确保它们在某些方面可能成为异常值,这时应该被异常检测器检测到。然后通过评估检测器检测Doping记录的效果来评估这些检测器。
57 0
|
5月前
|
机器学习/深度学习 Serverless Python
`sklearn.metrics`是scikit-learn库中用于评估机器学习模型性能的模块。它提供了多种评估指标,如准确率、精确率、召回率、F1分数、混淆矩阵等。这些指标可以帮助我们了解模型的性能,以便进行模型选择和调优。
`sklearn.metrics`是scikit-learn库中用于评估机器学习模型性能的模块。它提供了多种评估指标,如准确率、精确率、召回率、F1分数、混淆矩阵等。这些指标可以帮助我们了解模型的性能,以便进行模型选择和调优。
|
自然语言处理 JavaScript Java
CodeFuseEval : 代码类大模型多任务评估基准
CodeFuseEval是结合CodeFuse大模型多任务场景,在开源的HumanEval-x、MBPP、DS1000评测基准基础上,开发的面向大模型代码垂类领域的企业级多类型编程任务评估基准。可用于评估大模型在代码补全、自然语言生成代码、测试用例生成、跨语言代码翻译、中文指令生成代码、代码注解释、Bug检测/修复、代码优化等不同任务的能力表现。
907 1
|
7月前
|
机器学习/深度学习 人工智能
【机器学习】有哪些指标,可以检查回归模型是否良好地拟合了数据?
【5月更文挑战第16天】【机器学习】有哪些指标,可以检查回归模型是否良好地拟合了数据?
|
机器学习/深度学习 算法 计算机视觉
多目标跟踪 | 评测指标
多目标跟踪器的性能需要某些指标来进行度量,目前使用比较广泛的评测指标主要有 Bernardin 等人定义的 CLEAR MOT 指标、Ristani 等人定义的 ID scores 指标以及最新的 Luiten 等人定义的HOTA 指标。
1230 2
|
机器学习/深度学习 数据采集 人工智能
时间序列异常检测:统计和机器学习方法介绍
在本文中将探索各种方法来揭示时间序列数据中的异常模式和异常值。
320 0
|
机器学习/深度学习 人工智能 运维
5 分钟内开始使用异常检测算法
5 分钟内开始使用异常检测算法
178 0
|
机器学习/深度学习