Video Classification
English
orsveri commited on
Commit
0eb1c5a
·
verified ·
1 Parent(s): f4f93e2

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +180 -117
README.md CHANGED
@@ -1,117 +1,180 @@
1
- ---
2
- license: cc-by-4.0
3
- language:
4
- - en
5
- metrics:
6
- - roc_auc
7
- - matthews_correlation
8
- pipeline_tag: video-classification
9
- ---
10
- # Simplifying Traffic Anomaly Detection with Video Foundation Models
11
-
12
- Svetlana Orlova, Tommie Kerssies, Brun´o B. Englert, Gijs Dubbelman \
13
- Eindhoven University of Technology
14
-
15
- [![arXiv](https://img.shields.io/badge/cs.CV-2507.09338-b31b1b?logo=arxiv&logoColor=red)](https://arxiv.org/abs/2507.09338)
16
- [![Hugging Face Models](https://img.shields.io/badge/%F0%9F%A4%97%20Models-SimpleTAD-blue)](https://huggingface.co/tue-mps/simple-tad/tree/main/models)
17
- [![Code](https://img.shields.io/badge/Code-simple--tad-black?logo=github)](https://github.com/tue-mps/simple-tad)
18
-
19
- Recent methods for ego-centric Traffic Anomaly Detection (TAD) often rely on complex multi-stage or multi-representation fusion architectures, yet it remains unclear whether such complexity is necessary. Recent findings in visual perception suggest that foundation models, enabled by advanced pre-training, allow simple yet flexible architectures to outperform specialized designs. Therefore, in this work, we investigate an architecturally simple encoder-only approach using plain Video Vision Transformers (Video ViTs) and study how pre-training enables strong TAD performance. We find that: (i) advanced pre-training enables simple encoder-only models to match or even surpass the performance of specialized state-of-the-art TAD methods, while also being significantly more efficient; (ii) although weakly- and fully-supervised pre-training are advantageous on standard benchmarks, we find them less effective for TAD. Instead, self-supervised Masked Video Modeling (MVM) provides the strongest signal; and (iii) Domain-Adaptive Pre-Training (DAPT) on unlabeled driving videos further improves downstream performance, without requiring anomalous examples. Our findings highlight the importance of pre-training and show that effective, efficient, and scalable TAD models can be built with minimal architectural complexity.
20
-
21
- ![Simple_Main](illustrations/main.png)
22
-
23
- ### ✨ DoTA and DADA-2000 results
24
-
25
- ![Simple_Results](illustrations/results.png)
26
-
27
- Video ViT-based encoder-only models set a new state of the art
28
- on both datasets, while being significantly more efficient than top-performing specialized methods. FPS measured using NVIDIA A100
29
- MIG, 2 1 GPU. † From prior work. ‡ Optimistic estimates using publicly available components of the model. “A→B”: trained on A, tested
30
- on B; D2K: DADA-2000.
31
-
32
- ## 🧩 Code
33
-
34
- Check out our GitHub repo: **[simple-tad](https://github.com/tue-mps/simple-tad)**
35
-
36
- ## 📍Model Zoo
37
-
38
- ### DAPT (adapted) models
39
- | Method | Backbone | Initialized with | DAPT epochs | DAPT data | Checkpoint |
40
- | :------: |:--------:|:---------------:|:-----------:|:------------------:|:----------:|
41
- | VideoMAE | ViT-S | [Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400) | 12 | Kinetics-700 | [simpletad_dapt-k700_videomae-s_ep12.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/DAPT/simpletad_dapt-k700_videomae-s_ep12.pth) |
42
- | VideoMAE | ViT-S | [Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400) | 12 | BDD100K | [simpletad_dapt-onlybdd_videomae-s_ep12.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/DAPT/simpletad_dapt-onlybdd_videomae-s_ep12.pth) |
43
- | VideoMAE | ViT-S | [Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400) | 12 | BDD100K + CAP-DATA | [simpletad_dapt_videomae-s_ep12.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/DAPT/simpletad_dapt_videomae-s_ep12.pth) |
44
- | VideoMAE | ViT-B | [Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400) | 12 | BDD100K + CAP-DATA | [simpletad_dapt_videomae-b_ep12.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/DAPT/simpletad_dapt_videomae-b_ep12.pth) |
45
- | VideoMAE | ViT-L | [Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400) | 12 | BDD100K + CAP-DATA | [simpletad_dapt_videomae-l_ep12.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/DAPT/simpletad_dapt_videomae-l_ep12.pth) |
46
-
47
-
48
- ### Fine-tuned on DoTA
49
- | Method | Backbone | Initialized with | Best AUC<sub>ROC</sub> checkpoint | Best AUC<sub>MCC</sub> checkpoint | AUC<sub>ROC</sub> | AUC<sub>MCC</sub> |
50
- |:---------:|:--------:|:--------------------------------:|:-----------------------:|:-----------------------:|:-------:|---------|
51
- | VideoMAE | ViT-S | VideoMAE ([Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dota_vm1-s_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm1-s_auroc.pth) | [simpletad_ft-dota_vm1-s_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm1-s_aumcc.pth) | 83.7 | 46.9 |
52
- | VideoMAE | ViT-B | VideoMAE ([Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dota_vm1-b-1600_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm1-b-1600_auroc.pth) | [simpletad_ft-dota_vm1-b-1600_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm1-b-1600_aumcc.pth) | 86.3 | 54.8 |
53
- | VideoMAE | ViT-L | VideoMAE ([Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dota_vm1-l_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm1-l_auroc.pth) | [simpletad_ft-dota_vm1-l_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm1-l_aumcc.pth) | 88.2 | 58.7 |
54
- | VideoMAE2 | ViT-S | VideoMAE2 ([vit_s_k710_dl_from_giant.pth](https://github.com/OpenGVLab/VideoMAEv2/blob/master/docs/MODEL_ZOO.md#distillation)) | [simpletad_ft-dota_vm2-s_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm2-s_auroc.pth) | [simpletad_ft-dota_vm2-s_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm2-s_aumcc.pth) | 86.0 | 54.1 |
55
- | VideoMAE2 | ViT-B | VideoMAE2 ([vit_b_k710_dl_from_giant.pth](https://github.com/OpenGVLab/VideoMAEv2/blob/master/docs/MODEL_ZOO.md#distillation)) | [simpletad_ft-dota_vm2-b_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm2-b_auroc.pth) | [simpletad_ft-dota_vm2-b_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm2-b_aumcc.pth) | 86.9 | 55.4 |
56
- | MVD_fromL | ViT-S | MVD ([Kinetics-400 Teacher ViT-L](https://github.com/ruiwang2021/mvd/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dota_mvd-s-fromL_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_mvd-s-fromL_auroc.pth) | [simpletad_ft-dota_mvd-s-fromL_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_mvd-s-fromL_aumcc.pth) | 85.3 | 53.8 |
57
- | MVD_fromB | ViT-B | MVD ([Kinetics-400 Teacher ViT-B](https://github.com/ruiwang2021/mvd/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dota_mvd-b-fromB_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_mvd-b-fromB_auroc.pth) | [simpletad_ft-dota_mvd-b-fromB_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_mvd-b-fromB_aumcc.pth) | 86.1 | 54.7 |
58
- | MVD_fromL | ViT-L | MVD ([Kinetics-400 Teacher ViT-L](https://github.com/ruiwang2021/mvd/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dota_mvd-l-fromL_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_mvd-l-fromL_auroc.pth) | [simpletad_ft-dota_mvd-l-fromL_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_mvd-l-fromL_aumcc.pth) | 87.2 | 58.1 |
59
- | **DAPT-** VideoMAE | ViT-S | DAPT (BDD100K + CAP-DATA) | [simpletad_ft-dota_dapt-vm1-s_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_dapt-vm1-s_auroc.pth) | [simpletad_ft-dota_dapt-vm1-s_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_dapt-vm1-s_aumcc.pth) | 86.4 | 54.0 |
60
- | **DAPT-** VideoMAE | ViT-B | DAPT (BDD100K + CAP-DATA) | [simpletad_ft-dota_dapt-vm1-b_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_dapt-vm1-b_auroc.pth) | [simpletad_ft-dota_dapt-vm1-b_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_dapt-vm1-b_aumcc.pth) | 87.9 | 57.5 |
61
- | **DAPT-** VideoMAE | ViT-L | DAPT (BDD100K + CAP-DATA) | [simpletad_ft-dota_dapt-vm1-l_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_dapt-vm1-l_auroc.pth) | [simpletad_ft-dota_dapt-vm1-l_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_dapt-vm1-l_aumcc.pth) | 88.4 | 58.9 |
62
-
63
-
64
- ### Fine-tuned on DADA-2000
65
- | Method | Backbone | Initialized with | Best AUC<sub>ROC</sub> checkpoint | Best AUC<sub>MCC</sub> checkpoint | AUC<sub>ROC</sub> | AUC<sub>MCC</sub> |
66
- |:---------:|:--------:|:--------------------------------:|:-----------------------:|:-----------------------:|:-------:|---------|
67
- | VideoMAE | ViT-S | VideoMAE ([Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dada_vm1-s_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm1-s_auroc.pth) | [simpletad_ft-dada_vm1-s_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm1-s_aumcc.pth) | 83.0 | 48.2 |
68
- | VideoMAE | ViT-B | VideoMAE ([Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dada_vm1-b-1600_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm1-b-1600_auroc.pth) | [simpletad_ft-dada_vm1-b-1600_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm1-b-1600_aumcc.pth) | 85.4 | 52.2 |
69
- | VideoMAE | ViT-L | VideoMAE ([Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dada_vm1-l_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm1-l_auroc.pth) | [simpletad_ft-dada_vm1-l_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm1-l_aumcc.pth) | 87.2 | 55.4 |
70
- | VideoMAE2 | ViT-S | VideoMAE2 ([vit_s_k710_dl_from_giant.pth](https://github.com/OpenGVLab/VideoMAEv2/blob/master/docs/MODEL_ZOO.md#distillation)) | [simpletad_ft-dada_vm2-s_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm2-s_auroc.pth) | [simpletad_ft-dada_vm2-s_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm2-s_aumcc.pth) | 84.8 | 50.3 |
71
- | VideoMAE2 | ViT-B | VideoMAE2 ([vit_b_k710_dl_from_giant.pth](https://github.com/OpenGVLab/VideoMAEv2/blob/master/docs/MODEL_ZOO.md#distillation)) | [simpletad_ft-dada_vm2-b_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm2-b_auroc.pth) | [simpletad_ft-dada_vm2-b_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm2-b_aumcc.pth) | 86.3 | 53.3 |
72
- | MVD_fromL | ViT-S | MVD ([Kinetics-400 Teacher ViT-L](https://github.com/ruiwang2021/mvd/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dada_mvd-s-fromL_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_mvd-s-fromL_auroc.pth) | [simpletad_ft-dada_mvd-s-fromL_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_mvd-s-fromL_aumcc.pth) | 82.2 | 50.2 |
73
- | MVD_fromB | ViT-B | MVD ([Kinetics-400 Teacher ViT-B](https://github.com/ruiwang2021/mvd/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dada_mvd-b-fromB_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_mvd-b-fromB_auroc.pth) | [simpletad_ft-dada_mvd-b-fromB_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_mvd-b-fromB_aumcc.pth) | 84.7 | 50.9 |
74
- | MVD_fromL | ViT-L | MVD ([Kinetics-400 Teacher ViT-L](https://github.com/ruiwang2021/mvd/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dada_mvd-l-fromL_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_mvd-l-fromL_auroc.pth) | [simpletad_ft-dada_mvd-l-fromL_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_mvd-l-fromL_aumcc.pth) | 86.1 | 53.7 |
75
- | **DAPT-** VideoMAE | ViT-S | DAPT (BDD100K + CAP-DATA) | [simpletad_ft-dada_dapt-vm1-s_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_dapt-vm1-s_auroc.pth) | [simpletad_ft-dada_dapt-vm1-s_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_dapt-vm1-s_aumcc.pth) | 85.6 | 52.0 |
76
- | **DAPT-** VideoMAE | ViT-B | DAPT (BDD100K + CAP-DATA) | [simpletad_ft-dada_dapt-vm1-b_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_dapt-vm1-b_auroc.pth) | [simpletad_ft-dada_dapt-vm1-b_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_dapt-vm1-b_aumcc.pth) | 87.6 | 55.2 |
77
- | **DAPT-** VideoMAE | ViT-L | DAPT (BDD100K + CAP-DATA) | [simpletad_ft-dada_dapt-vm1-l_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_dapt-vm1-l_auroc.pth) | [simpletad_ft-dada_dapt-vm1-l_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_dapt-vm1-l_aumcc.pth) | 88.5 | 56.8 |
78
-
79
-
80
- ## ☎️ Contact
81
-
82
- Svetlana Orlova: s.orlova@tue.nl, orsveri@gmail.com
83
-
84
- ## 👍 Acknowledgements
85
-
86
- Our code is mainly based on the [VideoMAE](https://github.com/MCG-NJU/VideoMAE) codebase.
87
- With Video ViTs that have identical architecture, we only used their weights:
88
- [ViViT](https://github.com/google-research/scenic/blob/main/scenic/projects/vivit/README.md),
89
- [VideoMAE2](https://github.com/OpenGVLab/VideoMAEv2),
90
- [SMILE](https://github.com/fmthoker/SMILE),
91
- [SIGMA](https://github.com/QUVA-Lab/SIGMA/),
92
- [MME](https://github.com/XinyuSun/MME),
93
- [MGMAE](https://github.com/MCG-NJU/MGMAE). \
94
- We used fragments of original implementations of
95
- [MVD](https://github.com/ruiwang2021/mvd),
96
- [InternVideo2](https://github.com/OpenGVLab/InternVideo/tree/main/InternVideo2/single_modality),
97
- and [UMT](https://github.com/OpenGVLab/unmasked_teacher/tree/main/single_modality) to integrate these models with our codebase.
98
-
99
- ## ✏️ Citation
100
-
101
- If you think this project is helpful, please feel free to like us ❤️ and cite our paper:
102
-
103
- ```
104
- @inproceedings{orlova2025simplifying,
105
- title={Simplifying Traffic Anomaly Detection with Video Foundation Models},
106
- author={Orlova, Svetlana and Kerssies, Tommie and Englert, Brun{\'o} B and Dubbelman, Gijs},
107
- booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
108
- year={2025}
109
- }
110
-
111
- @article{orlova2025simplifying,
112
- title={Simplifying Traffic Anomaly Detection with Video Foundation Models},
113
- author={Orlova, Svetlana and Kerssies, Tommie and Englert, Brun{\'o} B and Dubbelman, Gijs},
114
- journal={arXiv preprint arXiv:2507.09338},
115
- year={2025}
116
- }
117
- ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-4.0
3
+ language:
4
+ - en
5
+ metrics:
6
+ - roc_auc
7
+ - matthews_correlation
8
+ pipeline_tag: video-classification
9
+ ---
10
+ # Simplifying Traffic Anomaly Detection with Video Foundation Models
11
+
12
+ Svetlana Orlova, Tommie Kerssies, Brunó B. Englert, Gijs Dubbelman \
13
+ Eindhoven University of Technology
14
+
15
+ [![arXiv](https://img.shields.io/badge/cs.CV-2507.09338-b31b1b?logo=arxiv&logoColor=red)](https://arxiv.org/abs/2507.09338)
16
+ [![Hugging Face Models](https://img.shields.io/badge/%F0%9F%A4%97%20Models-SimpleTAD-blue)](https://huggingface.co/tue-mps/simple-tad/tree/main/models)
17
+ [![Code](https://img.shields.io/badge/Code-simple--tad-black?logo=github)](https://github.com/tue-mps/simple-tad)
18
+
19
+ <table>
20
+ <tr>
21
+ <td>
22
+ <a href="https://youtu.be/hY2hUlTNhCU" target="_blank">
23
+ <img src="illustrations/videos/PYL3JcSsS6o_004036_small-dapt.gif" width="100%">
24
+ </a>
25
+ </td>
26
+ <td>
27
+ <a href="https://youtu.be/tKe2nTIHf9k" target="_blank">
28
+ <img src="illustrations/videos/Sihe6aeyLHg_000602_small-dapt.gif" width="100%">
29
+ </a>
30
+ </td>
31
+ </tr>
32
+ </table>
33
+
34
+ Recent methods for ego-centric Traffic Anomaly Detection (TAD) often rely on complex multi-stage or multi-representation fusion architectures, yet it remains unclear whether such complexity is necessary. Recent findings in visual perception suggest that foundation models, enabled by advanced pre-training, allow simple yet flexible architectures to outperform specialized designs. Therefore, in this work, we investigate an architecturally simple encoder-only approach using plain Video Vision Transformers (Video ViTs) and study how pre-training enables strong TAD performance. We find that: (i) advanced pre-training enables simple encoder-only models to match or even surpass the performance of specialized state-of-the-art TAD methods, while also being significantly more efficient; (ii) although weakly- and fully-supervised pre-training are advantageous on standard benchmarks, we find them less effective for TAD. Instead, self-supervised Masked Video Modeling (MVM) provides the strongest signal; and (iii) Domain-Adaptive Pre-Training (DAPT) on unlabeled driving videos further improves downstream performance, without requiring anomalous examples. Our findings highlight the importance of pre-training and show that effective, efficient, and scalable TAD models can be built with minimal architectural complexity.
35
+
36
+ ![Simple_Main](illustrations/main.png)
37
+
38
+ ### DoTA and DADA-2000 results
39
+
40
+ ![Simple_Results](illustrations/results.png)
41
+
42
+ Video ViT-based encoder-only models set a new state of the art
43
+ on both datasets, while being significantly more efficient than top-performing specialized methods. FPS measured using NVIDIA A100
44
+ MIG, 2 1 GPU. From prior work. Optimistic estimates using publicly available components of the model. “A→B”: trained on A, tested
45
+ on B; D2K: DADA-2000.
46
+
47
+ ## 🧩 Code
48
+
49
+ Check out our GitHub repo: **[simple-tad](https://github.com/tue-mps/simple-tad)**
50
+
51
+ ## 📍Model Zoo
52
+
53
+ ### DAPT (adapted) models
54
+ | Method | Backbone | Initialized with | DAPT epochs | DAPT data | Checkpoint |
55
+ | :------: |:--------:|:---------------:|:-----------:|:------------------:|:----------:|
56
+ | VideoMAE | ViT-S | [Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400) | 12 | Kinetics-700 | [simpletad_dapt-k700_videomae-s_ep12.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/DAPT/simpletad_dapt-k700_videomae-s_ep12.pth) |
57
+ | VideoMAE | ViT-S | [Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400) | 12 | BDD100K | [simpletad_dapt-onlybdd_videomae-s_ep12.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/DAPT/simpletad_dapt-onlybdd_videomae-s_ep12.pth) |
58
+ | VideoMAE | ViT-S | [Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400) | 12 | BDD100K + CAP-DATA | [simpletad_dapt_videomae-s_ep12.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/DAPT/simpletad_dapt_videomae-s_ep12.pth) |
59
+ | VideoMAE | ViT-B | [Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400) | 12 | BDD100K + CAP-DATA | [simpletad_dapt_videomae-b_ep12.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/DAPT/simpletad_dapt_videomae-b_ep12.pth) |
60
+ | VideoMAE | ViT-L | [Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400) | 12 | BDD100K + CAP-DATA | [simpletad_dapt_videomae-l_ep12.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/DAPT/simpletad_dapt_videomae-l_ep12.pth) |
61
+
62
+
63
+ ### Fine-tuned on DoTA
64
+ | Method | Backbone | Initialized with | Best AUC<sub>ROC</sub> checkpoint | Best AUC<sub>MCC</sub> checkpoint | AUC<sub>ROC</sub> | AUC<sub>MCC</sub> |
65
+ |:---------:|:--------:|:--------------------------------:|:-----------------------:|:-----------------------:|:-------:|---------|
66
+ | VideoMAE | ViT-S | VideoMAE ([Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dota_vm1-s_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm1-s_auroc.pth) | [simpletad_ft-dota_vm1-s_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm1-s_aumcc.pth) | 83.7 | 46.9 |
67
+ | VideoMAE | ViT-B | VideoMAE ([Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dota_vm1-b-1600_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm1-b-1600_auroc.pth) | [simpletad_ft-dota_vm1-b-1600_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm1-b-1600_aumcc.pth) | 86.3 | 54.8 |
68
+ | VideoMAE | ViT-L | VideoMAE ([Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dota_vm1-l_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm1-l_auroc.pth) | [simpletad_ft-dota_vm1-l_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm1-l_aumcc.pth) | 88.2 | 58.7 |
69
+ | VideoMAE2 | ViT-S | VideoMAE2 ([vit_s_k710_dl_from_giant.pth](https://github.com/OpenGVLab/VideoMAEv2/blob/master/docs/MODEL_ZOO.md#distillation)) | [simpletad_ft-dota_vm2-s_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm2-s_auroc.pth) | [simpletad_ft-dota_vm2-s_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm2-s_aumcc.pth) | 86.0 | 54.1 |
70
+ | VideoMAE2 | ViT-B | VideoMAE2 ([vit_b_k710_dl_from_giant.pth](https://github.com/OpenGVLab/VideoMAEv2/blob/master/docs/MODEL_ZOO.md#distillation)) | [simpletad_ft-dota_vm2-b_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm2-b_auroc.pth) | [simpletad_ft-dota_vm2-b_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_vm2-b_aumcc.pth) | 86.9 | 55.4 |
71
+ | MVD_fromL | ViT-S | MVD ([Kinetics-400 Teacher ViT-L](https://github.com/ruiwang2021/mvd/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dota_mvd-s-fromL_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_mvd-s-fromL_auroc.pth) | [simpletad_ft-dota_mvd-s-fromL_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_mvd-s-fromL_aumcc.pth) | 85.3 | 53.8 |
72
+ | MVD_fromB | ViT-B | MVD ([Kinetics-400 Teacher ViT-B](https://github.com/ruiwang2021/mvd/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dota_mvd-b-fromB_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_mvd-b-fromB_auroc.pth) | [simpletad_ft-dota_mvd-b-fromB_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_mvd-b-fromB_aumcc.pth) | 86.1 | 54.7 |
73
+ | MVD_fromL | ViT-L | MVD ([Kinetics-400 Teacher ViT-L](https://github.com/ruiwang2021/mvd/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dota_mvd-l-fromL_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_mvd-l-fromL_auroc.pth) | [simpletad_ft-dota_mvd-l-fromL_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_mvd-l-fromL_aumcc.pth) | 87.2 | 58.1 |
74
+ | **DAPT-** VideoMAE | ViT-S | DAPT (BDD100K + CAP-DATA) | [simpletad_ft-dota_dapt-vm1-s_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_dapt-vm1-s_auroc.pth) | [simpletad_ft-dota_dapt-vm1-s_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_dapt-vm1-s_aumcc.pth) | 86.4 | 54.0 |
75
+ | **DAPT-** VideoMAE | ViT-B | DAPT (BDD100K + CAP-DATA) | [simpletad_ft-dota_dapt-vm1-b_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_dapt-vm1-b_auroc.pth) | [simpletad_ft-dota_dapt-vm1-b_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_dapt-vm1-b_aumcc.pth) | 87.9 | 57.5 |
76
+ | **DAPT-** VideoMAE | ViT-L | DAPT (BDD100K + CAP-DATA) | [simpletad_ft-dota_dapt-vm1-l_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_dapt-vm1-l_auroc.pth) | [simpletad_ft-dota_dapt-vm1-l_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_DoTA/simpletad_ft-dota_dapt-vm1-l_aumcc.pth) | 88.4 | 58.9 |
77
+
78
+
79
+ ### Fine-tuned on DADA-2000
80
+ | Method | Backbone | Initialized with | Best AUC<sub>ROC</sub> checkpoint | Best AUC<sub>MCC</sub> checkpoint | AUC<sub>ROC</sub> | AUC<sub>MCC</sub> |
81
+ |:---------:|:--------:|:--------------------------------:|:-----------------------:|:-----------------------:|:-------:|---------|
82
+ | VideoMAE | ViT-S | VideoMAE ([Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dada_vm1-s_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm1-s_auroc.pth) | [simpletad_ft-dada_vm1-s_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm1-s_aumcc.pth) | 83.0 | 48.2 |
83
+ | VideoMAE | ViT-B | VideoMAE ([Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dada_vm1-b-1600_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm1-b-1600_auroc.pth) | [simpletad_ft-dada_vm1-b-1600_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm1-b-1600_aumcc.pth) | 85.4 | 52.2 |
84
+ | VideoMAE | ViT-L | VideoMAE ([Kinetics-400 1600 ep](https://github.com/MCG-NJU/VideoMAE/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dada_vm1-l_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm1-l_auroc.pth) | [simpletad_ft-dada_vm1-l_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm1-l_aumcc.pth) | 87.2 | 55.4 |
85
+ | VideoMAE2 | ViT-S | VideoMAE2 ([vit_s_k710_dl_from_giant.pth](https://github.com/OpenGVLab/VideoMAEv2/blob/master/docs/MODEL_ZOO.md#distillation)) | [simpletad_ft-dada_vm2-s_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm2-s_auroc.pth) | [simpletad_ft-dada_vm2-s_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm2-s_aumcc.pth) | 84.8 | 50.3 |
86
+ | VideoMAE2 | ViT-B | VideoMAE2 ([vit_b_k710_dl_from_giant.pth](https://github.com/OpenGVLab/VideoMAEv2/blob/master/docs/MODEL_ZOO.md#distillation)) | [simpletad_ft-dada_vm2-b_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm2-b_auroc.pth) | [simpletad_ft-dada_vm2-b_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_vm2-b_aumcc.pth) | 86.3 | 53.3 |
87
+ | MVD_fromL | ViT-S | MVD ([Kinetics-400 Teacher ViT-L](https://github.com/ruiwang2021/mvd/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dada_mvd-s-fromL_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_mvd-s-fromL_auroc.pth) | [simpletad_ft-dada_mvd-s-fromL_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_mvd-s-fromL_aumcc.pth) | 82.2 | 50.2 |
88
+ | MVD_fromB | ViT-B | MVD ([Kinetics-400 Teacher ViT-B](https://github.com/ruiwang2021/mvd/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dada_mvd-b-fromB_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_mvd-b-fromB_auroc.pth) | [simpletad_ft-dada_mvd-b-fromB_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_mvd-b-fromB_aumcc.pth) | 84.7 | 50.9 |
89
+ | MVD_fromL | ViT-L | MVD ([Kinetics-400 Teacher ViT-L](https://github.com/ruiwang2021/mvd/blob/main/MODEL_ZOO.md#kinetics-400)) | [simpletad_ft-dada_mvd-l-fromL_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_mvd-l-fromL_auroc.pth) | [simpletad_ft-dada_mvd-l-fromL_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_mvd-l-fromL_aumcc.pth) | 86.1 | 53.7 |
90
+ | **DAPT-** VideoMAE | ViT-S | DAPT (BDD100K + CAP-DATA) | [simpletad_ft-dada_dapt-vm1-s_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_dapt-vm1-s_auroc.pth) | [simpletad_ft-dada_dapt-vm1-s_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_dapt-vm1-s_aumcc.pth) | 85.6 | 52.0 |
91
+ | **DAPT-** VideoMAE | ViT-B | DAPT (BDD100K + CAP-DATA) | [simpletad_ft-dada_dapt-vm1-b_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_dapt-vm1-b_auroc.pth) | [simpletad_ft-dada_dapt-vm1-b_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_dapt-vm1-b_aumcc.pth) | 87.6 | 55.2 |
92
+ | **DAPT-** VideoMAE | ViT-L | DAPT (BDD100K + CAP-DATA) | [simpletad_ft-dada_dapt-vm1-l_auroc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_dapt-vm1-l_auroc.pth) | [simpletad_ft-dada_dapt-vm1-l_aumcc.pth](https://huggingface.co/tue-mps/simple-tad/resolve/main/models/Finetune_D2K/simpletad_ft-dada_dapt-vm1-l_aumcc.pth) | 88.5 | 56.8 |
93
+
94
+
95
+ ## ☎️ Contact
96
+
97
+ Svetlana Orlova: s.orlova@tue.nl, orsveri@gmail.com
98
+
99
+ ## 👍 Acknowledgements
100
+
101
+ Our code is mainly based on the [VideoMAE](https://github.com/MCG-NJU/VideoMAE) codebase.
102
+ With Video ViTs that have identical architecture, we only used their weights:
103
+ [ViViT](https://github.com/google-research/scenic/blob/main/scenic/projects/vivit/README.md),
104
+ [VideoMAE2](https://github.com/OpenGVLab/VideoMAEv2),
105
+ [SMILE](https://github.com/fmthoker/SMILE),
106
+ [SIGMA](https://github.com/QUVA-Lab/SIGMA/),
107
+ [MME](https://github.com/XinyuSun/MME),
108
+ [MGMAE](https://github.com/MCG-NJU/MGMAE). \
109
+ We used fragments of original implementations of
110
+ [MVD](https://github.com/ruiwang2021/mvd),
111
+ [InternVideo2](https://github.com/OpenGVLab/InternVideo/tree/main/InternVideo2/single_modality),
112
+ and [UMT](https://github.com/OpenGVLab/unmasked_teacher/tree/main/single_modality) to integrate these models with our codebase.
113
+
114
+ ## ✏️ Citation
115
+
116
+ If you think this project is helpful, please feel free to like us ❤️ and cite our paper:
117
+
118
+ ```
119
+ @inproceedings{orlova2025simplifying,
120
+ title={Simplifying Traffic Anomaly Detection with Video Foundation Models},
121
+ author={Orlova, Svetlana and Kerssies, Tommie and Englert, Brun{\'o} B and Dubbelman, Gijs},
122
+ booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
123
+ year={2025}
124
+ }
125
+
126
+ @article{orlova2025simplifying,
127
+ title={Simplifying Traffic Anomaly Detection with Video Foundation Models},
128
+ author={Orlova, Svetlana and Kerssies, Tommie and Englert, Brun{\'o} B and Dubbelman, Gijs},
129
+ journal={arXiv preprint arXiv:2507.09338},
130
+ year={2025}
131
+ }
132
+ ```
133
+
134
+ ##
135
+
136
+ <table>
137
+ <tr>
138
+ <td>
139
+ <a href="https://youtu.be/vPBKj9SF9yg" target="_blank">
140
+ <img src="illustrations/videos/0RJPQ_97dcs_004503_large-dapt.gif" width="100%">
141
+ </a>
142
+ </td>
143
+ <td>
144
+ <a href="https://youtu.be/vGaYPZEuv5k" target="_blank">
145
+ <img src="illustrations/videos/y4Evv5By6sg_004171_large-dapt.gif" width="100%">
146
+ </a>
147
+ </td>
148
+ </tr>
149
+ </table>
150
+
151
+ <table>
152
+ <tr>
153
+ <td>
154
+ <a href="https://youtu.be/7rH0QP18zsk" target="_blank">
155
+ <img src="illustrations/videos/PEwiwzyTjX0_000589large-dapt.gif" width="100%">
156
+ </a>
157
+ </td>
158
+ <td>
159
+ <a href="https://youtu.be/5ZNYwDGmOZI" target="_blank">
160
+ <img src="illustrations/videos/RASKiMoxhOE_000246_large-dapt.gif" width="100%">
161
+ </a>
162
+ </td>
163
+ </tr>
164
+ </table>
165
+
166
+ <table>
167
+ <tr>
168
+ <td>
169
+ <a href="https://youtu.be/X7Ij1sc4yCE" target="_blank">
170
+ <img src="illustrations/videos/T7TkJVmGyts_001011_large-dapt.gif" width="100%">
171
+ </a>
172
+ </td>
173
+ <td>
174
+ <a href="https://youtu.be/S5m2ooY6CGc" target="_blank">
175
+ <img src="illustrations/videos/TNZv-NBcV5U_000066large-dapt.gif" width="100%">
176
+ </a>
177
+ </td>
178
+ </tr>
179
+ </table>
180
+