Code Monkey home page Code Monkey logo

parsenet-codebase's Introduction

ParSeNet: A Parametric Surface Fitting Network for 3D Point Clouds

Authors: Gopal Sharma, Difan Liu, Evangelos Kalogerakis, Subhransu Maji, Siddhartha Chaudhuri, Radomír Měch

This repository contains codebase for the ParSeNet paper published at ECCV-2020.

Paper | Project Page

Installation

To install conda environment:

conda env create --force environment.yml -n parsenet
source activate parsenet

Dataset

To dowload the dataset, run:

bash download_dataset.sh

For data organization, please see readme_data.md.


Experiments

Experiments are done on Nvidia 1080ti gpus.

SplineNet

  • To train open SplineNet (with 2 gpus):
python train_open_splines.py configs/config_open_splines.yml
  • To test open SplineNet:
python test_open_splines.py configs/config_test_open_splines.yml
  • To train closed SplineNet (with 2 gpus):
python train_closed_control_points.py configs/config_closed_splines.yml
  • To test closed SplineNet:
python test_closed_control_points.py configs/config_test_closed_splines.yml

ParSeNet

  • To train ParseNet with only points as input (with 4 gpus):
python train_parsenet.py configs/config_parsenet.yml
  • To train ParseNet with points and normals as input (with 4 gpus):
python train_parsenet.py configs/config_parsenet_normals.yml
  • To train ParseNet in an end to end manner (note that you need to first pretrain the above models), then specify the path to the trained model in configs/config_parsenet_e2e.yml (with 2 gpus). Further note that, this part of the training requires dynamic amount of gpu memory because a shape can have variable number of segment and corresponding number of fitting module. Training is done using Nvidia m40 (24 Gb gpu).
python train_parsenet_e2e.py  configs/config_parsenet_e2e.yml
  • Testing can be done using test.py
python test.py 0 3998

Acknowledgements

  1. This project takes inspiration of designing network architecture from the code base provided by Wang et.al.: https://github.com/WangYueFt/dgcnn
  2. We also thank Sebastian for timely release and advice on ABC dataset: https://deep-geometry.github.io/abc-dataset/

Citation

@misc{sharma2020parsenet,
    title={ParSeNet: A Parametric Surface Fitting Network for 3D Point Clouds},
    author={Gopal Sharma and Difan Liu and Evangelos Kalogerakis and Subhransu Maji and Siddhartha Chaudhuri and Radomír Měch},
    year={2020},
    eprint={2003.12181},
    archivePrefix={arXiv},
    primaryClass={cs.CV}
}

parsenet-codebase's People

Contributors

hippogriff avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

parsenet-codebase's Issues

How to test ParSeNet in my own dataset?

Hi @Hippogriff , thanks for sharing your work and code.
Now, I 'm trying to test ParSeNet in my own dataset. I found that your network need normal, primitive and cluster_id which is directly get from h5 files. So, If I want to train and test your network in my own dataset, how can I get those data(normal, primitive and cluster_id).
Thanks in advance.

Pre-trained model

Hello,

Thanks for sharing the code.

Can you also provide the pre-trained model?

Best.
Mulin

Incorrect conda env create statement in readme

The installation guide in the readme says that to install the conda environment, the following code should be run:
conda env create --force environment.yml -n parsenet
But there is to my knowledge no "--force" flag in the conda env create command, and from the documentation of that command and from trying it out myself, --file would make much more sense. Running the code as above gave me the following error: SpecNotFound: Invalid name 'environment.yml', try the format: user/package, however running it as
conda env create --file environment.yml -n parsenet works perfectly.

No configobj

please upload the file "configobj.py".
thanks.

Issue on running test.py

When I download all the dataset and pretrained models and run 'python test.py 0 3999', the following error occur:

Expected tensor for argument #1 'input' to have the same device as tensor for argument #2 'weight'; but device 0 does not equal 1 (while checking arguments for cudnn_convolution)

Could you please give me some suggestions on how to fix this?

Generate HDF5

Thanks for making the code available. I am training a parsenet with the provided dataset. When this is ready I will test with my own data, I would like to know how you transformed the dataset from CAD format to an HDF5 representation, some specific library was used? Or some other code public available? Thanks.

Can't found the file "predictions.h5"

hello, when i run "bash download_dataset.sh" according to readme, i can't found the file "predictions.h5", I also can't download the file on the website. Please, now how do I get the dataset, thanks!

No test_parsenet.py

Thanks for your work!
It is said that Testing can be done using test_parsenet.py in Readme. But it seems that there is no test_parsenet.py

Visualization of parsenet

Hi Gopal, the meshes of parsenet results in your paper looks pretty and clean. But when I tried to visualize the 'newer_pred_mesh' in 'test.py', the mesh with trimmed boundary does not look so good, see figure below. I guess I haven't figure out the right way to extract the correct predicted mesh. Can you give me some suggestions?
image

image

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.