基于预测未来帧的异常事件检测Future Frame Prediction for Anomaly Detection – A New Baseline
摘要
视频异常事件检测的目标是识别出那些不服从期望行为的。在本文中,作者提出了一个基于预测未来帧(future frame prediction)的架构,此外,为了更好地预测未来的帧,除了通常使用的空间约束(spatial constrains),i.e. intensity constrain和gradient constrain,作者还加上了时序约束(temporal constrain),i.e.光流场约束(optical flow constrain)。作者分别在几个公开数据集和一个toy数据集上进行了实验,代码开源在github上:https://github.com/StevenLiuWen/ano_pred_cvpr2018
1. 介绍
视频异常事件检测的目标是识别出那些不遵从从期望行为的。这个任务十分困难因为异常事件通常是一个无界的概念,我们也无法列举出所有的异常事件类别,所以基于classification的策略是不合适的。并且,我们的数据集通常也大多都是一些正常的事件,异常事件在一个视频中也是少量的帧,人工对每帧去进行标注也是不现实的。
目前有许多这方面的研究,在正常的训练数据上进行特征重建是一个常用的策略。基于特征的使用选取,现有的方法可以大致分为两类:
- 基于hand-crafted特征选取的:这种方法将视频用一些手工选取的特征进行代表,然后学习出一个正常事件的字典,从而那些异常事件在这个空间上会存在较大的reconstruction errors。
- 基于DL方法的:采用auto-encoder的结果对正常事件的pattern进行自学习,然后同样,异常事件也在最后会存在较大的reconstruction loss.但是深度神经网络的泛化能力很强,因而,就算有异常事件发生,重建loss不一定会很大。
最近,生成对抗网络(GAN)的迅速发展也对视频预测任务产生了促进。综上,作者提出了基于预测未来帧的视频异常事件检测架构,具体来说,给定一些训练video clips,模型会学习生成一个predictor,它能根据现有的视频帧预测下一正常的帧,在测试阶段,输入一些帧,模型根据已经学习到的内容同样预测下一帧,如果和预测输出的帧满足,则判定为normal的,否则判定为abnormal的。总的来说,该文章的贡献如下:
- 首次提出了这种基于future frame的架构
- 引入了基于光流场的约束(optical flow constrain)
- 在公开数据集和一个toy数据集上实验验证了该方法的有效性。
2. Related Work
2.1 基于手工特征选取的方法
基于手工特征选取的方法大都遵从以下三个模块:
- 提取特征:例如low-level的轨迹特征(trajectory features)、HOG【7】、HOF【8】等。
- 建立模型对regular patterns进行学习:Zhang等人【41】利用马尔科夫随机场,Mahadevan等人【25】利用高斯混合模型
- 识别异常事件。
2.2 基于深度学习的方法
Xu等人【40】利用multi-layer的自动编码器完成特征学习,【14】中利用3D-Conv-AE对正常帧进行建模,【5】和【23】中利用ConvLSTM-AE对appearance和motion信息的patterns进行了建模。
2.3 视频帧预测
【27】中提出了一个基于对抗学习的multi-scale network来生成视频的未来帧,这也是本文参考的一个重要文章。
3. 基于预测未来帧的异常事件检测
总体的思想是,对正常的帧的模式进行学习,然后再基于已有的帧对未来帧进行一个预测,记为prediction,如果prediction和ground truth相差很大,就视为异常事件。举例来说,如果有一个视频,开始一部分都是人群在正常过马路,模型能实时地对下一帧进行预测,如果突然有一辆卡车出现,而模型预测的帧任然是人群过马路,这样产生出入较大,就视为异常事件。之前的大多工作也只考虑到了上述的appearance信息(一辆卡车突然冲入人群),但是作者任务motion信息同样重要(例如一个扒手经过一个人),所以提出了optical flow constant。总体的框架如下图所示:
3.1 未来帧预测
Generator部分采用的是类似U-Net的结构,如下所示:
We sequentially stack all these frames and use them to predict a future frame I t + 1 {I}_{t+1} It+1
至于具体是怎么操作这些前序帧的,还待看代码进一步了解。
3.2 各种约束
数学公式描述,给定一些连续帧 I 1 , I 2 , … , I t I_{1}, I_{2}, \ldots, I_{t} I1,I2,…,It,预测出的帧记为 I ^ t + 1 \hat{I}_{t+1} I^t+1,ground truth帧为 I t + 1 {I}_{t+1} It+1,我们最小化两种之间的intensity distance和gradient distance,也就是之前提到的appearance constrians,分别按下式计算:
L i n t ( I ^ , I ) = ∥ I ^ − I ∥ 2 2 L_{i n t}(\hat{I}, I)=\|\hat{I}-I\|_{2}^{2} \\ Lint(I^,I)=∥I^−I∥22
L g d ( I ^ , I ) = ∑ i , j ∥ I ^ i , j − I ^ i − 1 , j ∣ − ∣ I i , j − I i − 1 , j ∣ ∥ 1 + ∥ I ^ i , j − I ^ i , j − 1 ∣ − ∣ I i , j − I i , j − 1 ∣ ∥ 1 \begin{aligned} L_{g d}(\hat{I}, I)=& \sum_{i, j}\left\|\hat{I}_{i, j}-\hat{I}_{i-1, j}|-| I_{i, j}-I_{i-1, j} |\right\|_{1} \\ &+\left\|\hat{I}_{i, j}-\hat{I}_{i, j-1}|-| I_{i, j}-I_{i, j-1} |\right\|_{1} \end{aligned} Lgd(I^,I)=i,j∑∥∥∥I^i,j−I^i−1,j∣−∣Ii,j−Ii−1,j