Git Product home page Git Product logo

vid2curve's Introduction

Vid2Curve

This is the reference implementation for thin structure reconstruction from an image sequence.

Dependency

  • OpenCV (4.3.0)
  • Boost (1.72.0)
  • Ceres solver (1.14.0)
  • OpenMP (10.0.0)
  • glog (0.4.0)
  • Eigen (3.3.7)
  • Pangolin (optional, for the visualization of reconstruction process)

Installation

This project is mainly developed and tested at Manjaro Linux. Please refer to the following steps to accomplish your installation.

  • Clone the repository:
git clone https://github.com/Totoro97/Vid2Curve.git
  • Then run the following commands:
cd Vid2Curve
mkdir build
cd build
# ----- Default compile setting -----
cmake ..
make Display
# ----- Or compile with GUI(Pangolin) -----
cmake .. -DUSE_GUI=1
make Display

Usage

At the build directory, run command ./Display .

In the config.ini file, you can modify the DataPath field for your own use and test.

The mesh and the curve skeleton will be saved as curves_mesh.obj and curves.obj at the build directory after the reconstruction process is done. And the camera poses will be saved at cameras.txt as rotation matrix and translation vectors (from world to camera).

Data Preparation

In this repository we have prepared two simple examples for your quick validation. For more cases, please refer to the link.

If you would like to use the project for reconstruction of your own thin objects, please prepare the data as the following steps:

  • Prepare a sequence of segmented binary images (as the examples show).
    • 💡The project doesn't provide image distortion function, thus the input images should be undistorted in advance.
    • 💡It is hoped that images are captured from different view angles, to gain better reconstruction quality.
    • 💡Since the initialization step is rather important, the first several frames are hoped to have as few self-occlusions as possible.
    • 💡The recommended resolution of the input images is between 500x500 and 1000x1000.
  • Create a local_config.ini file that indicates the internal parameters of the camera and some other information (as the examples show).

Citation

If you would like to use this project for your own use, please cite:

@article{wang2020vid2curve,
  title={Vid2Curve: Simultaneous Camera Motion Estimation and Thin Structure Reconstruction from an RGB Video},
  author={Wang, Peng and Liu, Lingjie and Chen, Nenglun and Chu, Hung-Kuo and Theobalt, Christian and Wang, Wenping},
  Journal={ACM Trans. Graph. (SIGGRAPH)},
  year={2020},
  Number={4},
  Volume={38},
  DOI={https://doi.org/10.1145/3386569.3392476},
  Publisher={ACM}
}

Acknowledgment

This project also uses the codes from :

Thanks for these great implementations.

vid2curve's People

Contributors

totoro97 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.