Facial Expression Synthesis Based on Similar Faces
A geometry-aware computer-vision pipeline for retrieving a similar face and transferring an expression.
In this project, I developed a method that retrieves a similar face as a prior and transfers its expression geometry and appearance to an input photograph.
- Input face
- Facial landmarks
- Similar face or reference
- Triangulation and piecewise warping
- Texture transfer and synthesized expression
Problem
Expression transfer must change meaningful facial regions without losing the identity and visual context of the input image. A purely pixel-level transformation offers little control over the structures being moved.
Why it matters
Small geometric errors are easy to perceive in faces. Explicit facial geometry makes the transformation easier to inspect and provides a prior for which regions should change.
Approach
I retrieve a suitable similar face, identify facial landmarks, and use triangulation with piecewise affine warping to deform facial regions. Expression-ratio, illumination, or texture information is then transferred to form the synthesized expression.
Evaluation and evidence
I connected the explicit geometric prior to user or perceptual evaluation because a single low-level similarity measure does not establish either geometric correctness or perceived expression quality.
Technical implementation
Python, OpenCV, and dlib support face retrieval, landmark detection, triangulation, geometric transformation, and image composition. Docker captures the execution environment for reproducibility.
What I learned
Encoding facial structure directly made the method and its failures easier to interpret than treating the image as an undifferentiated array of pixels.