异常检测一般的方法是学习环境中的正常行为,将一切不正常的行为定义为不正常,这种方法可能会产生一些误报,但是有可能识别不包括在训练数据集中的异常情况。另一种方法是将数据集中的异常情况喂给模型学习,并尝试识别它们,但是失去了识别没有训练过的异常情况的能力。
本文的贡献:
1.提出了一个异常检测网络:ADNet,利用卷积来定位视频中的异常。
2.为了提高ADNet的异常检测能力,提出了AD损失函数。
3.扩展了UCF-Crime数据集,增加了两个异常类。
本文的代码和数据集扩展在:
https://github.com/hibrahimozturk/temporal_anomaly_detection
其他卷积网络需要获得整个视频以产生结果,而ADNet使用滑动窗口方法按顺序获得视频片段,可以有效地处理不同大小的视频,并且可以防止由于将整个视频调整为合适于固定大小的输入而导致信息丢失。通过时空深度网络,ADNet提取窗口中所有视频片段的特征,并为每个视频片段生成单独的异常评分。
作者选择F1@K而不选择AUC来度量模型性能的原因是:AUC没有考虑剪辑的时间顺序,它惩罚时间段中微小偏移,不能有效惩罚时间空间中的短的假阳性段。F1@K在IoU上计算K个时间段的百分比,该百分比是通过对异常片段阈值化得到的,该阈值为0.5.
UCF犯罪数据集在测试集中提供了时间异常注释,但是在训练集中只提供了视频级别的注释。作者为数据集所有异常类提供了时态注释。
Anomaly Detection Network
模型输入一个视频的所有剪辑特征而不分割成小部分。作者定义了一个阶段序列(stages),它有一系列由卷积层组成的块。每个阶段输出每个剪辑特征X_t的异常分数Y_t.下一阶段的输入是上一阶段的输出,除了第一阶段。
阶段的输出输出定义如下: