• Stars
    star
    156
  • Rank 239,589 (Top 5 %)
  • Language
    Python
  • Created about 2 years ago
  • Updated almost 2 years ago

Reviews

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

Repository Details

VIBUS: Data-efficient 3D Scene Parsing with VIewpoint Bottleneck and Uncertainty-Spectrum Modeling

Beiwen Tian, Liyi Luo, Hao Zhao, Guyue Zhou

This repository contains implementation and checkpoints of VIBUS: Data-efficient 3D Scene Parsing with VIewpoint Bottleneck and Uncertainty-Spectrum Modeling.

Our work has been accepted by ISPRS Journal of Photogrammetry and Remote Sensing. Our paper is publicly available here.

Prepare Conda environment

The version of CUDA-Toolkit should NOT be higher than 11.1.

# Create conda environment
conda create -n vibus python=3.8
conda activate vibus

# Install MinkowskiEngine
export CUDA_HOME=/usr/local/cuda-11.1
conda install openblas-devel -c anaconda
pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 \
    -f https://download.pytorch.org/whl/torch_stable.html
pip install -U git+https://github.com/NVIDIA/MinkowskiEngine -v --no-deps \
    --install-option="--blas_include_dirs=${CONDA_PREFIX}/include" \
    --install-option="--blas=openblas"

# Install pointnet2 package
cd pointnet2
python setup.py install

# Install bfs package
conda install -c bioconda google-sparsehash
cd instanc_segmentation/lib/bfs/ops
python setup.py build_ext --include-dirs=${CONDA_PREFIX}/include
python setup.py install

# Install other requirements
pip install \
    easydict==1.9 \
    imageio==2.9.0 \
    plyfile==0.7.4 \
    tensorboardx==2.2 \
    open3d==0.13.0 \
    protobuf==3.20.0

pip install potpourri3d pymeshlab

cd SUField/
pip install -e . 

Testing

Semantic Segmentation on ScanNet

You may specify the paths to datasets and checkpoints in semantic_segmentation/scannet_ss_test.sh

cd semantic_segmentation/
./scannet_ss_test.sh

Semantic Segmentation on S3DIS

You may specify the paths to datasets and checkpoints in semantic_segmentation/s3dis_ss_test.sh

cd semantic_segmentation/
./s3dis_ss_test.sh

Semantic Segmentation on Semantic3D

You may specify the paths to datasets and checkpoints in semantic_segmentation/semantic3d_ss_test.sh

cd semantic_segmentation/
./semantic3d_ss_test.sh

Instance Segmentation on ScanNet

You may specify the paths to datasets and checkpoints in instance_segmentation/scannet_is_test.sh

cd instance_segmentation/
./scannet_is_test.sh

Instance Segmentation on S3DIS

You may specify the paths to datasets and checkpoints in instance_segmentation/s3dis_is_test.sh

cd instance_segmentation/
./s3dis_is_test.sh

Visualization

  1. Collect the inference results

    Please change SAVE_PATH in scannet_ss_test_collect_pred.sh

    cd semantic_segmentation/
    ./scannet_ss_test_collect_pred.sh
  2. Run a script so that the color of the point cloud is changed according to the predictions:

    cd semantic_segmentation/
    python visualize.py --dataset_root /save/path/in/step/1

Viewpoint-Bottleneck Pretraining (self supervised)

cd pretrain/
./run.sh

Supervised Training / Fine-tuning

Semantic Segmentation on ScanNet

You may specify the paths to the datasets in semantic_segmentation/scannet_ss_train.sh

cd semantic_segmentation/
./scannet_ss_train.sh

Semantic Segmentation on S3DIS

You may specify the paths to the datasets in semantic_segmentation/s3dis_ss_train.sh

cd semantic_segmentation/
./s3dis_ss_train.sh

Semantic Segmentation on Semantic3D

You may specify the paths to the datasets in semantic_segmentation/semantic3d_ss_train.sh

cd semantic_segmentation/
./semantic3d_ss_train.sh

Instance Segmentation on ScanNet

You may specify the paths to the datasets in instance_segmentation/scannet_is_train.sh

cd instance_segmentation/
./scannet_is_train.sh

Instance Segmentation on S3DIS

You may specify the paths to the datasets in instance_segmentation/s3dis_is_train.sh

cd instance_segmentation/
./s3dis_is_train.sh

Perform Spectral / Uncertainty Filtering (on ScanNet)

Spectral

  1. Collect the inference results

    Please change SAVE_PATH in scannet_ss_test_collect_pred.sh

    cd semantic_segmentation/
    ./scannet_ss_test_collect_pred.sh
  2. Perform Spectrum Filtering

    Please pass SAVE_PATH in step 1 as param for --dataset_root.

    cd semantic_segmentation/
    python fit.py --action spectrum --dataset_root /path/to/last/save/root --save_root /path/to/save/filtered/dataset
  3. Use filtered dataset with pseudo labels to fine-tune model

    Please change DATASET_PATH to the save path for filtered dataset in step 2 in scannet_ss_train.sh.

    cd semantic_segmentation/
    ./scannet_ss_train.sh

Uncertainty

  1. Collect the inference results

    Please change SAVE_PATH in scannet_ss_test_collect_pred_unc.sh

    cd semantic_segmentation/
    ./scannet_ss_test_collect_pred_unc.sh
  2. Perform Spectrum Filtering

    Please pass SAVE_PATH in step 1 as param for --stat_root.

    cd semantic_segmentation/
    python fit.py --action uncertainty --dataset_root /path/to/original/dataset --stat_root /path/to/last/save/root --save_root /path/to/save/filtered/dataset
  3. Use filtered dataset with pseudo labels to fine-tune model

    Please change DATASET_PATH to the save path for filtered dataset in step 2 in scannet_ss_train.sh.

    cd semantic_segmentation/
    ./scannet_ss_train.sh

Model Zoo

Viewpoint Bottleneck (VIB) Self-Supervised Pretrain

Dataset Task
ScanNet Google Drive
S3DIS Google Drive
Semantic3D Google Drive

Final Checkpoints

Dataset Supervision Task
Semantic Segmentation Instance Segmentation
ScanNet Limited Annotations 20 pts. Google Drive Google Drive
50 pts. Google Drive Google Drive
100 pts. Google Drive Google Drive
200 pts. Google Drive Google Drive
Limited Reconstructions 1% Google Drive Google Drive
5% Google Drive Google Drive
10% Google Drive Google Drive
20% Google Drive Google Drive
Full Google Drive Google Drive
S3DIS Limited Annotations 20 pts. Google Drive Google Drive
50 pts. Google Drive Google Drive
100 pts. Google Drive Google Drive
200 pts. Google Drive Google Drive
Full Google Drive Google Drive
Semantic3D Limited Annotations 20 pts. Google Drive N/A
50 pts. Google Drive
100 pts. Google Drive
200 pts. Google Drive
Full Google Drive

More Repositories

1

LODE

[ICRA 2023] LODE: Locally Conditioned Eikonal Implicit Scene Completion from Sparse LiDAR
Python
173
star
2

TOIST

[NeurIPS 2022] TOIST: Task Oriented Instance Segmentation Transformer with Noun-Pronoun Distillation
Python
122
star
3

Omni-PQ

[ICRA 2023] From Semi-supervised to Omni-supervised Room Layout Estimation Using Point Clouds
Python
110
star
4

DQS3D

[ICCV23] DQS3D: Densely-matched Quantization-aware Semi-supervised 3D Detection
Python
90
star
5

INT2

[ICCV 2023] INT2: Interactive Trajectory Prediction at Intersections
Python
79
star
6

ICRA-RM-Sim2Real

Shell
68
star
7

ICRA-RM-Sim2Real-Baseline

Python
42
star
8

LASST

Python
42
star
9

ICRA2024-Sim2Real-AXS

Shell
34
star
10

Multi-alignment-Driving-Agent

Python
19
star
11

ICRA_ASP

Planning Assembly Sequence with Graph Transformer
Python
13
star
12

Driving-Thinking-Dataset

decision-making processes of human drivers
5
star
13

SCP-Diff

Webpage for SCP-Diff: Photo-Realistic Semantic Image Synthesis with Spatial-Categorical Joint Prior
JavaScript
3
star
14

ModelMerging

[ECCV 24] The web page for paper "Training-Free Model Merging for Multi-target Domain Adaptation".
JavaScript
3
star
15

Interactive_Trajectory_Prediction

HTML
2
star
16

ICRA-RM-Sim2real-Client

Dockerfile
2
star
17

Model-Merging-MTDA

[ECCV24] The official code repository for paper "Training-Free Model Merging for Multi-target Domain Adaptation".
Python
2
star
18

ICRA-RM-Sim2real-OJ

Python
1
star
19

Human-Robot-Dog-Tactile-Interaction

1
star
20

DISCOVER-web

JavaScript
1
star
21

Intelligent-Systems-2022Fall

Shell
1
star
22

video-anomaly-benchmarking

video-anomaly-benchmarking
Python
1
star