跳转至

Weakly Supervised Video Anomaly Detection with Anomaly-Connected Components and Intention Reasoning

会议: CVPR 2026
arXiv: 2603.00550
代码: 无
领域: 视频理解
关键词: 弱监督视频异常检测, 连通分量, 意图推理, CLIP, 多实例学习

一句话总结

提出 LAS-VAD 框架,通过异常连通分量机制(ACC)将视频帧划分为语义一致的组来生成伪标签弥补帧级标注缺失,并通过意图感知机制(IAM)利用位置-速度-加速度特征区分外观相似但意图不同的正常/异常行为,在 XD-Violence 上达 89.96% AP (I3D)。

研究背景与动机

领域现状:弱监督视频异常检测(WS-VAD)仅使用视频级标注,通过多实例学习(MIL)识别异常时间区间。主流方法使用预训练特征提取+分类器管道。

现有痛点: - 语义信息不足:缺乏帧级标注导致模型难以学到异常的语义表示,只能通过 MIL 的 top-K 策略间接学习 - 行为区分模糊:正常和异常行为外观高度相似(如"拿东西" vs "偷东西"),仅靠外观特征无法区分

核心矛盾:帧级标注缺失 ↔ 需要帧级语义理解;外观相似 ↔ 意图不同

切入角度: - 语义问题:利用帧间相似性构建连通分量图,同组帧共享语义 → 伪标签 - 意图问题:异常行为往往速度/加速度异常(偷东西比拿东西更快),用运动学特征推理意图

核心 idea:学习异常语义 = 空间语义分组(ACC)+ 运动意图推理(IAM)+ 异常属性增强

方法详解

整体框架

LAS-VAD 想解决的是弱监督异常检测里最尴尬的一对矛盾:只有视频级标签可用,却要做出帧级判断,而且很多异常和正常动作长得几乎一样。它的做法是先抽一份共享的增强视觉特征,再在其上分出三条预测分支、并额外配一个伪标签生成模块。具体地:先用 CLIP 编码器拿到帧级特征 \(X_\text{video} \in \mathbb{R}^{T \times D}\),过局部 Transformer 加 GCN 建模时序依赖得到增强特征 \(X_f\)。在 \(X_f\) 之上有三条预测分支——主分支用全连接+Softmax 直接出类别预测 \(q^m\);IAM 分支从运动学角度推断"这个动作到底想干什么"得到 \(q^a\);文本分支让文本编码器拿异常类名特征 \(X_\text{lang}\)、再让 LLM 给每类异常补属性描述编码成 \(X_\text{aux}\),拼成 \(X_\text{text}\) 后与 \(X_f\) 算跨模态相似度得到 \(q^l\)。与此同时,ACC 模块把帧聚成语义连通分量、造出帧级伪标签去监督主分支 \(q^m\)(它的语义校正还要借用文本分支的 \(q^l\)),补上缺失的细粒度监督。最后三条分支平均融合 \(p^f = \frac{1}{3}(q^m + q^a + q^l)\),再经 MIL 聚合成视频级异常分。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
    A["视频帧"] --> B["CLIP 视觉编码器 + 局部 Transformer + GCN<br/>增强视频特征 X_f"]
    TXT["文本编码器<br/>异常类名特征 X_lang"]

    B --> M["主分支<br/>FC + Softmax → q^m"]
    B --> IAM["意图感知机制 IAM<br/>位置→速度→加速度 + 跨意图对比 → q^a"]

    TXT --> ATT["异常属性增强<br/>LLM 属性描述 X_aux,拼接成 X_text"]
    B --> L["跨模态余弦相似度<br/>X_text · X_f → q^l"]
    ATT --> L

    subgraph ACC["异常连通分量机制 ACC(生成帧级伪标签)"]
        direction TB
        S1["帧间视觉相似度 A_v"] --> S2["q^l 跨模态语义校正"]
        S2 --> S3["阈值二值化 + DFS 连通分量 → 帧级伪标签"]
    end
    B --> S1
    L --> S2
    S3 -->|L_aux 监督| M

    M --> F["平均融合<br/>p^f = (q^m + q^a + q^l) / 3"]
    IAM --> F
    L --> F
    F --> O["MIL 聚合 → 视频级异常分"]

关键设计

1. 异常连通分量机制 (ACC):在没有帧级标签的情况下造出帧级监督

弱监督的根本困境是模型拿不到逐帧标签,只能靠 MIL 的 top-K 间接学习,语义信号稀薄。ACC 换了个思路:与其去标每一帧,不如判断哪些帧"属于同一回事"。它先算帧间视觉相似度 \(\mathcal{A}_v = \frac{X_f \cdot X_f^T}{\|X_f\| \cdot \|X_f\|}\),但纯视觉相似度容易把光照、背景接近却语义无关的帧错连在一起,所以再用跨模态语义相似度做一次校正——\(\hat{\mathcal{A}}_w[i,j] = \mathcal{A}_v[i,j] \cdot (1 + \eta \cdot \max_c \min(q^l[i,c], q^l[j,c]))\),让两帧在文本语义上越一致、连边权重越被放大。校正后的相似度按阈值 \(\tau\) 二值化成邻接矩阵 \(\mathcal{A} = (\hat{\mathcal{A}} > \tau)\),再用 DFS 在这张图上找连通分量 \(B_1, B_2, \dots, B_r\),每个分量内的帧共享同一语义标签。举个直观的例子:一段含打斗的视频里,相邻几十帧因为画面和"fighting"这个语义都接近被连成一个分量,于是它们被一并打上同组伪标签,原本只有视频级"含异常"的信号就被下放成了一片连续帧的细粒度监督。这样模型不需要知道每一帧的精确类别,只需知道帧之间的归属关系,就绕开了帧级标注缺失这道坎。

2. 意图感知机制 (IAM):用运动学特征把"拿东西"和"偷东西"分开

很多异常和正常动作外观高度重合——"拿起一件商品"和"偷走一件商品"在单帧里几乎无法区分,差别藏在动作的快慢和发力上。IAM 因此不在外观上较劲,而是从 \(X_f\) 提取位置特征 \(X_p\),再逐次差分得到速度 \(X_v\) 和加速度 \(X_a\),把动作的运动学画像显式编码出来。差分会放大噪声,所以速度分支加了一道门控 \(X_v = \text{Sigmoid}(\text{Conv}(X_v^\text{diff})) \times X_v^\text{diff}\),让网络自己学会压住抖动、留下真正有信息的运动。位置、速度、加速度拼成意图特征 \(X_\text{int} \in \mathbb{R}^{T \times D}\) 后,模型为每个类别(含正常)维护一个动量更新的意图原型 \(Z \in \mathbb{R}^{(C+1) \times D}\) 作为参照锚点。为了把相似外观、不同意图的样本真正推开,IAM 还做跨意图对比学习:专挑同类中最不像的样本当正例、异类中最像的样本当负例(即最难的正负对),用 infoNCE 拉近正例、推远负例

\[\mathcal{L}_\text{cst} = -\frac{1}{T}\sum_{t=1}^T \log \frac{\exp(X_\text{int}^t \cdot S_\text{pos}^t)}{\sum_{i=1}^M \exp(X_\text{int}^t \cdot S_\text{neg}^t)}\]

正因为约束的是最难分的边界样本,意图空间被压得更紧,外观骗不过去的偷窃动作就能凭"抓取速度更快"被识别出来。

3. 异常属性增强:让 LLM 把异常的"长相"写成文本先验

异常类别特征 \(X_\text{lang}\) 只有一个干巴巴的类名(如"爆炸"),语义太薄。这个设计借 LLM 给每类异常补一段属性描述——"爆炸"展开成"火焰、浓烟"之类的可见特征,编码成 \(X_\text{aux}\),与类名特征拼成更丰富的文本表示 \(X_\text{text} = [X_\text{lang}; X_\text{aux}]\),再和视频特征算跨模态余弦相似度得到文本分支预测 \(q^l\)。这一步等于免费给检测器灌入一份"异常通常伴随哪些可见属性"的先验,且全自动、无需人工设计提示。值得一提的是,前面 ACC 里用来校正视觉相似度的 \(q^l\) 正是这一分支的产物——属性增强不只独立贡献一路预测,还反哺了 ACC 的语义分组。

损失函数 / 训练策略

\[\mathcal{L}_\text{all} = \mathcal{L}_\text{ags} + \mathcal{L}_\text{fg} + \mathcal{L}_\text{aux} + \lambda \mathcal{L}_\text{reg}\]
  • \(\mathcal{L}_\text{ags}\):二元交叉熵(粗粒度异常/正常)
  • \(\mathcal{L}_\text{fg}\):多分类交叉熵(细粒度异常类别)
  • \(\mathcal{L}_\text{aux}\):ACC 伪标签 L1 损失
  • \(\mathcal{L}_\text{reg}\):粗/细粒度预测一致性正则

实验关键数据

主实验

数据集 特征 指标 LAS-VAD 之前SOTA 提升
XD-Violence I3D AP(%) 89.96 LEC-VAD 88.47 +1.49
XD-Violence CLIP AP(%) 87.92 LEC-VAD 86.56 +1.36
UCF-Crime I3D AUC(%) 91.05 π-VAD 90.33 +0.72
UCF-Crime CLIP AUC(%) 90.86 LEC-VAD 89.97 +0.89

细粒度 mAP (XD-Violence, avg IoU 0.1-0.5):

方法 0.1 0.2 0.3 0.4 0.5 AVG
LEC-VAD 19.65 17.17 14.37 9.45 7.18 13.56
LAS-VAD 22.07 19.96 16.18 11.24 8.64 15.62

消融实验

ATT ACC IAM mAP AVG 说明
24.24 基线
26.50 属性增强有效
29.78 ACC 贡献最大(+3.28)
29.98 IAM 进一步提升

关键发现

  • ACC(连通分量)是贡献最大的模块,伪标签为帧级学习提供了关键监督
  • IAM 的意图推理在外观相似场景中效果显著,但整体增益相对较小(+0.20)
  • 异常属性描述(LLM 生成)提供了有意义的语义补充(+2.26)
  • 在两个数据集、三种特征提取器(C3D/I3D/CLIP)上均取得 SOTA

亮点与洞察

  • 连通分量做帧分组:把图论中的连通分量概念巧妙应用于视频帧语义分组,思路简洁有效。关键在文本语义校正步骤——纯视觉相似度存在偏差,跨模态校正使分组更准确。
  • 位置-速度-加速度的意图编码:从物理学的运动学概念出发设计特征,直觉上很合理——偷窃动作确实比正常拿取更快。门控机制过滤噪声也是好设计。
  • LLM 属性描述作为文本先验:用 GPT-4 生成异常属性描述的做法简单有效,无需手动设计提示。

局限与展望

  • ACC 的阈值 \(\tau\) 需要手动设定(0.9),对不同视频类型敏感
  • IAM 的位置/速度/加速度特征提取比较简单(全连接+差分),可能对复杂运动模式建模不足
  • 依赖 GPT-4 生成属性描述,引入外部模型依赖
  • 意图原型的动量更新机制在训练初期可能不稳定
  • 未在更大规模数据集上验证(如 Kinetics-700 的异常子集)

评分

  • 新颖性: ⭐⭐⭐⭐ ACC 和 IAM 的组合思路有新意,连通分量做帧分组是亮点
  • 实验充分度: ⭐⭐⭐⭐ 两数据集多特征全面对比,消融完整
  • 写作质量: ⭐⭐⭐ 动机描述偏冗长,公式符号较多
  • 价值: ⭐⭐⭐⭐ 弱监督 VAD 领域的稳定进步