Makeup recommendation using machine learning and augmented reality ๐๐
Let the app find the most suitable makeup for you and apply it on your face in real-time.
This repository provides the source code used in the paper Makeup Recommendation Using Machine Learning and Augmented Reality by S. Pietras and M. K. Kapuลciลski.
The paper was our Bachelor's thesis at the Faculty of Electronics and Information Technology of the Warsaw University of Technology. It was completed in early 2021 and was written originally in Polish.
You can view the translated, shortened version of the paper here
Now you don't have to worry about what lipstick to choose for a date ever again. Trust in statistics and let the computer be your makeup artist, sweetie.
Run the Android app, point the camera at your face and click a button. Picture of your face will be uploaded to the server, where a trained neural network will generate a makeup that suits you best*. After that, the results will be transferred back to the Android app and the generated makeup will be applied to your face in real-time.
* At least it will try, but beauty is subjective ๐
Regular targets (e.g. webmakeup
, jupyter
) requirements:
- Bazel dependencies
- Conda dependencies
- rules_python dependencies
- (Optional)
CUDA
compatible GPU if you want to use GPU processing
andromakeup
runtime requirements:
- Android device with API level
23
at minimum
Building only:
./bazelw build webmakeup
Running:
./bazelw run webmakeup -- --host 0.0.0.0
Testing:
./bazelw test webmakeup/...
If you are on Windows, use bazelw
instead of ./bazelw
.
From andromakeup
directory run:
./gradlew TASK
Server IP is kept as a string resource, so make sure to change that to your server IP.
See here for more details or just use Android Studio
.
Main runnables:
webmakeup
- server for makeup recommendationandromakeup
- main app for Android
Other runnables:
climakeup
- command line interface for makeup recommendationjupyter
- jupyterlab with useful notebookspreprocessing
- data preprocessing pipeline
Libraries:
imagine
- image processing librarymodelutils
- machine learning model utilitiesganette
- main model used for recommendationautomakeup
- makeup recommendation library
Other:
third_party
- third-party code and environment definitionconfig
- project configurationtools
- project tools
If you want to cite our work, you can use the following BibTeX entry:
@software{Pietras_Kapuscinski_Makeup_recommendation,
author = {Pietras, Sebastian and Kapuลciลski, Maciej Konrad},
title = {{Makeup recommendation using machine learning and augmented reality}},
url = {https://github.com/spietras/makeup-recommendation}
}