Giter VIP home page Giter VIP logo

zouchuhang / 3d-prnn Goto Github PK

View Code? Open in Web Editor NEW
68.0 7.0 19.0 135.64 MB

Torch implementation of our ICCV 17 paper: "3D-PRNN, Generating Shape Primitives with Recurrent Neural Networks"

Home Page: http://openaccess.thecvf.com/content_ICCV_2017/papers/Zou_3D-PRNN_Generating_Shape_ICCV_2017_paper.pdf

License: MIT License

Lua 31.46% MATLAB 68.49% M 0.04%
shape-generation 3d-prnn deep-learning

3d-prnn's Introduction

3D-PRNN

Torch implementation of our ICCV 17 paper: "3D-PRNN, Generating Shape Primitives with Recurrent Neural Networks"

Prerequisites

Data

  • Download primitive data to current folder

This includes our ground truth primitives (folder "prim_gt") and the original ModelNet mesh (folder "ModelNet10_mesh")

Train

  • For shape generation from scratch:
th driver.lua
  • For shape generation conditioned on single depth map:
th driver_depth.lua

Generation

  • For shape generation from scratch:
th testNet_3dp.lua
  • For shape generation conditioned on single depth map:
th testNet_3dp_depth.lua

Visualization

  • To visualize ground truth primitives, run visualizeGTPrimitive.m in Matlab
  • To visualize sample shape generation, run visualizeRandomGeneration.m
  • To visualize sample shape generation conditioned on depth, run visualizeDepthReconGeneration.m

Primitive ground truth

  • See ./matlab/ folder

Note

For shape generation conditioned on depth, as explained in the paper Sec 5.1, we perform a nearest neighbor query based on the encoded feature of the depth map to retrieve the most similar shape in the training set and use the configuration as the initial state for the RNN. For convenience, we include our pre-computed initial configuration for each test class in folder "data/sample_generation".

Primitive parsing

We provide in the matlab folder the demo code (demo.m) to parse single primitive. To sequentially parse primitives in batch, see "script_parse_primitive.m". After each run of "script_parse_primitive.m", run "script_parse_primitive_symmetry.m" to get the symmetry. With every three parses, try "script_refine_parse_primitive.m" to refine the parsed primitives.

Citation

@inproceedings{zou20173d,
  title={3d-prnn: Generating shape primitives with recurrent neural networks},
  author={Zou, Chuhang and Yumer, Ersin and Yang, Jimei and Ceylan, Duygu and Hoiem, Derek},
  booktitle={The IEEE International Conference on Computer Vision (ICCV)},
  year={2017}
}

Acknowledgement

3d-prnn's People

Contributors

zouchuhang 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

3d-prnn's Issues

Can you explain the data format?

Hi, I want to re-trained the network on my own data and I notice that each array entry in prim_gt folder is of shape (num_of_parts, 20). Can you explain what do these 20 parameters mean?

Also, what's the use for prim_rnn_batch_nz_all_tr.t7 and prim_rnn_batch_nz_all_val.t7?

Thanks in advance!

Error in primitive fitting code

Thank you for releasing the code. There are few error that I am getting while using the script script_parse_primitive.m.

  1. The VoxelPlotter function is not there. However, I found out the code on the internet. Similarly there is a missing source file in minFunc_2012. That too I found online.
  2. Loading previously parsed primitives is not working (that is re-running the script script_parse_primitive.m with previously parsed primitive), because of the following reasons:
    a. In the script script_parse_primitive, there is error "Reference to non-existent field 'prim_all" for line 29.
    b. In the same script at line 71, "theta_prev = prim_param(vox_num_q,20);", there is an error about exceeding the dimension. I guess this is because it is trying to access 20th index, which is absent.

It seems that the pipeline is broken in between different script, e.g. script_parse_primitive.m, script_refine_parse_primitive.m and script_parse_primitive_symmetry.m. If you can provide solution to the second point, that will be great.

What's the recommended environment?

Hi, I'm trying to run the code but met some problems which I believe is due to the environment. Could you please provide the environment you are using? Like the version of Ubuntu, CUDA, torch and other required packages.

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.