kandi background

FaceTracker | Real time deformable face tracking in C with OpenCV 3. | Computer Vision library

Download this library from

kandi X-RAY | FaceTracker Summary

FaceTracker is a C++ library typically used in Artificial Intelligence, Computer Vision, Deep Learning, OpenCV applications. FaceTracker has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.
FaceTracker is a library for deformable face tracking written in C++ using OpenCV 2, authored by Jason Saragih and maintained by Kyle McDonald. 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.

kandi-support Support

  • FaceTracker has a medium active ecosystem.
  • It has 952 star(s) with 361 fork(s). There are 119 watchers for this library.
  • It had no major release in the last 12 months.
  • There are 6 open issues and 41 have been closed. On average issues are closed in 207 days. There are 2 open pull requests and 0 closed requests.
  • It has a neutral sentiment in the developer community.
  • The latest version of FaceTracker is current.

quality kandi Quality

  • FaceTracker has no bugs reported.


  • FaceTracker has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

license License

  • FaceTracker is licensed under the MIT License. This license is Permissive.
  • Permissive licenses have the least restrictions, and you can use them in most projects.


  • FaceTracker releases are not available. You will need to build from source code and install.
  • Installation instructions, examples and code snippets are available.
Top functions reviewed by kandi - BETA

Coming Soon for all Libraries!

Currently covering the most popular Java, JavaScript and Python libraries. See a SAMPLE HERE.
kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.

FaceTracker Key Features

Real time deformable face tracking in C++ with OpenCV 3.

FaceTracker Examples and Code Snippets

  • Installation
  • Sending a vector3 to script from patches is not working
  • Can't get FaceTracker class to work on HoloLens 2
  • Java equals() seemingly returns wrong bool value


$ brew tap homebrew/science
$ brew install opencv3

Community Discussions

Trending Discussions on FaceTracker
  • Sending a vector3 to script from patches is not working
  • Can't get FaceTracker class to work on HoloLens 2
  • Java equals() seemingly returns wrong bool value
  • Can we track face emotional like happy, sad, angry in Spark AR?
Trending Discussions on FaceTracker


Sending a vector3 to script from patches is not working

Asked 2020-Oct-23 at 10:21

So I'm making a ball bounce in spark AR with cannon.js. Everything was working fine until I wanted to get the position of the forehead from the facetracker via the patch editor to a script.


    Error:Exception in HostFunction: valueOf() called on a Signal. This probably means that you are
    trying to perform an arithmetic operation on a signal like +, -, *, etc. Use functions .add, .sub(), 
    etc on the signal instead or .subscribeWithSnapshot() on an EventSource to get the signal's current value on a callback.
at ScalarSignal::valueOf (native)
"line": 4841,
"column": 19,
"sourceURL": "cannon.js"

My patches that send the vector3 of the forehead to the script.

this piece of code is giving the error:

var pos = Patches.getVectorValue('HeadPos');

I sadly can't find anything online about sending a vector3 from the patches to a 'Working' value in the script, Does somebody know how to send a vector3 value ta a script and the use it as a value?


Answered 2020-Oct-23 at 10:21

I've found a selution when working with cannon.js. cannon.js has a kind of update function so you can use .pinLastValue() because it does this every frame in order to update the physics.

My code:

// Create time interval loop for cannon 
Time.setInterval(function (time) {
    if (lastTime !== undefined) {
        let dt = (time - lastTime) / 1000;
        world.step(fixedTimeStep, dt, maxSubSteps)

     // Get the head position values from the patches
     var headVal1 = Patches.getScalarValue("HeadPosX").pinLastValue();
     var headVal2 = Patches.getScalarValue("HeadPosY").pinLastValue();
     var headVal3 = Patches.getScalarValue("HeadPosZ").pinLastValue();

     // Set the position of the head hitbox to the headposition in the physics world
     HeadBody.position.x = headVal1;
     HeadBody.position.y = headVal2;
     HeadBody.position.z = headVal3;

    lastTime = time
}, timeInterval);

This code gets the x, y and z values individually from the patches where I send these values individually as well. I could have done it as a Vector3 from both sides as well, but I thought this looked nicer and made it easier to edit the values individually through the patches instead of packing it as a Vector3 again.

Source https://stackoverflow.com/questions/64154964

Community Discussions, Code Snippets contain sources that include Stack Exchange Network


No vulnerabilities reported

Install FaceTracker

These instructions are for compiling the code on OS X and Ubuntu, but it should be possible to compile on other platforms.
src (contains all source code)
model (contains a pre-trained tracking model)
bin (will contain the executable after building)


For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .

Build your Application

Share this kandi XRay Report

Reuse Pre-built Kits with FaceTracker