Giter VIP home page Giter VIP logo

hyperpc's Introduction

Hyperspherical Embedding for Point Cloud Completion

This repository contains source code for Hyperspherical Embedding for Point Cloud Completion (CVPR 2023).

Prerequisites

  1. Download the datasets for point cloud completion: ModelNet40, Completion3D, MVP, ShapeNet. Fill in the corresponding data path in run.sh.

  2. Check the docker files in docker/ and build docker image:

cd docker/
./build.sh
  1. Create docker container using one GPU
./run.sh 0
  1. Check the config file cfgs/config.yaml each time you run the experiment.

Training

./train.sh
  • For multi-task learning: Set the task in cfgs/config.yaml to be a list of the desired tasks. For example, to train on both classification and comletion tasks, set task to be ['classification','completion'].

Evaluation

Keep all the config parameters as training, and set eval to True, and then run:

./train.sh

TensorBoard Visualization

Set the --logdir in tensorboard.sh to be the desired log directory and run:

./tensorboard.sh

Citations

If you find this work useful for your research, please cite HyperPC in your publications.

@InProceedings{Zhang_2023_CVPR,
    author    = {Zhang, Junming and Zhang, Haomeng and Vasudevan, Ram and 
                Johnson-Roberson, Matthew},
    title     = {Hyperspherical Embedding for Point Cloud Completion},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and 
                Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2023},
    pages     = {5323-5332}
}

hyperpc's People

Contributors

haomengz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

whuhxb

hyperpc's Issues

Dataset download

Hello,why I can't download the ModelNet40,Completion3D?
I click the link but don't have reaction.
Maybe the dataset I can change my dataset just like MPEG 8i owili ?
Thanks.

NN Architecture not matching input shape

I'm trying to run the code and have the docker image set up. After running train.py, I get this error:

Jitting Chamfer 3D
Loaded JIT 3D CUDA chamfer distance

**************************

	dataset:m40
	task:completion
	bsize:64
	max_epoch:100
	lr:0.0002
	lr_step_size:40
	lr_gamma:0.2
	check_dir:checkpoint_mvp_pc
	log_dir:logs_mvp_pc
	encoder_choice:pcn
	completion_decoder_choice:folding
	maxpool_bottleneck:1024
	use_hyperspherical_module:True
	hyper_bottleneck:512
	use_hyperspherical_encoding:True
	norm_order:2
	hyperspherical_module_layers:1
	hyperspherical_module_BN:False
	weight_sec_loss:None
	mlps_classifier:512,256,16
	use_BN_classifier:True
	mlps_segmentator:512,256,50
	use_BN_segmentator:True
	eval:False
	pretrained_path:None
	compute_gradient_norm:False
	grad_surgey_flag:False
	uncertainty_flag:False
	optimal_search:False
	ratio:0.0001

**************************

Model name: m40_pc_b64ep100lr0.0002s40g0.2_pcn_HyperModuleTrue_HyperEncodeTrue_MaxPool1024-Hyper512-NormOrder2-LayerNum1-HyperModuleBNFalse_folding
Downloading http://modelnet.cs.princeton.edu/ModelNet40.zip
Extracting data_root/ModelNet40/ModelNet40.zip
Processing...
Done!

Start training!

Traceback (most recent call last):
  File "main.py", line 540, in <module>
    train(args=args, train_dataloader=train_dataloader, test_dataloader=test_dataloader)
  File "main.py", line 249, in train
    train_one_epoch(args, train_dataloader, optimizer, logger, epoch, check_dir)
  File "main.py", line 77, in train_one_epoch
    model(None, pos, batch)
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/harry/GitRepos/HyperPC/utils/model.py", line 133, in forward
    self.pred_completion = self.decoder_completion(encoding_feature)
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/harry/GitRepos/HyperPC/utils/models/decoder_folding.py", line 38, in forward
    x = self.fold1(x)  # x = batch,3,45^2
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/harry/GitRepos/HyperPC/utils/models/decoder_folding.py", line 54, in forward
    x = self.relu(self.conv1(x))  # x = batch,512,45^2
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
    return forward_call(*input, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/conv.py", line 302, in forward
    return self._conv_forward(input, self.weight, self.bias)
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/conv.py", line 298, in _conv_forward
    return F.conv1d(input, weight, bias, self.stride,
RuntimeError: Given groups=1, weight of size [512, 1026, 1], expected input[64, 514, 2025] to have 1026 channels, but got 514 channels instead

Any suggestions or sample config files to use?

Small typo in Dockerfile

There is a small typo in your Dockerfile. Line 37 should read:
RUN cd SnowflakeNet/models/pointnet2_ops_lib && python setup.py install

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.