梁元輝,吳清樂,曹立佳
(1.四川輕化工大學(xué) 自動化與信息工程學(xué)院,四川 宜賓 644005;2.四川輕化工大學(xué) 人工智能四川省重點(diǎn)實驗室,四川 宜賓 644005)
隨著車輛急劇增多,交通事故嚴(yán)重威脅著人們的生命和財產(chǎn)安全。根據(jù)世界健康組織的報告,交通事故是損害人生命的十大原因之一[1]。為了減少疲勞駕駛所導(dǎo)致的交通安全問題,對疲勞駕駛自動檢測的研究具有重要意義?;谌四橈@著特征檢測的算法可直觀地定位眼睛所在的位置,然后利用積分投影、眼睛角點(diǎn)、眼簾曲率、上下眼簾高度等方法判斷眼睛的狀態(tài)[2-6],但這些方法在光照不均、人臉傾斜、佩戴眼鏡、駕駛員改變等環(huán)境中效果較差。You等人[7]提出的眼睛寬高比(eye aspect ratio,EAR)[8]結(jié)合PERCLOSE[9]方法來判斷駕駛員是否疲勞,該方法在降低檢測時間的同時取得了較高的準(zhǔn)確率。該算法考慮了個體差異但只有EAR作為判斷依據(jù),在光照變換、人臉傾斜、佩戴眼鏡等條件下檢測效果較差,具有很大的局限性。周云鵬等人[10-12]利用面部的多個特征融合檢測駕駛員是否疲勞駕駛。周濤等人[13-15]利用人眼狀態(tài)檢測駕駛員是否疲勞駕駛。
在上述研究的基礎(chǔ)上,該文對駕駛員的眼睛狀態(tài)檢測方法進(jìn)行改進(jìn),算法融合了人眼張開角度、EAR以及人眼虹膜等多個特征進(jìn)行人眼開閉的判斷。
Dlib是一個開源的工具箱,包括了機(jī)器學(xué)習(xí)模塊、深度學(xué)習(xí)模塊、圖像處理模塊等[9]。它常被用來解決工業(yè)和學(xué)術(shù)界實際難題,用它開發(fā)的復(fù)雜算法在機(jī)器人開發(fā)、嵌入設(shè)備、手機(jī)和大型高級性能計算環(huán)境頻繁使用。級聯(lián)姿勢回歸(cascaded pose regression,CPR)算法常被用于估計檢測物體的姿態(tài),該工具箱通過CPR[16]算法以及標(biāo)記的人臉68個特征點(diǎn)的回歸器獲取駕駛員的人臉特征,通過眼睛的狀態(tài)檢測判斷駕駛員是否疲勞。如圖1所示,該文采用了Dlib中人臉檢測和人臉68個特征點(diǎn)模型檢測視頻中的人臉,并返回人臉特征點(diǎn)坐標(biāo)、人臉框及人臉角度等。
圖1 人臉檢測及特征點(diǎn)
在1.1節(jié)中獲取了人臉的特征點(diǎn),對于每個眼睛都有6個對應(yīng)的特征點(diǎn),兩個眼角的特征點(diǎn),以及分布在上下眼簾上的4個特征點(diǎn)。這些特征點(diǎn)確定了眼睛在圖像中的具體位置。EAR[8]在文獻(xiàn)[8]中被用來檢測眼睛眨眼的頻率。EAR值可通過圖2中的6個點(diǎn)來計算,計算公式如下:
(1)
如圖2給出了眼睛的EAR值,其中(a)眼睛張開的6個特征點(diǎn);(b)眼睛關(guān)閉的6個特征點(diǎn);(c)不同眼睛大小的駕駛員眼睛開閉的EAR曲線。由圖2可以看出,眼睛的張開和關(guān)閉所對應(yīng)的EAR的值差別比較大。因而EAR值是一個可靠的評價眼睛開閉的參數(shù)。
圖2 EAR
根據(jù)駕駛員駕駛中的情形設(shè)定四種場景,分別是正常狀態(tài)、人臉傾斜狀態(tài)、戴眼鏡狀態(tài)、光照不均狀態(tài)。根據(jù)經(jīng)驗設(shè)定EAR的閾值為0.3。每種場景判斷眼睛開閉的結(jié)果和實際眼睛開閉的結(jié)果比較,結(jié)果一致則設(shè)定標(biāo)簽為0,結(jié)果不一致則設(shè)定標(biāo)簽為1,圖3給出了四種場景下的EAR數(shù)據(jù)和實際眼睛狀態(tài)的比較結(jié)果,橫坐標(biāo)為每個場景視頻的幀數(shù),縱坐標(biāo)為比較的結(jié)果。除了正常狀態(tài)下EAR可以用來檢測眼睛開閉狀態(tài)外,其他三種情況如果只用EAR對眼睛開閉狀態(tài)進(jìn)行判斷,判斷結(jié)果錯誤較多,因而在這些場景中EAR是不可靠的,需要借助其他方法進(jìn)行輔助才能更好地判斷。經(jīng)過反復(fù)的測試發(fā)現(xiàn)EAR在人臉傾斜、戴眼鏡、光照變換、眼睛周圍有光斑等情況下非常不可靠。
圖3 各種場景的EAR和實際眼睛狀態(tài)比較
參考1.2節(jié)CPR獲取的特征點(diǎn),取出眼睛的6個特征點(diǎn),然后選取其中3個角點(diǎn)(P36、P37、P41)計算眼角的張開角度,兩只眼睛的張開角度取其平均,該平均值作為眼睛狀態(tài)檢測算法的特征參數(shù)。眼睛張開角度計算公式如下:
(2)
通過1.2節(jié)CPR獲取的特征點(diǎn),取出眼睛的6個特征點(diǎn),計算這些點(diǎn)的外接矩并將外接矩的坐標(biāo)映射到原始圖像中即可得到包括眼睛的感興趣圖像,如圖4所示。人臉虹膜檢測算法詳細(xì)步驟描述如下:首先對原始眼睛圖像做圖像增強(qiáng)處理平滑噪聲,然后通過自適應(yīng)二值化操作獲取虹膜的二值圖像,再次對二值圖像進(jìn)行開閉操作以及孔洞填充,最后對二值圖像的白色虹膜區(qū)塊做橢圓擬合處理。橢圓的長軸和短軸范圍不應(yīng)超過眼睛左右角點(diǎn)之間的距離以及上下眼簾的距離。Tolba等人在文獻(xiàn)[11]中也提出了關(guān)于虹膜檢測作為眼睛狀態(tài)判斷的算法。人眼虹膜也可作為人臉傾斜、戴眼鏡、光照變換、眼睛周圍有光斑等情況下EAR不足的補(bǔ)充。
圖4 人臉虹膜檢測流程
圖5給出了虹膜的檢測圖像。
(a)裁剪的眼睛圖像 (b)dlib眼睛黑白圖
參考1.2節(jié)數(shù)據(jù)分析,使用EAR算法進(jìn)行眼睛狀態(tài)判斷時,在傾斜、戴眼鏡、晚上欠光照樣本中效果較差。而在復(fù)雜的環(huán)境中像素值比較敏感,魯棒性差,導(dǎo)致人眼虹膜橢圓擬合算法性能較差。該文提出基于EAR、人眼虹膜相融合的人眼狀態(tài)判斷算法,圖6給出了融合算法方案流程。首先通過視頻流分別計算人眼EAR和虹膜橢圓擬合;其次,設(shè)定EAR的閾值和橢圓長短軸的閾值,EAR超過閾值設(shè)定標(biāo)簽Eflag為1,否則設(shè)定標(biāo)簽Eflag為0;橢圓長短軸同時小于閾值,設(shè)定標(biāo)簽Pflag為0,否則設(shè)定標(biāo)簽Pflag為1;再次,判斷Eflag和Pflag的值是否一致,如果是,則輸出結(jié)果為EAR或者人眼虹膜的結(jié)果,否則進(jìn)行下一次判斷。最后判斷EAR和其閾值之差的絕對值是否大于ε,ε的值根據(jù)樣本和EAR閾值來確定。如果大于則輸出EAR的判斷結(jié)果,否則輸出虹膜的檢測結(jié)果。將提出的多特征融合算法簡稱為EP算法,該算法結(jié)合了EAR算法、眼睛虹膜算法在檢測眼睛狀態(tài)時的優(yōu)勢,并且在檢測到的EAR值與閾值比較接近時,利用眼睛虹膜的檢測結(jié)果來進(jìn)行輔助判斷。
圖6 EAR和人眼虹膜融合
為了驗證文中算法的有效性,對EP算法(提出的融合方案)、EAR算法、眼睛張開角度算法、虹膜算法進(jìn)行了比較。測試視頻為正常、夜晚、傾斜、戴眼鏡睜閉眼視頻,視頻流分辨率為640*480、幀率為30 fps。實驗設(shè)定EAR的硬閾值為0.3,ε=0.05。從表1可以看出,該文所提的方法在正常視頻、傾斜視頻、戴眼鏡視頻中比單純EAR的方法眼睛開閉狀態(tài)檢測效果較好;在正常視頻中和人眼虹膜檢測算法相當(dāng),但傾斜視頻、戴眼鏡視頻、晚上視頻中比單純?nèi)搜酆缒さ姆椒ㄑ劬﹂_閉狀態(tài)檢測效果較好。綜上比較,該方法獲得檢測視頻的平均正確率為92%,和EAR、人眼虹膜、眼角相比明顯提高了檢測正確率,可以為疲勞駕駛檢測提供更可靠的參考。
表1 實驗結(jié)果
針對疲勞駕駛中的眼睛狀態(tài)判斷,提出了一種融合了EAR、人臉虹膜等多個特征的算法(EP算法)進(jìn)行眼睛開閉狀態(tài)判斷,EP算法綜合了EAR、眼睛虹膜在眼睛狀態(tài)檢測時的優(yōu)勢。結(jié)果表明,該方法可以有效提高眼睛開閉檢測的準(zhǔn)確率并且能滿足實時檢測的要求,但算法在晚上弱光照條件下的性能需要進(jìn)一步提高以增強(qiáng)算法在夜晚的適應(yīng)能力。