Sign in to follow this  

2D facial animation from single input image

This topic is 4378 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hi all I'm looking at coding some 2d facial animation The (single) input image of a face will be loaded in, and given an underlying 2d mesh. control points will be entered by the user with the mouse, and these points will be weighted to deform the rest of the face appropriately when animated. it won't use speech recognition or anything to determine the animations, the generic animations will be read in from a text file for the moment i've mainly been doing research lately on the subject. but have come to a stop really on deciding how these weighted points are used in this context to deform the mesh? and are the rest of the vertices in the images just picked at random? if anyone can give any tips or knows any releveant tutorials that'd be most helpful, cheers in advance

Share this post


Link to post
Share on other sites
oh yeah i've seen both of them, cheers anyway that's still appreciated

i've the basic theory down, just wondering how on earth the weighted points work in the 2d mesh :-(

Share this post


Link to post
Share on other sites
Make a grid in 2d and interpolate from your desired points to neighbors. Thats how i would do it. I want to make 2d skeletal animation and done some thoughts on facials. I think i will integrate some bones like in 3d and blend the parts which overlay. hope this will kill paper look effect.


edit: Have forgotten to complete my idea. When you defined your weight and interpolated, then you take the weight as factor. So you can move the desired points, multiply the moton by factor. In other words your main point for lets say mouth would move a bit, other points would move a bit to, but with smaller position change. If the point for the mouth would lie in the middle and would be dragged a bit down this would result in smile for example.

Don't hit me, its just an idea;)

Share this post


Link to post
Share on other sites
oh thanks for elaborating :) i've tried researching it, but i'm in ireland now for christmas and stone age people, if suddenly zapped to the present, would take all of 4 secodns to adapt to my town.

it's just taken me over an hour to download a 1meg pdf file. i think im cracking up :(

what i dont udnerstand, is how weighting the mouth facial-aniamtion-kepypoints does this affect (for example) the cheeks, but know to leave the forehead alone?

tried searching for any algorithms, tutorials or theory i could find on the subject and nothing :(

Share this post


Link to post
Share on other sites
I have done some googling on this subject too and TADAA: nothing found. As if no one uses this. Maybe i must search harder. Nevertheless, as to the point weights, i have done some further thoughts:

-The control points must know which points surround them. in other words, know his neighbors to iterate through them to updaet the position by factor.

- Which results in the animation of cheek for example, but lets the forehead alone, cause you havent defined its points as children of control point.

- Try it out with lines. Draw a line with say 5 points. The middle point is for control. Define the weight factors for first per hand, but let the points on the end on 0 as factor and try for control point neighbors something like 0.5. Move the control point and the two neigbors should move with it, but not so far, cause of their factors.

My methd is maybe not the optimal, maybe someone have a better idea, then he/she should post it here.

If you need further help ask. Then, maybe, will hack a small example together to show how my method is to understand.

Sorry if there are some mistakes in the logic

Share this post


Link to post
Share on other sites
wow very nice cheers, i'll start looking at that now (rating++!)

it should be too hard knowing the neighbours of the ponits, the picture so far fills the screen, and the mouse input is rigged to give the co-ordinates of the image it lands on

for blinking i'm using something else, just creating eyelids instead of bringing the brow down (ala "veepers" if you've seen it) since i wasn't impressed by it

i've got a rough version of blinking working so far if you're interested, doesn't sue mesh or anything, and i sorta hacked it a tad to do 2 interpolations per timestep instead of 400+ as it was doing, but instead of calling myself a no-good dirty cowboy i say to myself the words "streamlining" and i'm fine!

Share this post


Link to post
Share on other sites
from what i've done so far, these two documents seem to be the most informative:

http://www.nsysu.edu.tw/TANET99/DownLoad/TANET017/TANET017.DOC
http://www.miralab.unige.ch/papers/8.pdf

i'll try and have the basics of this done within the week. trying to puzzle out how to define the extent of a control point's influence. i'm thinking something along the lines of "any vertex below the eyes or outside the nose can be affected by the nearest lip control point" or something

Share this post


Link to post
Share on other sites

This topic is 4378 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this