Driver drowsiness detection app

Drowsiness at the wheel is the cause of a significant portion of crashes, annually. Various approaches have been studied and subsequently employed to detect drowsiness. Among these are: the subjective, physiological, vehicle-based, and behavioural methods. This project set out to tackle the issue by comparing some of the techniques available for the behavioural detection of drowsiness.

After researching the current state-of-the-art solutions, different available facial-detection, feature-extraction and feature-classification methods were compared. The various facial-detection and feature-extraction methods were evaluated solely on their processing speed,
as most existing face-detection and feature-extraction techniques are already accurate enough for frontal well-lit images. On the other hand, the feature-classification methods were compared with accuracy and speed. The MRL (Media Research Lab) eye dataset [1] was used to compare these methods. Python was used as the language of choice, as it provides many popular, well documented machine learning libraries such as Keras [2] and Sklearn [3].

The final developed system was tested for accuracy, achieving good results. It was also compared with other state-of-the-art methods. The most suitable method was then implemented on a Flask server, which can receive video data, process it and then send the result back to be displayed to the user. A simple mobile application was also implemented using the Xamarin framework. The user could easily record a short video clip of their face, using their mobile phone. The clip would then be sent to the server for analysis, and the result would be displayed on the user’s mobile phone.

The proposed solution allows users to check whether they are fit for driving by simply using their mobile devices, thus contributing to reducing the number of drowsiness-related accidents on the road.

Figure 1. Example of face and landmark detection
Figure 2. Diagram depicting the drowsiness-detection process


[1]”MRL Eye Dataset | MRL”, [Online]. Available: [Accessed: 28- Apr- 2022].
[2]K. Team, “Keras: the Python deep learning API”, [Online]. Available: [Accessed: 28- Apr- 2022].
[3]”scikit-learn: machine learning in Python — scikit-learn 1.0.2 documentation”, [Online]. Available: [Accessed: 28- Apr- 2022].

Student: Bernard Borg
Course: B.Sc. IT (Hons.) Software Development
Supervisor: Dr Lalit Garg