APP下载

利用注意力机制的多示例学习视频异常检测

2022-12-06魏思倩吉根林刘宇杰

小型微型计算机系统 2022年12期
关键词:光流示例排序

魏思倩,吉根林,许 振,刘宇杰

(南京师范大学 计算机与电子信息学院,南京 210023)

1 引 言

随着人们的安全意识逐渐提高,监控摄像机在公共场所(如商场、银行、交通路口等)的日益普及,迫切需要开发一种能够自动检测出监控视频中异常事件并发出警报的技术,以节省人工劳动力,减少经济和人员损失,以及增加社会安全性.因此,自动检测监控视频中异常事件在交通监控和安全控制等领域至关重要.目前,主要将视频中的异常广泛定义为不寻常的行为或事件,即发生频率较少的事件[1],而视频的异常检测就是从监控视频中发现并定位异常事件.该任务具有如下挑战性:1)现实中正常和异常行为复杂、多样,无法穷举;2)正常和异常行为之间的边界是模糊的,即在不同的场景下,对于异常的定义是不确定的,异常检测系统难以泛化;3)由于视频数据巨大,获得精准的帧级和像素级异常标注代价非常昂贵;4)正负样本的不均衡性,即异常样本的数量远远小于正常样本的数量,难以获得足够多的异常样本用来学习和训练模型[2-5].

多示例学习[6]是目前较先进的弱监督视频异常检测方法,但其所提取的C3D特征不能很好的同时描述视频中表观和运动特征,从而导致异常检测性能较低.为此,本文提出了利用注意力机制的多示例学习视频异常检测算法(Attention mechanism based Multiple Instance Learning video anomaly detection algorithm,A-MIL).首先将视频转换成帧并平均划分为多个示例;接着提取C3D特征和光流图;然后通过注意力机制获取两种特征相应的权重参数,通过MIL排序模型进行训练,使异常示例的异常分数远大于正常示例并设置阈值;最后将大于阈值的视频分类为异常.该方法的主要创新点如下:

1)提出了利用注意力机制的多示例学习视频异常检测算法A-MIL.在提取特征之后加入注意力机制,学习C3D特征和光流特征对视频异常分数的贡献程度,从而提高检测的准确率;并在UCF-Crime数据集上进行实验,实验结果显示本文方法的AUC指标比基准方法提升了2.79%.

2)在A-MIL中引入了新的排序损失函数,解决了max函数仅考虑最大异常分数示例而忽略较小异常分数示例的问题,充分利用了每个示例的异常分数,利于在训练过程中区分正常和异常样本.

2 相关研究工作

随着深度学习广泛应用于视频异常检测领域,许多基于神经网络的模型或算法被提出,Hasan等人[7]利用卷积自编码器CAE重构误差检测异常;2015年Olaf等人提出了U-Net,与AE相比,它通过跳跃连接减少降维带来的信息损失,Liu等人[8]利用U-Net的优势提出的未来帧预测方法GAN+U-Net.由于像素级别和帧级别的注释昂贵,基于视频级注释的弱监督方法多示例学习MIL模型被提出[6].MIL模型的输入是包含正常和异常的视频样本,将视频看做是一个包,视频中的片段看做是包中的示例,然后计算每个示例的异常分数,通过MIL排序算法进行训练,最后通过分类方法进行异常检测.文献[6]首先将输入的视频平均划分成32个示例,提取三维特征C3D,接着通过3层全连接层(3FC)计算出每个示例的异常分数,然后通过排序模型选择示例中最大的分数作为视频的异常分数,最后采用支持向量机SVM进行分类.C3D特征简单且易于提取,但是它不能同时描述视频的表观和运动特征,这使得提取的特征并不足以清楚的描述视频特征,从而导致检测率不高.文献[9]观察到运动信息是异常检测中的关键,于是提出了temporal augmented network提取运动特征,仅这一特征就能获得不错的检测性能.此外,文献[6,9]将异常检测作为一个回归问题,即将特征向量映射成异常分数(归一化为0-1),采用排名损失使得异常视频示例比正常示例获得更高的异常分数.

人类在观察事物时根据需求将注意力集中到特定的部分,受到这一启发,注意力机制在视觉图像领域被提出,Google DeepMind团队[10]在RNN 模型上使用注意力机制来进行图像分类.随后,Bahdanau等人[11]将类似注意力机制用在机器翻译任务上,这是首次将注意力机制应用在自然语言处理领域中.在异常检测任务中,也有许多基于注意力机制的模型被提出,如Song等人[12]提出了一种结合注意力模型的自动编码器,并利用对抗学习来发掘正常视频的模式.Zhu等人[9]在多示例学习排序模型中加入了注意力模块,其学习到的权重可以更好的区分正常和异常视频片段,增加检测性能.Lai等人[13]提出将基于梯度的软注意力机制与基于重构和预测的模型相结合用于视频异常检测,以提高视频预测性能.注意力机制是一种能让模型对重要信息重点关注并充分学习的技术,其工作原理就是对输入的每一个部分学习不同的概率值,给予每一个部分不同的权重参数,然后对这些输入做加权线性组合,从而实现对重要信息重点关注的效果.

3 视频异常检测算法A-MIL

本文将异常检测作为回归问题,即将提取的特征向量映射成一个异常分数,采用排序损失的方式进行训练,使异常视频的分数尽可能大于正常视频的分数.异常检测分为2个阶段:训练和测试.1)训练过程:图1是本文所提出的异常检测算法训练阶段框架图.给定正样本(异常视频)和负样本(正常视频),首先将视频转换成帧后均等划分成多个示例;再通过C3D网络提取三维特征C3D,通过PWC-Net提取光流特征图,将光流图输入到卷积自编码器(Conv-AE)中输出其特征向量;分别将三维特征C3D和光流特征输入至3层全连接神经网络(3FC)计算出这两种特征异常分数;然后将示例的异常分数输入到注意力机制模块中获得特征的权重参数;最后使用MIL排序模型进行训练,使正样本异常分数尽可能大于负样本异常分数;2)测试过程:使用和训练过程同样的方法提取测试视频的特征,输入已训练好的MIL排序模型中,输出该视频的异常分数,将大于阈值的样本判断为异常,小于阈值的样本判断为正常.

图1 异常检测算法训练框架

3.1 问题描述

设存在若干个训练视频样本,其中包含异常的视频称为正样本,不包含任何异常行为的视频称为负样本.多示例学习排序视频异常检测算法涉及的相关概念如下:

定义1.包.在多示例学习中,将正样本视为一个正包Ba,将负样本视为一个负包Bn.

定义2.示例.视频中不同时间片段是包内独立的示例.正包内示例(a1,a2,…,am)∈Ba,且正包内至少包含一个异常示例;负包内示例(n1,n2,…,nm)∈Bn,且负包内所有示例均为正常.其中m是包内示例的总数.

定义3.异常分数.正样本的异常分数记为Va,负样本的异常分数记为Vn,该值是示例分数总和,表示视频的异常程度.

模型训练时,已知训练样本的视频级标签(即正包Ba和负包Bn),但是包中每个示例ai和ni的标签不可知.利用3FC计算视频特征的异常分数,并且通过MIL排序算法不断训练,使得正样本异常分数尽可能大于负样本异常分数,在正负样本之间选择合适的阈值.测试时,输入一个视频样本并计算其异常分数,与阈值比较,若大于阈值,则判定该样本为异常,从而求解出该视频是否异常.

3.2 特征提取

异常主要分两类:表观异常和运动异常.其中,表观异常是指与正常样本的外观不同或者罕见的事物,如在人行道上出现的自行车或卡车,如图2所示.运动异常是指不符合正常行为运动模式的事物,如交通事故或打架斗殴等,如图3所示.

图2 表观异常样例

图3 运动异常样例

对于真实世界的异常检测,应提取表观与运动相融合的特征,才能给机器更好的视频数据特征表示,从而提高异常检测的准确率.C3D[14]网络易于训练和提取特征,它前期先是专注提取表观特征,后期提取较突出的运动特征,因此C3D特征表示表观信息的能力不如单一表观特征提取网络,表示运动信息的能力不如单一运动特征提取网络,因此仅C3D特征表示无法达到最先进的性能.通过观察和实验表明,运动信息对于检测打架斗殴、车辆失控、偷窃纵火等行为尤为重要.因此,在基准[8]的基础上将C3D与运动信息融合,加强运动信息在特征提取中的比重,以更好的检测运动异常.此外,本文对现有常用的光流提取网络做了调查研究,FlowNet2[15]提取的光流特征最好,但是提取速度太慢,而PWC-Net提取的速度远远快于FlowNet2且准确率较高,因而采用预训练好的PWC-Net[16]提取光流特征.

3.3 异常检测过程

C3D特征是保留视频时间信息的紧凑特征,但难以有效描述视频运动信息,本文方法同时提取三维特征C3D和光流特征,但是,由两种特征计算出的异常分数对最终异常判断的贡献程度并不均等.为了解决这个问题,本文加入注意力机制来学习两种特征的权重参数.以计算异常视频异常分数举例,计算方法见公式(1):

(1)

其中,wα和wβ是注意力机制学习的权重参数且wα+wβ=1.f是一个将特征向量映射成异常分数(0-1)的函数,在实验中设计为3FC神经网络.若已知每个示例标签,那么排序损失见公式(2):

(2)

但弱监督方法只提供了视频级标签,示例标签未知,因此上述的排序损失并不适合MIL异常检测模型.为解决上述问题,文献[8]提出了如下排序损失,见公式(3):

(3)

由于单个正样本(异常视频)至少包含一个异常示例,可能包含多个异常示例,仅使用max函数只能把取得最大异常分数的示例判定为异常,忽略了其他取得稍小异常分数的示例,未能充分利用每个异常示例的异常分数;负样本(正常视频)的每个示例都是正常的,相比于异常视频,每个示例分数均远小于正样本中示例.因此,异常视频的m个片段的异常分数之和应远大于正常视频的异常分数,这样可以更好地区分正负样本,从而更好的判断异常.于是本文提出以下排序损失,见公式(4):

(4)

本文采用支持向量机SVM分类方法,并使用其替代损失函数的hinge损失,见公式(5).相比于正常行为,异常行为出现的频率较小,具有稀疏性.因此在hinge损失函数中加入了稀疏限制,最终的排序损失函数见公式(6):

(5)

(6)

其中,λ1是稀疏限制的损失权重.在这个MIL排序损失中,误差是从正包和负包的所有片段(因为取得是所有示例的异常分数之和)向后传播的.通过810个正样本(异常视频)和800个负样本(正常视频)的训练,本文方法能够为正样本预测高分,为负样本预测较低的分数,即正负样本之间的间隔越大越好.最后,训练总损失函数如下:

(7)

其中,W表示的是模型的权重.

通过异常分数区分正负样本,基于此选择合适的阈值∈用以判断视频是否异常.测试时,输入测试视频,计算其异常分数f(V)=∑i∈Bf(Vi),判定规则如下:若f(V)>表示该视频是异常的,f(V)<表示该视频为正常.

A-MIL算法的训练过程如算法1所示.

算法1.A-MIL训练过程

输入:训练视频(正包Ba和负包Bn)

输出:A-MIL异常检测模型

过程:

1.提取正包Ba和负包Bn中每个示例的C3D特征和光流特征;

2.将C3D特征和光流特征输入至3FC;

3.利用注意力机制计算两种特征的权重参数wα和wβ;

4.计算Ba和Bn中每个示例的异常分数;

5.将上述的异常分数输入至MIL排序损失中进行训练;

6.返回训练模型

4 实验与结果分析

4.1 数据集

本文选用UCF-Crime数据集(1)http://crcv.ucf.edu/projects/real-world/,它有1900个视频(其中950个正常视频和950个异常视频),长达128个小时,涵盖虐待、逮捕、纵火、袭击、交通事故、入室盗窃、爆炸、打架、抢劫、射击、偷窃、入店行窃和暴力行为等13种异常事件.训练集为800个正常视频和810个异常视频,测试集为150个正常视频和140个异常视频.

4.2 实验环境和参数设置

实验使用的GPU为NVIDIA GTX Titan XP,在深度学习PyTorch框架下实现.在提取特征前先将每帧的大小调整为112×112像素.将视频划分成32个不重叠的片段(即m=32),并把视频看做包,每个视频片段视为包中的一个示例.对于提取C3D特征:从C3D网络的全连接FC6层提取每16帧视频片段的C3D特征(4096D),若片段中有多个16帧的视频片段,取平均值,然后进行L2归一化.对于提取光流特征:首先使用PWC-Net提取每16帧视频片段的15张光流图,然后通过卷积自编码器的隐藏层获取其特征向量,若片段中有多个16帧视频片段,取平均值,然后进行L2归一化.将卷积自编码器设置为3层编码层,1层瓶颈层,3层解码层.输入图像大小为112×112,且为RGB三通道,因此输入图像大小为112×112×45.卷积核大小为3×3,采用最大池化,stride为2,所有卷积层的激活函数都是ReLU,提取出隐藏层的4096×1的特征向量.将C3D特征和光流特征向量输入到3FC神经网络获取示例异常分数,其中每一层分别为512、32和1个神经元,采用60% Dropout Regularization,第1层使用ReLU激活函数,最后一层使用Sigmoid激活函数,以及Adagrad优化器,初始学习率为0.001.为训练MIL排序模型,随机选取30个正包和30个负包作为一个mini-batch,超参数λ1=8×10-5,λ2=0.01.

4.3 实验结果

本文方法A-MIL与其他异常检测方法的ROC曲线对比结果和AUC对比结果分别如图4和表1所示.从表1可以看出,本文方法的AUC值分别高于Lu等[17]、Hasan等[7]、Zhu等[9]和Sultani等[6]27.6%、 12.69%、5.99%和2.79%.

图4 ROC曲线对比结果

表1 AUC对比结果

图5为UCF-Crime数据集上的异常事件检测结果可视化示例.本文方法为异常视频片段得出较高的异常分数,为正常视频片段得出较低的分数.横坐标表示的是视频帧,纵坐标表示的是每个示例的异常分数(0-1),阴影部分表示的是出现异常的时间段.图5(a)-图5(f)为成功检测出异常事件的示例,其中图5(a)-图5(e)分别为包含虐待、交通事故、逮捕、纵火和突击的异常视频,图5(f)是正常视频;图5(g)和图5(h)为误检情况.

图5 预测结果的可视化

5 总 结

本文提出了利用注意力机制的多示例学习视频异常检测算法,将视频数据的三维特征C3D和光流特征相融合,并利用注意力机制获取两种特征对视频异常分数的贡献程度,从而更准确地计算示例的异常分数.模型训练时,在MIL排序算法中引入了改进的排序损失函数以更好的区分正负样本.UCF-Crime数据集上的实验结果表明,本文异常检测方法的性能优于基准方法.该工作是以粗粒度方式进行异常检测,未来将以细粒度方式对视频异常检测展开研究.

猜你喜欢

光流示例排序
利用掩膜和单应矩阵提高LK光流追踪效果
作者简介
恐怖排序
2019年高考上海卷作文示例
节日排序
“全等三角形”错解示例
飞吧,云宝
一种改进的基于全局最小能量泛函光流算法
融合光流速度场与背景差分的自适应背景更新方法
利用PSO估算Lucas-Kanade光流模型的参数