Inspiration
One of our members almost suffered a car accident the night before we began this project. She was driving with her friend and he fell asleep at the wheel. After the car swerved, she quickly woke him up and realized how a device that could prevent this is necessary.
What it does
Our device can read the driver's face and determine if their eyes are open and focused ahead. If the driver falls asleep or takes their eyes off the road for more than 2 seconds, the chosen song will begin to play to alert the driver to pay attention to the road in order to ensure they can get to their destination safely. The total cost for this life-saver device is under 50$ !!!
How we built it
We used Deep Learning (CNN) to give our software the ability to differentiate between open and closed eyes of the user through photos taken on a webcam attached to the Raspberry Pi. The Pi then determines if the user has their pupils fixed on the road and makes sure that they are awake, and, if not, it plays the desired song to wake the driver up. We also provide a web service that allows users to see their sleeping statistics such as their most sleepy time interval and the number of times they've been reminded by the device. By doing so, users will know which time that they should be careful while driving and prevent from encountering any accident. The web service is powered by Node.JS and supports the UI web page that helps users easily interact with their data.
Challenges we ran into
The most significant challenge we faced was detecting the difference between a user blinking compared to actually falling asleep. We also struggled to train the model to view lighter skinned eyelids with dark eyelashes as closed. The software picked up the dark lashes as pupils and read the user as awake so we had to reteach the machine to better identify closed eyes on lighter skinned individuals. The values of neural layers also sometimes result in either over-fitting or a lack of data inputs.
Accomplishments that we're proud of
We're proud to have implemented the software to trace and detect pupils; we're also proud to have created a Deep Learning (CNN) model with Tensorflow that has approximately 88% accuracy !!
What we learned
Some of our teammates had never coded in Python before, so this was a great way to introduce them to the language and provide practical applications for using Python with Raspberry Pi. Moreover, the team had more chances to learn about the Machine Learning/Deep Learning/Data Science aspect since we had the opportunity to play with and train the data. In addition, we learned how to implement Computer Vision/Image Recognition with OpenCV and implemented Deep Learning with Tensorflow/Keras. We also challenge ourselves by creating an extra web service with another language (Javascript, HTML/CSS)
What's next for eyeVicii
We plan to market the eyeVicii to car companies to prevent a very common, and avoidable accident -- falling asleep at the wheel. We try to make the device as affordable as possible and improve the quality by training the model with eyes from different ethnicities.
Built With
- bootstrap
- cnn
- css3
- deep-learning
- heroku
- html5
- javascript
- jquery
- keras
- node.js
- opencv
- python
- raspberry-pi
- tensorflow
Log in or sign up for Devpost to join the conversation.