AN INTELLIGENT REAL-TIME DRIVER DROWSINESS DETECTION FRAMEWORK USING EYE CLOSURE, YAWNING, AND HEAD POSE ANALYSIS

Authors

  • Shaman Ali Author
  • Syed Muzammil Hussain Author
  • Muskan Laghari Author
  • Sikandar Ali Bughio Author
  • Sajjad Ahmed Author
  • Zoya Naz Author

Keywords:

driver drowsiness detection; eye aspect ratio; PERCLOS; yawning detection; head-pose estimation; temporal fusion; driver monitoring system; real-time computer vision

Abstract

Drowsy driving remains a persistent cause of road crashes, and camera-based monitoring is attractive because it needs no contact with the driver. Many recent vision systems report high accuracy for single cues such as eye state, yet they often decide from individual frames, rely on fixed thresholds, or are evaluated on image-level splits in which the same person appears in training and test data. This study proposes a lightweight, temporally aware framework that combines eye closure, yawning and head pose into one interpretable drowsiness score and maps it to four progressive alert levels. Eye aspect ratio (EAR), inner-lip mouth aspect ratio (MAR) and perspective-n-point head pose are computed from a 478-point face mesh; each cue is converted into bounded evidence over time using blink-filtered PERCLOS and closure run-length, duration-constrained yawn events, and sustained pitch deviation with nod counting; the evidence streams are fused by a convex weighted sum (weights 0.55, 0.15 and 0.30), gated by landmark quality, and passed to a decision layer with persistence, hysteresis and a 2.0-s microsleep override. We implemented the framework in Python and evaluated it in three ways. On eight unseen subjects of the MRL Eye dataset (17,983 images, subject-independent split), the eye-state component reached an accuracy of 0.934, F1-score of 0.926, MCC of 0.871 and ROC-AUC of 0.987, with the largest losses for eyewear (F1 0.875) and strong reflections (F1 0.758). An automated simulation test confirmed that blinks and speech-like mouth openings did not trigger alerts while sustained drowsiness escalated to the critical level. In two logged live sessions (about 10 minutes), none of the 41 blink-length closures (shorter than 0.5 s) triggered the microsleep override; all 22 closures of 2.0 s or longer triggered the critical warning, and the complete pipeline ran at 54.7–86.2 frames per second on a laptop CPU. The results support the feasibility of a transparent, CPU-only multi-cue design and identify detection latency for gradual drowsiness as the main parameter to tune in driving-data validation.

Downloads

Published

2026-09-28