情境動畫+瀏覽器鏡頭試用|啟用後影像只在本機分析,不保存或上傳,也不代表安全或醫療認證
Computer vision research prototype

Driver Drowsiness Detection

結合臉部特徵、個人化校正與時間加權指標,示範疲勞、長時間閉眼、持續哈欠及離路注意力警示。專案著重可測試的狀態邏輯,而非只在每一幀套用固定門檻。

查看原始碼 查看測試說明
5+監測訊號與時間指標
6獨立測試模組
CIGitHub Actions 自動測試
MONITORING
T+00:42
EAR0.31
MAR0.42
MAR OPEN0.00s
PERCLOS0.12
HEAD P/Y2° / 4°
Signals

不只是一個 EAR 門檻

原型把幾何量測、時間視窗、個人基準與事件狀態分開處理,讓核心邏輯不依賴攝影機 FPS,也能在沒有鏡頭的環境下測試。

01

EAR

以雙眼六點幾何比例估計閉眼狀態,並在完整「閉眼 → 睜眼」週期後計算一次眨眼。

02

MAR + 持續時間

嘴部張開比例超過個人門檻後才開始累時;持續達 0.8 秒才成立哈欠,單一高 MAR 影格只顯示待確認。

03

PERCLOS

在滑動視窗中,以有效觀測秒數計算閉眼時間比例;漏偵測期間不會被當作正常或閉眼。

04

Head Pose

透過六個臉部特徵點與 solvePnP 估計粗略 pitch/yaw,作為離路注意力代理訊號。

05

Personal Calibration

啟動時以中位數建立個人的 EAR、MAR 與正面角度基準,降低固定門檻造成的個體差異。

06

Tiered Alerts

依閉眼時間區分 MICROSLEEP、SLEEP 與 UNRESPONSIVE,並加入警示冷卻避免每幀重播。

Architecture

從影像到可驗證事件

Python 主程式使用 Dlib;免安裝的網頁試用改用 MediaPipe 瀏覽器模型。兩者共用相同的時間判定概念,但量測值不可直接互換。

STEP 01Camera frame本機攝影機影像
STEP 02Face landmarksDlib 68 點/MediaPipe Web
STEP 03MetricsEAR、MAR、Head pose
STEP 04Temporal statePERCLOS、持續時間、校正
STEP 05Alert + log分級狀態、音效、CSV
Engineering evidence

可從 repository 核對的成果

下列內容都有對應原始碼、測試或 GitHub Actions 紀錄;本頁不宣稱尚未完成的道路安全準確率。

主要貢獻

重構原始研究原型把單檔程式拆分為監測、幾何、狀態、時間指標、頭部姿態與紀錄模組。
修正時間與事件邏輯眨眼只在重新睜眼時成立,長時間閉眼使用單調時鐘,而非假設固定 FPS。
加入測試與 CI無攝影機、Dlib 模型或個人影像,也能驗證核心數學與狀態邊界。
加入研究紀錄與隱私邊界量測輸出為本機 CSV;截圖與個人影像預設排除於版本控制。
Safety boundary

研究展示,不是車用安全產品

  • 尚未使用真實道路、多使用者與不同光線條件的標註資料驗證。
  • 目前頭部方向是離路注意力的代理訊號,不是精確眼球視線追蹤。
  • Dlib 68 點模型及其訓練資料具有商業使用限制,正式產品需要重新選型。
  • 要投入道路使用,仍需評估 precision、recall、每小時誤報、警示延遲、夜間及遮擋表現。