Skip to content

Latest commit

 

History

History
27 lines (15 loc) · 6.12 KB

README.md

File metadata and controls

27 lines (15 loc) · 6.12 KB

MakeupHub

Draw a beautiful makeup on your face and share it with others.

Makeup-Hub allows you to paint and put some stickers your face, and see how it looks in you or your friends faces from any perspective. In a close future it will also allow you to upload this makeup to a cloud where you could also try how other users makeups looks in your face. Additionally it have an option for moonifying your face, which is really to see how it looks in a plain perspective that is used internally, but is pretty funny 🌝. Everything runs on frontend, so no images are sent to the server.

Quick Start

Simply run the ./src/public/play.html in server mode.

Turn on your webcam click on Makeup! and draw a beatiful artwork on your face.
Make up

Then see how does it fits you, or try to moonify your face 🌝.
Make up

Or try to Copy-Paste some shitty images on your cheeks, a face mask or whatever you want (drawing or pasting images over your moonified face will adjust them better to your skin).

Shitty Stickers

Face Mask

Implementation Details

This web application is built with TensorFlow.js, Painterro and Homography.js, a library that I previously developed for facilitating this kind of applications.

It concretely uses the Facemesh model for face landmarks detection. This way, when user wants to draw anything on its face, 486 landmarks defining its current position and form are detected, so when saving the makeup it applies a Piecewise Affine Transform that maps from these detected points to the famous moonified version 🌝. This moonified version is used as an static anchor for the user artwork, so when plotting the makeup again over the video stream, it will make the inverse transformation from this moonified version to the landmarks detection of the current frame.