Learning Normal Dynamics in Videos with Meta Prototype Network 论文阅读
文章信息:发表在cvpr2021

原文链接:
Learning Normal Dynamics in Videos with Meta Prototype Network
- 摘要
- 1.介绍
- 2.相关工作
- 3.方法
- 3.1. Dynamic Prototype Unit
- 3.2. 视频异常检测的目标函数
- 3.3. 少样本视频异常检测中的元学习
- 4.实验
- 5.总结
- 代码复现:
摘要
在视频异常检测领域,基于自动编码器(Auto-Encoder,AE)的帧重构(当前或未来帧)方法是一种流行的技术。通过在正常数据上进行训练,模型通常能够将异常场景的重构误差与正常场景相比显著增大。之前的一些方法在自动编码器中引入了内存存储库(memory bank),以编码跨训练视频的各种正常模式。然而,这些方法会消耗大量内存,并且无法处理在测试数据中出现的未见过的新场景。
在我们的工作中,我们提出了一种动态原型单元(Dynamic Prototype Unit,DPU),用于实时将正常动态编码为原型,而无需额外的内存成本。此外,我们引入了元学习到我们的动态原型单元,形成了一种新颖的少样本正常性学习器,即元原型单元(Meta-Prototype Unit,MPU)。这使得我们的系统能够通过仅消耗少量迭代即可快速适应新场景。我们在多个基准数据集上进行了广泛的实验,结果表明我们的方法在性能上优于当前最先进的方法,证明了我们方法的有效性。
1.介绍
作者的主要工作是在视频异常检测(VAD)领域,提出了一种新的方法。首先,他们介绍了视频异常检测的背景和重要性,尤其是在公共安全监控中的关键作用。然后,作者指出了目前的异常检测方法中存在的问题,即对“异常”的定义概念不确定,难以收集所有可能异常的数据。因此,异常检测通常被制定为一种无监督学习问题,旨在通过学习模型仅利用正常数据中的规律模式。作者指出,Deep Auto-Encoder(AE)是视频异常检测的流行方法,通常用于对历史帧建模并重构当前帧或预测未来帧。
为了解决传统方法中存在的问题,作者提出了一种动态原型单元(DPU),用于实时编码正常动态并形成原型。他们还引入了元学习到DPU,形成了一种少样本正常性学习器,称为Meta Prototype Unit(MPU)。MPU通过学习目标模型的初始化,并在推断过程中通过少量参数更新调整到新场景,从而提高了场景适应能力。
主要贡献包括:
- 提出了动态原型单元(DPU),用于学习表示正常数据的多样性和动态模式。
- 引入元学习到DPU,将其改进为少样本正常性学习器(MPU),通过少量参数和更新迭代赋予模型快速适应能力。
- 在多个无监督异常检测基准上,作者的DPU-based AE实现了新的最先进性能,并验证了MPU在少样本设置中的适应能力。
下图为方法概述:

图1:方法概述。(1)设计了一个动态原型单元(Dynamic Prototype Unit,DPU),用于学习编码正常动态的一组原型;(2)引入元学习方法,将DPU构建为一个少样本正常性学习器——元原型单元(Meta-Prototype Unit,MPU)。它通过学习目标模型的初始化,并在推断过程中通过参数更新调整到新场景,提高了场景适应能力。
2.相关工作
-
异常检测问题:由于异常数据的缺失和标注成本昂贵,视频异常检测被划分为几种学习问题,其中无监督设置假设只有正常训练数据,而弱监督设置可以访问具有视频级标签的视频。作者关注实际应用中更为实际的无监督设置。先前的方法主要基于稀疏编码、马尔科夫随机场、混合动态纹理、混合概率主成分分析模型等,而深度学习,尤其是卷积神经网络(CNNs),在视频异常检测方面取得了成功。
-
深度Auto-Encoder和问题:许多方法使用深度Auto-Encoder(AE)来建模正常模式并重构视频帧。然而,这些方法可能面临“过度泛化”问题,即有时异常帧也可以被良好地预测为正常帧。一些方法引入了记忆库来处理此问题,但这会带来额外的内存成本。
-
提出的方法:提出了一种动态原型单元(DPU),用于实时编码正常动态并形成原型。为了解决记忆库的内存成本问题,作者采用了一种注意机制来测量正常程度。此外,作者引入了元学习技术到DPU模块中,使其具备快速适应新场景的能力。
-
注意机制:注意机制被广泛应用于许多计算机视觉任务,包括通道注意和空间注意。作者利用注意机制来测量空间局部编码向量的正常性,并使用它们生成编码正常模式的原型项。
-
少样本学习和元学习:在少样本学习中,研究人员旨在模仿人类的快速学习能力,即只需少量数据示例就能快速适应新场景。作者引入了元学习技术,将DPU模块改进为Meta Prototype Unit(MPU),使其具备快速适应能力。与其他简单任务的元学习方法不同,作者的方法针对视频异常检测进行了精心设计。
总体而言,作者的工作主要集中在提出一种新颖的方法,利用动态原型单元(DPU)和元学习技术,以实现对视频异常检测中新场景的快速适应。
3.方法
3.1. Dynamic Prototype Unit

图2:基于DPU模型的框架。提出的动态原型单元(DPU)被嵌入到一个自动编码器(AE)中,用于学习编码正常动态的原型。这些原型是通过在AE编码的基础上利用正常度权重进行引导而获得的,而AE编码的正常度权重是通过完全可微的注意机制生成的。然后,一个正常度编码映射(绿色)被重构为学习到的原型的编码。它进一步与AE编码映射聚合,用于后续的帧预测。
简单来说,DPU就是一个注意力机制,将DPU插入到AE中对特征图进行权重重新计算。DPU首先得到多个对应输入编码特征每个元素位置的注意力图,然后分别得到对应的多个原型特征向量。通过对原型向量的查询和提取,就可以得到加强后的特征图。
3.2. 视频异常检测的目标函数
整个架构通过过去的几帧预测未来的一帧,损失函数由两个部分组成,一个是预测帧的损失,另一个是重构特征图的损失,重构特征图的损失也就是DPU中产生的损失。

其中 L f r a L_{fra} Lfra是帧预测损失, L f e a L_{fea} Lfea是DPU重构特征图的损失,λ是超参数。损失函数的具体计算参考原论文。
3.3. 少样本视频异常检测中的元学习
结合元学习理论,把DPU变成为元学习原型组件。可以理解为通过元学习,将别的训练集得到的模型快速应用到样本少的模型上面。
4.实验
第一个实验是作者在4个数据集上测试了带有DPU单元的网络,对比结果如下:

第二个实验是测试元学习的效果:作者在Shanghai Tech和UCF crime数据集的模型通过元学习应用在别的数据集上

可以看出,结果都还可以。
5.总结
在这项工作中,我们引入了一个原型学习模块,通过使用注意机制来明确建模视频序列中的正常动态,以进行无监督的异常检测。该原型模块是完全可微的,并以端到端的方式进行训练。在不额外消耗内存的情况下,我们的方法在无监督设置下在各种异常检测基准上实现了最先进的性能。此外,我们利用元学习技术将原型模块改进为一个少样本正常性学习器。广泛的实验评估证明了该场景适应方法的有效性。
代码复现:
我在ped2数据集上复现了DPU的结果,但是效果和作者的差了10个百分点。有没有复现成功的大佬帮帮忙,是不是我没有正确设置训练的参数。下图是我的结果,用的是epoch=300的模型,当然epoch=1000时效果也没上90,最好的时候是将近89吧。

我也根据作者的代码逻辑换了一个数据集,效果也不是很好。想换自己的数据集的同学如果遇到困难可以一起交流。
相关文章:
Learning Normal Dynamics in Videos with Meta Prototype Network 论文阅读
文章信息:发表在cvpr2021 原文链接: Learning Normal Dynamics in Videos with Meta Prototype Network 摘要1.介绍2.相关工作3.方法3.1. Dynamic Prototype Unit3.2. 视频异常检测的目标函数3.3. 少样本视频异常检测中的元学习 4.实验5.总结代码复现&a…...
Unity 关于SpriteRenderer 和正交相机缩放
float oldWidth 750f;float oldHeight 1334f;float newWidth Screen.width;float newHeight Screen.height;float oldAspect oldWidth / oldHeight;float newAspect newWidth / newHeight;//水平方向缩放float horizontalCompressionRatio newAspect / oldAspect;//垂直…...
HarmonyOS应用开发者基础认证考试(98分答案)
基于最近大家都在考这个应用开发者基础认证考试,因此出了一期,一样复制word里面搜索做,很快,当然good luck 判断题 Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件。一个应用可以包含一个或多个Ability。 正确(Tr…...
Ubuntu20.04 Kimera Semantic运行记录
Ubuntu20.04 Kimera Semantic 官方bag运行记录 以下基本为官方教程,有部分修改 依赖 sudo apt-get install python3-wstool python3-catkin-tools protobuf-compiler autoconf sudo apt-get install ros-noetic-cmake-modulessudo apt-get install ros-noetic-i…...
服务器RAID系统的常见故障,结合应用场景谈谈常规的维修处理流程
常见的服务器RAID系统故障包括硬盘故障、控制器故障、电源故障、写入错误和热插拔错误。下面结合这些故障的应用场景和常规维修处理流程来详细讨论: 硬盘故障: 应用场景:在服务器RAID系统中,硬盘故障是最常见的问题之一。硬盘可能…...
计算机网络——数据链路层-封装成帧(帧定界、透明传输-字节填充,比特填充、MTU)
目录 介绍 帧定界 PPP帧 以太网帧 透明传输 字节填充(字符填充) 比特填充 比特填充习题 MTU 介绍 所谓封装成帧,就是指数据链路层给上层交付下来的协议数据单元添加帧头和帧尾,使之成为帧。 例如下图所示: …...
MySQL笔记-第03章_基本的SELECT语句
视频链接:【MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板】 文章目录 第03章_基本的SELECT语句1. SQL概述1.1 SQL背景知识1.2 SQL语言排行榜1.3 SQL 分类 2. SQL语言的规则与规范2.1 基本规则2.2 SQL大小写规范 …...
FTP服务文件上传失败,错误码553的排故过程
本文主要记录文件上传失败,错误码553的排故过程。 1 背景 树莓派通过FTP给嵌入式板卡传输文件,好几套设备,发现有的能传输成功,有的传输不成功。树莓派和嵌入式板卡都一样的,出现问题时感觉很懵。 2 逐项对比 2.1 自…...
音频录制软件哪个好?帮助你找到最合适的一款
音频录制软件是日常工作、学习和创作中不可或缺的一部分。选择一个适合自己需求的录音软件对于确保音频质量和提高工作效率至关重要。可是您知道音频录制软件哪个好吗?本文将深入探讨两种常见的音频录制软件,通过详细的步骤指南,帮助您了解它…...
9.Unity搭建HTTP服务器
搭建HTTP服务器的几种方式 //1.使用别人做好的HTTP服务器软件,一般作为资源服务器时使用该方式(学习阶段建议使用) //2.自己编写HTTP服务器应用程序,一般作为Web服务器 或者 短链接游戏服务器时 使用该方式 使用别人做好的HTTP服…...
C# 热键注册工具类
写在前面 介绍一个验证过的热键注册工具类,使用系统类库user32.dll中的RegisterHotkey函数来实现全局热键的注册。 代码实现 [Flags]public enum KeyModifiers{Alt 1,Control 2,Shift 4,Windows 8,NoRepeat 0x4000}public static class HotKeyHelper{[DllImp…...
nodejs微信小程序+python+PHP天天网站书城管理系统的设计与实现-计算机毕业设计推荐
目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...
Hive环境准备[重点学习]
1.前提启动hadoop集群 hadoop在统一虚拟机中已经配置了环境变量 启动hdfs和yarn集群 命令:start-all.sh [rootnode1 /]# start-all.sh启动mr历史服务 命令:mapred --daemon start historyserver [rootnode1 /]# mapred --daemon start historyserver检查服务 命令:jps [r…...
软件工程 室友整理
如何理解结构化需求分析方法的基本思想; 结构化分析方法是一种面向数据流的需求分析方法,其中数据作为独立实体转换,数据建模定义数据的属性和关系,操作数据的处理建模表名当做数据在系统流动时候处理如何转换数据 简述面向对象的基本概念&a…...
JVM==>图解字节码指令
一,原始代码 我们来看一下执行这段代码的具体流程 那执行这段代码中 JVM就会把已经编译好的.class文件加载到内存中,交给CPU运行 1)常量池载入运行时常量池 我们发现 10 并没有被存入常量池中, 这是因为short范围以内的数字不会…...
MISRA C 2012 标准浅析
MISRA(The Motor Industry Software Reliability Association),汽车工业软件可靠性联会; 1994年,英国成立。致力于协助汽车厂商开发安全可靠的软件的跨国协会,其成员包括:AB汽车电子、罗孚汽车、宾利汽车、福特汽车、捷…...
Redis高可用之Sentinel哨兵模式
一、背景与简介 Redis关于高可用与分布式有三个与之相关的运维部署模式。分别是主从复制master-slave模式、哨兵Sentinel模式以及集群Cluster模式。 这三者都有各自的优缺点以及所应对的场景、对应的业务使用量与公司体量。 1、主从master-slave模式 【介绍】 这种模式可以采用…...
AI “自主运行”的计算机概念正逐渐成为现实
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
数据库系统概论期末经典大题讲解(用关系代数进行查询)
今天也是结束的最为密集的考试周,在分析过程中自己也有些许解题的感悟,在此分享出来,希望能帮到大家期末取得好成绩。 一.专门的关系运算 1.选择(σ) 选择操作符用于从关系中选择满足特定条件的元组 例如,…...
算法通关村第十六关-黄金挑战滑动窗口与堆的结合
大家好我是苏麟 , 今天带来一道小题 . 滑动窗口最大值 描述 : 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 题目 : …...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
IP选择注意事项
IP选择注意事项 MTP、FTP、EFUSE、EMEMORY选择时,需要考虑以下参数,然后确定后选择IP。 容量工作电压范围温度范围擦除、烧写速度/耗时读取所有bit的时间待机功耗擦写、烧写功耗面积所需要的mask layer...
TMC2226超静音步进电机驱动控制模块
目前已经使用TMC2226量产超过20K,发现在静音方面做的还是很不错。 一、TMC2226管脚定义说明 二、原理图及下载地址 一、TMC2226管脚定义说明 引脚编号类型功能OB11电机线圈 B 输出 1BRB2线圈 B 的检测电阻连接端。将检测电阻靠近该引脚连接到地。使用内部检测电阻时,将此引…...
分布式计算框架学习笔记
一、🌐 为什么需要分布式计算框架? 资源受限:单台机器 CPU/GPU 内存有限。 任务复杂:模型训练、数据处理、仿真并发等任务耗时严重。 并行优化:通过任务拆分和并行执行提升效率。 可扩展部署:适配从本地…...
软件测试—学习Day11
今天学习下兼容性 1.App兼容性常见问题 以下是关于 App 兼容性问题的常见举例,涵盖界面展示、操作逻辑、性能差异三大维度,涉及不同系统、设备及网络环境的兼容性场景: 一、界面展示问题 界面展示兼容性问题主要由操作系统版本差异、屏幕…...
