王策 陳向曦 王超 蔡朝朝
關(guān)鍵詞: 疲勞駕駛監(jiān)測;表情識別;SSD;Python;PyTorch
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2023)10-0022-03
0引言
在互聯(lián)網(wǎng)時代,人臉表情識別已經(jīng)成為計算機視覺任務(wù)中的一個重要研究方向,不僅是個人情感的外在表現(xiàn),更是日常生活中人與人之間情感傳播與交流的重要方式。同時,自動表情識別技術(shù)的發(fā)展可以幫助計算機擁有對情緒的理解,在人機交互問題上能提供更有效的解決方法。
駕駛員在疲勞狀態(tài)下駕駛車輛是造成交通事故的重要原因之一[1]。2008年中國因疲勞駕駛導(dǎo)致的道路交通事故共2 568起,其中死亡1 353人,受傷3 129 人,造成的直接財產(chǎn)損失約5 738萬元[2]。研究駕駛員疲勞監(jiān)測方法,監(jiān)測駕駛員疲勞狀態(tài),在其疲勞時進行提醒或干預(yù),對于保護駕駛員及行人的安全有重大意義。
1研究現(xiàn)狀
雷凌俊等人[3]對三角波、阿爾法波和貝塔波作為腦電信號進行采集,并利用CNN算法對腦電數(shù)據(jù)進行識別,他們通過特定腦電圖波形的選擇,腦電圖信號的預(yù)處理,集中度和靜坐度的判別算法研究從而對駕駛員進行疲勞判定。
徐禮勝等人[4]通過基于短時心電信號的疲勞駕駛檢測算法提取的特征,并設(shè)計一種隨機森林分類器并基于這些特征進行分類,在疲勞駕駛監(jiān)測上具有良好的分類效果,平均準確率達到91%。
Wang Qingjun等人[5]通過傳感器采集的方向盤信號、轉(zhuǎn)角信號、呼吸信號等疲勞監(jiān)測信號相融合,提出異質(zhì)信號融合的疲勞駕駛監(jiān)測算法,最終使得算法具有良好效果。
呂秀麗等人[6]利用SSD網(wǎng)絡(luò)定位駕駛員的眼睛與嘴巴區(qū)域,并結(jié)合人臉68特征點等方法共同判定駕駛疲勞狀態(tài),在YawDD 數(shù)據(jù)集上的檢測準確率達97.2%。
2模型設(shè)計
2.1 數(shù)據(jù)集
本文采用從AI Studio下載的公開疲勞駕駛分類數(shù)據(jù)集,進行訓(xùn)練和測試共2914張圖像,單張大小為640×480的三通道圖像,樣本圖像如圖1所示。下載路徑為:https://aistudio.baidu.com/aistudio/datasetdetail/85880。該數(shù)據(jù)集被標注類別為四種open_eye、closed_eye、open_mouth、closed_mouth 分別表示眼睛的開閉和嘴巴的開閉,標注圖像如圖2所示。
2.2 SSD網(wǎng)絡(luò)
SSD網(wǎng)絡(luò)[7]是由Wei Liu等人提出的一種卷積神經(jīng)網(wǎng)絡(luò)目標檢測算法,它提供了一種多尺度特征圖預(yù)測分類和回歸的思想,精確度和速度都很高。其采用VGG16作為基礎(chǔ)模型,然后在VGG16的基礎(chǔ)上新增了卷積層來獲得更多的特征圖以用于檢測,如圖3 所示。
如圖3所示,本文使用SSD網(wǎng)絡(luò),通過VGG16和多卷積層對駕駛員圖片中的眼睛與嘴巴進行特征提取,并通過改進參數(shù)等方法調(diào)試網(wǎng)絡(luò),實現(xiàn)對數(shù)據(jù)集進行疲勞駕駛分類訓(xùn)練,來篩選預(yù)測結(jié)果。
2.4 疲勞駕駛判定方法
2.4.1 PERCLOS值
卡內(nèi)基梅隆研究所經(jīng)過反復(fù)實驗和論證,提出了度量疲勞/瞌睡的物理量PERCLOS (Percentage? of EyeIid CIosure over the PupiI, over Time, 簡稱PER?CLOS),它被定義為每分鐘眼部閉合程度超過某一閉值(70%、80%)的時間比例,其具體實現(xiàn)公式如下所示。
PERCLOS 值[8]具有三個最常見標準EM、P70 和P80用于確認眼睛的閉合狀態(tài),分別意味著瞳孔被遮擋比例為50%、70%、80%時,眼睛的閉合,本文采用P80標準。
2.4.2 嘴巴閉合狀態(tài)
司機在駕駛時的疲勞判定還可以從嘴部特征入手。文章通過計算每一幀閉合狀態(tài),確定嘴巴縱橫比。設(shè)定上下嘴唇閉合時,特征值為0,上下嘴唇完全張開時,特征值為1。當上下嘴唇張開時,其間距會變大,設(shè)定打哈欠時的特征值為G(G = 0.5)。當超過1 秒時間的嘴巴縱橫比特征值大于G時,就被認定為打哈欠行為。
2.5 模型性能測試
為測試模型的可靠性,體現(xiàn)該疲勞駕駛系統(tǒng)的效果,文章使用從AI Studio下載的公開疲勞駕駛分類數(shù)據(jù)集,對該模型的準確率(Accuracy) 進行計算。
TP(True Positive):分類器預(yù)測結(jié)果為正樣本,實際也為正樣本。
TN(True Negative);分類器預(yù)測結(jié)果為負樣本,實際為負樣本。
最終該模型通過測試集測試后,準確率達到了92.15%。驗證了該疲勞駕駛系統(tǒng)的有效性與可靠性。
3 系統(tǒng)實現(xiàn)
3.1 功能設(shè)計
本文疲勞駕駛監(jiān)測系統(tǒng)模塊結(jié)構(gòu)如圖4所示,主要有三個部分組成,即預(yù)處理模塊、檢測模塊、判斷模塊。預(yù)處理模塊主要是通過OpenCV工具進行數(shù)據(jù)的處理,將輸入數(shù)據(jù)調(diào)整為300×300的大小,并對輸入數(shù)據(jù)進行去均值處理;檢測模塊主要通過本文提出的SSD算法對輸入圖像的眼部、嘴部進行檢測;判斷模塊用于判斷駕駛員駕駛狀態(tài),即閉眼時間比例,張嘴時長進行判斷,最后得出當前駕駛員駕駛狀態(tài)。具體疲勞駕駛監(jiān)測流程圖如圖5所示。
3.2 軟件設(shè)計與測試
該系統(tǒng)軟件開發(fā)以Python 語言開發(fā),采用Py?Torch作為深度學(xué)習(xí)開發(fā)框架。首先,通過攝像頭讀取數(shù)據(jù),然后進行預(yù)處理并送入算法模型中進行分類檢查,最后計算PERCLOS值和打哈欠檢測,判斷疲勞駕駛狀態(tài)。使用OpenCV框架部署實現(xiàn)實時監(jiān)測,運行測試如圖6所示。
4總結(jié)
本文介紹了疲勞駕駛國內(nèi)外研究現(xiàn)狀,并成功搭建SSD網(wǎng)絡(luò)模型對疲勞駕駛進行識別,使用OpenCV 框架部署實現(xiàn)實時監(jiān)測。實現(xiàn)基于表情識別的疲勞駕駛監(jiān)測系統(tǒng)的設(shè)計,對疲勞駕駛監(jiān)測有不錯的效果。在設(shè)計過程中,還存在部分問題,比如SSD網(wǎng)絡(luò)中主干特征提取網(wǎng)絡(luò)VGG16可以換為更輕量級的網(wǎng)絡(luò),以及在復(fù)雜環(huán)境下,疲勞駕駛監(jiān)測的不穩(wěn)定性。希望將來可以實現(xiàn)更加穩(wěn)定、高效、輕量的系統(tǒng)。