# Driver Drowsiness Detection by Applying Deep Learning Techniques to Sequences of Images
## 5 Discussion
### Comparison with Systems of the State of the Art
\begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline
**Model** & \begin{tabular}{c} **Overall** \\ **Accuracy (Test)** \\ \end{tabular} & \begin{tabular}{c} **Awake Videos** \\ **Accuracy** \\ \end{tabular} & \begin{tabular}{c} **Low-Vigilant** \\ **Accuracy** \\ \end{tabular} & \begin{tabular}{c} **Drowy** \\ **Videos** \\ **Accuracy** \\ \end{tabular} & \
\begin{tabular}{c} **Methodology** \\ **Reference** \\ \end{tabular} &
\begin{tabular}{c} **Experimentation Notes** \\ **Experimentation Notes** \\ \end{tabular} \\ \hline Our approach: Alternative I & 0.55 & 0.60 & N/A & 0.45 & & & \\ Our approach: Alternative II & 0.63 & 0.93 & N/A & 0.35 & Videos & - & 5-fold cross-validation \\ \hline HM-LSTM network & 0.65 & 0.81 & 0.32 & 0.82 & & & \\ LSTM network & 0.61 & - & - & - & Videos & [22] & \\ Fully connected layers & 0.57 & - & - & - & & & 5-fold cross-validation \\ Human judgment & 0.58 & 0.63 & 0.45 & 0.65 & & & & \\ \hline
2-stream DNN & 0.63 & - & N/A & - & Frames & [23] & 5-fold cross-validation (152 sleep samples, 151 vigilant samples per fold) \\ CNN (LeNet) & 0.92 & - & N/A & - & & 151 vigilant samples per fold) \\ \hline CNN (5 conv. layers) & 0.69 & 0.44 & N/A & 0.90 & Frames & [36] & 5-fold cross-validation \\ \hline FaceNet + SVM & 0.90 & - & - & - & Frames & [37] & Train: 1000 samples for each class \\ FaceNet + KNN & 0.95 & - & - & - & - & Validation: 100 samples \\ \hline CNN (LeNet) & 0.96 & - & N/A & - & Frames & [38] & 28/60 participants \\ \hline CNN and LSTM & & & & & & & Dataset: 101,793 samples \\ (frame segment level) & 0.43 & - & - & - & Frames & [40] & 705 train, 305 test \\ \hline CNN and LSTM & & & & & & & & Dataset is relabeled with every frame \\ (minute segment level) & 0.55 & - & - & - & Video & & and minute as segment units using \\ \hline LSTM & 0.64 & 0.40 & N/A & 0.88 & Frames & [41] & A new dataset is created by merging data \\ CNN & 0.72 & 0.63 & N/A & 0.80 & & & of all participants 75% train, 25% test \\ \hline Deep Learning (LSTM) & 0.63 & 0.52 & N/A & 0.70 & Frames & [42] & 16/60 participants 74\% train, 26% test 10 \% to find the best-performed model, which is used for testing. Test 1591 frames \\ \hline \hline \end{tabular}
\end{table} 
Table 11: Comparison of results obtained by systems that predict fatigue over UTA-RLD dataset. In [36], they use the categories \"awake\" and \"drowsy\", like our system, leaving out the \"low-vigilant\" videos. In this case, the authors use around 100-120 images per recording. The model chosen for the fatigue detection task is a simple CNN created from scratch that combines five convolutional layers with a flatten layer and a dense layer. Although the global accuracy on the test images reaches 69%, this model cannot be considered for a real implementation on an ADAS because of the high rate of false positives (56% of the images tested). It might be noted that, according to the author's code, the random train/test split (80% train/20% test) of data was performed after extracting the images. Because of this, the accuracy might have been affected if frames extracted from the same video were used both in train and in test sets. Since every video is recorded under different conditions, the network could be learning to recognize the situation that is shown at a particular frame (person, angle, illumination), instead of recognizing the fatigue of the subject. In [38], the authors present two CNNs trained to classify individual frames and predict whether the driver is drowsy or awake. One of the CNNs is created from scratch with three convolutional layers and one fully connected layer, and one is based on the AlexNet architecture [7], where they apply transfer learning. The CNN created from scratch obtains slightly better results, reaching a notable 96% accuracy. To test the CNNs, they use videos from 28 out of the 60 subjects available at UTA-RLDD dataset, gathering around 55,000 frames.