• Stars
    star
    219
  • Rank 181,133 (Top 4 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 4 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[CVPR 2021] Rank 1st in the public leaderboard of SemanticKITTI Panoptic Segmentation (2020-11-16)

PWC

LiDAR-based Panoptic Segmentation via Dynamic Shifting Network

teaser

This repository provides the official implementation for the following two papers:

LiDAR-based Panoptic Segmentation via Dynamic Shifting Network
Fangzhou Hong, Hui Zhou, Xinge Zhu, Hongsheng Li, Ziwei Liu
Accepted to CVPR 2021
arXiv | CVF Open Access

LiDAR-based 4D Panoptic Segmentation via Dynamic Shifting Network
Fangzhou Hong, Hui Zhou, Xinge Zhu, Hongsheng Li, Ziwei Liu
arXiv Preprint, 2022
arXiv

For further information, please contact Fangzhou Hong.

News

Requirements

Data Preparation

Please download the SemanticKITTI dataset to the folder data and the structure of the folder should look like:

./
โ”œโ”€โ”€ 
โ”œโ”€โ”€ ...
โ””โ”€โ”€ data/
    โ”œโ”€โ”€sequences
        โ”œโ”€โ”€ 00/           
        โ”‚   โ”œโ”€โ”€ velodyne/	
        |   |	โ”œโ”€โ”€ 000000.bin
        |   |	โ”œโ”€โ”€ 000001.bin
        |   |	โ””โ”€โ”€ ...
        โ”‚   โ””โ”€โ”€ labels/ 
        |       โ”œโ”€โ”€ 000000.label
        |       โ”œโ”€โ”€ 000001.label
        |       โ””โ”€โ”€ ...
        โ”œโ”€โ”€ 08/ # for validation
        โ”œโ”€โ”€ 11/ # 11-21 for testing
        โ””โ”€โ”€ 21/
	        โ””โ”€โ”€ ...

Getting Started

The training pipeline of our DS-Net consists of three steps: 1) semantic segmentation training; 2) center regression training; 3) dynamic shifting training. The first two steps give us the backbone model. The last step gives our DS-Net. We provide the corresponding pretrained model of each step. The inferencing and training details are further explained in this section.

Note that our implementation only supports parallel training for now. We fix the batch size of each GPUs to 1. In the first line of each script, you could choose the number of GPUs ${ngpu} you wish to use for training or inferencing. In the second line, you could set the folder name ${tag} and all the generated files will be put into ./output/${tag}. All the provided pytorch distributed version of scripts are not tested due to the lack of proper environment. All the slurm version of scripts are tested and should work well. Should there be any problem, feel free to open an issue.

Pretrained Models

DS-Net

If you wish to use our pretrained models, remember to create a new folder pretrained_weight and put all the downloaded models there.

Step Download Link
1 sem_pretrain.pth
2 offset_pretrain_pq_0.564.pth
3 dsnet_pretrain_pq_0.577.pth

4D-DS-Net

This is the trained final model. Download Link: checkpoint_epoch_5_0.640_0.594_0.648.pth.

Inferencing with the Pretrained Models

We provide inferencing scripts for the backbone and our DS-Net.

Backbone

Our backbone consists of the semantic segmentation module, the center regression module, a heuristic clustering algorithm and the consensus-driven fusion module. You are welcomed to play around with different heuristic algorithms and their parameter settings in ./cfgs/release/backbone.yaml since we provide several clustering algorithms in ./utils/clustering.py.

The inferencing scripts of our backbone are ./scripts/release/backbone/val_*.sh. Before using the scripts, please make sure you have downloaded the pretrained model (of step 2) or put the models trained by yourself (in step 2) to ./pretrained_weight and make sure to pass the correct path of the model to --pretrained_ckpt option.

DS-Net

The inferencing scripts of our DS-Net are in ./scripts/release/dsnet. val_*.sh are for inferencing on the validation set of SemanticKITTI. test_*.sh are for inferencing on the test set of SemanticKITTI and will generate prediction files under the corresponding output folder. Before using the scripts, remember to download the pretrained model (of step 3) or put the model trained by yourself (in step 3) to ./pretrained_weight and make sure you pass the right path to --pretrained_ckpt option in the scripts.

DS-Net: Training from Scratch

1. Semantic segmentation training

The training codes and scripts for this step will be released soon. For now, please download the step 1 pretrained model using the above link. Please note that the cylinder backbone used in our implementation is the original version of Cylinder3D instead of the latest version.

2. Center regression training

The training scripts of this step could be found in ./scripts/release/backbone/train_*.sh. Before using the training scripts, please download the pretrained model of step 1 to folder ./pretrained_weight. Feel free to play around with different parameter settings in ./cfgs/release/backbone.yaml.

3. Dynamic shifting training

The training scripts of step 3 could be found in ./scripts/release/dsnet/train_*.sh. Before using the training scripts of this part, please download the pretrained model (of step 2) to folder ./pretrained_weight or put the model trained (in step 2) to ./pretrained_weight and change the --pretrained_ckpt option to the correct path. You could experiment with different parameter settings in ./cfgs/release/dsnet.yaml.

4D-DS-Net: Training from Scratch

For the trained models, checkout here.

1. Backbone finetune

Please checkout ./scripts/release/4d-dsnet/train_backbone_multi_frames_2.sh.

2. 4D dynamic shifting training

Please checkout ./scripts/release/4d-dsnet/train_dsnet_multi_frames_2.sh.

License

Distributed under the MIT License. See LICENSE for more information.

Citation

If you find our work useful in your research, please consider citing the following papers:

@InProceedings{Hong_2021_CVPR,
    author    = {Hong, Fangzhou and Zhou, Hui and Zhu, Xinge and Li, Hongsheng and Liu, Ziwei},
    title     = {LiDAR-Based Panoptic Segmentation via Dynamic Shifting Network},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2021},
    pages     = {13090-13099}
}

@article{hong20224ddsnet,
  title={LiDAR-based 4D Panoptic Segmentation via Dynamic Shifting Network},
  author={Hong, Fangzhou and Zhou, Hui and Zhu, Xinge and Li, Hongsheng and Liu, Ziwei},
  journal={arXiv preprint arXiv:2203.07186},
  year={2022}
}

Acknowledgments

In our implementation, we refer to the following open-source databases:

More Repositories

1

AvatarCLIP

[SIGGRAPH 2022 Journal Track] AvatarCLIP: Zero-Shot Text-Driven Generation and Animation of 3D Avatars
Python
939
star
2

EVA3D

[ICLR 2023 Spotlight] EVA3D: Compositional 3D Human Generation from 2D Image Collections
Python
458
star
3

Garment4D

[NeurIPS 2021] Garment4D: Garment Reconstruction from Point Cloud Sequences
Python
121
star
4

HCMoCo

[CVPR 2022 Oral] Versatile Multi-Modal Pre-Training for Human-Centric Perception
Python
110
star
5

Pointnet-TextCNN

Point cloud classification and segmentation based on pointnet and textcnn
Python
5
star
6

AutomonousDrivingHW

Homework of Autonomous Driving
C++
4
star
7

Tornado-Monitor-System

2018 Summer Python Project. An Intelligent Monitor Platform Based on Tornado.
Python
4
star
8

neural_renderer

Modified version of neural_renderer for AvatarCLIP
Python
3
star
9

AssemblyPlayStation

This is a repo for our assembly project which is a bootable os with multiple games.
Assembly
3
star
10

ShadowCompiler

Project for Computer Network(2) -- Compiler Part
C++
2
star
11

xv6-e1000-driver

add nic support for xv6
C
2
star
12

minimum-ftp

A simple ftp server and client which only implement minimum function.
Python
2
star
13

FZLambda

Lambda Expression Evaluation and Type Check Implemented by Haskell
Haskell
2
star
14

2017_spring_notepad_playground

C++
1
star
15

mysite-LearningDjango

A simple blog build by django while learn it.
Python
1
star
16

DA-A2

Data Structure & Algorithm 2
C++
1
star
17

Notepad

A very simple text editor based on MFC (Software Engineering 2 team project)
HTML
1
star
18

Data-Structure-2-Project

Repository for Data Structure and Algorithm projects
C++
1
star
19

Astroid-Wechat-Game

Classic game Astroid in Wechat-Game platform
JavaScript
1
star
20

20171021-ETC-RiYueShenJiao

1
star
21

FlightControl

A fight control system based on STM32
C
1
star
22

xv6-comment

Commented xv6 source code.
C
1
star
23

TfMnistDataset

TensorFlow Mnist Dataset
1
star
24

DataStructureAndAlgorithm-1-

2017็ง‹ๅญฃๅญฆๆœŸๆ•ฐๆฎ็ป“ๆž„ไธŽ็ฎ—ๆณ•๏ผˆ1๏ผ‰ๅฎž้ชŒ
C++
1
star
25

2016_nand2tetris

Assembly
1
star
26

WeChatTicket-THSSOJ

Python
1
star