Source-linked AI summary

Real-time Driver Drowsiness Detection for Android Application Using Deep Neural Networks Techniques

Rateb Jabbar, Khalifa Al-Khalifa, Mohamed Kharbeche, Wael Alhajyaseen, Mohsen Jafari, Shan Jiang

arXiv:1811.01627v1cs.CVcs.HC

TL;DR

Driver drowsiness detection is difficult to deploy on embedded systems because deep-learning models are large and computationally complex. This paper uses facial landmarks with a multilayer perceptron to build a smaller Android-oriented model, achieving 81% accuracy.

  • Problem

    Deep-learning drowsiness detectors are often too large and computationally complex for practical embedded-system deployment.

  • Method

    The system extracts facial landmarks from images and classifies the driver’s state using a multilayer perceptron designed for Android embedded systems.

  • Results

    81% accuracy was achieved, with a small model intended for embedded-system use.

  • Takeaways & Limitations

    The small model can be integrated into Android mobile applications and advanced driver-assistance systems.

Abstract

from arXiv · show

Road crashes and related forms of accidents are a common cause of injury and death among the human population. According to 2015 data from the World Health Organization, road traffic injuries resulted in approximately 1.25 million deaths worldwide, i.e. approximately every 25 seconds an individual will experience a fatal crash. While the cost of traffic accidents in Europe is estimated at around 160 billion Euros, driver drowsiness accounts for approximately 100,000 accidents per year in the United States alone as reported by The American National Highway Traffic Safety Administration (NHTSA). In this paper, a novel approach towards real-time drowsiness detection is proposed. This approach is based on a deep learning method that can be implemented on Android applications with high accuracy. The main contribution of this work is the compression of heavy baseline model to a lightweight model. Moreover, minimal network structure is designed based on facial landmark key point detection to recognize whether the driver is drowsy. The proposed model is able to achieve an accuracy of more than 80%. Keywords: Driver Monitoring System; Drowsiness Detection; Deep Learning; Real-time Deep Neural Network; Android.

2. Literature review

The literature review groups drowsiness-detection methods into driving-pattern, physiological-sensor, and computer-vision approaches. It also highlights CNN performance alongside the burden of deploying large, computationally complex models on embedded systems.

  • Driving-pattern methods calculate lateral or lane-position deviation or steering-wheel movement, but depend heavily on vehicle characteristics, road conditions, and driving skills.
  • Physiological-sensor techniques use EOG, ECG, and EEG data, with theta and delta signals spiking and alpha signals rising slightly during drowsiness.
  • Computer-vision methods extract facial features using gaze, facial expression, yawning duration, head movement, and eye closure.
  • 78% accuracy was achieved by adapted shallow CNNs for detecting drowsy drivers.
  • CNN-based drowsiness detectors offer strong performance, but embedded deployment remains burdensome because models are generally large and computationally complex.

3. Proposed solution

The proposed solution uses a five-step pipeline that extracts facial landmark coordinates from NTHU videos, trains a three-hidden-layer MLP classifier, and saves the model for mobile use. MLP training iteratively learns model parameters from input-output data while correcting prediction errors.

  • Model training: MLP training learns the parameter set theta = W2, b2, W1, b1 through iterations using training data with related input and output vectors.The process seeks to minimize errors until the required input-output mapping is achieved.
  • Dataset and preprocessing: The pipeline extracts videos from the NTHU Drowsy Driver Detection Dataset and uses 18 subjects for training and 4 for evaluation.Videos are sampled at 30 frames per second, with every video frame extracted as an image.
  • Dataset and preprocessing: Dlib18 extracts 68 facial landmark (x, y)-coordinates from each image to map facial structures.These landmark coordinates serve as the algorithm’s input.
  • Model training: A Multilayer Perceptron Classifier with three hidden layers is trained on the extracted landmark coordinates.Training generates predictions, corrects errors, and continues until the desired accuracy level is reached.
  • Mobile deployment: The trained model determines whether a driver is drowsy from facial landmarks and is saved as a file for use in the mobile application.This final step enables deployment of the trained algorithm in the mobile application.

Algorithm 1: Real-Time Driver Drowsiness Detection

Algorithm 1 takes facial landmark positions and labels as input and produces a learned multilayer perceptron (MLP) model.

  • Facial landmark positions are provided as inputs to the algorithm.
  • Labels are included alongside facial landmark positions as algorithm inputs.
  • The algorithm outputs a learned MLP model.

1. Loading Data · 2. Using of Min-Max Scaler algorithm to change the range between 0 and 1 · 3. Defining the neural network model

The supplied passages describe a neural network using facial-landmark inputs, rectifier-based layers, dropout, and softmax outputs. In the Android implementation, Dlib extracts landmarks, the trained model evaluates drowsiness, and the application provides visual and audio alerts.

  • 3. Defining the neural network model: The first fully connected layer uses a rectifier function, 67*2 =136 input nodes, and 100 neurons.
  • 3. Defining the neural network model: Dropout layers are inserted to prevent over-fitting, with the dropout rate set to 20%.The architecture includes multiple dropout stages.
  • 3. Defining the neural network model: The first hidden layer uses a rectifier function and 10 neurons.
  • 3. Defining the neural network model: The second hidden layer uses a rectifier function and 10 neurons.
  • 3. Defining the neural network model: The third hidden layer uses a rectifier function and 10 neurons.
  • 3. Defining the neural network model: A softmax function produces output class label probabilities using 2 neurons.
  • 3.4. Proposed architecture of application implemented in Android: The Android camera captures facial pictures and transfers them to the Dlib Library through the Java Native Interface between Java and C++.
  • 3.4. Proposed architecture of application implemented in Android: Dlib extracts facial landmarks, the trained model evaluates driver drowsiness, and the application signals detected drowsiness with visual and audio messages.

4. Computational results

The system was evaluated on 200 videos across five simulated driving scenarios and achieved 81% accuracy. On GTX 1080 hardware, execution took 43.4ms, including approximately 7.0fps end-to-end alignment and face detection.

  • Evaluation setup: 200 videos covering sleepy and non-sleepy states across five simulated driving scenarios were used for evaluation.Scenarios included glasses, sunglasses, no glasses, night with glasses, and night without glasses.
  • Overall performance: 81% accuracy was achieved after fitting the neural network with facial landmark coordinates.Evaluation used a computer with an Intel Core i7-7500U, 8 GB RAM, and Intel GMA HD 2 GB.
  • Runtime performance: 43.4ms execution time was measured on GTX 1080, including approximately 7.0fps end-to-end alignment and face detection.The reported timing concerns running the facial-landmark-based model.
  • Scenario-dependent performance: Eyes were critical for drowsiness classification, while sunglasses reduced model efficiency because the algorithm could not detect the driver’s eyes.Luminosity was also identified as a performance factor, with the error rate increasing by 6% as luminosity rose.
Loading 1811.01627v1…