梁元輝,吳清樂,曹立佳
(1.四川輕化工大學 自動化與信息工程學院,四川 宜賓 644005;2.四川輕化工大學 人工智能四川省重點實驗室,四川 宜賓 644005)
隨著車輛急劇增多,交通事故嚴重威脅著人們的生命和財產安全。根據世界健康組織的報告,交通事故是損害人生命的十大原因之一[1]。為了減少疲勞駕駛所導致的交通安全問題,對疲勞駕駛自動檢測的研究具有重要意義。基于人臉顯著特征檢測的算法可直觀地定位眼睛所在的位置,然后利用積分投影、眼睛角點、眼簾曲率、上下眼簾高度等方法判斷眼睛的狀態[2-6],但這些方法在光照不均、人臉傾斜、佩戴眼鏡、駕駛員改變等環境中效果較差。You等人[7]提出的眼睛寬高比(eye aspect ratio,EAR)[8]結合PERCLOSE[9]方法來判斷駕駛員是否疲勞,該方法在降低檢測時間的同時取得了較高的準確率。該算法考慮了個體差異但只有EAR作為判斷依據,在光照變換、人臉傾斜、佩戴眼鏡等條件下檢測效果較差,具有很大的局限性。周云鵬等人[10-12]利用面部的多個特征融合檢測駕駛員是否疲勞駕駛。周濤等人[13-15]利用人眼狀態檢測駕駛員是否疲勞駕駛。
在上述研究的基礎上,該文對駕駛員的眼睛狀態檢測方法進行改進,算法融合了人眼張開角度、EAR以及人眼虹膜等多個特征進行人眼開閉的判斷。
Dlib是一個開源的工具箱,包括了機器學習模塊、深度學習模塊、圖像處理模塊等[9]。它常被用來解決工業和學術界實際難題,用它開發的復雜算法在機器人開發、嵌入設備、手機和大型高級性能計算環境頻繁使用。級聯姿勢回歸(cascaded pose regression,CPR)算法常被用于估計檢測物體的姿態,該工具箱通過CPR[16]算法以及標記的人臉68個特征點的回歸器獲取駕駛員的人臉特征,通過眼睛的狀態檢測判斷駕駛員是否疲勞。如圖1所示,該文采用了Dlib中人臉檢測和人臉68個特征點模型檢測視頻中的人臉,并返回人臉特征點坐標、人臉框及人臉角度等。

圖1 人臉檢測及特征點
在1.1節中獲取了人臉的特征點,對于每個眼睛都有6個對應的特征點,兩個眼角的特征點,以及分布在上下眼簾上的4個特征點。這些特征點確定了眼睛在圖像中的具體位置。EAR[8]在文獻[8]中被用來檢測眼睛眨眼的頻率。EAR值可通過圖2中的6個點來計算,計算公式如下:
(1)
如圖2給出了眼睛的EAR值,其中(a)眼睛張開的6個特征點;(b)眼睛關閉的6個特征點;(c)不同眼睛大小的駕駛員眼睛開閉的EAR曲線。由圖2可以看出,眼睛的張開和關閉所對應的EAR的值差別比較大。因而EAR值是一個可靠的評價眼睛開閉的參數。

圖2 EAR
根據駕駛員駕駛中的情形設定四種場景,分別是正常狀態、人臉傾斜狀態、戴眼鏡狀態、光照不均狀態。根據經驗設定EAR的閾值為0.3。每種場景判斷眼睛開閉的結果和實際眼睛開閉的結果比較,結果一致則設定標簽為0,結果不一致則設定標簽為1,圖3給出了四種場景下的EAR數據和實際眼睛狀態的比較結果,橫坐標為每個場景視頻的幀數,縱坐標為比較的結果。除了正常狀態下EAR可以用來檢測眼睛開閉狀態外,其他三種情況如果只用EAR對眼睛開閉狀態進行判斷,判斷結果錯誤較多,因而在這些場景中EAR是不可靠的,需要借助其他方法進行輔助才能更好地判斷。經過反復的測試發現EAR在人臉傾斜、戴眼鏡、光照變換、眼睛周圍有光斑等情況下非常不可靠。

圖3 各種場景的EAR和實際眼睛狀態比較
參考1.2節CPR獲取的特征點,取出眼睛的6個特征點,然后選取其中3個角點(P36、P37、P41)計算眼角的張開角度,兩只眼睛的張開角度取其平均,該平均值作為眼睛狀態檢測算法的特征參數。眼睛張開角度計算公式如下:
(2)
通過1.2節CPR獲取的特征點,取出眼睛的6個特征點,計算這些點的外接矩并將外接矩的坐標映射到原始圖像中即可得到包括眼睛的感興趣圖像,如圖4所示。人臉虹膜檢測算法詳細步驟描述如下:首先對原始眼睛圖像做圖像增強處理平滑噪聲,然后通過自適應二值化操作獲取虹膜的二值圖像,再次對二值圖像進行開閉操作以及孔洞填充,最后對二值圖像的白色虹膜區塊做橢圓擬合處理。橢圓的長軸和短軸范圍不應超過眼睛左右角點之間的距離以及上下眼簾的距離。Tolba等人在文獻[11]中也提出了關于虹膜檢測作為眼睛狀態判斷的算法。人眼虹膜也可作為人臉傾斜、戴眼鏡、光照變換、眼睛周圍有光斑等情況下EAR不足的補充。

圖4 人臉虹膜檢測流程
圖5給出了虹膜的檢測圖像。

(a)裁剪的眼睛圖像 (b)dlib眼睛黑白圖
參考1.2節數據分析,使用EAR算法進行眼睛狀態判斷時,在傾斜、戴眼鏡、晚上欠光照樣本中效果較差。而在復雜的環境中像素值比較敏感,魯棒性差,導致人眼虹膜橢圓擬合算法性能較差。該文提出基于EAR、人眼虹膜相融合的人眼狀態判斷算法,圖6給出了融合算法方案流程。首先通過視頻流分別計算人眼EAR和虹膜橢圓擬合;其次,設定EAR的閾值和橢圓長短軸的閾值,EAR超過閾值設定標簽Eflag為1,否則設定標簽Eflag為0;橢圓長短軸同時小于閾值,設定標簽Pflag為0,否則設定標簽Pflag為1;再次,判斷Eflag和Pflag的值是否一致,如果是,則輸出結果為EAR或者人眼虹膜的結果,否則進行下一次判斷。最后判斷EAR和其閾值之差的絕對值是否大于ε,ε的值根據樣本和EAR閾值來確定。如果大于則輸出EAR的判斷結果,否則輸出虹膜的檢測結果。將提出的多特征融合算法簡稱為EP算法,該算法結合了EAR算法、眼睛虹膜算法在檢測眼睛狀態時的優勢,并且在檢測到的EAR值與閾值比較接近時,利用眼睛虹膜的檢測結果來進行輔助判斷。

圖6 EAR和人眼虹膜融合
為了驗證文中算法的有效性,對EP算法(提出的融合方案)、EAR算法、眼睛張開角度算法、虹膜算法進行了比較。測試視頻為正常、夜晚、傾斜、戴眼鏡睜閉眼視頻,視頻流分辨率為640*480、幀率為30 fps。實驗設定EAR的硬閾值為0.3,ε=0.05。從表1可以看出,該文所提的方法在正常視頻、傾斜視頻、戴眼鏡視頻中比單純EAR的方法眼睛開閉狀態檢測效果較好;在正常視頻中和人眼虹膜檢測算法相當,但傾斜視頻、戴眼鏡視頻、晚上視頻中比單純人眼虹膜的方法眼睛開閉狀態檢測效果較好。綜上比較,該方法獲得檢測視頻的平均正確率為92%,和EAR、人眼虹膜、眼角相比明顯提高了檢測正確率,可以為疲勞駕駛檢測提供更可靠的參考。

表1 實驗結果
針對疲勞駕駛中的眼睛狀態判斷,提出了一種融合了EAR、人臉虹膜等多個特征的算法(EP算法)進行眼睛開閉狀態判斷,EP算法綜合了EAR、眼睛虹膜在眼睛狀態檢測時的優勢。結果表明,該方法可以有效提高眼睛開閉檢測的準確率并且能滿足實時檢測的要求,但算法在晚上弱光照條件下的性能需要進一步提高以增強算法在夜晚的適應能力。