基于機(jī)器視覺的駕駛員疲勞檢測方法
引 言
雖然汽車在日常生活中帶給人們諸多便利,但也帶來了越來越多的交通事故,使得廣大家庭和社會遭受巨大的傷害和損失。事故中,由疲勞駕駛所引發(fā)的事故數(shù)量占絕大多數(shù),因此研發(fā)一款用來監(jiān)測駕駛?cè)藛T有無疲勞的系統(tǒng)具有重大意義
目前,檢測疲勞駕駛的方法主要分為如下三類
(1) 生理信號法 :借助醫(yī)療儀表和設(shè)備生理指標(biāo)對疲勞狀況進(jìn)行分析 [1]
(2) 利用傳感器監(jiān)測車輛運(yùn)行狀態(tài)參數(shù)來判斷其是否正常行駛,并分析駕駛員是否疲勞
(3) 針對駕駛?cè)藛T的反應(yīng)特征,采用圖像檢測與分割算法找到嘴巴和眼睛等器官 [2,3],根據(jù)嘴巴和眼睛識別人體疲勞狀態(tài)的反應(yīng)特征[4,5],并通過這些反應(yīng)特征判斷駕駛員是否疲勞駕駛
本文提出了一種基于人臉特征的駕駛員疲勞檢測算法,采用Adaboost 級聯(lián)分類器對人臉進(jìn)行檢測,在提取的人臉圖像基礎(chǔ)上再進(jìn)行人眼和嘴巴定位,并對其狀態(tài)進(jìn)行檢測,將睜閉眼和嘴巴張合度進(jìn)行信息融合,精確判斷駕駛?cè)藛T有無疲勞駕駛情況
1 疲勞檢測系統(tǒng)總體方案設(shè)計
疲勞駕駛檢測系統(tǒng)主要由圖像采集模塊、人臉檢測模塊特征定位及狀態(tài)分析模塊、信息融合模塊構(gòu)成,其系統(tǒng)流程如圖 1 所示
2 人臉檢測
采用 Adaboost 算法進(jìn)行檢測,首先獲得不同的弱分類器再把其線性組合成為強(qiáng)分類器,最后通過級聯(lián)方式構(gòu)建最終的級聯(lián)分類器,算法主要包含以下重要的部分
(1) 利用 Haar特征描述人臉的共有屬性
(2) 建立一種名為積分圖像的特征,快速獲取幾種不同的圖像矩形特征
(3) 利用 Adaboost 算法進(jìn)行訓(xùn)練
(4) 建立層級分類器
3 眼睛和嘴部狀態(tài)檢測
3.1 眼睛狀態(tài)檢測
對眼睛區(qū)域定位的同時可判斷人眼的狀況,實(shí)現(xiàn)以檢代測的效果,對眼睛睜閉情形進(jìn)行區(qū)分的流程如圖 2 所示
人眼狀態(tài)的檢測針對視頻中每一幀的圖像進(jìn)行,人眼的疲勞狀態(tài)是一個時間段內(nèi)的狀態(tài),因此檢測采用PERCLOS Percentage of Eyelid Closure over the Pupil over Time PERCLOS)方法來判定 [6],當(dāng)眼睛張開度大于 20%認(rèn)為是睜眼,小于等于 20%認(rèn)為是閉眼。在實(shí)際情況中可以根據(jù)圖像來判斷有無睜閉眼。PERCLOS 計算依據(jù)式(1)
3.2 嘴部狀態(tài)檢測
嘴巴的狀態(tài)有很多種,其中打哈欠是一種疲勞狀態(tài)的體現(xiàn),因此只要將打哈欠的嘴巴狀態(tài)與其他狀態(tài)進(jìn)行區(qū)分,就能判別駕駛員是否疲勞。通過嘴巴的幾何形狀來計算其張開度 O,將嘴巴用矩形框標(biāo)記位置,用嘴巴的高 H 與寬 W 之比計算嘴巴的張開度 :
不同的 O 值代表嘴巴處在不同的張開狀況,當(dāng)嘴巴處于全張開狀態(tài)時,O 值約為 0.8,將該值作為閾值以判別駕駛員是否打哈欠,從而可以確定其是否處于疲勞狀態(tài)。
4 疲勞狀態(tài)判定
將兩種信息融合以減小誤差,其中嘴部特征(打哈欠比眼睛特征(PERCLOS)更優(yōu)。此外,由于打哈欠持續(xù)的時間較久,約為 5 s,對比疲勞時眨眼的時間更長,因此受外界影響更小。一旦出現(xiàn)打哈欠較長的狀況,就能判定駕駛員處于疲勞狀態(tài)。
根據(jù)檢測兩眼狀態(tài)采用的 PERCLOS 標(biāo)準(zhǔn)可將其分為兩類 :清醒狀態(tài)(PECRCLOS 參數(shù)值< 20%)和疲勞狀態(tài)(PECRCLOS 參數(shù)值≥ 20%);根據(jù)有無打哈欠將嘴巴張開大小分為兩種 :疲勞狀態(tài)(打哈欠)和清醒狀態(tài)(未打哈欠)。本文綜合上述兩種標(biāo)準(zhǔn)最終判定駕駛員是否處于疲勞狀態(tài)。
5 實(shí)驗(yàn)結(jié)果與分析
5.1 人臉檢測
通過 OpenCV 開源庫對大量圖片進(jìn)行訓(xùn)練,得到人臉分類器,實(shí)現(xiàn)對人臉的檢測定位,結(jié)果如圖 3 所示。
5.2 疲勞檢測
眼睛狀態(tài)測試結(jié)果見表 1 所列。在疲勞時通過眼睛狀態(tài)來判斷的準(zhǔn)確度達(dá) 80.83%,表明以眼睛狀況來檢測疲勞的方法可行。同時從誤檢的結(jié)果可知,只從眼睛狀況來檢測有無疲勞仍存在問題。
6 結(jié) 語
本文基于 Adaboost 級聯(lián)分類器的人臉檢測算法來檢測人眼、嘴巴,減少搜索范圍,提高速度。通過分析提取的駕駛員人眼、嘴巴特征,實(shí)現(xiàn)對有無疲勞的準(zhǔn)確檢測。測試表明,在不同環(huán)境下,本文提出的方法在每個階段基本都能實(shí)現(xiàn)疲勞駕駛的檢測。但本文所用方法的檢測時間較長,檢測效率較低,如何提高檢測效率將是下一階段研究的重點(diǎn)。