视频异常检测(Video Anomaly Detection,VAD)是一项具有开放特征且具有挑战性的任务,因为异常事件通常要比正常事件发生的少,但是在实际场景中,异常事件的类型是不可预知的。现有针对视频异常检测任务的方法大多以自动编码器为基干模型,这类方法往往使用同一场景中所有的正常事件训练自动编码器,在模型测试阶段,对于异常事件,模型会给出较大的重构误差,以该误差作为标准来判断当前输入是否包含异常事件。本文方法也是遵循以上设定,在普通自动编码器的基础上进行改进,加入了一系列的记忆模块来对正常事件进行建模,同时整合帧预测任务和光流重建任务。本文的一个亮点是,以重构的光流作为条件,设计了一个条件变分自动编码器(Conditional Variational Autoencoder,CVAE),用来捕获视频帧与光流场之间的相关性,并以此相关性来影响帧预测的质量。当模型遇到异常事件时,光流重建带来的误差会进一步影响帧预测的效果,使异常事件更易于检测。下图展示了本文方法在CUHK Avenue数据集上的检测效果,其中蓝色框线代表异常事件的ground truth,前两行分别为单独光流重建任务和帧预测任务的检测效果,最后一行为本文集成方法的效果。下图为本文整体的框架图,整体框架主要由两部分构成:多级记忆增强自动编码器和条件变分自动编码器,整个框架只使用正常数据进行训练,在测试阶段,根据重构得到的光流和预测得到的帧计算误差来判断异常情况。模型首先输入一系列的光流序列
,经过多级记忆增强自动编码器得到重构的光流序列
,随后将相同时间的视频帧序列
和上一步重构的
一起输入到条件变分自动编码器进行未来帧的预测,当遇到异常事件时,首先重构得到的光流序列就会有较大的重构误差,并以此为条件进行下一步的帧预测,会进一步增大预测的误差,以此来提高检测性能。
本文提出的多级记忆增强自动编码器是在ICCV2019提出的MemAE[1]和CVPR2020提出的MNAD[2]基础上进行改进,本文作者发现仅使用单个记忆模块难以建模和记忆所有的正常模式(normal patterns),但是如果暴力的增加的记忆模块的数量,会带来过度的信息过滤,使网络的性能退化以记住最具代表性的正常模式,而忽略了其他表象不明显的正常模式。为了解决该问题,本文加入了多级跳连(Skip Connections)将编码信息直接传递给解码器,为不同层次的记忆模块提供信息来发现更多的正常模式,下图为上述三种记忆增强自动编码器的示意图。,本质上就是一个存储矩阵,矩阵的每一行表示一种记忆模式,对于输入的编码向量,记忆模块的操作是通过在整个记忆矩阵中查询相似的记忆模式,并以加权求和的方式来得到记忆增强向量,进行随后的重构任务。多级记忆增强自动编码器通过重构损失和交叉熵损失联合优化,其中重构损失如下:本文同时仿照MemAE中对每个记忆模块施加匹配概率以计算交叉熵损失:其中
为记忆模块中存储的记忆模式的总数,
为匹配概率,即为对编码特征进行记忆增强时的加权权重,整体优化目标由上述两项联合得到:
本文提出的条件变分自动编码器基于这样的观察:对于连续的两个视频帧
和
,由于时间跨度小,所以两帧的图像内容基本没有差异。基于变分推断理论,可以假设这两帧基于相同的隐变量(hidden variables),根据变分生成模型可以将相同时刻的光流
作为条件,对下一帧
进行生成,表达式为
。
如上图右侧所示,本文提出的条件变分自动编码器包含了两个编码器
,
和一个解码器
。其中
对光流输入编码得到基于先验分布
的光流特征,
首先对光流输入 和视频帧输入进行拼接,随后编码得到基于后验分布
的混合特征,再拼接隐变量作为噪声,输入到解码器
生成下一帧的预测
,这样就完成了整个流程。作者假设以上分布的参数都遵循高斯分布,可以由最小化KL散度进行编码器的优化:
此外为了防止生成的视频帧出现模糊的情况,本文仿照之前的方法加入了梯度损失来保证生成图像的锐度:本文在三个具有代表性的视频异常数据集上进行了实验,分别是UCSD Ped2,CUHK Avenue和ShanghaiTech,其中Ped2和Avenue的场景固定,且数据量较小。ShanghaiTech数据集包含了13个监控场景,视频长度较长,是目前视频异常检测领域中极具挑战性的数据集。模型评价指标使用AUROC,指标越高代表模型的异常检测性能越好。需要注意的一点是,在训练和测试阶段,输入模型的并不是视频帧的整个画面,作者首先使用预训练好的目标检测模型对视频数据进行前景RoI提取,对于每个RoI构成时空连续事件块(spatial-temporal cube,STC),随后进行光流场的重构和帧预测,这样做可以有效过滤视频背景噪声带来的误差。本文方法分别与现有基于重构的方法,基于预测的方法和二者混合的方法进行对比,达到SOTA效果:为了进一步展示本文方法可以增大传统重构和预测方法检测误差的能力,作者进行了差分图的可视化实验,如下图所示:其中(a)为测试集中异常事件的ground-truth,(b)为本文方法的帧预测结果,(c)为本文预测结果与ground-truth的差分图,(d)和(e)为其他两种方法与ground-truth的差分图,同时也给出了差分图的平方和误差作为差异指标,可以看出,本文方法对于异常事件产生的预测误差明显高于其他方法,这有效提高了模型的异常检测效果。本文探索了将重建任务和预测任务结合起来的可能性。实验表明,所提出的方法优于单独使用重构和预测任务的方法。此外,本文的集成策略也经过精心设计,通过先对光流场进行重构,再将视频帧和光流作为输入来预测未来的帧,可以增大异常事件的预测误差。[1] Dong Gong, Lingqiao Liu, Vuong Le, Budhaditya Saha, Moussa Reda Mansour, Svetha Venkatesh, and Anton van den Hengel. Memorizing normality to detect anomaly: Memory-augmented deep autoencoder for unsupervised anomaly detection. In Proceedings of the IEEE International Conference on Computer Vision, pages 1705–1714, 2019.[2] HyunjongPark, JongyounNoh, and BumsubHam. Learning memory-guided normality for anomaly detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 14372–14381, 2020.