Code Monkey home page Code Monkey logo

3d-point-cloud-generation's Introduction

Learning Efficient Point Cloud Generation for Dense 3D Object Reconstruction

Chen-Hsuan Lin, Chen Kong, and Simon Lucey
AAAI Conference on Artificial Intelligence (AAAI), 2018

Project page: https://chenhsuanlin.bitbucket.io/3D-point-cloud-generation
Paper: https://chenhsuanlin.bitbucket.io/3D-point-cloud-generation/paper.pdf
arXiv preprint: https://arxiv.org/abs/1706.07036

We provide TensorFlow code for the single-category experiment (for ShapeNet chairs).


Training/evaluating the network

Prerequisites

This code is developed with Python3 (python3). TensorFlow r1.0+ is required. The dependencies can install by running

pip3 install --upgrade numpy scipy termcolor tensorflow-gpu

If you don't have sudo access, add the --user flag.

Dataset

The dataset (8.8GB) can be downloaded by running the command

wget https://cmu.box.com/shared/static/s4lkm5ej7sh4px72vesr17b1gxam4hgy.gz

This file includes:

After downloading, run tar -zxf s4lkm5ej7sh4px72vesr17b1gxam4hgy.gz under the main directory. The files will be extracted to the data directory.
(Please also cite the relevant papers if you plan to use this dataset package.)

Running the code

The following scripts gives examples for running the code.

  • Pretraining the network: scripts/run-pretrain.sh
  • Fine-tuning with joint 2D optimization: scripts/run-finetune.sh
  • Evaluating on the test set: scripts/run-evaluate.sh
  • Computing the error metrics: scripts/run-compute-error.sh

Checkpoints are stored in models_${GROUP}, summaries are stored in summary_${GROUP}, and evaluated point clouds are stored in results_${GROUP}.
The list of optional arguments can be found by executing python3 train.py --help. The default training settings in this released code is slightly different from the paper but optimizes the networks better.
We provide two different network architectures: (1) originally from the paper (2) deeper with residual blocks. Reference performances on the test set is as follows (note that different runs will result in slightly different performances):

pred→GT GT→pred
original 1.7342 1.8371
ResNet 1.6723 1.8169

Rendering ground-truth depth images

We provide the code to render depth images for supervision.

Prerequisites

This code requires the following:

  • Blender as the rendering engine. This code was developed with Blender 2.78.
    After installation, please make sure the command blender is callable (use which blender to check installation).
  • The OpenEXR Python binding for .exr to .mat file conversion.

Dataset

The raw ShapeNet dataset can be downloaded here.
This rendering code was developed to use ShapeNetCore v2. (The provided depth images were rendered from ShapeNetCore v1.)

Running the code

Under render, run ./run.sh 03001627 8 to render depth images for fixed and arbitrary viewpoints, and convert them to .mat files. This will convert all objects in the ShapeNet chair category (03001627) with 8 fixed viewpoints.
The rendered files will be stored in the output directory.


Creating densified point clouds of CAD models for evaluation

We also provide the code to densify the vertices of CAD models to a specified number. This code can be run independently; only the ShapeNet dataset is required. It repeats the process of adding a vertex to the center of the longest edge of the triangular mesh and subsequently re-triangulating the mesh. This will create (generally) uniformly densified CAD models.

Running the code

Under densify, run ./run.sh 03001627 to run densification. The densified CAD models will be stored in the output directory.


If you find our code useful for your research, please cite

@inproceedings{lin2018learning,
  title={Learning Efficient Point Cloud Generation for Dense 3D Object Reconstruction},
  author={Lin, Chen-Hsuan and Kong, Chen and Lucey, Simon},
  booktitle={AAAI Conference on Artificial Intelligence ({AAAI})},
  year={2018}
}

Please contact me ([email protected]) if you have any questions!

3d-point-cloud-generation's People

Contributors

chenhsuanlin avatar

Watchers

 avatar  avatar

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.