YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

OmniV2X

A generative foundation planner for efficient end-to-end cooperative driving.

Paper Code License Weights Datasets

OmniV2X treats ego-view images, navigation commands, optional map context, and infrastructure-side V2X messages as independent conditioning sequences for a generative trajectory planner. Instead of fusing dense BEV features, it uses lightweight V2X object tokens and cross-attention injection to keep communication and inference costs low.

OmniV2X teaser

Method

OmniV2X uses a frozen visual encoder, lightweight V2X/map encoders, per-source normalization, and a rectified-flow transformer planner. The model is first pretrained on single-agent driving data, then adapted to cooperative DAIR-V2X-Seq data with infrastructure object tokens.

OmniV2X architecture

Quick Start

Create the environment and install the package:

conda env create -f environment.yml
conda activate omniv2x
pip install -e .

Set dataset and output paths:

export NAVSIM_DEVKIT_ROOT="$PWD"
export NAVSIM_EXP_ROOT=/path/to/experiments
export OPENSCENE_DATA_ROOT=/path/to/openscene
export NUPLAN_MAPS_ROOT=/path/to/nuplan/maps
export DAIRV2X_DATA_ROOT=/path/to/dair-v2x-seq
export DAIRV2X_MAP_ROOT=/path/to/dair-v2x-seq/maps

The NAVSIM/OpenScene pretraining config expects this layout:

$OPENSCENE_DATA_ROOT/
  navsim_logs/trainval/
  sensor_blobs/trainval/

The helpers under download/ create this layout when run from the target OpenScene data directory.

Download released DAIR-V2X checkpoints:

mkdir -p checkpoints
hf download AndyPJT/OmniV2X \
  omniv2x_dairv2x_no_map.ckpt \
  omniv2x_dairv2x_map.ckpt \
  --local-dir checkpoints

Train the NAVSIM/OpenScene pretraining stage:

bash scripts/train_navsim_pretrain.sh \
  trainer.params.max_epochs=100 \
  dataloader.params.batch_size=32

Fine-tune on DAIR-V2X cooperative data:

export CHECKPOINT_PATH=/path/to/omniv2x_navsim_pretrain.ckpt
bash scripts/finetune_dairv2x.sh \
  trainer.params.max_epochs=500 \
  dataloader.params.batch_size=16

For the map-conditioned variant, use the map agent config:

AGENT_CONFIG=omniv2x_map_flow bash scripts/finetune_dairv2x.sh

Run DAIR-V2X inference:

export CHECKPOINT_PATH=checkpoints/omniv2x_dairv2x_no_map.ckpt
export DAIRV2X_DATA_ROOT=/path/to/dair-v2x-seq
MAP_TOKENS=0 INFRA_BBOX_TOKENS=16 NUM_INFERENCE_STEPS=20 \
  RUN_NAME=omniv2x_no_map_val \
  bash scripts/infer_dairv2x.sh

Run the map-conditioned checkpoint:

export CHECKPOINT_PATH=checkpoints/omniv2x_dairv2x_map.ckpt
export DAIRV2X_DATA_ROOT=/path/to/dair-v2x-seq
export DAIRV2X_MAP_ROOT=/path/to/dair-v2x-seq/maps
MAP_TOKENS=128 INFRA_BBOX_TOKENS=16 NUM_INFERENCE_STEPS=20 \
  RUN_NAME=omniv2x_map_val \
  bash scripts/infer_dairv2x.sh

Inference defaults to --device cuda for paper reproduction. On CPU-only machines, append --device cpu to the scripts/infer_dairv2x.sh command for a small smoke test.

Evaluate DAIR-V2X PDMS from saved trajectory predictions:

export TRAJECTORY_RESULTS=/path/to/trajectory_results.pkl
bash scripts/eval_dairv2x_pdms.sh

The corresponding Hydra configs are:

navsim/planning/script/config/common/agent/omniv2x_base.yaml
navsim/planning/script/config/common/agent/omniv2x_flow.yaml
navsim/planning/script/config/common/agent/omniv2x_map_flow.yaml
navsim/planning/script/config/training/omniv2x_navsim_pretrain.yaml
navsim/planning/script/config/training/omniv2x_dairv2x_finetune.yaml

See docs/CHECKPOINTS.md for the checkpoint/config contract used by the released no-map and map variants.

Training logs to TensorBoard by default under ${NAVSIM_EXP_ROOT}. To use Weights & Biases instead, launch with logger=wandb after logging in to W&B.

Datasets and Weights

This repository does not redistribute NAVSIM/OpenScene, nuPlan maps, or DAIR-V2X-Seq. Download datasets from their official sources and point the environment variables above to your local copies.

Pretrained DAIR-V2X checkpoints are hosted on Hugging Face:

Checkpoint Link Intended use
omniv2x_dairv2x_no_map.ckpt download SDSM/V2X object-token conditioning without map tokens
omniv2x_dairv2x_map.ckpt download SDSM + MAP conditioning with 128 map tokens

Results

Paper-reported DAIR-V2X cooperative planning results:

Model V2X message Cost (BPS) Avg. L2 (m, lower better) 3s Avg. Collision (%, lower better) PDMS (higher better)
OmniV2X SDSM 1,408 0.86 +/- 0.01 0.06 +/- 0.02 88.33 +/- 0.23
OmniV2X (w/ Map) SDSM + MAP 25,792 0.86 +/- 0.00 0.01 +/- 0.01 89.87 +/- 0.18

The paper also reports 35 ms inference latency and 550 MB GPU memory usage for the non-map OmniV2X setting. Single-checkpoint DAIR-V2X validation metrics for the released weights are listed in docs/CHECKPOINTS.md.

Repository Layout

assets/figures/                         Paper figures used by this README
download/                               Public NAVSIM/OpenScene download helpers
navsim/agents/omniv2x/core/             Agent, feature builders, and planner wrapper
navsim/agents/omniv2x/models/           Vision encoder, Q-Former, and flow/AR planner modules
navsim/agents/omniv2x/scripts/          Inference and DAIR-V2X PDMS evaluation code
navsim/agents/omniv2x/utils/            Training loop, Lightning module, and logging helpers
navsim/planning/script/config/          Hydra configs retained for OmniV2X training/evaluation
docs/                                  Checkpoint and configuration notes
scripts/                                Public launchers for pretraining, fine-tuning, inference, and PDMS
tests/                                  Lightweight regression tests

Citation

@article{peng2026omniv2x,
  title={OmniV2X: A Generative Foundation Planner for Efficient End-to-End Cooperative Driving},
  author={Peng, Juntong and Lu, Juanwu and Zhou, Yupeng and Cui, Can and Chen, Yaobin and Wang, Ziran},
  journal={arXiv preprint arXiv:2606.21165},
  year={2026}
}

Acknowledgements

OmniV2X builds on the NAVSIM planning stack and evaluates on DAIR-V2X-Seq-style cooperative driving data. We thank the maintainers of NAVSIM, nuPlan, DAIR-V2X, PyTorch, Lightning, Hydra, and the open-source driving research community.

License

This project is released under the Apache-2.0 license. Dataset licenses and checkpoint terms are governed by their respective providers.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for AndyPJT/OmniV2X