Giter VIP home page Giter VIP logo

body-shape-estimation's Introduction

Body shape and pose estimation on 3D scans of people in clothing using Ceres Solver

This project is based on the paper of Zhang et al. "Detailed, accurate, human shape estimation from clothed 3D scan sequences" (https://arxiv.org/abs/1703.04454), but adapted to work on static 3D scans and with a better pose estimation. The project surves the research purposes only.

The work heavily uses the SMPL body model (refer to http://smpl.is.tue.mpg.de/).

Disclaimer

This is a work and progress which means that

  • the master branch is not guaranteed to work properly at any given moment;
  • VS solution is organized for the convenience of the developer and might take some time to adapt for running on the other computer;
  • the code style and some small architectural decisions might not be consistent throughout the project code (the developer tries out new tricks from time to time).

Inputs requirements

  • obj or ply format
  • the input is expected to be given on a metric scale (m, cm, dm, mm..), corresponding to the measurements of the person in a real world.
  • gender should be explicitly set

System requirements

  • The project is developed under Windows 10, using Visual Studio 2017 x64, and have never been tested in other environments.
  • Uses some C++11 features
  • Uses Windows-specific functionality to work with the filesystem. If you are using other OS, you'd need to modify the CustomLogger

Dependencies

External modules:

  1. GeneralMesh (https://github.com/maria-korosteleva/GeneralMesh)
  2. Photographer (https://github.com/maria-korosteleva/Photographer)

Libraries

  1. Eigen (http://eigen.tuxfamily.org/index.php?title=Main_Page)
  2. libigl (https://libigl.github.io/) NOTE: if compilation produces POSIX errors, add the following before including igl headersflags ''' #ifdef _MSC_VER #pragma warning(disable:4996) #endif '''
  3. Ceres (http://ceres-solver.org/index.html) compiled to be used on x64 platform (same goes for the Ceres dependencies).
  4. OpenPose (https://github.com/CMU-Perceptual-Computing-Lab/openpose/).
    1. Important The path to the OpenPose models should be set inside the program

Tips for installing Ceres

  1. Make sure to use x64 compiler for all installations.
  2. Ceres dependencies need to be compiled as DLLs. For that turn on an option "BUILD SHARES LIBS" when configuring the installation with CMAKE each time a new library is installed.
  3. Add the DLLs to the PATH environment variable. This will eliminate the need to copy DLLs to the folder containing the .exe file of the project.
  4. Ceres required dependencies are glog and gflags. Glog depends on gflags, so gflags should be installed before glog.
  5. Use EIGEN as a library for the sparse linear solver. For this, check the EIGENSPARSE flag in CMAKE GUI when configuring ceres. This will allow the use of sparse solvers like SPARSE_NORMAL_CHOLESKY without a need to install additional libraries (CXSparse, SuiteSparse, BLAS, LAPACK). It's probably not the fastest solver though.

body-shape-estimation's People

Contributors

maria-korosteleva avatar

Watchers

James Cloos 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.