Home

Awesome

<img src="docs/figs/pcseg_logo.png" align="right" width="30%">

OpenPCSeg: An Open Source Point Cloud Segmentation Codebase

License open issues GitHub forks

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).

<img src="./docs/figs/demo-bev-1.gif" align="middle"><img src="./docs/figs/demo-bev-2.gif" align="middle"><img src="./docs/figs/demo-bev-3.gif" align="middle">
<img src="./docs/figs/demo-rv-1.gif" align="middle"><img src="./docs/figs/demo-rv-2.gif" align="middle"><img src="./docs/figs/demo-rv-3.gif" align="middle">

Highlight

Supported Task

#TaskEmphasisDatasetMethod
:red_car:Fully-Supervised LiDAR SegmentationAccuracy24

Changelog

Upcoming Features

Outline

Supported Methods

Supported Benchmark

LiDAR Semantic Segmentation (5)

LiDAR Panoptic Segmentation (3)

Model Zoo

SemanticKITTI Dataset Representative Models

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.

training timemIoUdownload
MinkowskiNet~12.0 hours70.04model-737M
Cylinder3D~8.7 hours66.07model-56M
SPVCNN~13.1 hours68.58model-166M
RPVNet~14.5 hours68.86model-980M

Waymo Open Dataset Representative Models

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 timemIoU
MinkowskiNet~25.0 hours69.20
Cylinder3D~19.2 hours66.42
SPVCNN~28.0 hours69.37

Installation

Please refer to INSTALL.md for the installation details.

Data Preparation

└── 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.

Getting Started

Please refer to GET_STARTED.md to learn more usage about this codebase.

Visualization

We recently supported a OpenPCSeg visualization tool for Waymo Open Dataset, please check INFER_WAYMO.md.

Here are some inference & visualization results: <img src="docs/figs/wod_vis_01.png" align="center" width="70%"> <img src="docs/figs/wod_vis_02.png" align="center" width="70%">

Citation

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}
}

Authors

Liu Youquan, Bai Yeqi†, Kong Lingdong, Chen Runnan, Hou Yuenan, Shi Botian, Li Yikang

†Project Lead

License

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.

Contact

If you have questions about this repo, please contact Bai Yeqi (baiyeqi@pjlab.org.cn) or Shi Botian (shibotian@pjlab.org.cn).

Acknowledgement

The overall structure of this repo is derived from OpenPCDet.

Part of our implementation uses code from repositories below:

Thank the authors for their great work!