Face It - Week 10 Update

Face It is a mobile application that detects a person's facial structure as well as information about the person’s lifestyle and current trends, and utilizing that data, recommends the user a hair/beard style.

For this Early Innovation Project, our goal is to have the user scan his face to determine a face shape and then use this face shape along with other personal information such as information about the person’s hair and lifestyle to come up with personalized hair and beard style recommendations.

During the first two weeks, we identified the various stages of development for the project. The stages included creating a user Interface design, a preference selection algorithm, a facial detection algorithm, and a trained convolutional neural network. If you are interested you can find our first two-week update here: https://software.intel.com/en-us/blogs/2017/06/06/face-it-week-2-update

During the third and fourth week of this early innovation project we focused on building our actual product and forming a simple a demonstration. A lot of our back-end work had been taken care of and we aimed to focus on some front-end parts of our application. If you are interested you can find our third and fourth week update here: https://software.intel.com/en-us/blogs/2017/06/19/face-it-week-4-update

During the fifth and sixth week, we improved the accuracy of our model and fixed our algorithm so that the front facing camera was activated rather than the outward facing camera. We also started incorporating these features into our user interface so that we could use our app on a smartphone. If you are interested you can find our fifth and sixth week update here: https://software.intel.com/en-us/blogs/2017/07/06/face-it-week-6-update

During the last few weeks of our project we focused on implementing the features and algorithms we have been working on into our application. We also worked on the final recommendation screen of the app and tested the working prototype multiple times to ensure that it functioned properly.

The algorithm that we had created to sort out and recommend personalized hairstyles successfully outputted a list of hairstyles for the user after he was done selecting various preferences. For this feature to work properly, we had to match up each preference with a set of specific hairstyles that fit that preference. To pair each preference with a list of hairstyles we had to gather a large number of suitable hairstyles and do research to determine what hairstyles go with what preference. After gathering this information, we used a sorting algorithm to determine what hairstyles were in common with all the preferences that the user had selected and collected these results. We wanted the hairstyles to be presented to the user in a clear, concise and organized way, that is why we decided to have a swipe-able recommendation screen that has one hairstyle name appear at a time along with an image of a person with that hairstyle.

By having the hairstyles appear in this manner, the user can easily swipe through all the recommended hairstyles and stop at whichever one he likes and wants to get. The benefit of having a single haircut appear on each screen is that the user will be able to easily show the screen to a barber who will immediately know what hairstyle the user wants and how the hairstyle looks.

To make the process of styling your hair or getting a haircut even less complicated, we have added a “Tips” section on the recommendation page which will have personally generated tips for the user to consider when growing our hair or getting a haircut. These tips, like the hairstyles, are based on the preferences that the user selected.

These features ensure that the user will know exactly what hairstyle to show to his barber and what additional instructions to say when getting a haircut. The user will know what to do when growing his hair out as well.

Here is how each screen of the completed application looks:

The user will first use his front facing camera to determine his face shape on the first screen. Then the user will select various preferences about himself including his face shape that he just found out from the previous screen, his hair texture, his hair thickness, if he has any facial hair, his acne level and his lifestyle. Finally, after the user clicks on the “Get Hairstyles!” button he will be prompted to the recommendation page where he can swipe through various hairstyles and take certain personalized tips into consideration when growing out his hair or when instructing his barber before getting a haircut.

After we had finished coding this application, we began testing it to make sure that it worked properly on all Android devices. The application can only run on Android devices with an API level of above 21 or Android version 5.1 or higher because of certain libraries being used. We realized that certain buttons and sections of the application weren’t appearing properly aligned on some devices. We also noticed that the buttons were appearing a different size for some devices. We solved this issue by going back to our code and created proper constraints so that each section of the application would look the same on every single device.

We have a few future plans for this application that we hope to pursue now that a working prototype has been created. We would like to publish this application to the Android Marketplace for Android owners to install for free. This would be a good way to get some feedback and if enough interest and feedback is received, we would like to possibly add on to the application and keep on improving it. I will release information about the application once it is published so stay tuned on the Face It project page on DevMesh here: https://devmesh.intel.com/projects/face-it.

Creating this application was an amazing learning experience and I am happy that I was able to learn about artificial intelligence and convolutional neural networks with the help of Intel. I am excited to publish this application and I can’t wait to start another project with Intel soon!

Read the previous Week 8 Technical Article: Face It - The Artificially Intelligent Hairstylist or watch a video of Pallab's presentation.

For more complete information about compiler optimizations, see our Optimization Notice.