Inspiration

Finding the right foundation shade in a store is mostly guesswork: you test a few swatches under harsh lighting and hope for the best. I wanted to see whether a photo could do that job instead.

What it does

Upload a photo, and it estimates your skin tone and recommends products from a catalog of real foundation and skincare options. The output is an actual product recommendation, not just a color.

How I built it

  • MediaPipe's pre-trained face mesh locates specific facial landmarks automatically. I used the pre-trained model; I didn't train my own.
  • OpenCV and NumPy sample pixel colors from several regions of the face (forehead, cheeks, nose) and calculate an estimated skin tone.
  • Pandas matches that tone against a catalog of real products to produce the recommendation.

Challenges I ran into

Skin tone isn't uniform across a face, and lighting and shadow can throw off a single sample point. Sampling several known regions gave a more reliable estimate than one spot.

What I learned

How to apply a pre-trained model to a real problem: the work wasn't the detection, but the color sampling and product matching built on top of it. I also learned how much lighting affects image-based results.

Built With

Share this project:

Updates