董小明 李昌樂 遲志誠 陳一凡
摘 要:提出了基于駕駛員臉部及周圍信息的駕駛員狀態(tài)檢測方法。文章通過實車攝像頭采集了駕駛員駕駛狀態(tài)視頻數(shù)據(jù),利用Dlib和OpenCV庫對采集的駕駛員圖像進行臉部檢測,基于駕駛員臉部數(shù)據(jù)建立了深度學習數(shù)據(jù)集,然后基于該數(shù)據(jù)集設(shè)計了一種卷積神經(jīng)網(wǎng)絡(luò)模型FaceNet,利用PyTorch深度學習框架在數(shù)據(jù)集上對模型進行訓練,最終得到了有較高準確率的駕駛員狀態(tài)檢測模型,其可識別抽煙、睡覺、左手打電話和右手打電話四種駕駛員狀態(tài)。
關(guān)鍵詞:安全駕駛;駕駛員狀態(tài);卷積神經(jīng)網(wǎng)絡(luò)
中圖分類號:U471 ?文獻標識碼:A? 文章編號:1671-7988(2020)03-99-04
前言
在汽車智能化的發(fā)展中,駕駛員狀態(tài)的智能檢測在安全駕駛領(lǐng)域也越來越重要。據(jù)國家統(tǒng)計局資料顯示,在2016年中國發(fā)生交通事故中由駕駛員人為過失導致的交通事故占所有交通事故的90%以上。駕駛員危險駕駛和疲勞駕駛等不規(guī)范駕駛行為直接或者間接導致交通事故的發(fā)生。
通過攝像頭獲取駕駛員駕駛狀態(tài)的計算機視覺方法是一種有效的識別技術(shù),深度學習算法可以大大提高駕駛行為識別的精度。但傳統(tǒng)的方法是基于整個采集的圖像作為深度學習算法的輸入,而駕駛員狀態(tài)主要集中在臉部及周圍信息,所以傳統(tǒng)方法的模型學習到的信息不集中,且模型參數(shù)較大,本文基于此提出了駕駛員臉部及周圍信息的駕駛員狀態(tài)檢測方法。
1 人臉檢測
1.1 算法設(shè)計
本文首先通過實車攝像頭采集了駕駛員駕駛狀態(tài)視頻數(shù)據(jù),由于采集的圖像中駕駛員信息主要集中在駕駛員臉部及周圍,所以利用Dlib和OpenCV庫對采集的駕駛員圖像進行臉部檢測,從而獲得駕駛員臉部圖像數(shù)據(jù)。基于Jupyter Notebook環(huán)境調(diào)用人臉識別庫,對采集的圖片進行檢測,檢測效果如圖1所示。
1.2 算法優(yōu)化
由于人臉檢測需要對后期的駕駛員狀態(tài)分析做依據(jù),即依據(jù)駕駛員的臉部及周圍信息來分析駕駛的狀態(tài)。根據(jù)人臉識別庫輸出的駕駛員臉部范圍,對后面的分析來說范圍較小,無法檢測到手機等臉部周圍信息,如圖2所示。所以在后期判斷駕駛員是否打電話等狀態(tài)的識別中無法準確的識別,因此需要對算法進行優(yōu)化。
在上述駕駛員臉部檢測坐標的基礎(chǔ)上,再做進一步判斷,對臉部檢測范圍的前后左右均增大20個像素,流程圖如3所示:
通過以上算法的優(yōu)化,對采集的駕駛員視頻數(shù)據(jù)的每一幀進行處理,提取駕駛員全部的臉部數(shù)據(jù),為后面駕駛員狀態(tài)的判斷提供基礎(chǔ)數(shù)據(jù),駕駛員原始視頻數(shù)據(jù)幀如圖4所示,對應(yīng)的駕駛員臉部及周圍信息數(shù)據(jù)如圖5所示。
2 深度學習數(shù)據(jù)集的建立
在上述駕駛員臉部及周圍信息數(shù)據(jù)的基礎(chǔ)上,建立深度學習數(shù)據(jù)集,用于訓練和測試駕駛員狀態(tài)識別模型。
2.1 建立圖像數(shù)據(jù)集
根據(jù)前面已經(jīng)檢測的駕駛員臉部數(shù)據(jù),將其總共分為4類:“抽煙”、“左后打電話”、“右手打電話”、“睡覺”,即深度學習模型為四分類模型,數(shù)據(jù)示例圖如圖6所示。
在圖像數(shù)據(jù)建立之后,打亂所有數(shù)據(jù)并劃分數(shù)據(jù)集,建立訓練數(shù)據(jù)集和測試數(shù)據(jù)集,如圖7所示,訓練數(shù)據(jù)集總共2509張,測試數(shù)據(jù)集總共419張,分別建立文件夾保存。
2.2 建立數(shù)據(jù)集標簽
本設(shè)計中,駕駛員狀態(tài)總共分為4類:“抽煙”、“左后打電話”、“右手打電話”、“睡覺”,即深度學習數(shù)據(jù)集總共有4個標簽,本設(shè)計采用0~3的數(shù)據(jù)對上述標簽進行標注,其中“抽煙”:0、“左后打電話”:1、“右手打電話”:2、“睡覺”:3,并分別建立訓練標簽文件和測試標簽文件,標簽txt文件如圖8所示,包括圖片文件名和圖片標簽值。
3 深度學習模型的建立
本文基于PyTorch深度學習框架,搭建了卷積神經(jīng)網(wǎng)絡(luò)模型FaceNet,模型輸入圖像大小為126 x 126 x 3,模型結(jié)構(gòu)如圖9所示,網(wǎng)絡(luò)模型參數(shù)見表1。
4 駕駛員狀態(tài)識別
在以上數(shù)據(jù)集和模型的基礎(chǔ)上,設(shè)置模型訓練環(huán)境和策略,訓練駕駛員狀態(tài)識別模型,整體流程圖如圖10所示。
本文模型訓練基于Jpytter Notebook環(huán)境,實驗參數(shù)見表2所示。模型訓練策略中,選擇小批量梯度下降方法,根據(jù)模型訓練環(huán)境和數(shù)據(jù)集大小,設(shè)置每一批數(shù)據(jù)大小為16,優(yōu)化器采用Adam算法,損失函數(shù)為交叉熵損失函數(shù),學習率為0.01,迭代周期為100。
經(jīng)過100次迭代后,模型損失函數(shù)基本趨于收斂,停止模型訓練。將該模型在測試集進行進行測試,模型的準確率為85.3%,即模型基本可以識別出駕駛員的狀態(tài),具有一定的可靠性,識別示例如圖11所示。
5 結(jié)論
本文基于深度學習提出了基于駕駛員臉部及周圍信息的駕駛員狀態(tài)檢測方法,傳統(tǒng)的方法是基于整個采集的圖像作為深度學習算法的輸入,而駕駛員狀態(tài)主要集中在臉部及臉部周圍信息,傳統(tǒng)方法的模型學習到的信息不集中,且模型參數(shù)較大,本文通過實車攝像頭采集了駕駛員駕駛狀態(tài)視頻數(shù)據(jù),基于該數(shù)據(jù)建立了駕駛員臉部數(shù)據(jù)集,基于該數(shù)據(jù)集建立了深度學習模型,最終得到了有較高準確率的駕駛員狀態(tài)檢測模型,模型檢測速度較快。后期可以考慮模型壓縮和嵌入式測試等工作。
參考文獻
[1] 中華人民共和國國家統(tǒng)計局官網(wǎng).National Bureau of Statistics of China[DB/OL].http://data.stats.gov.cn/,2016.
[2] Zhao H,Yin Z Y,Xiang H Y,et al.Preliminary study on alteration of altitude road traffic in China from 2006 to 2013[J].Plos One,2017, 12(2):e0171090.
[3] 吳昊.基于深度學習的駕駛行為識別方法研究[D].東南大學,2018.
[4] Krizhevsky A,Stutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[C].//International Conference on Neural Information Processing Systems Curran Associates Inc. 2012:1097-1105.