OpenPCSeg
is an open-source point cloud segmentation toolbox based on PyTorch, heading towards the unification and thriving of 3D scene understanding and its related areas. With the help of OpenPCSeg
, we benchmark methods in a way that pursues fairness, efficiency, and effectiveness, on prevailing large-scale point cloud datasets. At this moment, OpenPCSeg
focuses on outdoor point cloud segmentation for autonomous driving.
This project is developed and maintained by Autonomous Driving Group [at] Shanghai AI Laboratory (ADLab).
- π Comprehensive: We support the full spectrum of point cloud scene understanding tasks on standard large-scale benchmarks, with backbones across various 2D & 3D modalities.
- βοΈ Fair & Reproducible: We unify the training, validation, and testing configurations, resulting in directly comparable 3D segmentation performance.
- π Fast & Accurate: Our implementations yield much better segmentation accuracy as well as training and inference speed than the originally reported results.
# | Task | Emphasis | Dataset | Method |
---|---|---|---|---|
π | Fully-Supervised LiDAR Segmentation | Accuracy | 2 | 4 |
- [2023.4] - Support sequence-wise
OpenPCSeg
inference and visualization on Waymo Open Dataset. - [2023.3] - Initial release of
OpenPCSeg v1.0
.
- Support NuScenes Dataset
- Add implementations of range-view algorithms
- Add toolbox for competition submission
- Add visualiztion of 3D segmentation results
- Supported Methods
- Supported Benchmark
- Model Zoo
- Installation
- Data Preparation
- Getting Started
- Visualization
- Citation
- Authors
- License
- Contact
- MinkowskiNet
- Cylinder3D
- SPVCNN
- RPVNet
- More to come...
- SemanticKITTI
- ScribbleKITTI
- Waymo Open
- A2D2 (coming soon)
- nuScenes (coming soon)
- Panoptic nuScenes (coming soon)
- Panoptic SemanticKITTI (coming soon)
- 4D Panoptic SemanticKITTI (coming soon)
Selected supported methods are shown in the below table. The results are mean IoU performance of moderate difficulty on the val set of SemanticKITTI dataset.
- All LiDAR-based models are trained with 2 A100 GPUs and are available for download.
- The training and validation are executed with CUDA 11.3 and PyTorch 1.10.
- All models are trained with merely train split of SemanticKITTI Dataset.
- Prediction from our models are directly used for evaluation, without employing any Test Time Augmentation or ensembling.
training time | mIoU | download | |
---|---|---|---|
MinkowskiNet | ~12.0 hours | 70.04 | model-737M |
Cylinder3D | ~8.7 hours | 66.07 | model-56M |
SPVCNN | ~13.1 hours | 68.58 | model-166M |
RPVNet | ~14.5 hours | 68.86 | model-980M |
We are not supposed to provide pre-trained weights due to Waymo Dataset License Agreement, but you can easily achieve similar performance by training according to the default configs.
training time | mIoU | |
---|---|---|
MinkowskiNet | ~25.0 hours | 69.20 |
Cylinder3D | ~19.2 hours | 66.42 |
SPVCNN | ~28.0 hours | 69.37 |
Please refer to INSTALL.md for the installation details.
βββ data_root
βββ nuscenes
βββ semantickitti
βββ scribblekitti
βββ waymo_open
Please refer to DATA_PREPARE.md for the details to prepare the nuScenes, SemanticKITTI, ScribbleKITTI, and Waymo Open datasets.
Please refer to GET_STARTED.md to learn more usage about this codebase.
We recently supported a OpenPCSeg visualization tool for Waymo Open Dataset, please check INFER_WAYMO.md.
Here are some inference & visualization results:
If you find this work helpful, please kindly consider citing:
@misc{openpcseg2023,
title={OpenPCSeg: An Open Source Point Cloud Segmentation Codebase},
author={Liu Youquan, Bai Yeqi, Kong Lingdong, Chen Runnan, Hou Yuenan, Shi Botian, Li Yikang},
howpublished = {\url{https://github.com/PJLab-ADG/PCSeg}},
year={2023}
}
Liu Youquan, Bai Yeqiβ , Kong Lingdong, Chen Runnan, Hou Yuenan, Shi Botian, Li Yikang
β Project Lead
OpenPCSeg is released under the Apache 2.0 license, while some specific operations in this codebase might be with other licenses. Please refer to LICENSE for a more careful check, if you are using our code for commercial matters.
If you have questions about this repo, please contact Bai Yeqi ([email protected]) or Shi Botian ([email protected]).
The overall structure of this repo is derived from OpenPCDet.
Part of our implementation uses code from repositories below:
- [1] https://github.com/xinge008/Cylinder3D
- [2] https://github.com/mit-han-lab/spvnas
- [3] https://github.com/TiagoCortinhal/SalsaNext
- [4] https://github.com/open-mmlab/OpenPCDet
- [5] https://github.com/mit-han-lab/torchsparse
Thank the authors for their great work!