CVPR 2021 | 又好又快的视频异常检测,引入元学习的动态原型学习组件
Learning Normal Dynamics in Videos with Meta Prototype Network
作者:Hui lv, Chen Chen, Zhen Cui, Chunyan Xu, Yong Li, Jian Yang
单位:南京理工大学;北卡夏洛特分校
论文:https://arxiv.org/abs/2104.06689
代码:https://github.com/ktr-hubrt/MPN
摘要:
该工作提出了一个场景模式自适应的动态原型(prototype)学习框架,实时的学习视频中的正常模式,来辅助视频帧的预测,然后通过视频帧的预测误差和原型与输入特征的距离来检测异常。算法在多个无监督异常检测的数据集上均达到了SOTA performance。
1. 简介
近来,基于自编码器的视频帧重建(或未来帧预测)方法成为视频异常检测的一个潮流算法。这些仅仅使用包含正常模式的数据训练的模型,在遇到没有见过的异常模式的数据时,往往会产生比较大的重构误差。
但是由于深度神经网络极强的泛化能力,深度模型对一些异常的视频帧也会重建(或预测)的较好,这就导致“过度泛化”问题。
在这份工作中,我们设计了一个动态原型学习的组件,来动态实时地建模和压缩视频中的正常模式为原型(prototype),以促进模型对正常视频帧的重建(或预测)和抑制对异常视频帧的重建(或预测)。
并且,我们引入元学习理论,赋予动态原型学习组件场景模式自适应的能力,不需要设计对应规则和阈值来更新原型,具有快速高效的自适应能力。
2. 方法
Dynamic Prototype Unit(DPU):
我们设计的DPU输入编码器(E)得到的编码特征,输出动态原型加强后的特征。通过结合自监督注意力机制,DPU首先得到多个对应输入编码特征每个元素位置的注意力图,然后分别得到对应的多个原型特征向量。通过对原型向量的查询和提取,就可以得到加强后的特征图。
Meta Prototype Unit(MPU):
结合元学习理论,我们把DPU组件进化为元学习原型组件。利用训练集的不同场景,我们学习一组最优的初始化参数集合和对应的更新步长,在测试时,更新对应的参数,我们就可以得到场景模式自适应的异常检测器。
3. 试验结果
DPU在无监督的异常检测数据集上进行了试验,均得到最优或次优的结果。
MPU在元学习few-shot场景下,也取得了不错的结果。
我们展示了原型学习过程中产生的自注意力图(第一列是未来帧,第二列是检测得到的异常图,第三列是多组自注意力图之和,后面三列均是单个注意力图):
我们还展示了算法模型在一些测试视频上的预测结果:
我们还分析了多个SOTA模型的运行效率:
数据均在4核CPU(E5-2650),单块GPURTX-2080Ti机器上实验得出。