Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eric-canas/makeup-hub
Draw a beautiful makeup on your face and share it with others.
https://github.com/eric-canas/makeup-hub
computer-vision face-detection makeup tensorflow-js
Last synced: 8 days ago
JSON representation
Draw a beautiful makeup on your face and share it with others.
- Host: GitHub
- URL: https://github.com/eric-canas/makeup-hub
- Owner: Eric-Canas
- License: bsd-2-clause
- Created: 2021-08-07T15:45:27.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-04-10T20:14:02.000Z (over 1 year ago)
- Last Synced: 2024-12-22T06:51:36.891Z (12 days ago)
- Topics: computer-vision, face-detection, makeup, tensorflow-js
- Language: JavaScript
- Homepage:
- Size: 28 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# 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 :full_moon_with_face:. 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.
Then see how does it fits you, or try to moonify your face :full_moon_with_face:.
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).
## Implementation Details
This web application is built with , and , 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 :full_moon_with_face:. 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.