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

相关文章

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

Java Optional避免空指针异常的实现

《JavaOptional避免空指针异常的实现》空指针异常一直是困扰开发者的常见问题之一,本文主要介绍了JavaOptional避免空指针异常的实现,帮助开发者编写更健壮、可读性更高的代码,减少因... 目录一、Optional 概述二、Optional 的创建三、Optional 的常用方法四、Optio

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3