Why Raven?

Why did the raven become a style guru? Because it always knows how to "feather" the nest!

But jokes apart, navigating the maze of beard styles can be as tricky as finding a feather in a bird's nest(pun intended). Raven simplifies the grooming journey, ensuring your facial game is always on point.

What it does

Raven employs advanced image manipulation techniques and algorithms for facial parameter detection, identifying key structural areas, and analyzing curves. Leveraging mathematical concepts like polynomial approximation and Gaussian distribution, the algorithm extensively explores its database to provide personalized suggestions for the ideal beard style.

Raven's interactive UI allows the user to upload a picture, generate the best style and subsequently save the image, giving a seamless user experience.

Or, for those who speak better emoji than code: πŸ‘¨ πŸ‘‰ πŸ“Έ πŸ‘‰ πŸ§”β€β™‚οΈ πŸ‘‰ πŸ‘

How we built it

We used Java/JavaCV to code the backend, making use of existing public algorithms such as Kazumi's algorithm and CascadeClassifier. We curated a database of different beard types and styles from Adobe. For the frontend, we used JavaFX to code the UI, allowing the user to upload, generate and save images with just a click of a button.

Challenges we ran into

We ran into a plethora of different challenges when coding Raven. For starters, we faced a high image processing time initially, after which we used a multi-thread system to allow the UI to run on a single thread and the backend on another to allow a swift and seamless image processing time.

Secondly, whilst implementing the facial hair overlay step, we faced errors with proper alignment and sizing. We had to adjust and implement stricter manipulation techniques such as coordinate mapping and structure cropping to ensure the facial hair aligns with the curves of the face all within 24H which surely will a memory we never forget.

Accomplishments that we're proud of

We are proud of every step that we accomplished through the journey of Raven. Our notable achievements include the implementation of a multi-thread system which has significantly reduced our image processing time.

We are particularly proud of browsing mathematical models such as Gaussian Distribution and coordinate systems and using their knowledge to alleviate our implementation of Raven's image processing capability.

What we learned

We gained a deep insight into computer image processing and analysis. We learnt some important techniques to manipulate pictures, extract required areas of the face and use certain key facial parameters to add any overlays on the face.

All in all, since most of us were first time hackers, we learnt how to carry out such a task within 24 hours while keeping ourselves cool and open to learning something new every 30 minutes.

Sustainability

The idea of making Raven sustainable was key to us. We believe that by implementing a more optimized and efficient algorithm, we bring a more cost-effective and less computational-costing solution to the table. Furthermore, this shift from on-paper facial hair suggestions to digital suggestions reduces the need for paper in general.

What's next for Raven

We could definitely extend this idea to add any overlays on the face in the future. This could include suggestions for the most suitable nose/lip accessories, head hair, face tattoos etc. Conclusively, Raven has the potential to be a one-stop-shop for any style suggester.

Credentials

1) Kazumis Algorithm: β€œFace Alignment with Part-Based Modeling” - Vahid Kazemi link 2) Haar Cascades Frontal Algorithm: link

Built With

Share this project:

Updates