如前文綜述關(guān)于駕駛員疲勞檢測(cè)系統(tǒng)有很多相關(guān)的檢測(cè)手段,當(dāng)前國(guó)內(nèi)外主流的檢測(cè)算法是基于視覺(jué)系統(tǒng)的方式,其關(guān)鍵要素是對(duì)駕駛員進(jìn)行圖像采集,其中就有兩種不同的方式:普通圖像采集和基于紅外光源的圖像采集;從建立模型角度上看,有對(duì)眼睛建立的2D模型和對(duì)頭部建立的3D模型進(jìn)行視線估計(jì);從疲勞狀態(tài)的判斷角度,有單一疲勞參數(shù)判斷和多個(gè)疲勞參數(shù)結(jié)合的機(jī)器學(xué)習(xí)算法進(jìn)行識(shí)別。當(dāng)然,先進(jìn)一點(diǎn)的方法是基于紅外廣元的系統(tǒng),利用瞳孔對(duì)不同波長(zhǎng)紅外光的反射量不同,直接得到眼睛位置,從而省略了人臉檢測(cè)及定位這一步,提高了實(shí)時(shí)性。
如下將分別進(jìn)行較為詳細(xì)的檢測(cè)原理分析介紹。
1、駕駛員眨眼頻率檢測(cè)
眨眼頻率指單位時(shí)間內(nèi)眨眼的次數(shù),研究表明,駕駛員疲勞引發(fā)的事故發(fā)生前,駕駛員眨眼頻率增加,眼皮覆蓋眼睛的百分比增加。利用測(cè)量眼睛閉合、眼睛運(yùn)動(dòng)或眼睛生來(lái)特性來(lái)監(jiān)視駕駛員疲勞是很適宜的方法。具體的檢測(cè)方式需要通過(guò)包含眼睛定位、眼睛特征提取、眼睛狀態(tài)識(shí)別、眨眼頻率分析幾步進(jìn)行,如下將分別進(jìn)行介紹。
1、眼睛定位方法
眼睛定位是指在輸入的人臉圖像中快速檢測(cè)出眼睛的位置。只有在眼睛定位后才能準(zhǔn)確提取出眼睛特征信息用于判斷出眼睛的開(kāi)閉狀態(tài),進(jìn)而判斷駕駛員是否疲勞。針對(duì)駕駛員疲勞檢測(cè)系統(tǒng)的特殊要求,目前眼鏡檢測(cè)與定位的方法比較多,其中正面人臉的快速眼睛定位算法主要有結(jié)合可變模板邊緣提取法、對(duì)稱變換法、虹膜檢測(cè)法、積分投影法和區(qū)域分割法等。
對(duì)稱變換法
對(duì)稱性被認(rèn)為是計(jì)算機(jī)視覺(jué)研究中一種基本性質(zhì),通常在物體從背景區(qū)域中分割出來(lái)后,用來(lái)簡(jiǎn)化物體形狀的描述和物體近似。對(duì)于人臉而言,眼睛、鼻子、嘴巴等都有較弱的點(diǎn)對(duì)稱性,利用對(duì)稱變換可以用來(lái)定位人眼進(jìn)而提取臉部特征,在此基礎(chǔ)上利用方向?qū)ΨQ變換DST,在不同方向上的分布情況反映物體的基本形狀特征,同時(shí),匹配因事先完成的一些先驗(yàn)規(guī)則估算尺度因子和人眼可能區(qū)域,大大減少了運(yùn)算量。
以上算法中對(duì)稱變換是同等對(duì)待圖像中的所有像素點(diǎn),計(jì)算每個(gè)像素點(diǎn)的對(duì)稱值,實(shí)際上,在人臉圖像中有一類像素點(diǎn)(包括除眼睛、嘴巴、特征區(qū)域外的頭發(fā)、臉部及部分身體區(qū)域等)由于在圖像中物體的單一背景區(qū)域中,其大面積灰度均勻區(qū)域上的像素點(diǎn)在一定的尺度范圍內(nèi)并不具備明顯意義上的對(duì)稱性,就沒(méi)有必要計(jì)算該區(qū)域的對(duì)稱值。以減少計(jì)算量為基本出發(fā)點(diǎn),這里可以加入離散對(duì)稱變換的方式,減少對(duì)于均勻像素點(diǎn)的計(jì)算,加入對(duì)一個(gè)圖像灰度不均勻區(qū)域的檢測(cè)步驟,接著定義一個(gè)與廣義對(duì)稱變換相似的對(duì)稱算子來(lái)計(jì)算點(diǎn)對(duì)稱,這樣可以大大提高檢測(cè)效率。
2、眼睛特征提取
眼睛特征的內(nèi)容十分豐富,包括上下眼瞼、虹膜、瞳孔、內(nèi)外眼角等。根據(jù)疲勞檢測(cè)系統(tǒng)的特殊要求,本節(jié)主要介紹虹膜檢測(cè)和眼角檢測(cè)。
1)虹膜識(shí)別
虹膜是眼睛部分乃至整個(gè)臉部區(qū)域中特征最為明顯的部分。無(wú)論是人臉、視線檢測(cè)或是虹膜識(shí)別技術(shù),虹膜定位算法都是最為基礎(chǔ)的。
虹膜檢測(cè)主要基于虹膜的兩個(gè)特征,即灰度特征和幾何特征。由于虹膜的灰度與周圍鞏膜和皮膚的灰度存在很大差異(鞏膜比虹膜亮),故可以用灰度投影法來(lái)檢測(cè)。由于虹膜是圓形的特殊結(jié)構(gòu),可以用圓或是橢圓來(lái)擬合。比如Daugman圓形檢測(cè)算子作為掩模使用積分、微分操作分別檢測(cè)二虹膜和瞳孔的圓心和半徑。設(shè)為坐標(biāo)處的圖像強(qiáng)度,并且將虹膜內(nèi)邊界和外邊界模型化為圓心在、半徑為r的圓。
,其中為高斯函數(shù)以上對(duì)瞳孔或虹膜外邊緣的定位過(guò)程是在三個(gè)參數(shù)空間不斷迭代以求得最優(yōu)解的過(guò)程(也即最大值)。
以上算法過(guò)分依賴于瞳孔圓心的定位,而對(duì)于駕駛員眼睛形狀變形、旋轉(zhuǎn)、縮放、重疊、遮擋等原因,Daugman表示的掩模不再適合于虹膜檢測(cè)。這些情況下的圖像可以利用Hough變換來(lái)解決。Hough變換主要利用眼球的圓形特征,在邊緣檢測(cè)后提取的邊緣中用Hough變換尋找到眼球。該方法對(duì)于駕駛員眼睛狀態(tài)較為敏感,如果眼睛閉合或即將閉合,那么提供的虹膜邊緣太少,就無(wú)法準(zhǔn)確檢測(cè)出虹膜了。
2)眼角檢測(cè)
眼睛的內(nèi)外眼角也是一個(gè)重要特征,可以將眼角作為角點(diǎn)來(lái)檢測(cè)。在圖像識(shí)別中,角點(diǎn)包含被識(shí)別目標(biāo)的重要集合參數(shù)信息,其檢測(cè)的結(jié)果直接影響后續(xù)圖像分析及參數(shù)計(jì)算精度。角點(diǎn)可看做兩條直線交點(diǎn),由此可先擬合兩條直線,然后尋找其交點(diǎn);也可以看做圖像邊界上曲率最大的點(diǎn),由此可用鏈碼跟蹤后的輪廓點(diǎn)計(jì)算曲率來(lái)判定角點(diǎn);角點(diǎn)還可以看做是圖像中梯度值和梯度變化率很高的點(diǎn),由此可利用方向?qū)?shù)來(lái)檢測(cè)角點(diǎn)。
3、眼睛狀態(tài)識(shí)別
眼睛開(kāi)合狀態(tài)是進(jìn)行疲勞檢測(cè)的重要信息。相應(yīng)的主流算法分為兩種類別:基于特征分析的眼睛狀態(tài)識(shí)別和基于模式分類的眼睛狀態(tài)識(shí)別。
1)基于特征分析的眼睛狀態(tài)識(shí)別
主流的眼睛狀態(tài)識(shí)別方法包含了邊緣復(fù)雜度法,該方法首先根據(jù)圖像二值化得到眼睛邊緣圖,其次計(jì)算眼睛邊緣復(fù)雜度,如果眼睛區(qū)域復(fù)雜度較大,說(shuō)明眼睛為開(kāi)眼,否則為閉眼。
此外,也可利用模板匹配法,訓(xùn)練眾多駕駛員眼睛睜眼與閉眼狀態(tài),當(dāng)檢測(cè)駕駛員當(dāng)前眼睛張合狀態(tài)與睜眼匹配結(jié)果大于閾值時(shí),則認(rèn)為駕駛員睜眼,否則判定為閉眼或輕度閉眼。
假設(shè)檢測(cè)到當(dāng)前眼睛的原始圖像為S(W,H),將原始圖像S(W,H)劃分為不同的覆蓋子圖Sij(i,j),如圖所示:
然后利用以下訓(xùn)練眼睛模板T(m,n)與覆蓋子圖進(jìn)行卷積計(jì)算后得到其相似性:
上述公式中第一項(xiàng)為子圖的能量,第三項(xiàng)為模板的能量,都和模板匹配無(wú)關(guān)。第二項(xiàng)是模板和子圖的互為相關(guān),隨(i,j)而改變。當(dāng)利用如上結(jié)果計(jì)算的結(jié)果D取最大值時(shí),其模板和子圖最匹配。
此模板檢測(cè)方法可延伸至檢測(cè)眼睛面積和眼睛曲率的檢測(cè)方法。
4、眨眼頻率分析
研究分析表明,人每次眨眼時(shí)間為0.1-0.3s,每分鐘眨眼頻率為10-15次,當(dāng)駕駛員眼睛一次閉眼時(shí)間超過(guò)0.5s時(shí)則可以判定為疲勞,當(dāng)判斷出人眼開(kāi)閉狀態(tài)后,則進(jìn)一步統(tǒng)計(jì)出一段時(shí)間內(nèi)駕駛員的眨眼次數(shù)。具體方法如下:
在采集到的視頻圖像中,由于每一幀圖像里眼睛可以分為兩種狀態(tài),即睜眼(標(biāo)記為1)和閉眼(標(biāo)記為0),兩次眼睛睜開(kāi)狀態(tài)中必定有一次閉合狀態(tài),故檢測(cè)一次眨眼可表示為從“1->0->1”的過(guò)程,然后設(shè)置一定的時(shí)間窗口TimeWindow統(tǒng)計(jì)在一定時(shí)間內(nèi)該眨眼狀態(tài)切換的頻次統(tǒng)計(jì)圖,可以看出,眨眼頻率在疲勞情況下相對(duì)于正常情況時(shí)明顯下降(約為40%)趨勢(shì)。
5、PERCLOS判定準(zhǔn)則
PERCLOS(Percentage of Eyelid Closure over the Pupil over Time)表示在單位時(shí)間內(nèi)眼睛閉合時(shí)間所占的百分率。研究表明,應(yīng)該有效考慮把測(cè)量機(jī)動(dòng)車輛駕駛員PERCLOS作為車載的、實(shí)時(shí)的、非接觸式的疲勞檢測(cè)方法。通常PERCLOS方法有如下三種:
P70、P80、EM分別表示當(dāng)瞳孔面積有超過(guò)70%、80%、50%被眼瞼遮住時(shí),就認(rèn)為駕駛員處于閉合狀態(tài),統(tǒng)計(jì)在單位時(shí)間內(nèi)眼睛閉合時(shí)間所占的時(shí)間比例。且實(shí)驗(yàn)證明,PERCLOS中的P80與疲勞發(fā)展程度的相關(guān)性較好,且具有良好的線性關(guān)系,其曲線圖表示如下。
根據(jù)PERCLOS的測(cè)量原理,測(cè)量出t1~t4,就能計(jì)算出PERCLOS的值f:
其中t1表示眼睛從最大瞳孔開(kāi)度閉合到80%瞳孔開(kāi)度所用的時(shí)間,t2表示眼睛從80%瞳孔開(kāi)度閉合到20%瞳孔開(kāi)度所用時(shí)間,t3表示眼睛從20%瞳孔開(kāi)度閉合到20%瞳孔開(kāi)度張開(kāi)所用的時(shí)間,t4表示眼睛從20%瞳孔開(kāi)度睜開(kāi)到80%瞳孔開(kāi)度所用的時(shí)間。
PERCLOS具體的測(cè)量方法為:用攝像機(jī)抓取駕駛員臉部圖像,通過(guò)圖像處理方法(模板匹配)得到眼睛圖像,經(jīng)過(guò)圖像分析和識(shí)別手段確定眼睛睜閉。
2、駕駛員嘴部活動(dòng)檢測(cè)
正常情況下,駕駛員嘴部基本處于閉合狀態(tài),但當(dāng)駕駛員頻繁的與他人進(jìn)行說(shuō)話或用手機(jī)通話時(shí),其嘴部大部分時(shí)間處于普通張開(kāi)或一張一閉的重復(fù)狀態(tài)。此種情況下駕駛員注意力將會(huì)不集中。另外,當(dāng)駕駛員頻繁的打哈欠時(shí),其嘴巴會(huì)張開(kāi)很大,據(jù)此可判定其處于疲勞狀態(tài)。由此,通過(guò)對(duì)駕駛員嘴巴張閉的識(shí)別可作為駕駛員注意力和疲勞的判斷條件亦或者增強(qiáng)度駕駛員狀態(tài)的判斷。
對(duì)駕駛員嘴部的檢測(cè)包含如下三個(gè)方面的內(nèi)容:
1、嘴唇分割
為了對(duì)嘴唇進(jìn)行分割,需要通過(guò)一定的檢測(cè)方式區(qū)分嘴唇與面部其他部分,典型的駕駛員嘴部狀態(tài)識(shí)別算法是基于Fisher線性變換進(jìn)行的。眾所周知,嘴唇特征是其顏色比其他部分較紅,如果轉(zhuǎn)為灰度值,其灰度值較其他部分更大。當(dāng)攝像頭識(shí)別到紅色的嘴唇時(shí),則通過(guò)取相應(yīng)的顏色像素值(RGB值),這里為了保證顏色對(duì)光照敏感度及人臉旋轉(zhuǎn)不變性,可將識(shí)別的顏色像素值進(jìn)行歸一化處理后形成顏色向量:
Fisher線性分類器能夠?qū)ふ乙粋€(gè)最佳投影方向w*,通過(guò)確保Fisher準(zhǔn)則函數(shù)JF(w)值最大從而確保類間距盡可能大,而類內(nèi)距盡可能小。將顏色向量按照w*方向(如下圖方程所示)投影到相應(yīng)空間后,膚色和唇色可以被很好的區(qū)分出來(lái)。
2、嘴部定位
通過(guò)第一步中Fisher線性變換分割得到的圖像通常包含多個(gè)區(qū)域,需要通過(guò)聯(lián)通標(biāo)示分析他們分別提取出來(lái),標(biāo)示分割后(二值)圖像中各個(gè)區(qū)域的簡(jiǎn)單而有效的方法是檢查各像素與其相鄰像素的連通性。其中典型的算法是八連通成分標(biāo)示算法,該算法可對(duì)幾個(gè)孤立的區(qū)域進(jìn)行區(qū)域標(biāo)示,進(jìn)而獲取各孤立區(qū)域的各種參數(shù),如坐標(biāo)位置、像素個(gè)數(shù)等。接著利用相關(guān)幾何約束可以對(duì)這些孤立的區(qū)域進(jìn)行判斷,最終得到嘴部區(qū)域。
3、嘴部特征提取
針對(duì)駕駛員嘴部狀態(tài)研究不難發(fā)現(xiàn)其狀態(tài)無(wú)非分為三種主要狀態(tài):駕駛員說(shuō)話時(shí)普通張嘴,駕駛員打哈欠時(shí)大張嘴,駕駛員不說(shuō)話時(shí)嘴部閉合;由此,我們需要設(shè)置一定的嘴部特征提取算法進(jìn)行嘴巴特征檢測(cè)。
為了得到嘴部區(qū)域幾何特征,必須在嘴部區(qū)域內(nèi)準(zhǔn)確地得到嘴部圖像及相應(yīng)的特征點(diǎn),左右嘴角點(diǎn)A和B、上嘴唇中心點(diǎn)嘴上點(diǎn)C、上嘴唇中心點(diǎn)嘴上點(diǎn)E、下嘴唇中心最下點(diǎn)F。根據(jù)嘴部定位結(jié)果,經(jīng)過(guò)圖像像素顏色值得Fisher線性變換和聯(lián)通成分標(biāo)示分析可以得到完整的嘴唇輪廓,為嘴唇特征點(diǎn)的定位打下良好的基礎(chǔ)。根據(jù)人臉嘴唇特征點(diǎn)的結(jié)合分布特性,并通過(guò)水平投影確定左、右嘴角,在作垂直于左右嘴角的直線,在直線的方向上進(jìn)一步搜索可得到上嘴唇中心最上點(diǎn)、上嘴唇中心最下點(diǎn)、下嘴唇中心嘴上點(diǎn)、下嘴唇中心最下點(diǎn)。
4、嘴部狀態(tài)識(shí)別
在嘴部狀態(tài)識(shí)別算法中,基于神經(jīng)網(wǎng)絡(luò)BP的方式最為常用,其原理是將獲得的駕駛員嘴部幾何特征值組成的特征向量輸入到BP網(wǎng)絡(luò)中,根據(jù)網(wǎng)絡(luò)輸出得到駕駛員嘴部的三種狀態(tài)。其中BP網(wǎng)絡(luò)分為三層結(jié)構(gòu),輸入層有三個(gè)神經(jīng)元,分別代表駕駛員嘴部區(qū)域的不同幾何特征,隱層選用14個(gè)神經(jīng)元,其傳遞函數(shù)為Sigmoid函數(shù)。輸出層有三個(gè)神經(jīng)元,跟別代表駕駛員嘴部三種不同的狀態(tài),即普通張嘴,閉嘴以及大張嘴。
為了防止由于駕駛員說(shuō)話張嘴誤識(shí)別為打哈欠,需要設(shè)置相應(yīng)的持續(xù)時(shí)間閾值作為判斷駕駛員在打哈欠的條件,一般情況下,設(shè)置5s持續(xù)張嘴的時(shí)間是比較合理的。
3、總結(jié)
如上分析,對(duì)于駕駛員狀態(tài)監(jiān)控系統(tǒng)而言,需要進(jìn)行包括圖像采集,人臉檢測(cè)與分析,眼睛識(shí)別、嘴唇識(shí)別等步驟實(shí)現(xiàn)對(duì)駕駛員狀態(tài)的檢測(cè)。其中,以駕駛員眼部狀態(tài)識(shí)別為主要輸入,同時(shí)輔助以嘴唇、腦電波、心電圖、肌電圖、頭部姿態(tài)等檢測(cè)實(shí)現(xiàn)對(duì)駕駛員駕駛疲勞狀態(tài)的檢測(cè)與分析。
具體流程圖如下: