Home

Awesome

Reproducibility of "Campus3D:A Photogrammetry Point Cloud Benchmark for Outdoor Scene Hierarchical Understanding"

Introduction

The repository contains the re-implementation of this ACM MM 2020 Paper based on the repository. It also presents the reproduced results of the supported paper with trained models in MODEL ZOO. The reduced version of Campus3D dataset can be donwloaded from the official website. Compared to the original repo, the main updates of this reproducibilty repo are:

Installation

The whole package can be downloaded by the following command.

git clone https://github.com/Yuqing-Liao/reproduce-campus3d.git

Dependencies can be installed using the provided script.

cd reproduce-campus3d
pip install -r requirements.txt

Compressed Campus3D dataset file campus3d-reduce.zip can be downloaded from official website. Put it into data/ and unzip with below script.

cd reproduce-campus3d/data
unzip campus3d-reduce.zip

Training & Evaluation

Train from scratch

To apply training of the model, please first check the configuration files in config/. Particularly you need to change the value of IS_PRETRAINED to False and then run experiments, eg:

cd reproduce-campus3d
python run.py --model 'pointnet2' --mc_level -1 --exp_name 'EXP_NAME'

The 'EXP_NAME' is the user-defined name. In this way, the models will be saved in checkpoints/EXP_NAME/models, and other output files will be saved in checkpoints/EXP_NAME.

Train from pretrained model

Pretrained models are available on Google Drive, and they can be downloaded through the link presented in the following table. You can train either from the downloaded models or from your own pretrained models. To apply training of the model, please first check the configuration files in config/. Particularly you need to change the value of IS_PRETRAINED to True, PRETRAINED_MODEL_PATH to the path of the model to train and then run experiments, eg:

cd reproduce-campus3d
python run.py --model 'pointnet2' --mc_level -1 --exp_name 'EXP_NAME'

In this way, the models will be saved in checkpoints/EXP_NAME/models, and other output files will be saved in checkpoints/EXP_NAME.

Evaluation

To apply evaluation of the model on the test set, please first check the configuration files in config/. Particularly you need to change the value of PRETRIANED_MODEL_PATH to the path of the model to evaluate and then run experiments, eg:

cd reproduce-campus3d
python run.py --eval true --model 'pointnet2' --mc_level -1 --exp_name 'EXP_NAME'

In this way, the output files will be saved in check/EXP_NAME.

Experiments

Hierarchical Learning (HL) Experiments

The hierarchical learning experiments were proposed to present the effectiveness of the Multi-task and Hierarchical Esemble(MT+HE) method. Multi-classifiers(MC) in each level were also proposed for comparison. To run the training, the argument --mc_level can be set as 0-4 and -1 for MC experiments in 0-4 levels and MT+HE experiments in all levels respectively. In addition, the MT training contains two stage Multi-task Learning without consistency loss(MT<sub>nc</sub>) and Multi-task Learning with consistency loss(MT), of which the MT is trained based on the pretrained MT<sub>nc</sub> model.

To run the evaluation, the argument --mc_level in run script can be set as any one from 0-4 to test 5 MC models altogether for MC and MC+HE results, or set as -1 to test the target model for MT<sub>nc</sub> or MT(+HE) results. Particularly for MC evaluation, the PRETRAINED_MODEL_PATH is supposed to be set as the list of 5 model paths in the config file.

Benchmark Experiments

The semantic segmentation bechmark were built with three models PointNet++, PointCNN and DGCNN. They are all conducted via the MT+HE method for hierarchical learning on the Campus3D dataset. To run different models, one can change the argument --model as the indicated model. Following are the reference repository for PyTorch implementation of 3D deep models.

PointNet++ GitHub Link

PointCNN GitHub Link

DGCNN GitHub Link

MODEL ZOO

Models

No.ModelNameMethodMC LevelTraining ProcessSchedulerDownload<br>Link
0PointNet++'pointnet2'MC050 epochs(lr=0.01)cosMC0.t7
1PointNe++'pointnet2'MC150 epochs(lr=0.01)cosMC1.t7
2PointNet++'pointnet2'MC250 epochs(lr=0.01)cosMC2.t7
3PointNet++'pointnet2'MC350 epochs(lr=0.01)cosMC3.t7
4PointNet++'pointnet2'MC450 epochs(lr=0.01)cosMC4.t7
5PointNet++'pointnet2'MT<sub>nc</sub>-150 epochs (lr=0.01)cospointnet2_MTnc.t7
6PointCNN'pointcnn'MT<sub>nc</sub>-150 epochs (lr=0.01)cospointcnn_MTnc.t7
7DGCNN'dgcnn'MT<sub>nc</sub>-150 epochs (lr=0.01)cosdgcnn_MTnc.t7
8Pointnet++'pointnet2'MT-150 epochs (lr=0.01) +<br>20 epochs with<br>consistency loss (lr=0.01)cospointnet2_MT.t7
9PointCNN'pointcnn'MT-150 epochs (lr=0.01) +<br>30 epochs with<br>consistency loss (lr=0.01)cospointcnn_MT.t7
10DGCNN'dgcnn'MT-150 epochs (lr=0.01) +<br>20 epochs with<br>consistency loss (lr=0.01)cosdgcnn_MT.t7

Benchmark Experiments Results

Semantic segmentation benchmarks (mIoU% and OA%) for models with MT+HE method

BenchmarkModelC<sup>1</sup>C<sup>2</sup>C<sup>3</sup>C<sup>4</sup>C<sup>5</sup>
OA%PointNet++91.487.586.785.075.1
OA%PointCNN88.979.378.776.863.8
OA%DGCNN94.790.689.187.281.5
mIoU%PointNet++83.874.358.037.122.3
mIoU%PointCNN79.761.542.826.315.0
mIoU%DGCNN89.680.163.343.128.4

These results are produced by model No.8, No.9 and No.10.

Hierarchical Learning Experiments Results

Semantic segmentation benchmarks(OA%) for different HL methods with model PointNet++

MethodC<sup>1</sup>C<sup>2</sup>C<sup>3</sup>C<sup>4</sup>C<sup>5</sup>
MC90.886.284.483.673.6
MC+HE91.487.486.584.874.9
MT<sub>nc</sub>90.686.085.083.173.3
MT91.487.486.784.975.2
MT+HE91.487.586.785.075.1

These results are produced by model No.0-4, No.5 and No.8. They demonstrate the effectiveness of the MT+HE method for HL problem. Results with detailed per-class IoU are displayed below.

Semantic segmentation benchmarks(IoU%) for different HL methods with model PointNet++

Granularity LevelClassMCMC+HEMTncMTMT+HE
C<sup>1</sup>ground85.486.485.386.186.1
C<sup>1</sup>construction79.980.879.481.481.5
C<sup>2</sup>natural81.182.480.882.982.9
C<sup>2</sup>man_made58.560.958.758.158.5
C<sup>2</sup>construction78.880.878.581.381.5
C<sup>3</sup>natural79.282.480.882.982.9
C<sup>3</sup>play_field62.965.956.166.567.3
C<sup>3</sup>path&stair8.78.28.70.00.0
C<sup>3</sup>driving_road58.460.657.758.458.5
C<sup>3</sup>construction76.680.878.281.481.5
C<sup>4</sup>natural81.082.480.482.982.9
C<sup>4</sup>play_field57.365.954.068.267.3
C<sup>4</sup>path&stair9.38.28.70.00.0
C<sup>4</sup>vehicle16.619.416.79.49.9
C<sup>4</sup>not vehicle57.959.957.257.857.9
C<sup>4</sup>building76.578.275.478.878.8
C<sup>4</sup>link0.00.10.20.00.0
C<sup>4</sup>facility0.00.00.00.00.0
C<sup>5</sup>natural80.182.480.583.082.9
C<sup>5</sup>play_field52.765.953.567.067.3
C<sup>5</sup>sheltered10.67.99.00.00.0
C<sup>5</sup>unsheltered7.67.98.30.00.0
C<sup>5</sup>bus_stop0.00.00.10.00.0
C<sup>5</sup>car18.119.516.710.69.9
C<sup>5</sup>bus0.00.00.00.00.0
C<sup>5</sup>not vehicle58.159.957.457.757.9
C<sup>5</sup>wall46.547.345.847.347.1
C<sup>5</sup>roof43.144.241.747.447.4
C<sup>5</sup>link0.20.10.40.00.0
C<sup>5</sup>artificial_landscape0.00.00.00.00.0
C<sup>5</sup>lamp0.00.00.00.00.0
C<sup>5</sup>others0.00.00.00.00.0