最近由于汇报工作的准备以及给自己放了一周的小假期,导致论文阅读这块拖延了好久。现在重新开始阅读行为异常检测这方面的相关论文。上次阅读的是使用两个2cGANs分别重构真实帧与光流帧进行异常检测的论文上一期论文阅读。
这次阅读的MLAD其实与这篇论文也有点相似,只不过使用了两个DAE对数据提取了多级的表示,再将这些表示综合起来进行异常检测。详细介绍如下:
以往的有监督、无监督的异常检测通常使用的是低级特征(边缘、像素、运动信息等),这些低级特征检测异常可能会遇到如下问题:
1.低水平的检测会导致碎片和中断区域。
2.低水平信息对噪声敏感,受环境变化影响大。
而作者的解决方案是:
1.提出在抽象表示时检测异常对象(通过深度网络的多层架构实现),低层:编码边缘、角落颜色等视觉信息;高层:描述对象及其位置关系等语义。
2.真实异常对象应该在多个检测级别上被突出,故将低级检测与抽象级检测结合。
主要思路与过程
上述是MLAD的一个过程流程图,可以看到其实与我们上次看到的使用一对cGANs的思路很像的,但作者提出的多级表示的异常检测,突出点就是在训练cGANs前,使用DAEs对视频数据进行多级表示的提取,也就是多了如下的过程:
这样的好处是,能够在多个检测级别上,综合出现异常概率高的异常才算是异常,降低了噪声影响的敏感性,提高检测精度。
现说说其详细的一个过程:
1)先计算每一帧的光流图像;
2)对每一帧数据和其对应的光流数据分别训练一对DAEs,提取其多级特征表示;
3)在第二步训练出的高级表示上训练一对cGANs,之后就像上篇论文这样进行重构异常(可能在某些细节不一样)。
系统的具体步骤为:
1)提取测试帧的光流特征;
2)使用DAEs获取帧和运动特征的高级表示;
3)使用训练过的cgan计算一级生成误差图;
4)对这些映射进行阈值化,得到每一层的二进制检测映射;
5)将这些检测图结合成最终的检测结果。
实验结果
个人收获
这篇论文其实难度不高,重点是引用了DAE进行特征提取,DAE是去噪自编码器,在encoder、decoder中通常使用的DNN,且在这篇论文中其层数也保持一致。给我的思路就是,在异常检测的时候,可以不仅限于一种表示方法进行异常检测,可以在此基础上,额外加入其他级别的特征表示进行异常检测,虽然这样做会引起消耗资源的增加,但也是一个思路点!
下一篇论文准备阅读:Learning Normal Patterns via Adversarial Attention-Based Autoencoder for Abnormal Event Detection in Videos
其将注意力机制和ConvLSTM集成到了自编码网络构成的生成器来进行异常检测。