Recently I've become interested in learning how to apply makeup! I discovered the hard way that finding makeup tutorials online can be difficult, especially because I'm multiracial.

I first used race-based search terms on YouTube to try and find someone who kind of looks like me, but that really went nowhere. I then tried using general terms like "tan" and "brown", which gave me a lot to sort through... It took me a while to find a makeup YouTuber with a similar skin tone.

This inspired me to think of ways I could search for makeup tutorials that could be more inclusive and didn't need to rely on race-based terms.

Thus the idea of Palette was born.

What it does

Palette is in progress towards being a web app that takes an uploaded image from the user and returns a list of YouTube makeup tutorials with individuals of a nearly matching skin tone.

Step-by-step Use Example

  • User uploads a photo of their face to Palette.
  • Palette uses face and skin detection to compute the average tone in RGB and HSV values from the photo.
  • Palette calculates search terms for YouTube query parameters based on the average tone found, in addition to any other search terms the user wants (i.e. "highlight", "contour", etc.") .
  • Palette then returns a list of embedded YouTube makeup tutorials the user can use.

How I built it

01/17/21: Currently Palette uses Python 3, Pip, OpenCV, and YouTube API.

Final Build should have: Python 3, OpenCV, YouTube API, and Node.js

Challenges I ran into

  • Learning how to use TensorFlow and Docker, then switching to a Pip virtual environment with OpenCV
  • Sorting through faces that did not fit the pre-made model provided by OpenCV

What's next for Palette

Finishing it!

Built With

Share this project: