MPN (Learning Normal Dynamics in Videos with Meta Prototype Network)代码阅读

Learning Normal Dynamics in Videos with Meta Prototype Network
Hui Lv1, Chen Chen2, Zhen Cui1*, Chunyan Xu1, Yong Li1, Jian Yang1
1PCALab, Nanjing University of Science and Technology, 2University of North Carolina at Charlotte

一、论文阅读

该论文通过在AE baseline上加入动态原型单元DPU,为不同的正常模式构建动态原型,每个常态原型编码场景的不同正常属性(diverse normal attributes)。该论文验证了动态原型建模正常模式分布的可行性。

关键词:对场景构建动态原型、注意力机制、端到端学习

解决了什么问题:记忆模块无法处理在测试数据中新出现的场景。

该论文的任务是:提取出正常模式的场景动态原型;视频异常检测。

在这里插入图片描述

其中每种原型代表一种被记忆的场景元素,如下图:

在这里插入图片描述

二、代码阅读

论文代码中表现出的总的结构如下所示

在这里插入图片描述

参数设定:

batch_size = 4
epochs = 1000
t_length = 5 # length of the frame sequences
segs = 32  # num of video segments
fdim, pdim = [128], [128]  # features dim and prototype dim

1. 数据集加载

在这里插入图片描述

预设batch_size=4,_time_step=4,_num_pred=1,segs=32(图中的n),每个视频分为32段,随机选择4段,从中抽取出4+1个视频帧用于训练。每个图像被resize为256*256。最终作为模型输入的tensor的shape为[20, 3, 256, 256]。

核心代码
在这里插入图片描述

2. DPU(Dynamic Prototypes Units)

Attention 部分

在这里插入图片描述

进入Attention部分的输入是来自于解码器的特征向量。分为以下几步:

  1. 将keys输入multi-heads,得到一个多头注意力权重multi_head_weights[4, 65536,10, 1]。
  2. 此后对multi_head_weights作一个softmax操作,得到每个通道上每个像素点的受关注程度。

核心代码

在这里插入图片描述

Ensemble 部分

在这里插入图片描述

输入该部分的输入有:特征向量key和多头注意力权重multi_head_weights。

  1. 将reshape后的key[4, 65536, 1, 128]与多头注意力权重相乘得到新的multi_head_weights[4, 65536, 10, 128].
  2. 将新的multi_head_weights与原始输入key相乘得到原型向量protos。
  3. 然后将不同像素位置上的原型向量求和,可以将原型向量理解为对图像上的所有像素点的注意程度。

上面的步骤对应论文中的公式1:ptm=∑n=1Nωtn,m∑n′=1Nωtn′,mxtnp_t^m=\sum\limits_{n=1}^N\frac{\omega_t^{n,m}}{\sum_{n'=1}^N\omega_t^{n',m}}\text{x}_t^nptm=n=1Nn=1N

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值