MIST: Multiple Instance Self-Training Framework for Video Anomaly Detection 论文阅读
中文标题:MIST: 多实例自训练框架用于视频异常检测
文章信息:
发表于:CVPR 2021
原文链接:https://arxiv.org/abs/2104.01633
源码:https://github.com/fjchange/MIST_VAD
Abstract
弱监督视频异常检测(WS-VAD)旨在基于具有区分性的表示来区分异常事件和正常事件。大多数现有的工作在视频表示方面存在不足。在这项工作中,我们开发了一个多实例自训练框架(MIST),以仅基于视频级别注释有效地完善任务特定的区分性表示。具体而言,MIST由以下两部分组成:1)多实例伪标签生成器,该生成器采用稀疏连续抽样策略来生成更可靠的片段级伪标签;以及2)自引导注意力增强的特征编码器,旨在在提取任务特定表示时自动聚焦于帧中的异常区域。此外,我们采用了自训练方案来优化这两个组件,并最终获得了一个任务特定的特征编码器。在两个公共数据集上进行了大量实验,证明了我们方法的有效性,我们的方法表现与或甚至比现有的监督和弱监督方法更好,特别是在ShanghaiTech数据集上获得了94.83%的帧级AUC。
1. Introduction
视频异常检测(VAD)旨在在视频中时间上或空间上定位异常事件[37]。随着越来越多的监控摄像头的部署,VAD在智能监控系统中扮演着越来越重要的角色,以减少现场监控的手动工作。
尽管视频异常检测(VAD)已经研究多年,但开发一个能够检测视频中异常事件的模型仍然具有挑战性,因为这需要模型理解正常和异常事件之间的固有差异,尤其是那些罕见且变化巨大的异常事件。先前的工作将VAD视为无监督学习任务[33, 16, 7, 17, 15, 5, 36],它使用仅有正常训练样本编码常规模式,然后检测作为异常的独特编码模式。在这里,我们旨在解决弱监督视频异常检测(WS-VAD)问题[23, 35, 32, 38, 27],因为获取视频级别的标签比无监督方法更现实,并且可以产生更可靠的结果。更具体地说,WS-VAD中的现有方法可以分为两类,即无关编码器和基于编码器的方法。
无关编码器的方法[23, 32, 27]利用从一个简单特征编码器(例如C3D [24]或I3D [2])提取的视频的任务无关特征来估计异常得分。基于编码器的方法[38, 35]同时训练特征编码器和分类器。最先进的基于编码器的方法是Zhong等人[35],它将WS-VAD建模为一个标签噪声学习问题,并从通过标签噪声清洁器网络过滤的嘈杂标签中学习。然而,标签噪声是由将视频级标签分配给每个片段导致的。尽管清除网络通过耗时的迭代优化修正了一些嘈杂的标签,但由于这些模型在开始时受到严重嘈杂的伪标签的错误教导,表示的细化进展缓慢。
我们发现现有的方法并没有有效地考虑训练一个针对任务的特征编码器,该编码器为监控摄像头下的事件提供有区分度的表示。为了解决WS-VAD的这个问题,我们开发了一个两阶段的自训练过程(图1),旨在仅使用视频级弱标签训练一个针对任务的特征编码器。具体来说,我们提出了一个多实例自训练框架(MIST),包括一个多实例伪标签生成器和一个自引导注意力增强的特征编码器ESGA。1) 多实例伪标签生成器。多实例学习(MIL)框架在弱监督学习中得到了很好的验证。基于MIL的方法可以比简单地将视频级标签分配给每个片段的方法更准确地生成伪标签。此外,我们采用了一种稀疏连续抽样策略,可以强制网络更多地关注最异常部分周围的上下文。2) 自引导注意力增强的特征编码器。监控视频中的异常事件可能发生在任何地方且大小不一[13],而在常用的动作识别视频中,动作通常伴随着大的运动[3, 4]。因此,我们在提出的特征编码器中利用了自引导注意力模块来强调异常区域,而无需任何外部注释,但需要正常视频的片段级注释和异常视频的片段级伪标签[13]。对于我们的WS-VAD建模,我们引入了一个深度多实例排序损失来有效训练多实例伪标签生成器。具体来说,对于深度多实例排序损失,我们采用了稀疏连续抽样策略,以更多地关注异常实例周围的上下文。
为了获得一个具有较小领域差距的任务特定特征编码器,我们引入了一个高效的两阶段自训练方案来优化提出的框架。我们使用从原始特征编码器提取的特征来通过生成器G产生其相应的异常视频的片段级伪标签。然后,我们采用这些伪标签以及它们对应的异常视频和正常视频来改进我们的改进特征编码器ESGA(如图1所示)。因此,我们可以获得一个为监控视频提供有区分度表示的任务特定特征编码器。
图1:我们提出的MIST首先通过伪标签生成器G为异常视频分配片段级伪标签 Y ^ a = y ^ i a \hat{Y}^a = {\hat{y}^a_i} Y^a=y^ia。然后,MIST利用所有视频的信息来改进自引导注意力增强的特征编码器ESGA。
基于两种不同的特征编码器,即C3D [24]和I3D [2],进行了大量实验,结果显示我们的框架MIST能够生成一个任务特定的特征编码器。我们还将提出的框架与其他无关编码器的方法在两个大型数据集上进行了比较,即UCF-Crime [23]和ShanghaiTech [17]。此外,我们进行了消融研究,评估了我们提出的稀疏连续抽样策略和自引导注意力模块。我们还展示了一些可视化结果,以提供对我们方法的更直观理解。我们的实验结果表明了MIST的有效性和效率。
2. Related Works
Weakly supervised video anomaly detection.检测给定视频中的异常事件已经被研究了很多年[9, 33, 16, 7, 17, 15, 14, 36, 35, 5, 27]。无监督学习方法[9, 33, 7, 34, 17, 15, 36, 5]仅使用正常训练样本编码常规模式,然后将独特的编码模式检测为异常。具有视频级标签的弱监督学习方法[23, 35, 32, 38, 27]更适用于区分异常事件和正常事件。现有的弱监督VAD方法可以分为两类,即无关编码器的方法和基于编码器的方法。1) 无关编码器的方法仅训练分类器。Sultani等人[23]提出了一个深度MIL排序框架来检测异常;Zhang等人[32]进一步引入了内部袋间得分差正则化;Wan等人[27]引入了动态MIL损失和中心引导正则化。2) 基于编码器的方法训练特征编码器和分类器。Zhu等人[38]提出了一种基于注意力的MIL模型,结合了基于光流的自动编码器来编码运动感知特征。Zhong等人[35]将弱监督VAD视为标签噪声学习任务,并提出了GCN来过滤标签噪声进行迭代模型训练,但迭代优化效率低且进展缓慢。一些工作侧重于以离线方式[26, 29]或粗粒度方式[23, 32, 38, 26, 29]检测异常,这不符合实时监控在现实应用中的要求。
在这里,我们的工作也是一种基于编码器的方法,以在线细粒度的方式工作,但我们使用学习到的伪标签来优化我们的特征编码器ESGA,而不是直接使用视频级标签作为伪标签。此外,我们设计了一个两阶段自训练方案来有效地优化我们的特征编码器和伪标签生成器,而不是采用迭代优化[35]。
Multiple Instance Learning.MIL是弱监督学习中的一种流行方法。在与视频相关的任务中,MIL将一个视频作为一个袋子,将视频中的片段作为实例[23, 19, 8]。通过具体的特征/分数聚合函数,可以使用视频级标签间接监督实例级学习。聚合函数有所不同,例如最大池化[23, 32, 38]和注意力池化[19, 8]。在本文中,我们采用了一种稀疏连续抽样策略来强制网络更多地关注最异常部分周围的上下文。
Self-training.自训练已经被广泛地研究应用于半监督学习[1, 12, 6, 31, 25, 39]。自训练方法通过在未标记数据上生成伪标签来增加标记数据,以利用标记和未标记数据的信息。近年来的深度自训练涉及特征编码器的表示学习和分类器的改进,主要应用于半监督学习[12]和领域自适应[40, 39]。在无监督的VAD中,Pang等人[20]引入了一个自训练框架,直接部署在测试视频上,假设给定视频中存在异常。
在这里,我们提出了一个多实例自训练框架,通过一个多实例伪标签生成器为异常视频中的所有片段分配片段级伪标签。然后,我们利用所有视频的信息来微调一个自引导注意力增强的特征编码器。
3. Approach
视频异常检测(VAD)依赖于能够清晰表示场景中事件的区分性表示,而动作识别数据集预训练的特征编码器不够完善,因为存在域差异[13, 3, 4]。为了解决这个问题,我们引入了一种自训练策略来优化提出的改进特征编码器
E
S
G
A
E_{SGA}
ESGA。我们方法的示意图如图2所示,下面详细介绍。
图2:我们提出的MIST框架的示意图。MIST包括一个多实例伪标签生成器 G G G和一个自引导注意力增强的特征编码器 E S G A E_{SGA} ESGA,后面是一个加权分类头 H c H_c Hc。我们首先训练 G G G,然后为 E S G A E_{SGA} ESGA微调生成伪标签。
3.1. Overview
给定一个视频 V = { v i } i = 1 N V = \{v_i\}_{i=1}^N V={vi}i=1N,其中 N N N 个剪辑,注释的视频级标签 Y ∈ { 1 , 0 } Y \in \{1, 0\} Y∈{1,0} 表示该视频中是否存在异常事件。我们将视频 V V V 视为一个袋子,其中视频中的剪辑 v i v_i vi视为实例。具体地,负袋子(即 Y = 0 )标记为 B n = { v i n } i = 1 N B_n = \{v_i^n\}_{i=1}^N Bn={vin}i=1N ,其中没有异常实例,而正袋子(即 Y = 1 Y = 1 Y=1)标记为 B a = { v i a } i = 1 N B_a = \{v^a_i\}_{i=1}^N Ba={via}i=1N,至少包含一个异常实例。
在这项工作中,给定一对袋子(即一个正袋子 B a B_a Ba 和一个负袋子 B n B_n Bn),我们首先使用预训练的基准特征编码器(例如C3D或I3D)为视频 V = { v i } i = 1 N V = \{v_i\}_{i=1}^N V={vi}i=1N 中的每个剪辑提取特征(分别为正袋子 B a B_a Ba) 和负袋子 B n B_n Bn的特征集合 { f i a } i = 1 N \{f^a_i\}_{i=1}^N {fia}i=1N 和 { f i n } i = 1 N \{f^n_i\}_{i=1}^N {fin}i=1N)。然后,我们将提取的特征馈送给伪标签生成器,以估计剪辑的异常得分(分别为 { s i a } i = 1 N \{s^a_i\}_{i=1}^N {sia}i=1N 和 { s i n } i = 1 N \{s^n_i\}_{i=1}^N {sin}i=1N)。接下来,我们通过对估计得分进行平滑和归一化,生成异常视频的伪标签 Y ^ a = { y ^ i a } i = 1 N \hat{Y}^a = \{\hat{y}_i^a\}_{i=1}^N Y^a={y^ia}i=1N,以监督所提出的自引导注意力增强的特征编码器的学习,形成了一个两阶段的自训练方案[12, 40, 39]。
如图2所示,我们提出的特征编码器 E S G A E_{SGA} ESGA是从基准特征编码器E(例如,I3D或C3D)中改进而来,通过添加我们提出的自引导注意力模块,可以通过估计的伪标签进行优化,消除域差异并产生任务特定的表示。实际上,我们提出的方法可以被视为一个两阶段的方法(见算法1):
1)我们首先通过伪标签生成器为只具有视频级标签的异常视频生成剪辑级伪标签,而伪标签生成器的参数则通过深度多实例排序损失进行更新。
2)在获得异常视频的剪辑级伪标签后,我们的特征编码器
E
S
G
A
E_{SGA}
ESGA可以在正常和异常视频数据上进行训练。
因此,我们形成了一个自训练方案,以优化特征编码器 E S G A E_{SGA} ESGA和伪标签生成器G的性能。图2中的示意图提供了我们提出的方法的概述。
为了更好地区分异常剪辑和正常剪辑,我们在特征编码器(即 E S G A E_{SGA} ESGA)中引入了一个自引导注意力模块,以捕获视频中的异常区域,帮助特征编码器产生更具有区分性的表示(见第3.3节)。此外,我们在伪标签生成器中引入了一种稀疏连续抽样策略,以强制网络更多地关注最异常部分周围的上下文(见第3.2节)。最后,我们引入了深度多实例排序损失来优化伪标签生成器的学习,并使用交叉熵损失来训练我们提出的特征编码器 E S G A E_{SGA} ESGA,由异常视频的伪标签和正常视频的剪辑级注释进行监督。
3.2. Pseudo Label Generation via Multiple Instance Learning
图 3:我们的多实例伪标签生成器的工作流程。每个包含
L
L
L 个子包,每个子包由
T
T
T 个连续的剪辑组成。
与[35]不同,后者简单地为每个剪辑分配视频级标签,然后在一开始训练基准特征编码器,我们引入了一个基于MLP的结构作为伪标签生成器,在MIL范式下进行训练以生成伪标签,这些伪标签在我们特征编码器
E
S
G
A
E_{SGA}
ESGA的优化过程中被利用。
尽管最近基于MIL的方法[23, 32]取得了相当大的进展,但是在粗粒度的方式下将视频分割成固定的片段的过程,无论其持续时间如何,都容易将异常模式作为通常构成大多数的正常帧而掩盖,甚至在异常视频中也是如此[27]。然而,通过以更细粒度的方式进行较小的时间尺度采样,网络可能会过分强调异常的最强烈部分,但忽略其周围的上下文。实际上,异常事件通常会持续一段时间。假设异常的最短持续时间,MIL网络被迫更多地关注异常部分周围的上下文。
此外,为了适应未修剪视频的持续时间变化和数量上的类别不平衡,我们引入了一种稀疏连续抽样策略:对于由基准特征编码器E从视频
{
f
i
}
i
=
1
N
\{\mathbf{f}_i\}_{i=1}^N
{fi}i=1N 中提取的每个剪辑的特征,我们从这些视频剪辑中均匀抽样
L
L
L个子集,每个子集包含
T
T
T个连续的剪辑,形成
L
L
L个子袋子
B
‾
=
{
f
l
,
t
}
l
=
1
,
t
=
1
L
,
T
\boldsymbol{\overline{\mathcal{B}}}=\{\mathbf{f}_{l,t}\}_{l\boldsymbol{=}1,t\boldsymbol{=}1}^{L,T}
B={fl,t}l=1,t=1L,T,如图3所示。值得注意的是,T是一个需要调整的超参数,同时也起到了异常最短持续时间的假设作用,正如前文所述。在这里,我们将MIL模型与我们的连续抽样策略相结合,如图3所示。我们将提取的特征馈送到我们的伪标签生成器中,以生成相应的异常得分
{
s
l
,
t
}
l
=
1
,
t
=
1
L
,
T
\{s_{l,t}\}_{l=1,t=1}^{L,T}
{sl,t}l=1,t=1L,T。接下来,我们对每个子袋子得分的预测实例级分数
s
l
,
t
s_{l,t}
sl,t 进行平均池化,形成
S
l
\mathcal{S}_l
Sl,该分数可以在等式 7 中使用。
训练完成后,经过训练的多实例伪标签生成器为所有标记为异常的视频预测剪辑级得分,表示为 S a = { s i a } i = 1 N S^a = \{s^a_i\}_{i=1}^N Sa={sia}i=1N。通过使用移动平均滤波器执行时间平滑,以减轻具有核大小 k k k 的异常分数的抖动。
以及最小-最大归一化,
我们将异常分数细化为
Y
^
=
{
y
^
i
a
}
i
=
1
N
\hat{Y} = \{\hat{y}_i^a\}_{i=1}^N
Y^={y^ia}i=1N。具体地,
y
^
i
a
\hat{y}_i^a
y^ia 在 [0, 1] 范围内,并充当软伪标签。然后,伪标记数据
{
V
a
,
Y
^
a
}
\{V^a, \hat{Y}^a\}
{Va,Y^a} 与剪辑级别标记数据
{
V
n
,
Y
n
}
\{V^n, Y^n\}
{Vn,Yn} 结合为
{
V
,
Y
}
\{V, Y\}
{V,Y},以对所提出的特征编码器
E
S
G
A
E_{SGA}
ESGA 进行微调。
3.3. Self-Guided Attention in Feature Encoder
与仅为下游任务提供任务不可知表示的基准特征编码器 E 相反,我们提出了一个从 E 改进而来的自引导注意力增强特征编码器 E S G A E_{SGA} ESGA,通过伪标签监督优化注意力图生成,以增强任务特定表示的学习。
正如图4所示,自引导注意力模块(SGA)将特征图
M
b
−
4
\mathcal{M}_{b−4}
Mb−4和
M
b
−
5
\mathcal{M}_{b−5}
Mb−5作为输入,这些特征图分别由基准特征编码器E的第4和第5个块产生。SGA包括三个编码单元,即
F
1
\mathcal{F}1
F1、
F
2
\mathcal{F}2
F2和
F
3
\mathcal{F}3
F3,它们都由卷积层构建。
M
b
−
4
\mathcal{M}_{b−4}
Mb−4被编码为
M
b
−
4
∗
\mathcal{M}^∗_{b−4}
Mb−4∗,然后应用于注意力图
A
\mathcal{A}
A的生成,表示为
A
\mathcal{A}
A:
最后,我们通过以下注意力机制获得
M
A
\mathcal{M}_{\mathcal{A}}
MA:
其中,
∘
\circ
∘表示逐元素乘法,
M
A
\mathcal{M}_{\mathcal{A}}
MA通过加权分类头
H
c
H_c
Hc(一个全连接层)应用于最终异常分数的预测。
为了辅助注意力图的学习,我们引入了一个以伪标签为监督的引导分类头 H g H_g Hg。在 H g H_g Hg 中, F 3 \mathcal{F}_3 F3 将 M b − 4 ∗ \mathcal{M}^∗_{b−4} Mb−4∗转换为 M \mathcal{M} M。具体来说, M b − 4 ∗ \mathcal{M}^∗_{b−4} Mb−4∗ 和 M \mathcal{M} M 每个具有 2 K 2\mathcal{K} 2K 个通道,作为每个类别(即正常和异常)的 K K K 个多重检测器,以增强引导监督。然后,我们在 M \mathcal{M} M上进行时空平均池化,对 M \mathcal{M} M进行 K 通道-wise 的平均池化,并使用 Softmax 激活以获得每个类别的引导异常分数。
值得注意的是, E S G A E_{SGA} ESGA 中有两个分类头,即加权分类头 H c H_c Hc 和引导分类头 H g H_g Hg,它们分别通过 L 1 \mathcal{L}_1 L1 和 L 2 \mathcal{L}_2 L2 受伪标签监督。换句话说,我们使用伪标签来优化 E S G A E_{SGA} ESGA(见第 3.2 节)。因此,特征编码器 E S G A E_{SGA} ESGA 可以在视频异常数据集上更新其参数,并消除预训练参数中的域差异。
图 4:自引导注意力增强特征编码器 E S G A E_{SGA} ESGA 的结构。GAP 表示全局平均池化操作,而 Avg 表示在引导分类头 Hg 中生成引导异常分数时的 K 通道-wise 平均池化。A 是注意力图。F1、F2、F3 是由卷积层构建的三个编码单元。
3.4. Optimization Process
- Deep MIL Ranking Loss:考虑到正样本包含至少一个异常剪辑,我们假设来自正样本包的具有最高异常分数的剪辑最有可能是异常的[8]。为了适应我们在3.2节中的稀疏连续采样,我们将子包视为一个实例,并获得最有可能异常的子包与最有可能正常的子包之间可靠的相对比较:
具体而言,为了避免正样本包中出现太多的假阳性实例,我们在正样本包上引入了稀疏约束,将方程式6实例化为带有稀疏正则化的深度MIL排序损失:
其中, ( ⋅ ) + (·)_+ (⋅)+ 表示 m a x ( 0 , ⋅ ) max(0, ·) max(0,⋅),方程式7中的第一项确保 m a x 1 ≤ l ≤ L S l a max_{1≤l≤L} S^a_l max1≤l≤LSla 大于 m a x 1 ≤ l ≤ L S l n max_{1≤l≤L} S^n_l max1≤l≤LSln 一定的间隔 ϵ \epsilon ϵ。在本工作中, ϵ \epsilon ϵ 是一个超参数,取值为1。方程式7中的最后一项是稀疏正则化,表示只有少数子包可能包含异常,而 λ λ λ 是另一个用于平衡排序损失与稀疏正则化的超参数。
- Classification Loss:在方程式3中获得异常视频的伪标签后,我们得到训练对 { V a , Y ^ a } \{V_a, \hat{Y}_a\} {Va,Y^a},进一步与 { V n , Y n } \{V^n, Y^n\} {Vn,Yn} 结合来训练我们的特征编码器 E S G A E_{SGA} ESGA。为此,我们在 E S G A E_{SGA} ESGA 中的两个分类头( H c H_c Hc 和 H g H_g Hg)上应用交叉熵损失函数,即图4中的 L 1 \mathcal{L}_1 L1 和 L 2 \mathcal{L}_2 L2。
最后,我们使用 L 1 \mathcal{L}_1 L1 和 L 2 \mathcal{L}_2 L2的组合训练一个任务特定的特征编码器 E S G A E_{SGA} ESGA。在推断阶段,我们使用 E S G A E_{SGA} ESGA 通过加权分类头 H c H_c Hc 预测视频的剪辑级分数。
4. Experiments
4.1. Datasets and Metrics
我们在两个大型数据集上进行了实验,即UCF Crime[23]和ShanghaiTech[17],使用两个特征编码器,即C3D[24]或I3D[2]。
- UCF-Crime
- ShanghaiTech
Evaluation Metrics.我们遵循先前的研究[15, 13, 23, 27],计算帧级接收器操作特性(ROC)下面积(AUC)作为主要指标,其中较大的AUC表示更高的区分能力。我们还遵循[23, 27],通过异常视频的误报率(FAR)来评估鲁棒性。
4.2. Implementation Details
多实例伪标签生成器是一个三层的多层感知器(MLP),其中每层的单元数分别为512、32和1,每一层之间的dropout概率为0.6进行正则化。在第一层后采用ReLU函数,在最后一层后采用Sigmoid函数。在这里,我们采用超参数L = 32、T = 3和λ = 0.01,并使用学习率为0.01的Adagrad优化器来训练生成器。在微调阶段,我们采用学习率为1e−4、权重衰减为0.0005的Adam优化器,并训练300个epochs。有关实现的更多细节请参阅补充材料。
4.3. Comparisons with Related Methods
5. Conclusions
在这项工作中,我们提出了一个多实例自训练框架(MIST),以高效微调特定任务的特征编码器。我们在多实例伪标签生成器中采用了一种稀疏连续抽样策略,以产生更可靠的伪标签。借助估算的伪标签,我们提出的特征编码器通过自导引关注模块学习集中于帧中最可能的异常区域。最后,在经过两阶段的自训练过程后,我们训练了一个具有判别性表示的任务特征编码器,可以提升其他现有方法。值得注意的是,我们的MIST在两个公共数据集上取得了显著的改进。
阅读总结
先用多实例学习给每个clip打上伪标签,然后在使用分类器进行训练。是一个二阶段的训练方式。