To wake up you up should you fall asleep while driving.
What it does
Our application uses our laptop camera, OpenCV, and Google Cloud Vision to track the eyelid movements of the driver. If the person's eyelids start drooping or if he starts dozing off for too long, the driver is supposed to be notified to be woken up.
How we built it
Since neither of us had much experience in machine learning, we decided to use the Google Cloud Vision API along with OpenCV to save us some time. We were also hoping to download our code onto alwaysAI's Jetson Nano when complete, but did not have time since we realized calling the API causes a noticeable drop in fps.
Challenges we ran into
Being on a two man team was extremely challenging. For both of us, this was our first time learning various frameworks such as Google Cloud API's. Initially we decided to use Google Cloud to perform of the machine learning functionality for us, and ran into many issues integrating it with our project. We then realized, however, that Cloud's algorithm for calculating facial features was not suited for our purposes. Furthermore, when integrated with OpenCV, the response caused heavy video lag.
Accomplishments that we're proud of
Learning OpenCV and getting the Google Cloud Vision API setup. .
What we learned
A lot. We should probably use our own model to reduce lag. Machine learning and training your own model can take up a lot of time.
What's next for Drive Awake
We are thinking of writing a new model instead of using Google Cloud that is more accurate and costs less lag and writing the code to an Iot device with a mountable camera. Other possible additions may include a front end web app/smartphone push notifications to wake up the sleepy driver and prevent him/her from getting into a serious accident.