隋 博,趙永勝
(河南省電力通信自動化公司,河南 鄭州 450052)
駕駛員疲勞狀態(tài)實(shí)時(shí)檢測及預(yù)警技術(shù)能夠在駕駛員的疲勞駕駛行為發(fā)生之初,檢測到危險(xiǎn)狀況,隨即發(fā)出報(bào)警信息,要求駕駛員采取措施避免進(jìn)入疲勞狀態(tài),從而有效地保障駕駛員的行車安全。
早期的駕駛疲勞測評主要是從醫(yī)學(xué)角度出發(fā),借助醫(yī)療器械進(jìn)行的。隨著科學(xué)的進(jìn)步,疲勞駕駛測量方法也有了很大的發(fā)展,其中具有代表性的有基于駕駛?cè)松硇盘柕姆椒?、基于駕駛?cè)松矸磻?yīng)特征的方法、基于駕駛?cè)瞬僮餍袨榈姆椒ê突谲囕v狀態(tài)信息的檢測方法。各種疲勞檢測方法的對比見表1。
表1 疲勞檢測技術(shù)對比表
基于駕駛?cè)松硇盘柕臋z測方法對于疲勞判斷,在所有檢測方法中是最可靠的。但生理信號需要采用接觸式測量,且對個(gè)人依賴程度較大。因此該方法主要應(yīng)用在實(shí)驗(yàn)階段,作為實(shí)驗(yàn)的對照參數(shù),實(shí)用性不高。準(zhǔn)確性對于基于操作行為的檢測是關(guān)鍵問題。同樣的問題也會出現(xiàn)在基于行駛軌跡的檢測中,目前還沒有統(tǒng)一的標(biāo)準(zhǔn)來認(rèn)定如何通過車輛的速度和偏移度來判斷駕駛員的疲勞。
相比其他檢測方法,基于駕駛員生理反應(yīng)特征的檢測方法具有非接觸式測量的優(yōu)點(diǎn)。對于疲勞狀態(tài)的識別有國際上認(rèn)可的疲勞檢測模型PERCLOS作為標(biāo)準(zhǔn),具有精度高和實(shí)用性好的優(yōu)勢。視覺疲勞檢測技術(shù)是基于駕駛員生理反應(yīng)特征檢測方法的代表,也是目前該領(lǐng)域內(nèi)研究的重點(diǎn)方向。
視覺疲勞檢測技術(shù)實(shí)際上是用基于駕駛員生理特征的方法來進(jìn)行疲勞檢測。通常通過簡單的觀察駕駛員面部特征(如眼睛,頭部,臉部)的變化來評價(jià)是否疲勞。其中最典型的困倦特征表現(xiàn)在眼睛。例如,長時(shí)間的眨眼,緩慢的眼瞼活動,眼睛睜開程度變小或閉合,無變化的視線等。計(jì)算機(jī)視覺是基于生理特征檢測方案的最佳技術(shù)選擇。
基于視覺的駕駛員疲勞檢測算法流程如圖1所示。首先是視頻圖像采集過程,視頻圖像信息的清晰程度和飽和度等因素,會直接影響到檢測算法的準(zhǔn)確性。圖像預(yù)處理過程是系統(tǒng)流程的第二步,通過若干圖像算法處理原始圖像是為了給人臉檢測提供符合要求的標(biāo)準(zhǔn)格式圖像。人臉檢測是系統(tǒng)中的關(guān)鍵步驟。人臉檢測算法的選擇要從算法精度、實(shí)用性、實(shí)時(shí)性、可移植性等方面綜合考慮。人眼跟蹤的方法比較多,可以根據(jù)人臉的位置,通過“三庭五眼”的原則大致定位,也可以用單獨(dú)的人眼定位算法選擇人眼區(qū)域。最后,經(jīng)過特征提取和PER?CLOS計(jì)算,結(jié)束循環(huán)檢測的一次流程。
人臉檢測是基于視覺的疲勞駕駛檢測算法中的關(guān)鍵步驟。人臉檢測是指在輸入圖像中確定人臉(如果存在)的位置、大小和姿態(tài)的過程(即設(shè)置感興趣區(qū)域),見圖2。
人臉屬于非剛性物體,其檢測方法的關(guān)鍵和困難就在于如何建立起合適的數(shù)學(xué)模型來描述人臉目標(biāo)模式的多樣性,人臉檢測的基本思想一般采用以下步驟:先對人臉進(jìn)行建模,然后比較所有可能的待檢測區(qū)域與人臉模型的匹配度,從而得到可能存在的人臉區(qū)域。大體上可以把目前的人臉檢測方法分為四類:基于知識的檢測方法,特征不變的檢測方法,模板匹配的檢測方法,基于外觀的檢測方法。各種人臉檢測算法都有自己的優(yōu)勢和缺陷。然而真正影響人臉檢測算法在實(shí)際中應(yīng)用的重要因素,歸根結(jié)底還是算法的準(zhǔn)確性和實(shí)時(shí)性無法匹配的問題。很多學(xué)者在此方向上作了大量研究,AdaBoost算法的提出使得人臉檢測走向?qū)嵱谩?/p>
AdaBoost算法是基于特征的檢測方法,通過尋找那些即使當(dāng)姿勢、視角和光線條件變化時(shí)仍然存在的結(jié)構(gòu)特征,并利用這些特征來定位人臉。該算法將矩形作為人臉檢測的特征向量(特征矩陣)。在給定有限的數(shù)據(jù)情況下,基于特征的檢測能夠編碼特定區(qū)域的狀態(tài),而且基于特征的系統(tǒng)比基于像素的系統(tǒng)要快得多。如圖3所示,將特征矩陣組合形成特征模板,就能描述人面部一些區(qū)域線性或者邊緣特征。如圖4所示,編號(1)~(5)分別代表5類不同的矩陣模板。(1)和(2)可以反映圖像的邊緣特征,(3)和(4)反映圖像的線性特征,(5)主要用來反映圖像在特定方向上的特征。例如圖3中的人臉圖像,人眼要比臉頰顏色更深這一特征正是使用模板(2)來描述。
AdaBoost算法首先利用特征矩陣提取人面部特征,如眉毛、眼睛、鼻子、嘴和發(fā)際。然后根據(jù)提取的特征,建立統(tǒng)計(jì)模型描述特征之間的關(guān)系并確定存在的人臉。相比于其他人臉檢測算法,AdaBoost算法具有精度高、速度快的優(yōu)勢。
3.2.1 圖像和色彩空間
在一個(gè)典型的多媒體計(jì)算機(jī)系統(tǒng)中,常常涉及到用幾種不同的色彩空間表示圖形和圖像的顏色,以適合不同場合的應(yīng)用。因此,數(shù)字圖像的生成、存儲、處理及顯示時(shí)對應(yīng)不同的色彩空間需要作不同的處理和轉(zhuǎn)換。RGB色彩空間是使用最多的色彩空間,它采用R(紅)、G(綠)、B(藍(lán))三種顏色的相加來產(chǎn)生其他顏色。YUV色彩空間被歐洲的電視系統(tǒng)所采用(屬于SECAM和PAL系統(tǒng)),其中Y是指亮度,U和V是指色度。GRB與YUV之間的對應(yīng)關(guān)系如下
除上述色彩空間外,YCbCr色彩空間也是一種常見的色彩空間,JPEG采用的正是該色彩空間。它是從YUV色彩空間衍生出來的,其中對Y和V進(jìn)行少量調(diào)整而得到的。另外,還有CMY和YIQ等色彩空間,它們都適用于不同的領(lǐng)域和應(yīng)用。
3.2.2 圖像平滑處理
圖像生成和傳輸過程中經(jīng)常收到各種噪聲的干擾和影響,噪聲使圖像質(zhì)量下降。為了達(dá)到系統(tǒng)的處理要求,就要抑制噪聲,改善圖像質(zhì)量,也就是對圖像進(jìn)行平滑和去噪聲的處理。
3.2.3 灰度變換
只含有亮度信息,不含有色彩信息的圖像是灰度圖像。通常將灰度級別劃分成0~255,0表示最暗(全黑),255表示最亮(全白),中間值表示灰色?;叶茸儞Q的目的一般是為了改善圖像顯示畫質(zhì),使圖像更加清晰?;叶茸儞Q又被稱為圖像的對比度增強(qiáng)變換或?qū)Ρ榷壤熳儞Q。
3.2.4 二值運(yùn)算
圖像的二值處理,只能針對灰度圖像。它是將灰度圖像上的點(diǎn)的灰度置為0或255,也就是將整個(gè)圖像呈現(xiàn)出明顯的黑白效果。即將256個(gè)亮度等級的灰度圖像通過適當(dāng)?shù)拈撝颠x取而獲得仍然可以反映圖像整體和局部特征的二值圖像。二值運(yùn)算的目的是為了使目標(biāo)物體和背景分開。
PERCLOS是指在單位時(shí)間里眼睛閉合時(shí)間所占的百分比率。PERCLOS被認(rèn)為是目前最具有前景的疲勞檢測模型。
圖5是PERCLOS的數(shù)學(xué)模型示意圖,若用f代表眼睛閉合時(shí)間的百分率,則有
定義眼睛瞳孔開度大于20%是睜開,而瞳孔開度等于20%或者更小為閉合。公式中,t1代表眼睛(由眼皮遮蓋瞳孔的大小來決定)最大閉合到80%所用的時(shí)間;t2代表眼睛閉合80%到閉合20%所用的時(shí)間;t3代表眼睛閉合20%到睜開20%所用的時(shí)間;t4代表眼睛睜開20%到睜開80%所用的時(shí)間。f值越大,則說明駕駛員的疲勞程度越高。
為了給人眼狀態(tài)判斷的算法提供更好品質(zhì)的輸入圖像,需要對原始圖像進(jìn)行灰度化處理。預(yù)處理的另一個(gè)重要步驟是直方圖均衡化。由于攝像頭采集圖像容易受駕駛環(huán)境、曝光不足或過度、設(shè)備的非線性等因素的影響,都會出現(xiàn)對比度不足,圖像細(xì)節(jié)分辨不清的問題。另外,自然圖像由于其灰度通常分布在較窄的區(qū)間,也會引起圖像細(xì)節(jié)不清楚。而直方圖歸一化的目的就是把灰度圖像增強(qiáng)亮度對比使得特征突出,同時(shí)減少亮度不平均而造成的干擾。在可靠性疲勞檢測算法中,直方圖均衡化處理有很重要的意義。一般駕駛員面靠近車窗的半邊人臉易受到光照影響,亮度會明顯大于背光半邊人臉。如果不進(jìn)行輸入圖像直方化處理,會影響最終檢測結(jié)果。也可進(jìn)行多次迭代處理,以達(dá)到圖像亮度均衡的要求。
利用AdaBoost算法使用人臉分類器對圖像進(jìn)行模式識別,對圖像中的人臉區(qū)域進(jìn)行標(biāo)定。人臉檢測功能能夠給人眼的定位提供基礎(chǔ)圖像,同時(shí)還能夠驗(yàn)證人眼區(qū)域的正確位置。最重要的是,確定人臉位置后,在人臉圖像上定位人眼區(qū)域可以大大節(jié)省直接在整幅圖像上尋找人眼的開銷,減少了算法的執(zhí)行時(shí)間,提高了算法的效率。人眼檢測使用與人臉檢測相同的分類算法。不同的地方在于,人臉檢測的搜索區(qū)域是整幅圖像,而人眼檢測搜索的區(qū)域只在人臉區(qū)域。如果人臉定位失敗,則無須進(jìn)行人眼檢測,直接轉(zhuǎn)到下一幀圖像的處理。
圖像算法最終任務(wù)需要提供能夠用于PERCLOS算法的人眼閉合程度(百分比)。在完成了人眼的精確定位后,剩下的工作就是該特征參數(shù)的提取。得到人眼閉合參數(shù)信息并不困難,可以通過觀察人眼中虹膜(深色區(qū)域)特征的變化來進(jìn)行判斷。
如圖6所示,精確的人眼區(qū)域圖像需要經(jīng)過高斯去噪、二值變換、圖像求反等步驟,才能得到最終的目標(biāo)圖像。從目標(biāo)圖像可以看出,人眼的角膜已經(jīng)被清楚地從背景圖像中分離出來。在各種圖像處理算法中,高斯去噪是為了消除圖像存在的噪聲和干擾,平滑輪廓。例如,人眼虹膜中心會一般存在一塊白色的反光區(qū)域,這塊區(qū)域通過平滑處理可以減小甚至消除,如果不進(jìn)行此類處理,得到的圖像效果會使最后的計(jì)算產(chǎn)生誤差。二值變換和圖像求反是為了將人眼虹膜從背景圖像中分離,從而為計(jì)算人眼開合程度所做的最后準(zhǔn)備。通過以上幾個(gè)關(guān)鍵步驟,就可以將駕駛員眼部狀態(tài)信息清晰地反應(yīng)出來。
通過二值化的目標(biāo)圖像計(jì)算人眼開閉信息的方法有很多。最簡單的就是直接計(jì)算目標(biāo)圖像中白色區(qū)域的面積,將該區(qū)域的面積視為虹膜的面積。但是這種方法的缺點(diǎn)是誤差比較大,因?yàn)樵谌搜坶]合時(shí),上下眼瞼陰影產(chǎn)生的面積并不是虹膜的面積,會影響計(jì)算結(jié)果。本算法使用求圖像投影最大像素和的方法,在一定程度上減小了誤差的產(chǎn)生。如圖7所示,在目標(biāo)圖像投影后的最大投影值與人眼開閉程度之間建立一個(gè)簡單的映射關(guān)系,利用這種對應(yīng)關(guān)系將投影值轉(zhuǎn)化成為人眼閉合程度的百分?jǐn)?shù)表示,最后結(jié)合PERCLOS模型完成駕駛員疲勞判斷。
白天和黑夜的交替會使得駕駛員所處的環(huán)境光線亮度變化劇烈。使用確定閾值的二值算法無法滿足檢測需求,這是因?yàn)楣饩€的變化會改變圖像整體像素的灰度值。同樣的閾值在白天和在夜間分離出來的人眼區(qū)域會不同,而且差異很大。所以,必須選擇合適的自適應(yīng)閾值的二值算法,減少由于光線變化造成的影響,才能保證人眼目標(biāo)提取出來的區(qū)域統(tǒng)一。
本算法采用Otsu算法作為圖像分割的方法,在完成人眼局部圖像定位后,通過該算法進(jìn)行人眼的虹膜目標(biāo)提取。分割效果如圖8所示。
由圖8可以看出,用Otsu法得出的閾值直接用于圖像二值化,對圖像的分割效果達(dá)不到區(qū)分眼睛開合的要求。所以嘗試用Otsu得到一個(gè)閾值T1的情況下,再加入一個(gè)調(diào)整值T2,令T=T1+T2,然后實(shí)驗(yàn)測試分割效果。經(jīng)過大量實(shí)驗(yàn)后發(fā)現(xiàn),T2取45時(shí)(最大灰度為255的圖像),能得到突出虹膜的二值圖,并且區(qū)分人眼的開閉效果明顯,如圖9所示。
通過對比可以看出,加上調(diào)整閾值的Otsu算法得到的圖像眼睛虹膜的輪廓比較分明,更適合作為中間圖像。根據(jù)此方法得到的目標(biāo)圖像再經(jīng)過灰度投影算法的處理,完全可以滿足判斷上下眼瞼距離的要求。
疲勞駕駛是導(dǎo)致交通事故頻發(fā)的主要因素之一,實(shí)時(shí)準(zhǔn)確的駕駛員疲勞預(yù)警技術(shù)能改善交通安全狀況,具有長遠(yuǎn)的社會意義。本文主要研究了各種圖像處理技術(shù)在基于視覺的疲勞檢測中的綜合應(yīng)用。設(shè)計(jì)了利用PERCLOS模型進(jìn)行疲勞駕駛行為判斷算法流程,還針對復(fù)雜背景、不同光照強(qiáng)度等特殊情況,提出加入調(diào)整參數(shù)的自適應(yīng)閾值算法。通過實(shí)驗(yàn)驗(yàn)證,本方案具有精度高、可靠性和實(shí)時(shí)性好的特點(diǎn),能夠滿足疲勞駕駛檢測要求。
[1]VOOLA P.Rapid object detection using a boost cascade of simple features[C]//Proc.IEEE Conference on Computer Vision and Pattern Recognition.[S.l.]:IEEE Press,2001:511-518.
[2]CHEN Chiyuan.Driver fatigue detection based on eye tracking and dynamic template matching[C]//Proc.IEEE International Conference on Networking.[S.l.]:IEEE Press,2004:7-12
[3]夏芹,宋義偉.基于PERCLOS的駕駛疲勞監(jiān)控方法進(jìn)展[J].模式識別與仿真,2008,27(6):43-46.
[4]王磊.駕駛疲勞檢測方法的研究進(jìn)展[J].自動化與信息工程,2007,24(1):245-248.
[5]高曉晶,于鴻洋.在司機(jī)疲勞監(jiān)控中的人眼狀態(tài)檢測方法研究[J].電視技術(shù),2009,33(S2):212-213.
[6]江水郎,楊明.面向駕駛員疲勞檢測的雙空間人眼定位辦法[J].計(jì)算機(jī)工程,2008,34(24):180-182.