系列文章目录
用于视频异常检测的记忆增强外观运动网络 23
摘要
例视频异常检测是一项很有前途但也很有挑战性的任务,在训练阶段只能观察到正常事件。在正常事件和异常事件之间没有明确的分类界限的情况下,将任何不符合正常模式的事件视为异常,将异常检测问题转化为离群点检测问题。现有的工作大多侧重于提高正常事件的表征,而忽略了正常事件与异常事件之间的关系。此外,缺乏对分类边界的限制也会导致性能下降。为了解决上述问题,我们设计了一种新的基于自编码器的记忆增强外观运动网络(MAAM-Net),它由一个新颖的端到端网络来学习给定输入帧的外观和运动特征,一个融合记忆模块来建立正常和异常事件的桥梁,设计了一种基于边缘的潜在损失算法来降低计算成本,以及一种基于点补丁的跨步卷积检测(PSCD)算法来消除退化现象。具体来说,存储模块嵌入在编码器和解码器之间,作为正常模式的稀疏字典,因此可以进一步利用它来重新整合推理过程中的异常事件。为了进一步扭曲异常事件的整合质量,利用基于边际的潜在损失来强制内存模块选择关键记忆项的稀疏集。最后,简单而有效的检测方法侧重于局部而不是整体帧响应,这可以受益于异常事件的失真。在三个异常检测基准(UCSD Ped2、CUHK Avenue和ShanghaiTech)上进行了大量的实验和实验研究,证明了我们提出的MAAM-Net的有效性和效率。值得注意的是,我们在UCSD Ped2(0.977)、CHUK Avenue(0.909)和ShanghaiTech(0.713)上取得了优异的AUC性能。
该代码可在https://github.com/Owen- Tian/MAAM- Net上公开获得。
提示:以下是本篇文章正文内容
一、引言
视频异常检测的目的是识别不符合正常事件模式的异常事件[1-3]。在视频监控中应用显示出极大的重要性和必要性[4,5],近年来受到了社会各界的广泛关注。
由于异常事件在现实场景中很少发生,而且人工标注是一项费时费力的工作,因此很难收集到足够的异常事件训练样本。因此,传统的分类方法难以处理严重不平衡样本的异常检测问题。自然地,它要求模型能够仅根据正常事件作为监督来识别异常。现有的作品[6,7]主要通过训练一个网络来解决这个问题,该网络可以利用正常事件来描绘正常事件的特征分布。在推理阶段,未知输入与学习分布之间的距离成为识别异常的关键准则。根据输入帧的数量,这些工作可分为两类:1)基于重构的方法[8,9]以单个帧作为输入,输出相应的重构结果,利用重构误差识别异常;2)基于预测的方法[10,11]采用多个前一帧来预测后续帧或直接从单个帧预测光流,其中利用预测误差,即预测与真实值之间的差值来计算异常分数。
图1。一些检测结果的可视化。四列分别为原始输入、归一化外观重构差、流量预测差和融合差。差值归一化为[0,1]。异常事件用红色框表示,假告警用绿色框表示。(对于图例中有关颜色的解释,请参阅本文的网页版本。)
目前大多数方法[12,13]采用自编码器框架[9]从训练样本中重构或预测帧。在推理过程中,异常事件可能会导致比正常事件大得多的错误。然而,这种假设在实践中并不总是成立。对正常和异常事件之间的关系缺乏约束将不可避免地导致漏检。更糟糕的是,缺乏边界限制使得模型容易将硬阳性样本与真阴性样本进行错误分类,例如,区分滑板者和快速步行者。这些模糊性严重降低了异常检测的准确性。
本文提出了一种新的混合网络,记忆增强外观运动网络(MAAM-Net),它同时利用帧重建和流量预测来解决上述挑战。对于正常事件和异常事件之间的关系,MAAM-Net中的内存模块使用正常事件对未知事件进行重新整合。由于异常事件通常表现出异常的形状和速度,因此很难与正常事件相结合。因此,存储模块可以作为特征空间中异常事件的破坏者和正常事件的重新积分器。
针对缺乏边界限制的挑战,我们进一步引入了一种新的基于边缘的潜在损失,我们在编码特征的差异和其重新整合之间设置了一个边界。潜在的损失迫使记忆模块选择最小但至关重要的项目进行重新整合。因此,不同项目带来的计算成本显著降低。同时,异常事件在项目较少的情况下很难重新整合,从而导致更大的重构误差。
此外,由于异常事件通常出现在局部区域,我们认为以前的帧级检测方法可能会遗漏小图像区域内发生的异常事件。如图1所示,我们可以看到异常区域(红色框所包围的区域)远小于整个帧。因此,我们提出了一种基于补丁的检测方法,该方法使用外观和运动分支融合产生的最大局部生成误差作为给定帧的异常分数。
我们的MAAM-Net由一个编码器、一个记忆模块、一个外观解码器和一个动作解码器组成,其中记忆模块嵌入在编码器和每个解码器之间,作为一个稀疏字典来存储正常事件的各种模式。给定一个视频帧,由编码器提取帧特征。然后,将编码后的特征与记忆模块的相似度加权项融合,对编码后的特征进行重新整合。最后,将重新整合的特征输入到外观和运动解码器中,重建输入帧并预测相应的光流。在测试阶段,提出的基于补丁的检测方法可以共同生成外观误差图和运动误差图,然后将两者融合生成最终的异常分数。如图1所示,外观和运动分支的融合结果可以突出异常区域(第一行),并消除单个分支(第二行)可能的误检。
我们在三个基准上进行了广泛的实验和烧烧研究:即UCSD Ped2,中大大道和ShanghaiTech数据集。最先进的结果证明了我们方法的有效性和效率。据我们所知,这是第一个将外观运动自动编码器与视频异常检测的存储模块相结合的工作。综上所述,本文的主要贡献可以突出如下:
•提出了一种用于视频异常检测的记忆增强外观运动网络(MAAMNet)。
•引入基于边际的潜在损失来提高存储模块中正常模式的稀疏性和泛化性,确保正常和异常事件之间的高对比度,同时降低计算成本。
•提出一种基于补丁的检测方法,突出异常事件的局部响应,抑制正常事件的响应。
广泛的实验结果与竞争方法和烧蚀研究相比较,验证了我们提出的方法的有效性。
本文的其余部分组织如下。第二节回顾了异常检测和记忆网络的相关工作。在第3节中,我们详细介绍了MAAM-Net,包括问题的表述、网络结构、损失函数和基于补丁的检测方法。第4节给出了实验结果和讨论。第五部分得出结论。第6节介绍了我们方法的局限性和未来的工作。
二、相关工作
2.1. 异常检测
大多数先前的工作[12,14]将异常检测定义为无监督问题,因为异常事件的数据在训练阶段是不可用的。它们主要采用生成方法,通过充分学习正常事件的规律来检测异常。大量的工作利用生成式对抗网络(GAN)[9]框架,使用辅助鉴别器来扮演新奇检测器的角色[6,8,9,11,12,14 - 16]。Doshi等人提出了一种对监控视频虚警率有渐近界的在线方法。Sabokrou等人通过使用带噪声的输入帧来利用去噪gan。abnormal algan[12]通过使用运动特征重构外观特征来反转生成目标,反之亦然。GANomaly[14]使用一个额外的CNN对重构帧进行编码以校正重构。此外,Perera等人使用了两个额外的鉴别器,即视觉鉴别器和潜在鉴别器来监督重建。Chen等人介绍了一种噪声调制的对抗学习方法。Acsintoae等人将自监督多任务模型与cycleGAN合并来解决这一问题。但是,辅助鉴别器给训练阶段带来了不稳定性和额外的计算量。此外,Liu et al.[11]提出了一种未来帧预测框架,该框架使用先前的多个帧来预测随后的单个帧。Nguyen et al.[6]简化了之前的工作,并将模型集成到一个统一的框架中。他们试图通过增加更多的监督来稳定GAN的训练过程。在Liu et al.[11]和Nguyen et al.[6]的激励下,我们也将运动特征作为一个重要的组成部分。
此外,一些研究[1、2、7、10、18、19]指出,单一特征分布不足以描述各种正常事件的模式,他们认为模型需要更好地描绘正常事件的多样性。Abati等人使用正态事件训练自回归密度估计网络。他们需要多个帧作为输入来训练网络。以对象为中心的自编码器[7]直接使用1 - vs -rest策略对特征空间中的正常事件进行分类,关键区别在于输入不是整个帧,而是提前从帧中提取的对象。Luo等人[1]引入了稀疏编码,并将其嵌入到sRNN[20]中,以学习正常事件的字典。Yu et al.[21]提出了一种基于定位的重构模型,采用自定步优化方案来检测异常,Wang et al.[22]设计了一个借口任务,即解决时空拼图,但都需要提前提取大量感兴趣的对象。此外,MemAE[2]引入了一个内存模块来存储正常事件的稀疏特征,并利用这些特征对异常进行重新整合,这需要三维卷积层。Park等人[10]显著降低了内存模块的容量,但他们需要手动更新内存模块的参数。此外,Cai等人([19])提出了一种外观-运动记忆一致网络来模拟规则视频的外观和运动之间的一致性,Liu等人([23])设计了一个带有跳过连接的自编码器中的多级存储模块网络,用于记忆正常模式以进行光流重建。虽然它们都需要一个帧序列作为输入。特征空间的差异因此成为提高性能的附加标准。
然而,上述方法的主要缺点是推理速度和精度之间的不平衡。与我们的工作最相关的是MemAE[2],它通过内存模块存储正常模式。它采用三维卷积层来寻找时间序列的内部相关性,而我们简单地使用光流特征来描述二维卷积操作的运动信息。此外,MemAE[2]没有对潜在特征施加限制,导致参数量大,泛化能力差,而是引入基于边际的潜在损失,迫使记忆模块选择最小但关键的项目进行重新整合,从而提高泛化能力。由于上述两个区别,我们以比MemAE[2]更快的推理速度实现了更高的性能。
2.2. 内存模块
记忆网络最初是由Weston等人提出的。它避免了LSTM[25]不能记住长期特征的缺点。然而,当训练样本数量显著增长时,我们需要保持更大的内存,这将限制推理速度,并且我们认为如果更新过程涉及人工操作,内存模块将成为简单的存储模块。对于引入内存的异常检测工作,Luo[13]和Park等人使用手动更新内存模块,他们使用精心选择的超参数来训练网络。受MemAE[2]的启发,我们将记忆模块应用到我们的模型中,并进一步引入一种新的基于边缘的潜在损失来限制特征空间中的特征重新融合。
三、 建议方法
在本节中,我们制定了异常检测任务,并详细描述了所提出的MAAM-Net。如图2所示,所提出的MAAM-Net由四个主要组件组成,即编码器,增强存储器模块,外观解码器和运动解码器。给定原始视频帧I,编码器首先提取其特征z。内存模块通过检索内存M中最相关的项来重新集成特征向量 z ^ \hat{\mathbf{z}} z^。然后,将重新整合的特征向量 z ^ \hat{\mathbf{z}} z^传递给外观解码器和运动解码器,分别进行视频帧重建和光流预测。最终输出为重构帧 I ^ \mathbf{\hat{I}} I^和相应的预测光流 F ^ \mathbf{\hat{F}} F^。在训练过程中,对编码器和两个解码器进行联合优化,以最小化输入与每个相应输出之间的生成误差。在推理过程中,融合基于l2距离的外观相似度和基于l1距离的运动相似度的补丁级加权和误差来检测异常。
3.1. 问题表述
异常检测通常被认为是一种无监督学习任务,因为它完全基于在训练过程中对正常样本的学习。在本文中,我们以一种生成的方式来解决这个问题。具体来说,对于每个给定的输入帧I,我们的目标是生成一个重构的帧 I ^ \mathbf{\hat{I}} I^,并预测下一帧的光流F。在推理过程中,我们的目标是为每个测试帧生成一个帧级异常预测y∈{0,1},其中0表示正常事件,1表示异常事件。这是通过为每个测试帧分配异常分数来实现的,然后通过使用阈值τ对异常分数进行阈值化来对每个测试样本进行分类。在这里,我们使用输入帧I与重构帧 I ^ \mathbf{\hat{I}} I^的差值以及原始光流F与预测光流 F ^ \mathbf{\hat{F}} F^的差值来确定测试帧的异常分数。同时,利用逐像素误差响应,可以在帧中定位异常事件的空间位置。
3.2. 记忆增强外观运动网络
3.2.1. 编码器和解码器
编码器包含5个子块,详细架构如表1所示。每个子块由三层组成:卷积层、批处理归一化层[26]和ReLU激活[27]。经过
f
e
(
⋅
)
f_{e}(\cdot)
fe(⋅)的编码过程,我们得到一个编码后的特征向量
z
=
f
e
(
I
)
\mathbf{z}=f_e(\mathbf{I})
z=fe(I)。
图2。概述我们提出的MAAM-Net。它由四个部分组成:编码器、存储模块、外观解码器和运动解码器。编码器从输入帧I中提取子空间潜在特征z。内存模块M存储正常事件的稀疏特征,并根据与z的相似度,使用这些特征对z进行重新积分。最后,通过解码重新整合的
z
^
\hat{\mathbf{z}}
z^,外观解码器输出重构帧
I
^
\hat{\mathbf{I}}
I^,运动解码器输出光流
F
^
\hat{\mathbf{F}}
F^,预测
I
t
I_{t}
It和
I
t
+
1
I_{t+1}
It+1之间的运动。
表一详细的网络结构。它由四个部件组成,包括编码器、存储模块、外观解码器和运动解码器。N表示内存容量。
外观和运动解码器都包含一组带有附加输出卷积层的子块,如表1所示。每个子块包含四层,即一个卷积转置-2d层,一个批处理归一化层[26],一个dropout (dropout ratio p drop = 0)。3)层[28],和一个ReLU激活[27]。最后的卷积层用于通过调整输出通道的数量来再现输入。除了最终卷积层的输出通道数不同(外观解码器为3个,运动解码器为2个),运动解码器与外观解码器具有相同的结构。利用FlowNet2[29]从相邻视频帧中提取地真光流。对于每个视频,最后一帧被排除,以确保样本的一致性。由于我们使用内存模块来隔离编码和解码阶段,因此不使用跳过连接[6],因为它可能会损害内存模块的学习。外观解码器f app以重新整合的m_z作为输入,将原始输入帧I重构为
I
^
=
f
a
p
p
(
z
^
)
\mathbf{\hat{I}}=f_{\mathrm{app}}(\mathbf{\hat{z}})
I^=fapp(z^),运动解码器
f
m
o
t
f_{mot}
fmot预测相应的光流为
F
^
=
f
m
o
t
(
z
^
)
\mathbf{\hat{F}}=f_{\mathrm{mot}}(\mathbf{\hat{z}})
F^=fmot(z^)。
3.2.2. 内存模块
内存模块实现为矩阵 M ∈ R N × C \mathcal{M}\in\mathbb{R}^{N\times C} M∈RN×C,其中N为内存容量,C为编码特征z的通道号,作为查询来检索一组相似的项目。将编码特征z组织成矩阵 z ∈ R B × H × W × C \mathbf{z}\in\mathbb{R}^{B\times H\times W\times C} z∈RB×H×W×C,其中B、H、W分别为经过编码器模块后的网络输入的批大小、高度、宽度。因此,记忆模块作为一个稀疏字典来存储训练过程中正常模式的关键表示。受Gong et al.[2]的启发,我们使用来自内存模块的相似项集合,通过以下过程重新整合编码特征。
首先,我们计算编码特征z与所有内存项
M
=
{
m
i
}
i
=
1
N
\mathcal{M}=\{\mathbf{m}_i\}_{i=1}^N
M={mi}i=1N之间的相似性(例如,余弦相似性):
S
i
=
z
⊤
m
i
∥
z
∥
∥
m
i
∥
,
(
1
)
S_i=\frac{\mathbf{z}^\top\mathbf{m}_i}{\|\mathbf{z}\|\|\mathbf{m}_i\|},\quad(1)
Si=∥z∥∥mi∥z⊤mi,(1)
其中 s i s_{i} si是相似向量 s ∈ R N . \mathbf{s}\in\mathbb{R}^N. s∈RN.的第i个元素。然后用softmax对所有元素进行归一化,得到该元素的归一化为 s ~ i \tilde{s}_{i} s~i。然后,通过减去阈值λ为 s ^ i \hat{s}_{i} s^i来滤除冗余项:
这里是一个小的正常数以避免被0整除。我们通过经验观察到,阈值
λ
∈
[
1
/
N
,
3
/
N
]
\lambda\in[1/N,3/N]
λ∈[1/N,3/N]可以得到相当可观的结果。这一过程确保所选项目具有关键性和代表性。之后,我们将相似向量归一化为单位权重向量,其中每个项计算为
w
i
=
s
^
i
/
∑
j
=
1
N
s
^
j
.
w_i=\hat{s}_i/\sum_{j=1}^N\hat{s}_j.
wi=s^i/∑j=1Ns^j.。最后,我们通过归一化权值w和内存M对与z具有相同维数的
z
^
\hat{\mathbf{z}}
z^进行重新积分:
记忆模块的目标是利用高相关项的特征,从而在训练过程中对编码特征进行重新整合。我们的记忆模块在每次迭代中不断更新,可以动态地、自适应地捕捉正常事件的鲁棒模式。在测试阶段,可以采用相似度较高的记忆项对正常事件和异常事件进行重新整合,其中异常事件产生较高的整合错误,正常事件产生较低的整合错误。综上所述,该存储模块可以进一步提高MAAM-Net识别异常和正常事件的能力。
3.3. 训练损失
3.3.1. 生成性损失
我们限制输入和生成输出之间的差异,以更好地描述具有生成损失的正常模式。所述损失函数包括所述外观分支的外观损失和所述运动分支的运动损失。外观损失衡量的是原始输入帧I与其重建结果
I
^
\mathbf{\hat{I}}
I^之间的相似度。在[1,2,6,11]之后,使用l2距离计算逐像素差:
运动损耗测量的是原始光流F与预测光流
F
^
\hat{\mathbf{F}}
F^的差值(L 1距离):
根据外观损失和运动损失,将生成损失定义为它们的加权和:
其中
λ
m
\lambda_{\mathrm{m}}
λm控制外观和运动估计之间的相对重要性。
3.3.2. 稀疏损耗和潜在损耗
内存模块动态存储大量的常规模式,计算量很大。此外,由于正常事件和异常事件处于相同的场景中,并且具有相似的外观特征,因此在不同正常模式的复杂交互作用下,异常事件的生成质量往往相当好,但这并不是我们所希望的,因为我们的目标是区分正常事件和异常事件的生成误差。
因此,在降低计算成本的同时,减少从内存模块中选择的项目的数量是至关重要的。内存模块中的正常模式应该更加稀疏和通用,使异常事件的生成误差更大。除了生成损失外,我们还使用稀疏损失来加强所选项目之间的稀疏性。根据[2],我们将稀疏损失表示为:
为了进一步减少内存模块的选择项,Park等人[10]和Chang等人[30]手动限制了正常模式的数量,我们认为这是不合适的。更合适的方法是让内存模块根据给定数据集的正常事件自适应地确定正常模式的数量。
由于我们使用常规模式对编码特征进行再集成,因此集成的质量不是很理想。受保证金损失[31]的启发,由于细节不足,我们强制实施了小程度的多样性,以重新整合质量。具体来说,我们引入基于编码特征z与其重新融合 z ^ \hat{\mathbf{z}} z^的余量的潜在损失为:
其中ζ是一个正数,控制着不相似性的容忍度。通过使用基于边缘的潜在损失,正常事件和异常事件在特征空间中的距离会大得多,因为异常事件不太可能与减少的项目很好地重新整合。在这种损失的监督下,我们观察到:(1)应用基于边际的潜在损失时,选择的项目数量显著减少(图5),这代表了计算成本的降低,我们推测其原因是减少的项目共享相似的详细信息;(2)性能略有提高,如表3所示,同时由于内存模块计算成本的降低,推理速度也相应提高。
表2最先进的方法在AUC性能的三个基准上的比较。黑体数字表示目标数据集中的最佳结果,下划线数字表示次优结果。
表3最先进的方法在EER性能的三个基准上的比较。黑体数字表示目标数据集中的最佳结果,下划线数字表示次优结果。
基于生成损失、稀疏损失和引入的潜在损失,我们的总损失函数定义为:
其中α, β是控制不同损失函数重要性的超参数。
3.4. 检测方法
在测试阶段,为每一帧分配一个异常分数。如图3所示,由于我们的方法包含一个外观分支和一个运动分支,我们将检测方法应用于每个分支,并将它们融合到一个统一的误差图中,该误差图是根据最近的工作[2,6,10]使用输入和输出之间的lp距离获得的。利用误差图获得异常分值和异常事件的空间位置。
值得注意的是,由于对整个帧进行平均/求和操作,现有方法可能会遗漏在小帧区域内发生的异常事件。即使远处异常区域的生成误差较高,但场景的平均误差往往较低,这意味着特定区域的生成误差优于整个帧的异常检测。对于正常样本(图4 (b)),我们发现生成质量也下降了,通过平均/求和运算计算的生成误差分数可能等于异常样本的一个微小区域的分数(图4 (a))。此外,如图4 (a)所示,一些设计良好的patch可以很好地检测出异常事件。因此,我们提出了一种考虑局部patch而不是整个帧的检测方法,即基于patch的Stride - Convolutional detection algorithm (PSCD)。算法1对检测过程进行了总结。
图3。异常检测流程概述。在获得重建的外观输出和预测的运动输出后,计算它们与原始输入的差值,然后将基于patch的跨步卷积检测方法(PSCD)应用于外观和运动分支的差值图。从融合图中可以计算出异常事件的定位图和异常评分。
图4。基于补丁的检测方法的动机。左列为外观分支的重构误差图,右列为运动分支的预测误差图。左上角的亮掩模和右上方的暗掩模指出了斑块中的异常区域。
图5。在三个不同的数据集中,从每个样本的内存中选择的平均支持项数。四列分别表示无稀疏和潜在损失、仅无稀疏损失、仅无潜在损失和有稀疏和潜在损失。
PSCD算法首先初始化一个大小为(H, W, C, 1)的过滤器,该过滤器由1填充,其中H, W是基于场景中关键对象(如人)的形状,对于数据集,C是输入通道。然后,我们对外观分支 d a p p d_{\mathrm{app}} dapp的输入和对应输出与运动分支 d m o t d_{\mathrm{mot}} dmot的输入和对应输出的差图进行卷积运算,生成外观误差映射 e a p p e_{\mathrm{app}} eapp和运动误差映射 e m o t e_{\mathrm{mot}} emot。使用外观和运动误差映射的加权和 e f u s e = ψ e a p p + ( 1 − ψ ) e m o t e_{\mathrm{fuse}}=\psi e_{\mathrm{app}}+(1-\psi)e_{\mathrm{mot}} efuse=ψeapp+(1−ψ)emot来获得每个patch的最终异常分数,其中ψ是一个融合超参数。接下来,我们对每帧的所有融合误差映射集合进行最大池化,并使用最大patch误差作为异常分数η,最后,我们将异常分数σ归一化到[0,1]范围内:
σ值越大,异常概率越大。即当分数高于预定义阈值τ时,可以检测到异常:
其中,0表示正常,1表示异常。此外,我们发现可以通过抑制非异常斑块来定位异常事件的空间位置。
类似的检测方法是Nguyen等人的[6],而我们提出的PSCD与他们的主要区别在于两个方面:(1)在所有数据集中,我们没有将patch大小设计为相同的大小,因为我们将patch大小正则化为数据集中显示的人的形状;(2)差分图的计算与损失函数相似,[6]对外观分支和运动分支使用均方误差,两个分支的融合机制为不加训练样本监督的加权求和,[6]则不是。
四、 实验与讨论
在本节中,我们介绍了所提出的MAAM-Net的实现细节,并将其与三个基准数据集(包括UCSD Ped2[32],中大大道[33]和上海科技[1])上的最新方法进行了比较。然后进行广泛的消融研究,以验证MAAM-Net的每个组成部分的贡献。
4.1. 数据集
我们在UCSD Ped2、CUHK Avenue和ShanghaiTech三个基准上评估了我们提出的方法,这些基准将在以下段落中介绍。
UCSD Ped2数据集[32]包含16个训练视频和12个测试视频,包含12种异常事件。画框是灰色的。训练样本2550个,测试样本2010个。异常事件包括自行车、汽车和滑板等交通工具。困难的是,一个场景可能包含多个异常。摄影机是固定的,场景中人物的大小几乎是一样的。
中大大道数据集[33]包含16个训练视频和21个测试视频,共47种异常事件,包括扔东西、闲逛、跑步、跳舞等。用于训练和测试的帧总数分别为15,328帧和15,324帧。相机也是固定的,但人的大小可能会因为距离相机的远近而有所不同。
上海科技数据集[1]是迄今为止最大、最具挑战性的数据集。包含330个训练视频274515帧,107个测试视频42883帧,130种异常事件。它与上述两个数据集的主要区别在于它包含了13个不同的场景,异常事件包括跑步、自行车、车辆、打架等。由于场景的不同,物体的大小随场景的不同而不同。
以上三个数据集包含训练集和测试集。我们直接使用训练集来训练我们的MAAMNet,并使用测试集来评估每个实验。
4.2. 评估指标
根据之前的研究[6,10,30,34],我们也通过曲线下面积(Area Under Curve, AUC)来评估我们提出的MAAM-Net,这是通过计算Receiver Operation Characteristic (ROC)曲线下的面积得到的。我们进一步报告了相等错误率(EER),这是ROC曲线上对应于具有相等概率的误分类阳性或阴性样本的点,以验证MAAM-Net的有效性。由于很少有论文发表了EER分数,我们提出它作为一个触发未来的工作比较。
4.3. 实现细节
对于Avenue和ShanghaiTech数据集,帧的输入大小设置为180 × 320。由于Ped2数据集的帧大小较小,我们直接使用原始帧大小来训练我们的模型。相应的光流[29]也通过双线性插值调整到相同的分辨率。流程可视化是使用flownet2[29]的官方代码获得的。所有实验均在单个NVIDIA RTX 2080 Ti gpu上进行。我们提出的MAAM-Net在Ubuntu(版本16.04.7)中使用Tensorflow(版本1.13.1)[35]实现。在整个训练过程中,我们使用固定学习率的Adam优化器[36](分别在Ped2、Avenue和ShanghaiTech上为0.0 0 0 02、0.0 0 0 05和0.0 0 01)。在实践中,Ped2的内存容量设置为500,其他两个数据集的内存容量设置为20 00,λ为1 /N (N为内存容量),余量为0.001。在[2,6]之后的所有数据集上,我们经验地分别设置λm, α, β和ζ为2, 0.0003,0.001和0.1。训练epoch设置为50。patch大小设置为场景中显示的人的平均大小。
4.4. 与最先进水平的比较
我们分别在表2和表3中给出了在Ped2[32]、Avenue[33]和ShanghaiTech[1]数据集上与最先进方法的AUC和EER性能比较。在比较的方法中,我们重新实现了Nguyen et al.[6]和Sabokrou et al.[9]的性能,并直接报告了其余方法的性能。
4.4.1. Ped2
我们的MAAM-Net在Ped2数据集上实现了0.977的AUC,优于之前的所有方法。与基线MemAE[2]相比,我们的方法的性能比它高出3倍。在AUC中为6%,这表明运动分支的引入是有效的。此外,我们的方法可以进一步得到一个1。与缺少内存模块[6]的外观-运动模型相比,AUC提高了5%,证明了两者结合的必要性和有效性。我们的MAAM-Net还实现了6.3%的可观的EER性能,优于最近的方法[9,37,38],并且比使用额外鉴别器的NM-GAN[16]低0.3%。
图6。权参数β和裕度参数ζ的超参数敏感性分析。Ped2数据集使用主轴,Avenue数据集使用副轴。
4.4.2. Avenue
与Ped2数据集相比,Avenue是一个更大的数据集,因为它有更多的异常场景。在此数据集上,我们的MAAM-Net在AUC性能上仍然优于所有竞争方法,并将AUC提高到一个新的阶段。在EER中的表现也很有竞争力。与Park等人利用人工干预内存更新的方法相比,我们的方法达到了8。AUC提高了1%,超过了我们的基线MemAE[2],高出了7倍。AUC为6%。即使对于没有内存模块的MAAMNet,我们的方法仍然具有相当的性能,验证了我们提出的MAAM-Net的优越性能。此外,我们的MAAM-Net在AUC和EER方面都优于最近的方法FSCN[38],与最近的方法NM-GAN[16]相比,AUC高2.3%,EER高0.7%。
4.4.3. ShanghaiTech
我们在AUC中使用最近的方法[1 - 3,10]获得了具有竞争力的性能。值得注意的是,我们优于最近利用内存模块的方法[2,10]。我们注意到有几种方法[11,16,18,30]在这个数据集上取得了比我们更高的AUC性能,我们推测原因是它们使用了额外的训练线索。具体来说,它们可以受益于多帧输入[11,18,30]和/或更长的训练计划[16],而我们的模型只需要单帧输入,需要更少的epoch就可以获得相当大的性能,这也导致了高误检率。另一个原因可能是我们的检测方法是基于patch的,patch的大小是基于数据集中人的平均大小。与Ped2和Avenue数据集相比,ShanghaiTech数据集的帧表现出较大的场景差异,这导致我们的PSCD算法的性能下降。与最近的NM-GAN[16]方法相比,我们的EER性能相对较弱,我们推测原因如下。第一个是NM-GAN[16]在训练阶段严重依赖于预定义的正态分布来产生负样本,而正态事件对于我们的MAAM-Net来说已经足够了。二是NM-GAN[16]的输入不是整帧而是训练样本的重叠patch集。虽然这两个额外的工作使NM-GAN[16]的EER更好,但它们需要一些前期工作,导致大量的重复计算和减慢推理速度。
综上所述,在内存模块和新颖的基于patch的跨步卷积检测(PSCD)算法的帮助下,我们的方法在AUC上优于Ped2和Avenue数据集上的所有竞争方法,并在上海科技公司数据集上取得了具有竞争力的AUC性能。此外,我们的方法在Ped2和Avenue数据集上取得了与其他方法相当的EER性能[9,37,38]。在Ped2和Avenue数据集上接近NM-GAN[16],但在EER上低于上海科技数据集上的NM-GAN。此外,即使没有内存模块,我们的模型仍然达到了相当的性能,验证了将运动特征引入MAAM-Net的直觉。
表4不同方法在三个基准上的模型复杂度和推理速度比较。“M”表示百万,“FPS”表示每秒帧数。加粗的数字代表最好的结果。
4.5. 模型复杂度和推理速度
表4给出了在Ped2、Avenue和ShanghaiTech数据集上与其他方法[2,11,19]的模型复杂度和推理速度比较。通过在单个Nvidia RTX-2080Ti GPU上运行官方实现,收集了不同方法的推理速度。在这里,我们给出了我们方法的模型参数的两个值,Ped2为8.5 M, Avenue和ShanghaiTech为9.22 M。模型参数不同的原因是Avenue和ShanghaiTech的视频比Ped2更复杂,因此我们使用了更大的内存容量。虽然MemAE[2]的参数大小比我们的小,但MemAE中使用的大选择项使得推理过程更加耗时。除了模型参数外,我们的模型在Ped2上可以推断出63.6 FPS,在Avenue上可以推断出78.38 FPS,在ShanghaiTech上可以推断出79.76 FPS,比所有的竞争方法都要快,验证了提高内存模块的特征泛化可以有效加快推理速度的直觉。
4.6. Ablation study
4.6.1. Appearance and motion branches
在我们的方法中,我们使用外观分支来重建输入帧并学习空间特征,使用运动分支来预测光流并捕获时间相关性。为了验证这两个分支的必要性,我们在Ped2、Avenue和ShanghaiTech数据集上进行了消融实验。表4的最后一行总结了在三个数据集上使用不同分支的性能。结果表明,外观-运动结构大大提高了检测性能。我们认为运动特征比外观特征发挥更重要的作用,因为异常事件通常与物体运动的异常速度呈正相关,可视化结果见4.7节。因此,运动分支可以更好地对异常进行建模,从而获得比外观分支更高的性能。它们的结合进一步提高了性能。
图7。三个数据集的定量结果。每个数据集包含两个示例,每个示例有两行,第一行是视频序列,异常事件用红色框括起来,异常帧比正常事件大,第二行是每帧对应的异常分数,异常分数越高表示异常概率越高。浅蓝色背景区域是时间序列的地真值异常范围。(对于图例中有关颜色的解释,请参阅本文的网页版本。)
图8。详细的可视化示例。每一行分别包含原始输入、外观差异、运动差异、融合差异和异常定位。在最后一列中,红、绿、黄三色掩模分别代表预测异常区、地真异常区和它们的重叠区。前两行来自Ped2数据集,接下来的两行来自Avenue数据集,最后两行来自ShanghaiTech数据集。(对于图例中有关颜色的解释,请参阅本文的网页版本。)
4.6.2. 不同的损失
在我们提出的MAAM-Net中,我们引入了稀疏损失lspa和潜在损失llt来减少记忆模块的选择项以进行特征整合。具体来说,稀疏损失促使所选项目变得稀疏,而潜在损失迫使所选项目变得关键,它们共同提高了存储模块的泛化能力。由于正常事件与异常事件之间的自然关系,即异常通常表现为异常的形状和速度,当我们稍微降低正常事件的整合质量时,对正常事件的整合没有影响,而增加了异常事件的整合难度。从而验证了潜在损失和稀疏损失的有效性。
表5列出了不同分支混合情况下所有损失组合的性能。通过使用稀疏损失和潜在损失,性能优于所有使用外观-运动架构的变体。此外,在单分支情况下,两个损失项的组合可能表现不如单个损失,我们推测原因是两个损失函数都旨在减少重新整合的选择项目,这限制了单分支模型学习丰富的特征。在没有两个分支相互作用的情况下,与其他损失函数组合相比,单个分支模型中具有潜在损失的性能较弱,这表明潜在损失严重依赖于特征的表示能力。
表5消融研究的损失和分支组合。性能用AUC来衡量。加粗的数字代表最好的结果。lspa和llt中的刻度表示是否使用目标损失。
图9。失败案例。红、绿、黄三色掩模分别表示预测异常区、真地异常区和它们的重叠区。前两行分别来自Ped2和Avenue数据集,后两行来自ShanghaiTech数据集。(对于图例中有关颜色的解释,请参阅本文的网页版本。)
4.6.3. 计算成本
为了验证新的损失函数对所选项目下降的影响,我们还在图5中给出了三个数据集中每个样本的重新整合项目的平均数量。这表明新的潜在损失在很大程度上减少了选择项目的数量。引入潜在损失后,在Ped2、Avenue和ShanghaiTech数据集上,被选中的项目比例分别下降了25%、36%和37%左右,验证了引入潜在损失能够降低计算成本,进一步提高特征泛化的观点。此外,随着稀疏损失,所选项目的数量继续减少。
4.6.4. 超参数灵敏度
在我们提出的MAAM-Net中有两个重要的超参数,即权参数β和裕度参数ζ。它们的灵敏度分析如图6所示。其中,β控制特征稀疏度的重要性,进而影响记忆模块的特征泛化。图6 (a)绘制了不同β值下的AUC性能。我们可以观察到,当权值大于1时,Avenue的性能有明显下降。而当权重参数小于1时,性能对其变化不敏感。这种现象验证了引入我们的潜在损失的必要性。
更重要的是,ζ控制模型对生成质量的容忍度。一个大的ζ使内存模块选择稀缺但至关重要的项目重新整合,但导致质量下降。图6 (b)绘制了不同ζ在Ped2和Avenue数据集上的AUC表现。由于余弦相似度小于1,我们在[0,1]的范围内设置不同的ζ。我们可以看到,我们的模型对边际参数ζ的变化不敏感。
4.7. 定性评价
4.7.1测试视频的定性分析
图7分别给出了Ped2、Avenue和ShanghaiTech数据集上的六个定性结果。我们为每个数据集展示了两个视频示例。异常事件用红色框围起来,其所属的帧比正常帧大。我们可以看到,异常事件通常对应于异常分数的提高。随着数据集复杂度的增加(Ped2 < Avenue < ShanghaiTech),正常事件和异常事件的分离难度大大增加。具体而言,在图7 (a)中,我们可以清楚地看到MAAM-Net可以成功地分离正常和异常事件。当场景中出现自行车或汽车时,异常得分显著提高。异常标记与预测结果完全一致,表明了我们提出的MAAMNet的有效性。在图7 (b)中,正常事件与异常事件的边界也足够清晰。异常事件的出现(一个人扔了一个包,一个人走错了方向)会导致高异常得分。与Ped2数据集相比,Avenue数据集更加复杂,异常得分曲线出现波动,这给选择合适的阈值带来了一些困难。在图7 ©中,由于上海科技数据集中的场景差异,曲线变得更加波动。结果表明,该方法检测到的异常在地真时间序列中定位良好。
4.7.2. 测试框架定性分析
图8绘制了部分测试样本。我们可以看到,外观和运动分支的融合结果确实改善了局部响应,扩大了每个样本的正常和异常区域的差异,同时抑制了正常样本的响应。如上一列所示,红、绿、黄三色掩模分别代表预测异常区、地真异常区以及它们的重叠区域,可以看出我们的方法很好地定位了异常事件的空间位置。这表明MAAM-Net能够在不附加边界框注释的情况下定位特定的异常区域。
4.7.3. 故障案例
在异常检测的无监督学习设置下,由于训练过程中缺少异常事件,模型容易对硬阳性样本进行误分类。图9显示了几个失败的例子,其中一些测试样本由于人类行为的复杂性和与监控摄像机的距离而被错误分类。然而,要明确区分硬的正面例子和真正的负面例子,可能需要更强有力的监督。
五、结论
在本文中,我们提出了一种用于视频异常检测的记忆增强外观情感网络(MAAM-Net),它受益于一种新颖的端到端记忆增强网络,用于学习给定输入帧的外观和运动特征,设计良好的基于边缘的潜在损失,以及一种基于点补丁的跨步卷积检测(PSCD)算法。将记忆模块创造性地嵌入到外观-运动基网络中,通过使用前者的特征表示来重新整合后者,从而区分正常和异常事件。基于边际的潜在损失迫使存储模块选择一个稀疏的关键项集进行重新整合,进一步降低了计算成本。PSCD算法侧重于错误映射的补丁级响应而不是帧级响应,明确地利用了异常事件的特征,提高了检测精度。在三个基准上的实验表明,与最先进的方法相比,所提出的MAAM-Net的有效性和效率。
本文提出的PSCD算法对提高异常检测精度具有重要价值。降低远程异常区域可能产生的虚警。然而,它在多场景异常数据集中表现较弱,因为选择合适的补丁大小很困难,从而降低了性能。因此,我们计划在未来的工作中调整补丁选择机制,以适应多场景异常检测的需要。