基于OpenCV的實現(xiàn)疲勞駕駛檢測
點(diǎn)擊上方“AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達(dá)
該系統(tǒng)可以檢測一個人在開車時是否困倦,如果有的話,可以通過使用語音消息實時提醒他。該系統(tǒng)使用網(wǎng)絡(luò)攝像頭和電話攝像頭進(jìn)行實時數(shù)據(jù)傳輸。

01.研究目的
根據(jù)國家公路交通安全管理局的數(shù)據(jù),每年均涉及疲勞駕駛事故中導(dǎo)致超過1,550人死亡和71,000人受傷,但是實際數(shù)字可能要高得多[1]。因此,為了避免這類事故的發(fā)生,我們制作了這個系統(tǒng)。它通過檢查人的眼睛是否閉合或正在打哈欠來預(yù)測眼睛和嘴巴的標(biāo)志,從而確定一個人是否正處于疲勞駕駛。
02.主要內(nèi)容
該系統(tǒng)的工作可以分為兩個部分:
1. 檢測或定位面部。
2. 預(yù)測檢測到的面部中重要區(qū)域的地標(biāo)。
一旦預(yù)測出結(jié)果,我們僅使用眼睛地標(biāo)和嘴部地標(biāo)來確定人的眼睛長寬比(EAR)和嘴部長寬比(MAR),以檢查人是否困倦。EAR和MAR的計算如下所示:
from scipy.spatial import distance as distdef eye_aspect_ratio(eye):# Vertical eye landmarksA = dist.euclidean(eye[1], eye[5])B = dist.euclidean(eye[2], eye[4])# Horizontal eye landmarksC = dist.euclidean(eye[0], eye[3])# The EAR EquationEAR = (A + B) / (2.0 * C)return EARdef mouth_aspect_ratio(mouth):A = dist.euclidean(mouth[13], mouth[19])B = dist.euclidean(mouth[14], mouth[18])C = dist.euclidean(mouth[15], mouth[17])MAR = (A + B + C) / 3.0return MAR
現(xiàn)在,既然有了代碼,讓我們了解一下代碼是如何工作的:
dlib庫內(nèi)部的預(yù)訓(xùn)練面部界標(biāo)檢測器用于估計映射到面部面部結(jié)構(gòu)的68-(x,y)坐標(biāo)的位置[2]。這些68-(x,y)坐標(biāo)表示臉部的重要區(qū)域,例如嘴巴,左眉,右眉,左眼,右眼,鼻子和下巴。其中,我們只需要左眼,右眼和嘴巴的(x,y)坐標(biāo):
# Grab the indexes of the facial landamarks for the left and right eye respectively(lstart, lend) = face_utils.FACIAL_LANDMARKS_IDXS["left_eye"](rstart, rend) = face_utils.FACIAL_LANDMARKS_IDXS["right_eye"](mstart, mend) = face_utils.FACIAL_LANDMARKS_IDXS["mouth"]
現(xiàn)在,每只眼睛都由一組6-(x,y)坐標(biāo)表示,該坐標(biāo)從眼睛的左上角開始(就像您在看那個人一樣),然后圍繞該區(qū)域的其余部分順時針旋轉(zhuǎn)[3]。:

左上:當(dāng)眼睛睜開時,眼睛界標(biāo)的可視化。右上:閉上眼睛時的眼睛地標(biāo)。底部:繪制隨時間變化的眼睛縱橫比。眼睛縱橫比的下降表示眨眼[3](Soukupová和?ech的圖1)。[4]
基于論文Real-Time Eye Blink Detection using Facial Landmarks[5],我們可以得出一個反映這種關(guān)系的方程,稱為眼睛縱橫比(EAR):

眼睛縱橫比(EAR)公式。
使用這個概念,我們計算了嘴長寬比:

用68-(x,y)坐標(biāo)表示人臉
正如我們看到的,嘴由一組20-(x,y)坐標(biāo)表示。因此,我們已使用坐標(biāo)62、64、66和68來計算兩者之間的距離,方法與EAR計算相同。
結(jié)果

在人員困倦或打哈欠時發(fā)出警報
另外,為了保留證據(jù),我們保存了讓人昏昏欲睡的框架。

框架存儲在單獨(dú)的文件夾中作為證明

該圖顯示了EAR和MAR隨時間的變化
源代碼的GitHub鏈接可在此處獲得:https://github.com/fear-the-lord/Drowsiness-Detection
03.參考文獻(xiàn)
下載1:OpenCV黑魔法
在「AI算法與圖像處理」公眾號后臺回復(fù):OpenCV黑魔法,即可下載小編精心編寫整理的計算機(jī)視覺趣味實戰(zhàn)教程
下載2 CVPR2020 在「AI算法與圖像處理」公眾號后臺回復(fù):CVPR2020,即可下載1467篇CVPR?2020論文 個人微信(如果沒有備注不拉群!) 請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱
覺得有趣就點(diǎn)亮在看吧


