多层记忆增强外观-运动对齐框架用于视频异常检测 论文阅读

MULTI-LEVEL MEMORY-AUGMENTED APPEARANCE-MOTION CORRESPONDENCE FRAMEWORK FOR VIDEO ANOMALY DETECTION 论文阅读

  • 摘要
  • 1.介绍
  • 2.方法
    • 2.1外观和运动对其建模
    • 2.2.记忆引导抑制模块
    • 2.3. Training Loss
    • 2.4. Anomaly Detection
  • 3.实验与结果
  • 4.结论

论文标题:MULTI-LEVEL MEMORY-AUGMENTED APPEARANCE-MOTION CORRESPONDENCE FRAMEWORK FOR VIDEO ANOMALY DETECTION

文章信息:
在这里插入图片描述
发表于:ICME 2023(CCF B类会议)
原文链接:https://arxiv.org/abs/2303.05116
源代码:无

摘要

基于AutoEncoder的帧预测在无监督视频异常检测中发挥着重要作用。理想情况下,在正常数据上训练的模型可以产生更大的异常预测误差。然而,外观和运动信息之间的相关性没有得到充分利用,这使得模型缺乏对正常模式的理解。此外,由于深度AutoEncoder不可控制的可推广性,这些模型不能很好地工作。为了解决这些问题,
我们提出了一个多级记忆增强外观运动对应框架。通过外观-运动语义对齐和语义替换训练,探索外观和运动之间潜在的对应关系。
此外,我们还引入了一种内存引导抑制模块,该模块利用与正常原型特征的差异来抑制跳跃连接引起的重建容量,实现了正常数据的良好重建和异常数据的不良重建之间的折衷。
实验结果表明,我们的框架优于最先进的方法,在UCSD Ped2、中大大道和ShanghaiTech数据集上实现了99.6%、93.8%和76.3%的AUC。

1.介绍

本文共享如下:

  • 提出了一个多级记忆增强的外观-运动对齐框架,该框架使用正常和异常数据之间的外观和运动语义一致的相关性间隙来发现异常。
  • 介绍了一种多尺度记忆引导抑制模块,它实现了对正常数据的良好重建和对异常数据的较差重建之间的折衷。
  • 在三个基准数据集上的大量实验表明,所提出的框架优于最先进的方法。

2.方法

如图1(a)所示,所提出的多级记忆增强外观运动对应框架由三部分组成:双流编码器、解码器和多尺度记忆引导抑制模块(MGSM)。我们将视频帧剪辑和相应的光流输入到双流编码器中。
外观自动编码器 E φ E_φ Eφ用于学习外观特征,运动自动编码器 E θ E_θ Eθ用于学习运动特征。
所提出的外观-运动语义对齐损失作用于瓶颈编码层的外观和运动特征,并且我们将运动特征而不是外观特征馈送到解码器 E φ E_φ Eφ中,以预测未来帧,其中建立了外观和运动信息之间的关系。同时,所提出的MGSM利用了多个编码层的多尺度下采样特征,在抑制异常数据的同时,加强了对正常数据的预测。以下小节详细介绍了所有组件。
在这里插入图片描述

2.1外观和运动对其建模

在这里插入图片描述
如上图所示:外观编码器输入t个帧,用于预测第t+1帧,外观编码器 E φ E_φ Eφ得到的输出为 f a f_a fa,运动编码器输入对应的t张光流图,外观编码器 E θ E_θ Eθ得到的输出为 f m f_m fm。为了让外观和运动对其,作者最小化了 f a f_a fa f m f_m fm的余弦距离(目的应该是更好的结合外观和运动的信息),如公式(1)所示:
在这里插入图片描述
此外,为了对外观和运动信号具有共同行为语义的显式关系进行建模,作者将外观特征 f a f_a fa替换为运动特征 f m f_m fm到解码器 D φ D_φ Dφ中,以预测未来的帧。由于只有前景物体的运动信息在形式上,这将减轻复杂背景的副作用,也直接建立外观和运动之间的互补关系。

2.2.记忆引导抑制模块

所提出的MGSM的体系结构如图1(b)所示。MGSM被训练来学习和压缩多个原型,这些原型存储整个训练集的正态性。我们用MGSM装备编码器E和解码器 D φ D_φ Dφ之间的所有跳跃连接。MGSM使用输入编码特征和存储的正常原型之间的相似性来计算抑制器,该抑制器抑制对应编码特征的表示。它避免了学习从输入到输出的身份映射,这将使正常和异常不可分割。
在这里插入图片描述
具体而言,给定连续的帧作为输入,编码器 E φ E_φ Eφ生成一组特征图{ f 1 f_1 f1 f 2 f_2 f2,…, f L − 1 f_{L−1} fL1},其中L是下采样尺度的数量。对于每个大小为 H i × W i × C i H^i × W^i × C^i Hi×Wi×Ci的特征图 f i f_i fi,我们将其展平为一个向量,并用作记忆库的查询 q k q^k qk。对于记忆库,我们遵循[3]的方法进行实现。每个记忆库是一个可学习的矩阵 M ∈ R N × D M ∈ R^{N×D} MRN×D,由包含固定维度D的N个记忆项组成,用于在训练期间记录原型正常模式。M的第j行向量是一个记忆项 m j ∈ R D ( j ∈ 1 , 2 , . . . , N ) m_j ∈ R^D(j ∈ {1, 2, ..., N}) mjRDj1,2,...,N。类似于[3, 8],通过计算查询 q k q^k qk与每个项 m j m_j mj之间的相似性,来解决记忆化的正常性,具体表现为计算基于这种相似性的注意权重w,如公式(2)所示:
在这里插入图片描述
基于注意权重 w ∈ R 1 × N w∈R^{1×N} wR1×N,得到了一个抑制器λ。不是在以前的工作中对存储器项进行线性组合,而是通过跳过连接直接用于解码器的新特征 q ^ k \widehat{q}^k q k由公式(3)重新计算:
在这里插入图片描述
其中σ表示ReLU激活函数,max返回输入注意力权重w中的最大值,norm表示批量归一化。MGSM通过抑制编码特征的表示而不是重新生成它们来实现可控的重建能力,缓解了由于高度依赖于存储器大小而导致的不稳定的VAD性能。

2.3. Training Loss

像素损失:
在这里插入图片描述
图像梯度损失(其中i、j表示视频帧的空间索引):
在这里插入图片描述
外观运动对齐损失(理解为外观和运动的相似性,越小越好):
在这里插入图片描述
记忆模块的紧凑和分离损失:

  • 紧凑损失:
    在这里插入图片描述
  • 分离损失:
    在这里插入图片描述
    其中 m 1 i m^i_1 m1i m 2 i m^i_2 m2i表示与查询 q i q^i qi最接近的第一和第二存储器项。

最后总的损失函数如下:
在这里插入图片描述
其中, λ i n t λ_{int} λint λ g d λ_{gd} λgd λ a l i g n λ_{align} λalign λ c o m p λ_{comp} λcomp λ d i v e r λ_{diver} λdiver是平衡超参数,W是模型的参数, λ m o d e l λ_{model} λmodel是控制模型复杂性的正则化超参数。

2.4. Anomaly Detection

在测试阶段,异常评分由两部分组成:
(1) 未来帧预测误差
S p = ∣ ∣ I ^ − I ∣ ∣ 2 2 S_p=||\widehat{I} - I||_2^2 Sp=∣∣I I22
(2) 外观与运动特征的不一致
在这里插入图片描述
然后,通过使用加权策略将这两部分融合,得到最终的异常分数,具体如下:
在这里插入图片描述
其中, u p u_p up δ p δ_p δp u f u_f uf δ f δ_f δf表示所有正常训练样本的预测误差的均值和标准差,以及外观和运动特征之间的不一致性。 w p w_p wp w f w_f wf表示两个分数的权重。

3.实验与结果

作者的网络结构图如下:
在这里插入图片描述

实验结果(在3个常见的视频异常检测数据集中:):
在这里插入图片描述

4.结论

在本文中,提出了一种用于视频异常检测的多级记忆增强外观运动对应框架。
通过所提出的外观-运动语义对齐丢失和预测的语义替换,显式地对外观和异常分数之间的相关性进行了建模。
同时,所提出的MGSM不仅实现了正常数据的良好重建和异常数据的较差重建之间的折衷,而且克服了复杂场景中性能下降的问题。
在三个基准数据集上的大量实验结果表明,方法比最先进的方法性能更好。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot整合vue,将vue项目整合到springboot项目中

将vue项目打包后&#xff0c;与springboot项目整合。 第一步&#xff0c;使用springboot中的thymeleaf模板引擎 导入依赖 <!-- thymeleaf 模板 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-t…

虚拟机下Ubuntu上网设置

文章目录 一、虚拟机上网的两种方式1.1 NAT模式&#xff08;Network Address Translation&#xff09;1.2 桥接模式&#xff08;Bridge Mode&#xff09;1.3 简介 二、实际配置2.1 NAT模式配置2.2 桥接模式配置 之前跟着博客配了好几个也没用&#xff0c;后来自己慢慢模式实践测…

MySQL数据库 DML

目录 DML概述 添加数据 修改数据 删除数据 DML概述 DML英文全称是Data Manipulation Language(数据操作语言)&#xff0c;用来对数据库中表的数据记录进行增、删、改操作。 添加数据(工NSERT)修改数据(UPDATE)删除数据(DELETE) 添加数据 (1)给指定字段添加数据 INSERT …

【FPGA/verilog -入门学习9】verilog基于查找表的8位格雷码转换

本文参考&#xff1a;FPGA杂记5——格雷码转换设计-CSDN博客 1&#xff0c;什么是查表法&#xff0c;做什么用&#xff0c;有什么好处 查找表&#xff08;Look-Up-Table&#xff09; 查找表&#xff0c;简单说&#xff0c;就是一个预先存储好结果的数据表 通过访问这张预先存储…

【数据分享】2019-2023年我国区县逐年新房房价数据(Excel/Shp格式)

房价是一个区域发展程度的重要体现&#xff0c;一个区域的房价越高通常代表这个区域越发达&#xff0c;对于人口的吸引力越大&#xff01;因此&#xff0c;房价数据是我们在各项城市研究中都非常常用的数据&#xff01;之前我们分享了2019—2023年我国区县逐月的新房房价数据&a…

解决“bat中文路径乱码“问题

今天&#xff0c;在使用.bat脚本&#xff0c;将hello.png从"D:\mypic\备份"目录&#xff0c;拷贝到"D:\mypic\备份"时&#xff1b;发现中文乱码,弹出如下对话框: 图(1) bat中文路径乱码 原来的命令是&#xff1a; copy D:\mypic\one\hello.png D:\mypic\备…

【LangChain学习之旅】—(3) LangChain快速构建本地知识库的智能问答系统

【LangChain学习之旅】—&#xff08;3&#xff09; LangChain快速构建本地知识库的智能问答系统 项目及实现框架开发框架核心实现机制数据准备及加载加载文本文本的分割向量数据库存储文本的“嵌入”概念向量数据库概念 相关信息获取RetrievalQA生成回答并展示示例小结 Refere…

四. 基于环视Camera的BEV感知算法-BEVDet4D

目录 前言0. 简述1. 算法动机&开创性思路2. 主体结构3. 损失函数4. 性能对比总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第四章——基于环视Cam…

java.lang.IllegalArgumentException: Could not resolve placeholder XXX‘ in value

问题描述 使用Springcloudalibaba的nacos作为配置中心&#xff0c;服务启动时报错&#xff1a; java.lang.IllegalArgumentException: Could not resolve placeholder XXX‘ in value java.lang.IllegalArgumentException: Param ‘serviceName’ is illegal, serviceName is …

【动态规划精选题目】2、路径问题模型

此动态规划系列主要讲解大约10个系列【后续持续更新】 本篇讲解路径问题模型中的6道经典题&#xff0c;会在讲解题目同时给出AC代码 目录 1、不同路径 2、不同路径2 3、珠宝的最大价值 4、下降路径最小和 5、最小路径和 6、地下城游戏 1、不同路径 class Solution { publi…

基于VGG-16+Android+Python的智能车辆驾驶行为分析—深度学习算法应用(含全部工程源码)+数据集+模型(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Pycharm 环境Android环境 相关其它博客工程源代码下载其它资料下载 前言 本项目采用VGG-16网络模型&#xff0c;使用Kaggle开源数据集&#xff0c;旨在提取图片中的用户特征&#xff0c;最终在移…

数据分析-14-基于Python的信用评分卡数据分析(包含代码数据)

文章目录 0. 数据代码下载1. 分析思路2. 理解数据3. 数据清洗3.1 选择子集3.2 列名重命名3.3 缺失数据处理3.4 异常值处理 4. 建立模型4.1 借款逾期超过90天的人数&#xff0c;即借款客户的整体质量情况&#xff1f;4.2 借款人月收入分布情况及月收入对违约客户数量的影响&…

低代码在制造业的应用前景

引言 数字化转型已经成为制造业的必然趋势&#xff0c;为了应对市场的快速变化、提高效率、降低成本&#xff0c;制造业企业不得不追求更智能、更敏捷的生产方式。在这一转型过程中&#xff0c;低代码技术崭露头角&#xff0c;成为了一种强大的工具&#xff0c;有望加速制造业…

PyCharm community 安装教程

目录 链接cudatoolkit 下载地址&#xff1a;https://www.jetbrains.com/pycharm/download/other.html 双击打开 安装路径&#xff0c;可自行更换到D盘 不导入设置 链接cudatoolkit

设计模式(2)--对象创建(5)--单件

1. 意图 保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 2. 一种角色 单件(Singleton) 3. 优点 3.1 对唯一实例的受控访问 3.2 缩小名空间(对全局变量的改进) 3.3 允许对操作和表示精化(可以有子类) 3.4 允许可变数目的实例 3.5 比类操作更灵活 4. 缺点…

【C语言】cache和程序访问的局部性对程序性能的影响

文章目录 1&#xff0e;源程序比较其性能影响2&#xff0e;内存分配&#xff08;1&#xff09;静态存储区&#xff08;static&#xff09;&#xff1a;&#xff08;2&#xff09;栈区&#xff08;stack&#xff09;&#xff1a;&#xff08;3&#xff09;堆区&#xff08;heap&…

msvcp140.dll丢失怎样修复?全面分析msvcp140.dll的修复方法

在执行特定程序时&#xff0c;有可能遭遇msvcp140.dll文件遗失的困扰&#xff0c;此时该如何处理呢&#xff1f;此次将为您讲述面临此类问题的有效解决方案&#xff0c;涉及到多种修复方法&#xff0c;其中包括利用DLL修复工具进行操作。您可依据个人需求选择相应的修复方式&am…

Linux:时间显示(函数介绍)

文章目录 1、sleep&#xff1a;延迟函数2、time/localtime3、示例&#xff1a;sleep time localtime4、Linux时间调整 1、sleep&#xff1a;延迟函数 函数原型&#xff1a;unsigned int sleep(unsigned int seconds); 功 能&#xff1a;延时 参 数&#xff1a;seconds:秒&am…

条款5:了解c++默默编写并调用了哪些函数

如果你不自己声明&#xff0c;编译器会替你声明&#xff08;编译器版本的&#xff09;拷贝构造函数、拷贝赋值运算符和析构函数。此外&#xff0c;如果你没有声明任何构造函数&#xff0c;编译器会为你声明一个默认构造函数。 class Empty{};本质上和写成下面这样是一样的: c…

cpp_03_引用_类型转换_温和强转_面向对象

1 引用的应用 1.1 数据传递--值传递 C语言只要涉及数据传递&#xff08;例如&#xff1a;初始化、赋值、传参、返回值&#xff09;&#xff0c; 都为值传递&#xff08;将数据复制一份给到目标内存&#xff09;。 // value.cpp 值传递&#xff1a;将数据复制一份给别人 #in…