GithubHelp home page GithubHelp logo

ozlana / pointcmt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zhanheshen/pointcmt

0.0 0.0 0.0 73.33 MB

[NeurIPS2022] Let Images Give You More: Point Cloud Cross-Modal Training for Shape Analysis

License: MIT License

C++ 9.14% Python 69.39% C 1.13% Cuda 20.34%

pointcmt's Introduction

PointCMT

arXiv GitHub Stars visitors

This repository is for PointCMT introduced in the following paper

Xu Yan*, Heshen Zhan*, Chaoda Zheng, Jiantao Gao, Ruimao Zhang, Shuguang Cui, Zhen Li*, "Let Images Give You More: Point Cloud Cross-Modal Training for Shape Analysis", NeurIPS 2022 (Spotlight) ๐Ÿ˜ƒ [arxiv].

image

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

@InProceedings{yan2022let,
      title={Let Images Give You More: Point Cloud Cross-Modal Training for Shape Analysis}, 
      author={Xu Yan and Heshen Zhan and Chaoda Zheng and Jiantao Gao and Ruimao Zhang and Shuguang Cui and Zhen Li},
      year={2022},
      booktitle={NeurIPS}
}

@inproceedings{yan20222dpass,
  title={2dpass: 2d priors assisted semantic segmentation on lidar point clouds},
  author={Yan, Xu and Gao, Jiantao and Zheng, Chaoda and Zheng, Chao and Zhang, Ruimao and Cui, Shuguang and Li, Zhen},
  booktitle={European Conference on Computer Vision},
  pages={677--695},
  year={2022},
  organization={Springer}
}

Our another work for cross-modal semantic segmentation (ECCV 2022) is released HERE.

Update

2022/12/19: The codes for ModelNet40 are released ๐Ÿš€!
2022/11/16: Our paper is selected as spotlight in NeurIPS 2022!

Install

The latest codes are tested on CUDA10.1, PyTorch 1.4.0 and Python 3.7.5. Please use the same environment with us!

conda install pytorch==1.4.0 cudatoolkit=10.1 -c pytorch
pip install -r requirements.txt

Compile the library through:

cd emdloss
python setup.py install
cd ../pointnet2/
pip install -e . && cd ..

Data Preparation

  • Download alignment point cloud data of ModelNet40 HERE and save in dataset/ModelNet40/modelnet40_normal_resampled/.
  • Download multiview dataset HERE and save in dataset/ModelNet40/ModelNet40_mv_20view/.
  • Process the multiview and point clouds, and the data will be saved in dataset/ModelNet40/data/
cd data
python modelnet40_processor.py

You can also download processed data directly from HERE.

Training on ModelNet40

Stage I

Train and evaluate MVCNN model through

# training
python main_mvcnn_modelnet.py --exp_name mvcnn_default

# evaluation
python main_mvcnn_modelnet.py --exp_name mvcnn_default --eval --model_path [CHECKPOINT_PATH]

Note that the large batch size for MVCNN is necessary!! If you use smaller batch size due to the memory limitation, you need increase the --accumulation_step during the training. After training, the performance of MVCNN should be around 97%.

Stage II

Training cross-model point generator through

python train_cmpg.py --exp_name cmpg_default --teacher_path [MVCNN_CHECKPOINT]

Stage III

Before conducting cross-modal training, we first generate the features of MVCNN offline to speedup the training:

python offline_feature_generation.py --model_path [MVCNN_CHECKPOINT]

The features will be saved in dataset/ModelNet40/data/. After that, we train PointNet++ with PointCMT through

python train_pointcmt.py --exp_name pointnet2_pointcmt --cmpg_checkpoint [CMPG_CHECKPOINT]

You can also train the vanilla model through --no_pointcmt option.

Inference

We conduct voting test on our trained model:

python voting_test.py --checkpoint [POINITNET2_CHECKPOINT]

Model Zoo

You can also use our pre-trained models from pretrained/modelnet40/, including MVCNN, CMPG and PointNet++. More models and codes for ScanObjectNN will be released very soon!

Model Accuracy
MVCNN 97.0%
PointNet++ 94.6%

Acknowledgements

Code is built based on PointNet++, SimpleView and EMD(Earth Mover's Distance).

License

This repository is released under MIT License (see LICENSE file for details).

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.