基于未来帧预测的异常检测 CVPR2018
代码https://github.com/StevenLiuWen/ano_pred_cvpr2018
大部分现有方法:
通过最小化训练数据的重构误差,这并不能保证对异常事件有更大的重构误差。
现有方法分类:
- 基于手工特性的方法
- 基于深度学习的方法:通常用自动编码器的方式学习深度神经网络,然后用小的重构误差来重建正常事件
作者观点:
几乎所有基于训练数据重构的方法都不能保证异常事件的发现
工作:
- 提出在视频预测框架内解决异常检测问题,这是第一个利用预测的未来框架
- 除了常用的外观(空间)约束强度和梯度,我还引入运动(时间)之间的视频预测执行光流约束预测帧
- 未来帧的预测与本身的差异决定了未来帧的预测是正常还是不正常
网络架构:
GAN 生成对抗网络
U-Net 预测下一帧的生成器
Flownet 计算光流的预训练网络
网络结构图:
LOSS:
intensity loss:
gradient loss:
optical flow loss:
目标函数:
训练网络:
- 将所有帧中像素的强度归一化为[- 1,1]
- 将每帧的大小调整为256×256
- 设t = 4,随机剪辑5个序列帧
- 采用随机梯度下降法进行参数优化
- mini-batch size为4
- 对于灰度数据集,Generator和Discriminator的学习率分别设置为0.0001和0.00001
- 而对于颜色尺度数据集,Generator和Discriminator的学习率分别从0.0002和0.00002开始
- λint, λgd, λopand λadv 将它们分别设置为1.0、2.0和0.05
测试:
峰值信噪比:某一帧的PSNR越高,越可能是正常
计算完每个测试视频的每一帧PSNR后,归一化到[0,1],按下式计算每一帧的规则分数:
根据一个帧的分数S(t)来预测其是否正常,可以设置一个阈值来区分规则或不规则的帧
数据集:
- CUHK Avenue :包含16个训练视频和21个测试视频,共47个异常事件,包括投掷物体,游荡,奔跑。人的大小可能会因为相机的位置和角度而改变。
- UCSD Pedestrian :包含行人1 (Ped1)和UCSD行人2 (Ped2)。Ped1包括34个训练视频和36个测试视频,其中包含40个不规则事件。所有这些异常案例都是关于自行车、汽车等交通工具的。Ped2包含16个训练视频和12个带有12个异常事件的测试视频。Ped2对异常的定义与Ped1相同。通常分别用不同的方法对这两部分进行评价
- ShanghaiTech Campus :是一个非常具有挑战性的异常检测数据集。包含330个训练视频和107个测试视频,其中有130个异常事件。共13幅景,异常类型多样。按照[24]中使用的设置,我们在所有场景上训练模型。
- toy
评价指标:
AUC (AUC值越高,异常检测性能越好)
框架:TensorFlow
平均运行时间:25fps 每秒传输帧数