Giter Club home page Giter Club logo

growsp's Introduction

arXiv code visitors License CC BY-NC-SA 4.0 Twitter Follow

GrowSP: Unsupervised Semantic Segmentation of 3D Point Clouds (CVPR 2023)

Zihui Zhang, Bo Yang, Bing Wang, Bo Li

Overview

We propose the first unsupervised 3D semantic segmentation method, learning from growing superpoints in point clouds.

drawing

Our method demonstrates promising results on multiple datasets:

  • S3DIS Dataset

drawing drawing

  • ScanNet Dataset

drawing drawing

  • SemanticKITTI Dataset

drawing drawing

1. Setup

Setting up for this project involves installing dependencies.

Installing dependencies

To install all the dependencies, please run the following:

sudo apt install build-essential python3-dev libopenblas-dev
conda env create -f env.yml
conda activate growsp
pip install -U MinkowskiEngine --install-option="--blas=openblas" -v --no-deps

2. Running codes

2.1 S3DIS

S3DIS dataset can be found here. Download the files named "Stanford3dDataset_v1.2_Aligned_Version.zip". Uncompress the folder and move it to ${your_S3DIS}. And there is an error in line 180389 of file Area_5/hallway_6/Annotations/ceiling_1.txt. It need to be fixed manually.

  • Preparing the dataset:
python data_prepare/data_prepare_S3DIS.py --data_path ${your_S3DIS}

This code will preprcocess S3DIS and put it under ./data/S3DIS/input

  • Construct initial superpoints:
python data_prepare/initialSP_prepare_S3DIS.py

This code will construct superpoints on S3DIS and put it under ./data/S3DIS/initial_superpoints

  • Training:
CUDA_VISIBLE_DEVICES=0, python train_S3DIS.py

The output model and log file will be saved in ./ckpt/S3DIS by default.

2.2 ScanNet

Download the ScanNet dataset from the official website. You need to sign the terms of use. Uncompress the folder and move it to ${your_ScanNet}.

  • Preparing the dataset:
python data_prepare/data_prepare_ScanNet.py --data_path ${your_ScanNet}

This code will preprcocess ScanNet and put it under ./data/ScanNet/processed

  • Construct initial superpoints:
python data_prepare/initialSP_prepare_ScanNet.py

This code will construct superpoints on ScanNet and put it under ./data/ScanNet/initial_superpoints

  • Training:
CUDA_VISIBLE_DEVICES=0, python train_ScanNet.py

The output model and log file will be saved in ./ckpt/ScanNet by default.

2.3 SemanticKITTI

Please first download the following iterms from SemanticKITTI:

Uncompressed and Merge the velodyne and labels of each sequence. The organized dataset should be as follows:

your_SemanticKITTI
└── sequences
    └── 00
    β”‚   β”œβ”€β”€ velodyne
    β”‚   β”œβ”€β”€ labels
    └── 01
    ...
  • Preparing the dataset:
python data_prepare/data_prepare_SemanticKITTI.py --data_path ${your_SemanticKITTI}/sequences

This code will preprcocess SemanticKITTI and put it under ./data/SemanticKITTI/dataset

  • Construct initial superpoints:
python data_prepare/initialSP_prepare_SemanticKITTI.py

This code will construct superpoints on SemanticKITTI and put it under ./data/SemanticKITTI/initial_superpoints

  • Training:
CUDA_VISIBLE_DEVICES=0, python train_SemanticKITTI.py

The output model and log file will be saved in ./ckpt/SemanticKITTI by default.

3. Trained models

The trained models for these three datasets can be found at here

growsp's People

Contributors

zhang-zihui avatar yang7879 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.