Home

Awesome

MS3D and MS3D++

This is the official code release for

Introduction

MS3D is a simple auto-labeling framework for vehicles and pedestrians that generates high quality labels for training 3D detectors on different lidar types, regardless of their scan pattern or point cloud density.

To auto-label your own point cloud data, see our guide. To obtain the best results, please use multi-sweep pre-trained models for auto-labeling. Use both dense and sparse lidar pre-trained models in the auto-labeling ensemble for the best chance of generalization.

Get a quick understanding of MS3D with our explanation video and tutorial notebook.

<p align="center"> <img src="docs/media/ms3d++_framework.png"> </p>

Our MS3D framework has the following benefits:

<p align="center"> <img src="docs/media/ms3d++_qualitative_tgt_waymo_720p_10s.gif", width=625> </p> <p align="center"> <img src="docs/media/ms3d++_qualitative_tgt_nuscenes.gif", width=625> </p>

Our box fusion method, KBF, can be used for detector ensembling in a supervised setting as well and can outperform Weighted Box Fusion (WBF). See our first MS3D paper for comparison results and a simple demo here.

This main branch is the official release for MS3D++ and is built upon OpenPCDet v0.6.0. If you wish to use our previous MS3D code, please refer to the MS3D branch.

Overview

  1. Installation
  2. Usage: Auto-labeling
  3. Pre-trained Model Zoo
  4. UDA Model Zoo
  5. Citation

Installation

Please refer to INSTALL.md for the installation of MS3D.

Usage: Auto-labeling

We provide the following guides to learn how to use MS3D.

We provide a tutorial to demonstrate how MS3D auto-labels a folder of point clouds.

Pre-trained Model Zoo

In this section, we provide a collection of pre-trained (aka. off-the-shelf) models that can be used to reproduce our results or label your own datasets. If you wish to download multiple detectors, we provide links to download the entire folder of detectors trained on nuScenes and Lyft to save some time.

Reported 3D average precision is the oracle performance for the range breakdown 0-30m / 30-50m / 50-80m when trained and tested on the same dataset.

SourceDetectorSweepsVehiclePedestrianDownload
LyftPV-RCNN++ (Anchor)188.9 / 68.2 / 25.055.1 / 26.8 / 11.9model
LyftPV-RCNN++ (Center)187.1 / 66.2 / 23.650.0 / 27.7 / 10.5model
LyftVoxelRCNN (Anchor)187.8 / 66.3 / 22.554.5 / 29.8 / 10.8model
LyftVoxelRCNN (Center)188.6 / 66.9 / 22.852.5 / 27.3 / 11.0model
LyftPV-RCNN++ (Anchor)390.3 / 73.3 / 29.057.0 / 33.4 / 19.2model
LyftPV-RCNN++ (Center)388.2 / 71.1 / 27.853.9 / 33.1 / 17.5model
LyftVoxelRCNN (Anchor)388.0 /79.7 / 26.257.8 / 36.6 / 18.9model
LyftVoxelRCNN (Center)388.0 / 70.4 / 26.359.5 / 34.4 / 18.9model
LyftIA-SSD382.6 / 58.7 / 17.628.9 / 18.9 / 12.2model
nuScenesPV-RCNN++ (Anchor)1072.6 / 20.8 / 2.644.0 / 13.8 / 1.4model
nuScenesPV-RCNN++ (Center)1068.9 / 18.9 / 2.242.2 / 14.8 / 1.4model
nuScenesVoxelRCNN (Anchor)1069.8 / 17.2 / 2.142.7 / 12.3 / 0.9model
nuScenesVoxelRCNN (Center)1066.6 / 17.5 / 1.943.2 / 14.8 / 1.7model
nuScenesIA-SSD1057.0 / 10.2 / 0.831.5 / 8.9 / 0.7model
WaymoPV-RCNN++ (Anchor)190.2 / 66.4 / 38.868.3 / 57.2 / 39.0-
WaymoPV-RCNN++ (Center)190.6 / 68.2 / 40.176.6 / 67.6 / 51.2-
WaymoVoxelRCNN (Anchor)189.9 / 65.3 / 37.067.9 / 56.2 / 36.1-
WaymoVoxelRCNN (Center)190.2 / 67.9 / 39.376.0 / 66.8 / 48.8-
WaymoIA-SSD186.7 / 59.7 / 31.360.9 / 55.4 / 42.6-
WaymoPV-RCNN++ (Anchor)490.4 / 68.2 / 40.767.7 / 56.7 / 37.0-
WaymoPV-RCNN++ (Center)491.1 / 70.1 / 42.375.9 / 68.1 / 53.0-
WaymoVoxelRCNN (Anchor)490.8 / 69.8 / 43.668.9 / 61.0 / 46.6-
WaymoVoxelRCNN (Center)491.1 / 71.7 / 45.578.5 / 71.7 / 60.3-

If you would like to contribute to this table with different models that are trained on different datasets using OpenPCDet, please email me at darrenjktsai@gmail.com with the cfgs/model and I can add it in. Note that the models should be trained with SHIFT_COOR for better cross-domain performance.

We do not provide links to Waymo models due to the Waymo Dataset License Agreement. If you would like to have the Waymo pre-trained models, please send me an email with your name, institute, a screenshot of the Waymo dataset registration confirmation mail and your intended usage. Note that we are not allowed to share the model with you if it will use for any profit-oriented activities.

UDA Model Zoo

In this section we provide the final models after multiple self-training rounds which were used for our paper's results. Average precision results are reported as BEV / 3D with KITTI's evaluation at 40 recall levels.

We also provide the final set of pseudo-labels for each target domain. These can be directly used to train other detectors.

Target Domain: nuScenes

nuScenes was auto-labeled using an ensemble of Waymo and Lyft pre-trained detectors. The final set of pseudo-labels can be downloaded here.

MethodDetectorSweepsVehiclePedestrianDownload
MS3DSECOND-IoU142.2 / 24.7-model
MS3D++SECOND-IoU143.9 / 23.1-model
MS3DVoxelRCNN (Center)1049.2 / 27.5-model
MS3D++VoxelRCNN (Center)1050.3 / 27.225.8 / 15.9model
MS3D++VoxelRCNN (Anchor)1052.1 / 26.527.0 / 15.4model
GT-TrainedVoxelRCNN (Center)1056.4 / 37.241.7 / 32.5model
GT-TrainedVoxelRCNN (Anchor)1055.3 / 36.638.3 / 29.7model

Target Domain: Waymo

Waymo was auto-labeled using an ensemble of nuScenes and Lyft pre-trained detectors. The final set of pseudo-labels can be downloaded here.

MethodDetectorSweepsVehiclePedestrianDownload
MS3DVoxelRCNN (Center)464.3 / 47.7--
MS3D++VoxelRCNN (Center)470.6 / 52.857.0 / 51.8-
MS3D++VoxelRCNN (Anchor)470.3 / 52.352.7 / 48.9-
GT-TrainedVoxelRCNN (Center)475.1 / 61.267.8 / 62.9-
GT-TrainedVoxelRCNN (Anchor)473.8 / 60.557.8 / 54.7-

As mentioned above regarding Waymo's licensing, email me at darrenjktsai@gmail.com if you wish to download the Waymo models. You can also train these models yourself using our provided cfg files and pseudo-labels.

Target Domain: Lyft

Lyft was auto-labeled using an ensemble of Waymo and nuScenes pre-trained detectors. The final set of pseudo-labels can be downloaded here.

MethodDetectorSweepsVehiclePedestrianDownload
MS3DVoxelRCNN (Center)377.3 / 63.4-model
MS3D++VoxelRCNN (Center)377.0 /66.046.9 / 43.3model
MS3D++VoxelRCNN (Anchor)377.2 / 65.347.2 / 43.6model
GT-TrainedVoxelRCNN (Center)386.8 / 74.760.6 / 54.2model
GT-TrainedVoxelRCNN (Anchor)385.2 / 72.758.8 / 50.3model

More qualitative results

Take a look at more of our visualizations for MS3D++ qualitative and MS3D qualitative.

License

MS3D is released under the Apache 2.0 license.

Citation

If you find this project useful in your research, please give us a star and consider citing:

@article{tsai2024ms3d++,
  author={Tsai, Darren and Berrio, Julie Stephany and Shan, Mao and Nebot, Eduardo and Worrall, Stewart},
  journal={IEEE Transactions on Intelligent Vehicles}, 
  title={MS3D++: Ensemble of Experts for Multi-Source Unsupervised Domain Adaptation in 3D Object Detection}, 
  year={2024},
  pages={1-16},
  doi={10.1109/TIV.2024.3441527}
}

@inproceedings{tsai2023ms3d,
  author={Tsai, Darren and Berrio, Julie Stephany and Shan, Mao and Nebot, Eduardo and Worrall, Stewart},
  booktitle={2023 IEEE 26th International Conference on Intelligent Transportation Systems (ITSC)}, 
  title={MS3D: Leveraging Multiple Detectors for Unsupervised Domain Adaptation in 3D Object Detection}, 
  year={2023},
  pages={140-147},
  doi={10.1109/ITSC57777.2023.10421941}
}