I am working in Unity3D and I want to make an app like this one. To do that, I need a nice and smooth sdk/library/whatever, that enables me to track face position with all the face landmarks(eyes, nose, mouth) and detect landmark position changes.
So far I've tried OpenCV plugin, but it seems to work not too precisely. For example. when I run the demo scene, it tracks the face, but the face oval size gets distorted very easily and quickly, as well as landmark positions, which are distorted even from the very start.
I've also tried XZIMG plugin, but it does not track landmarks at all. If I am doing something wrong, please correct me.
I am looking for an appropriate tool which can give me needed result on android and iOS devices. I've been looking into Google Mobile Vision, but so far I am not too sure that it can be easily integrated with Unity and used in iOS projects.
Image processing is an advanced topic. It's good to understand how the library you are using work before using it.
Speaking about tracking being slow, that's normal because it is CPU intensive and running it on mobile devices is another problem.
To fix slow problems,
1.You take an image, send it to a server(to Computer not mobile device). The server will do all the processing and return the result back to the mobile device.
2.Try Vuforia. It is not free but it works with Unity.
3.Go Native and discard the use of Unity. You need more frames and using Unity will take away some frames. For Android, use C++ NDK and the OpenCV C++. For iOS use Objective-C and OpenCV. Image processing is one of the instances where using native code is recommended to get the highest frame rate as possible.