一种基于外观-运动语义表示一致性的视频异常检测框架 论文阅读
A VIDEO ANOMALY DETECTION FRAMEWORK BASED ON APPEARANCE-MOTION SEMANTICS REPRESENTATION CONSISTENCY 论文阅读
- ABSTRACT
- 1. INTRODUCTION
- 2. PROPOSED METHOD
- 3. EXPERIMENTAL RESULTS
- 4. CONCLUSION
- 阅读总结:
论文标题:A VIDEO ANOMALY DETECTION FRAMEWORK BASED ON APPEARANCE-MOTION SEMANTICS REPRESENTATION CONSISTENCY
文章信息:

发表于:ICASSP 2023(CCF B)
原文链接:https://arxiv.org/abs/2204.04151
源码:无
ABSTRACT
视频异常检测是一项重要但具有挑战性的任务。目前流行的方法主要研究正常模式和异常模式之间的重构差异,而忽略了行为模式的外观和运动信息之间的语义一致性,使得结果高度依赖于帧序列的局部上下文,缺乏对行为语义的理解。
为了解决这个问题,我们提出了一个外观-运动语义表示一致性框架,该框架利用正常数据和异常数据之间的外观和运动语义表示的一致性差距。
设计了双流结构来对正常样本的外观和运动信息表示进行编码,并提出了一种新的一致性损失来增强特征语义的一致性,从而可以识别出一致性较低的异常。
此外,异常的低一致性特征可以用来降低预测帧的质量,这使得异常更容易被发现。实验结果证明了该方法的有效性。
1. INTRODUCTION
视频异常检测(VAD)是指识别不符合预期行为的事件[1],在公共安全场景中具有重要的实际价值。尽管在[2, 3]中投入了大量努力,由于异常的罕见性和模糊性,VAD仍然是一项极具挑战性的任务[1]。收集平衡的正常和异常样本,并使用监督二分类模型解决这个任务是不可行的。因此,VAD的典型解决方案通常被制定为一个无监督学习问题,目标是仅使用正常数据训练模型以挖掘正常模式。不符合该模型的事件被视为异常。现有的主流VAD方法几乎都遵循重建或未来帧预测模式。基于重建的方法[4, 5, 6, 7]通常在正常数据上训练自动编码器(AEs),并期望异常数据在测试时产生较大的重建误差,使得异常数据可从正常数据中检测出来。基于预测的方法[3]使用视频帧的时间特征来预测基于给定先前帧序列的下一帧,然后使用预测误差进行异常测量。然而,这样的方法高度依赖于帧序列的局部上下文,并且一些研究[6, 8]表明,仅在正常数据上训练的AE有时能够很好地重建异常,导致性能较差。因此,一些研究人员[9, 10, 11]尝试利用活动的运动信息,其中包含许多表示行为属性的语义,以实现VAD的良好性能。然而,这些方法仅在测试阶段结合外观和运动的信息来检测异常,而在训练阶段并未在相同的空间中联合建模这两种类型的信息[9, 10, 11, 12, 13],这使得难以捕捉VAD的两种模态之间的关联。最近,提出了这些最先进的(SOTA)方法[8, 14]来模拟两种模态的关系,并且可以在大多数情况下检测异常,但由于关系建模方法的不稳定性,结果仍然远远低于期望。例如,Cai等人[14]使用内存网络存储两种模态的关系,以便不合适大小的内存模块容易限制网络的性能。此外,Liu等人[8]在流重建和帧预测的组合中使用混合框架,但结果高度依赖于先前阶段流重建的质量,这使得难以训练一个稳定的模型。而且,这些方法建模的关系主要用于恢复像素信息,但仍然缺乏对行为语义的理解。在本文中,我们在通过外观-运动语义表示一种简单而新颖的网络中充分利用正常事件的多模态知识来检测异常,称为AMSRC-Net。具体来说,受到使用多模态的SOTA方法[8, 10, 12, 14]的启发,我们首先通过通用的双流编码器提取正常事件中外观和运动的代表性特征。与以前的工作不同,我们观察两种模态特征之间的一致性,并提出一种新颖的一致性损失,以在特征空间中明确地建模语义一致性。然后,所提出的网络为异常样本生成更低的一致性特征,这通常反映出不规则的行为语义,并可用于检测异常。此外,我们设计了一个简单的流引导融合模块,它利用上述特征语义一致性差异来增强预测质量差异。对三个公共VAD数据集进行的大量实验证明,我们提出的AMSRC-Net的性能优于SOTA方法。
2. PROPOSED METHOD
正如图1所示,我们提出的AMSRC-Net由三部分组成:一个双流编码器、一个解码器和一个流引导融合模块(FGFM)。我们首先将先前的视频帧图像及其光流剪辑输入到双流编码器中,以获得外观和运动的特征表示。然后,我们提出的一致性损失用于进一步增强正常样本中外观和运动信息之间特征语义的一致性。接下来,两个一致的模态特征被输入到流引导融合模块中。最后,将融合后的特征馈入解码器,以预测未来的帧图像。AMSRC-Net的详细网络架构如图2所示,所有组件将在以下小节中详细介绍。
双流编码器和解码器:
双流编码器从输入视频帧图像和相应的光流中提取特征表示。由于一致性约束,提取的特征语义高度相似,代表了监控视频中的前景行为特性。然后,训练解码器以通过采用通过融合来自前一步骤的提取特征而形成的聚合特征来生成下一帧。聚合特征可能缺乏低级信息,如背景、纹理等。为了解决这个问题,我们在帧流编码器和解码器之间添加了一个类似UNetlike的跳过连接结构[15],以保留这些与预测高质量未来帧的行为无关的低级特征。
FGFM:
由于在双流编码器的末端采用了ReLU激活函数,输出特征中许多特征表示具有零值。在训练双流特征的语义一致性时,我们观察到非零特征表示上的两个流特征的分布是高度一致的。相反,异常数据生成的外观-运动特征的较低一致性反映了在非零特征表示上的两个流特征分布的较大差异。为了利用上述特征表示差距来提高VAD性能,我们设计了一个简单的流引导融合模块,以扩大正常和异常样本之间的预测误差差距。给定外观特征 f e a f r a m e fea_{frame} feaframe 和运动特征 f e a f l o w fea_{flow} feaflow,我们在没有线性投影和残差操作的情况下,使用 f e a f r a m e fea_{frame} feaframe 和 f e a f l o w fea_{flow} feaflow 的激活之间的Hadamard乘积来生成融合特征 f e a f u s e d fea_{fused} feafused,该特征用于预测:
其中,σ代表Sigmoid函数,⊕和⊗分别表示矩阵加法和Hadamard乘积。在正常和异常数据的融合特征表示中存在差距,只有正常数据的融合特征被训练用于生成高质量的未来帧。随着训练过程中融合特征表示中差距的增加,预测帧质量的差距也被放大。
Loss Function:
我们遵循先前基于预测的VAD工作[3],使用强度和梯度差异来使预测接近其真实值。强度损失确保了预测和其真实值之间像素的相似性,而梯度损失可以使预测的图像更加清晰。我们通过最小化预测帧 x ~ \widetilde{x} x 与其真实值 x x x之间的 l 2 l_2 l2距离来实现:
梯度损失定义为:
其中i、j表示视频帧的空间索引。
为了建模正常样本的外观和运动语义表示的一致性,我们最小化由双流编码器编码的正常样本的外观和运动特征之间的余弦距离。提出的一致性损失定义如下:
总损失L的形式如下:
其中, λ i n t λ_{int} λint、 λ g d λ_{gd} λgd、 λ s i m λ_{sim} λsim是平衡超参数,W是模型的参数, λ m o d e l λ_{model} λmodel是控制模型复杂性的正则化超参数。
Anomaly Detection:
在测试阶段,异常评分由两部分组成:
(1) 外观与运动特征的不一致
(2) 未来帧预测误差
然后,通过使用加权策略将这两部分融合,得到最终的异常分数,具体如下:
其中, u f u_f uf、 δ f δ_f δf、 u p u_p up和 δ p δ_p δp分别表示所有正常训练样本的外观和运动特征之间的不一致性以及预测误差的平均值和标准差, w f w_f wf和 w p w_p wp表示两个分数的权重。
3. EXPERIMENTAL RESULTS
4. CONCLUSION
提出了一个外观-运动语义表示一致性框架,该框架利用正常数据和异常数据之间的外观和运动语义表示的一致性来检测异常。
设计了一个双流编码器来提取正常样本的外观和运动特征,并添加约束来增强其一致性语义,从而可以识别出一致性较低的异常样本。
此外,流引导融合模块可以融合异常的外观和运动特征的一致性较低,从而影响预测帧的质量,使异常产生较大的预测差异。
在三个公共基准上的实验结果表明,我们的方法比最先进的方法性能更好。
阅读总结:
和上一篇一个作者,方法也很类似。上一篇是运动信息替换外观信息用于后续的解码器,这篇是通过一个模块将两个结合起来。
相关文章:

一种基于外观-运动语义表示一致性的视频异常检测框架 论文阅读
A VIDEO ANOMALY DETECTION FRAMEWORK BASED ON APPEARANCE-MOTION SEMANTICS REPRESENTATION CONSISTENCY 论文阅读 ABSTRACT1. INTRODUCTION2. PROPOSED METHOD3. EXPERIMENTAL RESULTS4. CONCLUSION阅读总结: 论文标题:A VIDEO ANOMALY DETECTION FRA…...

Netty—NIO万字详解
文章目录 NIO基本介绍同步、异步、阻塞、非阻塞IO的分类NIO 和 BIO 的比较NIO 三大核心原理示意图NIO的多路复用说明 核心一:缓存区 (Buffer)Buffer类及其子类Buffer缓冲区的分类MappedByteBuffer类说明: 核心二:通道 (Channel)Channel类及其…...

面试经典150题(32-37)
leetcode 150道题 计划花两个月时候刷完,今天(第十五天)完成了6道(32-37)150: 今天刚好有点没精神的感觉,然后碰到的题也不难。。天意!!! 32.(289. 生命游戏࿰…...

手撕分布式缓存---HTTP Client搭建
经过上个章节的学习,我们已经实现了一致性哈希算法,这个算法保证我们可以在节点发生变动时,最少的key请求受到影响,并返回这个节点的名称;这很大程度上避免了哈希雪崩和哈希穿透的问题。这个章节我们要基于此实现完整的…...

word如何快速制作简易代码块
先上解决方案。 方式一(全自动): typora编辑,导出选择word文档即可。内网环境,故放弃。 方式二(全手动): 在修改文档时,左侧会有“段落布局”按钮,点击该按…...

Linux常用网络指令
网络参数设定使用的指令 手动/自动设定与启动/关闭 IP 参数:ifconfig, ifup, ifdown ifconfig ifconfig常用于修改网络配置以及查看网络参数的指令 [rootwww ~]# ifconfig {interface} {up|down} < 观察与启动接口 [rootwww ~]# ifconfig interface {options…...

Spark on Yarn 安装配置实验(3.1.1)
子任务二: Spark on Yarn 安装配置 本任务需要使用 root 用户完成相关配置, 已安装 Hadoop 及需要配置前置环境,具体要求如下: 1 、从宿主机 /opt 目录下将文件 spark-3.1.1-bin-hadoop3.2.tgz 复制到容器 Master 中的 /opt/software (若 路径不存在,则需新…...

详解YOLOv5网络结构/数据集获取/环境搭建/训练/推理/验证/导出/部署
一、本文介绍 本文给大家带来的教程是利用YOLOv5训练自己的数据集,以及有关YOLOv5的网络结构讲解/数据集获取/环境搭建/训练/推理/验证/导出/部署相关的教程,同时通过示例的方式让大家来了解具体的操作流程,过程中还分享给大家一些好用的资源…...

ansible(不能交互)
1、定义 基于python开发的一个配置管理和应用部署工具,在自动化运维中异军突起,类似于xshell一键输入的工具,不需要每次都切换主机进行操作,只要有一台ansible的固定主机,就可以实现所有节点的操作。不需要agent客户端…...

黑马点评06分布式锁 2Redisson
实战篇-17.分布式锁-Redisson功能介绍_哔哩哔哩_bilibili 1.还存在的问题 直接实现很麻烦,借鉴已有的框架。 2.Redisson用法 3.Redisson可重入原理 在获取锁的时候,看看申请的线程和拿锁的线程是否一致,然后计算该线程获取锁的次数。一个方法…...

深度剖析知识图谱:方法、工具与实战案例
💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 知识图谱作为一种强大的知识表示和关联技术&am…...

Oracle中的dblink简介
Oracle中的dblink简介 是一种用于在不同数据库之间进行通信和数据传输的工具。它允许用户在一个数据库中访问另一个数据库中的对象,而无需在本地数据库中创建这些对象。 使用dblink,用户可以在一个数据库中执行SQL语句,然后访问另一个数据库中…...

ubuntu安装显卡驱动过程中遇到的错误,及解决办法!
ubuntu安装显卡驱动的过程中,可能会遇到以下问题,可以参考解决办法! 问题1: ERROR: An error occurred while performing the step: "Building kernel modules". See /var/log/nvidia-installer.log for details. …...

【程序】STM32 读取光栅_编码器_光栅传感器_7针OLED
文章目录 源代码工程编码器基础程序参考资料 源代码工程 源代码工程打开获取: http://dt2.8tupian.net/2/28880a55b6666.pg3这里做了四倍细分,在屏幕上显示 速度、路程、方向。 接线方法: 单片机--------------串口模块 单片机的5V-------…...

TestSSLServer4.exe工具使用方法简单介绍(查SSL的加密版本SSL3或是TLS1.2)
一、工具使用方法介绍 工具使用方法参照:http://www.bolet.org/TestSSLServer/ 全篇英文看不懂,翻译了下,能用到的简单介绍如下: 将下载的TestSSLServer4.exe工具放到桌面上,CMD命令行进入到桌面目录,执…...

新年跨年烟花超酷炫合集【内含十八个烟花酷炫效果源码】
❤️以下展示为全部烟花特效效果 ❤️下方仅展示部分代码 ❤️源码获取见文末 🎀HTML5烟花喷泉 <style> * {padding:0;margin:0; } html,body {positi...

计算机网络考研辨析(后续整理入笔记)
文章目录 体系结构物理层速率辨析交换方式辨析编码调制辨析 链路层链路层功能介质访问控制(MAC)信道划分控制之——CDMA随机访问控制轮询访问控制 扩展以太网交换机 网络层网络层功能IPv4协议IP地址IP数据报分析ICMP 网络拓扑与转发分析(重点…...

JMESPath语言
JMESPath(JSON Matching Expression Path) 一种查询语言。 主要用于从JSON文档中检索和过滤数据。 通过写表达式提取和处理JSON数据,而无需编写复杂的代码。 功能:数据提取、过滤、转换、排序。 场景:处理API响应…...

【C++高阶(七)】C++异常处理的方式
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:C从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习C 🔝🔝 异常处理的方式 1. 前言2. C语言处理异常的方式…...

在Idea中创建基于工件的本地服务
目录 1、创建基于工件的Tomcat服务器: 2、修改名称: 3、修改服务器项: 4、部署项 5、最后记得点右下角的【应用】和【确定】保存。 1、创建基于工件的Tomcat服务器: 运行->编辑配置->【Tomcat服务器】->本地 2、修…...

十六、YARN和MapReduce配置
1、部署前提 (1)配置前提 已经配置好Hadoop集群。 配置内容: (2)部署说明 (3)集群规划 2、修改配置文件 MapReduce (1)修改mapred-env.sh配置文件 export JAVA_HOM…...

自己动手写编译器:语法解析的基本原理
在前面系列章节中我们完成了词法解析。词法解析的基本任务就是判断给定字符串是否符合特定规则,如果符合那么就给这个字符串分配一个标签(token)。词法解析完成后接下来的工作就要分配给语法解析,后者的任务就是判断一系列标签的组合是否符合特定规范。 …...

VS Code解决乱码
在上边搜索栏输入“>Change File Encoding”,更改编码格式,解决乱码格式。 VS Code会帮助确认编码格式,然后选择就好。 最后完成如下:...

宝塔Linux:部署His医疗项目通过jar包的方式
📚📚 🏅我是默,一个在CSDN分享笔记的博主。📚📚 🌟在这里,我要推荐给大家我的专栏《Linux》。🎯🎯 🚀无论你是编程小白,还是有…...

Vim命令大全(超详细,适合反复阅读学习)
Vim命令大全 Vim简介Vim中的模式光标移动命令滚屏与跳转文本插入操作文本删除操作文本复制、剪切与粘贴文本的修改与替换文本的查找与替换撤销修改、重做与保存编辑多个文件标签页与折叠栏多窗口操作总结 Vim是一款文本编辑器,是Vi编辑器的增强版。Vim的特点是快速、…...

爬虫持久化保存
## open方法- 方法名称及参数markdown **open(file, moder, bufferingNone, encodingNone, errorsNone, newlineNone, closefdTrue)****file** 文件的路径,需要带上文件名包括文件后缀(c:\\1.txt)**mode** 打开的方式(r,w,a,x,b,t…...

统一大语言模型和知识图谱:如何解决医学大模型-问诊不充分、检查不准确、诊断不完整、治疗方案不全面?
统一大语言模型和知识图谱:如何解决医学大模型问诊不充分、检查不准确、诊断不完整、治疗方案不全面? 医学大模型问题如何使用知识图谱加强和补足专业能力?大模型结构知识图谱增强大模型的方法 医学大模型问题 问诊。偏离主诉和没抓住核心。…...

读写分离之同步延迟测试
背景 读写分离是快速提高数据库性能的手段,主库只负责写入,从库负责查询。但在性能得到提升的同时,编程的复杂度就会提升。由其碰到主从同步延迟的情况,在数据写入后,在从库无法读取到最新数据,会对业务逻…...

SpringBoot+OCR 实现PDF 内容识别
一、SpringBootOCR对pdf文件内容识别提取 1、在 Spring Boot 中,您可以结合 OCR(Optical Character Recognition)库来实现对 PDF 文件内容的识别和提取。 一种常用的 OCR 库是 Tesseract,而 pdf2image 是一个用于将 PDF 转换为图…...

Go和Java实现抽象工厂模式
Go和Java实现抽象工厂模式 本文通过简单数据库操作案例来说明抽象工厂模式的使用,使用Go语言和Java语言实现。 1、抽象工厂模式 抽象工厂模式是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创 建型模式,它…...