REMEMBERING HISTORY WITH CONVOLUTIONAL LSTM FOR ANOMALY DETECTION——利用卷积LSTM记忆历史进行异常检测

本文主要是介绍REMEMBERING HISTORY WITH CONVOLUTIONAL LSTM FOR ANOMALY DETECTION——利用卷积LSTM记忆历史进行异常检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上海科技大学的文章,上海科技大学有个组一直在做这方面的工作,好文章挺多的还有数据集。

ABSTRACT

本文解决了视频中的异常检测问题,由于异常是无界的,所以异常检测是一项极具挑战性的任务。我们通过利用卷积神经网络(CNN或ConvNet)对每一帧进行外观编码,并利用卷积长期记忆(ConvLSTM)来记忆与运动信息相对应的所有过去的帧来完成这项任务。然后将ConvNet和ConvLSTM与自动编码器相结合,即ConvLSTM-AE,学习普通时刻的外观和运动规律。与基于三维卷积自动编码器的异常检测相比,我们的主要贡献在于提出了一种ConvLSTMAE框架,该框架能够更好地对正常事件的外观变化和运动变化进行编码。为了评估我们的方法,我们首先在一个人工合成的移动MNIST数据集上进行了实验,实验结果表明,我们的方法可以很容易地识别出外观和运动的变化。在真实异常数据集上的大量实验进一步验证了该异常检测方法的有效性。

Index Terms :异常检测,卷积神经网络,长期短期记忆

 

  • 这篇文章的目的:检测视频异常事件。
  • 贡献:
  1. 我们开发了一个ConvLSTM-AE框架来编码外观和外观(运动)的变化,用于异常检测
  2. 在一个合成的运动MNIST数据集上的实验表明,我们提出的ConvLSTM-AE能够很容易地检测到由运动或外观引起的异常。在真实数据集上的实验进一步验证了该异常检测框架的有效性
  • 背景:以前方法不好,通常关注的是外形,他可以关注运动状态,保留空间信息。
  • 结果:比以前方法好
  • 方法 :将CNN和ConvLSTM集成在一个自动编码器框架内,以保证ConvLSTM能够记忆过去的信息。我们使用一个反卷积网络(DeconvNet)来重建过去的帧,并识别是否有异常发生,我们也用一个不同的DeconvNet来重建当前的帧。因此,重构误差是外观或运动变化的指示器。——重建误差
  • 感觉存在的问题:没有核心创新,拼接两个方法作为一个新的识别方法。粗略一看没有很大的启发。

Introduction

异常检测是计算机视觉中的一项重要任务,在视频监控、视频摘要、场景理解等领域有着广泛的应用。然而,由于这是一个不适定问题,这一任务仍然具有极大的挑战性,即异常事件的场景是无界的,因为收集所有异常事件对应的数据是极其困难或不可行的。相比之下,在视频中获取普通时刻要容易得多。因此,一种常见的异常检测设置是,在训练集中只有普通的时刻可用。1异常检测可以被描述为以下两个子问题:i)如何对外观和运动进行特征化;ii)如何对外观或运动的变化进行建模。在相当长的一段时间内,手工制作的功能[1][2]被用来表征视频中的外观和运动,然后稀疏表示方法[3][4][5]可以用来测量外观或运动的变化。然而,这种稀疏表示策略对于训练和测试都是非常耗时的。最近,在图像分类[6]和活动识别[7][8]中,深度神经网络显示了其相对于手工制作的特征的优势。最近,Hasan等人[9]提出使用基于3D卷积神经网络(ConvNet或CNN)的自动编码器框架,同时学习外观和运动之间的规律性,用于异常检测。然而,现有的许多活动识别工作表明,3D卷积对于运动特征[10][11]还不够好。

根据CNN的图像表示[6]的成功和长期短期记忆(LSTM)建模顺序数据的变化[7],在本文中,我们建议使用事先对每一帧进行编码和使用卷积LSTM (ConvLSTM) [12], LSTM的变种,保留了空间信息,记住外表的变化对应于运动信息。然后我们将CNN和ConvLSTM集成在一个自动编码器框架内,以保证ConvLSTM能够记忆过去的信息。我们使用一个反卷积网络(DeconvNet)来重建过去的帧,并识别是否有异常发生,我们也用一个不同的DeconvNet来重建当前的帧。因此,重构误差是外观或运动变化的指示器。我们将我们的框架称为基于ConvLSTM的自动编码器(简称ConvLSTM- ae)。在合成的Moving-MNIST数据集上的实验(图2和表1)表明,与[9]相比,我们的模型可以很容易地识别出外观和运动的变化,因此我们的框架更适合异常检测。

我们的工作总结如下:i)我们开发了一个ConvLSTM-AE框架来编码外观和外观(运动)的变化,用于异常检测;ii)在一个合成的运动MNIST数据集上的实验表明,我们提出的ConvLSTM-AE能够很容易地检测到由运动或外观引起的异常。在真实数据集上的实验进一步验证了该异常检测框架的有效性。

图1:我们的ConvLSTM-AE框架的展开架构。卷积模块表示卷积层。Deconv模块表示去卷积层。ConvLSTM模块表示卷积LSTM层。图中同一行的所有层都是相同的。对于除第一帧之外的每一帧的每个DeconvNet,左侧重建前一帧,右侧重建当前帧,而与第一帧对应的DeconvNet仅重建第一帧。

Fig. 4: The change of training reconstruction error of
ConvLSTM-AE on different datasets.

CONCLUSION

在这篇文章中,我们提出了一个基于自动编码器框架的卷积LSTM用于异常检测。通过使用CNN编码每一帧,每一帧的内容可以被很好的表示并且用于ConvLSTM可以将运动信息也很好的表示出来。同时,ConvLSTM保留了空间信息,这能够帮助当前和先前的帧进行重建,在合成的MNIST数据及上的实验表示该模型能够对外观和运动的变化有较强的鲁棒性。在全部的真实数据集上的实验进一步表示了我们的模型很好的性能以及具有很好的效率。

这篇关于REMEMBERING HISTORY WITH CONVOLUTIONAL LSTM FOR ANOMALY DETECTION——利用卷积LSTM记忆历史进行异常检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

Java空指针异常NullPointerException的原因与解决方案

《Java空指针异常NullPointerException的原因与解决方案》在Java开发中,NullPointerException(空指针异常)是最常见的运行时异常之一,通常发生在程序尝试访问或... 目录一、空指针异常产生的原因1. 变量未初始化2. 对象引用被显式置为null3. 方法返回null

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三

redis在spring boot中异常退出的问题解决方案

《redis在springboot中异常退出的问题解决方案》:本文主要介绍redis在springboot中异常退出的问题解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴... 目录问题:解决 问题根源️ 解决方案1. 异步处理 + 提前ACK(关键步骤)2. 调整Redis消费者组