Real-world Anomaly Detection in Surveillance Videos【CVPR 2018】(首次引入MIL)

【摘要】

        监控视频能够捕捉各种真实的异常情况。在本文中,我们建议通过利用正常和异常视频来学习异常。为了避免耗时的注释训练视频中的异常片段或剪辑,我们建议通过利用弱标记的训练视频,通过深度多实例排名框架(deep multiple instance ranking framework)学习异常,即训练标签(异常或正常)处于视频级别而不是片段级别。在我们的方法中,我们将正常和异常视频视为包,将视频片段视为多实例学习(MIL)中的实例,并自动学习深度异常排序模型,该模型预测异常视频片段的高异常分数。此外,我们在排名损失函数中引入稀疏性和时间平滑性约束,以更好地定位训练期间的异常。

        我们还介绍了一个新的大规模的128小时视频数据集。它由1900段未经剪辑的真实世界监控视频组成,其中有13个真实的异常现象,如打架、道路事故、入室盗窃、抢劫等,以及正常的活动。此数据集可用于两项任务。首先,考虑一组中的所有异常和另一组中所有正常活动的一般异常检测。第二,识别13种异常活动中的每一种。我们的实验结果表明,与最先进的方法相比,我们用于异常检测的MIL方法在异常检测性能方面取得了显著的改进。我们提供了最近几个关于异常活动识别的深度学习基线的结果。这些基线的低识别性能表明,我们的数据集非常具有挑战性,并为未来的工作提供了更多机会。数据集位于:https://webpages.uncc.edu/chen62/dataset.html。

1.引言

        监控摄像头越来越多地用于公共场所,如街道、十字路口、银行、购物中心等,以提高公共安全。然而,执法机构的监测能力没有跟上步伐。其结果是,监控摄像头的使用存在明显不足,摄像头与人体监视器的比例不可行。视频监控的一项关键任务是检测异常事件,如交通事故、犯罪或非法活动。通常,与正常活动相比,异常事件很少发生。因此,为了减少劳动力和时间的浪费,开发用于自动视频异常检测的智能计算机视觉算法是迫切需要的。实际异常检测系统的目标是及时发出偏离正常模式的活动信号,并识别发生异常的时间窗口。因此,异常检测可以被认为是粗略级别的视频理解,它从正常模式中过滤出异常。一旦检测到异常,就可以使用分类技术将其进一步分类为特定活动之一。解决异常检测的一个小步骤是开发检测特定异常事件的算法,例如暴力检测器[30]和交通事故检测器[23,34]。然而,很明显,这种解决方案不能推广到检测其他异常事件,因此在实践中应用有限。

        真实世界的异常事件是复杂多样的。很难列出所有可能的异常事件。因此,期望异常检测算法不依赖关于事件的任何先验信息。换句话说,异常检测应在最低限度的监督下进行。基于稀疏编码的方法[28,41]被认为是实现最先进异常检测结果的代表性方法。这些方法假设只有视频的一小部分初始部分包含正常事件,因此初始部分用于构建正常事件字典。然后,异常检测的主要思想是异常事件不能从正常事件字典中准确地重建。然而,由于监控摄像机捕捉到的环境会随时间发生剧烈变化(例如,在一天的不同时间),因此这些方法对于不同的正常行为会产生较高的误报率。

        动机和贡献。尽管上述方法很有吸引力,但它们基于这样的假设,即任何偏离学习到的正常模式的模式都将被视为异常。然而,这一假设可能不成立,因为很难或不可能定义一个考虑到所有可能的正常模式/行为的正常事件[9]。更重要的是,正常行为和异常行为之间的界限往往模糊不清。此外,在现实条件下,在不同条件下,相同行为可能是正常行为或异常行为。因此,有人认为,正常和异常事件的训练数据可以帮助异常检测系统更好地学习。在本文中,我们提出了一种使用弱标记训练视频的异常检测算法。也就是说,我们只知道视频级别标签,即视频在某个地方正常或包含异常,但我们不知道在哪里。这很有趣,因为我们只需指定视频级别标签,就可以轻松注释大量视频。为了制定一种弱监督学习方法,我们求助于多实例学习(MIL)[12,4]。具体而言,我们建议通过将正常和异常监控视频视为包,将每个视频的短片段/剪辑视为包中的实例,通过深度MIL框架学习异常。基于训练视频,我们自动学习异常排序模型,该模型预测视频中异常片段的高异常分数。在测试过程中,长未修剪的视频被分成多个片段,并被送入我们的深度网络,该网络为每个视频片段分配异常分数,从而可以检测到异常。总之,本文做出了以下贡献。

        •我们提出了一种MIL解决方案,通过仅利用弱标记的训练视频来进行异常检测。我们提出了一种具有稀疏性和平滑性约束的MIL排序损失,用于深度学习网络,以学习视频片段的异常分数。据我们所知,我们是第一个在MIL背景下制定视频异常检测问题的公司。

        •我们引入了一个大规模的视频异常检测数据集,该数据集由1900个真实世界的监控视频组成,监控摄像机捕捉到13个不同的异常事件和正常活动。它是迄今为止最大的数据集,其视频是现有异常数据集的15倍以上,总共有128小时的视频。

        •对我们新数据集的实验结果表明,与最先进的异常检测方法相比,我们提出的方法实现了优异的性能。

        •由于运动种类的复杂性和类间的巨大差异,我们的数据集也为未经修剪的视频的活动识别提供了一个具有挑战性的基准。我们提供了基线方法(C3D[36]和TCNN[21])在识别13种不同异常活动上的结果。

2.相关工作

        异常检测。异常检测是计算机视觉中最具挑战性和长期存在的问题之一[39,38,7,10,5,20,43,27,26,28,42,18,26]。对于视频监控应用程序,有几种方法尝试检测视频中的暴力或攻击[15,25,11,30]。Datta等人提出通过利用人的运动和四肢方向来检测人类暴力。Kooij等人[25]使用视频和音频数据来检测监控视频中的攻击行为。Gao等人提出了暴力流描述符来检测人群视频中的暴力。最近,Mohammadi等人[30]提出了一种新的基于行为启发的方法来对暴力和非暴力视频进行分类。        

        除了暴力和非暴力模式的区别之外,作者在[38,7]中建议使用跟踪来模拟人的正常运动,并将偏离正常运动的作为异常来检测。由于难以获得可靠的轨迹,一些方法通过基于直方图的方法[10]、主题建模[20]、运动模式[31]、社会力量模型[29]、动态纹理模型的混合[27]、局部时空体积上的隐马尔可夫模型(HMM)[26]和上下文驱动方法[43]来避免跟踪和学习全局运动模式。给定正常行为的训练视频,这些方法学习正常运动模式的分布,并将低概率模式检测为异常。

        在稀疏表示和字典学习方法在几个计算机视觉问题中取得成功之后,[28,42]中的研究人员使用稀疏表示来学习正常行为字典。在测试过程中,具有较大重建误差的模式被认为是异常行为。由于深度学习在图像分类中的成功演示,已经提出了几种视频动作分类方法[24,36]。然而,获取用于训练的注释是困难和费力的,特别是对于视频。

        最近,[18,39]使用基于深度学习的自动编码器来学习正常行为的模型,并使用重建损失来检测异常。我们的方法不仅考虑了正常行为,还考虑了异常行为,仅使用弱标记的训练数据进行异常检测。

        排序。学习排序是机器学习中一个活跃的研究领域。这些方法主要侧重于提高项目(item)的相对得分,而不是个人(individual)得分。Joachims等人[22]提出了rank-SVM来提高搜索引擎的检索质量。Bergeron等人[8]提出了一种使用连续线性规划解决多实例排序问题的算法,证明了它在计算化学中的氢提取问题中的应用。最近,深度排序网络已被用于多个计算机视觉应用中,并显示出最先进的性能。它们已用于特征学习[37]、高亮检测[40]、图形交换格式(GIF)生成[17]、人脸检测和验证[32]、人物重新识别[13]、地点识别[6]、度量学习和图像检索[16]。所有深度排序方法都需要大量的正负样本注释。

        与现有方法相比,我们通过利用正常和异常数据将异常检测表述为排序框架中的回归问题。为了减轻获得用于训练的精确片段级标签(即视频中异常部分的时间注释)的困难,我们利用多实例学习来学习异常模型,并在测试过程中检测视频片段级别的异常。

图1:拟议异常检测方法的流程图。给定正视频(在某处包含异常)和负视频(不包含异常),我们将它们分成多个时间视频片段。然后,每个视频被表示为包,每个时间段表示包中的一个实例。在提取视频片段的C3D特征[36]之后,我们通过使用新的排序损序函数来训练完全连接的神经网络,该函数计算正袋和负袋中最高得分实例(以红色显示)之间的排序损失。 

3.提议的异常检测方法

        提议的方法(总结于图1)开始于在训练期间将监控视频分成固定数量的片段。这些段在一个包中创建实例。使用正(异常)和负(正常)包,我们使用提出的深度MIL排序损失来训练异常检测模型

3.1 多实例学习

        在使用支持向量机的标准监督分类问题中,所有正面和负面示例的标签都可用,并且使用以下优化函数学习分类器:

其中①是铰链损失,yi表示每个示例的标签,φ(x)表示图像块或视频片段的特征表示,b是偏差,k是训练示例的总数,w是要学习的分类器。为了学习鲁棒的分类器,需要对正面和负面示例进行精确的注释。在监督异常检测的背景下,分类器需要视频中每个片段的时间注释。然而,获取视频的时间注释是费时费力的。 

        MIL放宽了具有这些精确时间注释的假设。在MIL中,视频中异常事件的精确时间位置是未知的。相反,只需要指示整个视频中存在异常的视频级别标签。包含异常的视频被标记为阳性,而没有任何异常的视频则被标记为阴性。然后,我们将正样本视频表示为正样本包Ba,其中不同的时间段在包中创建单独的实例(p_1,p2,...,p_m),其中m是包中的实例数。我们假设这些实例中至少有一个包含异常。类似地,负样本视频由负样本包Bn表示,其中该包按时间分段形成负实例(n_1,n_2,...,n_m)。在负包中,没有一个实例包含异常。由于正样本实例的确切信息(即实例级别标签)未知,因此可以针对每个包中的最大得分实例优化目标函数[4]:

其中Y_B_j表示包级别标签,z表示包总数,所有其他变量与等式1中的相同。

3.2.深度MIL排序模型

        异常行为很难准确定义[9],因为它非常主观,而且因人而异。此外,如何为异常分配1/0标签并不明显。此外,由于缺乏足够的异常示例,异常检测通常被视为低似然模式检测,而不是分类问题[10,5,20,26,28,42,18,26]。

        在我们提出的方法中,我们将异常检测作为回归问题。我们希望异常视频片段具有比正常片段更高的异常分数。直接的方法是使用排序损失,这会鼓励异常视频片段与正常片段相比获得高分,例如:

其中Va和Vn表示异常和正常视频片段,f(Va)和f(Vn)分别表示相应的预测分数。如果在训练期间知道片段级别注释,则上述排序函数应该可以正常工作

        然而,在缺少视频片段级别注释的情况下,不可能使用等式3。相反,我们提出了以下多实例排序目标函数

其中,在每个包中的所有视频段上取最大值。我们没有对包的每个实例强制排名,而是仅对正负包中分别具有最高异常分数的两个实例强制排名。阳性包中最高异常分数对应的片段最有可能是真阳性实例(异常片段)。与负包中的最高异常分数相对应的片段看起来与异常片段最相似,但实际上是正常情况。该负实例被认为是在异常检测中可能产生错误警报的硬实例。通过使用等式4,我们希望在异常分数方面将正实例和负实例分得更开。因此,我们在铰链(hinge)损失公式中的排名损失如下: 

上述损失的一个限制是它忽略了异常视频的潜在时间结构。首先,在现实世界场景中,异常通常只发生很短的时间。在这种情况下,异常包中实例(段)的分数应该是稀疏的,表明只有少数段可能包含异常。第二,由于视频是一个片段序列,因此异常分数应该在视频片段之间平滑变化。因此,我们通过最小化相邻视频片段的分数差,来增强时间上相邻视频片段异常分数之间的时间平滑性。通过在实例分数上加入稀疏性和平滑性约束,损失函数变为

其中①表示时间平滑项,②表示稀疏项。在该MIL排序损失中,误差从正负包中的最大得分视频段反向传播。通过对大量阳性和阴性包的训练,我们希望网络将学习一个通用模型,以预测阳性包中异常片段的高分(见图8)。最后,我们的完整目标函数由下式给出

 其中W表示模型权重。

        包格式。我们将每个视频分成相等数量的非重叠时间段,并将这些视频段用作包实例。给定每个视频片段,我们提取3D卷积特征[36]。我们使用这种特征表示是因为它的计算效率、在视频动作识别中捕获外观和运动动态的明显能力。

4.数据集

4.1以前的数据集

4.2我们的数据集

5.实验

5.1.实现细节

        我们从C3D网络的完全连接(FC)层FC6中提取视觉特征[36]。在计算特征之前,我们将每个视频帧的大小调整为240×320像素,并将帧速率固定为30 fps。我们每16帧计算一个人视频片段的C3D特征,然后进行l_2归一化。为了获得视频片段的特征,我们取该片段中所有16帧的片段特征的平均值。我们将这些特征(4096D)输入到3层FC神经网络。第一FC层具有512个单元,随后是32个单元和1个单元FC层。在FC层之间使用了60%dropout正则化[33]。我们用更深的网络进行实验,但没有观察到更好的检测精度。我们分别对第一个和最后一个FC层使用ReLU[19]激活和Sigmoid激活,并使用初始学习率为0.001的Adgrad[14]优化器。MIL排名损失中的稀疏度和平滑度约束参数设置为\lambda_1=\lambda_2=8 \times 10^{-5}获得最佳性能。

        我们将每个视频分成32个不重叠的片段,并将每个视频片段视为包的一个实例。分段数(32)是根据经验设定的。我们还尝试了多尺度重叠的时间片段,但这不会影响检测精度。我们随机选择30个阳性包和30个阴性包作为一个小批量。我们使用Theano[35]在计算图上通过反向模式自动微分来计算梯度。具体来说,我们识别损失所依赖的一组变量,计算每个变量的梯度,并通过计算图上的链式规则获得最终梯度。每个视频都通过网络,我们得到每个时间段的分数。然后我们计算损失,如等式6和等式7所示,并反向传播整个批次的损失。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值