多层记忆增强生成对抗网络二次预测的视频异常检测方法

曾 静,李 莹,戚小莎,吉根林

1.南京师范大学计算机与电子信息学院/人工智能学院,江苏 南京 210023

2.南京师范大学数学科学学院,江苏 南京 210023

视频异常检测是指在时间上或空间上定位视频中不符合预期的外观或行为的异常事件。随着越来越多监控摄像头的部署,视频异常检测在智能监控系统中发挥着越来越重要的作用,并应用于商场、机场、交通路口等各种关键场景,也受到了学术界和工业界的广泛关注。然而异常事件的发生频率显然很低,异常事件的类型复杂多样,异常事件的定义也因环境的不同而发生变化,因此视频异常检测是极具挑战性的任务[1]。

帧预测是一种常用的视频异常检测方法。该类方法认为正常数据符合一定的客观规律,能根据先前的外观和行为对之后的外观和行为进行预测。若出现较大的预测误差,则可判定该视频帧为异常帧。文献[2]根据异常事件的不可预知性将预测误差作为异常指标,进而提出了预测未来帧的方法。文献[3]采用基于过去和未来的双向方法预测中间帧,通过外观与运动检测器来检测异常事件。文献[4]将隐式角转换的思路加入帧预测方法,再进行视频异常检测。以上方法均对整个视频帧进行预测,包含较多复杂的背景信息,而监控视频出现异常事件的区域往往在前景对象上。为了去除背景信息,涌现出了不少基于分块和基于目标检测的方法。文献[5]将视频分块后先用三维卷积自编码器对图像块筛选,再对最终剩余的图像块进行异常检测。文献[6]先用背景边缘模型对每帧进行判断,再提取图像块的运动方向,最后进行异常行为检测。文献[7]将视频帧均匀划分,利用卷积自编码器对不同块进行异常检测。由于对视频分块再筛选的方法太过繁琐,因此随着神经网络的发展,目标检测[8-9]开始应用于各种场景,并出现了用已训练的目标检测器提取视频前景对象的方法。文献[10]设计了以对象为中心的卷积自编码器,先由已训练的目标检测器提取对象,再用卷积自编码器分别学习对象的外观和运动信息来检测异常。文献[11]利用目标检测器定位前景对象,形成时空立方体分别对表观和运动特征进行帧预测。但现有的基于预测的方法依赖大量的正常数据训练模型,且只关注一次预测的结果。若异常帧被预测出的误差较小,则可能被误判为正常帧。

为了进一步提高异常检测的准确率,本文提出了基于多层记忆增强生成对抗网络二次预测(secondary prediction of multi-layer memory enhancement generative adversarial network,SP-MLMEGAN)的视频异常检测方法。由自编码器初步预测未来帧,再串联多层记忆增强生成对抗网络(multi-layer memory enhancement generative adversarial network,MLMEGAN)预测未来帧。为了去除复杂的背景信息,利用已训练的目标检测器[12]提取视频中的前景对象,着重关注可能发生异常的重点区域。为了减小运动特征被遗漏的可能性,将预测帧的表观特征和对应真实帧的光流特征融合作为MLMEGAN 的输入,使预测的未来帧更加接近正常帧,拉大预测帧与异常帧的差距。

本文提出了SP-MLMEGAN 视频异常检测方法,其处理过程如图1所示。

图1 SP-MLMEGAN 处理过程Figure 1 Processing process for SP-MLMEGAN

整个异常检测模型在视频帧前景对象上进行训练。先由自编码器根据连续4 帧的前景对象预测第5 帧,再将预测帧序列和对应真实帧的光流序列融合,利用MLMEGAN 网络预测未来帧,并根据两次预测误差构成前景对象的异常分数。取一帧中前景对象异常分数最大的值作为异常分数,并与设定的阈值进行比较,若前者大于后者,则可判定该帧包含异常事件,也就是异常帧。

1.1 前景对象提取

提取前景对象的目的是去除复杂的背景信息,只保留前景对象活动的区域。将一个时空立方体作为视频异常检测的基本处理单元进行精确而全面的定位,达到使前景对象的活动区域尽量小且剔除复杂背景环境的理想状态,这是视频前景对象提取的关键。前景对象提取过程如图2所示。

图2 前景对象的提取过程Figure 2 Extraction process of foreground objects

将外观条件和运动条件进行相互补充,实现前景对象的定位。对于外观条件,用目标检测器[12]在微软COCO 这样大规模公共的数据集进行预训练,使已训练的目标检测器可以精确地定位每个前景对象,并用一个边界框来标识;
为每个边界框的面积设定一个阈值,过滤掉较小的边界框;
通过非极大值抑制消除显著重叠的边界框,获得外观边界框的集合Ba。对于运动条件,利用帧差法处理相邻两帧,得到前景对象的运动区域;
将运动区域边界框与外观边界框相减,既可以定位未被外观线索检测到的对象,又可以降低边界框重叠率,避免产生较大且不精确的边界框,还可以减少计算量,从而获得运动边界框的集合Bm。最终,将外观边界框集合Ba和运动边界框集合Bm合并,形成前景对象合适的边界框集合B。每个边界框构建一个时空立方体(F1,···,Ft−1,Ft),它不仅包含当前帧的前景对象,还包含之前t −1 帧相同边界框中的内容,其中t=8,时空立方体的宽度和高度均被调整为32。

1.2 二次预测模型

本文提出了SP-MLMEGAN 方法,根据连续的帧序列初步预测未来帧序列,随后预测下一时刻未来帧,基本定义如下:

定义1真实帧序列。真实帧序列SF由多个连续的真实视频帧Fi组成,即=,其中表示第t −j到第t个真实帧的视频序列。

定义2光流序列。光流序列SO由多个连续的真实帧对应的光流Oi组成,即=,其中表示第t −j到第t个真实帧对应的光流序列。

定义3预测帧序列。预测帧序列由多个连续的预测帧组成,即=,其中表示第t −j到第t个第1 次预测的帧序列,表示第n次预测的第i帧。

定义4预测函数。视频序列通过预测函数预测未来帧。用φ1表示第1 次预测函数,输入真实视频帧序列进行第1 次预测,则生成预测帧为

用φ2表示第2 次预测函数,输入预测帧序列和对应真实帧的光流序列进行第2 次预测,则生成预测帧为

再用预测函数φ2对预测帧序列和真实帧序列对应的光流序列进行第2 次预测,得到预测帧为

1.3 多层记忆增强生成对抗网络

为了解决部分异常帧被误判为正常帧的问题,在不同层次特征上添加记忆模块。将编码器产生的编码特征作为查询项检索记忆内存中最相关的内存项,再将这些内存项聚合输入到解码器中。在训练阶段,不断更新记忆内存中的内存项;
在测试阶段,从记忆内存中选取最相关的内存项聚合,使预测的未来帧更趋向于正常帧。拥有记忆模块的自编码器也应用在视频异常检测领域中[13-14],但它们都是在编码器最底层特征添加记忆模块,只记录最底层特征的语义信息。如果仅添加一个记忆模块,就不能记录所有正常模式,因此需要在多个不同层次特征均添加记忆模块,有效地记录多层特征的正常模式。

利用帧预测常见的Unet 网络作为自编码器和MLMEGAN 网络中生成器的结构。在Unet 网络中,每层添加一个跳跃连接就可以获取相同层次的特征,捕获更多的上下文语义信息,解决每层信息不平衡的问题。不同于自编码器结构,MLMEGAN 的生成器结构将记忆模块添加至每层特征跳跃连接之前,但过多的记忆模块会过滤掉部分信息,使网络无法记住最具代表性的正常模式。因此,在Unet 网络第2 层、第3 层添加记忆模块,生成器结构如图3所示。

图3 MLMEGAN 的生成器结构Figure 3 Generator structure of MLMEGAN

将记忆内存设计成一个矩阵M ∈RN×C,其中包含N个维数为C的特征向量,记忆内存M记录训练过程中正常的模式。设定C和特征z的维数相同,于是有Z=RC;
设行向量mi表示矩阵M中的一个记忆内存项,i表示矩阵M的第i行。给定一个查询特征z ∈RC,通过检索得到相似记忆内存项,并与系数wi相乘得到重构特征ˆz为

式中:系数wi表示查询特征z和记忆内存项的相似性,可以表示为

式中:d() 表示相似性度量,可设置成余弦相似度

综上所述,查询特征z使用一定数量具有正常模式的记忆内存项进行聚合,有助于异常样本形成较大的预测误差,但仍有一些异常模式可能通过数量密集且相似度小的记忆内存项聚合。为了防止异常特征通过较多记忆内存项聚合,进行组合的记忆内存项应越稀疏越好。利用收缩操作增大系数wi的稀疏性,可以表示为

式中:max(∗,0) 表示ReLU 激活函数,ε表示一个非常小的正标量,λ为收缩阈值。

记忆模块检索出特征z最相似的记忆内存项,得到重构特征ˆz。正常样本可以经过记忆模块得到准确的预测,而异常样本经过具有正常模式的记忆内存项聚合,得到的预测结果更趋向于正常,因此产生的预测误差较大。

对于MLMEGAN 中的鉴别器,使用马尔可夫鉴别器PatchGAN 作为帧鉴别器。不同于传统的鉴别器,PatchGAN 先把图像分割成N ×N的矩阵patch,再对所有patch 分别进行判别,最后根据判别结果平均值判定该帧的真假。

1.4 特征融合

考虑到预测帧序列并不清晰,如果只将预测帧序列作为输入,那么很可能预测出更加模糊甚至异常的模式。不仅如此,单一的表观信息并不能概括前景对象的全部特征,且大多数方法往往忽略了前景对象的运动信息,而这些反常的运动信息可用来检测某些异常事件,如人行道上出现与行人速度不一致的车辆,有规律移动的人群突然奔跑等。因此,利用FlowNet2网络[15]提取的光流特征作为前景对象的运动特征,再将模糊的表观特征和真实的运动特征融合后输入MLMEGAN,如图4所示。

图4 特征融合图Figure 4 Feature fusion graph

融合特征提供了真实的运动模式,而不完全使用预测出的虚假模式,从而减少运动特征被遗漏的可能性,丰富了前景对象的表观特征和运动特征。

1.5 损失函数

因为SP-MLMEGAN 包含自编码器和MLMEGAN,所以分别对两次预测模型进行训练。本文设Ft表示真实的第t帧图像,表示第n次预测的第t帧图像。为了使预测帧与真实帧尽可能相似,用强度损失和梯度损失进行约束。

1.5.1 第1 次预测

梯度损失可通过计算视频帧相邻像素点之间的差距得到,即

式中:i和j分别表示视频帧中像素的横坐标和纵坐标。通过缩小预测帧相邻像素点之间的距离和真实帧Ft相邻像素点之间的距离,使生成的预测帧更加清晰。

平衡上述两个损失函数的权重,得到第1 次预测自编码器的目标函数为

式中:α和β为平衡这两个损失函数的权重系数。

1.5.2 第2 次预测

MLMEGAN 包含生成器和鉴别器,两者需要交替训练。生成器旨在生成一个接近真实的未来帧,并试图欺骗鉴别器;
而鉴别器则需要区分图像是真实的还是虚假的。本文将强度损失Lint、梯度损失Lgd、稀疏性损失Lmem和生成器对抗性损失LGadv结合,构成生成器的目标函数为

式中:λint、λgd、λmem、λadv分别代表各自损失的权重。

MLMEGAN 中的记忆模块会产生一个稀疏性损失Lmem为

式中:Q为记忆模块数量,N为一个记忆模块中的内存项数量,为查询特征和记忆内存项的相似性系数。

为了生成接近真实图像的预测帧,欺骗鉴别器,采用生成器对抗性损失公式为

为了鉴别真假图像,将生成器生成的预测帧判断为0,真实帧判断为1,则鉴别器的目标函数为

1.6 异常分数

每个前景对象的异常分数由自编码器预测的异常分数Sq和MLMEGAN 预测的异常分数Sp组成,可以表示为

式中:wq和wp分别为权重系数。

自编码器预测的异常分数Sq为4 次预测的异常分数总和,可以表示为

MLMEGAN 预测的异常分数Sp为

式中:均方误差(mean squared error,MSE)作为图像相似性评价指标,可以表示为

由于一个视频帧中包含多个前景对象,因此取一帧中前景对象最高的异常分数作为该帧的异常分数Sall,于是有

若该帧的异常分数Sall大于设定的阈值T,则判定该帧为异常帧;
相反,则判定该帧为正常帧,不包含异常事件。

2.1 实验数据与参数设置

本文在两个公开数据集UCSD Ped2 和CUHK Avenue 上进行实验验证。每个数据集都有训练集和测试集,而异常事件仅出现在测试集中。分别用UCSD Ped2 和CUHK Avenue 的正常视频数据对模型进行训练,在含有异常行为的视频数据进行测试。UCSD Ped2 数据集是在人行道上拍摄的行人走动视频,含有28 个视频片段,其中16 个视频序列全部为正常行为视频,另外12 个视频序列包含异常行为,如骑自行车、开小轿车、滑滑板等。每个视频分辨率为240×360 像素。CUHK Avenue 数据集中的视频是在地铁口从平视角度拍摄的,含有37个视频片段,其中16 个视频序列全部为正常行为视频,另外21 个视频序列包含异常行为,如行人奔跑、扔掷杂物等。每个视频分辨率为360×640 像素。

在训练和测试前,对数据集CUHK Avenue 和UCSD Ped2 中的视频帧提取前景对象,使每个前景对象形成一个时空立方体,并将该时空立方体的图像设置为32×32。整个实验在NVIDIA GeForce RTX3080 进行训练和测试,以PyTorch 框架构建相应的模型,根据受试者工作特征(receiver operating characteristic,ROC)曲线下的面积(area under curve,AUC)评判模型的性能。当自编码器预测时,将强度损失和梯度损失前面系数α和β均设置为1.0。当MLMEGAN 预测时,训练生成器的总目标函数强度损失Lint、梯度损失Lgd、稀疏性损失Lmem和生成器目标函数LGadv前面的系数,并将λint、λgd、λmem、λadv分别设置为0.000 2、1.000 0、0.000 2、0.050 0。对于自编码器预测的异常分数Sq和MLMEGAN 预测的异常分数Sp,其权重系数在Ped2 数据集分别设置为0.4 和0.6,在Avenue 数据集分别设置为0.3 和0.7。

2.2 实验结果与性能评价

本文用帧级别的AUC 进行评估,AUC 值越高表示异常检测的性能越好。若视频帧中出现一个或多个异常事件,则判定该帧为异常帧。本文自编码器预测的异常分数Sq和MLMEGAN 预测的异常分数Sp所对应的权重系数wq和wp是两个重要的参数,因为这两个权重系数比例的不同对单个视频帧的异常分数有着至关重要的影响。将wq与wp之和设置为1,在wp∈[0,1]范围内进行调整,则在Ped2 和Avenue 数据集帧级别的AUC 结果如图5所示。

图5 在Ped2 和Avenue 数据集中不同wp 帧级别的AUC 结果Figure 5 Frame level AUC results of different wp in Ped2 dataset and Avenue dataset

从图5中可以观察到:当Ped2 数据集的权重系数wq和wp分别设置为0.4 和0.6 且Avenue 数据集的权重系数wq和wp分别设置为0.3 和0.7 时,帧级别AUC 最高,两次预测的异常分数比例权重最为合适。第2 次预测的异常分数并不能代表最终的异常分数,因为第1 次预测的异常分数对整个异常分数也有一定的影响,所以不能被忽略,这也验证了本文提出的SP-MLMEGAN 方法的有效性。

SP-MLMEGAN 方法在UCSD Ped2 和CUHK Avenue 数据集帧的级别ROC 曲线如图6所示。

图6 在Ped2 和Avenue 数据集的ROC 曲线Figure 6 ROC curve in Ped2 and Avenue dataset

为了展示SP-MLMEGAN 方法的有效性,本文还同视频异常检测的其他方法在UCSD Ped2 和CUHK Avenue 数据集上进行了帧级别AUC 的比较,如表1所示。

由表1可以观察到:本文方法在两个基准数据集上帧级别AUC 的结果均高于其他的视频异常检测方法。其中,文献[17-18,20]提出了重构和预测结合的方法,而本文直接串联两个预测模型并根据两次预测误差区分异常帧,故帧级别AUC 的结果明显高于其他对比方法。尤其在Avenue 数据集上进行帧预测能比单帧重构保留更多的时空信息,因此选用二次预测方法。

表1 与其他方法的AUC 性能对比Table 1 Comparison of AUC performance with other methods

本文展示了Ped2 和Avenue 数据集中测试视频4 的各帧异常分数,被红色覆盖的区域为异常帧,如图7所示。可以看出正常帧的异常分数较低,而包含异常事件的异常帧往往有较高的分数。

图7 Ped2 和Avenue 数据集中测试视频4 的异常分数Figure 7 Abnormal scores of test video 4 in Ped2 and Avenue dataset

本文针对两个基准数据集中的测试视频4,选取了异常分数处于较低区域的正常帧和较高区域的异常帧,其中异常事件已用绿色框标注,如图8所示。在Ped2 数据集中出现的车辆、骑自行车以及Avenue 数据集中出现的行人奔跑时,会有较高的异常分数,从而可以判断此时的帧为异常帧。

图8 Ped2 和Avenue 数据集中测试视频4 的正常帧和异常帧Figure 8 Normal and abnormal frames of test video 4 in Ped2 and Avenue dataset

2.3 消融实验

2.3.1 SP-MLMEGAN 中各个组件的重要性

为了研究SP-MLMEGAN 方法中二次预测模型、添加记忆模块和运动特征对性能的影响,在Ped2 和Avenue 数据集针对不同情况进行消融实验,所得结果如表2所示。其中,U1为第1 次预测网络,U2为第2 次预测网络。

表2 各个组件的AUC 性能对比Table 2 Comparison of AUC performance with each component

从表2中可以看出:MLMEGAN 方法中添加多层记忆模块能明显改善模型性能,且第2次预测比单用一次自编码器预测得到的帧级别AUC更大。此外,运动特征的融合又丰富了特征的表示,尤其在Ped2 数据集上添加了运动特征,使帧级别AUC 有明显的提升,由此可知Ped2 数据集对运动特征更加敏感,更利于视频异常检测。因此,在第2 次预测阶段添加多层记忆模块和运动特征,可以进一步提高准确率。

2.3.2 记忆模块位置和数量的影响

由于在网络中记忆模块的数量和位置对视频异常检测的效果均有一定的影响,因此在Ped2 和Avenue 数据集上对Unet 网络的不同层次特征添加记忆模块,得到的帧级别AUC 如图9所示。

图9 不同位置的记忆模块在Ped2 和Avenue 数据集上的AUCFigure 9 AUC of memory module at different locations in Ped2 and Avenue dataset

随着记忆模块不断添加到更高层特征上,帧级别AUC 先逐渐上升再缓慢下降。这可能是因为在底层特征添加记忆模块而导致记录的正常模式并不细致,所以应该剔除正常模式含有的大量无关信息。如果在高层特征添加记忆模块就可能丢失部分重要信息,使记录的正常模式并不完全而预测不准。本文还在多个层级特征添加记忆模块进行实验,得到Ped2 和Avenue 数据集上的结果如表3所示。

表3 记忆模块在不同位置的AUC 结果Table 3 AUC results of memory modules at different locations

在多层特征添加记忆模块的实验表明:只添加一个记忆模块并不能记录所有正常模式,而只有在不同层次特征均添加记忆模块才可以有效地记录不同的语义信息。如果在Unet 网络第2 层和第3 层添加记忆模块,那么不仅可以剔除无关信息而且能保留大量重要信息,使模型发挥最优性能。

本文提出了SP-MLMEGAN 视频异常检测方法,先用自编码器初步预测未来帧序列,再串联一个MLMEGAN 网络二次预测未来帧,最后在两个基准数据集上进行大量实验,验证了该方法对视频异常检测的有效性。分析原因如下:1)两次连续预测能增大未来帧预测误差,更容易区分异常帧;
2)第2 次预测将模糊的表观特征和真实的运动特征融合,并在不同层次特征上添加记忆模块,防止预测的视频帧变得更加模糊;
3)在不同层次特征上添加记忆模块,可以更好地记录不同层次的语义信息,加大预测帧和异常帧的差距。因此,本文方法明显优于以往的仅重构或仅预测甚至重构和预测相结合的方法。未来我们将进一步考虑如何提升训练和测试的效率,降低时间复杂度,提高视频异常检测的实时性。

猜你喜欢编码器内存分数分数的由来小学生学习指导(高年级)(2021年4期)2021-04-29无限循环小数化为分数的反思中学生数理化·七年级数学人教版(2020年11期)2020-12-14“春夏秋冬”的内存当代陕西(2019年13期)2019-08-20可怕的分数趣味(数学)(2019年12期)2019-04-13基于FPGA的同步机轴角编码器成都信息工程大学学报(2018年3期)2018-08-29基于双增量码道的绝对式编码器设计制造技术与机床(2017年7期)2018-01-19算分数小学生导刊(2017年16期)2017-06-15JESD204B接口协议中的8B10B编码器设计电子器件(2015年5期)2015-12-29内存搭配DDR4、DDR3L还是DDR3?电脑爱好者(2015年21期)2015-09-10多总线式光电编码器的设计与应用电测与仪表(2014年13期)2014-04-04

推荐访问:多层 对抗 检测方法