Home

Awesome

3D-PRNN

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

<img src='figs/teasor.jpg' width=400>

Prerequisites

Data

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

Train

th driver.lua
th driver_depth.lua

Generation

th testNet_3dp.lua
th testNet_3dp_depth.lua

Visualization

Primitive ground truth

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