中文标题:MULDE:通过去噪得分匹配进行多尺度对数密度估计以用于视频异常检测
发布于:CVPR2024
论文链接:https://arxiv.org/abs/2403.14497
Abstract
我们提出了一种新颖的视频异常检测方法:
将从视频中提取的特征向量视为具有固定分布的随机变量的实现,并使用神经网络对该分布进行建模。这使我们能够估计测试视频的似然性,并通过对似然估计进行阈值处理来检测视频异常。
我们使用一种改进的去噪得分匹配方法来训练我们的视频异常检测器,该方法向训练数据中注入噪声以促进对其分布的建模。
为了消除超参数选择,我们对不同噪声水平下的含噪视频特征分布进行建模,并引入一个正则化项,使不同噪声水平的模型趋于对齐。
在测试时,我们使用高斯混合模型将多个噪声尺度下的异常指示进行组合。运行我们的视频异常检测器所引起的延迟极小,因为推理过程仅需提取特征并通过一个浅层神经网络和一个高斯混合模型进行前向传播。
我们在五个流行的视频异常检测基准上的实验表明,无论是在以对象为中心还是以帧为中心的设置下,都具有最先进的性能。
1. Introduction
视频异常检测(VAD)的目标是检测视频中偏离正常模式的事件。VAD在医疗保健、安全和交通监控等领域有众多潜在应用。它可用于检测诸如人员跌倒、工作场所或交通事故等事件,并有望大幅缩短对由此引发的紧急情况做出响应所需的时间。异常检测的主要挑战源于这样一个事实,即与视频动作识别中的动作类别不同,异常并不构成一组连贯的模式,而且通常无法预先预测。因此,在许多应用中,异常训练数据不可用,这就需要所谓的单类分类方法,即系统仅使用正常数据进行训练。
传统的单类视频异常检测方法依赖于在辅助自监督任务中训练深度网络,例如对帧序列进行自动编码[10 - 13, 16, 31]、预测未来帧[23, 30]、修复时空体积[10]以及解决拼图问题[2, 42]。其基本假设是,对于与训练集有足够差异(即包含异常)的视频,网络应该无法完成自监督任务。然而,数据的正常或异常与网络性能之间的关系仍不明确。深度网络可以在其训练集之外进行泛化,并且不能保证异常会使它们无法完成任务。
我们的动机是为视频异常检测奠定更坚实的基础。为此,我们将从视频中提取的特征向量视为具有固定分布的随机变量的实现,并试图用神经网络近似其概率密度函数。这种近似将使我们能够采用一种有原则且直观的方法来检测异常:由于异常数据在正常数据的统计模型下具有较低的似然性,因此可以通过对近似密度函数进行阈值处理来检测异常。
训练神经网络直接近似训练数据的概率密度函数是非常具有挑战性的。然而,Vincent [41]表明,向数据中注入零中心、独立同分布的高斯噪声会使对含噪数据
的分布进行建模变得更容易。对于足够低的噪声水平,
保留了
的形状,这使其成为我们异常指标的合适基础。Vincent的贡献在于提出了去噪得分匹配,这是一种训练神经网络以近似
(即含噪数据密度函数的负对数梯度)的方法,该方法成为了最近一类生成模型[38]的核心算法。我们修改此方法以训练一个神经异常指标,该指标在相差一个常数的情况下近似对数密度
,由于其与
的一一对应关系,非常适合用于指示异常。我们的方法如图1所示。
图1. MULDE使用神经网络f (·, σ)在多个噪声水平σ下近似含噪正常视频特征的负对数密度。在多个噪声水平下估计的对数似然通过高斯混合模型(GMM)组合成单个异常分数。MULDE可以通过以对象为中心或以帧为中心的方式进行训练以检测视频异常。在以对象为中心的方法中,使用对象检测器(OD)检测对象,然后将其输入到特征提取器(FE)。在以帧为中心的方法中,特征提取器应用于整个帧的短序列。
如上文所述,我们的方法在其基本形式下需要选择注入数据的噪声的标准差σ(也称为噪声尺度)。这种选择是在使q在σ较小时更接近p和在较大噪声水平下扩展q的支撑以覆盖更多可能的异常之间进行权衡。为了避免这种不受欢迎的权衡,我们不采用单一的σ,而是使用神经网络f (·, σ)对一系列噪声尺度的对数密度进行近似,并引入一个正则化项,使不同尺度的近似值趋于对齐。在测试时,我们计算一系列噪声尺度下的异常指标,并使用拟合正常数据的高斯混合模型将它们组合成单个异常分数。我们的实验表明,经过正则化的多尺度对数密度近似方法MULDE是一种非常有效的视频异常检测器。
总之,本文的主要贡献是一种从视频特征中检测异常的新颖方法,通过神经网络近似其对数密度函数。从技术上讲,我们提出了一种对多尺度去噪得分匹配的改进方法用于训练异常指标,以及一种新的正则化此训练的方法。我们的异常检测器简单、数学上合理且在测试时速度快,因为推理仅需提取特征并通过神经网络和高斯混合模型进行前向传播。此外,它对输入所使用的特征向量不敏感。我们在Ped2 [28]、Avenue [25]、ShanghaiTech [26]、UCFCrime [39]和UBnormal [1]数据集上的实验表明,无论是在以对象为中心(从检测到的对象的边界框中提取特征)还是在以帧为中心(为整个帧计算特征)的设置下,在异常检测方面都具有最先进的性能。
2. Related Work
视频异常检测(VAD)在多种设置下被研究:作为单类分类问题,即没有异常数据可用于训练[4 - 6, 8, 9, 13, 14, 25, 26, 30, 31, 35, 43, 45 - 48];作为无监督学习任务,其中训练集中存在异常,但不知道哪些训练视频包含异常[48];以及作为有监督或弱监督问题,其中训练标签分别指示异常视频帧或包含异常的视频[1, 39, 48]。我们处理这些设置中的第一种情况——我们假设训练集仅限于正常视频。
现有的视频异常检测(VAD)方法可以这样分类:如果它们基于从整个帧或其序列计算出的特征进行操作,则可归类为帧中心方法[1, 39, 43, 45, 48];如果它们通常使用预训练的特征提取器来估计每一帧中每个边界框的异常性,则为对象中心方法[2, 9 - 11, 16, 35, 42]。帧中心设计更适用于全局事件,如火灾或烟雾,而对象中心设计则侧重于与人员或物体相关的异常,如人员跌倒或车辆事故。在第4节中,我们将展示我们的方法使用这两种类型的特征都能够达到最先进的性能。
视频异常检测(VAD)的主要方法是训练一个深度网络对正常视频进行自动编码,并将重建误差用作异常指标[4, 8, 13, 26, 30, 31, 46, 47]。使用在正常数据上预训练的模型的误差来检测异常的想法从自动编码扩展到了许多其他任务,包括预测未来帧或光流[8, 22, 23, 30, 47]、修复时空体积[10]以及解决拼图问题[2, 42]。这种总体方法基于这样一个假设:异常帧的误差高于正常帧的误差。然而,不能确定这个假设一定成立:目前还不太清楚在什么条件下神经网络会无法完成其任务,也不能保证所有异常都会使它失败。相比之下,MULDE的运行并不基于启发式假设。
通过对正常视频特征的分布进行建模来检测视频异常这一思路在文献中屡见不鲜,但迄今为止,有效的建模技术仍然难以捉摸。一些方法,如高斯混合模型[35]、单类支持向量机[5, 6, 25]或多线性分类器[43],可能缺乏反映视频特征复杂且高维分布所需的表达能力。通过对抗训练的模型[11, 21]具备较高的表达能力,但无法保证能完全捕捉分布情况,因为在训练过程中,特征空间的某些部分可能未被生成器 - 判别器这一对模型探索到。扩散模型能够捕捉数据分布,但其在视频异常检测(VAD)中的应用在于生成正常帧[45]或人体姿态[9]的样本,并将观测到的帧或姿态与生成的进行比较。这需要多个扩散步骤,且将异常度量简化为观测值与样本之间的距离。归一化流最近被用于检测人体姿态特征中的异常[14],由于其能明确地近似训练数据的似然性,所以不存在上述缺点。然而,当特征之间存在复杂相关性时,其性能会下降。与这些方法相比,MULDE融合了视频异常检测方法的所有关键要素:具备高表达能力、能够完全捕捉分布情况以及可以适应任意特征。
MULDE用于对正常数据分布进行建模的对数密度近似函数f,通常被称作“能量”,这是参照基于能量的模型[20]而言的。基于能量的模型以玻尔兹曼形式来表示概率分布,但由于计算归一化常数Z通常是不可行的,所以将模型限定于能量函数f。因此,MULDE可被视作一种基于能量的模型。 为了训练f,MULDE依赖于对去噪得分匹配[41]的一种改进方法。去噪得分匹配是一种训练神经网络以近似能量梯度的方法,它对注入独立同分布高斯噪声的训练数据的分布进行建模,Song和Ermon[38]将其扩展到了多个噪声水平。Mahmood等人[29]利用这种多级能量梯度近似的范数来检测图像中的异常。 然而,梯度能指示对数密度函数的所有驻点,这些驻点既可能出现在分布的众数(正常数据集中的地方)处,也可能出现在低密度区域(异常数据可能所在之处)。如图2所示,即使跨越一系列噪声尺度,该分布的一些极小值和极大值仍然难以区分。相比之下,MULDE近似的是对数密度函数,与它的梯度不同,对数密度函数是一个很好的异常指标。
图2. 对数密度函数非常适合用于指示异常情况,但其梯度却并非如此。(左图:)来自4个高斯分布混合的一个样本。(右图:)学习到的负对数密度近似值(左列)及其梯度的范数(右列)。负对数密度是一个很好的异常指标,对于正常数据取值较低,对于异常数据取值较高。相比之下,对数梯度范数不仅在分布的众数处较低,而且在众数之间的极小值处也较低,这使得某些异常数据与正常数据无法区分开来。
3. Method
我们在从视频中提取的语义特征空间内进行异常检测。这使我们能够专注于检测语义异常,例如,涉及在正常情况下也能观察到的物体的不寻常行为,与之相对的是原始输入空间中的异常,比如与真实视频并不相似的帧序列。我们将特征提取工作委托给现成的模型,然后专注于有效检测这些模型所编码的异常事件。
动机
直观地讲,在“正常”条件下不应出现异常的视频特征。更正式地说,在假定的无异常视频特征的统计模型下,异常特征的特点是其具有较小的似然性。这就引出了一种通过近似概率密度函数p来检测异常的方法,即只需将概率足够低的测试特征判定为异常特征即可。我们采用了这种方法,并使用神经网络对概率密度进行建模。
概述
在实际操作中,训练神经网络直接近似其训练数据的概率密度p是很困难的。然而,向数据中注入噪声会使这种近似变得可行,我们将在下文对此进行解释。含噪数据的分布形式为: (1)
其中表示在给定无噪声样本x的情况下,含噪样本
的条件分布,我们将其视作以x为中心的独立同分布高斯分布。 我们的异常检测器背后的主要思路是,q保留了p的形状,但与之不同的是,q便于进行神经网络近似。具体而言,我们在相差一个常数的情况下近似负对数密度函数
,由于它与
存在一一对应关系,所以它是一个绝佳的异常指标。
的低值对应着高概率密度,这是正常数据的特征;其高值则表明可能存在异常数据的低概率密度区域。图2通过一个合成示例对此进行了阐释。 我们使用神经网络来近似对数密度的技术是对得分匹配[41]的一种改进,得分匹配是一种近似对数密度梯度的方法。
我们将在第3.1节介绍得分匹配,并在第3.2节介绍我们的训练方法。在第3.3节和第3.4节中,我们会将该方法扩展至对注入不同噪声尺度下的负对数密度进行近似,并引入一个旨在便于整合多尺度近似结果的正则化项。我们会在第3.节5讨论视频特征的选择问题。我们的方法示意图如图1所示。
3.1. 背景:去噪得分匹配
Vincent[41]提出了一种训练神经网络\(s\)(以向量\(\theta\)为参数)的方法,用于近似受独立同分布高斯噪声干扰的数据的负对数密度函数的梯度,其求解思路在于最小化: \[ \underset{\theta}{\min} \mathbb{E}_{\tilde{x}\sim q(\tilde{x})} \left\lVert s_{\theta}(\tilde{x}) + \nabla_{\tilde{x}} \log q(\tilde{x}) \right\rVert_{2}^{2} \quad (2) \] 这种梯度近似构成了一系列生成模型[38]的基础,这些生成模型先用噪声初始化一个样本,然后利用对数梯度近似将样本驱动至接近分布的众数位置。我们将展示,它同样能够实现对视频异常的有效检测。
由于无法通过解析的方式得知\(q(\tilde{x})\),所以直接对目标(2)进行求值是不可能的,但文森特(Vincent)[41]指出,(2)在相差一个常数的情况下等价于:
而(3)是可以有效求值的。这就引出了一种用于训练\(s\)的随机算法,其迭代过程如下:收集一批无噪声的训练数据\(x\),用高斯噪声对其进行干扰以获得一批含噪数据\(\tilde{x}\),然后针对该批次数据,依据等式(3)中的期望进行梯度步长更新。由于这一过程类似于训练\(s\)来预测注入到\(x\)中的噪声,所以它常被称作去噪得分匹配。
3.2. 通过去噪得分匹配进行异常检测
我们对去噪得分匹配的表达式进行了修改,以训练一个神经网络\(f_{\theta}\)(其中\(\theta\)表示参数向量)来近似\(-\log q(\tilde{x})\),而非其梯度。为此,我们改变目标(3),去训练\(f\)的梯度,而非网络本身,由此得到: \[ \underset{\theta}{\min} \mathbb{E}_{x \sim p(x), \tilde{x} \sim N(\tilde{x}|x, \sigma I)} \left\lVert \nabla_{\tilde{x}} f_{\theta}(\tilde{x}) - \frac{\tilde{x} - x}{\sigma^{2}} \right\rVert_{2}^{2} \quad (4) \] 这使得\(\nabla_{\tilde{x}} f_{\theta}(\tilde{x})\)近似于\(-\nabla_{\tilde{x}} \log q(\tilde{x})\),并且根据微积分基本定理,使\(f\)与\(-\log q(\tilde{x})\)在相差一个常数的情况下达成一致。在此,\(f: \mathbb{R}^{d} \to \mathbb{R}\)是一个从视频特征空间到标量对数密度值的映射,而\(\nabla_{\tilde{x}} f_{\theta}: \mathbb{R}^{d} \to \mathbb{R}^{d}\),就像标准得分匹配表达式(3)中的\(s\)一样,将\(d\)维视频特征映射为\(d\)维的对数密度梯度向量。
值得注意的是,即便目标是近似对数密度的梯度(而非对数密度本身),我们的表达式相对于标准去噪得分匹配仍具有优势。根据斯托克斯定理,梯度构成保守(即无旋)向量场。像标准方法那样直接用神经网络近似对数密度梯度,可能会导致得到的向量场并非保守的,换句话说,它并不代表任何函数的梯度。相比之下,使用我们的表达式训练的神经网络的梯度能够保证构成保守向量场。 不利的一面是,用我们的损失函数训练\(f_{\theta}\)要求网络是二阶可微的,这就排除了使用修正线性单元(ReLU)、其他几种非线性函数以及最大池化的可能性。
3.3. 跨噪声尺度的分布建模
我们回顾一下,使用损失函数(4)进行训练会使\(f_{\theta}\)近似含噪数据\(q(\tilde{x})\)分布的负对数密度,而含噪数据分布\(q(\tilde{x})\)通过噪声分布\(\rho(\tilde{x}|x)\)与无噪数据分布\(p(x)\)相关联。\(\rho\)是以\(x\)为中心且标准差为\(\sigma\)的独立同分布高斯分布。\(\sigma\)的选择(称为噪声尺度)是在使\(q\)在小噪声尺度下更接近\(p\)以及在较大噪声水平下扩展其支撑以覆盖更多异常这两者之间进行权衡。理论上,可以通过在正常数据和异常数据的组合上进行交叉验证来选择最优噪声尺度,但在实际操作中,异常验证数据通常很难获取。因此,我们不局限于单一的噪声尺度,而是对一系列噪声尺度下的对数密度进行近似,并通过用高斯混合模型对不同尺度下的估计值的联合分布进行建模,从而将这些不同尺度下的估计值结合起来。
为了实现多尺度对数密度近似,我们从宋(Song)和埃尔蒙(Ermon)[38]那里获得了灵感,他们将等式(3)中呈现的原始得分匹配表达式扩展到了多个噪声尺度,我们对目标(4)也应用了类似的扩展。我们不是针对固定的\(\sigma\)去近似\(-\log q(\tilde{x})\),而是用一个以\(\sigma\)为条件的神经网络\(f_{\theta}\)去近似一族由\(\sigma\)参数化的函数\(-\log q_{\sigma}(\tilde{x})\)。 我们发现在训练\(f_{\theta}\)时,着重关注较小的\(\sigma\)值是有益的。因此,我们从区间\([\sigma_{low},\sigma_{high}]\)上的对数均匀分布中对\(\sigma\)进行采样,并最小化:
其中\(\lambda(\sigma)\)是一个平衡不同噪声水平下损失项影响的因子。我们设定\(\lambda(\sigma)=\sigma^{2}\)。
一旦网络完成训练,我们会针对一系列均匀间隔的噪声水平\(\{\sigma_{i}\}_{i = 1}^{L}\)(其中\(\sigma_{1}=\sigma_{low}\)且\(\sigma_{L}=\sigma_{high}\)),将一个高斯混合模型拟合到多尺度对数密度近似向量\([f_{\theta}(x, \sigma_{i})]_{i = 1}^{L}\)上。在测试阶段,我们的神经网络接收一个视频特征向量,并生成一个多尺度的对数密度近似向量,然后将该向量输入到高斯混合模型中,进而得出最终的异常分数。
3.4多尺度训练正则化
我们方法的局限性在于,$f_{\theta}(\cdot, \sigma)$ 只能被训练到在一个常数范围内近似 $-log q_{\sigma}(\tilde{x})$。也就是说,$f_{\theta}(\tilde{x}, \sigma)$ 实际上近似于 $-log q_{\sigma}(\tilde{x}) + C_{\sigma}$,其中 $C_{\sigma}$ 是一个我们不知道的常数。在我们的公式中,不能保证这个常数在 $\sigma$ 的取值范围内不会改变。由于 $c_{0}$ 的变化可能会使在不同尺度上聚合估计值变得更加困难,我们通过使用一个正则化项 $f_{\theta}(x, \sigma)^{2}1$ 来抑制它,该项对无噪声样本的对数密度进行惩罚。因此我们完整的训练目标变为:
其中 $\beta$ 是我们方法的一个超参数。最小化式(6)不再使 $\nabla_{x} \dot{j}_{\theta}$ 是分布对数梯度的无偏估计,但正如我们的消融研究所示,它提高了我们在视频异常检测中的结果。算法1总结了对数密度近似 $f_{\theta}$ 的训练过程。高斯混合模型采用标准的期望最大化算法进行拟合。
3.5视频特征的选择
特征选择与目标异常的类型密切相关。例如,人体姿态特征非常适合用于检测跌倒,而基于光流的特征有助于检测以异常速度移动或沿异常方向移动的物体。MULDE对特征是无感知的,并且在第4节中我们展示了它在姿态、速度和深度特征上的应用,这些特征是从目标提议的边界框中提取的,以及从整个帧及其序列中提取的。如第4节所述,特征提取在我们方法的运行时间中占主导地位,这使得能够选择特征提取器以匹配所需的帧率。
4. Experimental Evaluation
表1. 以对象为中心的结果。帧级AUC - ROC(%)比较(最佳标记为粗体,次佳标记为下划线)。*由我们实现
表2. 以帧为中心的结果。帧级AUC - ROC(%)比较(最佳标记为粗体,次佳标记为下划线)。*由我们实现
消融实验
消融研究 为了验证MULDE的设计,我们进行了消融研究,并评估了我们的正则化项、高斯混合模型以及异常指示器的架构对性能的贡献。
如表3所示,就微观分数而言,正则化提高了以帧为中心的视频异常检测(VAD)的结果,尽管对于不同的数据集,正则化因子β的不同值是最优的。我们取$\beta = 0.1$作为三个数据集性能之间的一种折衷。图3展示了有正则化和无正则化的MULDE进行异常检测的定性示例,表明正则化模型能产生更强的异常指示。
表3. 使用不同正则化参数β值训练的MULDE以帧为中心的性能。帧级AUCROC(%)比较(最佳标记为粗体,次佳标记为下划线)
如3.3节所述,MULDE将在一系列噪声尺度上计算出的异常指示与拟合正常数据的高斯混合模型相结合。这使我们在测试时无需选择要使用的噪声尺度。图4展示了混合模型对性能的影响。它展示了在没有混合模型的情况下,我们的异常指示器$f_{\theta}(\cdot, \sigma)$在各个噪声尺度上获得的微观分数。在中等噪声水平下可获得最佳性能,这表明在较低噪声尺度下更准确地表示无噪声分布和在较高噪声尺度下更好地覆盖远离训练样本的空间之间存在权衡。使用混合模型获得的性能略优于使用最优噪声尺度获得的性能,这验证了高斯混合模型(GMM)是一种避免调整噪声水平的方法。
图4. 在上海科技数据集上以帧为中心的视频异常检测(VAD)中,MULDE在没有高斯混合模型的情况下的性能,以及我们的异常指示器在单个噪声尺度上计算的性能(蓝色曲线),还有具有1、3和5个组件的混合模型下的性能。
为了找到我们的异常指示器$f_{\theta}$的最优架构,我们对隐藏层的数量以及每个隐藏层中的神经元数量进行了消融研究。表4中呈现的结果表明,最优的是两个隐藏层的深度以及4096个神经元的宽度,这也是我们在实验中所采用的。
表4. MULDE在上海科技数据集上以帧为中心的视频异常检测(VAD)中架构变化的性能。单位表示隐藏层内的神经元数量。列对应隐藏层的数量。帧级AUC - ROC(%)比较(最佳标记为粗体,次佳标记为下划线)
5. Discussion
局限性
我们的方法有两个主要局限性。首先,我们的视频异常检测器要求异常视频和正常视频的特征能够区分。直观地说,当视频特征提取器选择得当,这个条件应该能够满足,但并没有理论上的保证实际情况确实如此。其次,尽管我们的方法消除了选择用于训练的噪声尺度的需要,但所采用的噪声尺度范围应该足够大,以涵盖在测试时可能出现的异常。目前,没有自动的方法来选择噪声范围的上限。我们通过对特征进行逐分量标准化,并使用一个固定的、较宽的噪声尺度范围来规避这个限制。
未来工作
我们计划通过探索视频异常指示器的架构来扩展这项工作。特别是,根据重建误差[10 - 13, 16, 31]重新构建异常指示器,为将先前的方法整合到我们的方法中提供了一个独特的机会。
我们的方法在训练过程中使用高斯噪声,但其他形式的噪声可能更有效地表示异常。例如,模拟视频中的随机运动模式可能有助于检测沿异常轨迹移动或具有异常速度的物体。
最后,我们计划将MULDE从单类分类场景扩展到(弱)监督场景。
结论
我们提出了一种通过神经网络对非异常视频特征的分布进行建模来检测视频异常的新方法。我们的方法速度快,在以帧为中心和以对象为中心的视频异常检测(VAD)中都达到了最先进的性能。最重要的是,它有坚实的统计建模基础。我们根据正常数据分布下的概率密度来定义异常,并设计了MULDE来近似对数密度函数。这使我们能够从统计学角度讨论我们的方法。例如,当我们的异常指示器未能将视频分类为异常时,我们知道其对数密度近似不够好。然后我们可以计划采取行动来纠正这一点,例如,通过改变神经网络架构、获取更多训练数据或修改噪声范围。相比之下,当以前的方法失败时(例如,对于异常项目显示出较小的重建误差),应该采取什么行动可能并不明显。
评价:没看懂