Appearance-Motion Memory Consistency Network for Video Anomaly Detection 论文阅读

Appearance-Motion Memory Consistency Network for Video Anomaly Detection 论文阅读

  • Abstract
  • Introduction
  • Related Work
  • Method
  • Experiments
  • Conclusions
  • 阅读总结

论文标题:Appearance-Motion Memory Consistency Network for Video Anomaly Detection

文章信息:
在这里插入图片描述
发表于:AAAI 2021(CCF A会议)

原文链接:https://ojs.aaai.org/index.php/AAAI/article/view/16177/15984

源代码:https://github.com/NjuHaoZhang/AMMCNet_AAAI2021

Abstract

监控视频中的异常事件检测是一项重要但具有挑战性的任务,已经提出了许多方法来解决这个问题。以前的方法要么只考虑外观信息,要么直接整合外观和运动信息的结果,而不明确地考虑它们的内生一致性语义。受人类从多模态信号中识别异常帧的规则的启发,我们提出了一种外观-运动-记忆一致性网络(AMMC-Net)。我们的方法首先充分利用外观和运动信号的先验知识,明确地捕捉它们在高级特征空间中的对应关系。然后,它将多视图特征相结合,以获得规则事件的更本质、更稳健的特征表示,这可以显著增加异常事件和规则事件之间的差距。在异常检测阶段,我们进一步在潜在空间中引入提交误差和像素空间中的预测误差,以提高检测精度。在各种标准数据集上的可靠实验结果验证了我们方法的有效性。

Introduction

视频异常检测(VAD)是监控视频中的一项关键任务。它已经研究了很多年,但由于收集异常数据的困难和挑战,仍未解决(Kiran、Thomas和Parakkal,2018)。与常规事件相比,异常发生的频率较低,而且异常类型多样,甚至是无限的。因此,收集平衡的正常和异常数据并使用传统的监督二进制分类方法来解决这个问题似乎是不可行的。考虑到视频监控中的常规事件非常丰富,一个普遍的场景(Luo,Liu,and Gao 2017a;Kiran,Thomas,and Parakkal 2018;Liu等人2018;Ionescu等人2019)只是提供的正常数据。
在这种设置下,对规则事件的外观和运动信息进行建模是第一原则。除了独立地表示这两种类型的数据外,对它们之间的对应关系进行建模也是至关重要的。
自然界中存在的一致性定律是一个重要概念,在计算机视觉中得到了广泛应用(Wang,Jabri,and Efros 2019)。与上述使用时间对应关系的工作不同,本文提出的VAD中的一致性明确考虑了对规则事件中的外观和运动信号之间的对应关系进行建模。例如,在超市购物中心的环境中,经常发生的事件是人们向前推购物车或与购物车呆在一起。一些异常可以分别通过外观(火灾爆发)或动作(人们相互打斗)来检测。相反,一些异常需要通过考虑外观和运动之间的相关性来检测。例如,当人们站着不动,购物车在人类无法控制的情况下向前移动时,就会发生异常情况。单从外观上看,人和购物车都是规则的物体,任何不寻常的外观都会发生变化。仅从运动来看,人们站着不动和购物车向前移动都是正常情况。如果不考虑外观和运动之间的相关性,异常检测器可能不可避免地会在这些异常上失败。只有对外观(人、购物车)和运动(人向前推购物车)之间的一致性进行建模,我们才能检测到这些异常,并使异常检测器更加稳健。
然而,先前的方法忽略了VAD中外观和运动之间的一致相关性,包括重建(Hasan等人,2016)、预测(Liu等人,2018)和运动融合(Xu等人,2017;Yan等人,2018;Vu等人,2019)。前两种方法忽略了运动信息,后一种方法在测试阶段直接结合了两种模态的信息。在训练阶段,它没有在同一空间对这两种类型的信息进行联合建模,也没有捕捉到这两种模式的一致性。

为了明确地对外观和运动信息之间的一致性进行建模,我们提出了一种用于视频异常检测的外观-运动-记忆一致性框架。

1) :我们首先学习常规事件中的外观和运动信号的先验信息,并将其存储在两个名为AppMemPool和MotMemPool的内存池中。由于像素空间中有许多与异常检测无关的背景像素,并且原始特征包含样本中存在的特定信息,因此我们选择在特征空间中对这两个特征的先验信息进行建模。考虑到单个存储单元的表示能力不足,我们建议使用多个存储单元来表示查询向量的原型特征。
2) :然后,我们通过学习从AppMemPool引导的特征到MotMemPool指导的特征的两个映射函数,反之亦然,对外观和运动之间的一致相关性进行建模,称为外观-运动特征传递网络(AMFT)。
3) :由于记忆项只包含来自训练数据的先验信息,并且每个输入的唯一信息可能会丢失,为了通过记忆先验来补偿丢失的信息,我们最终集成了来自编码器的初始特征,即记忆模块生成的原型特征,以及来自AMFT的变换后的特征,以形成规则事件的鲁棒性和表达性特征。
4) :在测试阶段,我们结合原始特征和记忆项之间的外观/运动预测误差和提交误差(Den Oord,Vinyals,and Kavukcuoglu 2017)来计算异常分数,并确定帧是否异常。

Related Work

最近,已经提出了大量的方法来解决视频异常事件检测。在(Hasan等人2016;Sabokrou、Fathy和Hoseini 2016)中,基于在常规事件上训练的模型不能重建他们没有看到的异常事件的假设,提出了基于重建的模型。Conv AE(Hasan等人,2016)使用深度自动编码器从训练视频集中重建帧的输入序列。Conv3D AE(Sabokrou、Fathy和Hoseini 2016)使用3D卷积神经网络对视频片段的外观和运动信息进行编码。使用去卷积神经网络来重构输入视频剪辑。提出了一系列基于预测的模型(Luo,Liu,and Gao 2017a;Shi等人2015;赵等人2017)来缓解重建模型中的同一性映射。这些方法将视频帧视为时间模式或时间序列,目标是学习一个生成模型,该模型可以使用过去的帧来预测未来的结构。在(Luo,Liu,and Gao 2017a;Shi等人2015)中,输入视频的卷积表示被输入到卷积LSTM。。然后,去卷积层将所学习的特征的输出重建为原始分辨率。(赵等人2017)提出了一种时空自动编码器(STAE),该编码器利用深度神经网络通过执行三维卷积从空间和时间维度提取特征,重建当前片段并生成未来帧。此外,还提出了一些基于双流网络的模型(Xu et al.2017;Yan et al.2018)来解决异常检测问题。这些方法最初用于动作识别(Simonyan和Zisserman 2014),因为它允许分别对外观和运动信息进行显式建模。在另一项工作中(Vu等人,2019),Hung提出了一种使用强度和运动数据的多级表示来编码规则帧的框架。该检测器可以通过在低级数据之外的高级表示中发现异常对象并结合这些检测结果,以高精度和低错误检测来定位异常区域。更多作品可以在(Kiran,Thomas,and Parakkal 2018)中找到。

与我们的工作最相关的方法是以下三篇论文(Gong等人,2019;Nguyen和Meunier 2019;Xu等人2017)。在(Gong et al.2019)中,提出了一种称为MemAE的内存增强自动编码器,以提高网络的性能。给定一个输入,MemAE首先从编码器获得编码,然后将其用作查询,以检索最相关的内存项进行重建。它试图利用自动编码器架构来重建外观。在(Nguyen和Meunier 2019)中,提出了一种rgb到光流翻译网络,以利用外观与其运动之间的对应关系。它使用U-Net结构来预测给定输入RGB帧的相应运动。(Xu et al.2017)提出了一种将传统的早期融合和后期融合策略相结合的双融合框架。它首先使用堆叠的去噪自动编码器来分别学习外观和运动特征以及联合表示(早期融合)。然后,多个一类SVM模型基于所学习的特征来预测每个输入的异常分数。最后,它使用后期融合策略来组合计算的分数并检测异常事件。与上述方法相比,我们提出的模型可以明确地强制两种模式在训练阶段在共享空间中表示它们的特征,从而有助于异常检测

Method

在这里插入图片描述

如图1所示,我们提出的AMMC-Net可以分为三个部分:编码器、解码器和外观运动记忆增强特征转移模块(AMMT)。我们首先将图像片段及其光流片段输入到编码器中,以获得外观和运动的初始特征表示。然后,我们将初始特征图输入到内存模块(AppMemPool和MotMemPool)中,以提取这两种模式的原型项目。接下来,我们使用两个神经网络在两个输入原型特征之间传递信息,以获得两个一致的特征。之后,我们在初始特征、记忆引导的原型特征和一致特征之间进行特征融合。最后,将融合的特征输入解码器,以预测未来的外观(图像)和运动(光流),如算法1所示。
在这里插入图片描述

Encoder and Decoder
编码器用于从输入视频帧中提取特征表示。解码器被训练为通过获取从先前步骤获得的聚合特征来重构样本。我们采用编码器中使用的res块和类似UNet的跳跃连接结构(Ronneberger、Fischer和Brox 2015)作为骨干网络来构建整个模块。首先,为了增强网络输出的范围和提高表示能力,本文将原来的ReLU修改为Tanh。其次,将原始体系结构的4尺度缩减为3尺度,以控制模型的复杂性,减少参数数量和训练时间。
AMMT
它由三个组件组成,即内存池、特征传输模块和特征聚合模块。存储器池首先提取外观和运动特征的原型模式。然后,我们将这些特征图输入到特征转移模块(AMFT)中,以学习转移的特征。最后,我们聚合编码器特征、记忆先验和传输特征。

  • Memory Pool.
    与异常事件类型的多样性和无界性相比,可用于训练的常规事件可以是详尽无遗的。因此,从理论上总结规则模式的先验信息是可行的。然而,原始特征包含正常事件的先验信息及其特定信息。只有先验信息在两种模式之间具有很强的相关性。因此,我们引入了一种具有离散潜在空间的内存模块,并将其与传统的重构模型相结合,以提取原型特征并将其存储在内存池中。具体来说,我们为外观和运动信息设计了单独的内存模块,称为AppMemPool和MotMemPool。我们的记忆模块定义了一个潜在嵌入空间 M ∈ R D × N M∈R^{D×N} MRD×N,包含N个维度为D的记忆项。我们将外观和运动记忆池分别表示为 M a M^a Ma M o M^o Mo。内存池接收来自编码器的功能, z e a z^a_e zea z e o z^o_e zeo作为输入。然后,它计算从编码器到每个存储器项的每个空间特征,并选取K个最接近的项作为存储器先验特征 z m a z^a_m zma z m o z^o_m zmo。我们展示了算法1第3行到第6行的整个过程。
    在这里插入图片描述

  • Appearance-Motion Feature Transfer Module.
    我们在记忆先验空间中对外观和运动相关性进行建模。具体地,在接收到存储器先验特征 z m a z^a_m zma z m o z^o_m zmo之后,我们首先使用1x1卷积层对先验特征进行特征约简。然后我们应用两个映射函数 Φ a → o Φ_{a→o} Φao Φ o → a Φ_{o→a} Φoa,以学习外观和运动先验之间的一致相关性,并获得转移的特征 z ^ m o \widehat{z}^o_m z mo z ^ m a \widehat{z}^a_m z ma。整个过程如算法1中从第7行到第10行所示。与之前在特征空间中执行从外观到运动的方法(Vu等人,2019)相比,我们了解到在先验空间中外观和运动之间的一致相关性。因为在记忆空间中,它可以避免复杂背景的副作用,并且直接学习从运动(光流)到外观(图像)的转换是一个病态的问题,因此使用先验信息将使问题更加可行。
    在这里插入图片描述

  • Feature Aggregation
    由于内存项只包含先前的信息,它们将丢失每个输入的唯一信息。为了使特征更具代表性,我们聚合来自编码器的原始特征 z e a z^a_e zea z e o z^o_e zeo)、记忆先验 z m a z^a_m zma z m o z^o_m zmo)和转移的特征 z ^ m o \widehat{z}^o_m z mo z ^ m a \widehat{z}^a_m z ma)。最后,我们将融合的特征输入到解码器中,以预测未来的帧 F ^ t \widehat{F}^t F t和光流 O ^ t − 1 \widehat{O}^{t−1} O t1。我们在算法1中从第11行到第14行对这些进行了说明。
    在这里插入图片描述

Loss Function
设F表示rgb图像序列, F ^ \widehat{F} F 表示F的预测,O表示F的相应光流剪辑, O ^ \widehat{O} O 表示O的预测。当给定 F 1 … t − 1 F_{1…t−1} F1t1 O 1 … t − 2 O_{1…t−2} O1t2时,模型输出 F ^ t \widehat{F}_t F t O ^ t − 1 \widehat{O}_{t-1} O t1。为了生成更真实的帧,我们在模型中利用了GAN变体(最小二乘GAN(Mao et al.2017))。我们遵循(Mao et al.2017)的原始训练程序进行minmax game。具体来说,我们交替训练生成器和鉴别器。生成器试图产生一个看起来现实的结果,并愚弄鉴别器。鉴别器试图对哪个图像是真实的还是伪造的(生成的)进行分类。

  • 训练生成器.
    为了训练AMMC-Net的生成器,我们分别从外观和运动信号的像素空间和特征空间构造以下损失函数。
    在这里插入图片描述
    对于外观,我们采用强度、梯度、流量和对抗性损失(分别为 L i n t L_{int} Lint L g d l L_{gdl} Lgdl L o p L_{op} Lop L a d v G L^G_{adv} LadvG)。
    在这里插入图片描述
    其中超参数 λ i n t λ_{int} λint λ g d l λ_{gdl} λgdl λ o p λ_{op} λop λ a d v λ_{adv} λadv用于调整每个部分的重要性。
    我们采用 l 2 l_2 l2的距离,以最小化强度空间中预测帧 F ^ \widehat{F} F 与真实值 F F F之间的损失:
    在这里插入图片描述
    为了锐化图像预测,随后(Mathieu,Couprie,and Lecun 2016),在我们的损失函数中采用了梯度损失。它直接惩罚预测与其基本事实之间的图像梯度的差异:
    在这里插入图片描述
    其中i,j表示视频帧的空间索引,α可以调整预测图像的清晰度。
    为了保持运动的一致性,这对VAD至关重要,我们采用了运动约束损失(Liu et al.2018)来强制预测帧之间的光流接近真实帧:
    在这里插入图片描述
    对于运动,我们应用平滑的 l 2 l_2 l2损失,如方程(7)所示,因为它更适合于光流的高稀疏性(Girshick 2015):
    在这里插入图片描述
    为了优化内存模块(AppMemPool和MotMemPool),我们将外观 z e a z^a_e zea和运动 z e o z^o_e zeo的查询特性推至接近所选内存项 e a e_a ea e o e_o eo的查询特性,如下所示:
    在这里插入图片描述
    由于在我们的内存网络中存在不可微分的argmax操作,我们遵循停止梯度技巧sg(Bengio,Leonard,and Courville 2013;Den Oord,Vinyals,and Kavukcuoglu 2017)来处理损失反向传播。这里,β表示两种损失项目的重量。
  • 训练判别器
    为了迫使生成器学习正态分布,鉴别器试图将基本事实帧分类为真帧,将预测帧分类为假帧。在这里,我们遵循LSGAN(Mao et al.2017),如下所示:
    在这里插入图片描述
    Anomaly Detection in Testing Data
  • Memory Commit Error
    由于我们已经了解了内存中常规事件的先验知识,异常可能从查询特征 z e a z^a_e zea到内存原型 z m a z^a_m zma有很大的距离,而正常模式会导致较小的距离。我们使用内存提交错误来测量距离,如下所示:
    在这里插入图片描述
    第th帧的低错误表示它更有可能是正常的。
  • Image Prediction Error
    大量相关工作(Liu et al.2018)表明,与相同情况下的MSE相比,PSNR可以增加正常和异常事件之间的差距。因此,我们在我们的方法中采用了PSNR。
    在这里插入图片描述
  • Anomaly Score
    许多以前的方法(Nguyen和Meunier 2019)只将像素空间中的误差视为异常指标,忽略了特征空间中的错误对异常检测的影响。我们的AMMC网络弥补了这一缺陷。在测试阶段,结合潜在空间中的内存提交误差和像素空间中的图像预测误差,我们可以确定一个案例是否是异常。最终的正常分数可以推导如下:
    在这里插入图片描述
    其中 λ c λ_c λc表示两种类型误差之间的权重。H表示基于最小-最大的归一化操作,我们将整个测试视频中所有帧的两种类型的误差归一化到范围[0,1]。
    在这里插入图片描述
    因此,最终的 S ( t ) S(t) S(t)表示特定帧的法线程度。越大越正常,越小越异常,我们可以通过选择阈值来确定特定帧是正常还是异常。

Experiments

在这里插入图片描述

Conclusions

在本文中,我们对外观和运动之间的一致性进行建模,以解决视频异常检测问题。我们首先优化外观和运动预测网络来构建两个内存池。然后,我们使用外观-运动特征转移(AMFT)网络来实现外观和运动模式之间的通信和融合操作。在测试阶段,给定由图像及其光流组成的输入序列,使用AMFT从AppMemPool和MotMemPool中提取外观运动特征。最后,我们将像素空间中的预测误差与特征空间中的提交误差相结合,计算测试帧的得分。与现有技术相比,许多实验证明了我们的方法的有效性。固体消融研究证明了我们提出的AMMCNet在捕捉视频异常检测的外观和运动之间的一致性方面的有效性。

阅读总结

1:运动外观一致
2:Memory模块

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

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

相关文章

安全狗云原生安全-云甲·云原生容器安全管理系统

随着云计算的快速发展,容器技术逐渐成为主流。然而,随着容器的普及,安全问题也日益突出。为了解决这一问题,安全狗推出了云原生容器安全管理系统——云甲。 云甲是安全狗云原生安全的重要组成部分,它采用了先进的云原生…

二分查找法详解(6种变形)

前言 在之前的博客中,我给大家介绍了最基础的二分查找法(没学的话点我点我!) 今天我将带大家学习二分法的六种变形如何使用,小伙伴们,快来开始今天的学习吧! 文章目录 1,查找第一个…

GBASE南大通用数据库提供的高可用负载均衡功能

GBASE南大通用GBase 8a ODBC 提供的高可用负载均衡功能是指,GBase 8a ODBC 会将客户 端请求的数据库集群连接平均分摊到集群所有可用的节点上。 GBASE南大通用数据库负载均衡的使用方法 GBASE南大通用GBase 8a ODBC 提供两种方式来使用高可用负载均衡。一种是配置数…

RocketMQ系统性学习-RocketMQ高级特性之消息存储的高效与刷盘策略、Broker 快速读取消息机制

🌈🌈🌈🌈🌈🌈🌈🌈 【11来了】文章导读地址:点击查看文章导读! 🍁🍁🍁🍁🍁🍁&#x1f3…

Linux 一键部署TeamCity

前言 TeamCity 是一个通用的 CI/CD 软件平台,可实现灵活的工作流程、协作和开发实践。允许在您的 DevOps 流程中成功实现持续集成、持续交付和持续部署。 系统支持Centos7,8,9/Redhat7,8,9及复刻系列高版本建议使用9系列系统部署,避免因为各种插件包不兼容问题。以下部署…

KBU808-ASEMI适配高端电源KBU808

编辑:ll KBU808-ASEMI适配高端电源KBU808 型号:KBU808 品牌:ASEMI 封装:KBU-4 最大平均正向电流:8A 最大重复峰值反向电压:800V 产品引线数量:4 产品内部芯片个数:4 产品内…

antdesignpro实现滚动加载分页数据

原理解析:每滚动一次相当于翻页,请求后端时给的页码参数要想办法加1,后端才能根据页码给出相应数据 注意后端收到页码参数之后要准确计算出每页的首行数据,关键逻辑代码: # 根据前端传的页码,进行计算下一…

列举mfc140u.dll丢失的解决方法,常见的mfc140u.dll问题

在使用电脑的过程中,有时会遇到mfc140u.dll文件丢失的问题,导致一些应用程序无法正常启动。本文将介绍mfc140u.dll丢失的常见原因,并提供相应的解决办法。同时,还会列举一些与mfc140u.dll丢失相关的常见问题和解答。 第一部分&…

‘yolo‘ 不是内部或外部命令,也不是可运行的程序

yolo命令不可以用 pip install ultralytics在安装完成之后还是不可以 最后我的解决方法是 pip install ultralytics 的安装路径 没有安装在我们的虚拟环境中 首先看看pip install ultralytics 安装在了哪里 把yolo.exe 挪动到我们的虚拟环境中

姿态识别、目标检测和跟踪的综合应用

引言: 近年来,随着人工智能技术的不断发展,姿态识别、目标检测和跟踪成为了计算机视觉领域的热门研究方向。这三个技术的综合应用为各个行业带来了巨大的变革和机遇。本文将分别介绍姿态识别、目标检测和跟踪的基本概念和算法,并探…

【已解决】修改了网站的class样式name值,会影响SEO,搜索引擎抓取网站及排名吗?

问题: 修改了网站的class样式name值,会影响搜索引擎抓取网站及排名吗? 解答: 如果你仅仅修改了网站class样式的名称,而没有改变网站的结构和内容,那么搜索引擎通常不会因此而影响它对网站的抓取和排名。但…

vue3使用echarts漏斗,根据数据计算比例大小

需求:我们在开发过程中会遇到漏斗图的使用,如果用echarts里面自带的算法绘制渲染漏斗图时候,如果后端给的数据相差不大很接近时候,漏斗图渲染的结果不明显看不出来变化的。 优化之前的漏斗图: 优化之后的漏斗图&…

前端vue keyframes动画

8.1.2 keyframes动画 transition动画适合用来创建简单的过渡效果。CSS3中支持使用animation属性来配置更加复杂的动画效果。animation属性根据keyframes配置来执行基于关键帧的动画效果。新建一个名为keyframes.vue的测试文件。编写如下代码&#xff1a; <template><…

鸿蒙开发语言ArkTS及实践

什么是ArkTS ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript&#xff08;简称TS&#xff09;基本语法风格的基础上,对TS的动态类型特性施加更严格的约束&#xff0c;引入静态类型。同时&#xff0c;提供了声明式UI、状态管理等相应的能力&#xff0c;让开发者可以以更简洁…

.NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式

之前写过使用自定义返回类的方式来统一接口数据返回格式&#xff0c;.Net Core webapi RestFul 统一接口数据返回格式-CSDN博客 但是这存在一个问题&#xff0c;不是所有接口会按照定义的数据格式返回&#xff0c;除非每个接口都返回我们自定义的类&#xff0c;这种实现起来不…

集群与分布式的概念及区别

目前在工作中经常接触到集群的概念&#xff0c;通过这篇文章总结一下集群的几种方式以及和分布式对比学习 1.集群&#xff08;Cluster&#xff09; 集群是由多个计算机节点组成的网络&#xff0c;旨在共同提供服务&#xff0c;并确保高性能和高可用性。在高可用集群中&#xf…

CH06_访问数据结构

Visitor 模式 访问者模式&#xff08;Visitor&#xff09;&#xff0c;表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的提前下定义作用于这些元素的新操作。 类图 说明 Visitor&#xff08;访问者&#xff09; Visitor角色负责对数据结构中每一个…

Java_集合进阶Map集合

一、Map集合 1.1 Map概述体系 各位同学&#xff0c;前面我们已经把单列集合学习完了&#xff0c;接下来我们要学习的是双列集合。首先我们还是先认识一下什么是双列集合。 所谓双列集合&#xff0c;就是说集合中的元素是一对一对的。Map集合中的每一个元素是以keyvalue的形式…

Sublime Text 3配置 C# 开发环境

Sublime Text 3配置 C# 开发环境 一、引言二、主要内容1. 初识 Sublime Text 32. 初识 C#3. 接入 .NET Framework3.1 下载 .NET Framework3.2 环境变量配置 4. 配置 C# 开发环境5. 编写 C# 代码6. 运行 C# 代码 三、总结 一、引言 C# 是一种面向对象的编程语言&#xff0c;由微…

php学习02-php标记风格

<?php echo "这是xml格式风格" ?><script language"php">echo 脚本风格标记 </script><% echo "这是asp格式风格" %>推荐使用xml格式风格 如果要使用简短风格和ASP风格&#xff0c;需要在php.ini中对其进行配置&#…
最新文章