近日拜读了本篇论文,有以下理解:
1.问题研究背景
检测视频序列中的异常事件(如人行道上的车辆)的问题对监控和故障检测系统尤为重要。由于一些原因,它是极具挑战性的。首先,异常事件是根据不同的情况而确定的。也就是说,同样的活动可能是正常的,也可能是不正常的(例如,在厨房或在公园里拿刀)。在这种情况下,手动注释异常事件是劳动密集型的。其次,收集异常数据集需要大量的努力,因为异常事件在现实生活中很少发生。因此,异常检测通常被认为是一个无监督的学习问题,目的在于学习一个描述常态的模型,没有异常的样本。在测试时,不被模型描述的事件和活动就被认为是异常的。
2.创新点
1、由于单一原型特征不足以表示正常数据的各种模型,所以本文使用多个原型来代表正常视频帧的不同模型,同时引入memory模块,以此记录正常数据的原型特征。
2、提出特征紧凑性和分离性损失来训练记忆,并提出一种新记忆更新方案,且仅在正常样本情况下进行更新。
3、提供了广泛的实验分析与消融研究
3.算法流程
3.1训练阶段
训练阶段主要包括三个部分:重建视频帧、训练损失和异常得分。
3.1.1重建视频帧
在重建视频帧阶段,本文使用广泛用于重建和未来帧预测的U-Net架构,从输入视频帧中提取特征,并在特征中重建帧。但本文在编码器中删除了最后一层归一化和ReLU层,增加了一个L2层。
由于单一的原型特征不足以代表正常数据的各种模式。也就是说,在正常视频帧的特征空间中存在多种原型类型(即模式或特征的中心点),本文提出了一个用于异常检测的内存模块,其中内存中的单个项目对应于正常模式的原型特征。我们使用memory项目中的原型特征来表示视频帧,减少了CNN的容量。
首先输入正常视频帧It到编码器中,编码器进行查询特征(queries feature)的提取,这些特征被用来检索memory中的原型正常模式并更新记忆,memory模块中的items进行read和update操作,在update中,对于每个记忆项,本文选择所有被认为是最近的queries,并通过使用加权分数防止存储器在测试时记录异常样本的特征,然后把memory items和query features读取到解码器中,从而重建未来视频帧。
详解见
Learning Memory-guided Normality for Anomaly Detection 模型介绍_m0_51951959的博客-CSDN博客
3.1.2 训练损失
在训练损失阶段,本文通过对比输出It和ground truth计算出reconstruction loss,从而使解码器重建的视频帧与地面相似。
Feature compactness loss将正常视频帧的特征映射到内存中最近的项目并鼓励queries接近memory中最近的项目,但由于所有queries都在嵌入空间内紧密映射,使得所有queries和items都相互接近,然而memory中的items应该有足够的距离,以考虑各种模式的正常数据。
所以为了解决上述问题,同时获得紧凑的特征表示,本文提出feature separateness loss,使每个特征与其最近的项目之间的距离最小化,同时使该特征与第二个最近的项目之间的差异最大化,从而产生将item放在远处的效果,实现允许更新离queries最近的项目,同时消除第二近项目的影响,将记忆中的单个项目分开,并增强特征和记忆项目的辨别能力。
3.2测试阶段
通过训练集数据将模型训练好以后,进行测试阶段,此时利用abnormality score对视频帧中的正常和异常程度进行量化。
详细过程见
Learning Memory-guided Normality for Anomaly Detection创新点介绍_m0_52218200的博客-CSDN博客
代码详解见
Learning Memory-guided Normality for Anomaly Detection 代码解析_Jam_in_C_major的博客-CSDN博客
本文仅作为科研研究