OpenCOOD
OpenCOOD copied to clipboard
[ICRA 2022] An opensource framework for cooperative detection. Official implementation for OPV2V.
OpenCOOD
OpenCOOD is an Open COOperative Detection framework for autonomous driving. It is also the official implementation of the ICRA 2022 paper OPV2V.
News
07/06/2022: Powered by OpenCOOD, our paper V2X-ViT: Vehicle-to-Everything Cooperative Perception with Vision Transformer has been accepted by ECCV2022!
01/31/2022: Our paper OPV2V: An Open Benchmark Dataset and Fusion Pipeline for Perception with Vehicle-to-Vehicle Communication has been accpted by ICRA2022!
09/21/2021: OPV2V dataset is public available: https://mobility-lab.seas.ucla.edu/opv2v/
Features
-
Provide easy data API for multiple popular multi-agent perception dataset:
- [x] OPV2V [ICRA2022]
- [ ] V2XSet [ECCV2022]
-
Provide multiple SOTA 3D detection backbone:
- [X] PointPillar
- [X] Pixor
- [X] VoxelNet
- [X] SECOND
-
Support SOTA multi-agent perception models:
- [x] Attentive Fusion [ICRA2022]
- [x] Cooper [ICDCS]
- [x] F-Cooper [SEC2019]
- [x] V2VNet [ECCV2022]
- [x] FPV-RCNN [RAL2022]
- [ ] DiscoNet [NeurIPS2022]
- [ ] V2X-ViT [ECCV2022]
-
Provide a convenient log replay toolbox for OPV2V dataset. More importantly, it allows users to enrich the original dataset by attaching new sensors or define additional tasks (e.g. tracking, prediction) without changing the events in the initial dataset (e.g. positions and number of all vehicles, traffic speed).
Data Downloading
All the data can be downloaded from google drive. If you have a good internet, you can directly
download the complete large zip file such as train.zip
. In case you suffer from downloading large fiels, we also split each data set into small chunks, which can be found
in the directory ending with _chunks
, such as train_chunks
. After downloading, please run the following command to each set to merge those chunks together:
cat train.zip.parta* > train.zip
unzip train.zip
Installation
Please refer to data introduction and installation guide to prepare data and install OpenCOOD. To see more details of OPV2V data, please check our website.
Quick Start
Data sequence visualization
To quickly visualize the LiDAR stream in the OPV2V dataset, first modify the validate_dir
in your opencood/hypes_yaml/visualization.yaml
to the opv2v data path on your local machine, e.g. opv2v/validate
,
and the run the following commond:
cd ~/OpenCOOD
python opencood/visualization/vis_data_sequence.py [--color_mode ${COLOR_RENDERING_MODE}]
Arguments Explanation:
-
color_mode
: str type, indicating the lidar color rendering mode. You can choose from 'constant', 'intensity' or 'z-value'.
Train your model
OpenCOOD uses yaml file to configure all the parameters for training. To train your own model from scratch or a continued checkpoint, run the following commonds:
python opencood/tools/train.py --hypes_yaml ${CONFIG_FILE} [--model_dir ${CHECKPOINT_FOLDER}]
Arguments Explanation:
-
hypes_yaml
: the path of the training configuration file, e.g.opencood/hypes_yaml/second_early_fusion.yaml
, meaning you want to train an early fusion model which utilizes SECOND as the backbone. See Tutorial 1: Config System to learn more about the rules of the yaml files. -
model_dir
(optional) : the path of the checkpoints. This is used to fine-tune the trained models. When themodel_dir
is given, the trainer will discard thehypes_yaml
and load theconfig.yaml
in the checkpoint folder.
Test the model
Before you run the following command, first make sure the validation_dir
in config.yaml under your checkpoint folder
refers to the testing dataset path, e.g. opv2v_data_dumping/test
.
python opencood/tools/inference.py --model_dir ${CHECKPOINT_FOLDER} --fusion_method ${FUSION_STRATEGY} [--show_vis] [--show_sequence]
Arguments Explanation:
-
model_dir
: the path to your saved model. -
fusion_method
: indicate the fusion strategy, currently support 'early', 'late', and 'intermediate'. -
show_vis
: whether to visualize the detection overlay with point cloud. -
show_sequence
: the detection results will visualized in a video stream. It can NOT be set withshow_vis
at the same time.
The evaluation results will be dumped in the model directory.
Benchmark and model zoo
Results on OPV2V dataset ([email protected] for no-compression/ compression)
Backbone | Fusion Strategy | Bandwidth (Megabit), before/after compression |
Default Towns | Culver City | Download | |
---|---|---|---|---|---|---|
Naive Late | PointPillar | Late | 0.024/0.024 | 0.781/0.781 | 0.668/0.668 | url |
Cooper | PointPillar | Early | 7.68/7.68 | 0.800/x | 0.696/x | url |
Attentive Fusion | PointPillar | Intermediate | 126.8/1.98 | 0.815/0.810 | 0.735/0.731 | url |
F-Cooper | PointPillar | Intermediate | 72.08/1.12 | 0.790/0.788 | 0.728/0.726 | url |
V2VNet | PointPillar | Intermediate | 72.08/1.12 | 0.822/0.814 | 0.734/0.729 | url |
FPV-RCNN | PV-RCNN | Intermediate(2 stage) | 0.24/0.24 | 0.820/0.820 | 0.763/0.763 | url |
Naive Late | VoxelNet | Late | 0.024/0.024 | 0.738/0.738 | 0.588/0.588 | url |
Cooper | VoxelNet | Early | 7.68/7.68 | 0.758/x | 0.677/x | url |
Attentive Fusion | VoxelNet | Intermediate | 576.71/1.12 | 0.864/0.852 | 0.775/0.746 | url |
Naive Late | SECOND | Late | 0.024/0.024 | 0.775/0.775 | 0.682/0.682 | url |
Cooper | SECOND | Early | 7.68/7.68 | 0.813/x | 0.738/x | url |
Attentive | SECOND | Intermediate | 63.4/0.99 | 0.826/0.783 | 0.760/0.760 | url |
Naive Late | PIXOR | Late | 0.024/0.024 | 0.578/0.578 | 0.360/0.360 | url |
Cooper | PIXOR | Early | 7.68/7.68 | 0.678/x | 0.558/x | url |
Attentive | PIXOR | Intermediate | 313.75/1.22 | 0.687/0.612 | 0.546/0.492 | url |
Note:
- We suggest using PointPillar as the backbone when you are creating your method and try to compare with our benchmark, as we implement most of the SOTA methods with this backbone only.
- We assume the transimssion rate is 27Mbp/s. Considering the frequency of LiDAR is 10Hz, the bandwidth requirement should be less than 2.7Mbp to avoid severe delay.
- A 'x' in the benchmark table represents the bandwidth requirement is too large, which can not be considered to employ in practice.
Tutorials
We have a series of tutorials to help you understand OpenCOOD more. Please check the series of our tutorials.
Citation
If you are using our OpenCOOD framework or OPV2V dataset for your research, please cite the following paper:
@inproceedings{xu2022opencood,
author = {Runsheng Xu, Hao Xiang, Xin Xia, Xu Han, Jinlong Li, Jiaqi Ma},
title = {OPV2V: An Open Benchmark Dataset and Fusion Pipeline for Perception with Vehicle-to-Vehicle Communication},
booktitle = {2022 IEEE International Conference on Robotics and Automation (ICRA)},
year = {2022}}
Relevant Projects
OpenCOOD has supported several projects in cooperative perception field.
V2X-ViT: Vehicle-to-Everything Cooperative Perception with Vision Transformer
Runsheng Xu*, Hao Xiang*, Zhengzhong Tu*, Xin Xia, Ming-Hsuan Yang, Jiaqi Ma
ECCV2022
[Paper] [Code] [Talk]
OPV2V: An Open Benchmark Dataset and Fusion Pipeline for Perception with Vehicle-to-Vehicle Communication
Runsheng Xu*, Hao Xiang*, Xin Xia, Jinlong Li, Jiaqi Ma
ICRA2022
[Paper] [Website] [Code]