Inspiration

Finding skincare products for me in the past used to be very difficult. After spending around a year searching, I finally found cleansers and face washes that worked. Although I found them, it took a very long time and was a tedious process. If I had been able to know my skin type without having to wait in line at a dermatologist's office, finding products would have been much easier and quicker for me. Thus, dermazone was born.

What it does

The dermazone site has a built in convolutional neural network (CNN) that scans a picture of someone's face and classifies their skin type. This information is then used so that they can find skincare products for them based on their individual skin type (e.g. face washes, cleansers). The site also has a sign up/login system so that users can save their predictions in a history log. This enables them to track their skin type and its changes, thus helping them choose what products to buy.

How I built it

Frontend was built with HTML, CSS (classic, Tailwind, daisyUI), and JavaScript. Backend was built with Flask, sqlite, SQLAlchemy, werkzeug, and Jinja2. The CNN was built with Python, keras, TensorFlow, pandas, PIL, and numpy.

Challenges I ran into

The biggest challenge was perfecting my neural network. I had to retrain my model many times to change/add/remove certain layer types and features to ensure the model was training well. It was very hard to adjust the model's architecture to ensure it was not overfitting, but still learning and understanding patterns.

Accomplishments that I'm proud of

I'm very proud of the implementation of the CNN in the site, as it seems very seamless and runs fairly quick. This was the first time I implemented a machine learning model on a site, so I'm proud of how it turned out. Similarly, I am also proud of the login/sign up system. This was my first time ever using Flask and Jinja, so it felt great to see my authentication work.

What I learned

I learned how to use Flask, Jinja2, sqlite, and SQLAlchemy. I also got more comfortable with keras and TensorFlow, and have a much deeper understanding of how to fine tune a model's architecture to optimize results.

What's next for dermazone

  • Chatbot implementation (Dermy, your skin journey AI companion! He's there to recommend facial products, answer any questions you may have, and help you understand your skin!)
  • Another neural network/machine learning model that builds upon the CNN. It would use your individual skin type to suggest specific products to you so that you don't have to go searching on your own.
  • Webcam/cv2 implementation. I would like for users to have the option of either selecting a file from their device or just use their camera to take a photo
  • Mobile app creation

Built With

Share this project:

Updates