AAAI2025
基于姿态的视频异常检测的双条件运动扩散方法
论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/32829
源码地址:https://github.com/guijiejie/DCMD-main
Abstract
视频异常检测(VAD)在计算机视觉研究中至关重要。现有的VAD方法主要基于重建或预测框架。前者擅长检测不规则的模式或结构,而后者则能够发现异常的偏差或趋势。我们致力于基于姿态的视频异常检测,并引入了一种名为双条件运动扩散(DCMD)的全新框架,该框架兼具两种方法的优势。DCMD将条件运动和条件嵌入相结合,分别全面利用观测到的运动的姿态特征和潜在语义。在反向扩散过程中,我们提出了一种运动变换器,用于从人体运动频谱空间的多层特征中捕捉潜在的相关性。为了增强正常和异常实例之间的可区分性,我们设计了一种新的联合关联差异(UAD)正则化方法,主要依赖基于高斯核的时间关联和基于自注意力的全局关联。最后,在反向扩散过程的推理阶段引入了掩码补全策略,以提高异常检测预测分支对条件运动的利用效率。在四个数据集上进行的大量实验表明,我们的方法显著优于现有最先进的方法,并展现出卓越的泛化性能。
Introduction
视频异常检测(VAD)是计算机视觉和安全应用领域的一个重要课题。与人类动作理解(2018年;2023年;2024年;2025年)不同,VAD能够快速识别异常事件,如人类异常行为、事故和疾病。异常通常被定义为不常见、意外或不寻常的现象,与正常情况存在显著偏差。相反,正常则被定义为预期内且经常遇到的情况。检测视频中的异常具有挑战性,因为这些事件发生频率低,并且种类繁多。数据标注既昂贵又耗时,这使得通过完全监督学习方法收集所有可能的异常样本变得不切实际。因此,异常检测问题通常被视为一类分类(OCC)问题(2020年)。在模型训练期间仅使用正常数据,而在测试期间,与正常模式偏差显著的数据会被识别为异常(2021年)。
通过分析从视频帧中提取的人体姿态来检测异常事件或行为的趋势日益增长(2023年),如图1所示。利用骨骼来描述视频中的人体运动是一种非常有效的保护隐私的方法,同时还能规避基于外观属性的局限性。除了保护隐私之外,骨骼特征紧凑、结构良好,并且能够高度概括人体运动(2019年)。
图1:视频异常检测示意图,其中正常实例为绿色,异常实例为红色。
现有的视频异常检测(VAD)工作主要分为基于重建的方法和基于预测的方法。基于重建的方法(2021年;2020年)首先将输入数据压缩为低维表示,然后从该表示中恢复原始数据。通过比较原始数据和恢复数据之间的重建误差,可以检测出数据中不规则模式或结构等异常情况。基于预测的方法(2017年)侧重于根据历史数据预测未来的帧或事件,当未来数据偏离预测趋势时,则表明存在异常。这些方法在对连续帧之间的时间连接进行建模和揭示方面很有效。然而,它们可能容易受到噪声的影响(2020年)。
最近,扩散模型在生成高质量样本方面取得了巨大成功(Ho、Jain和Abbeel,2020年)。扩散模型的突出能力之一是能够灵活处理广泛的输入条件,这些条件可以涵盖不同类型的数据,从而实现定制化的生成任务(Ho和Salimans,2021年)。由于人体运动固有的多模态性以及正常和异常模式的多样性,扩散模型自然非常适合对人体运动进行建模和检测异常。然而,简单地将扩散模型应用于视频异常检测(VAD),会受到基于重建或基于预测方法的固有局限性的影响。
为解决上述问题,我们提出了一个统一的框架,该框架将基于重建和基于预测的方法的优势无缝结合,用于基于姿态的视频异常检测。重建基于自动编码器架构,而预测则利用扩散模型。我们提出了一种新颖的双条件运动扩散(DCMD)方法,它将条件运动和条件嵌入无缝集成,能够同时利用观察到的运动的姿态特征和潜在语义。在反向扩散过程中,我们引入了一种运动变换器,专门用于从人体运动的多层频谱特征中提取潜在的相关性。除了重建损失和预测损失,我们还设计了一种联合关联差异(UAD)正则化方法,该方法利用基于高斯核的时间关联和基于自注意力的全局关联。此外,在推理阶段,我们采用掩码补全策略,以增强基于预测的异常检测中对条件运动的利用。在流行的与人体相关的异常检测数据集上进行的实验表明,与最先进的方法相比,我们提出的方法具有更优越的性能。
我们的主要贡献总结如下:
- 我们引入了一种新颖的框架,该框架无缝整合了基于重建和基于预测的视频异常检测方法,充分利用了这两种方法的优势。
- 我们提出了双条件运动扩散(DCMD)方法,在基于扩散的模型中同时融入了条件运动和条件嵌入。
- 我们提出了一种用于异常检测的运动变换器,并采用了一种新颖的正则化方法,该方法结合时间关联和全局关联,以提高对正常和异常实例的区分能力。
- 我们在扩散去噪过程中提出了一种掩码补全方法,在为异常检测预测未来运动时,能够更有效地利用观测到的运动。
Related Work
我们从基于重建、基于预测和基于姿态这三个方面总结先前关于视频异常检测(VAD)的研究工作。
基于重建的方法:基于重建的方法由两个部分组成:编码器和解码器。编码器将输入帧压缩成低维特征,而解码器则从这种压缩表示中重建输出。重建误差是区分正常事件和异常事件的一个标准。罗等人(2019年)引入了一种新颖的深度神经网络架构,该架构利用稀疏编码,加入一个时间相干项来保持相似帧之间的相似性,并采用堆叠循环神经网络来优化稀疏系数,以实现实时异常检测。李等人(2021年)提出了一种双流网络,旨在捕捉视频中典型事件的视觉和运动特征。为了对场景、物体以及运动信息进行编码,常等人(2020年)提出了一种新颖的深度k均值聚类卷积自编码器架构。也有一些方法使用卷积神经网络以外的架构。龚等人(2019年)引入了一种记忆增强型自动编码器,它可以通过在训练过程中记忆典型的正常数据元素来区分新的测试样本。多希等人(2022年)提出了一种两阶段方法,将深度学习与基于k近邻的循环神经网络相结合,以克服端到端模型中的遗忘问题,实现高效的持续学习。钟等人(2022b;2022c)设计了一种级联重建模型和时空自动编码器。
基于预测的方法:在基于预测的方法中,模型通常以一系列先前的帧作为输入来预测下一帧。与基于重建的方法相比,基于预测的方法在分析帧间时空模式方面更为有效。Liu等人(2017年)开创了基于预测的视频异常检测(VAD)方法,使用U-Net预测未来帧,并纳入运动约束以保证光流的一致性。Zhou等人(2020年)采用了类似的网络架构,并提出了一种注意力驱动的损失算法,以应对异常检测视频中前景目标与静态背景不平衡的挑战。Doshi等人(2021年)提出了一种在线异常检测方法,该方法由一个特征提取模块和一个统计决策模块组成。为兼顾时空特征,Lee等人(2018年)利用一个时空生成器,通过双向卷积长短期记忆网络(ConvLSTM)合成帧间图像。与Gong等人(2019年)中的记忆模块不同,Park等人(2020年)引入了一种新颖的记忆模块,用于捕捉正常的原型特征并涵盖更广泛的模式。也有双流方法分别学习时空正常模式。Chang等人(2022年)设计了一种双流模型,由基于深度K均值聚类的空间自动编码器和时间自动编码器组成。Hao等人(2022年)利用基于3D卷积神经网络(CNN)的编码器和基于2D CNN的解码器,来提高生成结果在时空域的一致性。Cai等人(2021年)利用外观和运动信号的先验知识,在高级特征空间中明确捕捉它们的对应关系。还有人提出了一种双向时空特征学习框架(2022a)。尽管上述方法进行了大量尝试来获取时空表示并取得了改进成果,但基于预测的方法在某些方面仍存在局限。应对这一挑战的一个潜在解决方案是结合基于预测和基于重建方法的优势。
基于姿态的方法:基于姿态的方法不使用RGB视频,而是利用低维语义骨架数据,这些数据可模拟人体关节随时间变化的动态情况。莫赖斯等人(2019年)捕捉了运动中身体的整体动态以及骨骼的空间关系。马尔科维茨等人(2019年)使用嵌入姿态图和狄利克雷过程混合模型进行基于姿态的异常检测,并引入了一种粗粒度设置,旨在检测动作的异常变化。罗等人(2020年)提出了一种使用时空图卷积网络(GCN)的新技术。于等人(2023年)引入了运动先验规则学习器以增强动态表示。贾因等人(2021年)最近提出了条件变分自动编码器(CVAE)框架的创新策略,该策略采用了结合自监督和无监督学习的混合训练策略。弗拉博雷亚等人(2024年)利用图卷积网络来表示人体骨骼运动,并学习将骨骼运动学编码到最小体积的潜在超球面上。
与上述方法不同,我们研究了扩散模型中条件在视频异常检测中的作用,同时还对训练和推理策略进行了探究。
Method
假设\(X = [x^1, \cdots, x^{H + F}] \in \mathbb{R}^{(H + F)×J×C}\)是属于某一参与者的一系列\(H + F\)个连续运动序列。这里,\(x^t \in \mathbb{R}^{J×C}\)指的是第\(t\)帧中的关节坐标,\(J\)表示关节的数量,\(C\)表示姿态的维度。我们将\(X\)分为两部分:历史运动序列\(X^{1:H}\)和未来运动序列\(X^{H + 1:H + F}\)。所提出模型的架构如图2所示。该模型包含两个分支,即预测分支和重建分支。前者通过扩散过程和反向过程进行预测,而后者采用编码器 - 解码器结构来重建历史运动。
图2:所提出方法的总体架构。\(H + F\)个骨骼运动序列被划分为历史运动序列(红色骨骼运动序列)和未来运动序列(绿色骨骼运动序列)。我们模型的关键在于双条件运动扩散,也就是说,由编码器得到的观测序列的隐藏表示,以及添加了噪声的完整观测序列,它们与预测的未来运动序列相关联。
Dual Conditioned Motion Diffusion
我们构建了一种用于人体运动合成的新型双条件运动扩散(DCMD)方法。其核心思想是在反向过程中,将条件嵌入和条件运动视为双重条件,以便从含噪变量分布中逐步预测未来序列。我们假设噪声预测网络由参数\(\theta\)进行参数化。令\(E\)表示重建分支编码器。在我们所提出方法的反向过程中,恢复得到的人体运动为:
\[X_{t - 1}=\frac{1}{\sqrt{\alpha_{t}}}\left(X_{t}-\frac{1 - \alpha_{t}}{\sqrt{1 - \overline{\alpha}_{t}}} \epsilon_{\theta}\left(X_{t}, t, u\right)\right)+\sigma_{t} z, \quad(1)\]
其中\(u\)表示运动编码,它包含了历史运动序列的内容信息,即\(u = E(X^{1:H})\) ,我们将\(\alpha_{t}\)称为条件嵌入。
我们并非从原始的随机噪声中恢复人体运动,而是向历史运动序列中添加噪声,将其与预测的未来运动序列连接起来,然后将整个序列送入反向过程。我们将添加了噪声的历史序列称为条件运动。具体细节见推理部分。
图3:去噪网络“运动变换器”的架构。右侧的绿色方框展示了前馈神经网络(FFN)模块的细节,蓝色方框则展示了特征线性调制(FiLM)模块的细节。
反向过程中的去噪网络被称为运动变换器,其特点是能够从多层特征中获取潜在的相关性。\(L\)个运动变换器模块采用了跳跃连接堆叠的方式。每个模块包含两个受(佩雷斯等人,2017年)启发的基于线性的特征线性调制(FiLM)模块。FiLM模块由扩散时间步长\(t\)嵌入和条件嵌入进行调制,以建立时间上的关系。其整体结构如图3所示。假设输入的运动序列为\(X\),整体方程可以形式化表示如下:
\(Z = \text{FiLM}(\text{Attention}(X) + \text{TE}(t) + u) + X\),
\(Y = \text{FiLM}(\text{FFN}(Z) + \text{TE}(t) + u) + Z\), (2)
其中\(Y \in \mathbb{R}^{(H + F)×D}\)表示具有通道数为\(D\)的输出。\(Z \in \mathbb{R}^{(H + F)×D}\)是隐藏表示。\(\text{TE}(\cdot)\)表示正弦时间步长嵌入,\(\text{Attention}(\cdot)\)表示多头自注意力机制,其计算方式为:
\(\text{Attention}(X) = \text{Softmax}(\frac{Q_mK_m^T}{\sqrt{2D}})V_m\), (3)
其中\(Q_m = XW_Q\),\(K_m = XW_K\),\(V_m = XW_V \in \mathbb{R}^{(H + F)×\frac{D}{h}}\)分别是第\(m\)个头自注意力的查询、键和值。\(\text{Softmax}(\cdot)\)沿着最后一个维度对注意力图进行归一化处理。
最后,运动变换器将多头的输出\(\left\{Y_m \in \mathbb{R}^{(H + F)×\frac{D}{h}}\right\}_{1\leq m\leq h}\)连接起来,以获得最终结果\(Y\)。
Training with UAD
受(毛等人,2019年)的启发,在训练阶段,我们对完整的运动序列\(X\)执行离散余弦变换(DCT)操作以获取频谱,
\[X_{0} = \text{DCT}(X), \quad(4)\]
其中\(\text{DCT}()\)表示离散余弦变换操作,\(x_{0}\)是离散余弦变换系数。
在正向过程\(q\)中,我们可以通过使用重参数化技巧,在给定的时间步\(t\)计算含噪的离散余弦变换(DCT)频谱\(x_{t}\)。
\[X_{t}=\sqrt{\overline{\alpha}_{t}} X_{0}+\sqrt{1-\overline{\alpha}_{t}} \epsilon, (5)\]
其中\(\bar{\alpha}_{t}=\prod_{i = 1}^{t} \alpha_{i}\),\(\alpha_{i} \in [0, 1]\) 是预先定义的方差。
在反向过程中,我们使用噪声预测损失函数来优化去噪模型的参数\(\theta\),
\[\mathcal{L}_{pred }=\text{smooth}_{L_{1}}\left(\mathbb{E}_{\epsilon, t}\left[\left\| \epsilon-\epsilon_{\theta}\left(X_{t}, t, u\right)\right\| ^{2}\right]\right), (6)\]
其中\(\text{smooth}_{L_{1}}(\cdot)\)表示平滑\(L_1\)损失。
考虑到输入运动序列的时间和空间维度,我们采用时空可分离自动编码器(STSAE)(索菲亚诺斯等人,2021年;弗拉博雷亚等人,2023年),该编码器依赖于类似U型网络的架构(怀亚特等人,2022年),逐步缩减骨骼运动网络并扩展输入运动序列的空间维度。编码器\(E\)将历史运动序列编码为\(u = E(X^{1:H})\),而解码器\(D\)则使用重建损失将其重建为
\(\hat{X}^{1:H}\), \[\mathcal{L}_{rec }=\left\| \hat{X}^{1: H}-X^{1: H}\right\| _{2}^{2} . (7)\]
为了增强正常帧和异常帧之间的区分度,我们利用联合关联差异(UAD)作为额外的损失函数。UAD损失的主要组成部分包括时间关联和全局关联,这两者的目的均是为后续的联合关联差异服务。这两个组成部分如图4所示。
图4:时间关联和全局关联的图示。蓝色曲线是CHUK数据集中一个测试片段的正常度得分,红色区域表示异常事件发生的时间段。黄色曲线表示时间关联,紫色曲线表示全局关联。
时间关联仅从时间距离的维度来考虑。彼此接近的帧应该具有更强的关联性,而相距较远的帧关联性则较弱。这种模式遵循正态分布曲线,呈现出单峰形状。为了建立时间关联,我们采用一个可学习的高斯核函数(徐等人,2022年)来预先确定相对时间距离。此外,我们给高斯核函数引入了一个可学习的尺度参数,这使我们能够专注于相邻区域以进行时间关联,并适应各种时间序列模式,包括不同持续时长的异常情况。其公式如下:
\[\mathcal{T}=\text{Rescale}\left(\left[\frac{1}{\sqrt{2 \pi} \sigma_{i}} \exp \left(-\frac{|j - i|^{2}}{2 \sigma_{i}^{2}}\right)\right]\right), (8)\]
其中\(\sigma \in \mathbb{R}^{(H + F) × h}\)表示可学习的尺度参数。
全局关联是从数值维度来考虑的。表现出异常行为的帧在时间维度上,彼此接近的帧之间应该具有更强的关联性,而与相距较远的帧之间关联性较弱,呈现出单峰模式。同样地,表现正常的帧在时间维度上,与距离远或近的帧都具有较强的关联性。全局关联从原始运动序列中学习关联性,随后自适应地识别出最有效的关联关系。全局关联是自注意力机制的一部分,其计算方式如下:
\[\mathcal{G}=\text{Softmax}\left(\frac{Q_{m} K_{m}^{T}}{\sqrt{2 D}}\right) .\]
异常帧在时间关联和全局关联之间表现出更显著的相似性,从而得到较小的KL值。相反,正常帧在这些关联之间表现出较低的相似性,产生较大的KL值。因此,我们将联合关联差异定义为时间关联和全局关联之间的对称KL散度(徐等人,2022年)。联合关联差异(UAD)是通过对多个层求平均来计算的,从而将一系列特征层的关联整合为一个更具信息量且更稳健的度量指标,
\[\begin{aligned} & UAD(\mathcal{T}, \mathcal{G} ; X)= \\ & {\left[\frac{1}{L} \sum_{l=1}^{N}\left(KL\left(\mathcal{T}_{t,:} \| \mathcal{G}_{t,:}\right)+KL\left(\mathcal{G}_{t,:} \| \mathcal{T}_{t,:}\right)\right)\right]_{t=1, ..., H+F},} \end{aligned}\]
其中,KL散度是在对应于\(\mathcal{T}\)和\(\mathcal{G}\)每一行的两个离散分布之间计算的。我们可以看到,异常帧的联合关联差异(UAD)比正常帧小,这使得它成为一个本质上可区分的因素。因此,总损失变为:
\[\mathcal{L}_{total }=\mathcal{L}_{rec }+\mathcal{L}_{pred }-\lambda \times\| UAD(\mathcal{T}, \mathcal{G} ; X)\| _{1}, \quad(11)\]
其中\(\lambda\)是额外损失的权重。
我们研究的主要目标是使总损失最小化。当参数\(\lambda > 0\)时,我们旨在通过增大联合关联差异(UAD)来优化额外损失。然而,直接最大化联合关联差异存在问题,因为异常帧数量较少,很容易被忽略。与此同时,高斯核的尺度参数会显著减小,导致时间关联失去意义。为了更好地控制联合学习,我们对联合关联差异(UAD)采用极小极大策略,该策略使用一种专门设计的停止梯度机制来约束时间关联和全局关联,从而获得更具区分性的联合关联差异。具体而言,在联合关联差异最小化阶段,我们的目标是让\(\mathcal{T}\)向\(\mathcal{G}\)收敛,\(\mathcal{G}\)是从原始运动序列中学习得到的。\(\mathcal{G}\)停止梯度反向传播,这个收敛过程有助于\(\mathcal{T}\)调整不同的时间模式。在联合关联差异最大化阶段,我们专注于通过停止\(\mathcal{T}\)的梯度反向传播来优化\(\mathcal{G}\),以增大联合关联差异,从而促使\(\mathcal{G}\)更加关注非相邻的帧。所提出方法的训练过程如算法1所示。
Inference with Mask Completion
在推理阶段,首先提取输入运动序列窗口\(w\)中所有帧里所有参与者的姿态,以得到集合\(A\)。重建分支利用编码器结合对称解码器生成\(m\)个历史运动序列。与此同时,预测分支通过掩码补全生成\(m\)个未来运动序列。具体来说,先对观测序列的最后一帧进行重复,直到其长度与完整序列的长度匹配。然后对填充后的序列进行离散余弦变换(DCT),以获取紧凑的历史信息,记为\(x_{0}'\) 。将噪声添加到\(x_{0}'\) 上,从而得到在时间步\(t\)时观测值的噪声频谱,记为\(X_{t}^{n}\) 。
与之前的方法不同,我们将添加了噪声的历史序列和去噪后的预测序列进行了聚合,因为可以观察到噪声观测频谱\(X_{t}^{n}\)和去噪后的预测频谱\(X_{t}^{d}\)的分布大致相似。我们采用离散余弦逆变换(iDCT)操作将含噪频谱和去噪后的频谱转换到时域。然后,使用掩码机制将这两种频谱结合起来,
\[X_{t}=DCT\left[ M \odot iDCT\left(X_{t}^{n}\right)+(1-M) \odot iDCT\left(X_{t}^{d}\right)\right],\]
其中\(M\)是一个掩码,其前\(H\)个值为\(1\),其余值为\(0\),\(\odot\)表示哈达玛积(Hadamard积)。
随后,将这个更新后的去噪运动序列和条件嵌入视为双重条件,并输入到去噪网络中。因此,我们能够完成每个反向扩散步骤的预测运动。推理过程如算法2所示。
Experiments
Implementation Details
我们在四个流行的基准数据集上进行了实验:与人类相关的上海科技大学校园数据集(HR-STC)、与人类相关的香港中文大学林荫道数据集(HR-Avenue)、HR-UBnormal 数据集以及 UBnormal 数据集。为了避免视频帧中骨骼检测错误所带来的影响,我们采用了(莫赖斯等人,2019年)的设置,即剔除那些使用姿态估计算法无法检测到骨骼的片段。我们使用受试者工作特征(ROC)曲线下的面积(AUC)作为评估指标。
人体运动通过一个具有17个关节的骨骼模型来表示。为了提取运动序列,我们采用窗口大小为7帧的设置,其中前3帧构成历史运动序列,接下来的4帧代表未来运动序列。我们使用Adam优化器以端到端的方式训练网络,学习率为\(1\times10^{-4}\),每36个训练周期衰减一次。扩散过程采用余弦方差调度,其中\(\beta_{1}=1\times10^{-4}\),\(\beta_{T}=2\times10^{-2}\),且\(T = 10\) 。我们设置\(\lambda = 0.01\)。重建分支的编码器的隐藏层大小为(512, 256),隐藏嵌入的维度为256。噪声预测网络由6层运动变换器模块组成,其中头的数量为8,隐藏维度为512。实验在NVIDIA GeForce RTX 4090 GPU上进行。对于HR-STC数据集,批量大小设置为4096,对于HR-Avenue数据集,批量大小设置为1024。训练过程大约持续6个小时。
Comparison with the State-of-the-Arts
表1:我们所提出的方法与基于姿态数据的最先进方法在曲线下面积(AUC)得分(%)方面的比较。
表2:针对HR-Avenue数据集的消融实验(%)。
表3:所提出方法的参数分析。
Conclusion
在这项工作中,我们提出了一种用于视频异常检测(VAD)的双条件运动扩散(DCMD)方法,该方法结合了基于重建和基于预测这两种方法的优点。双条件运动扩散(DCMD)在基于扩散的未来运动预测网络中融入了条件运动和条件嵌入。在训练过程中,引入了联合关联差异(UAD)正则化;在推理过程中,采用了掩码补全方法。我们的方法在四个视频异常检测(VAD)数据集上始终取得了领先的性能表现。详细的消融实验证明了双条件运动扩散(DCMD)中不同组件的有效性。进一步的实验分析表明,在视频异常检测(VAD)中,重建分支和预测分支具有很强的互补性。参数分析还表明,所提出的框架对参数不敏感。我们希望这项研究能够通过结合基于重建和基于预测这两种方法的优点,为视频异常检测(VAD)带来新的视角。