BATON: A Multimodal Benchmark for Bidirectional Automation Transition Observation in Naturalistic Driving
Organizations: University of South Florida Tampa, Florida, USA · Tongji University Shanghai, China · University of Arizona Tucson, Arizona, USA
Abstract
Existing driving automation (DA) systems on production vehicles rely on human drivers to decide when to engage DA while requiring them to remain continuously attentive and ready to intervene. This design demands substantial situational judgment and imposes significant cognitive load, leading to steep learning curves, suboptimal user experience, and safety risks from both over-reliance and delayed takeover. Predicting when drivers hand over control to DA and when they take it back is therefore critical for designing proactive, context-aware HMI, yet existing datasets rarely capture the multimodal context, including road scene, driver state, vehicle dynamics, and route environment. To fill this gap, we introduce BATON, a large-scale naturalistic dataset capturing real-world DA usage across 127 drivers, and 136.6 hours of driving. The dataset synchronizes front-view video, in-cabin video, decoded CAN bus signals, radar-based lead-vehicle interaction, and GPS-derived route context, forming a closed-loop multimodal record around each control transition. We define three benchmark tasks: driving action understanding, handover prediction, and takeover prediction, and evaluate baselines spanning sequence models, classical classifiers, and zero-shot VLMs. Results show that visual input alone is insufficient for reliable transition prediction: front-view video captures road context but not driver state, while in-cabin video reflects driver readiness but not the external scene. Incorporating CAN and route-context signals substantially improves performance over video-only settings, indicating strong complementarity across modalities. We further find takeover events develop more gradually and benefit from longer prediction horizons, whereas handover events depend more on immediate contextual cues, revealing an asymmetry with direct implications for HMI design in assisted driving systems.
Figures & tables
| Dataset | Setting | Modalities | Scale | Focus | Gap |
|---|---|---|---|---|---|
| Drive&Act ( Martin et al., 2019 ) | Controlled | Cabin RGB/IR/depth | 12 h | Cabin actions | No road view; no control transition |
| DAD ( Kopuklu et al., 2021 ) | Simulator | Cabin IR/depth | 31 subjects | Driver anomaly | Simulator only; cabin only |
| AIDE ( Yang et al., 2023 ) | Real-world | Road + cabin video | 2,898 clips | Holistic Perception | No control loop; not transition-centered |
| manD ( Dargahi Nobari and Bertram, 2024 ) | Simulator | Cabin + physiol. + vehicle | 50 participants | Driver Status | Simulator only; not real-world driving |
| TD2D ( Hwang et al., 2025 ) | Simulator | Cabin + takeover signals | 500 cases; 50 drivers | Takeover only | Simulator only; one-sided transition |
| Lee et al. ( Lee et al., 2025 ) | Real-world | CAN + smartphone IMU | 4 drivers | Activation only | Small scale; no cabin/road video |
| Modality | Source | Rate | Coverage | Key parameters | Role | Data origin |
|---|---|---|---|---|---|---|
| Front-view video | Road camera | 20 fps | 777/781 | lanes, curves, traffic, lead vehicle | outside-scene context | raw video |
| In-cabin video | Cabin camera | 20 fps | 781/781 | head pose, gaze, motion | driver readiness | raw video |
| Vehicle dynamics | CAN & control | 100 Hz | 781/781 | speed, steering, pedals, DA mode | control-loop state | CAN logs |
| IMU motion | Device IMU | 100 Hz | 781/781 | acceleration, rotation | motion dynamics | inertial signals |
| Radar interaction | Forward radar | 20 Hz | 781/781 | relative distance, relative speed | lead interaction | radar tracks |
| Driver monitoring | DMS outputs | 20 Hz | 781/781 | awareness, distraction, eye state | driver state | openpilot ( comma.ai, 2018 ) |
| Item | Setting |
|---|---|
| Scope | Bidirectional driver–automation transitions |
| Tasks | T1 action recognition (auxiliary); T2 handover; T3-D takeover detection; T3-A takeover anticipation |
| Input / Horizon | 5 s window; 1 / 3 / 5 s horizon (main: 3 s) |
| Stride | 0.5 s |
| Splits | Cross-driver (main), cross-vehicle, random |
| Inputs | Leak-safe (4 ADAS-control variables withheld); T3-A additionally withholds 6 driver-override channels |
| Input protocol | T2 | T3 |
|---|---|---|
| Full input (upper-bound reference) | 0.360 / 0.292 | 0.520 / 0.428 |
| Leak-safe (official; T3-D) | 0.222 / 0.091 | 0.478 / 0.385 |
| Anticipation-safe (T3-A) | – | 0.056 / 0.026 |
| Method | Input | T2: Handover | T3-D: Takeover detection | T3-A: Takeover anticipation |
|---|---|---|---|---|
| Base rate | – | .148 / .037 | .120 / – | .035 / – |
| GRU | struct | .202 .009 / .072 .006 | .280 .049 / .119 .029 | – |
| Cross-Modal Transformer | struct | .242 .011 / .103 .005 | .316 .028 / .135 .031 | – |
| RG-HBT-Q | struct+video | .254 .020 / .111 .020 | .398 .007 / .230 .006 | .058 .006 / .026 .002 |
| DI-RG-HBT-Q | struct+video | .219 .011 / .116 .017 | .366 .025 / .215 .036 | – |
| TCN | struct | .190 .008 / .058 .008 | .332 .064 / .167 .046 | – |
| Model | T1 | T2 | T3-D |
|---|---|---|---|
| Gemini-2.5-Flash | 0.362 | 0.184 | 0.202 |
| GPT-4o | 0.303 | 0.165 | 0.196 |
| Qwen3-VL-8B | 0.280 | 0.166 | 0.177 |
| Qwen3-VL-4B | 0.212 | 0.173 | 0.167 |
| MiniCPM-V-4.5 | 0.170 | 0.174 | 0.182 |
| LLaVA-OneVision-1.5-8B | 0.168 | 0.195 | 0.149 |
Appendix figures & tables18 assets
Supplementary material from the paper’s appendix.
Appendix
| Statistic | Full corpus | Benchmark subset |
|---|---|---|
| Routes / route bundles | 781 | 565 |
| Driving hours | 204.9 | 162.1 |
| Drivers | 173 | 150 |
| Vehicle models (manufacturers) | 108 (22) | 99 |
| Control transitions | – | 3,593 |
| handover / takeover | – | 1,800 / 1,793 |
| Configuration | Routes | Hours | Handovers | Takeovers |
|---|---|---|---|---|
| openpilot lateral + stock ACC | 409 | 128.0 | 1,728 | 1,726 |
| Stock assistance only | 31 | 11.7 | 69 | 63 |
| openpilot lateral + longitudinal | 0 | – | – | – |
| Human-only routes ( 10 s assisted) | 125 | 22.4 | 3 | 4 |
| Engagement state | Hours | Share |
|---|---|---|
| Neither active (manual) | 73.3 | 45.2% |
| Longitudinal only (ACC-style) | 11.0 | 6.8% |
| Lateral only | 15.4 | 9.5% |
| Both active | 62.4 | 38.5% |
| Raw OR-transition subtype | Activations | Deactivations |
| Lateral flag only | 1,112 | 1,003 |
| Tier | Access | Contents | Reproduces |
|---|---|---|---|
| GitHub benchmark package | public | sample CSVs (all tasks/horizons incl. T3-A), split files, labels, event lists, generation/eval/baseline code | protocol, metrics, splits |
| HF BATON -Sample | public | 43 full routes (video + all sensor CSVs) | pipeline inspection |
| Benchmark-ready tier | public | 50 Hz tensors, video/pose features for 565 benchmark routes | all reported results |
| HF BATON full corpus | strict screening | all 781 routes: video + per-route sensor CSVs, in full | everything, incl. new tasks |
| Task 1 | Task 2 | Task 3 | ||||
| Model | Acc | AUROC | AUPRC | AUROC | AUPRC | |
| LR | .865 | .838 | .812 | .609 | .783 | .350 |
| XGBoost (5 s) | .936 | .920 | .828 | .631 | .877 | .653 |
| GRU (5 s) | .926 | .910 | .815 | .590 | .843 | .429 |
| TCN | .925 | .911 | .770 | .554 | .838 | .472 |
| XGBoost (last frame) | .790 | .700 | .782 | .449 | .870 | .608 |
| Action | Rule |
|---|---|
| Stopped | vEgo below 0.5 m/s for at least 2 s |
| Lane-change | laneChangeState 0, or a turn signal is on and steering angle exceeds 5 ∘ |
| Turning | steering angle above 10 ∘ for at least 1 s |
| Braking | aEgo below m/s 2 , or brake pressed |
| Accelerating | aEgo above 0.37 m/s 2 for at least 1 s |
| Car-following | lead vehicle active, gap below 60 m, absolute acceleration below 1 m/s 2 |
| Signal category (examples) | Task 1 | Tasks 2/3 | Can it trivially reveal the target? |
|---|---|---|---|
| Engagement flags ( cc_latActive , cruiseState_enabled ) | not used by rules | removed | Yes for Tasks 2/3: they define the label, hence removed. |
| Automation control state / command ( cs_longControlState , actuators_accel ) | not used by rules | removed | No (0% within-window change; single-feature AUPRC at base rate); removed conservatively. |
| Automation warnings / take-over requests | not exposed | not exposed | N/A: no warning or request flag is exposed as input. |
| Planner outputs ( model_desiredCurvature , model_desiredAcceleration ) | not used by rules | kept | No (0% within-window change; single-feature AUPRC at base rate). |
| Driver input (brake, accelerator, steering, blinkers) | partly rule signals (ablated) | kept | Not the label; strongest retained feature 0.247 vs. 0.332 for a removed flag. |
| Ego motion & lane state ( vEgo , aEgo , steering angle, lane state, lead distance) | define the action label (ablated) | kept | For Task 1, yes by construction; quantified (rule-free 0.577) and human-validated ( ). |
| Model | Input | T1 | T2 | T3 | Model | Input | T1 | T2 | T3 |
|---|---|---|---|---|---|---|---|---|---|
| Qwen2-VL-2B | Front | .131 | .147 | .131 | Qwen3-VL-4B-Th. | Front | .241 | .176 ∗ | .160 |
| Qwen2-VL-2B | Cabin | .084 | .147 | .146 | Qwen3-VL-4B-Th. | Cabin | .131 ∗ | .177 ∗ | .175 ∗ |
| Qwen2-VL-2B | F+C | .079 | .147 | .133 | Qwen3-VL-4B-Th. | F+C | .240 | .161 ∗ | .152 |
| Qwen2-VL-2B | Full | .058 | .147 | .151 | Qwen3-VL-4B-Th. | Full | .459 | .201 ∗ | .157 ∗ |
| Qwen2.5-VL-3B | Front | .083 | .147 | .122 | Qwen3-VL-8B | Front | .280 | .162 | .177 |
| Qwen2.5-VL-3B | Cabin | .058 | .149 | .138 | Qwen3-VL-8B | Cabin | .138 | .159 | .123 |
| Model | Handover | Takeover |
|---|---|---|
| XGBoost (controller signals) | 0.246 0.007 | 0.441 0.005 |
| V-JEPA2 video only | 0.241 0.007 | 0.307 0.010 |
| Multimodal fusion | 0.264 0.008 | 0.440 0.004 |
| Method | T2: Handover | T3-D: Takeover det. |
|---|---|---|
| GRU | .337 .011 / .162 .007 | .436 .016 / .308 .014 |
| Cross-Modal Transformer | .302 .019 / .128 .013 | .333 .025 / .173 .018 |
| XGBoost (stats) | .360 .006 / .190 .008 | .443 .001 / .365 .003 |
| XGBoost (stats+pose) | .434 .006 / .257 .007 | .452 .002 / .362 .005 |
| Task | Method | Temporal | Cross-driver | Cross-vehicle |
|---|---|---|---|---|
| T2 | XGB stats | .454 .002 | .236 .003 | .360 .006 |
| T2 | XGB stats+pose | .465 .004 | .258 .003 | .434 .006 |
| T2 | GRU | .351 .020 | .202 .009 | .337 .011 |
| T3-D | XGB stats | .532 .001 | .479 .007 | .443 .001 |
| T3-D | XGB stats+pose | .567 .001 | .514 .000 | .452 .002 |
| T3-D | GRU | .414 .028 | .280 .049 | .436 .016 |
| Features | Task 2 | Task 3 |
|---|---|---|
| stats | .236 .003 / .103 | .479 .007 / .380 |
| stats + pose | .258 .003 / .114 | .514 .000 / .413 |
| stats + WM (ViT-L/256) | .306 .005 / .148 | .452 .001 / .352 |
| stats + WM (ViT-g/384) | .335 .003 / .171 | .460 .002 / .360 |
| WM only (ViT-L/256) | .265 .008 / .130 | .280 .006 / .166 |
| WM only (ViT-g/384) | .286 .000 / .165 | .365 .002 / .242 |
| Pre-override buffer | Sample AUPRC | Event AUPRC | Events |
| 0.5 s | .067 .002 | .031 .001 | 96 |
| 1.0 s (official) | .056 .001 | .026 .001 | 92 |
| 1.5 s | .043 .001 | .023 .001 | 87 |
| 2.0 s | .030 .001 | .019 .000 | 76 |
| Bootstrap 95% CI | stats | stats+pose | |
| T3-D event AUPRC | .379 [.315, .441] | .411 [.343, .474] |
| Attempt | T3-A AUPRC |
|---|---|
| Long-window stats (XGB), 30 s | .064 .002 |
| Long-window stats (XGB), 60 s | .068 .002 |
| LCAT, video streams only, 60 s | .039 .003 |
| LCAT, pose stream only, 60 s | .033 .002 |
| LCAT, all streams, 30 s | .047 .003 |
| LCAT, all streams, 60 s | .061 .004 |
| Features (XGBoost readout) | AUPRC |
|---|---|
| stats | .056 .001 / .026 |
| stats + pose | .070 .001 / .040 |
| stats + WM (ViT-L/256) | .043 .001 / .019 |
| stats + WM (ViT-g/384) | .049 .001 / .024 |
| Input | LC F1 | Acc | |
|---|---|---|---|
| Full structured (with rule signals) | 0.889 | 0.833 | 0.903 |
| Rule-free structured | 0.577 | 0.344 | 0.632 |
| Front-camera video only | 0.592 | 0.106 | 0.693 |
| IMU only | 0.352 | 0.101 | 0.391 |
| Driver-monitoring only | 0.219 | 0.016 | 0.271 |
| Chance (seven classes) | 0.14 | – | – |
| Class (label rate) | Structured (rule-free) | Front video |
|---|---|---|
| Stopped (19.0%) | .919 .011 | .908 .004 |
| Lane-change (1.3%) | .461 .055 | .065 .013 |
| Turning (16.6%) | .718 .027 | .736 .038 |
| Braking (21.8%) | .758 .021 | .593 .027 |
| Accelerating (11.3%) | .599 .018 | .732 .012 |
| Car-following (40.3%) | .978 .004 | .908 .002 |
| Protocol | Model | [email protected] | R@1 | R@2 | R@1, lead 1s | lead 2s | lead 3s | Median lead (s) |
|---|---|---|---|---|---|---|---|---|
| T2 | XGB stats | .032 | .037 | .046 | .032 | .018 | .005 | 2.0 |
| T2 | XGB stats+WM(g384) | .041 | .073 | .115 | .069 | .041 | .005 | 2.0 |
| T3-D | XGB stats | .267 | .281 | .295 | .277 | .240 | .124 | 3.0 |
| T3-D | XGB stats+pose | .267 | .277 | .323 | .272 | .217 | .115 | 3.0 |
| T3-A | XGB stats | .000 | .000 | .000 | .000 | .000 | .000 | – |
| T3-A | XGB stats+pose | .011 | .022 | .022 | .022 | .011 | .000 | 2.25 |
Autonomous Driving Benchmarks
Autonomous driving benchmarks evaluate how well vehicles perceive, predict, plan, and act safely across varied roads and conditions.
See all 140 papers