Learning Memory-guided Normality for Anomaly Detection——学习记忆引导的常态异常检测

本文主要是介绍Learning Memory-guided Normality for Anomaly Detection——学习记忆引导的常态异常检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

又是一篇在自编码器框架中研究使用记忆模块的论文,可以看做19年的iccv的论文的衍生,在我的博客中对19年iccv这篇论文也做了简单介绍。韩国人写的,应该是吧,这名字听起来就像。

摘要abstract

我们解决异常检测的问题,即检测视频序列中的异常事件。基于卷积神经网络的异常检测方法通常利用代理任务(如重建输入视频帧)来学习描述正常情况的模型,而在训练时看不到异常样本,并在测试时使用重建误差来量化异常的程度。这些方法的主要缺点是没有明确考虑正常模式的多样性,而CNNs强大的表示能力允许重建异常的视频帧。为了解决这个问题,我们提出了一种无监督学习的异常检测方法,该方法明确考虑了正常模式的多样性,同时降低了神经网络的表示能力。为此,我们建议使用具有新更新方案的存储器模块,其中存储器中的项目记录正常数据的原型模式。我们还提出了新的特征紧凑性和分离损失来训练记忆,提高了记忆项目和从正常数据中深入学习的特征的辨别能力。在标准基准上的实验结果证明了我们方法的有效性和效率,优于现有技术。

Introduction

在视频序列中检测异常事件的问题,例如人行道上的车辆,在过去十年中引起了极大的关注,这对监视和故障检测系统尤为重要。这是极具挑战性的,原因有很多:首先,根据情况对异常事件有不同的判断。也就是说,同样的活动可能是正常的,也可能是不正常的(例如,在厨房或公园里拿刀)。在这种情况下,手工注释异常事件是一项繁重的工作。其次,收集异常数据集需要大量的工作,因为在现实生活中异常事件很少发生。因此,异常检测通常被认为是一个无监督的学习问题,旨在学习在没有异常样本的情况下描述正态性的模型。在测试时,没有被模型描述的事件和活动被认为是异常。使用无监督学习方法对视频序列的正态性建模有很多尝试。在训练时,给定正常的视频帧作为输入,他们通常提取特征表示并尝试重新构造输入。然后将重构误差较大的视频帧在测试时作为异常处理。这是假设异常样本不能很好地重构,因为模型在训练过程中从未看到过它们。最近基于卷积神经网络(CNNs)的方法利用了自编码器(AE)[1,17]。cnn强大的表示能力允许提取更好的特征表示。另一方面,来自异常帧的CNN特征很可能通过结合正常帧的特征来重构[22,8]。在这种情况下,异常帧具有较低的重构误差,通常,当大部分异常帧是正常的时候(例如,公园里的行人)。为了减少cnn的容量,引入了一种视频预测框架[22],该框架将预测的未来帧与其ground truth之间的差异最小化。这些方法的缺点[1,17,22]是它们不能直接检测异常[35]。相反,他们利用代理任务进行异常检测,例如,重建输入帧[1,17]或预测未来帧[22],以提取一般特征表示而不是普通模式。为了克服这一问题,Deep SVDD[35]利用单类分类目标将正常数据映射到超球面。具体来说,它最小化了超球体的体积,这样正常的样本就会被紧密地映射到球体的中心。虽然单一的球体中心代表了正常数据的普遍特征,但这并没有考虑正常样本的各种模式。

我们提出了一种无监督学习的方法来检测视频序列中的异常,考虑到正常模式的多样性。我们假设单个原型特征不足以代表正常数据的各种模式。也就是说,在正常视频帧的特征空间中存在多个原型(即特征的模式或质心)(图1)。为了实现这一想法,我们提出了一种用于异常检测的存储模块,其中单个项目对应于正常模式的原型特征。我们使用存储项中的原型特征来表示视频帧,减少了cnn的容量。为了减少CNN特征的类内变化,我们提出了一个特征紧凑性损失,将正常视频帧的特征映射到记忆中最近的项目,并鼓励它们接近。简单地更新记忆项和提取CNN特征交替交替地给出一个退化的解决方案,其中所有的项都是相似的,因此所有的特征都紧密地映射在嵌入空间中。为了解决这个问题,我们提出了特征分离损失。它使每个特征与其最近的条目之间的距离最小,同时使特征与第二最近的条目之间的差异最大,分离记忆中的单个条目,增强特征与记忆条目的辨别能力。我们还引入了一种更新策略来防止在测试时存储异常样本的特征。为此,我们建议用一个加权的常规分数来衡量视频帧中存在多少异常,这样只有当帧被确定为正常帧时,条目才会更新。在包括UCSD Ped2[21]、中大大道[24]和上海科技[26]在内的标准基准上的实验结果,证明了我们的方法的有效性和效率,超越了目前的技术水平。

我们建议使用多个原型来代表正常视频帧的不同模式,用于无监督异常检测。为此,我们引入了一种存储模块,在内存中的项目上记录正常数据的原型模式。•我们提出特征紧凑性和分离性损失训练记忆,确保多样性和辨别能力的记忆项目。本文还提出了一种新的内存更新方案,适用于测试时同时存在正常和异常样本的情况。•我们在视频序列的无监督异常检测标准基准上实现了一种新的技术状态。我们也提供广泛的消融研究的实验分析。我们的代码和模型可以在网上找到:https:// cvlab.yonsei.ac.kr/projects/MNAD

主要贡献:

  • 提出使用多个原型来表示正常视频帧的各种模式,以进行无监督的异常检测。为此,我们引入了一个存储模块,用于记录存储器中项目的正常数据的原型模式。
  • 提出了特征紧致性和分离性损失来训练记忆,保证了记忆项的多样性和区分性。我们还提出了一种新的内存更新方案,在测试时同时存在正常和异常样本的情况下。
  • 在视频序列中无监督异常检测的标准基准方面取得了新的进展。我们还提供了广泛的实验分析与交融研究。

问题:

对比19年上一篇的文章,他的实验其实并不充分,只在视频数据集上进行了验证,因此,模型的泛化性值得考虑。

另外,这篇文章的实现对比了19年那篇存储器挖坑的文章虽然最后效果比他好,但是其实策略是不同的,19年文章用的是重构误差的方式,这篇文章利用重构误差的方法在结果中没有比过,利用预测未来帧的方式才获得了好的结果,这点也值得考虑。其他以后想到再说。

conclusion

我们引入了一种无监督学习方法来检测视频序列中的异常,该方法利用多个原型来考虑正常数据的各种模式。为此,我们建议使用存储模块将原型模式记录到内存中的项目中。我们已经证明,使用特征紧致性和分离性损失来训练记忆可以将项目分开,从而实现对记忆的稀疏访问。在异常样本和正常样本同时存在的情况下,提出了一种新的内存更新方案,大大提高了异常检测的性能。对标准基准的广泛实验评估表明,我们的模型比最先进的模型性能更好。

 

 

 

这篇关于Learning Memory-guided Normality for Anomaly Detection——学习记忆引导的常态异常检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141559

相关文章

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结

Python中的异步:async 和 await以及操作中的事件循环、回调和异常

《Python中的异步:async和await以及操作中的事件循环、回调和异常》在现代编程中,异步操作在处理I/O密集型任务时,可以显著提高程序的性能和响应速度,Python提供了asyn... 目录引言什么是异步操作?python 中的异步编程基础async 和 await 关键字asyncio 模块理论

详解Python中通用工具类与异常处理

《详解Python中通用工具类与异常处理》在Python开发中,编写可重用的工具类和通用的异常处理机制是提高代码质量和开发效率的关键,本文将介绍如何将特定的异常类改写为更通用的ValidationEx... 目录1. 通用异常类:ValidationException2. 通用工具类:Utils3. 示例文

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;