加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于Dlib的疲勞檢測系統(tǒng)-EAR、MAR和HPE算法判斷人臉特征

08/27 13:18
2232
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實物圖
  • 方案介紹
    • 1、設(shè)計背景及要求
    • 2、系統(tǒng)分析
    • 3、系統(tǒng)設(shè)計
    • 4、系統(tǒng)實現(xiàn)與調(diào)試
    • 5、系統(tǒng)實現(xiàn)與調(diào)試
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

需要源碼的朋友可以私信我

基于Dlib的疲勞檢測系統(tǒng)

1、設(shè)計背景及要求

隨著經(jīng)濟(jì)的飛速發(fā)展,貨運(yùn)行業(yè)的發(fā)展趨勢愈加迅猛,貨車駕駛員24h都留在車上的現(xiàn)象已成為行業(yè)常態(tài)。據(jù)國家統(tǒng)計局?jǐn)?shù)據(jù)顯示,近幾年的特大事故中,有超40%的事故是由于駕駛員疲勞駕駛造成的。為了減少疲勞駕駛導(dǎo)致的交通安全問題,本系統(tǒng)旨在設(shè)計一款可以自動實時檢測駕駛員是否疲勞駕駛并發(fā)出警報的系統(tǒng)。

設(shè)計要求

(1) 設(shè)計并實現(xiàn)一個軟件界面,能夠?qū)崟r獲取人臉視頻;
(2) 使用OpenCV或Dlib庫實現(xiàn)人臉檢測和特征點(diǎn)標(biāo)定;
(3) 定義并提取與疲勞駕駛相關(guān)的人臉特征;
(4) 合理設(shè)計算法,實現(xiàn)駕駛員疲勞狀態(tài)檢測,檢測到疲勞時發(fā)出預(yù)警;
(5) 測試系統(tǒng)性能,并分析

2、系統(tǒng)分析

通過攝像頭實時采集駕駛員的行為表情狀態(tài),判斷駕駛員的頭部姿態(tài),眼睛閉合頻率和單位時間打哈欠的次數(shù)來判斷駕駛員的疲勞程度。

3、系統(tǒng)設(shè)計

3.1功能結(jié)構(gòu)圖

功能結(jié)構(gòu)圖設(shè)計:
在這里插入圖片描述
本系統(tǒng)通過收集人臉朝向、人臉位置、瞳孔朝向、眼睛開合度、眨眼頻率等數(shù)據(jù),提取駕駛員面部68個特征點(diǎn)及其坐標(biāo),準(zhǔn)確定位駕駛員人臉的位置,并利用眼部的12個特征點(diǎn)計算眼部長寬比EAR,根據(jù)嘴部的6個特征點(diǎn)計算嘴巴的MAR,利用其他坐標(biāo)結(jié)合HPE算法計算頭部轉(zhuǎn)動的歐拉角。將這些數(shù)據(jù)分別與對應(yīng)的閾值比較,從而統(tǒng)計出駕駛員眨眼、打哈欠和點(diǎn)頭的次數(shù)。通過對駕駛員眨眼、打哈欠、點(diǎn)頭次數(shù)的統(tǒng)計,可實時判斷駕駛員的注意力集中程度,分析駕駛員是否疲勞駕駛,并及時作出安全提示。

3.2基于EAR、MAR和HPE算法的疲勞檢測

3.2.1基于EAR算法的眨眼檢測

當(dāng)人眼睜開時,EAR在某個值域范圍內(nèi)波動,當(dāng)人眼閉合時,EAR迅速下降,理論上接近于0。當(dāng)EAR低于某個閾值時,眼睛處于閉合狀態(tài);當(dāng)EAR由某個值迅速下降至小于該閾值,再迅速上升至大于該閾值,則判斷為一次眨眼。為檢測眨眼次數(shù),需要設(shè)置同一次眨眼的連續(xù)幀數(shù)。眨眼速度較快,一般1~3幀即可完成眨眼動作。
在這里插入圖片描述
在這里插入圖片描述
 Dlib庫68個特征點(diǎn)模型

3.2.2基于MAR算法的哈欠檢測

基于MAR算法的哈欠檢測,利用Dlib提取嘴部的6個特征點(diǎn),通過這6個特征點(diǎn)的坐標(biāo)(51、59、53、57的縱坐標(biāo)和49、55的橫坐標(biāo))來計算打哈欠時嘴巴的張開程度。當(dāng)一個人說話時,點(diǎn)51、59、53、57的縱坐標(biāo)差值增大,從而使MAR值迅速增大,反之,當(dāng)一個人閉上嘴巴時,MAR值迅速減小。
在這里插入圖片描述

3.3.3基于HPE算法的點(diǎn)頭檢測

HPE(Head Pose Estimation, HPE)算法步驟 :2D人臉關(guān)鍵點(diǎn)檢測,3D人臉模型匹配,求解 3D點(diǎn)和對應(yīng)2D點(diǎn)的轉(zhuǎn)換關(guān)系,根據(jù)旋轉(zhuǎn)矩陣求解歐拉角。檢測過程中需要使用世界坐標(biāo)系(UVW)、相機(jī)坐標(biāo)系(XYZ)、圖像中心坐標(biāo)系(uv)和像素坐標(biāo)系(xy)。

世界坐標(biāo)系轉(zhuǎn)換到相機(jī)坐標(biāo)系:
在這里插入圖片描述
相機(jī)坐標(biāo)系轉(zhuǎn)換到像素坐標(biāo)系:
在這里插入圖片描述
像素坐標(biāo)系與世界坐標(biāo)系的關(guān)系為:
在這里插入圖片描述
圖像中心坐標(biāo)系轉(zhuǎn)換到像素坐標(biāo)系:
在這里插入圖片描述

4、系統(tǒng)實現(xiàn)與調(diào)試

4.1初步實現(xiàn)

系統(tǒng)的關(guān)鍵就是對駕駛員的面部進(jìn)行識別,然后計算并統(tǒng)計出疲勞值,通過顯示屏把數(shù)據(jù)顯示在屏幕上給駕駛員看,如果駕駛員被判定為疲勞駕駛或者危險駕駛系統(tǒng)就會立即進(jìn)行語音提醒。想要成功獲得人臉面部的68個特征點(diǎn),就必須先檢測到人臉的存在。調(diào)用Dlib中的正向人臉檢測器API,如果沒有檢測到人臉就會在屏幕上顯示“No Face”,控制臺輸出“沒有檢測到人臉”,這里用手遮住臉、臉轉(zhuǎn)向左右兩邊的幅度太大、人臉不在攝像頭的攝像范圍里,人臉距離攝像頭太遠(yuǎn)都算沒有檢測到人臉。
在這里插入圖片描述
從視頻流進(jìn)行循環(huán),讀取圖片,并對圖片做維度擴(kuò)大,并進(jìn)灰度化,使用dlib獲得臉部位置以及臉部特征位置,將臉部特征信息轉(zhuǎn)換為數(shù)組array的格式,從而提取左眼和右眼坐標(biāo)。構(gòu)造函數(shù)計算左右眼的EAR值,使用平均值作為最終的EAR。類似的,獲得嘴部MAR值。分別計算左眼、右眼和嘴部的評分求平均作為最終的評分,如果小于閾值,則加1,如果連續(xù)3次都小于閾值,則表示進(jìn)行了一次眨眼活動;如果嘴部評分大于閾值,則表示一次打哈欠。
在這里插入圖片描述
在這里插入圖片描述

4.2具體實現(xiàn)過程

在這里插入圖片描述
基于上述程序基礎(chǔ),添加可視化界面,增加系統(tǒng)交互性。利用wx進(jìn)行界面搭建,設(shè)置視頻源,可選擇攝像頭或視頻文件導(dǎo)入,提供實時檢測和文件檢測功能;添加疲勞檢測參數(shù)設(shè)置,可自行勾選檢測參數(shù)以及疲勞時間調(diào)整,檢測條件更加靈活;狀態(tài)輸出欄可查看歷史狀態(tài),追溯用戶歷史數(shù)據(jù),為事故調(diào)查提供條件。如圖7為 UI界面。

后添加點(diǎn)頭檢測增加系統(tǒng)精度,本系統(tǒng)根據(jù)計算歐拉角判斷駕駛員的點(diǎn)頭次數(shù),這里涉及歐拉角的三個角,分別是 Pitch(繞X軸旋轉(zhuǎn)),Yaw(繞Y軸旋轉(zhuǎn)),Roll(繞Z軸旋轉(zhuǎn)),一個物體對于相機(jī)的姿態(tài)可以用旋轉(zhuǎn)矩陣(R)和平移矩陣(T)來表示。人臉2D與3D之間的仿射變換矩陣包含了頭部旋轉(zhuǎn)和平移信息,可以直接調(diào)用OpenCV的solvePnp()函數(shù)求解得出旋轉(zhuǎn)和平移向量,最終利用得到的旋轉(zhuǎn)矩陣來求解歐拉角。當(dāng)在某一個時間段10s內(nèi),駕駛員的|Pitch|≥20或者|Roll|≥20的時間占比超過0.3時,則判定駕駛員處于疲勞狀態(tài)。
在這里插入圖片描述

5、系統(tǒng)實現(xiàn)與調(diào)試

本系統(tǒng)采用人臉追蹤和圖像處理相結(jié)合的方式采集面部圖像處理疲勞信息,利用面部疲勞特征判斷疲勞狀態(tài),以采集到的人臉圖像信息作為輸入,通過檢測算法輸出判斷結(jié)果,判斷為疲勞狀態(tài)后,系統(tǒng)發(fā)出警告。
在這里插入圖片描述
本系統(tǒng)通過Dlib庫中的人臉識別和dat模型中的68個關(guān)鍵點(diǎn),結(jié)合EAR、MAR和HPE算法,判斷駕駛員是否眨眼、打哈欠、點(diǎn)頭,不僅實現(xiàn)了檢測指標(biāo)多樣化,還實現(xiàn)了實時檢測駕駛員疲勞狀態(tài)的目的,可用于貨車、汽車、出租車等機(jī)動車輛,為駕駛員的生命安全增加一份保障。本系統(tǒng)的不足之處在于當(dāng)駕駛員面部有部分遮擋時就無法準(zhǔn)確判斷駕駛員是否處于疲勞駕駛狀態(tài),只會發(fā)出提示,提醒駕駛員“您已脫離攝像范圍”。因此,下一步的工作重點(diǎn)是如何解決在有遮擋情況下也能正確識別駕駛員精神狀態(tài)的問題。

博客主頁:https://blog.csdn.net/weixin_51141489,需要源碼或相關(guān)資料實物的友友請關(guān)注、點(diǎn)贊,私信吧!

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
SN74HC14DRG3 1 Texas Instruments 6-ch, 2-V to 6-V inverters with Schmitt-Trigger inputs 14-SOIC -40 to 85

ECAD模型

下載ECAD模型
$0.51 查看
KSZ9031MNXIC-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, QCC64

ECAD模型

下載ECAD模型
$4.17 查看
DSC1001CI5-019.2000 1 Microchip Technology Inc OSCILLATOR MEMS 19.2MHZ CMOS SMD
$1.74 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜