Final Project proposal
Project so far 1 - dec. 3rd~dec 5th
: How to create baby picture from two pictures of adults.
The Idea came up to me when I saw how we can reduce or add up age of a person. And I thought it would be interesting
There were three methods that I used and all of them gave me pretty nice estimation of baby pictures.
to blend two people's faces together and reduce age: thus creating a baby between them
I am a woman after all ;)
**Face Morphing and Warphing**
I used 53 points that describes a person's face... in two pictures
<--just like this.
And triangulated it by delaunay method...
Found the average triangle between two each corresponding triangles.
And warped the triangles into the average triangle
Blended the textures into it
**Average Baby picture **
Since we don't have the perfect average baby picture... I used these four...
then averaged them using above technique
First Method: The Simple Easy Blending Method.
Nothing new here.. just average your own picture with the baby picture half and half.. then you will have baby face.
Do that to mother's face and father's face, and average them.. then you will have the baby picture.
And we get...
Problem: We can't go back to age before this..
If we apply more babiness feature into the face, then you will just have the average baby picture.
But we really want to see a baby, a toddler at least... not some adolecent look...
Second Method: Find the difference
Simple few line addition to the previous code would do this.
Find some linear difference of x and y between two pictures' control points and apply the difference on the composited picture
So, since our baby is female... we would need... the difference between average female and average baby..
So, I found the difference...
And applied the difference to the composited picture of two people...
But before that, I tried just applying the difference to myself only.
Pretty good :)
I used texture that's blended with 50% of baby picture to eliminate the adult features of skintone, oilyness, and things like that...
Babies tend to have brighter skin tone as well..
However, because our average baby was Europeans, it left me an Eurasian look... I liked it though
But if I don't use this blending.. it becomes like this...
It's plain wrong...
Now, Try with father figure...
add the difference between woman and child on to this..and blend in the colors...
Third Method: Using difference ratio
This time it was intellectuallic process involved into the project
which required me to write at least a page of code and few nights without sleep
What I did is that find the ratio difference between the distance of each points, given model pictures (average baby picture and average woman pictures)
First, after the triangulation, we have to figure out the tree that connects every points.... which I used semi-prim's algorithm.
Pseudo code will be:
Start from node 1,
node number= 1 to 53
Find all the nodes that are connected to curr node,
if it's in the graph already, then ignore, otherwise, connect those two nodes, note the distance.
Do it until every nodes are connected
Then for all the edges we found above, we record the anglular separation and the linear distance between them.. : sqrt(dx^2+dy^2) and atan2(dy,ddx)
Then now, find the ratio between before and after picture's distance that are recorded in the tree that we created above...
Apply the ratio of distance and angle in the picture we are trying to change...
NOt much real success are here.. but here's the best one
Oh yeah, I have to thank these people:
David and Johnny Depp for
their pictures as the 'father figure'
(I feel really bad about making
them look bad during some process)
Another David for feeding me and
keeping me sane
My dad for supporting me when I was very very sad
- when the part 3 failed
our lovely TA James for letting me know
that I have more than enough late days left ;)
And Professor Efros
for such a awesome course! and his idea of making business out of this.
Hey, For me saying all these nice things... can I have extra