We wanted to look at using machine learning for data security but couldn't pinpoint a specific area/project we wanted to attempt due to time constraints. We were cautious that we might not have enough time to design, implement, and train a classifier in 24 hours, meaning we wouldn't be able to complete the project.
We thought about using facial detection as some sort of safeguard for data. We then found a pre-trained facial emotion classifier here. This model and classifier were freely available through the MIT license. We decided to look at using these detected emotions to create a unique password to protect important files.
This password is unique to the emotions shown, the number of emotions, and even the duration specified for each emotion.
What we learned:
Through this project we learned to be patient and not give up on an idea if it seems hard at first. Initially we were dismissing a lot of projects due to their complexity. We learned that planning is vital to a project like this with a very limited time frame. Coding isn't the biggest problem in a project like this since we can look up documentation easily. The hardest part is finding a project that we can complete in 24 hours, and enjoy doing.
We also learned how to allocate work appropriately and consider how difficult each task was. We had to communicate a lot during the project to keep each other updated on progress of different modules. We also did a lot of pair programming for some of the harder parts of the project, as a second pair of eyes allows us to spot errors and issues more easily.
How we built it:
We based the foundation of the projection on a pre-trained model and classifier found here. We used the classifier itself to detect the emotion of the user a lot better than we may have been able to do on our own. We decided to use this model because creating the model and classifier from scratch would have been incredibly challenging. We used the model to average the users emotions over a period of time, for the specified number of emotions. These averaged emotions were then double hashed using SHA-2 256 bit hashing. This generates a secure password for the user.
The biggest challenge we faced was to understand the forked work since neither of us were experienced with image classification to that level, especially since only learned a small part of classification for text. The emotional recognition was an entire level of challenge on top of the facial recognition.
Finding a pre-trained model was also incredibly difficult. We chose to use a pre-trained model due to the fact we were inexperienced with creating an emotional recognition classifier and would not have been able to design, implement, and train our own system. We tweaked this existing system under the MIT license in order to create a functional proof of concept system.
We also faced a huge challenge in beginning this project. Initially we could not decide on a project and switched between several before finally settling on this particular project at hour 6 of the hack.
Acknowledgements and Other Information
Expaning the inspired project to average the emotions over a period of time and output a specified number of averages, as well as the hashing, input parameters for number of emotions and averaging duration, and turning emotions into a password was a joint effort between Luke Peacock and Syed Hafizur Reza for the Hack Sheffield 5 event
For more information, please visit the github repo here