It can transfer the makeup from an example image to any other base image. It requires the images to have a straight face.
It uses extended Active Shape Model (ASM) to obtain face control points, denaulay triangulation and Affine Transformation for establishing correspondance between images, WLS filter for layer decomposition (face structure layer and skin detail layer), gradient editing method for preserving texture of lips while transferring the lip makeup.
- python 2.x
- opencv for python
- PyStasm
- numpy, scipy, matplotlib
In terminal, change the working directory to "src" folder and run the following command:
python makeup_transfer.py path_to_base_image path_to_example_image
This will create 4 output images:
result.jpg - final output image
morphed.jpg - example image with morphed face w.r.t. base image
base_points.jpg - base image with face control points
example_points.jpg - example image with face control points