C++ implementation for OpenFace library by CMU.
Switch branches/tags
Nothing to show
Clone or download
Latest commit f1d0887 Sep 17, 2018



C++ implementation for OpenFace library by CMU.

Although there are many dependencies, the repo tries to minimize manual setup steps by using hunter packaging. Currently the only package that needs to be manually setup is torch.

Torch estup

We use torch to run our models. I had the following setup:

  • Torch windows binaries from here
  • dpnn required package by running this hack
  • libjpeg on windows, then re-ran luarocks install image in order to make sure it is linked to libjpeg (otherwise torch cannot deal with jpegs)
  • Ascii models from here since binary models won't work.
  • Good luck :)


This is a standard cmake project. Create a build directory from root, then cmake .., followed by cmake --build . should do the trick.

OpenFaceCpp currently takes an an input an xml config file. A sample is in src/OpenFaceConfig.xml. You will see a couple models are needed, they can be found in the original repo.

E.g. OpenFaceConfig.xml expects:

  • shape_predictor_68_face_landmarks.dat: it's possible to download it by running in PS: wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 -O dlib/shape_predictor_68_face_landmarks.dat.bz2
  • nn4.small2.v1: get it (and other models) from here