Driver Drowsiness Detection EAR Metric & Vision Pipeline by Raman Tondro (رامان تندرو)
Computer Vision Architecture: Soukupová & Čech Eye Aspect Ratio (EAR) metric, consecutive frame hysteresis, and tiered automotive alarm escalation.
Edge AI · Computer Vision · Automotive Safety

Driver Drowsiness & Fatigue Vision Pipeline

An edge-optimized computer vision system safeguarding operators against fatigue-induced collisions. Extracts 468-point facial topology in real time, computing Eye Aspect Ratio (EAR) hysteresis and Mouth Aspect Ratio (MAR) to catch microsleeps before accidents occur.

Model Pipeline MediaPipe Face Mesh (468 3D Points)
Metrics Engine Soukupová & Čech Eye Aspect Ratio (EAR)
Inference Rate 45+ FPS (Jetson Nano / Intel i5)
Microsleep Latency < 650 ms alert trigger window
Alert Mechanism Auditory Alarm + Visual Hysteresis HUD
Lighting Robustness CLAHE contrast normalization

1. The Mathematics of Eye Aspect Ratio (EAR)

Traditional blink detection relied on heavy CNN classifiers running per-frame bounding boxes, which is computationally prohibitive on low-power vehicle hardware. In this architecture, 6 localized 3D ocular landmarks are extracted to compute the scalar aspect ratio:

# Soukupová and Čech EAR Equation Formulation
def calculate_ear(eye_landmarks):
    # Vertical euclidean distances
    A = np.linalg.norm(eye_landmarks[1] - eye_landmarks[5])
    B = np.linalg.norm(eye_landmarks[2] - eye_landmarks[4])
    # Horizontal euclidean distance
    C = np.linalg.norm(eye_landmarks[0] - eye_landmarks[3])
    
    # Eye Aspect Ratio calculation
    ear = (A + B) / (2.0 * C)
    return ear

2. Consecutive Frame Hysteresis (Filtering Blinks)

Normal involuntary blinks last between 100 ms and 250 ms ($3\text{--}7$ frames at 30 FPS). A microsleep event is defined when the eyelid remains closed past 500 ms ($N \ge 16$ consecutive frames where $\text{EAR} < \text{Threshold}$). An integrated state counter prevents false alarm fatigue while ensuring immediate escalation when genuine sleep is identified.

3. Key System Capabilities

Mouth Aspect Ratio (MAR) Yawn Analysis

Simultaneously monitors lip separation metrics to recognize yawning frequency as an early precursor to deep physical exhaustion.

Head Pose & Distraction Monitoring

Computes 3D pitch, yaw, and roll vectors using facial point projections to detect when a driver looks down at a phone or away from the roadway.

Night & Low-Light Adaptability

Employs Contrast Limited Adaptive Histogram Equalization (CLAHE) preprocessing, ensuring reliable tracking under infrared or weak cabin lighting.

Automotive Edge Ready

Engineered to run efficiently on single-board computers (Raspberry Pi 4, Jetson Orin Nano) without requiring dedicated desktop GPUs.

هوش مصنوعی لبه · بینایی ماشین · ایمنی خودرو

سامانه تشخیص خواب‌آلودگی راننده (Driver Drowsiness Detection)

یک سامانه بهینه‌سازی‌شده بینایی ماشین برای سخت‌افزارهای کم‌مصرف جهت پیشگیری از تصادفات جاده‌ای ناشی از خستگی. استخراج زنده ۴۶۸ نقطه هندسی چهره، محاسبه نسبت ابعادی چشم (EAR) و دهان (MAR) برای شناسایی خواب‌های کوتاه (Microsleep) پیش از وقوع حادثه.

سامانه تشخیص خستگی و خواب‌آلودگی راننده اثر رامان تندرو
معماری بینایی ماشین: محاسبه نسبت ابعادی چشم (EAR)، فیلتر هیسترزیس تفکیک پلک‌زدن از خواب کوتاه و فعال‌سازی آلارم‌های ایمنی خودرو.
مدل پایپ‌لاین چهره مدل ۴۶۸ نقطه‌ای MediaPipe Face Mesh
فرمول محاسباتی چشم معیار هندسی Eye Aspect Ratio (EAR)
نرخ فریم پردازش بیش از ۴۵ فریم بر ثانیه (تراشه‌های پردازش لبه)
زمان تشخیص خواب کوتاه کمتر از ۶۵۰ میلی‌ثانیه تا فعال‌سازی هشدار
سیستم آلارم بوق صوتی پرقدرت + لایه گرافیکی هشدار قرمز
سازگاری با نور کم نرمال‌سازی کنتراست تطبیقی با فیلتر CLAHE

۱. مبانی ریاضی نسبت ابعادی چشم (EAR)

تشخیص خستگی با مدل‌های سنگین شبکه‌های عصبی پیچشی (CNN) برای پردازنده‌های تعبیه‌شده داخل خودرو بیش از حد سنگین است. در این روش، با استفاده از ۶ لندمارک هندسی مشخص در اطراف هر چشم، یک نسبت اسکالر بسیار سبک محاسبه می‌شود:

# محاسبه نسبت ابعادی چشم بر اساس فاصله اقلیدسی لندمارک‌ها
def calculate_ear(eye_landmarks):
    # فواصل عمودی پلک بالا و پایین
    A = np.linalg.norm(eye_landmarks[1] - eye_landmarks[5])
    B = np.linalg.norm(eye_landmarks[2] - eye_landmarks[4])
    # فاصله افقی گوشه‌های داخلی و خارجی چشم
    C = np.linalg.norm(eye_landmarks[0] - eye_landmarks[3])
    
    # فرمول استاندارد نسبت ابعادی چشم
    ear = (A + B) / (2.0 * C)
    return ear

۲. تفکیک پلک‌زدن طبیعی از خواب‌آلودگی با فیلتر هیسترزیس

پلک‌زدن‌های طبیعی غیرارادی انسان بین ۱۰۰ تا ۲۵۰ میلی‌ثانیه به طول می‌انجامند. سامانه با پیاده‌سازی یک بافر فریم متوالی، تنها زمانی آلارم اضطراری را به صدا درمی‌آورد که مقدار EAR بیش از ۱۶ فریم متوالی (حدود ۰.۵ ثانیه) زیر آستانه بحرانی باقی بماند؛ این کار مانع از هشدارهای آزاردهنده کاذب می‌شود.

۳. قابلیت‌های کلیدی سیستم

تشخیص خمیازه با معیار MAR

پایش پیوسته نسبت بازشدگی دهان برای تشخیص تکرار خمیازه به عنوان نشانگر اولیه افت سطح هوشیاری راننده.

تخمین زاویه سر و حواس‌پرتی

محاسبه بردارهای سه‌بعدی دوران سر (Roll, Pitch, Yaw) جهت تشخیص نگاه به تلفن همراه یا انحراف دید از جاده.

عملکرد پایدار در تاریکی کابین

به‌کارگیری پیش‌پردازش تطبیقی کنتراست تصویر (CLAHE) جهت تضمین پایداری لندمارک‌ها در شرایط نوری ضعیف یا دوربین‌های فروسرخ.

آماده برای بردهای پردازش لبه (Edge)

طراحی بهینه با مصرف پایین حافظه و پردازنده، قابل اجرا روی بردهای صنعتی رزبری‌پای ۴ و انویدیا جتسُن بدون نیاز به کارت گرافیک مجزا.