计算机视觉|Learning Memory-guided Normality for Anomaly Detection 模型介绍

Learning Memory-guided Normality for Anomaly Detection模型介绍 本文为对 Learning Memory-guided Normality for Anomaly Detection一文所提出的创新模型的介绍。
计算机视觉|Learning Memory-guided Normality for Anomaly Detection 模型介绍
文章图片

如图所示,该模型为对传统卷积自编码器的优化,主要模块可分为三个部分:Encoder、Memory Module和Decoder。
Network architecture Encoder and Decoder
本文在U-Net的基础上对Encoder和Decoder模块进行了修改。对于Encoder,由于ReLU函数会切断负值,限制不同特征的表达,因此我们移除了RELU层,并添加了一个L2归一化层,使得所有的特征都有一个共同的衡量尺度。
对于Decoder,由于U-Net中的残差连接( Skip connections)在处理重构任务时,可能无法从输入视频帧中提取到有用的特征,同时我们的模型可能会去学习使用输入的视频帧用于重构任务。因此,我们删除了重构任务时的残差连接,并保留了输入视频帧以用于预测未来的帧。
Encoder输入一个视频帧 It,将其转换为一个H×W×C(H代表高度,W代表宽度,C代表视频帧中的特征数量)的三维查询图qt(query map),同时我们定义qtk为特征图qt中的每一项特征。然后将qt输入到Memory模块中,完成后续对Memory中项目的读取和更新操作,从而记录典型的正常形态。Decoder输入查询和检索到的内存项,并重建视频帧I^t。
Memory Module
Memory包含M个用于记录各项数据的原型特征的项目,我们将每一项定义为pm,而Memory的功能包括Read和Update两种。
Read 在Read操作中,对于每一个qt,我们计算它与所有的pm之间的余弦相似度,得到一个M × K的二维关系图,在垂直方向使用softmax函数,即用如下公式计算出匹配概率值:
计算机视觉|Learning Memory-guided Normality for Anomaly Detection 模型介绍
文章图片

对于每一个qtk,我们都要读取Memory的每一项pm,同时赋予相应的权值ωt,并计算出对应每一个qtk的加权平均特征p^tk,计算公式如下:
计算机视觉|Learning Memory-guided Normality for Anomaly Detection 模型介绍
文章图片

注意:在这里我们使用Memory中的全部项目pm,而不是选择相似度最高的项目来让我们的模型理解不同情况下的正常模式,以考虑整体正常特征。也就是说,我们用Memory中的项目pm组合来表示每一个查询。
我们将读取操作符应用于单个查询,并获得转换后的特征p^t,将其沿着特征数量维度与qt连接后,将他们输入到Decoder中,该操作使得解码器能够使用Memory项目的正常模式重构输入帧,降低CNN的学习描述成本,同时理解到正常的模式状态。
Update 对于Memory中的每一项,我们通过使用公式(1)中计算出的概率值,选择出声明该项为最近的项的全部查询。在这里需要注意的一点是:可以将多个查询分配给内存中的单个项。
我们用Utm表示Memory中对应查询qtk的索引集中的第m项,并使用Utm(集合索引)来更新Memory中的相应的项,更新方式如下:
计算机视觉|Learning Memory-guided Normality for Anomaly Detection 模型介绍
文章图片

对于上述更新公式,在这里做出几点解释:

  1. f(·)为L2正则化
  2. 通过使用查询的加权平均值,而不是把所有的查询都加起来,我们可以更专注于在内存项目附近的查询qtk。
最后,我们使用类似公式(1)的方式计算出匹配概率值,与公式(1)不同的是,这次我们使用softmax函数计算的是水平方向的匹配概率值,即:
计算机视觉|Learning Memory-guided Normality for Anomaly Detection 模型介绍
文章图片

并参考查询索引Utm,对计算出的匹配概率值进行重构,即:
计算机视觉|Learning Memory-guided Normality for Anomaly Detection 模型介绍
文章图片

由于训练集和测试集的正常模式可能不同,并且他们可能随各种因素的改变而变化,我们在训练和测试时都会更新Memory中的项。举个最简单的例子:同一视频帧在光照和有遮挡的状态下,被检测出的正常模式可能是不同的。
因为正常帧和异常帧在测试的时候都是可用的,所以我们使用一个经过加权后的分数作为判断依据来避免Memory中的项目被异常的视频帧更新,这项分数仅在更新内存项时被使用,计算公式如下:
计算机视觉|Learning Memory-guided Normality for Anomaly Detection 模型介绍
文章图片

其中权值Wij(i和j代表空间指数)的计算方式如下:
计算机视觉|Learning Memory-guided Normality for Anomaly Detection 模型介绍
文章图片

当我们用公式(6)计算出的分数高于阈值,我们便认为视频帧It是异常视频帧,不使用它更新Memory中的项。
Summary
上述模型为对传统卷积自编码器的优化升级,在卷积自编码器的原有基础上,引入了Memory模块,而Memory模块的主要功能分为Read和Update两项。
Read阶段主要实现对每一项查询qtk与全部Memory项pm的匹配概率计算和加权平均特征p^tk的求解,其求解出的结果将其沿着特征数量维度与qt连接,并将他们输入到Decoder中。
Update阶段主要实现对Memory项的更新,其更新过程可保证Memory中的项目对正常状态的理解程度保持在较高的水平上。
通过对Memory模块的引入,该模型大大提高了传统卷积自编码器的特征提取精确度,解决了原有模型无法处理正常行为多样性的问题,同时降低了CNN的学习成本,达到了很好的应用效果。
相关引用
代码解析
【计算机视觉|Learning Memory-guided Normality for Anomaly Detection 模型介绍】以上内容仅做科学研究

    推荐阅读