Home

Awesome

PartSLIP++

official implementation of "PartSLIP++: Enhancing Low-Shot 3D Part Segmentation via Multi-View Instance Segmentation and Maximum Likelihood Estimation"

installation

Create a conda environment and install dependencies.

conda env create -f environment.yml
conda activate partslip++

Install PyTorch3D

We utilize PyTorch3D for rendering point clouds. Please install it by the following commands or its official guide:

pip install "git+https://github.com/facebookresearch/pytorch3d.git"

Install GLIP

We incorporate GLIP and made some small changes. Please clone our modified version and install it by the following commands or its official guide:

git submodule update --init
cd GLIP
python setup.py build develop --user

Install cut-pursuit

We utilize cut-pursuit for computing superpoints. Please install it by the following commands or its official guide:

CONDAENV=YOUR_CONDA_ENVIRONMENT_LOCATION
cd partition/cut-pursuit
mkdir build
cd build
cmake .. -DPYTHON_LIBRARY=$CONDAENV/lib/libpython3.9.so -DPYTHON_INCLUDE_DIR=$CONDAENV/include/python3.9 -DBOOST_INCLUDEDIR=$CONDAENV/include -DEIGEN3_INCLUDE_DIR=$CONDAENV/include/eigen3
make

Install SegmentAnything

pip install git+https://github.com/facebookresearch/segment-anything.git

Quick Start

Download data

You can find the PartNet-Ensembled dataset used in the paper from here. Put downloaded data in ./data folder.

Download pretrained checkpoints

You can find the pre-trained checkpoints from here. Please use our few-shot checkpoints for each object category. Put downloaded checkpoints in ./model folder.

Generate superpoints

To save the superpoints and other medium results, run

python gen_sp.py

Run partSLIP with mask input

python run_partslip.py

Run PartSLIP++

python run_partslip++.py

Semantic segmentation evaluation

cd eval
python semantic_eval.py

Instance segmentation evaluation

cd eval
python instance_eval.py