GithubHelp home page GithubHelp logo

witroom / facecept3d-1 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sergeytulyakov/facecept3d

0.0 1.0 0.0 7.42 MB

FaceCept3D: 3D Face Analysis and Recognition

License: MIT License

CMake 0.50% C++ 98.92% C 0.58%

facecept3d-1's Introduction

FaceCept3D

FaceCept3D: 3D Face Analysis and Recognition

Introduction

FaceCept3D is a realtime framework for 3D face analysis and recognition. It contains a set of extendible components that can be combined to fulfil a specific task. At this step we open source the following functionality:

  1. Person-specific template creation
  2. Extreme head pose estimation
  3. Facial expression analysis

FaceCept3D is based on the following works:

  • Robust Real-Time Extreme Head Pose Estimation. [pdf]

  • Facial expression recognition under a wide range of head poses. [pdf]

Here is an example image of head pose estimation using FaceCept3D.

Head Pose Estimation Examples

See FaceCept3D wiki for more details.

Requirements

To install FaceCept3D you need to have the following libraries available

and their dependencies.

In addition, if you plan to use a depth sensor, you will to install the driver. Currently we support only the Microsoft Kinect 1.0 sensor. However, the code can be easily extended to most of the available RGB-D sensors.

To use MS Kinect sensors:

Installation

FaceCept3D was tested on Windows and Linux. Mac users should follow linux installation instructions.

Linux

  • OpenNI and SensorKin drivers. A great guide is here.

  • Prerequsities. Install the following libraries using your package manager:

    boost, eigen, flann, vtk (v 5.6), qhull, opencv, tbb, qt (v 4.8)

    For Ubuntu 14.04 the following command will do the trick:

     sudo apt-get install libboost-all-dev libeigen3-dev libflann-dev libvtk5-dev libqhull-dev libopencv-dev libtbb-dev libqt4-dev

    In addition, you need to install cmake if you don't have it:

     sudo apt-get install cmake
  • Install PCL. We need to build and install pcl, since the version here is built without -std=c++11 modifier. This guide will help you build pcl from source.

  • Check that everything works. Try running pcl_openni_viewier. If you don't see any output, then there is something wrong with your installation.

  • Build FaceCept3D.

    git clone https://github.com/sergeytulyakov/FaceCept3D.git
    cd FaceCept3D
    mkdir build
    cd build
    cmake ..
    make

Windows

On Windows platform there are two ways of build FaceCept3D:

  1. Using CMake to generate an *.sln file
  2. Using the provided *.sln file.

It is somewhat more convenient to use the latter variant since the final solution file is cleaner than the one generated by CMake. If you still want to use CMake, you will need to manually enter all necessary paths.

To simplify the process we provide all the dependencies in a binary format. All libs were compiled using msvc2010-win64. You can still use it in a latter version of Visual Studio, but you need to have msvc2010 toolchain installed.

  • Install Microsoft Kinect Driver 1.8. Download it here and install.

  • Download and unpack precompiled dependencies. Download them here

  • Set up environmental variables You may find useful Rapid Environment Editor for setting the environment on Windows.

    Set KINECTSDK10_DIR and FACECEPT3D_3RDPARTY_DIR. For example, mine are pointing to

     KINECTSDK10_DIR=c:\Program Files\Microsoft SDKs\Kinect\v1.8
     FACECEPT3D_3RDPARTY_DIR=d:\Dependencies\FaceCept3D-3rdparty\

    You also need to add the following folders to your path:

     %FACECEPT3D_3RDPARTY_DIR%\Qt\bin
     %FACECEPT3D_3RDPARTY_DIR%\PCL\bin
     %FACECEPT3D_3RDPARTY_DIR%\Opencv\bin
     %FACECEPT3D_3RDPARTY_DIR%\FLANN\bin
     %FACECEPT3D_3RDPARTY_DIR%\QHull\bin	

    The rest is configured in the Project Properties files. If something doesn't work feel free to inspect the *.props files in the Config folder. If you want to use your versions of the dependencies, you will have to change the *.props files.

    Open 3dheadposeestimation.sln using your version of Visual Studio and try to build. If you have a newer Visual Studio than 2010, do not agree to convert the solution to a newer toolchain, since the dependencies are built with msvc2010-win64 it will not link.

What to do next

Have a look at our wiki pages:

  1. Getting Started
  2. Point Cloud Registration
  3. Personalized Template Creation with FaceCept3D

Citing FaceCept3D

If you use FaceCept3D in your research, please cite one of the following (or both):

@inproceedings{Tulyakov2014,
	author = {Tulyakov, S. and Vieriu, R. L. and Semeniuta, S. and Sebe, N.},
	booktitle = {International Conference on Pattern Recognition},
	title = {{Robust Real-Time Extreme Head Pose Estimation}},
	year = {2014},
}

@inproceedings{Vieriu2015,
	author = {Vieriu, R. L. and Tulyakov, S. and Sangineto, E. and Semeniuta, S. and Sebe, N.},
	booktitle = {Automatic Face and Gesture Recognition},
	title = {{Facial Expression Recognition under a Wide Range of Head Poses}},
	year = {2015},
}

facecept3d-1's People

Contributors

sergeytulyakov avatar

Watchers

 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.