MS3D
(T-IV, ITSC) Auto-labeling of point cloud sequences for 3D object detection using an ensemble of experts and temporal refinement
Install / Use
/learn @darrenjkt/MS3DREADME
MS3D and MS3D++
This is the official code release for
- MS3D: Leveraging Multiple Detectors for Unsupervised Domain Adaptation in 3D Object Detection [paper]
- MS3D++: Ensemble of Experts for Multi-Source Unsupervised Domain Adaptation in 3D Object Detection [paper] [presentation]
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:
- Robust labeling of a wide range of lidars.
- High performance of 3D detectors trained with MS3D labels, achieving BEV vehicle detection comparable to training with human-annotated labels.
- Tailor the ensemble with any pre-trained 3D detectors to obtain high quality labels on any lidar dataset.
- Train any 3D detector with any data augmentation. The final generated labels can replace human-annotated labels in supervised training of any 3D detector and data augmentation.
- Preserves real-time inference capability of detectors as we don't modify detector architecture. <br/>
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
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.
- GETTING_STARTED.md to reproduce our paper results.
- AUTO_LABEL_YOUR_DATA.md to auto-label your own point cloud data.
- PARAMETERS.md to tune MS3D config file parameters.
- VISUALIZATION.md to use our visualization tools for label assessment.
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.
|Source | Detector | Sweeps | Vehicle | Pedestrian | Download | | ----- | :-----:| :-----:| :--------: | :-----: | :-----: | | Lyft | PV-RCNN++ (Anchor) | 1 | 88.9 / 68.2 / 25.0 | 55.1 / 26.8 / 11.9 | model | | Lyft | PV-RCNN++ (Center) | 1 | 87.1 / 66.2 / 23.6 | 50.0 / 27.7 / 10.5 | model | | Lyft | VoxelRCNN (Anchor) | 1 | 87.8 / 66.3 / 22.5 | 54.5 / 29.8 / 10.8 | model | | Lyft | VoxelRCNN (Center) | 1 | 88.6 / 66.9 / 22.8 | 52.5 / 27.3 / 11.0 | model | | Lyft | PV-RCNN++ (Anchor) | 3 | 90.3 / 73.3 / 29.0 | 57.0 / 33.4 / 19.2 | model | | Lyft | PV-RCNN++ (Center) | 3 | 88.2 / 71.1 / 27.8 | 53.9 / 33.1 / 17.5 | model | | Lyft | VoxelRCNN (Anchor) | 3 | 88.0 /79.7 / 26.2 | 57.8 / 36.6 / 18.9 | model | | Lyft | VoxelRCNN (Center) | 3 | 88.0 / 70.4 / 26.3 | 59.5 / 34.4 / 18.9 | model | | Lyft | IA-SSD | 3 | 82.6 / 58.7 / 17.6 | 28.9 / 18.9 / 12.2 | model | | nuScenes | PV-RCNN++ (Anchor) | 10| 72.6 / 20.8 / 2.6 | 44.0 / 13.8 / 1.4 | model | | nuScenes | PV-RCNN++ (Center) | 10| 68.9 / 18.9 / 2.2 | 42.2 / 14.8 / 1.4 | model | | nuScenes | VoxelRCNN (Anchor) | 10 | 69.8 / 17.2 / 2.1 | 42.7 / 12.3 / 0.9 | model | | nuScenes | VoxelRCNN (Center) | 10| 66.6 / 17.5 / 1.9 | 43.2 / 14.8 / 1.7 | model | | nuScenes | IA-SSD | 10| 57.0 / 10.2 / 0.8 | 31.5 / 8.9 / 0.7 | model | | Waymo | PV-RCNN++ (Anchor) | 1 | 90.2 / 66.4 / 38.8 | 68.3 / 57.2 / 39.0 | - | | Waymo | PV-RCNN++ (Center) | 1 | 90.6 / 68.2 / 40.1 | 76.6 / 67.6 / 51.2 | - | | Waymo | VoxelRCNN (Anchor) | 1 | 89.9 / 65.3 / 37.0 | 67.9 / 56.2 / 36.1 | - | | Waymo | VoxelRCNN (Center) | 1 | 90.2 / 67.9 / 39.3 | 76.0 / 66.8 / 48.8 | - | | Waymo | IA-SSD | 1 | 86.7 / 59.7 / 31.3 | 60.9 / 55.4 / 42.6 | - | | Waymo | PV-RCNN++ (Anchor) | 4 | 90.4 / 68.2 / 40.7 | 67.7 / 56.7 / 37.0 | - | | Waymo | PV-RCNN++ (Center) | 4 | 91.1 / 70.1 / 42.3 | 75.9 / 68.1 / 53.0 | - | | Waymo | VoxelRCNN (Anchor) | 4 | 90.8 / 69.8 / 43.6 | 68.9 / 61.0 / 46.6 | - | | Waymo | VoxelRCNN (Center) | 4 | 91.1 / 71.7 / 45.5 | 78.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](https://drive.google.com/file/d/
Related Skills
proje
Interactive vocabulary learning platform with smart flashcards and spaced repetition for effective language acquisition.
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
groundhog
400Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
