I am planning to do a similar kind of application like the below one in android and Iphone.
http://www.motionportrait.com/en/technology/
http://www.youtube.com/watch?v=P-mBdV3icMY
What have I tried?
1) I tried image warping technique to make expressions, which I have achieved to a decent accuracy. And this is the result image.
2) I have also tried opengl+Texture mapping where I couldnt get better accuracy.
Where I am stuck-up?
I am not success in few things like face rotation.
Can some one guide me through the techniques used behind this application, and how to proceed further from here?
Input: Input to my application is a 2D frontal image.
Expected Output: Rotated face and expressions on the face.
Probably you need to get a series of images with different face reaction.And then animate the images with shorter animation duration to make them feel like they are real. Probably you could read about sensors and touches in iPhone for mouseHover effect.
As I know, to do rotation, you should have parametric (3D) model of head (20-100 parameters). Getting this model is hardest part of project. Usually you get about 1000 3d-head scans, then apply PCA to them, to get parametrs. After user takes a photo you can evaluate parameters of this model (morph it). Now you have 3D head model of the user and frontal view of textured model. All you should to do is to project photo to this model an get your texture. Unknown areas filled with texture patterns from open skin, for example.