UrbanIng-V2X: A Large-Scale Multi-Vehicle, Multi-Infrastructure Dataset Across Multiple Intersections for Cooperative Perception
This repository provides tools for dataset visualization, conversion, and training using OpenCOOD.
For simplicity, two separate environments are used: one for scripts and one for OpenCOOD.
Stay up to date with the latest news, updates, and important notices regarding UrbanIng-V2X:
-
2025-09-18 β Paper accepted at NeurIPS 2025 π
-
2025-10-23 β Dataset made publicly available on Harvard Dataverse π¦
-
2025-10-23 β Devkit released for dataset access and replicating cooperative perception benchmarks π§°
-
2025-10-30 β PyPI package released for easier dataset access πΏ
Most easiest way to download, extract and access the dataset is via API
pip install urbaningfrom urbaning.data import download_dataset, download_one_sequence
download_dataset(download_dir="datasets/UrbanIng-V2X") # to download the entire dataset
download_one_sequence(download_dir="datasets/UrbanIng-V2X") # to download only one sequence for quick start purposes - optionally pass a sequence_nameNote: 7zip has to be installed.
from urbaning.data import unzip_dataset
unzip_dataset(dataset_folder="datasets/UrbanIng-V2X")
# If 7zip is not visible in the environment, pass also the sevenz_executable parameterDataset can also be downloaded from here.
After the dataset is downloaded and unziped, it should look like this.
. [DATA_ROOT] # Dataset root folder
βββ πdataset # data files
β βββ π20241126_0001_crossing2_00 # sequence 1's data
β β βββ πcrossing2_11_lidar # this and upcoming folders -> infrastructure lidars
β β β βββ π«οΈ1732632673950.npz # point cloud captured by crossing2_11_lidar at this time stamp
β β β β ...
β β βββ πcrossing2_12_lidar
β β βββ πcrossing2_31_lidar
β β βββ πcrossing2_32_lidar
β β βββ πcrossing2_13_thermal_camera # this and upcoming folders -> infrastructure cameras
β β β βββ πΌοΈ1732632673956.jpg # image captured by crossing2_13_thermal_camera at this time stamp
β β β β ...
β β βββ πcrossing2_14_thermal_camera
β β βββ πcrossing2_15_thermal_camera
β β βββ πcrossing2_33_thermal_camera
β β βββ πcrossing2_34_thermal_camera
β β βββ πvehicle1_back_left_camera # this and upcoming folders -> vehicle1 cameras
β β β βββ πΌοΈ1732632674019.jpg # image captured by vehicle1_back_left_camera at this time stamp
β β β β ...
β β βββ πvehicle1_back_right_camera
β β βββ πvehicle1_front_left_camera
β β βββ πvehicle1_front_right_camera
β β βββ πvehicle1_left_camera
β β βββ πvehicle1_right_camera
β β βββ πvehicle1_middle_lidar # vehicle1 lidar
β β β βββ π«οΈ1732632673950.npz # point cloud captured by vehicle1_middle_lidar at this time stamp
β β β β ...
β β βββ πvehicle1_state
β β β βββ π1732632670000.json # state information of vehicle1 at this time stamp
β β β β ...
β β βββ πvehicle2_back_left_camera # this and upcoming folders -> vehicle2 cameras
β β β βββ πΌοΈ1732632674019.jpg # image captured by vehicle2_back_left_camera at this time stamp
β β β β ...
β β βββ πvehicle2_back_right_camera
β β βββ πvehicle2_front_left_camera
β β βββ πvehicle2_front_right_camera
β β βββ πvehicle2_left_camera
β β βββ πvehicle2_right_camera
β β βββ πvehicle2_middle_lidar # vehicle2 lidar
β β β βββ π«οΈ1732632673950.npz # point cloud captured by vehicle2_middle_lidar at this time stamp
β β β β ...
β β βββ πvehicle2_state
β β β βββ π1732632670000.json # state information of vehicle2 at this time stamp
β β β β ...
β β βββ π§calibration.json # all intrinsic and extrinsic calibration parameters for both vehicles and infrastructures
β β βββ πtimesync_info.csv # time synchronization information linking several sensor data together
β β βββ πweather_data.json # weather_data during the data collection
β βββ π20241126_0004_crossing2_00
β βββ π20241126_0008_crossing1_00
β β ...
βββ πlabels # label files
β βββ π20241126_0001_crossing2_00.json # sequence 1's labels
β βββ π20241126_0004_crossing2_00.json
β βββ π20241126_0008_crossing1_00.json
β β ...
βββ πdigital_twin # carla digital twin folder
βββ πav_vehicle_data.json # static details like track width, axle length for connected vehicles
βββ πcrossings_lanelet2map.osm # HD Lanelet map of the crossings
βββ πlabels_av_track_ids.json # track IDs of connected vehicles in the labelsfrom urbaning import Dataset
# root folder where the dataset is downloaded and unzipped
root_folder = "datasets/UrbanIng-V2X"
# load the complete dataset
dataset = Dataset(root_folder)
# number of total sequences
print(len(dataset))# use indexing from the dataset
index = 10
# a Sequence instance
print(type(dataset[index]))
# or simple iterate over the dataset
for sequence in dataset:
print(sequence.sequence_name)
break
# you can also load one sequence manually
from urbaning.data import Sequence
# sequence to load
sequence_name = "20241126_0017_crossing1_00"
# load the sequence
sequence = Sequence(root_folder, sequence_name)# use indexing from the sequence
index = 115
# a Frame instance
print(type(sequence[index]))
# or simple iterate over the sequence
for frame in sequence:
# this frame timestamp
print(frame.timestamp)
breakFor more information on how to access the dataset, check out the tutorial.ipynb file.
To replicate the results provided in the paper.
git clone https://github.com/thi-ad/UrbanIng-V2X.git
cd UrbanIng-V2XWe use the OpenCOOD framework to evaluate our UrbanIng-V2X dataset on cooperative perception models. Please download the dataset and unzip by following the above description. To convert the dataset to OpenCOOD format:
from urbaning.converters import urbaning_to_opencood_format
urbaning_to_opencood_format(source_folder="datasets/UrbanIng-V2X", target_folder="datasets/UrbanIng-V2X-OpenCOOD-format")Used for training and inference using the OpenCOOD framework (Python 3.9) Navigate to UrbanIng-V2X/opencood.
# Create environment
conda env create -f opencood/environment.yml
conda activate UrbanIng_v2x
# Install PyTorch
conda install pytorch==1.12.0 torchvision==0.13.0 cudatoolkit=11.3 -c pytorch -c conda-forge
# Install other dependencies
pip install -r opencood/requirements.txt
python opencood/setup.py develop
# Install spconv 2.x
pip install spconv-cu113
# Build CUDA NMS extension
python opencood/utils/setup.py build_ext --inplaceUse these splits to match the experiment settings explained in the paper
python scripts/create_opencood_splits.pyNavigate to UrbanIng-V2X/opencood.
python opencood/tools/train.py --hypes_yaml opencood/hypes_yaml/your-config.yaml --half- Replace xxxx.yaml with your configuration file.
--half: Enables mixed precision training (optional).
Navigate to UrbanIng-V2X/opencood.
python opencood/tools/inference.py \
--model_dir ${CHECKPOINT_FOLDER} \
--fusion_method ${FUSION_STRATEGY} \
[--show_vis] [--show_sequence]--show_vis: Enable visualization--show_sequence: Show sequential frame results
-
Keep dataset paths absolute to avoid errors.
-
Ensure CUDA is properly installed for training and NMS compilation.
-
Use separate environment for OpenCOOD to prevent dependency conflicts.
-
Code: Licensed under the MIT License. See LICENSE file for details.
-
Dataset: Licensed under the Creative Commons Attribution 4.0 International CC BY-NC-ND 4.0. You must give appropriate credit; Cannot be used for commercial purposes; You may not distribute modified versions of the dataset.
- The recording, preparation of the data, and processing represent a joint effort between CARISSMA Institute of Automated Driving and AImotion Bavaria.
- The dataset was collected within the High-Definition Testfield (constructed within the KIVI-Project funded by the Federal Ministry for Digital and Transport Germany (Bundesministerium fΓΌr Digitales und Verkehr)).
- This work was supported by the Hightech Agenda Bavaria, the SiRaMiS project, and the Bavarian Academic Forum - BayWISS, all funded by the Bavarian State Ministry of Science and the Arts (Bayrisches Staatsministerium fΓΌr Wissenschaft und Kunst).
If you use UrbanIng-V2X in your research, please cite:
@misc{urbaningv2x2025,
title={UrbanIng-V2X: A Large-Scale Multi-Vehicle, Multi-Infrastructure Dataset Across Multiple Intersections for Cooperative Perception},
author={Karthikeyan Chandra Sekaran and Markus Geisler and Dominik RΓΆΓle and Adithya Mohan and Daniel Cremers and Wolfgang Utschick and Michael Botsch and Werner Huber and Torsten SchΓΆn},
year={2025},
eprint={2510.23478},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2510.23478},
}