《Cloze Test Helps: Effective Video Anomaly Detection via Learning to Complete Video Events》论文笔记
0. 摘要
视频异常检测(VAD)作为视频内容解释的重要课题,通过深度神经网络(DNN)取得了丰硕的进展。然而,现有的方法通常遵循重建或帧预测程序。他们主要存在两大问题:
- 他们不能以精确和全面的方式定位视频活动。
- 他们缺乏足够的能力以利用高级语义和时间上下文信息。受语言研究中常用的凝血测试的启发,我们提出了一种全新的VAD解决方案视频事件完成(VEC)来弥补上述差距:
- 首先,我们提出了一种新的管道来实现精确和全面的视频活动封装。外观和运动被利用作为相互互补的线索来定位感兴趣的区域(RoIs)。
- 其次,我们鼓励DNN通过解决视觉阻塞测试(visual cloze test)来捕获高级语义。为了构建这样的visual cloze test,我们将删除一个特定的STC补丁,以产生一个不完整的事件(IE)。DNN通过推断缺失的补丁来学习从IE中恢复原始视频事件。
- 第三,为了包含更丰富的运动力学,另一个DNN被训练来推断擦除补丁的光流。
- 最终,提出了两种不同类型的IE和模态的集成策略来提高VAD的性能,从而充分利用时间上下文和模态信息。在常用的VAD测试基准中,VEC可以显著地优于现有的方法
1. 介绍
视频在多媒体中起着关键作用。视频异常检测(VAD)通过自动解释视频内容进行异常检测,对市政和交通管理等各种安全关键场景具有重要价值,对学术界和工业界都有吸引力。在形式上,VAD是指检测到明显偏离观察到的正常程序的视频活动。尽管做了很多努力,但VAD仍然对异常[5]的两个特征具有挑战性:
- Scarcity. 由于异常通常是罕见的,收集真正的异常来进行训练往往是困难的,甚至是不可能的。
- Ambiguity. 该异常不具有固定的语义,可能是指基于不同上下文的不同活动,因此它可能是高度可变的和不可预测的。这些特性使建模异常直接不现实。因此,VAD通常采用单类分类设置[15]。该设置只收集具有正常活动的训练视频,这比异常更容易获得,以建立一个正常模型。不符合此模型的活动将被视为异常现象。由于所有的训练数据都是正常的,所以判别监督学习通常不适用。相反,无监督/自监督学习一直是VAD中常用的方案。根据该方案,现有的VAD解决方案可分为两类:
- 经典的VAD,它需要领域知识来设计手工制作的描述符来描述视频活动的高级特征(如轨迹、速度)或低级特征(如渐变、纹理)。将提取出的特征引入到经典的异常检测方法中,就像单类支持向量机(OCSVM)来发现异常。经典的VAD的特征工程可以是劳动密集型的和次优的[40],并且设计的描述符通常很难在不同的场景之间传输
- 基于深度神经网络(DNN)的VAD,其灵感来自于DNN在传统视觉任务[19]方面的成功。由于dnn在特征学习和活动建模[11]方面的强大能力,基于DNN的VAD取得了卓越的性能,并与经典的VAD相比享有激增的受欢迎程度。
尽管取得了丰硕成效的进展,但基于DNN的VAD仍然存在两个差距
- 差距1:现有的DNN的VAD方法不足以全面和紧缺的定位视频活动。VAD的一个标准做法是使用带有运动滤波[34,40]的滑动窗口,但这种定位显然并不精确。最近基于DNN的VAD方法,如[21,29,42],通过对整个帧的学习,只是忽略了这个问题,但这将受到图像深度和前景-背景不平衡问题[20,48]引起的尺度变化。很少有研究[12,14]通过预先训练的目标检测器提高定位精度,但它导致了一个“封闭世界”问题——检测器只识别训练数据中的物体,往往忽略视频的新奇性,从而导致不全面的定位结果。这种差距降低了后来的视频活动建模;
- 差距2:现有的基于DNN的方法缺乏足够的利用高级语义和时间上下文的能力。如图1所示。文献中基于DNN的VAD有两种模式(重建和框架预测):基于重建的方法学习重构输入,并将重构不良的数据检测为异常。如图1所示,文献中基于DNN的VAD有两种模式(重构和框架预测):与重构的方法学习模型以重构输入,并将重构不好的数据检测为异常。然而,在这种情况下,DNN倾向于记忆低级细节,而不是学习高级语义。由于建模能力过强,他们甚至能够很好地被重构。基于帧预测的方法学习从以前的视频帧中预测一个正常的视频帧,并检测预测较差的帧为异常。预测使得它很难简单地记忆细节以减少训练损失,但它通过单帧的预测误差来评分异常,这忽略了时间上下文。因此,重构和预测都不能提供一个完美的解决方案。与最近的研究侧重于探索更好的网络架构来改进重建或框架预测不同,我们受到上述语言研究中的阻塞测试的启发,并通过提出视频事件完成(VEC)作为一种新的基于DNN的VAD解决方案来缓解差距(见图1).我们的贡献总结如下:
- VTC首次结合了外观和运动线索来局部化视频活动和提取视频事件。它克服了“封闭的世界”的问题,实现了精确和全面的视频活动封装,为VEC的视频事件建模奠定了坚实的基础
- VEC首次设计了视觉凝块测试作为一种新的学习范式,训练dnn完成不完整视频事件的删除补丁,以替代频繁使用的重建或基于帧预测的方法。
- VEC还学会了完成被擦去的补丁的光流,从而整合更丰富的运动动力学信息。
- VEC利用两种集成策略来融合由不同类型的不完整事件和数据模式所产生的检测结果,这可以进一步提高VAD的性能。
2. 相关工作
经典的VAD。经典的VAD通常包括两个阶段:通过手工制作的描述符进行的特征提取和通过经典的机器学习方法进行的异常检测。在特征提取方面,早期的VAD方法通常采用跟踪[17]来提取运动轨迹[31,44]和目的地[3]等高级特征。然而,它们并不适用于拥挤的场景[26]。为此,我们对VAD的低水平特征进行了广泛的研究,如动态纹理[26]、光流[7]直方图、时空梯度[16,22]、3DSIFT[6]等。然后,探索了各种经典的机器学习方法来进行异常检测,如概率模型[2,6,26]、稀疏编码及其变量[7,22,45]、单类分类器[43]、社会学启发模型[27]。然而,特征提取是经典VAD的主要瓶颈:手工特征工程复杂且劳动密集型,而设计的描述符在不同场景之间往往存在区分能力有限,可转移性较差。
基于DNN的VAD。基于DNN的VAD与经典VAD的不同之处在于,它通过dnn的原始输入自动学习特征。学习到的特性被输入到一个经典模型中或嵌入到针对端到端VAD的DNNs中。现有的基于DNN的VAD只有正常的训练视频,基本上属于重建或帧预测程序。它们的区别如下:
- 基于重建的方法学习从正常的训练视频中重构输入,并假设一个较大的重构误差表示异常。自动编码机及其变体是最受欢迎的执行重建的DNN。例如:[39]先驱了基于DNN的VAD,引入堆叠去噪.[11]采用更适合的卷积AE(CAE)进行视频建模,最近的研究探索了许多CAE变体,如赢家CAE(WTA-CAE)[37]和基于长短期记忆的CAE(ConvLSTM-AE)[24];AE(SDAE),并提出其改进[40];[41]将变分AE集成到双流循环框架(R-VAE)中,实现VAD;[1]为AE配备参数密度估计器(PDE-AE)进行异常检测;[10]提出了一种记忆增强AE(Mem-AE),使AE的重构误差更具鉴别性。除AE外,其他类型的dnn也被用于重建目的,如基于稀疏编码的递归神经网络(SRNN)[25]和生成对抗网络(GAN)[32,35]。通过学习外观-运动对应关系(AM-CORR)[29],交叉模态重建也可以产生良好的VAD性能。
- 基于帧预测的方法学习通过前几帧预测当前帧,而较差的预测被认为是异常的。[21]首次将帧预测作为一种独立的VAD方法,并对预测质量施加外观和运动约束。[23]通过使用卷积变分RNN(Conv-VRNN)来改进帧预测。。然而,每帧基础的预测会导致对背景[20]的偏差,[48]提出了注意机制来缓解问题。另一个自然的想法是将预测与重建相结合,作为一个混合的VAD解决方案:[46]设计一个时空CAE(ST-CAE),其中一个编码器后面有两个解码器,分别用于重建和预测的目的;[28]通过消息传递编码-解码器RNN(MPED-RNN)重建和预测人类骨骼;[42]通过基于预测编码网络的框架(AnoPCN)将重建集成到预测中;[36]以顺序的方式进行预测和重建。
3. 视频事件完成(Video Event Completion(VEC))
3.1 视频事件提取
在本文中,视频事件提取旨在通过大量的标准化时空立方体(stc)来封闭视频活动。然后将STC视为视频事件,作为VEC中的基本处理单元。对视频活动的精确和全面的定位是视频提取的关键。理想情况下,精确定位期望视频活动的主题以最小的无关背景完整地提取,而全面定位则需要提取所有与视频活动相关的主题。如图2所示,已有的基于DNN的VAD方法不能同时实现精确和全面的定位,这削弱了视频活动建模的质量和VAD的性能。因此,我们利用外观和运动作为互补的线索来实现精确和全面的定位(图2中(d))。新提出的方法如下:
- Motivation. 由于视频活动是由某些主体在视频中的行为,我们考虑了来自这些受试者的外观线索和来自他们的行为的运动线索,以定位包围这些视频活动的感兴趣的区域ROI。为了利用外观线索,一个自然的解决方案是目标检测。通过对微软公司等大规模公共数据集进行预训练,预训练的探测器可以精确地定位经常看到的物体的roi。因此,我们使用一个预先训练过的目标检测器,通过检测其相关的实验对象,如人类,来实现大多数视频活动的精确定位。然而,预先训练过的检测器只检测由训练数据集中已知对象类形成的“封闭世界”中的对象。这导致了一个致命的问题:异常,通常是“封闭世界”之外的新类,将被省略。为此,我们提出了时间梯度等运动线索作为补充信息,以实现更全面的RoI定位。更重要的是,我们认为外观和运动线索不应该被隔离:当利用运动线索时,应该对已经被外观定位的RoI进行过滤,从而减少计算,使基于运动的RoI定位更加精确(如图2中b)。如图3中的概述和算法1所示,我们在下面详细阐述了新的视频事件提取管道的每个组件。
- 基于外观特征的ROI提取。给定一个视频帧和一个预先训练的对象检测器模型M,我们的目标是根据视频活动的对象和外观线索获得一个ROI集合Ba,其中,Ba的每一个条目都是一个被边界框包围的ROI。边界框用其左上角和右下角顶点的坐标表示,这是一个四维向量,如图中的绿色模块所示。我们首先将t输入M,并获得一个初步的ROI集合Bap,置信值高于阈值t(类标签被丢弃)。然后我们引入了两个有效地启发式规则来过滤不合理的ROI
- ROI阈值Ta,可以过滤掉过小的ROI
- 重叠比,删除与Bap中嵌套或与较大的ROI显著重叠的ROI。
采用这种方式,我们确保提取的ROI可以精确地包围大多数日常视频活动
- 基于运动特征的ROI提取 。为了确保这些活动封闭在“封闭的世界”之外,基于运动特征的ROI特征提取的目的是生成一个基于运动线索的互补边界框Bm。我们利用帧的时间梯度作为运动特征和互补信息,如图中红色部分所示。我们首先通过阈值Tg将时间梯度的绝对值进行二值化,从而生成一个二元映射,以指示具有强烈运动的区域。我们不直接使用运动特征图,而提出从运动特征图中减去基于外观的ROI Ba,这有利于基于运动的ROI提取:
- 首先,基于外观的ROIs的减去使我们能更好地定位未被外观特征检测到的对象,否则多个对象的梯度图可能重叠,共同产生大而不精确的ROI(如图2中(b))。
- 其次,减法减少了计算量
- 最后,我们提出进行轮廓检测来得到轮廓及其相应的边界框Bm,同时使用简单的启发式方法(ROI面积阈值Ta和最大长宽比阈值Tar)来获得最终的ROI集合Bm.基于两个互补的RoI集,最终的RoI集B=Ba∪Bm。在算法1中正式提出了整个RoI提取过程。
- 时空立方体建设。最后,我们利用ROI集合B中的每个ROI来构建时空立方体(STC)作为视频事件,它代表了封装视频活动的基本单元。如图3中黄色模块所示。我们不仅从当前帧中提取ROI中的补丁p1,而且还从之前的ROI(D-1)帧中提取相应的补丁p2,...,pD,通过这种范式,我们将时间上下文合并到提取的视频事件中。为了使得不同尺度的视频活动正常化,我们将相同的ROI的补丁大小调整为HxW,新补丁为:,然后将其堆叠为HxWxD的STC:
3.2 Visual Cloze Tests
正如第2章所解释的那样。1、以往的方法通常依赖于重建或框架预测范式。它们不能充分利用高级语义和时间上下文信息。作为一种补救措施,我们建议建立视觉阻塞测试作为一种新的学习范式,以模拟上述stc表示的正常视频活动。我们将从以下几个方面来提出它:
Motivation. 我们的灵感来自于完型测试,这是一个在语言学习和教学中被广泛使用的练习。它需要完成一个需要删除某些文字的文本。Cloze测试旨在测试学生对词汇语义和语言上下文[38]的理解能力。最近,学习解决阻塞性测试也被证明是自然语言处理(NLP)中一种相当有效的预训练方法,它使DNN能够从文本[8]中捕获更丰富的高级语义。这自然激发了我们将STC的补丁序列与经典凝块测试中的单词序列进行比较。类似地,我们可以在视频事件(STC)中删除某个补丁pi‘来构建一个视觉凝块测试,该测试通过用DNN推断的完成生成的不完整事件(IE)来解决。这种学习范式在两个方面有利于DNN:
- 为了完成这样的完型测试,我们鼓励DNN在STC中捕获高级语义。例如,假设有一个视频事件包含一个会行走的人,DNN必须注意补丁中那些关键运动部位(例如前进腿和摆动臂)以实现良好的完成。这使得完型测试比常用的重建更有意义,后者倾向于记忆每一个输入的低级细节,以减少训练损失。
- 由于STC中的任何补丁都可以被擦除以生成IE,因此我们通过擦除在不同事件位置的补丁来构建多个完型测试。这使得我们能够通过枚举用于阻塞测试的所有可能的IE来充分利用时间上下文。相比之下,基于预测的VAD方法只考虑单帧的预测误差来检测异常,这涉及到视频活动中较差的时间上下文信息。如图4所示,下面,我们将详细介绍VEC的组件。
外观特征完成组件。
运动特征完成组件。
集合策略。