Skip to Content
You are currently on the new version of our website. Access the old version .
SensorsSensors
  • Article
  • Open Access

24 October 2026

32 Pages

X-VAD: Video Anomaly Detection with Kinematic Explanations

,
and
1
Department of Artificial Intelligence, Graduate School of Natural and Applied Sciences, Ankara University, 06110 Ankara, Türkiye
2
Department of Artificial Intelligence Engineering, Faculty of Engineering, OSTİM Technical University, 06374 Ankara, Türkiye
3
Department of Electrical and Electronics Engineering, Faculty of Engineering, Ankara University, 06830 Ankara, Türkiye
4
Department of Computer Engineering, Fırat University, 23119 Elazığ, Türkiye

Abstract

Anomaly scores alone do not describe unusual motion. X-VAD links scoring and reporting through 13 cell-level kinematic descriptors from SEA-RAFT optical flow. They describe speed, direction, flow deformation, and temporal change. Each vector is compared with normal training observations from the same cell. The four highest calibrated cell scores are averaged to obtain the frame score. No gradient-based training of an anomaly scorer is required. Rule-based alarm reports identify the region, descriptor deviations, and nearest normal reference. YOLO-World adds object context without changing the score. Micro-averaged area under the receiver operating characteristic curve (AUROC) reaches 85.78%, 84.42%, and 75.43% on UCSD Ped2, CUHK Avenue, and IITB-Corridor, respectively. At the 0.85 threshold, all stored test scores yield true-positive rates of 87.69%, 90.78%, and 62.73%. Corresponding false-positive rates are 41.46%, 46.32%, and 26.53%. Runtime measurements use an NVIDIA A100-SXM4-40GB at batch size 1. Mean score-availability times are 50.0, 50.6, and 82.6 ms per frame pair, excluding frame reading. Report generation, including YOLO-World inference, adds 16.3–18.3 ms per alarm frame on average. Visualization and notification delivery are excluded. The IITB-Corridor AUROC approaches VideoPatchCore’s 76.4%.X-VAD provides inspectable motion reports, although its AUROCs trail SETJiP on Ped2 (99.3%) and AI-VAD on Avenue (93.7%).

1. Introduction

Surveillance cameras have become a standard part of public safety infrastructure in places such as train stations, shopping centers, and university campuses [1,2]. Falling hardware costs continue to increase the number of installed cameras [3]. The resulting video streams are long and mostly uneventful. Normal activity is repetitive and predictable, whereas security-relevant events are rare, brief, and varied. Continuous manual monitoring of such footage is tedious and error-prone [4], which motivates automatic video anomaly detection (VAD). In VAD, an anomaly is an event that does not conform to the expected behavior of a scene [5]. The task is to learn what normal activity looks like and flag observations that depart from it.
Anomalous events are unbounded in type and rare in practice, so they cannot be represented by a predefined set of classes. Collecting representative examples of every anomaly for training is therefore not feasible [6,7]. VAD is commonly formulated as a normal-only problem, in which a model of normal activity is fitted exclusively to normal training videos. Test frames are scored by their deviation from this reference [6,7]. In this setting, the reference is tied to the scene in which it was learned. As Cao et al. [6] observe, an event may be normal in one scene and abnormal in another. Playing football, for example, is ordinary on a playground but anomalous on a road. A normal reference built for one camera view may therefore not transfer reliably to another.
Location also matters within a single scene. Georgescu et al. [7] give the example of a person crossing a road. This crossing is unremarkable on a crosswalk but can be considered anomalous elsewhere. The same context dependence applies to motion in campus surveillance. A single camera may cover walkways, building entrances, corridors, and open areas. A motion direction, speed, or activity level may be expected in one image region but unusual in another. Whether a motion pattern is anomalous therefore depends on both how and where the motion occurs. A VAD system for such scenes should represent region-specific patterns of normal motion as well as scene-level regularities. UCSD Ped2 [8], CUHK Avenue [9], and IITB-Corridor [10] provide fixed-camera benchmarks of pedestrian and corridor scenes in which these effects can be studied.
A frame-level anomaly score indicates the degree of departure but provides limited information about the motion associated with an alarm. This limitation matters in closed-circuit television (CCTV) footage. Occlusion, illumination changes, and cluttered backgrounds complicate the interpretation of an increased score [11]. Camera movement can also produce apparent background motion. The Avenue dataset, for example, includes a test sequence affected by camera shake. An operator who receives an alarm must decide whether it requires attention. A score alone does not show where in the image the departure occurred or what kind of motion produced it. It also does not show what the corresponding normal activity looks like. A useful report should therefore link the score to an observable image region and identifiable motion characteristics. These characteristics should be expressed in quantities that can be checked against the video itself.
Optical flow provides a dense description of apparent image motion [12] and has been used as the basis for motion-based anomaly detection. Early methods modeled activity at fixed locations, used space-time graphical models, or summarized flow orientations into histograms [13,14,15]. Their statistics are directly related to the observed motion field. Learned prediction, reconstruction, and memory methods subsequently provided alternative representations of normality [16,17,18]. Recent normal-only approaches combine complementary cues or learning objectives. Examples include optical flow with red–green–blue (RGB) appearance in a generative framework [19], frame prediction with adaptive feature clustering [20], transformer-based reconstruction [21], and spatial and temporal jigsaw objectives [22]. Others use pose sequences with hyperbolic graph embeddings [23], patch-level normality memories [24], or synthetic anomaly supervision generated from normal videos [25]. These approaches provide frame-level discrimination on standard benchmarks. However, their anomaly decisions generally rely on learned representations, prediction or reconstruction errors, memory distances, or related latent quantities. These quantities are not expressed as explicit local motion descriptors such as speed, direction, expansion, rotation, or shear.
A separate line of work addresses explanation directly. EVAL [26] stores location-dependent normal exemplars with interpretable appearance and motion attributes. Scene-relationship models interpret unusual events through object interactions [27]. Language-based approaches incorporate visual descriptions and language-model reasoning into scoring [28]. EVAL illustrates the value of pairing a deviation with a reference from the same spatial region. This pairing allows an alarm to be interpreted against the normal activity observed at that location.
This study asks whether explicit local measurements of image motion can provide an anomaly score and an inspectable description of the measurements underlying that score. The proposed method uses the same measurements for both purposes, without an additional learned anomaly-scoring model. X-VAD represents each cell of a fixed image grid using 13 kinematic descriptors, collectively termed H13. These descriptors are computed in the image plane from dense optical flow estimated by SEA-RAFT [29]. They summarize speed, direction, local expansion, rotation, shear, and temporal changes in the direction distribution within each cell. A scene-specific normal memory is built for every cell exclusively from normal training videos. Each test descriptor vector is compared with normal examples from the same cell using nearest-neighbor matching. This nearest-neighbor matching is similar to that used in patch-based memory approaches to image anomaly detection [30]. The largest departures across cells are aggregated into a nonparametric frame score.
Following an alarm, YOLO-World [31] supplies an associated object candidate. A rule-based report presents the alarm frame and selected region. It also presents the motion descriptors that deviate most from the normal medians and the nearest normal reference sample. The semantic branch operates after the kinematic decision and leaves the score unchanged. Detection therefore depends only on the measured motion descriptors, and the report can be checked against the frames it describes. Detection and kinematic interpretation are thus linked through the same H13 representation. The report describes deviations in the motion descriptors used for scoring, without requiring a separate learned model for kinematic explanation. Figure 1 gives an overview of the two branches.
Figure 1. Overview of X-VAD. The top row shows kinematic scoring, and the middle row shows post-alarm semantic annotation. The bottom row shows the explanation report for IITB-Corridor video 000233, frame 446. Panel (c) shows the nearest normal training sample from training video 000164, frame 278.
The contributions of this study are summarized as follows:
  • We propose a cell-level H13 representation that combines speed, direction, local flow deformation, and temporal distribution change. It uses normal references specific to each image region to express departures through explicit image-motion descriptors rather than only through latent learned representations.
  • We design a scoring and reporting architecture that links kinematic departures to an alarm frame, image region, descriptor profile, and nearest normal reference. Post-alarm object annotation is kept separate from the score.
  • We evaluate the framework on three fixed-camera benchmarks with a single configuration. Performance is measured using the frame-level micro-averaged AUROC. We also conduct an ablation study and analyze representative detections and false alarms to identify the limitations of motion-only normal references.

3. Problem Formulation

A scene is a fixed camera view with normal training videos and test videos. A video of T frames I 1 , … , I T yields T − 1 consecutive pairs ( I t , I t + 1 ) , t = 1 , … , T − 1 . Pairs do not cross video boundaries. X-VAD assigns a score U t ∈ [ 0 , 1 ] to each pair and attributes it to the later frame I t + 1 . The temporal descriptor also uses motion history from the same video. Each video therefore receives T − 1 frame scores, and its first frame is unscored.
Processed frames have width W, height H, and diagonal D = W 2 + H 2 pixels. The frame rate is fps (frames per second), and the frame interval is δ t = 1 / fps . The image is divided into an 8 × 8 grid of N C = 64 cells. Each cell contains N P = ( H / 8 ) ( W / 8 ) pixels and is indexed by c ∈ { 1 , … , 64 } .
Let V tr and V te denote the normal training videos and test videos of a scene. The task is to fit the scene-specific reference using only V tr and score the pairs in V te . Anomalous frames ( y t + 1 = 1 ) should receive higher scores than normal frames ( y t + 1 = 0 ). AUROC evaluates this ranking (Section 5.2). Test labels do not enter fitting, scoring, or report generation. They are used for evaluation and overlaid on report traces only for illustration. Whenever U t ≥ θ , the method also returns the explanation tuple
E t = t + 1 , c * , T t , { ( j , z t , c * , j ) } j ∈ J t , r t , o t .
The tuple contains the alarm frame, highest-scoring cell, selected cell set, and two descriptors with the largest absolute standardized deviations from the cell’s normal medians. It also includes their signed standardized values, the nearest normal sample r t ∈ M c * , and an optional object candidate o t . The object candidate does not enter U t . Scoring and kinematic reporting use the same H13 representation, while object annotation remains separate. Table 1 lists the main symbols used in Section 3 and Section 4.
Table 1. Notation used in Section 3 and Section 4.

4. Proposed Method: X-VAD

Figure 1 shows the two branches of X-VAD. The kinematic branch estimates dense optical flow and summarizes each cell of a fixed 8 × 8 image grid using 13 descriptors. It compares each descriptor vector with a cell-specific normal memory and aggregates the largest deviations into a frame score. When the score reaches the alarm threshold, the semantic branch applies an open-vocabulary object detector to the alarm frame. A rule-based report combines the motion measurements with the associated object candidate.
Active-motion thresholds, descriptor-scaling statistics, normal memories, and calibration distributions are fitted exclusively to the normal training videos of each scene. SEA-RAFT and YOLO-World use released weights pretrained on external data and are not fine-tuned. Section 4.1, Section 4.2, Section 4.3 and Section 4.4 describe optical flow, H13, scoring, and reporting. Section 5 gives the datasets, evaluation protocol, and implementation details.

4.1. Dense Optical Flow Estimation

Optical flow describes the apparent displacement of image content between two frames [12]. SEA-RAFT builds on recurrent all-pairs field transforms (RAFT), which iteratively refine flow using correlations between image features [29]. It predicts an initial flow before refinement and uses a mixture-of-Laplace training loss and rigid-motion pretraining. Its published results report strong accuracy and cross-dataset generalization at a lower computational cost than comparably accurate methods. These properties, together with the released code and weights [33,34], motivated its use in X-VAD. Dense flow supplies measurements for every image cell without first detecting or tracking objects. Flow quality matters because speed depends on displacement estimates, while deformation descriptors also depend on their spatial derivatives.
X-VAD uses SEA-RAFT [29] with the released spring-M model and checkpoint [33,34]. The model runs for four refinement iterations. The input scale is set to 0, so flow is estimated at the processed image resolution rather than the half-resolution setting of the released evaluation configuration. Each processed dimension must be a multiple of 8. The three image sizes in Section 5.1 satisfy this requirement without cropping.
For a frame pair ( I t , I t + 1 ) , the raw flow F t in pixels is normalized by the image diagonal and the frame interval,
f t = F t D δ t , m t = ∥ f t ∥ 2 .
Speed is therefore expressed in the common image-relative unit of image diagonals per second. A Gaussian-smoothed field f ¯ t = G σ ∗ f t = ( f ¯ u , f ¯ v ) with σ = 0.002 D is used for spatial derivatives. With x and y denoting pixel coordinates,
J 11 = D ∂ x f ¯ u , J 12 = D ∂ y f ¯ u , J 21 = D ∂ x f ¯ v , J 22 = D ∂ y f ¯ v ,
and the local deformation fields are
div = J 11 + J 22 , curl = J 21 − J 12 , shear = ( J 11 − J 22 ) 2 + ( J 12 + J 21 ) 2 .
They measure local expansion or contraction, signed rotation, and shear of the image-motion field.

4.2. H13 Kinematic Descriptors

4.2.1. Active-Motion Threshold

A cell-specific threshold defines the active pixels used to construct the descriptor supports. For the normalized magnitudes m ˜ c of cell c observed in the normal training videos,
τ c = max median ( m ˜ c ) + 3 ( 1.4826 ) MAD ( m ˜ c ) , 0.3 D δ t ,
where MAD is the median absolute deviation. The factor 1.4826 makes the scaled MAD comparable to a standard deviation under normality [35]. The second term is a lower bound of 0.3 pixels per frame, expressed in the units of Equation (2). Threshold statistics use a deterministic subsample of training pairs, with 16 pixels sampled per cell in each selected pair. A fixed pair stride targets approximately 5000 pairs. This stride gives 2534 pairs for Ped2, 5111 for Avenue, and 5128 for IITB-Corridor. Appendix A.2 gives the stride, and Appendix A.6 gives the pixel indices. In all three scenes, the MAD-based term falls below the lower bound in every cell. Each scene therefore uses the constant threshold listed in Section 5.1. The active set is A = { m > τ c } . Its dilated support A + is obtained using a square maximum filter with half-width ⌈ σ ⌉ . The filter is applied to the whole-image active mask before restriction to each cell. The resulting support is used for the deformation descriptors.

4.2.2. Speed, Direction, and Deformation Descriptors

Table 2 defines the 13 descriptors. Descriptors h 1 – h 7 use the active set A to summarize speed, motion extent, mean direction, and direction coherence. Descriptors h 8 – h 12 use A + to summarize the tails of the deformation fields in Equation (4). For a support of N pixels, the lower and upper tail means average the smallest and largest min { max ( ⌈ 0.01 N ⌉ , 8 ) , N } values, respectively. They retain extreme motion measurements that an average alone would not describe. The speed and direction group requires | A | ≥ 8 , defining a motion-valid cell. The deformation group requires | A + | ≥ 8 . Invalid descriptors are set to zero, except that the raw active fraction is retained for the temporal distribution. When the cell is not motion-valid, the standardized coordinate of this fraction is set to zero.
Table 2. H13 descriptors of an image cell.

4.2.3. Temporal Descriptor

The temporal descriptor compares the direction–activity distribution of a cell with that of the same cell Δ pairs earlier. The gap Δ = max { 1 , round ( 0.2 fps ) } corresponds to approximately 0.2 s at the frame rate used (Section 5.1). Active flow vectors form an eight-bin circular direction histogram H t . Each vector is weighted by its magnitude, with the weight distributed linearly between adjacent bins. The normalized histogram is combined with the inactive fraction into a nine-component distribution,
P t = 1 − h 4 , t , h 4 , t H t , 1 , … , h 4 , t H t , 8 .
The descriptor h 13 is the Jensen–Shannon (JS) divergence [36], normalized to [ 0 , 1 ] ,
h 13 , t = 1 2 KL ( P t ∥ M ) + 1 2 KL ( P t − Δ ∥ M ) log 2 , M = 1 2 P t + P t − Δ ,
where KL ( · ∥ · ) denotes the Kullback–Leibler divergence. The descriptor is valid for t > Δ and is set to zero for the first Δ pairs of a video. Numerical stabilization of the logarithms and the complete validity rules are given in Appendix A.2.

4.3. Cell-Specific Normal Memory and Frame Score

4.3.1. Robust Standardization

Normality is modeled separately for each cell. For every cell c and descriptor j, the median μ c , j and scaled MAD are computed from valid training entries. At least ten entries are required. Otherwise, both statistics are set to zero. A scene-level floor ε prevents division by near-zero scales. It is the 10th percentile of all positive scaled MADs in the scene, with a fallback of 10 − 6 if none is positive. The final scale is s ^ c , j = max { 1.4826 MAD c , j , ε } , giving
z t , c , j = h t , c , j − μ c , j s ^ c , j .
Invalid descriptors are set to zero after standardization.

4.3.2. Memory Construction and Out-of-Fold Calibration

The memory M c contains standardized vectors from motion-valid training observations of cell c. At least 100 such observations are required. If more than 40,000 are available, a deterministic, evenly spaced subsample of 40,000 vectors is retained. Scoring also requires at least one calibration distance, as specified in Appendix A.3. For a query vector z, the cell distance is the mean Euclidean distance to its k = 3 nearest neighbors in the memory,
d c ( z ) = 1 k ∑ ℓ = 1 k z − z c ( ℓ ) 2 , k = 3 ,
computed exactly by exhaustive search.
A self-match contributes a zero distance and lowers the mean nearest-neighbor distance. Normal reference distances are therefore obtained by video-grouped four-fold calibration. Training videos are assigned to folds by their index modulo four. Vectors from each fold are queried against a memory built from the other three folds. This scheme excludes both the query and other observations from its video. The resulting out-of-fold distances are pooled per cell and sorted, giving the reference set { d i ( c ) } i = 1 n c . At test time, the query is compared with the full memory, and its distance is mapped to an empirical percentile,
p t , c = 1 + # { i : d i ( c ) < d t , c } n c + 1 .
Nonscorable cells and cells that are not motion-valid at pair t receive p t , c = 0 . The percentile is an empirical distance reference rather than a conformal probability or a prescribed false-alarm rate. The reference distances are computed against memories built from three of the four folds, whereas test queries are compared with the full memory. The thresholds and scaling statistics are fitted once on the entire training split.

4.3.3. Frame Score and Alarm

Let T t denote the set of the four cells with the largest p t , c (the top ⌈ 0.05 N C ⌉ = 4 cells). The frame score is the mean of these four percentiles,
U t = 1 4 ∑ c ∈ T t p t , c , | T t | = ⌈ 0.05 × 64 ⌉ = 4 ,
which emphasizes regions with the largest departures from local normal motion. Nonscorable and motion-invalid cells contribute zero, while the denominator remains four. Four nonzero cell responses are therefore required for the score to reach its maximum. The main evaluation uses this score without temporal smoothing, per-video normalization, or threshold tuning. An alarm is raised when U t ≥ θ , with θ = 0.85 . This threshold controls report generation, whereas AUROC evaluates the continuous score over all thresholds. Algorithm 1 summarizes fitting and scoring, and Table 3 gives the resulting memory statistics.
Algorithm 1 X-VAD kinematic scoring for one scene
Require: Normal training videos V tr ; test video V; constants σ = 0.002 D , Δ , k = 3 , θ = 0.85
Ensure: Frame scores U t and alarm set { t : U t ≥ θ }
   Normal-only fitting
  1: Estimate τ c for every cell from a deterministic subsample of training pairs▹ Equation (5)
  2: for all training pairs ( I t , I t + 1 ) in V tr  do
  3:       F t ← SEA-RAFT ( I t , I t + 1 ) ; f t , m t ← Equation (2)
  4:      Compute h t , c , 1 . . 13 and validity flags for all cells▹ Table 2, Equations (4)–(7)
  5: end for
  6: Compute μ c , j and s ^ c , j ; standardize to z t , c ▹ Equation (8)
  7: for all cells c with at least 100 motion-valid observations do
  8:        M c ← motion-valid z t , c (evenly spaced subsample if > 40 , 000 )
  9:       Compute out-of-fold distances { d i ( c ) } by video-grouped four-fold k-NN▹ Equation (9)
10: end for
   Test-time scoring
11: for all pairs ( I t , I t + 1 ) in V do
12:       Compute z t , c for all cells with the training statistics
13:       for all scorable cells c do
14:              p t , c ← percentile of d c ( z t , c ) among { d i ( c ) } ▹ Equation (10)
15:       end for
16:        p t , c ← 0 for nonscorable or motion-invalid cells
17:        U t ← mean of the four largest p t , c ▹ Equation (11)
18:       if  U t ≥ θ  then
19:             Generate the explanation report for frame I t + 1 ▹ Section 4.4
20:       end if
21: end for
Table 3. Memory statistics of the three scenes after normal-only fitting.

4.4. Post-Alarm Semantic Annotation and Explanation Report

For each alarm pair t, the report uses frame I t + 1 , the highest-scoring cell c * = arg max c p t , c , and the four cells in T t . It presents three kinematic elements. First, it lists the two descriptors of c * with the largest absolute standardized values | z t , c * , j | , retaining their signs. These values describe departures from the cell’s normal medians. Second, it retrieves the nearest normal vector of c * from the full memory using k = 1 . The report identifies its training video and frame and gives the Euclidean distance in standardized descriptor space. This retrieval provides an observed normal example at the same location. Third, it displays the video’s frame-score trace and alarm threshold. The displayed descriptor ranking describes marginal deviations and is not an additive decomposition of the k = 3 scoring distance or frame score.
YOLO-World [31] is then applied to I t + 1 through the Ultralytics implementation [37]. It uses the released yolov8m-worldv2 weights, a confidence threshold of 0.25, and an input size of 640 pixels. Its vocabulary contains 31 prompts encoded by the text encoder of Contrastive Language–Image Pretraining (CLIP) [31,38]. These prompts name people and visible states, vehicles, weapons and tools, bags and containers, fire, smoke, and dogs (Appendix C). Motion concepts such as running and fighting are excluded because the kinematic branch handles motion. The box with the largest intersection area with c * supplies the associated object candidate, class, and confidence. If no box intersects the cell, the report states that no candidate was associated and retains the kinematic alarm. YOLO-World runs only for alarm frames and never modifies U t .
Fixed templates assemble these elements into a report. The report states when the alarm occurred (video and frame) and where the strongest response was located (cell c * and T t ). It also lists the motion measurements that departed most from the normal medians and their direction, the nearest normal training sample in H13 space, and the associated object candidate, if any. Figure 1 (bottom row) shows one report. Panel (a) shows the alarm frame with the percentile heat map, the highest-scoring cell c * (red), and the remaining cells of T t (dashed orange). Thin green boxes show detections, while a thicker labeled box identifies the associated candidate, if any. Panel (b) shows the standardized H13 values of c * , with the two largest departures highlighted. Panel (c) shows the nearest normal training sample of c * with its frame index and descriptor-space distance. Panel (d) is the frame-score trace with the ground-truth anomaly interval (shaded), the alarm threshold (dotted), and the peak alarm frame (red dot). Additional complete reports are given in Appendix D.

5. Experiments

5.1. Datasets and Preprocessing

Three publicly available fixed-camera benchmarks are used. Each is treated as a separate scene with its own normal reference.
  • UCSD Ped2 [8]: 16 training videos (2550 frames) and 12 test videos (2010 frames) of a pedestrian walkway at 360 × 240 pixels. Anomalies are nonpedestrian entities, such as cyclists, skaters, and small vehicles, on the walkway.
  • CUHK Avenue [9]: 16 training videos (15,328 frames) and 21 test videos (15,324 frames) at 640 × 360 pixels. Anomalies include running, throwing objects, and loitering. The dataset documentation notes a small number of outliers in the training split and a test sequence affected by camera shake. The training split is used as released.
  • IITB-Corridor [10]: 208 training videos (301,999 frames) and 150 test videos (181,567 frames) of a campus corridor recorded at 1920 × 1080 pixels. Anomalies include fighting, chasing, loitering, and unattended baggage.
Ped2 and Avenue frames are processed at their native resolution. IITB-Corridor frames are resized to 1024 × 576 pixels with area interpolation, a leading black frame is removed when present, and the annotations are aligned with the retained sequence. The frame counts above are given after this removal. Frame rates are taken as 10 fps for Ped2, whose frame sequences carry no timing information, and as the decoded rate of 25 fps for Avenue. For IITB-Corridor, whose videos are reported at 25 fps [39], the frames were processed as an extracted image sequence with an assumed rate of 30 fps. Section 5.7 shows that using 25 fps instead changes the micro AUROC by 0.03 points. Table 4 lists the resulting geometry. The scene-dependent quantities in its lower part follow from D and δ t through the definitions given in Section 4.1 and Section 4.2. Complete preprocessing and label-alignment rules are given in Appendix A.1.
Table 4. Dataset configuration after preprocessing. The lower rows give constants derived from image geometry and frame rate.

5.2. Evaluation Protocol

In line with most VAD studies [16,17,18,22,24,26], detection performance is measured by frame-level AUROC [40]. Let P and N denote the anomalous and normal subsets of the scored frames, respectively. AUROC measures how often an anomalous frame receives a higher score than a normal frame, with half credit for tied scores,
AUROC ( P , N ) = 1 | P | | N | ∑ i ∈ P ∑ i ′ ∈ N 1 ( U i > U i ′ ) + 1 2 1 ( U i = U i ′ ) .
Here, i and i ′ index scored frames in the evaluation set, U i denotes the score assigned to frame i, and 1 ( · ) is the indicator function. Each U i is the pair score ending at that frame. Micro-averaged AUROC pools frames from all annotated test videos, with P = ⋃ v P v and N = ⋃ v N v . Macro-averaged AUROC is | V ± | − 1 ∑ v ∈ V ± AUROC ( P v , N v ) , where V ± contains only videos with both labels. The pooled micro average [24,41] also includes videos containing only normal or only anomalous frames. Each video’s first frame is excluded because it has no score. The main results use unsmoothed scores without per-video normalization. Alarm behavior is summarized by the false-positive rate (FPR) and true-positive rate (TPR) at θ = 0.85 , computed from the stored scores of all scored test frames. FPR is the fraction of normal frames reaching the threshold, and TPR is the corresponding fraction of anomalous frames. Section 5.7 evaluates how smoothing changes both rates.

5.3. Implementation Details and Computational Cost

The main configuration was fixed before test evaluation and used for all three datasets without test-based tuning.
We measured frame-by-frame runtime on a single NVIDIA A100-SXM4-40GB GPU at batch size 1 (Table 5). For each dataset, we timed the first 1000 test pairs after 50 warm-up pairs, in video order. Each frame was paired with the preceding frame from the same video. No future frames were used. Score-availability time starts before tensor conversion and GPU transfer of the current frame. It ends when the frame score is available, before thresholding. It includes optical flow, descriptor extraction, memory lookup, and scoring. Frame reading is measured separately and includes resizing for IITB-Corridor.
Table 5. Online runtime of X-VAD with a batch size of one on a single NVIDIA A100-SXM4-40GB GPU. Timings are reported as mean (95th percentile) over 1000 test pairs per dataset. Report times cover alarm frames only; combined times are summed per alarm frame.
Report generation is timed only for alarm frames. It includes nearest-normal retrieval, YOLO-World inference and object association, and text-report assembly. Loading the normal reference image, rendering the report figure, and notification delivery are excluded.
Optical flow accounts for 81–84% of score-availability time. Report generation adds 16.3–18.3 ms per alarm frame on average. The score-availability rates are 20.0, 19.8, and 12.1 frames/s for Ped2, Avenue, and IITB-Corridor, respectively. These rates exceed the assumed 10 fps for Ped2 but remain below 25 fps for Avenue and IITB-Corridor. Including frame reading reduces the IITB-Corridor rate to approximately 10 frames/s before report generation. Peak GPU allocation is reported by PyTorch; host memory was not measured.
The main AUROC, TPR, and FPR results use stored offline scores. Online and offline alarm decisions agree for 99.7–99.9% of the timed pairs. Detailed consistency checks and the sampled video identifiers are provided in the appendix.
Appendix A.5 lists the software versions.

5.4. Frame-Level Anomaly Detection

Table 6 reports results under the same pooled evaluation protocol for all three datasets. X-VAD achieves micro AUROC values of 85.78% on Ped2, 84.42% on Avenue, and 75.43% on IITB-Corridor. The corresponding macro AUROCs, averaged over the videos that contain both normal and anomalous frames, are 89.22%, 86.29%, and 74.34%.
Table 6. Frame-level AUROC (%) and alarm rates at θ = 0.85 (%) on the three benchmarks. The macro average is taken over the videos that contain both normal and anomalous frames (8 of 12, 19 of 21, and 134 of 150 test videos). Micro AUROC, TPR, and FPR pool all annotated test videos.
At θ = 0.85 , the TPRs are 87.69%, 90.78%, and 62.73%, and the FPRs are 41.46%, 46.32%, and 26.53%. These rates are computed from the stored scores of all scored test frames and describe the operating point used for report generation; Section 5.7 shows how causal smoothing changes them.
Appendix B provides the per-video results for Ped2 and Avenue.

5.5. Comparison with Published Methods

Table 7 compares X-VAD with published frame-level results, including the methods reviewed in Section 2. AI-VAD [42] provides an attribute-based reference that combines object velocity, pose, and pretrained deep features. The published results use their original evaluation protocols and were not rerun with common preprocessing or postprocessing. Table 7 therefore lists the scoring input and the postprocessing stated in each publication. These differences should be considered when interpreting the comparison. X-VAD uses motion descriptors for scoring and applies YOLO-World only after an alarm.
Table 7. Published frame-level AUROC (%) and X-VAD results.
On IITB-Corridor, X-VAD achieves 75.43%, compared with 76.4% for VideoPatchCore, 72.4% for HGNF, and 67.12% for MTP. VideoPatchCore also avoids training an anomaly scorer but uses object regions and pretrained features. X-VAD reaches 84.42% on Avenue, compared with 93.7% for AI-VAD. On Ped2, it reaches 85.78%, while the highest listed result is 99.3%. Ped2 contains nonpedestrian anomalies, and only 24 of its 64 cells meet X-VAD’s memory requirements (Table 3). These findings motivate closer examination of the motion representation and spatial coverage. EVAL also evaluates region- and track-based localization. Its frame-level Avenue result is included here to match the reported evaluation metric.

5.6. Ablation Study

Table 8 evaluates descriptor groups and scoring choices on Ped2, Avenue, and IITB-Corridor. Each variant changes one component using stored descriptors. Distances and calibration are recomputed when the descriptor coordinates, k, or calibration setting changes. Aggregation variants use the same cell scores and change only the number of selected cells. The baseline reproduces the original cell and frame scores exactly. Descriptor ablations retain the full model’s standardization statistics and validity rules, so they isolate coordinate removal within the existing representation. All fitted quantities use normal training data, and no variant replaces the fixed main configuration.
Table 8. Ablation study: frame-level micro AUROC (%) and change from the full model in percentage points, computed before rounding. One component is changed at a time, with all other constants as in Section 4 and Appendix A.
The descriptor groups have different effects in the three scenes. Removing direction increases Ped2 AUROC by 4.33 percentage points but decreases Avenue AUROC by 2.62 points. Removing deformation decreases Ped2 AUROC by 2.32 points and increases Avenue AUROC by 1.30 points. Deformation removal causes the largest group-level decrease on Ped2, while direction removal causes the largest decrease on Avenue and IITB-Corridor (2.62 and 1.63 points, respectively). Removing temporal change decreases Avenue AUROC by 2.49 points but increases Ped2 and IITB-Corridor AUROC by 1.22 and 0.19 points, respectively. The results support complementary, scene-dependent roles for the groups, rather than a claim that every group improves performance on every dataset. The full H13 set is retained to avoid selecting dataset-specific subsets based on test performance.
Aggregation and calibration have the largest effects among the scoring choices. Top-1 decreases AUROC by 14.60 points on Ped2 and 1.43 points on IITB-Corridor, while top-8 decreases Avenue AUROC by 2.87 points. Top-4 gives the highest tested aggregation result on Ped2 and IITB-Corridor and is 0.60 points below top-2 on Avenue. Changing k from 3 to 1 or 5 changes AUROC by less than 0.5 points. Using two or eight calibration folds changes it by at most 0.14 points. The leave-self-out variant excludes only the query observation. Other observations from the same video remain eligible. Its changes are +0.35, −0.03, and −0.19 points on Ped2, Avenue, and IITB-Corridor, respectively. Thus, four-fold calibration is not uniquely optimal in these experiments. However, it retains a video-separated reference and prevents self-matches. Replacing calibrated percentiles with raw k-NN distances decreases AUROC by 15.30, 1.13, and 0.91 points on Ped2, Avenue, and IITB-Corridor, respectively, supporting per-cell calibration for the tested configuration.
Table 9 reports the removal of each descriptor separately. On Ped2, removing horizontal motion ( h 5 ) causes the largest individual decrease, at 1.18 points. Removing direction coherence ( h 7 ) instead increases AUROC by 3.42 points. On Avenue, temporal change ( h 13 ) has the largest individual removal effect, at −2.49 points, followed by vertical motion ( h 6 ), at −1.59 points. On IITB-Corridor, direction coherence ( h 7 ) has the largest individual decrease, at 0.57 points, followed by horizontal motion ( h 5 ), at 0.36 points. These results measure conditional contributions within H13, not independent feature importance or explanation faithfulness. They do not establish that all 13 descriptors are individually necessary.
Table 9. Individual-descriptor ablation: frame-level micro AUROC (%) and change from the full model in percentage points, computed before rounding. Each row removes one H13 coordinate and keeps the full model’s standardization statistics and validity rules.

5.7. Score Smoothing and Assumed Frame Rate

Table 10 evaluates causal moving averages of the frame scores. Each window contains the current score and preceding scores from the same video. At the start of a video, only the available history is used. Fitting remains unchanged.
Table 10. Frame-level micro AUROC (%) and false-positive rate at the alarm threshold θ = 0.85 (FPR, %) with a causal moving average of the frame scores.
A window of about 0.5 s increases micro AUROC by 1.99 points on Ped2 and 0.96 points on IITB-Corridor, but decreases it by 0.19 points on Avenue. At θ = 0.85 , FPR decreases from 41.46% to 36.13% on Ped2, from 46.32% to 44.56% on Avenue, and from 26.53% to 23.49% on IITB-Corridor. The corresponding TPR changes, relative to the unsmoothed values in Table 6, are +0.49, −1.19, and −1.39 points, respectively. Smoothing therefore reduces FPR at this threshold, with different effects on ranking and sensitivity across datasets. The main results retain unsmoothed scores to link each report directly to the target frame’s kinematic score. The temporal history used by h 13 remains part of that score.
The frame-rate experiment varies the assumed frame rate while retaining the same frame pairs. It evaluates the frame-rate coefficient in descriptor computation, rather than temporal subsampling. The assumed rate determines δ t and the rounded temporal gap Δ . Changing δ t rescales speed, deformation, and the active-motion threshold by the same factor. Per-cell standardization largely removes this common scaling. Remaining differences can arise from Δ , numerical effects, and the scale floor shared across descriptors.
For Ped2 and Avenue, a shared flow extraction is used across the frame-rate settings, and the thresholds are re-estimated for each rate. IITB-Corridor variants are derived from stored descriptors and direction–activity distributions. Their thresholds scale with the rate, so the active masks are unchanged. Scaling statistics, memories, and calibration are refitted on normal training data for each rate. Table A1 reports the results, with changes measured against the reference rate of each sensitivity run.
Across the reported rates, the largest absolute AUROC changes are 0.93 points on Ped2, 0.44 on Avenue, and 0.12 on IITB-Corridor. Using the reported 25 fps instead of the assumed 30 fps on IITB-Corridor changes AUROC from 75.43% to 75.40%. These results indicate limited sensitivity to the assumed frame-rate coefficient over the evaluated ranges.

5.8. Qualitative Explanation and Failure Analysis

The qualitative analysis considers a high-performing Avenue video and a false-alarm example from IITB-Corridor. Each displayed frame is the frame with the maximum score within its video (the first such frame in the case of ties). Figure 2 shows the complete explanation report for Avenue video 03, whose within-video AUROC is 99.1%. At frame 298, the report identifies elevated median speed ( h 1 , z = + 33.0 ) and upper speed quantile ( h 2 , z = + 29.8 ) relative to the cell’s normal medians. The selected frame lies within the annotated anomalous interval. Although no object candidate is associated with the selected cell, the report characterizes the alarm region through its unusually high motion measurements.
Figure 2. Avenue video 03: complete explanation report at frame 298 (within-video AUROC 99.1%).
Figure 3 shows IITB-Corridor video 000225, whose 835 scored frames are all labeled normal. Nevertheless, 479 frames reach the alarm threshold, giving a within-video false-positive fraction of 57.4%. At frame 417, a person is associated with the selected region, and the largest deviations are reduced direction coherence ( h 7 , z = − 90.4 ) and temporal change ( h 13 , z = + 10.5 ). The nearest normal reference is training video 000066, frame 1637. This case shows that a kinematic departure and an associated person can occur during normal activity. The report presents the measurements behind the selected region, while the annotations identify the alarm as a false positive.
Figure 3. IITB-Corridor video 000225: complete explanation report at frame 417. Of the 835 normal-labeled frames, 479 reach the alarm threshold. Within-video AUROC is undefined for this single-class video, but its frames remain included in the pooled micro AUROC.
Appendix D presents reports for the highest- and lowest-performing Ped2 videos and the lowest-performing Avenue video. The score trace describes temporal discrimination. The selected region, descriptor profile, and normal reference provide an inspectable account of the reported motion.

6. Discussion

X-VAD addresses the research question by using explicit local motion descriptors for both anomaly scoring and kinematic reporting. Each report connects an alarm with its image region, measured deviations, and an observed normal reference. The method reaches 75.43% micro AUROC on IITB-Corridor, close to VideoPatchCore’s 76.4%. Its Ped2 and Avenue results are 85.78% and 84.42%, compared with the highest listed values of 99.3% and 93.7%. These gaps of 13.52 and 9.28 percentage points show that the evaluated motion-only configuration provides weaker frame-level discrimination on these two benchmarks.
The ablations help characterize this behavior. Removing deformation causes the largest group-level decrease on Ped2, while removing direction or temporal change has a greater effect on Avenue. Some descriptor removals improve AUROC, showing that the benefit of a measurement depends on the scene and the remaining representation. The fixed H13 configuration provides a common basis for evaluating these effects. Per-cell calibration and spatial aggregation also influence performance, while the tested changes in neighbor count and calibration-fold count have smaller effects.
The qualitative reports illustrate how the same representation describes detections and false alarms. Avenue video 03 shows elevated speed during an annotated anomalous interval. In IITB-Corridor video 000225, normal activity instead departs substantially from the local reference. Region-specific comparison, also used by EVAL [26], makes this departure interpretable in its spatial context. X-VAD expresses the comparison through explicit flow measurements and adds object information after scoring. An operator can therefore inspect the region, examine its descriptor profile, and compare it with a normal example from the same location.
This reporting function is distinct from maximizing detection accuracy. A stronger anomaly detector combined with an object detector may provide better discrimination and object context. Superiority over that combination has not been established for X-VAD. The present contribution is the shared kinematic representation linking the score and report. The reported descriptor ranking describes departures from normal medians, while scoring uses distances to neighboring normal vectors. The ranking is therefore descriptive rather than an additive attribution of the score. The observed AUROC gaps do not establish that interpretability causes a loss of accuracy.

Limitations

Motion-only scoring has limited sensitivity to stationary objects and unusual appearance without displacement. Slow motion may fall below the active-motion threshold or resemble the normal reference. Post-alarm object annotation cannot recover an event that does not trigger the kinematic scorer. Perspective, occlusion, illumination changes, and camera shake can also affect optical flow. Spatial coverage is another constraint: only 24 Ped2 cells meet the memory requirements, and the four-cell mean requires four nonzero responses to reach the alarm threshold.
The evaluation covers three fixed-camera scenes, with descriptor and scoring ablations on all three scenes. Alternative flow estimators, controlled flow-error perturbations, and quantitative localization were not evaluated. Explanation faithfulness, sufficiency, and operator benefit also require dedicated evaluation. The descriptor ablations assess detection performance.

7. Conclusions

This study introduced X-VAD, a video anomaly detection method that produces kinematic reports. X-VAD compares 13 optical-flow descriptors with normal observations stored for each image cell. The same representation is used for anomaly scoring and for reports that show the alarm region, the descriptor deviations, and the nearest normal example. Post-alarm object annotation adds context without changing the score.
With a single configuration for all three benchmarks, X-VAD achieved micro AUROC values of 85.78% on Ped2, 84.42% on Avenue, and 75.43% on IITB-Corridor. The IITB-Corridor result is close to the 76.4% reported for VideoPatchCore. The Ped2 and Avenue results remain below the highest listed values of 99.3% and 93.7%, respectively. These published values were obtained under the original evaluation protocols of the respective studies. At the alarm threshold, the TPRs were 87.69%, 90.78%, and 62.73%, at FPRs of 41.46%, 46.32%, and 26.53%. With frame-by-frame processing on one GPU, the mean score-availability times were 50.0, 50.6, and 82.6 ms. Report generation, including YOLO-World inference, added 16.3–18.3 ms per alarm frame. The measured score-availability rate exceeded the frame rate only for Ped2, whose 10 fps is assumed. The ablations showed that descriptor contributions were scene-dependent. Among the scoring choices, spatial aggregation and calibration had the largest effects. Causal smoothing reduced the false-positive rate at the fixed alarm threshold in the tested settings. AUROC changed little when the assumed frame rate was varied within the evaluated ranges.
The main contribution is a shared kinematic representation of optical flow that serves both anomaly scoring and inspectable reporting, including the examination of false alarms. Future work will test the descriptors with other optical-flow estimators and under controlled flow perturbations.

Author Contributions

Conceptualization, M.G. and A.E.Y.; methodology, M.G.; software, M.G.; validation, M.G., A.E.Y. and M.K.; formal analysis, M.G.; investigation, M.G.; resources, A.E.Y. and M.K.; data curation, M.G.; writing—original draft preparation, M.G.; writing—review and editing, A.E.Y. and M.K.; visualization, M.G.; supervision, A.E.Y. and M.K.; project administration, M.K. All authors have read and agreed to the published version of the manuscript.

Funding

M.G. was supported by a doctoral scholarship from the Scientific and Technological Research Council of Türkiye (TÜBİTAK) under the BİDEB 2211-A National PhD Scholarship Program. The APC was funded by M.G.

Institutional Review Board Statement

Not applicable.

Data Availability Statement

Publicly available datasets were analyzed in this study. These data can be found here: UCSD Ped2, http://www.svcl.ucsd.edu/projects/anomaly/dataset.htm (accessed on 17 September 2026); CUHK Avenue, https://www.cse.cuhk.edu.hk/leojia/projects/detectabnormal/dataset.html (accessed on 17 September 2026); and IITB-Corridor, https://rodrigues-royston.github.io/Multi-timescale_Trajectory_Prediction/ (accessed on 17 September 2026). The source code of X-VAD is available from the corresponding author upon reasonable request, because it is part of an ongoing doctoral dissertation.

Acknowledgments

This study was conducted as part of the doctoral dissertation “Deep Learning-Based Detection of Suspicious Individuals, Vehicles, and Objects in Smart Campus Videos” prepared by Melisa Gözet at Ankara University under the supervision of Asım Egemen Yılmaz and the co-supervision of Mehmet Karaköse. It builds on research conducted within TÜBİTAK project no. 5220154, led by Mehmet Karaköse. During the preparation of the revised manuscript, the authors used OpenAI Codex (GPT-6.1 Sol) solely for language editing. The authors have reviewed and edited the output and take full responsibility for the content of this publication.

Conflicts of Interest

The authors declare no conflicts of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript; or in the decision to publish the results.

Appendix A. Implementation Details

This appendix specifies the implementation of X-VAD evaluated in the main text. Each training and test video is processed independently. The first retained frame has no score, and every following frame receives the score of the pair ending at that frame.

Appendix A.1. Input Processing

The frame-rate parameter was set to 10 fps for Ped2 and 30 fps for IITB-Corridor, whose videos are reported at 25 fps. For Avenue, the decoded frame rate of 25 fps was used. IITB-Corridor images are resized by area interpolation from 1920 × 1080 to 1024 × 576 . The first frame is dropped if its mean intensity is below 8. When the annotation array then exceeds the retained frame count by one, its first entry is also dropped. Otherwise, the annotation length is required to equal the number of retained frames. Positive annotation values are binarized to one. Avenue frame labels indicate whether any pixel in the released annotation mask is positive. Ped2 uses the released frame intervals, checked against the mask-derived frame labels.

Appendix A.2. Feature Extraction and Calibration

SEA-RAFT uses the spring-M configuration and checkpoint MemorySlices/Tartan-C-T-TSKH-spring540x960-M. Four refinement iterations are applied with scale zero, corresponding to the processed resolution. Gaussian smoothing uses reflection padding and radius ⌈ 3 σ ⌉ , where σ = 0.002 D . Derivatives use central differences in the image interior and one-sided differences at boundaries. Mask dilation is applied before partitioning the image into cells, allowing the support to cross cell boundaries.
Magnitude calibration samples 16 pixels per cell in each selected training pair, using fixed indices and cyclic batch-dependent offsets. Within each training video, pairs are sampled at a stride of max { 1 , ⌊ N pairs / 5000 ⌋ } . Here, N pairs is the total number of pairs across all training videos of the scene. Magnitude calibration uses 2534 pairs on Ped2, 5111 on Avenue, and 5128 on IITB-Corridor. The IITB-Corridor pair stride is 60.
Quantiles use linear interpolation. Tail means are zero for supports smaller than eight pixels. Descriptors h 1 – h 7 use motion validity, h 8 – h 12 use dilated-mask validity, and h 13 becomes valid after the temporal delay, independently of the first two flags. The raw active fraction can be nonzero for fewer than eight active pixels, but its standardized coordinate is then zero. Direction histograms use linear assignment to adjacent circular bins weighted by active flow magnitude. A constant of 10 − 12 is added to their normalization denominator and to the direction-coherence denominator. The mixture denominator used in the Jensen–Shannon divergence is floored at 10 − 12 . Zero-mass terms contribute zero, natural logarithms are used, and no square root is taken.
For each cell and descriptor, at least ten valid training values are required to estimate the median and the scaled MAD. Otherwise, both are set to zero. The scale floor is the 10th percentile of positive scaled MADs across the scene’s cells and descriptors, or 10 − 6 if none is positive. The final scale is the maximum of the scaled MAD and this floor.

Appendix A.3. Memory and Score Computation

Each cell requires at least 100 motion-valid training vectors. Memories retain at most 40,000 vectors through evenly spaced integer indices. Four folds are assigned by sorted training-video index modulo four. Held-out motion-valid vectors are compared with vectors in the remaining folds, using the same memory cap. A fold contributes calibration distances only if at least 100 memory vectors are available for the cell. A cell is scorable when a full memory and at least one calibration distance are available.
Distances are computed by exhaustive Euclidean search, and the three smallest distances are averaged. The percentile uses strict inequality for ties (equivalent to a left insertion index) and the add-one correction given in Equation (10). Thresholds and scaling statistics are fitted once on the entire training split. Fold separation applies only to neighbor membership. Test queries use the full memory. The calibration therefore supplies an empirical distance reference rather than a conformal probability or a prescribed false-alarm rate (Section 4.3). Nonscorable or motion-invalid cells contribute zero, and the denominator of the frame-score average remains four.
The descriptor memories contain at most 64 × 40 , 000 vectors of 13 single-precision values, requiring up to 133.1 MB for the vectors alone. This bound excludes model weights, intermediate tensors, calibration arrays, and search buffers. Building the IITB-Corridor memories and calibration distributions from extracted descriptors takes 13 s.

Appendix A.4. Runtime Measurement and Score Consistency

The timed pairs were drawn from Ped2 Test001–Test007, Avenue video 01, and IITB-Corridor videos 000209–000211. Over the 1000 timed pairs per dataset, the maximum absolute differences between online and stored offline scores are approximately 0.032, 0.059, and 0.067. The alarm decisions at θ = 0.85 agree for 99.7%, 99.9%, and 99.7% of these pairs. For the same pairs, passing the stored descriptors to the online scorer gives maximum absolute differences of approximately 5.0 × 10 − 4 , 8.4 × 10 − 5 , and 3.4 × 10 − 5 from the stored scores, with identical alarm decisions.
The main experiments were run on one NVIDIA A100-SXM4-80GB graphics processing unit (GPU). With batches of eight pairs, SEA-RAFT inference takes 6.3, 14.0, and 36.1 ms per pair at the Ped2, Avenue, and IITB-Corridor resolutions, respectively. These are batch-averaged inference times. The extraction pipeline, including optical flow, H13, and validity flags, processes approximately 59 pairs/s on Avenue and 17.5 pairs/s on IITB-Corridor. These rates describe offline throughput and exclude memory lookup and post-alarm annotation and reporting.

Appendix A.5. Software

The main experiments used an NVIDIA A100-SXM4-80GB GPU, Python 3.13.15, PyTorch 2.11.0 (CUDA 12.8), OpenCV 5.0.0, NumPy 2.1.3, Ultralytics 8.4.142, scikit-learn 1.6.1, and SciPy 1.16.3. Sampling and fold assignment use fixed indices. Benchmarking in cuDNN is disabled, its deterministic mode is enabled, and the PyTorch seed is set to zero. The deterministic-algorithms check is enabled in warning mode, so that an operation without a deterministic kernel raises a warning rather than an error [43]. The YOLO-World checkpoint is yolov8m-worldv2.pt. The additional ablation and frame-rate experiments used PyTorch 2.11.0 with CUDA 13.0 on an NVIDIA A100-SXM4-80GB GPU. The new Ped2 flow extraction for the frame-rate runs used an NVIDIA Tesla T4 GPU instead. Their recorded NumPy, scikit-learn, and SciPy versions were unchanged, and the frame-rate runs recorded OpenCV 4.14.0. The online runtime measurements in Table 5 used an NVIDIA A100-SXM4-40GB GPU, Python 3.13.15, PyTorch 2.11.0 (CUDA 13.0), OpenCV 4.14.0, NumPy 2.1.3, Ultralytics 8.4.142, scikit-learn 1.6.1, and SciPy 1.16.3. They used the same SEA-RAFT checkpoint, YOLO-World weights, and determinism settings as the main experiments.

Appendix A.6. Pseudocode of the Subroutines

The following subroutines specify input processing, descriptor computation, and normal-only fitting for Algorithm 1. Algorithm A1 reads and aligns one video. Algorithm A2 computes H13 and the validity flags for one frame pair. Algorithm A3 fits the normal reference for one scene. All constants are defined in Section 4 and Appendix A.
Algorithm A1 Input processing and label alignment for one video
Require: Frame sequence I 1 , … , I T 0 at native size; processed size ( W , H ) ; test flag; frame labels ℓ 1 , … , ℓ L (test videos only)
Ensure: Processed frames I 1 , … , I T ; frame pairs ( I t , I t + 1 ) , t = 1 , … , T − 1 ; aligned labels y 2 , … , y T (test videos only)
  1: if the mean intensity of I 1 is below 8 (IITB-Corridor) then
  2:       drop I 1 ▹ leading black frame
  3: end if
  4: for all remaining frames do
  5:       if a processed size smaller than the native size is configured then
  6:             resize to ( W , H ) by area interpolation▹ IITB-Corridor: 1920 × 1080 → 1024 × 576
  7:       else if the native size is not a multiple of 8 then
  8:             crop the bottom and right borders to the largest multiple of 8 ▹ not triggered for the three datasets
  9:       end if
10:       convert to RGB
11: end for
12: form the T − 1 consecutive pairs within the video; pairs do not cross video boundaries
13: if test video then
14:       binarize the labels: ℓ i ← 1 [ ℓ i > 0 ] ▹ Ped2: released frame intervals; Avenue: any positive pixel in the released mask; IITB-Corridor: released .npy array
15:       if  I 1 was dropped and L = T + 1  then
16:            drop ℓ 1 ; L ← L − 1
17:       end if
18:       require L = T
19:        y t + 1 ← ℓ t + 1 for t = 1 , … , T − 1 ▹ score of pair t is attributed to frame t + 1 ; frame 1 receives no score
20: end if
Algorithm A2 H13 descriptors and validity flags for one frame pair
Require: Raw flow F t (pixels); geometry D, δ t , σ = 0.002 D ; thresholds τ c ; distribution P t − Δ of the same video (if t > Δ )
Ensure:  h t , c , 1 . . 13 , flags ( motion _ valid , dcs _ valid , js _ valid ) t , c (validity of the speed/direction, divergence–curl–shear, and temporal descriptors), and P t for all cells c
  1: f ← F t / ( D δ t ) ; m ← ∥ f ∥ 2 ▹ Equation (2)
  2: f ¯ ← G σ ∗ f with reflection padding and kernel radius ⌈ 3 σ ⌉
  3: J 11 , J 12 , J 21 , J 22 ← D · partial derivatives of f ¯ (central; one-sided at the border)▹ Equation (3)
  4: div ← J 11 + J 22 ;  curl ← J 21 − J 12 ;  shear ← ( J 11 − J 22 ) 2 + ( J 12 + J 21 ) 2 ▹ Equation (4)
  5: A ← { m > τ c ( · ) } over the whole image; A + ← square maximum filter of A with half-width ⌈ σ ⌉
  6: for all cells c do
  7:        A c ← A ∩ c ; A c + ← A + ∩ c ; N A ← | A c | ; N A + ← | A c + |
  8:        motion _ valid ← N A ≥ 8 ; dcs _ valid ← N A + ≥ 8
  9:        h 1 ← Q 0.50 ( m ∣ A c ) ; h 2 ← Q 0.90 ( m ∣ A c ) (linear interpolation); h 3 ← TM + ( m ∣ A c ) ; h 4 ← N A / N P
10:        h 5 ← mean ( f u ∣ A c ) ; h 6 ← mean ( f v ∣ A c ) ; h 7 ← ∥ ∑ A c f ∥ 2 / ( ∑ A c m + 10 − 12 )
11:       if not motion_valid then
12:              h 1 , h 2 , h 5 , h 6 , h 7 ← 0 ▹ h 3 is zero by the tail-mean rule; the raw h 4 is retained
13:       end if
14:        h 8 , h 9 ← TM − , TM + ( div ∣ A c + ) ; h 10 , h 11 ← TM − , TM + ( curl ∣ A c + ) ; h 12 ← TM + ( shear ∣ A c + )
            where TM ± ( x ∣ S ) averages the min { max ( ⌈ 0.01 | S | ⌉ , 8 ) , | S | } largest (smallest) values and is 0 if | S | < 8
15:        H ← eight-bin circular histogram of atan2 ( f v , f u ) over A c , weight m, linear split between adjacent bins, normalized by ( ∑ H + 10 − 12 )
16:        P t ← [ 1 − h 4 , h 4 H 1 , … , h 4 H 8 ] ▹ Equation (6)
17:       if  t > Δ  then
18:              h 13 ← JS ( P t , P t − Δ ) / log 2 with M = 1 2 ( P t + P t − Δ ) ▹ Equation (7)
                                                       terms p log ( p / max ( M , 10 − 12 ) ) for p > 0 , zero otherwise; js _ valid ← true
19:       else
20:              h 13 ← 0 ; js _ valid ← false
21:       end if
22: end for
Algorithm A3 Normal-only fitting for one scene: thresholds, scaling statistics, memories, and calibration distributions
Require: Normal training videos V 1 , … , V n with N pairs pairs in total; constants k = 3 , MIN _ MEM = 100 , MAX _ MEM = 40 , 000 , four folds
Ensure:  τ c ; μ c , j , s ^ c , j ; memories M c ; sorted reference distances { d i ( c ) } ; scorable set
   Active-motion thresholds
  1: SUB ← max { 1 , ⌊ N pairs / 5000 ⌋ } ; stride ← ⌊ N P / 16 ⌋
  2: for all videos V i and pairs t with ( t − 1 ) mod SUB = 0 , processed in batches b = 0 , 1 , …  do
  3:        m ← ∥ F t / ( D δ t ) ∥ 2 ; for every cell take the 16 pixels at positions { p · stride + ( b mod stride ) : p = 0 , … , 15 }
  4: end for
  5: for all cells c do
  6:        τ c ← max { median ( m ˜ c ) + 3 ( 1.4826 ) MAD ( m ˜ c ) , 0.3 / ( D δ t ) } ▹ Equation (5)
  7: end for
      Descriptors and robust scaling
  8: run Algorithm A2 on all training pairs; collect h t , c , j and the validity flags
  9: for all cells c and descriptors j do
10:        x ← values of h · , c , j whose group flag is valid ( j ≤ 7 : motion_valid; 8 ≤ j ≤ 12 : dcs_valid; j = 13 : js_valid)
11:       if  | x | ≥ 10  then
12:              μ c , j ← median ( x ) ; s c , j ← 1.4826 MAD ( x )
13:       else
14:              μ c , j , s c , j ← 0
15:       end if
16: end for
17: ε ← 10th percentile of { s c , j ∣ s c , j > 0 } ( 10 − 6 if none); s ^ c , j ← max { s c , j , ε }
18: z t , c , j ← ( h t , c , j − μ c , j ) / s ^ c , j where the group flag is valid, else 0 ▹ Equation (8)
      Out-of-fold calibration and memories
19: assign video V i to fold ( i − 1 ) mod min { 4 , n }
20: for all folds f and cells c do
21:        R ← motion-valid vectors of c not in fold f, evenly spaced subsample if | R | > MAX _ MEM ; Q ← motion-valid vectors of c in fold f
22:       if  | R | ≥ MIN _ MEM and Q ≠ ∅  then
23:              d q ← mean distance of z q to its k nearest vectors in R for all q ∈ Q ▹ Equation (9), exact search
24:       end if
25: end for
26: for all cells c do
27:        { d i ( c ) } ← sorted out-of-fold distances of c
28:        M c ← all motion-valid vectors of c, evenly spaced subsample if more than MAX _ MEM , provided their number is at least MIN _ MEM
29:       c is scorable if and only if M c exists and { d i ( c ) } ≠ ∅
30: end for

Appendix B. Additional Evaluation Results

Table A1 reports the sensitivity of the frame-level micro AUROC to the assumed frame rate, which is discussed in Section 5.7.
The reference micro AUROCs of the frame-rate runs are 85.93% for Ped2, 84.42% for Avenue, and 75.43% for IITB-Corridor. Ped2 and Avenue use a new flow extraction shared across rates, so their frame scores are not identical to those of the main experiment. IITB-Corridor uses stored descriptors and half-precision direction–activity distributions. Reconstructing h 13 changes its 30 fps reference AUROC by less than 0.001 percentage points. This reconstructed reference also supplies the IITB-Corridor smoothing results.
Table A2 reports macro-averaged AUROC, computed as the unweighted mean of the within-video AUROCs over videos containing both normal and anomalous frames. Within-video AUROC is undefined for single-class videos.
Table A1. Change in micro AUROC (percentage points) for different assumed frame rates with unchanged frame pairs. Changes are relative to the reference rate (*) of each run and computed before rounding.
Table A2. Macro-averaged AUROC (%).
Figure A1 summarizes the variation across Ped2 and Avenue videos. Table A3 and Table A4 give their per-video results.
Figure A1. Within-video AUROC on Ped2 and Avenue. N/A denotes videos whose frames all carry the same ground-truth label.
Table A3. UCSD Ped2: within-video AUROC (%). N/A denotes videos whose frames all carry the same ground-truth label.
Table A4. CUHK Avenue: within-video AUROC (%). N/A denotes videos whose frames all carry the same ground-truth label.

Appendix C. Semantic Vocabulary

The 31 prompts are as follows: person, person lying on the ground, person wearing a face mask, person wearing a balaclava, person wearing a helmet, group of people, bicycle, motorcycle, scooter, skateboard, car, bus, truck, gun, pistol, rifle, knife, machete, axe, hammer, baseball bat, crowbar, scissors, backpack, handbag, suitcase, abandoned bag, cardboard box, fire, smoke, and dog. The prompts define the detector vocabulary. They do not imply that each category occurs in the test videos. A category such as “abandoned bag” is a detector prediction. Abandonment itself requires temporal evidence.

Appendix D. Complete Explanation Examples

Report figures and their descriptions use zero-based frame and grid row–column indices. The mathematical notation uses one-based indices. The descriptor plots show the standardized deviations z defined in Equation (8). For divergence and curl, “negative” and “positive” label the lower and upper tails defined in Table 2. The raw tail values are not restricted to those signs.
The figures below show complete explanation reports. Panels provide the alarm frame and selected regions, signed descriptor deviations, the nearest normal reference, and the unsmoothed frame-score trace. The panel labels WHO, WHY, and EVIDENCE denote the associated object candidate, largest marginal descriptor deviations, and nearest normal training sample, respectively. WHY describes deviations from normal medians and does not indicate causal attribution. Normal references use one nearest neighbor for display, whereas the detection score uses three (Section 4.4). Grid regions are overlaid on the second frame without flow warping and should be interpreted as approximate spatial associations.
The Ped2 examples cover the highest and lowest within-video AUROC: Test006 (99.8%, Figure A2) and Test005 (70.0%, Figure A3). Test005 produces alarms in all 149 scored frames, including normal frames. Avenue videos 03 (99.1%, Figure 2) and 16 (42.9%, Figure A4) illustrate favorable and unfavorable score ordering relative to the annotations. In Avenue video 16, repeated high scores occur outside the anomalous interval. IITB-Corridor video 000233 (Figure 1, bottom row) reaches the alarm threshold in 379 frames and has a within-video AUROC of 94.1%. At the peak frame, its largest deviations are in the mean horizontal velocity ( h 5 ) and the median speed ( h 1 ). IITB-Corridor video 000225 (Figure 3) illustrates false alarms in an entirely normal video.
Figure A2. Ped2 Test006: highest within-video AUROC (99.8%), with the report at frame 56.
Figure A3. Ped2 Test005: lowest within-video AUROC (70.0%), with persistent alarms and no associated object candidate at frame 53.
Figure A4. Avenue video 16: lowest within-video AUROC (42.9%), with the report at frame 735.

References

  1. Dilek, E.; Dener, M. An Overview of Transformers for Video Anomaly Detection. Neural Comput. Appl. 2025, 37, 17825–17857. [Google Scholar] [CrossRef] [Scilit]
  2. Hussain, A.; Ullah, W.; Khan, N.; Khan, Z.A.; Kim, M.J.; Baik, S.W. TDS-Net: Transformer Enhanced Dual-Stream Network for Video Anomaly Detection. Expert Syst. Appl. 2024, 256, 124846. [Google Scholar] [CrossRef] [Scilit]
  3. Rahimpour, S.M.; Kazemi, M.; Moallem, P.; Safayani, M. Video Anomaly Detection Using Transformers and Ensemble of Convolutional Auto-Encoders. Comput. Electr. Eng. 2024, 120, 109879. [Google Scholar] [CrossRef] [Scilit]
  4. Kobayashi, S.; Hizukuri, A.; Nakayama, R. Unsupervised Video Anomaly Detection Using Video Vision Transformer and Adversarial Training. IEEE Access 2025, 13, 56169–56179. [Google Scholar] [CrossRef] [Scilit]
  5. Yuan, H.; Cai, Z.; Zhou, H.; Wang, Y.; Chen, X. TransAnomaly: Video Anomaly Detection Using Video Vision Transformer. IEEE Access 2021, 9, 123977–123986. [Google Scholar] [CrossRef] [Scilit]
  6. Cao, C.; Lu, Y.; Wang, P.; Zhang, Y. A New Comprehensive Benchmark for Semi-Supervised Video Anomaly Detection and Anticipation. In Proceedings of the 2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Vancouver, BC, Canada, 17–24 June 2023; pp. 20392–20401. [Google Scholar] [CrossRef] [Scilit]
  7. Georgescu, M.-I.; Bărbălau, A.; Ionescu, R.T.; Khan, F.S.; Popescu, M.; Shah, M. Anomaly Detection in Video via Self-Supervised and Multi-Task Learning. In Proceedings of the 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Nashville, TN, USA, 20–25 June 2021; pp. 12737–12747. [Google Scholar] [CrossRef] [Scilit]
  8. Li, W.; Mahadevan, V.; Vasconcelos, N. Anomaly Detection and Localization in Crowded Scenes. IEEE Trans. Pattern Anal. Mach. Intell. 2014, 36, 18–32. [Google Scholar] [CrossRef] [Scilit] [PubMed]
  9. Lu, C.; Shi, J.; Jia, J. Abnormal Event Detection at 150 FPS in MATLAB. In Proceedings of the 2013 IEEE International Conference on Computer Vision (ICCV), Sydney, NSW, Australia, 1–8 December 2013; pp. 2720–2727. [Google Scholar] [CrossRef] [Scilit]
  10. Rodrigues, R.; Bhargava, N.; Velmurugan, R.; Chaudhuri, S. Multi-Timescale Trajectory Prediction for Abnormal Human Activity Detection. In Proceedings of the 2020 IEEE Winter Conference on Applications of Computer Vision (WACV), Snowmass Village, CO, USA, 1–5 March 2020; pp. 2615–2623. [Google Scholar] [CrossRef] [Scilit]
  11. Duong, H.-T.; Le, V.-T.; Hoang, V.T. Deep Learning-Based Anomaly Detection in Video Surveillance: A Survey. Sensors 2023, 23, 5024. [Google Scholar] [CrossRef] [Scilit] [PubMed]
  12. Horn, B.K.P.; Schunck, B.G. Determining Optical Flow. Artif. Intell. 1981, 17, 185–203. [Google Scholar] [CrossRef] [Scilit]
  13. Adam, A.; Rivlin, E.; Shimshoni, I.; Reinitz, D. Robust Real-Time Unusual Event Detection Using Multiple Fixed-Location Monitors. IEEE Trans. Pattern Anal. Mach. Intell. 2008, 30, 555–560. [Google Scholar] [CrossRef] [Scilit] [PubMed]
  14. Kim, J.; Grauman, K. Observe Locally, Infer Globally: A Space-Time MRF for Detecting Abnormal Activities with Incremental Updates. In Proceedings of the 2009 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Miami, FL, USA, 20–25 June 2009; pp. 2921–2928. [Google Scholar] [CrossRef] [Scilit]
  15. Wang, T.; Snoussi, H. Detection of Abnormal Events via Optical Flow Feature Analysis. Sensors 2015, 15, 7156–7171. [Google Scholar] [CrossRef] [Scilit] [PubMed]
  16. Liu, W.; Luo, W.; Lian, D.; Gao, S. Future Frame Prediction for Anomaly Detection—A New Baseline. In Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Salt Lake City, UT, USA, 18–23 June 2018; pp. 6536–6545. [Google Scholar] [CrossRef] [Scilit]
  17. Gong, D.; Liu, L.; Le, V.; Saha, B.; Mansour, M.R.; Venkatesh, S.; van den Hengel, A. Memorizing Normality to Detect Anomaly: Memory-Augmented Deep Autoencoder for Unsupervised Anomaly Detection. In Proceedings of the 2019 IEEE/CVF International Conference on Computer Vision (ICCV), Seoul, Republic of Korea, 27 October–2 November 2019; pp. 1705–1714. [Google Scholar] [CrossRef] [Scilit]
  18. Park, H.; Noh, J.; Ham, B. Learning Memory-Guided Normality for Anomaly Detection. In Proceedings of the 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Seattle, WA, USA, 13–19 June 2020; pp. 14360–14369. [Google Scholar] [CrossRef] [Scilit]
  19. Kang, S.-H.; Kang, H.-S. A Unified GAN-Based Framework for Unsupervised Video Anomaly Detection Using Optical Flow and RGB Cues. Sensors 2025, 25, 5869. [Google Scholar] [CrossRef] [Scilit] [PubMed]
  20. Qiu, S.; He, L.; Dang, H.; Wang, C.; Yu, H.; Chen, Y. Multi-Scale U-Shaped Adaptive Clustering Learning Framework for Unsupervised Video Anomaly Detection. Electronics 2026, 15, 1558. [Google Scholar] [CrossRef] [Scilit]
  21. Habeb, M.H.; Salama, M.; Elrefaei, L.A. Enhancing Video Anomaly Detection Using a Transformer Spatiotemporal Attention Unsupervised Framework for Large Datasets. Algorithms 2024, 17, 286. [Google Scholar] [CrossRef] [Scilit]
  22. Shen, L.; Matsukawa, T.; Suzuki, E. SETJiP: Spatial and Extra Temporal Jigsaw Puzzles for Video Anomaly Detection. Sensors 2026, 26, 2889. [Google Scholar] [CrossRef] [Scilit] [PubMed]
  23. Xu, Y.; Huang, B.; Zhou, C.; Wang, H.; Li, X. Video Anomaly Detection with Hyperbolic Graph Embedding and Masked Normalizing Flows. Electronics 2024, 13, 5013. [Google Scholar] [CrossRef] [Scilit]
  24. Ahn, S.; Jo, Y.; Lee, K.; Park, S. VideoPatchCore: An Effective Method to Memorize Normality for Video Anomaly Detection. In Computer Vision–ACCV 2024; Cho, M., Laptev, I., Tran, D., Yao, A., Zha, H., Eds.; Lecture Notes in Computer Science; Springer: Singapore, 2025; Volume 15474, pp. 312–328. [Google Scholar] [CrossRef] [Scilit]
  25. Wang, R.; Tamura, Y.; Yamamoto, M. Learning Fine-Grained Video Anomaly Detection from Normal Videos. Sensors 2026, 26, 4314. [Google Scholar] [CrossRef] [Scilit] [PubMed]
  26. Singh, A.; Jones, M.J.; Learned-Miller, E.G. EVAL: Explainable Video Anomaly Localization. In Proceedings of the 2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Vancouver, BC, Canada, 17–24 June 2023; pp. 18717–18726. [Google Scholar] [CrossRef] [Scilit]
  27. Doshi, K.; Yilmaz, Y. Towards Interpretable Video Anomaly Detection. In Proceedings of the 2023 IEEE/CVF Winter Conference on Applications of Computer Vision (WACV), Waikoloa, HI, USA, 2–7 January 2023; pp. 2654–2663. [Google Scholar] [CrossRef] [Scilit]
  28. Zanella, L.; Menapace, W.; Mancini, M.; Wang, Y.; Ricci, E. Harnessing Large Language Models for Training-Free Video Anomaly Detection. In Proceedings of the 2024 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Seattle, WA, USA, 16–22 June 2024; pp. 18527–18536. [Google Scholar] [CrossRef] [Scilit]
  29. Wang, Y.; Lipson, L.; Deng, J. SEA-RAFT: Simple, Efficient, Accurate RAFT for Optical Flow. In Computer Vision–ECCV 2024; Leonardis, A., Ricci, E., Roth, S., Russakovsky, O., Sattler, T., Varol, G., Eds.; Lecture Notes in Computer Science; Springer: Cham, Switzerland, 2025; Volume 15065, pp. 36–54. [Google Scholar] [CrossRef] [Scilit]
  30. Damm, S.; Laszkiewicz, M.; Lederer, J.; Fischer, A. AnomalyDINO: Boosting Patch-Based Few-Shot Anomaly Detection with DINOv2. In Proceedings of the 2025 IEEE/CVF Winter Conference on Applications of Computer Vision (WACV), Tucson, AZ, USA, 26 February–6 March 2025; pp. 1319–1329. [Google Scholar] [CrossRef] [Scilit]
  31. Cheng, T.; Song, L.; Ge, Y.; Liu, W.; Wang, X.; Shan, Y. YOLO-World: Real-Time Open-Vocabulary Object Detection. In Proceedings of the 2024 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Seattle, WA, USA, 16–22 June 2024; pp. 16901–16911. [Google Scholar] [CrossRef] [Scilit]
  32. Ramachandra, B.; Jones, M.J. Street Scene: A New Dataset and Evaluation Protocol for Video Anomaly Detection. In Proceedings of the 2020 IEEE Winter Conference on Applications of Computer Vision (WACV), Snowmass Village, CO, USA, 1–5 March 2020; pp. 2558–2567. [Google Scholar] [CrossRef] [Scilit]
  33. SEA-RAFT: Official Implementation. Available online: https://github.com/princeton-vl/SEA-RAFT (accessed on 13 September 2026).
  34. SEA-RAFT Checkpoint: MemorySlices/Tartan-C-T-TSKH-spring540x960-M. Available online: https://huggingface.co/MemorySlices/Tartan-C-T-TSKH-spring540x960-M (accessed on 13 September 2026).
  35. Rousseeuw, P.J.; Croux, C. Alternatives to the Median Absolute Deviation. J. Am. Stat. Assoc. 1993, 88, 1273–1283. [Google Scholar] [CrossRef]
  36. Lin, J. Divergence Measures Based on the Shannon Entropy. IEEE Trans. Inf. Theory 1991, 37, 145–151. [Google Scholar] [CrossRef] [Scilit]
  37. Ultralytics Documentation: YOLO-World Model. Available online: https://docs.ultralytics.com/models/yolo-world/ (accessed on 13 September 2026).
  38. Radford, A.; Kim, J.W.; Hallacy, C.; Ramesh, A.; Goh, G.; Agarwal, S.; Sastry, G.; Askell, A.; Mishkin, P.; Clark, J.; et al. Learning Transferable Visual Models From Natural Language Supervision. In Proceedings of the 38th International Conference on Machine Learning (ICML), Virtual Event, 18–24 July 2021; Meila, M., Zhang, T., Eds.; Volume 139, Proceedings of Machine Learning Research; pp. 8748–8763. Available online: https://proceedings.mlr.press/v139/radford21a.html (accessed on 13 September 2026).
  39. Danesh Pazho, A.; Alinezhad Noghre, G.; Rahimi Ardabili, B.; Neff, C.; Tabkhi, H. CHAD: Charlotte Anomaly Dataset. In Image Analysis—SCIA 2023; Gade, R., Felsberg, M., Kämäräinen, J.-K., Eds.; Lecture Notes in Computer Science; Springer: Cham, Switzerland, 2023; Volume 13885, pp. 50–66. [Google Scholar] [CrossRef] [Scilit]
  40. Fawcett, T. An Introduction to ROC Analysis. Pattern Recognit. Lett. 2006, 27, 861–874. [Google Scholar] [CrossRef] [Scilit]
  41. Chen, W.; Ma, K.T.; Yew, Z.J.; Hur, M.; Khoo, D.A.A. TEVAD: Improved Video Anomaly Detection with Captions. In Proceedings of the 2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), Vancouver, BC, Canada, 17–24 June 2023; pp. 5549–5559. [Google Scholar] [CrossRef] [Scilit]
  42. Reiss, T.; Hoshen, Y. An Attribute-Based Method for Video Anomaly Detection. Trans. Mach. Learn. Res. 2025. Available online: https://openreview.net/forum?id=XL1N6iLr0G (accessed on 18 September 2026).
  43. PyTorch Documentation: Reproducibility. Available online: https://docs.pytorch.org/docs/stable/notes/randomness.html (accessed on 13 September 2026).
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.