Driving when you are sleepy & exhausted? Well, you're as much of a safety hazard as a drunk driver. “Drowsy driving” occurs when a person who is operating a motor vehicle is too tired to remain alert. The effect of drowsiness is similar to alcohol; it will make your driver inputs(steering, acceleration, and braking) poorer, destroy your reaction time and blur your thought processes.
Now it is high time we take control and help in reducing these kinds of accidents that pose a severe risk of life.
In order to mitigate the drowsy-driving accidents ,we are using a set of multiple technologies such as:
OpenCV + Tkinter + NodeJS + MongoDB
This interface system will consist of a camera which will turn on whenever the driver starts running the main engine and then it will check two major aspects of drowsiness:
- Yawning- checked through facial landmark detection.
- Eye closing- analyzed through eye-aspect ratio.
Whenever the driver yawns or closes his eyes for more than threshold time then the alarm goes on to signal the driver as well as the respective activity count is increased by one. On the closing of software the totals of each activity count will be stored in database against that user object.
We are a group of 5 people working together to solve this problem in an economically feasible manner.
- Vineet Jha: Team Leader and Manager
- Rishabh Sharma: Lead Frontend Engineer
- Deepak Malik: Lead Backend Engineer
- Shlok Bansal: Database Administrator and Analytics Head
- Gaurav Gupta: Lead Machine Learning Engineer
The work on this project is still ongoing and till far these versions have been released:
- v1.0 : Implemented eyes close and yawn detection feature individually.
- v2.0: Sequenced their execution to work together in one program.
- v3.0: Made them work concurrently with the use of threading and also a website for monitoring system displaying all the collected analytics using infographics.
Currently we are trying to make the code more general and implementing SOS and location features with improvement in codebase neatness too.
- Navigate to
/public/js
folder and run python script usingpython yawn_detector.py
. - Wait for script to start and then test it using closing eyes or yawning. Use keystroke
q
to close window and see this run analytics. - On closing it the database will be updated with newest values so we are ready to move to monitoring system.
- Navigate to project home directory and run
npm install
and then start server usingnodemon
. - Visit localhost:5000 on your browser and click on "Lets's get started" and then tap on admin login.
- You will have access to monitoring system now and can use it to access data.
- On non Windows System you need to edit yawn_detector.py and change active thread count in alarm code from 2 to 1 and use
python3 yawn_detector.py
instead. - The Login ID and password of monitoring system are:
bitrebels
andbit123
.
This model, if implemented correctly on a large scale, can prevent losses in road accidents due to drowsy driving and save thousands of lives. The system can be installed in different vehicles whether those are buses , trucks, cars or even in the railways. This model includes the direct influence of monitoring the drivers' way of correctly running the vehicle which will ultimately result in reduction of roadside accidents due to drowsy driving and maintaining the records of drivers past records which will ultimately lead to streamlined traffic flow.