Skip to content

Back to the catalog

Efficient Zero-Shot Video Anomaly Detection via Signal-Aware Adaptive Fusion (SAAF)
arxiv.orgpaper

Efficient Zero-Shot Video Anomaly Detection via Signal-Aware Adaptive Fusion (SAAF)

Signal-Aware Adaptive Fusion (SAAF) is a training-free zero-shot video anomaly detection framework that cuts the compute cost of vision-language models. It combines a dual-signal sampler (frame-to-frame delta and rolling-context drift in embedding space, OR-gated with EMA thresholds), a threshold-gated cascade from frame-level to video-level analysis, and signal-aware score fusion. It reports AUC-ROC of 92.07% on XD-Violence, 86.70% on MSAD and 80.54% on ShanghaiTech, at 2.2x to 2.6x the throughput of the prior best zero-shot method.

TL;DR Proposes SAAF, a cascaded, adaptively sampled zero-shot VLM method for video anomaly detection that sets new training-free state of the art at over 2x the throughput.
Document

What it claims

SAAF is a training-free, zero-shot video anomaly detector by Khaled Waleed Dawoud and Muhammad Haris Khan (MBZUAI), posted October 2026. It spends VLM compute only on frames that CLIP-space signals flag as unusual. Among training-free zero-shot methods, the paper reports state-of-the-art AUC-ROC on XD-Violence (92.07%), MSAD (86.70%) and ShanghaiTech (80.54%). The authors say the XD and MSAD results also beat supervised baselines. Amortized throughput is 44.95 FPS on XD, 48.61 on UCF-Crime, 41.06 on MSAD and 33.55 on ShanghaiTech. These are 2.43x, 2.63x, 2.22x and 1.81x speedups over the prior best zero-shot method, the unified framework of Lin et al. The ShanghaiTech speedup (1.81x) is lower than the "2.2x to 2.6x" range in the summary.

How it works

The pipeline uses four frozen models:

  • CLIP ViT-B/32 embeds every frame.
  • Qwen3-VL-8B captions the selected frames.
  • Qwen2.5-7B scores each caption between 0 and 1.
  • VideoLLaMA3 with Qwen2.5-7B performs the video-level analysis.

Frame selection uses two signals computed on L2-normalised CLIP embeddings. Delta is the cosine distance between consecutive frames and targets sudden events. Drift is the cosine distance from the normalised mean of the previous W frames and targets static or slowly developing anomalies, such as a growing fire.

Each signal has its own adaptive threshold, τ = μ + N·σ. The mean and variance come from EMAs of the signal's first and second moments, with rate α. When a frame is selected, the statistics stop updating, so anomalous frames do not shift the baseline. A frame becomes an anchor if either signal fires (OR gate). Each anchor is tagged as delta, drift or both. Selection happens within the same stride pool used by uniform sampling.

flowchart TD
  A[CLIP embeddings] --> B{delta or drift<br/>over EMA threshold?}
  B -- no --> X[skipped, filled by propagation]
  B -- yes --> C[VLM caption + LLM score]
  C --> D{frame score > τf?}
  D -- no --> E[frame score only]
  D -- yes --> F[video-level VLM]
  F --> G[fusion weighted by trigger signal]
  C --> G
  E --> H[propagate + EMA refine to dense scores]
  G --> H

The video-level model runs only when the frame score exceeds a threshold τf. Fusion is computed as λ·s_frame + (1−λ)·s_vid. Delta-triggered frames weight the frame score more heavily, drift-triggered frames weight the video score more heavily, and frames that fired both signals use λ = 0.5. Finally, the sparse anchor scores are propagated across an M-stride and smoothed with an EMA to give per-frame output.

Against LAVAD and Lin et al., which both sample at a fixed stride of 16 and run every analysis on every sampled frame, two things are new. Content drives the first-stage selection, and temporal reasoning is gated by the frame score.

Evidence

The page gives only headline figures: the AUC-ROC and FPS numbers above, plus the speedups relative to Lin et al. Four benchmarks are used: XD-Violence, UCF-Crime, MSAD and ShanghaiTech. The excerpt does not include a UCF-Crime AUC, per-method comparison tables, hardware for the FPS measurements, or ablations. The supplementary material reportedly sweeps N ∈ {0.5, 1.0, 1.5, 2.0}.

How to use it

Code is at https://github.com/kdawoud91/SAAF. No training is needed. Running it requires all four models listed above. The tunable settings are N (higher means fewer frames selected), α, W, τf, M, and the fusion weights λδ and λρ. The page does not give default values for these. The exact prompts are in Supplementary Section C.

Limits

The fetched text stops at Section 3.3, so it does not include the results tables, ablations, stated limitations or the licence. The page does not give values for λδ and λρ, W, α or τf, or the hardware behind the FPS figures. Check these in the full paper and repository before comparing throughput. Because the method is zero-shot, accuracy depends on prompt wording and on how well Qwen2.5-7B judges captions. The paper is marked © 2027 IEEE.

Organisations named here

  • arXiv
  • MSAD
  • SAAF
  • ShanghaiTech
  • UCF-Crime
  • XD-Violence

Technologies named here

  • Vision language model

Techniques named here

  • Signal-Aware Adaptive Fusion
  • Dual-signal adaptive sampler
  • Threshold-gated cascaded architecture
  • Signal-aware weighted fusion