Any publications arising from the use of this software, including but not limited to academic journal and conference publications, technical reports and manuals, should cite the following work:
J. M. Saragih, S. Lucey, and J. F. Cohn. Face Alignment through Subspace Constrained Mean-Shifts. International Conference of Computer Vision (ICCV), September, 2009.
- "I successfully compiled the code, so why is my app is crashing?" Make sure that your model files are in the right location. If you see the error
Assertion failed: s.is_open()when running your app, that means you forgot to put the model files in the right directory.
- "Is there an example of using FaceTracker on a mobile device?" There is no official example. But there is an example of using ofxFaceTracker on iOS here and a native Android example here.
- "Why is the tracking is slow, and why is there high CPU usage?" The face detection step (finding the general location of the face) can be slow. If this is causing an issue, you might want to put the tracking in a separate thread. If the detection is very slow you might try using a face detector that is native to your platform, and initializing FaceTracker with that rectangle.
- Can I use this for my commercial project/product? Yes. FaceTracker was re-licensed under the MIT license on April 8, 2020. Previously it was available under a custom non-commercial use license, with a separate license for commercial use available for purchase.
Wrappers are available for:
These instructions are for compiling the code on OS X and Ubuntu, but it should be possible to compile on other platforms.
$ brew tap homebrew/science $ brew install opencv3
And on Ubuntu use:
$ sudo apt-get install libcv-dev libopencv-dev
Alternatively, you can download OpenCV from the GitHub and compile it manually.
After installing OpenCV, clone this repository with
git clone git://github.com/kylemcdonald/FaceTracker.git. This repository contains a few subdirectories within the root directory:
- src (contains all source code)
- model (contains a pre-trained tracking model)
- bin (will contain the executable after building)
Next, make sure that your copy of OpenCV is located in
/usr/local (this should be the case if you used
apt-get). If it isn't located there, modify the
OPENCV_PATH in the
Makefile. If you installed with Homebrew, it should be set to
Optionally, you can also add
-fopenmp to the
-lgomp to the
LIBRARIES variable to compile with OpenMP support.
From the root
FaceTracker directory, build the library and example by running
To test the demo,
cd bin and
./face_tracker. Because many webcams are 1280x720, try running
./face_tracker -s .25 to rescale the image before processing for a smoother framerate.
Usage: face_tracker [options] Options: -m <string> : Tracker model (default: ../model/face2.tracker) -c <string> : Connectivity (default: ../model/face.con) -t <string> : Triangulation (default: ../model/face.tri) -s <double> : Image scaling (default: 1) -d <int> : Frames/detections (default: -1) --check : Check for failure --help : Print help -? : Print help