DriveDNA-models / README.md
HenryYHW's picture
DriveDNA checkpoints (47) with checksums and model card
b0d7ab6 verified
|
Raw History Blame Contribute Delete
9.65 kB
---
license: other
license_name: drivedna-research-license
license_link: https://huggingface.co/datasets/HenryYHW/DriveDNA
tags:
- driving-style
- driver-identification
- naturalistic-driving
- time-series
- CAN-bus
datasets:
- HenryYHW/DriveDNA
---
# DriveDNA-models: trained checkpoints behind the DriveDNA benchmark
These are the 47 PyTorch checkpoints that produced the tables of *DriveDNA: A Large-Scale Multimodal Naturalistic Driving Dataset and Benchmark for Driving Style Identification* ([arXiv:2607.23822](https://arxiv.org/abs/2607.23822)). Code, evaluation harness and result files: [github.com/WangYuHang-cmd/DriveDNA](https://github.com/WangYuHang-cmd/DriveDNA) (tag `v1.1-kdd2027`). Data: [HenryYHW/DriveDNA](https://huggingface.co/datasets/HenryYHW/DriveDNA).
Every file is a plain `torch.save` dictionary with the model state dict (`model`), the per-channel input normalisation statistics (`mu`, `sd`, 17 channels), and for some models an `arch` string. No data, identifiers or paths are stored inside. Total size 162 MB; sha256 of every file in `CHECKSUMS.sha256`.
## Loading
```python
import torch, sys
sys.path.insert(0, "code/model"); sys.path.insert(0, "code/eval") # from the GitHub repository
from s1_supcon import Encoder
ck = torch.load("s1_supcon.pt", map_location="cpu", weights_only=False)
enc = Encoder(c_in=17).eval(); enc.load_state_dict(ck["model"])
x = (windows_x - ck["mu"]) / ck["sd"] # windows_x: [N, 600, 17] float32 (features/windows_x.npy in the dataset)
```
To evaluate with the paper's protocol, download the dataset, run `scripts/prepare_release_layout.py --models <this folder>` in the GitHub repository and use the commands in its README (for example `python code/eval/t4_eval.py --ckpt experiments/checkpoints/s1_supcon_s10.pt --tag _s10`).
## Checkpoints
Seeds: `default` is the seed used for the headline row; `10` / `11` are the two additional training seeds of the three-seed protocol; `fe*` checkpoints were trained for the fixed-evaluation-split control (App. I).
| File | MB | Training command | Paper | Seed | Status | sha256 |
|---|---|---|---|---|---|---|
| `m2_mcpp6_dinov2.pt` | 1.82 | `code/model/m2_mcpp6.py --video dinov2` | Sec. 6.5 / App. K (MCPP modality ablation) | default | superseded by `m2_mcpp6_dinov2_v2.pt` | `01bc2555a33f…` |
| `m2_mcpp6_dinov2_v2.pt` | 1.82 | `code/model/m2_mcpp6.py --video dinov2 --tag _v2` | Sec. 6.5 / App. K (MCPP modality ablation) | default | used | `77e4276c8610…` |
| `m2_mcpp6_dinov3.pt` | 1.82 | `code/model/m2_mcpp6.py --video dinov3` | Sec. 6.5 / App. K (MCPP modality ablation) | default | used | `84b49188ed58…` |
| `m2_mcpp6_vjepa2.pt` | 1.95 | `code/model/m2_mcpp6.py --video vjepa2` | Sec. 6.5 / App. K (MCPP modality ablation) | default | used | `ede08e4f74b4…` |
| `m2_mcpp6_vjepa2_s10.pt` | 1.95 | `code/model/m2_mcpp6.py --video vjepa2 --seed 10` | Sec. 6.5 / App. K (MCPP modality ablation) | 10 | used | `36b101496423…` |
| `m2_mcpp6_vjepa2_s11.pt` | 1.95 | `code/model/m2_mcpp6.py --video vjepa2 --seed 11` | Sec. 6.5 / App. K (MCPP modality ablation) | 11 | used | `1e03cee9be3e…` |
| `m3_t5_video.pt` | 0.58 | `code/model/m3_t5_video.py` (earlier version) | App. L (event forecasting with video) | default | superseded by the `--video` variants | `867780951371…` |
| `m3_t5_video_dinov2.pt` | 0.58 | `code/model/m3_t5_video.py --video dinov2` | App. L (event forecasting with video) | default | used | `9b612b5d1fce…` |
| `m3_t5_video_dinov3.pt` | 0.58 | `code/model/m3_t5_video.py --video dinov3` | App. L (event forecasting with video) | default | used | `ed7024234b3f…` |
| `m3_t5_video_siglip2.pt` | 0.58 | `code/model/m3_t5_video.py --video siglip2` | App. L (event forecasting with video) | default | used | `c2ff2bff0f42…` |
| `m3_t5_video_vjepa2.pt` | 0.68 | `code/model/m3_t5_video.py --video vjepa2` | App. L (event forecasting with video) | default | used | `28139de138e8…` |
| `m4_clip.pt` | 8.85 | `code/model/m4_clip_align.py` | Table 3 (CLIP-aligned CAN) | default | used | `4dae862689a2…` |
| `m6_transfuser_lite.pt` | 4.57 | `code/model/m6_transfuser_lite.py` | Sec. 6.5 / App. K | default | used | `cbb148b1bab8…` |
| `m7_vidpool.pt` | 1.06 | `code/model/m7_video_probe.py` | Sec. 6.5 (video-only probe) | default | used | `fe8b5c4e4f1a…` |
| `s1_dann.pt` | 7.79 | `code/model/s1_dann.py` | Sec. 6.6 (adversarial vehicle invariance) | default | used | `06a42de118b9…` |
| `s1_supcon.pt` | 7.79 | `code/model/s1_supcon.py` | Table 3 (PatchTST + SupCon); Table 4 via `t4_eval.py` | default | used | `03d9e2215e6d…` |
| `s1_supcon_s10.pt` | 7.79 | `code/model/s1_supcon.py --seed 10` | Table 3 (PatchTST + SupCon); Table 4 via `t4_eval.py` | 10 | used | `b3fcc3e32478…` |
| `s1_supcon_s11.pt` | 7.79 | `code/model/s1_supcon.py --seed 11` | Table 3 (PatchTST + SupCon); Table 4 via `t4_eval.py` | 11 | used | `0d609eaa04a8…` |
| `s3_pred.pt` | 2.89 | `code/model/s3_personalized.py` | Sec. 6.4 (FiLM-conditioned GRU) | default | used | `440fac342405…` |
| `s3_pred_fe10.pt` | 1.09 | `code/model/s3_personalized.py --seed 10` | Sec. 6.4 / App. H, I | 10 (fixed evaluation split, App. I) | used | `03cf4eb2a854…` |
| `s3_pred_fe11.pt` | 1.09 | `code/model/s3_personalized.py --seed 11` | Sec. 6.4 / App. H, I | 11 (fixed evaluation split, App. I) | used | `f7debc6e54bc…` |
| `s3_pred_s10.pt` | 1.09 | `code/model/s3_personalized.py --seed 10` | Sec. 6.4 / App. H, I | 10 | used | `7042e2a1a5db…` |
| `s3_pred_s11.pt` | 1.09 | `code/model/s3_personalized.py --seed 11` | Sec. 6.4 / App. H, I | 11 | used | `6bb7516327e2…` |
| `s3_pred_s1z.pt` | 0.99 | `code/model/s3_personalized.py --use_s1` | Sec. 6.4 (re-ID embedding as conditioning signal) | default | used | `a66eb3e0c01e…` |
| `s3_pred_tf.pt` | 2.89 | `code/model/s3_personalized.py --arch transformer` | App. M (Transformer predictor) | default | used | `7379b7f23360…` |
| `s4_mcpp.pt` | 1.77 | `code/model/s4_mcpp.py` | Sec. 6.5 (MCPP multimodal predictor) | default | used | `6d5e05ede878…` |
| `s5_mdn.pt` | 2.02 | `code/model/s5_mdn.py` | Sec. 6.4 (MDN distributional head) | default | used | `b74ebe689f1b…` |
| `s5_mdn_fe10.pt` | 2.02 | `code/model/s5_mdn.py --seed 10` | Sec. 6.4 (MDN distributional head) | 10 (fixed evaluation split, App. I) | used | `3002cc8938a4…` |
| `s5_mdn_fe11.pt` | 2.02 | `code/model/s5_mdn.py --seed 11` | Sec. 6.4 (MDN distributional head) | 11 (fixed evaluation split, App. I) | used | `211d8b28b748…` |
| `s5_mdn_fe9.pt` | 2.02 | `code/model/s5_mdn.py --seed 9` | Sec. 6.4 (MDN distributional head) | 9 (fixed evaluation split, App. I) | used | `56acc7bcdca7…` |
| `s5_mdn_s10.pt` | 2.02 | `code/model/s5_mdn.py --seed 10` | Sec. 6.4 (MDN distributional head) | 10 | used | `042727eca1de…` |
| `s5_mdn_s11.pt` | 2.02 | `code/model/s5_mdn.py --seed 11` | Sec. 6.4 (MDN distributional head) | 11 | used | `b2f84122f3e3…` |
| `w1_arcface.pt` | 7.79 | `code/model/w1_backbones.py --arch arcface` | Table 3 | default | used | `42a93a5a2f65…` |
| `w1_arcface_s10.pt` | 7.79 | `code/model/w1_backbones.py --arch arcface --seed 10` | Table 3 | 10 | used | `fdfb4cd0b963…` |
| `w1_arcface_s11.pt` | 7.79 | `code/model/w1_backbones.py --arch arcface --seed 11` | Table 3 | 11 | used | `ec272e2e0d0a…` |
| `w1_ci.pt` | 2.66 | `code/model/w1_backbones.py --arch ci` | Table 3 | default | used | `b23b10be6c45…` |
| `w1_ci_s10.pt` | 2.66 | `code/model/w1_backbones.py --arch ci --seed 10` | Table 3 | 10 | used | `d4d642c8f031…` |
| `w1_ci_s11.pt` | 2.66 | `code/model/w1_backbones.py --arch ci --seed 11` | Table 3 | 11 | used | `9901325c3889…` |
| `w1_itr.pt` | 8.08 | `code/model/w1_backbones.py --arch itr` | Table 3 | default | used | `d138da649e50…` |
| `w1_itr_s10.pt` | 8.08 | `code/model/w1_backbones.py --arch itr --seed 10` | Table 3 | 10 | used | `ded6da7f38e2…` |
| `w1_itr_s11.pt` | 8.08 | `code/model/w1_backbones.py --arch itr --seed 11` | Table 3 | 11 | used | `a7af0a20554a…` |
| `w2_jepa.pt` | 7.79 | `code/model/w2_ssl.py --mode jepa` | Table 3 (self-supervised rows) | default | used | `b176373bcad9…` |
| `w2_masked.pt` | 7.79 | `code/model/w2_ssl.py --mode masked` | Table 3 (self-supervised rows) | default | used | `f85d6d1fb991…` |
| `w5_cvae.pt` | 1.43 | `code/model/w5_cvae.py` | Sec. 6.4 / App. H (CVAE distributional head) | default | used | `024a587db2d8…` |
| `w5_cvae_fe10.pt` | 1.43 | `code/model/w5_cvae.py --seed 10` | Sec. 6.4 / App. H (CVAE distributional head) | 10 (fixed evaluation split, App. I) | used | `a55bfe000ddf…` |
| `w5_cvae_fe11.pt` | 1.43 | `code/model/w5_cvae.py --seed 11` | Sec. 6.4 / App. H (CVAE distributional head) | 11 (fixed evaluation split, App. I) | used | `03254a56dc8f…` |
| `w5_cvae_fe9.pt` | 1.43 | `code/model/w5_cvae.py --seed 9` | Sec. 6.4 / App. H (CVAE distributional head) | 9 (fixed evaluation split, App. I) | unused (not referenced by any result) | `80a1cec2cf2b…` |
## License and permitted use
Released under the DriveDNA research license: non-commercial academic and research use only. These models were trained on driver identities and **must not be used to identify or re-identify individual drivers, nor for insurance, employment, credit or law-enforcement scoring of individuals**. Publications using them must cite the paper.
```bibtex
@article{drivedna2026,
title = {DriveDNA: A Large-Scale Multimodal Naturalistic Driving Dataset and
Benchmark for Driving Style Identification},
author = {Wang, Yuhang and Li, Lingyao and Zhou, Hao},
journal = {arXiv preprint arXiv:2607.23822},
year = {2026}
}
```