Stacked Ensemble Classification Based Real-Time Driver Drowsiness Detection

Stacked Ensemble Classification Based Real-Time Driver Drowsiness Detection

Venkatramaphanikumar SistlaVenkata K.K. Kolli Navya B. Kukkapalli Sri S. Katuri Sasikala Vallabhajosyula 

Department of Computer Science & Engineering, VFSTR Deemed to University, Guntur 522213, Andhra Pradesh, India

Department of Information Technology, Vignan's Nirula Institute of Technology and Science for Women, Guntur 522006, A.P., India

Corresponding Author Email: 
drsvpk_cse@vignan.ac.in
Page: 
365-371
|
DOI: 
https://doi.org/10.18280/ijsse.100308
Received: 
10 January 2020
|
Accepted: 
11 April 2020
|
Published: 
30 June 2020
| Citation

OPEN ACCESS

Abstract: 

A study on road accidents stated that 20% of accidents are based on drivers’ fatigue. Even though there are solutions based on mechanical and electrical sensor-based systems with capturing of driving patterns, lane monitoring etc., but failed to detect fatigue accurately. Recent developments in computer vision led to revolution in detecting objects, movement tracking etc. In this work, the main objective is to develop a nonintrusive system that can detect fatigue of any human and issues a timely warning. Drivers, who do not take orderly breaks while driving for long distances ran into a high chance of turning drowsy, which they frequently fail to recognize early enough. This system captures the feed of the driver using a web camera and tracks the movement of an eye lids using Stacking Ensemble Classifier. The tiredness or fatigue can be detected with recognition of eye closing pattern based on facial landmarks. Performance of the proposed work is better in terms of accuracy with low computational complexity, when compared with other existing works. So, when abnormalities are identified, the system alert the driver in the form of beeps or slowdown the acceleration, there by prevents number of road accidents.

Keywords: 

machine learning, SVM, fatigue, safe driving, smart cars, facial land mark, stacking ensemble technique

1. Introduction

Drowsiness is a state of an individual who feels sleepy due to restlessness for long time. It is frequently amongst weakness, slowness, and the shortage of mental attentiveness leads to carelessness. Now, the drowsiness of an individual driving the vehicle is extremely important as it's not going to flow from any medical disease, but due to driving by a tired driver for long hours might lead to fatigue. So, there is an important requirement to detect this symptom and avoid miss happening. It’s tough to recognize the accurate rate of drowsy-associated accidents, but researches present that driver drowsiness is a contributing reason for 20% of road crashes. These sorts of crashes are likely to end up with the driver lost life or get seriously injured on an average of 50% or more due to a higher speed effect. The sleepy driver cannot apply the brake to control the vehicle, which leads to disasters. Response time is reduced by drowsiness, which can be a significant element of secure driving. The processing speed of information is reduced, besides the decision-making speed also reduces, which also can be suffering from Drowsiness. By this, we can conclude that if the drivers are familiar about their state of falling asleep, then they can deliberately choose whether to carry on with their driving or take the rest for a while. Drowsy-related crashes are more severe and end in death compared to others as the time of the driver’s reaction is delayed, or they have not made any action to avoid the accident.

Drowsiness of the driver is a notable hazard in the system of transportation [1-9]. This has been acknowledged as a straight or contributing source of road accidents. In economically developed countries, drowsiness has been approximated to be 2% to 23% of all crashes or accidents taking place. Systems, that are used to detect the driver’s drowsiness and give a warning sound, guarantee to be valuable support in preventing accidents. Driver’s drowsiness may be a noticeable cause of an immeasurable number of traffic accidents. The modern census estimates that approximately 1,200 deaths and 76,000 injuries are associated with fatigue-related crashes in every year. The evolution of technologies for knowing and halting drowsiness has become the most important challenge within the field of crash avoidance systems. Because of the threat of drowsiness accidents, systems are to be developed for hampering its effects. The major downside of this vehicle-based method is that the behavior of driving might be very distinct and vary from driver to driver. So, constructing an accurate driving model has become more difficult and the model has to be able to identify different versions in driving behavior due to which model has to learn from every driver specifically each time. This is viewed as a measure without intrusions as the driver does not need to attach sensors. The second type of monitoring is system of driver orientation. The driver-oriented systems are mainly of two types. One is Instructive monitoring system based on biological indicators. Drowsiness is likewise detected with the use of physiological information like information from Electrocardiogram (ECG), Electrooculogram (EOG), an Electroencephalogram (EEG) where heartbeat, pulse rate, eye activity, Yawns, facial etc. are obtained and from these, degree of the drowsiness is calculated [10, 11]. All this is done by the sensors located on and around the body of the driver. This system is comparatively more trustworthy because physiological signs are obtained correctly and are similar for most of the drivers. This measure can be defined as intrusive as the sensors are placed to the driver's body or near driver which will distract the driver and bother the driver while driving. The second system is Non-instructive monitoring system based on behaviour analysis. The human face is something that has a high degree of variation and Face detection is considered as a tough obstacle in computer vision analysis. This method is considered as nonintrusive as a simple web camera is used to detect features like, eye blinking, eye closing, yawning, etc., which are analyzed to detect drowsiness [2, 3, 8, 12, 13]. The human eye acts as the most vital feature and plays a major role in recognizing faces and analyzing expressions. In existence, the primary and comparatively powerful features of the face are considered to be eyes as any other facial features. So, it is beneficial to detect eyes than any other features, and then the position of other features of the face can be evaluated using the eye position. We have proposed a system that is truly based on a web camera to detect drowsiness from the captured video by using image processing techniques and machine learning strategies to make the machine cheaper as well as portable.

In this work, the visual behavioral characteristics [14, 15] of a driver are monitored and drowsiness of the driver is detected with webcam and Support Vector Machine (SVM) algorithm [16]. This application will use an inbuilt web camera to read pictures of a driver and then using the OPENCV HOG+SVM algorithm to extract the facial features from the frames [17]. Then, checks the calculated EAR and MOR to identify whether the driver in the particular frame has closed eyes or open eyes along with yawning status. If the driver is recognized with the signs and symptoms of drowsiness i.e., closing his eyes in more than 10 consecutive frames or yawning continuously for a while, then the application will alert the driver with drowsiness messages and alarm to wake him up. SVM model [7] is used in this work and also used Euclidean distance function for checking or predicting EYES and MOUTH distance closer to drowsiness. If the distance is closer to drowsiness, the application will alert driver with a warning alarm.

2. Related Work

The basic model for drowsiness detection comprises of three major modules: a system for acquisition where the driver’s frontal face is captured, a system for processing where it is handled to detect drowsiness, and a warning system for alerting using an alarm [10]. There are two kinds of sleep monitoring systems, namely the system of vehicle-orientation and system of driver-orientation [9]. In the system of Vehicle orientation, the driver having drowsiness is detected by examining the driver’s behavior using the extracted information from the sensors, which are placed in the vehicle [9]. It captures information such as on-road position of the vehicle, movement of wheels, driving pedal pressure, or the variation in the speed. Recently, lot of research is carried to reduce the occurrence of road accidents by using machine learning algorithms in the design of cars.

Cech and Soukupova [12] proposed an algorithm to detect the blinking of eyes from a video captured by camera. Landmarks are used to predict the eye-opening level and then calculate the eye aspect ratio (EAR) –from each frame along with an SVM classifier that was used to classify the eye blinking rate of a person.

Phillips [17] has developed an SVM based face recognition algorithm. In different spaces they have constructed face recognition as problem with two classes. A comparison has been made between the SVM-based method and another algorithm that is dependent on the principal compound analysis (PCA) on the FERET database with difficult set of images. Ji et al. [18] have proposed an algorithm that is used to predict the state of eye and mouth contour feature extraction. Eye Map algorithm through a clustering method is used to extract the sclera-fitting eye contour. Similarly, mouth prediction is done through lip segmentation using the color variation of the lip, skin, and internal mouth. Dwivedi et al. [1] proposed a model which is a vision-based intelligent algorithm to detect driver drowsiness. Complicated non-linear characteristic interactions as well as facial capabilities were captured making use of this algorithm. Drowsiness was classified using a softmax layer. This proposed system was used for giving warning signals to the driver with drowsiness or inattentiveness to prevent traffic accidents [19, 20].

Hu and Zheng [7] have proposed to predict the driver drowsiness by engaging Support Vector Machine (SVM) with the parameters like eyelid withdrawn from the collected data through an EOG in a driving simulator provided by EU Project SENSATION. They first divided the dataset into three levels of drowsiness, and then a t-test has been performed to recognize how all the parameters are correlated to the driver’s sleepy conditions. After extracting all these features an SVM Drowsiness model is built. Mehta et al. [13] proposed a light-weighted, driver’s drowsiness detection system on the Android application. This system uses image processing techniques to identify the face of the driver in each frame and then detect landmarks of the face, Eye Aspect Ratio (EAR) and Eye Closure Ratio (ECR) to recognize the driver’s drowsiness using flexible threshold method. Machine learning methods are used for classification.

Maior et al. [16] has proposed a model to detect drowsiness based on processing of person’s face from the video. They have used non-intrusive technique for detecting the drowsiness of the driver by identifying the eye region directly from the webcam. This model is totally based on automatic face detection and evaluating the Eye Aspect Ratio, which allows predicting the driver’s attentiveness by classification with SVM method. Picot et al. [11] have proposed a single electroencephalographic (EEG) channel based drowsiness detection. This technique depends on a comparison test to seek out the changes inside the alpha relative power. The primary advantage of the proposed technique is that the threshold is detected completely independent of drivers and needs no longer to be tuned for all of them as it may operate online with a quick put off and is tuned with the aid of a threshold.

Vural et al. [21] have proposed development of a system for automatically identifying the drowsiness of the driver from the video. In this system, spontaneous behavior is employed by measuring facial actions include eye blinking and yawn motions, along with the head motion. All the calculated measures were passed to classifier such as Adaboost and multinomial regression for classification. Sahayadhas et al. [9] have proposed a system with the following measures: (1) vehicle-based measures; (2) behavioral-based measures and (3) physiological based measures. They have also considered different methods by which drowsiness has been analytically manipulated and concluded that it is worth combining physiological measures, like ECG, with behavioral and vehicle-based measures to develop a productive drowsiness detection system.

Bhoyar and Sawalkar [15] proposed a drowsiness detection system which is completely vision based using the modules like image acquisition, image resize, Haar Cascades Classifier, dlib facial landmark detector, 68 landmarks, eye region of interest, and then eye aspect ratio (EAR). From these features, the level of eye openness is computed, and the state of the driver is classified based on it. Saini et al. [10] have proposed a model that can warn the driver when he is not attentive and also inform the driver about current state of the fatigue and time of driving since the last break has been discussed. If a warning is emitted, it also suggests a nearby rest stop in the COMAND navigation system. Assari and Rahmati [6] proposed facial expressions to detect the drowsiness in a driver rather than using eye state and overcame challenges like lighting conditions due to change in intensity. They have proposed and implemented a hardware system that depends on infrared light which made Face detection, the evaluation of the facial components via horizontal projection, and template matching which made them most effective.

Alshaqaqi et al. [22] developed instinctive drowsiness detection depends on visual information and Artificial Intelligence. It detects, track the driver's face as well as eyes to measure PERCLOS, which is a scientific measure of drowsiness related to slow eye closure. They developed this system so that it can examine the driver state under different light conditions using an IR camera. Grace et al. [5] have proposed a video-based device used to scale the PERCLOS, which measures the drowsiness connected to gradual eye closure. Secondly, a version to guess the PERCLOS primarily based on data from the performance of the vehicle. To approximate the PERCLOS they have used neural networks using the measures that are obtained from lane-keeping, wheel movements, and lateral vehicle acceleration.

3. Proposed Stacked Ensemble Technique for the Detection of Driver Drowsiness

In this work, a system is proposed based on web camera [15] to detect drowsiness from the captured video. Image and machine learning strategies [16] have been applied for classification of the problem to make the machine cheaper as well as portable. The methodology has been implemented to find out drowsiness in the driver in terms of Behavioral-based approach. In this project by monitoring the visual behavior of a driver is detected with webcam feed and SVMs [13]. The entire system is partitioned into modules to make it easier for the development of the system. Modules of the proposed work include data acquisition, face recognition, facial feature land marking, extraction and classification are presented in Figure 1.

In data acquisition the recording of the video is done using the webcam with help of OpenCV built-in function VideoCapture() and the frames are extracted using read() function of OpenCV. As the system deals with real-time criteria, at first the video is captured, recorded, and has to be processed. So, for analysis purposes, the capture video is divided into frames. After successfully drawing out the frames, the 2-dimensional images are processed with image processing techniques [20]. In this work, a combination of the histogram of oriented gradients (HOG) and linear SVM [18] is used. By considering face as a category of object, a face is considered from an image as a problem of object detection. In object detection, the object located in the image of interest is taken and also the size of the object. The algorithm for face detection concentrates more on finding the front face. But the recently developed algorithms are focusing more on general cases like different positions, identification of multiple faces, etc.

Figure 1. Generic architecture of the proposed system

In this scenario, the face of the driver might be in any position and there is also a possibility of identifying multiple faces in a single image. In this methodology, positive samples of descriptors are determined. Eventually, the same size negative samples are taken, and the calculation of HOG descriptors is performed. The major positive side of the HOG is that it can draw out all the required features from a region of Interest (ROI) [12]. Usually, it is observed that the percentage of negative sampling is comparatively very huge than the percentage of positive sampling. After the successfully deriving the required features from either of the classes, a linear SVM classifier is trained for the classification task. A window of fixed-sized is generated on the image tested and the output is the highest value identified as the face; a bounding box is drawn around the face. The overlapping bounding boxes are removed by non-maximum suppression.

After identifying the face in the face detection module, it moves forward to obtain the locations of various characteristics of the face like the eyes and corners of the mouth, the nose tip, and so on. Before that, the images of the face need to be normalized to lessen the outcome of the camera distance, uneven light, and varying face image resolution. The main reason for conversion is that less information needs to be provided for each pixel as a grey color, which has equal intensity for all the three colors red, green, and blue. So, that we can specify the same intensity for each pixel. After image normalization, Dlib has a facial landmark detector which has several pre-trained models, which uses 68 facial coordinates (x,y) location that maps the points on the image of the person’s face. The main motto of this module is to identify primary facial structures using the shape prediction technique. Facial landmarks detection [12] is done in two steps such as segmentation of face from an image and extraction of key facial appearance on face ROI. Face alignment, head pose approximation, and eye blink detection are few implementations of Facial Landmark as shown in the Figure 3. The landmark detection of the face is executed using 1 millisecond Face alignment with an ensemble of Regression Trees [23], which is a dlib trained model available on the dlib official website. The training of the model is done using the iBUG300-W dataset. This technique starts by using:

i. A set of images with labeled facial landmarks is used for training. All these images are labeled manually, by specifying (x,y)-coordinates for each facial structure with surrounding regions [24].

ii. Later, more specifically, the distance probability among pairs of input pixels is calculated. Both the eye region and mouth region [18] can be extracted by the following facial landmark index as the right eye using the coordinates (36, 42), the left eye with the coordinates (42, 48) and the mouth using the coordinates (49, 61). The indexes of the 68 coordinates are as shown in the image in Figure 2.

Figure 2. Face localization and landmark identification

After extracting the eye and mouth region, boundaries are drawn to the extracted features using the built-in functions of OpenCV library i.e. convexHull() and drawContours() functions. For each and every frame derived from the video, the eyes and mouth landmarks are detected [18]. Using this module, Euclidean Distance is calculated to check whether given face distance closer to eye blinks and yawning, if eyes are closed for more than 10 frames continuously and mouth open as yawn, then it will alert the driver. The eye aspect ratio (EAR) and the mouth open ratio (MOR) [2-4, 13] between the heights and widths of the eyes and mouth are computed as below. Euclidian distance is used as a parameter to calculate the distance between the width and height of the eyes and mouth.

$D(X, Y)=\sqrt{\left.(Y 1-X 1)^{2}+(Y 2-X 2)^{2}+\cdots+(Y n-X n)^{2}\right)}$,          (1)

where, ‘X1, X2, ..., Xn’ and ‘Y1, Y2, ..., Yn’ are the vector values for the corresponding widths and heights of the corresponding eyes and mouth.

Eye Aspect Ratio $(\mathrm{EAR})=\frac{\|\mathrm{P} 2-\mathrm{P} 6\|+\|\mathrm{P} 3-\mathrm{P} 5\|}{2 \| \mathrm{P} 1-\mathrm{P} 4 \|}$,          (2)

where, ‘p1, p2, …, p6’ are the landmark locations of the face in the 2D image, depicted in the Figure 3. The EAR value is mostly constant value, when an eye is open and drops to zero, while closing an eye. The component ratio of the open eye has a small variance among individuals, and it is a steady scaling of the image and in-plane revolution of the face. Since eye flashing is done by both eyes simultaneously, the EAR of both eyes is averaged [13].

Average $=\frac{\text { left EAR+right EAR }}{2},$          (3)

Mouth Open Ratio (MOR) $=\frac{\|\mathrm{P} 2-\mathrm{P} 8\|+\|\mathrm{P} 4-\mathrm{P} 6\|}{2\|\mathrm{P} 1-\mathrm{P} 5\|}$,          (4)

where, ‘p1, p2, …, p8’ are the landmark locations of the face in the 2D image, depicted in the Figure 3. The MOR value is mostly equivalent to constant when the mouth is open and is close to zero while closing the mouth. By using MOR, the yawn count of the driver [4] is estimated. The count is increased every time a driver MOR reaches the threshold value that is being given as a constant for yawning and an alert message of drowsiness along with yawn count was displayed on the screen [25].

Figure 3. Architecture of the proposed stacked ensemble classifier using SVM kernels

Support Vector Machine (SVM) [16] is used as the classifier in this work to classify the drivers state. This algorithm can be used to recognize and rectify each linear and non-linear problem. The major idea of SVM is straightforward: with regards to the size and dimension of the data it generates a line or hyperplane. Machine learning supports various kernel functions for transforming data. In particular, RBF is mostly used kernel in SVM problems for classification. For classification tasks with only two classes, a hyperplane is drawn as a line that linearly separates and classifies a set of data. Further, how far the data points lie from the hyperplane is estimated. Therefore, having a maximum margin from the hyperplane is advantageous, while data points still being on the correct side of it. So, when testing SVM with new data, whatever side of the hyperplane it lands will decide the class it belongs too [25].

The current SVM model was developed using an inbuilt library that is Scikit-learn package. Then, the training data is segregated before it was used for training the model. Test data is used to compute the performance of the model in terms of accuracy. The test data contains 155 test samples with a combination of opened and closed EAR values. The trained SVM model estimates the states on test data. The false-positive rate was zero from our observation, i.e., detecting opened or closed eyes was successfully executed. If the state of the eye is identified as 0 for more than a given number of consecutive frames then an alarm sound warning the driver of his drowsiness is initiated until the driver opens his eyes. Once the diver’s eye state is identified as 1 the alarm warning sound stops. SVM is trained with different kernels and the linear kernel is applicable only when the data can be separable with a single line.

K(x,y)=xTy.          (5)

Radial basis function kernel is applied the value of RBF kernel depends on distance from some point or origin.

K(x1,center1)=exp(-(gamma*||x1-center1||2),          (6)

where, ||X1-X2|| is the Euclidean distance between X1 and X2 and in polynomial kernel the dot product of the data points is calculated after the power of kernel is increased.

K(X1,X2)=(a+X1TX2)b,          (7)

where, b is the degree of kernel and a is a constant term and sigmoid kernel is basically used for neural networks. If an SVM model is using sigmoid kernel then it is two layer perceptron neural networks.

K(xi, xj)=tanh(alpha xiTxj+c)          (8)

where, alpha=1/N; N is data dimension and c is intercept.

As a part of stacked ensemble classification, predictions from multiple classifiers are given as an input to train the Meta classifier. Based on the input predictions, meta classifier will do the final prediction. Architecture of the proposed stacked ensemble technique is given in Figure 3.

In the proposed architecture SVM with Linear, Sigmoid and RBF kernels are chosen as three initial clusters. To address the limitations of data leaking, in the proposed work performance of the proposed model is evaluated using K Fold Cross validation. In general, the training data has been divided into k-folds where, the first (k-1) folds are used to train the level one classifiers. Further, the remaining validation fold is used to assess performance of the meta classifier. In this work, to stack the classifiers, we used the StackingCVClassifier from MLXTEND. Support Vector Classifier is used as a meta classifier with all its default parameters.

4. Experimental Results and Discussions

The dataset consists of two attributes namely state and EAR where state represents eyes opened or closed. EAR values are those that represent the eye aspect ratio of the eye by calculating the Euclidian distance between the height and width of the eyes. A model has been trained to derive the dataset by keeping 0.2 as a threshold value to segregate the data with their corresponding states [12]. SVM needs a set of training and testing data to conclude about the state features of the driver [16] i.e., drowsy, or not drowsy. Therefore, a dataset was created containing feature states and EAR values. From a total of 771 samples, 447 contained open and remaining 324 samples are having closed eyes. Therefore, the dataset is partitioned into training and testing data with a ration of 80:20 respectively. Before categorizing the data into train and test data, a graph is plotted using the matplotlib library to analyze the data as shown in Figure 4.

Figure 4. Scatter plot of the data from the dataset

The kernel functions only calculate the relationship between every pair of points as if they are in higher dimensions. This is also called a kernel trick and this also reduces the amount of calculation required for SVM by avoiding math and transforming data from high dimension to low dimension. We have tested the SVM model with different kernels and used the test data in order to find the kernel that best fits the model and the observations as follows with the above-mentioned dataset. We will get the classification report of the model which consists of accuracy(A), recall(R), precision(P), and f1-score(F).

From the classification report tabulated in Table 1 we can observe that accuracy of the model is observed to be as 99.35% while testing and 97.88% while training. 99%, 99% and 100% are the precision, f1-score and recall for zero class. Similarly, 100%, 99%, 99% for the one class respectively and out of 155 data points only one data point is not predicted correctly.

Table 1. Classification report of SVM with linear kernel

 

P

R

F

Support

0

0.99

1.00

0.99

69

1

1.00

0.99

0.99

86

Accuracy

 

 

0.99

155

macro avg

0.99

0.99

0.99

155

weighted avg

0.99

0.99

0.99

155

When sigmoid kernel is applied to the proposed dataset, from the results it is clearly evident that 68 samples are recognized under true positive, 85 samples under true negative and one sample each in false negative and false positive. The proposed model with sigmoid kernel has achieved 0.987 of accuracy on test set and 0.9788 accuracy on train dataset. Performance evaluation of SVM with sigmoid kernel is presented in Table 2. When Radial basis function kernel is applied on the dataset then 69 samples are recognized as true positive and 86 samples are recognized under true negative. Only one sample is recognized under false positive. Accuracy of the proposed method with RBF kernel on test dataset is 0.9935 and on training dataset is 0.9951. The precision, recall and f score values are tabulated in Table 3.

The proposed stack ensemble model with above all three kernels has achieved 1.00 accuracy on both training and test datasets. Accuracy, precision, recall and f score measure of the proposed method is presented in Table 4.

Table 2. Classification report of SVM with sigmoid kernel

 

P

R

F

Support

0

0.99

0.99

0.99

68

1

1.00

0.99

0.99

86

accuracy

 

 

0.98

155

macro avg

0.99

0.99

0.99

155

weighted avg

0.99

0.99

0.99

155

Table 3. Classification report of SVM with RBF kernel

 

P

R

F

Support

0

1.00

0.99

0.99

69

1

1.00

0.99

0.99

85

accuracy

 

 

0.99

155

macro avg

0.99

0.99

0.99

155

weighted avg

0.99

0.99

0.99

155

Table 4. Classification report of stacked ensemble with three SVM kernels

 

P

R

F

Support

0

1.00

1.00

1.00

69

1

1.00

1.00

1.00

86

accuracy

 

 

1.00

155

macro avg

1.00

1.00

1.00

155

weighted avg

1.00

1.00

1.00

155

From the above experiments, it is clearly evident that the proposed stacked ensemble of SVM kernels has outperformed all other approaches. The proposed model has achieved higher recognition accuracy in the detection of real-time driver drowsiness detection using eye aspect ratio and mouth open ratio features.

5. Conclusions

In this paper, a stacked ensemble model with various SVM kernels has been proposed with low computational complexity for driver drowsiness or fatigue detection. A dataset was derived using an Adaptive Thresholding method to train that classifier. Subsequently, the values obtained from EAR and MOR is saved and the stacked ensemble model is applied for classification. The proposed model has achieved the status of the driver with 100% of accuracy and also shown utmost performance in other metrics such as precision, recall and f-score. The mouth aspect ratio to count the yawns is also estimated and alerts the driver with drowsiness. So, proposed drowsiness detection system is comparatively better in detection of drowsiness in advance.

  References

[1] Dwivedi, K., Biswaranjan, K., Sethi, A. (2014). Drowsy driver detection using representation learning. 2014 IEEE International Advance Computing Conference (IACC), Gurgaon, pp. 995-999. https://doi.org/10.1109/IAdCC.2014.6779459

[2] Devi, M.S., Bajaj, P.R. (2008). Driver fatigue detection based on eye tracking. 2008 First International Conference on Emerging Trends in Engineering and Technology, Nagpur, Maharashtra, pp. 649-652. https://doi.org/10.1109/ICETET.2008.17

[3] Tabrizi, P.R., Zoroofi, R.A. (2008). Open/closed eye analysis for drowsiness detection. 008 First Workshops on Image Processing Theory, Tools and Applications, Sousse, pp. 1-7. https://doi.org/10.1109/IPTA.2008.4743785

[4] Wang, T., Shi, P. (2005). Yawning detection for determining driver drowsiness. Proceedings of 2005 IEEE International Workshop on VLSI Design and Video Technology, Suzhou, China, pp. 373-376. https://doi.org/10.1109/IWVDVT.2005.1504628

[5] Grace, R., Byrne, V.E., Bierman, D.M., Legrand, J.M. Davis, R.K., Staszewski, J.J., Carnahan, B. (1996). Introduction to the drowsy driver problem fundamental principles of a video-based drowsiness detection system. Traffic Saf.

[6] Assari, M.A., Rahmati, M. (2011). Driver drowsiness detection using face expression recognition. 2011 IEEE International Conference on Signal and Image Processing Applications (ICSIPA), Kuala Lumpur, pp. 337-341. https://doi.org/10.1109/ICSIPA.2011.6144162

[7] Hu, S., Zheng, G. (2009). Driver drowsiness detection with eyelid related parameters by Support Vector Machine. Expert Systems with Applications, 36(4): 7651-7658. https://doi.org/10.1016/j.eswa.2008.09.030

[8] Jadhav, S., Ghangale, R., Mundhe, N., Bhosale, P. (2016). Drowsy driver detection using representation learning and face detection technique. Imperial Journal of Interdisciplinary Research, 2(11): 2012-2015.

[9] Sahayadhas, A., Sundaraj, K., Murugappan, M. (2012). Detecting driver drowsiness based on sensors: A review. Sensors, 12(12): 16937-16953. https://doi.org/10.3390/s121216937

[10] Saini, V., Saini, R. (2014). Driver drowsiness detection system and techniques: A review. International Journal of Computer Science and Information Technology, 5(3): 4245-4249. 

[11] Picot, A., Charbonnier, S., Caplier, A. (2008). On-line automatic detection of driver drowsiness using a single electroencephalographic channel. 2008 30th Annual International Conference of the IEEE Engineering in Medicine and Biology Society, Vancouver, BC, pp. 3864-3867. https://doi.org/10.1109/iembs.2008.4650053

[12] Cech, J., Soukupova, T. (2016). Real-time eye blink detection using facial landmarks. Cent. Mach. Perception, Dep. Cybern. Fac. Electr. Eng. Czech Tech. Univ. Prague, 1-8. 

[13] Mehta, S., Dadhich, S., Gumber, S., Jadhav Bhatt, A. (2019). Real-time driver drowsiness detection system using eye aspect ratio and eye closure ratio. Proceedings of International Conference on Sustainable Computing in Science, Technology and Management (SUSCOM), Amity University Rajasthan, Jaipur, India, pp. 1333-1339. https://doi.org/10.2139/ssrn.3356401

[14] Flores, M.J., Armingol, J.M., de la Escalera, A. (2010). Real-time warning system for driver drowsiness detection using visual information. Journal of Intelligent & Robotic Systems, 59(2): 103-125. https://doi.org/10.1007/s10846-009-9391-1

[15] Bhoyar, M.A.M., Sawalkar, S.N. (2019). Implementation on visual analysis of eye state using image processing for driver fatigue detection. International Research Journal of Engineering and Technology (IRJET), 6(4): 4340-4346. 

[16] Maior, C.B.S., Moura, M.C., de Santana, J.M., do Nascimento, L.M., Macedo, J.B., Lins, I.D., Droguett, E.L. (2018). Real-time SVM classification for drowsiness detection using eye aspect ratio. Probabilistic Safety Assessment and Management PSAM.

[17] Phillips, P.J. (1999). Support vector machines applied to face recognition. Advances in Neural Information Processing Systems, 803-809.

[18] Ji, Y., Wang, S., Lu, Y., Wei, J., Zhao, Y. (2018). Eye and mouth state detection algorithm based on contour feature extraction. Journal of Electronic Imaging, 27(5): 051205. https://doi.org/10.1117/1.jei.27.5.051205

[19] Omidyeganeh, M., Javadtalab, A., Shirmohammadi, S. (2011). Intelligent driver drowsiness detection through fusion of yawning and eye closure. 2011 IEEE International Conference on Virtual Environments, Human-Computer Interfaces and Measurement Systems Proceedings, Ottawa, ON, pp. 1-6. https://doi.org/10.1109/VECIMS.2011.6053857

[20] Wu, J.D., Chen, T.R. (2008). Development of a drowsiness warning system based on the fuzzy logic images analysis. Expert Systems with Applications, 34(2): 1556-1561. https://doi.org/10.1016/j.eswa.2007.01.019

[21] Vural, E., Çetin, M., Erçil, A., Littlewort, G., Bartlett, M., Movellan, J. (2009). Machine learning systems for detecting driver drowsiness. In-Vehicle Corpus and Signal Processing for Driver Behavior, pp. 97-110. https://doi.org/10.1007/978-0-387-79582-9_8

[22] Alshaqaqi, B., Baquhaizel, A.S., Ouis, M.E.A., Boumehed, M., Ouamri, A., Keche, M. (2013). Driver drowsiness detection system. 2013 8th International Workshop on Systems, Signal Processing and their Applications (WoSSPA), Algiers, 2013, pp. 151-155. https://doi.org/10.1109/WoSSPA.2013.6602353

[23] Kishore, K.V.K., Kumar, K.H. (2010). Hybrid face recognition with locally discriminating projection. 2010 International Conference on Signal Acquisition and Processing, Bangalore, pp. 327-331. https://doi.org/10.1109/ICSAP.2010.68

[24] Jabbar, R., Al-Khalifa, K., Kharbeche, M., Alhajyaseen, W., Jafari, M., Jiang, S. (2018). Real-time driver drowsiness detection for android application using deep neural networks techniques. Procedia Computer Science, 130: 400-407. https://doi.org/10.1016/j.procs.2018.04.060

[25] Tayab Khan, M., Anwar, H., Ullah, F., Ur Rehman, A., Ullah, R., Iqbal, A., Lee, B.H., Kwak, K.S. (2019). Smart real-time video surveillance platform for drowsiness detection based on eyelid closure. Wireless Communications and Mobile Computing, 2019: 2036818. https://doi.org/10.1155/2019/2036818