6

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.

user2727765
  • 616
  • 1
  • 12
  • 28
  • paste what you've tried – boburShox Aug 29 '13 at 05:55
  • @boburShox I couldnt post more than two links. here you go for the results which I have tried using warping technique http://snag.gy/GkfjV.jpg – user2727765 Aug 29 '13 at 06:04
  • @boburShox Do you have any comments? You asked me to post what I have tried. – user2727765 Aug 29 '13 at 06:51
  • @user2727765 : Hello, I'm looking to do image warping/morphing which can be used in Virtual Make Over application to do stretching of hair on face. Can you please enlighten me how did you achieved your 1st point(Image Warping Technique)? – Vikalp Patel Oct 29 '14 at 06:31

2 Answers2

3

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.

Andrey Smorodov
  • 10,649
  • 2
  • 35
  • 42
  • Thanks for the reply. Do you have any sample codes or links to do this where i can get detail explanation? – user2727765 Aug 29 '13 at 09:30
  • This is very similar to ordinary AAM (Active Appearance Models), but there is 3-rd dimension added to shape model. You can read about AAM/AAM in the book "Mastering OpenCV with Practical Computer Vision Projects" there is also opensource repository at github: https://github.com/MasteringOpenCV/code . Also take a look at vosm library: http://www.visionopen.com/downloads/open-source-software/vosm/ But these projects are in 2D and you should add 3rd dim to them. Also take a look at 2.5d AAM, there are some papeers in web. – Andrey Smorodov Aug 29 '13 at 09:45
2

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.

  • My question is how to technically achieve the face rotation in my application? And the input to this application is a single face image and the result will be an animated face. – user2727765 Aug 29 '13 at 06:38
  • Again i would suggest you to get an array of images where in you have frontview, backview , i.e. all the directions of an image. To rotate it to left you change the image to left view by changing the current image with the leftViews image you have taken off-course with shorter animation duration.I hope i am making sense to you. –  Aug 29 '13 at 06:42
  • Am sorry you didnt understand my question. My question is how to make a frontal image to "left view"? Input to my application is only frontal image. I need to generate a "left view" image from the frontal one. – user2727765 Aug 29 '13 at 06:46