王豪榮,胡 婷,葛麗娟
(長(zhǎng)安大學(xué) 信息工程學(xué)院,陜西 西安 710064)
隨著全球道路交通的快速發(fā)展,交通安全事故的發(fā)生率也在增加,其中,疲勞駕駛已經(jīng)成為影響交通安全的重要隱患[1]。國(guó)外每年由于駕駛員在駕駛過程中進(jìn)入睡眠狀態(tài)而導(dǎo)致的交通事故數(shù)量不斷增加,而我國(guó)每年由于駕駛疲勞導(dǎo)致的交通事故則高達(dá)90%,所以建立駕駛員疲勞監(jiān)控系統(tǒng)是非常必要的?;隈{駛員面部表情的疲勞檢測(cè)利用攝像頭采集人臉圖像,通過對(duì)駕駛員眼睛和嘴巴的分析來判斷駕駛員疲勞狀況,具有實(shí)時(shí)性和比較高的準(zhǔn)確率?,F(xiàn)在大多的疲勞檢測(cè)方法是基于駕駛員眼睛的閉合情況,這樣對(duì)眼睛的精確定位要求非常高,容易造成誤判。本文針對(duì)人臉面部表情的另一個(gè)重要信息集中點(diǎn)嘴部進(jìn)行研究,分析嘴部在打哈欠和說話時(shí)的明顯區(qū)別,提出了嘴部狀態(tài)對(duì)疲勞駕駛檢測(cè)的影響。
人臉定位是疲勞檢測(cè)的第一步,它是指在一幅圖像或一段視頻流中找出人臉部分的過程,包括人臉的大小和位置[2],同時(shí)將檢測(cè)到的人臉部分截取出來,進(jìn)行后續(xù)的處理。人臉的精確定位對(duì)于后續(xù)檢測(cè)算法有很大的幫助。由于本算法針對(duì)的對(duì)象是駕駛員,采集到的圖像中只出現(xiàn)駕駛員,所以可以認(rèn)為是單人臉檢測(cè)。
在目前的多種人臉檢測(cè)算法中,AdaBoost算法由于其快速和高精度而被廣泛使用。AdaBoost算法是由Freund和Schapire提出的,它是一種迭代算法,核心思想是將對(duì)同一組訓(xùn)練集訓(xùn)練出的不同弱分類器集合起來構(gòu)成一個(gè)強(qiáng)分類器。Viola和Jones提出了Haar特征,并將其分為三類:邊緣特征、線性特征、中心特征和對(duì)角線特征。然后將這些特征進(jìn)行組合形成了內(nèi)有白色和黑色兩種矩形的特征模板,并以白色矩形的像素和減去黑色矩形的像素和作為該模板的特征值。將特征模板在訓(xùn)練圖像子窗口內(nèi)任意放置,其中一種形態(tài)即為一種特征,直到找出所有子窗口的特征為止。
本文采用基于Haar-like特征的AdaBoost人臉檢測(cè)算法[3]來檢測(cè)人臉正面圖像,同時(shí)增加了兩個(gè)新的模板用來檢測(cè)傾斜人臉圖像(傾斜角度不超過±35)。
圖1 傾斜人臉檢測(cè)Haar-like模板Fig.1 Haar-like template of oblique face detection
選取不同光照條件下,不同實(shí)驗(yàn)對(duì)象的200幅圖片,采用該算法進(jìn)行人臉檢測(cè),實(shí)驗(yàn)證明該算法能夠準(zhǔn)確快速的檢測(cè)到人臉,有比較高的準(zhǔn)確率。下圖為部分效果圖。
圖2 采用AdaBoost分類器精確定位臉部圖像效果Fig.2 Face image effects that accurate positioning with AdaBoost classifier
由于駕駛員所處的外部環(huán)境比較復(fù)雜,在不同的時(shí)間和地點(diǎn)光照條件差別非常大[4],而光照對(duì)圖像有很大的影響,同時(shí)在圖像的采集過程中可能會(huì)有噪聲,所以為了提高圖像的效果以及后續(xù)算法的準(zhǔn)確性,需要對(duì)圖像進(jìn)行預(yù)處理來降低或去除噪聲和光照對(duì)圖像處理的影響。首先對(duì)于上面人臉定位后的圖像進(jìn)行尺寸歸一化,然后采用中值濾波法來對(duì)圖像進(jìn)行降噪處理,采用直方圖規(guī)定化來達(dá)到增強(qiáng)圖像的目的。
眼睛和嘴巴的形態(tài)是駕駛員疲勞判定的一個(gè)重要因素,所以準(zhǔn)確定位嘴巴的位置是至關(guān)重要的。對(duì)于上面得到的人臉圖像,我們首先要進(jìn)行二值化,閾值的選擇非常重要,直接影響二值圖像的效果。
目前,常用的確定閾值的方法主要包括人工選擇法和自動(dòng)閾值選擇法兩大類。人工選擇法主要是分析圖像的直方圖來確定閾值,不適用于實(shí)時(shí)系統(tǒng)中,而自動(dòng)閾值選擇法有更好的通用性和魯棒性,常用的自動(dòng)閾值選擇方法有極小點(diǎn)閾值法,迭代閾值法,最優(yōu)閾值法,Otsu法。
由于嘴巴位置位于人臉的下半部,如果對(duì)整個(gè)人臉做二值化,眉毛和眼睛等灰度較深的地方對(duì)嘴巴的影響較大,難以完整的提取嘴巴部分的輪廓,所以本文將人臉分為上下兩部分,對(duì)下半部分采用迭代閾值法[5]進(jìn)行二值化,從而得到嘴巴的完整信息。該方法的主要算法步驟為:
1)求出圖像的最大灰度值Zmax和最小灰度值Zmin,初始閾值 T0設(shè)為(Zmax+Zmin)/2;
2)Ti將圖象分割為前景和背景,分別求出兩者的平均灰度值Z O和Z B
3)求出新閾值 Ti+1=(Z O+Z B)/2;
4)若TK=TK+1,則所得即為閾值;否則轉(zhuǎn) 2),迭代計(jì)算,直到滿足終止條件為止。
對(duì)于經(jīng)過閾值分割得到的下半部分二值圖像,在人臉的下半部分嘴巴部分灰度較深,并且是比較連貫的區(qū)域,首先利用膨脹腐蝕等形態(tài)學(xué)運(yùn)算去除鼻孔以及噪聲點(diǎn)。由Adaboost算法得到的人臉圖像為正面人臉圖,所以嘴巴的位置位于人臉下半部分的中間,利用最小外接矩形表示出嘴巴的輪廓。
圖3 下半部人臉圖像處理Fig.3 Lower face image processing
要得到精確地嘴巴位置,就要找到嘴角,本文采用Harris角點(diǎn)檢測(cè)算法尋找嘴角。角點(diǎn)沒有明確的數(shù)學(xué)定義,一般認(rèn)為角點(diǎn)是圖像亮度變化劇烈的點(diǎn)或圖像邊緣曲線上曲率有極大值的點(diǎn)[6]。Harris算子是一種基于圖像灰度的角點(diǎn)檢測(cè)方法,當(dāng)某一點(diǎn)向任一方向發(fā)生小小偏移時(shí)灰度都發(fā)生很大變化,則說明該點(diǎn)為角點(diǎn)[7]。具體通過計(jì)算像素點(diǎn)所在位置的梯度變化來檢測(cè)角點(diǎn),若某像素點(diǎn)在x方向與y方向的梯度的絕對(duì)值均比較大,則認(rèn)為該像素點(diǎn)為角點(diǎn)。結(jié)合嘴角的特點(diǎn),本文檢測(cè)嘴巴區(qū)域的灰度圖,該區(qū)域亮度變化劇烈的點(diǎn)是嘴角。Harris角點(diǎn)檢測(cè)算法為:
1)用高斯函數(shù)代替二值窗口函數(shù),對(duì)不同的像素賦予不同的權(quán)重從而減少噪聲的影響。
2)計(jì)算自相關(guān)矩陣M為:
3)計(jì)算角點(diǎn)響應(yīng):
其中,Ix、Iy和 IxIy分別為灰度圖像(x,y)處像素點(diǎn)在 x,y方向的偏導(dǎo)數(shù)以及二階混合偏導(dǎo)數(shù);det M為矩陣M的行列式;trace M為矩陣M的跡。根據(jù)經(jīng)驗(yàn)為0.04~0.06。在判斷是否為角點(diǎn)時(shí),首先需要設(shè)置一個(gè)閾值,當(dāng)R大于該閾值時(shí)則認(rèn)為該點(diǎn)為角點(diǎn),文本結(jié)合嘴角的特點(diǎn),取R最大的兩個(gè)角點(diǎn)為嘴角。
找出嘴角的位置后,為了計(jì)算嘴巴的張開度,需要求出嘴巴張開的高度和寬度,首先將兩個(gè)嘴角連起來,如果兩個(gè)嘴角處于同一水平高度,那么嘴巴的高度為最小外接矩形的高度,寬度為兩個(gè)嘴角的距離。當(dāng)兩個(gè)嘴角處于不同的高度,即嘴巴是傾斜的,要找到嘴巴的高度和寬度,必須先矯正嘴巴。
矩形ABCD為嘴部最小外接矩形,a和b分別為矩形的長(zhǎng)和高,m1和m2分別為兩個(gè)嘴角。對(duì)于嘴部?jī)A斜的情況,在嘴部?jī)A斜角度為θ時(shí),嘴巴的寬度應(yīng)該為兩個(gè)嘴角的距離,而嘴巴的高度則為b/cosθ。
圖4 傾斜嘴部示意圖Fig.4 Sketch map of the oblique mouth
圖5 傾斜嘴部矯正Fig.5 Correction of oblique mouth
嘴部作為人臉面部信息的一個(gè)重要集中點(diǎn),在駕駛員感覺疲勞時(shí),嘴部會(huì)有打哈欠的表現(xiàn),所以我們可以將駕駛員嘴部動(dòng)作的持續(xù)時(shí)間作為疲勞判斷的依據(jù)。
1)計(jì)算嘴巴張開度
式中,Hi為嘴巴張開的高度,Wi為嘴巴的寬度。根據(jù)統(tǒng)計(jì),駕駛員在不說話,說話和打哈欠3種情況下的嘴巴張開度是不一樣的:駕駛員不說話時(shí),嘴部張開度介于0.1~0.3之間;說話時(shí),嘴巴連續(xù)忽閉忽張且每次持續(xù)時(shí)間較短;打哈欠時(shí),嘴部的張開度較大,一般情況下大于0.7,且持續(xù)時(shí)間較長(zhǎng)。
2)嘴部張開持續(xù)時(shí)間
式中,n為嘴巴張開的幀數(shù),t為每幀的時(shí)間。根據(jù)醫(yī)學(xué)數(shù)據(jù)統(tǒng)計(jì)顯示,人說話時(shí)每0.3 s~0.5 s發(fā)出一個(gè)音節(jié),而打哈欠時(shí)嘴部張開持續(xù)時(shí)間為4~5 s,當(dāng)駕駛員張嘴持續(xù)時(shí)間長(zhǎng)且嘴部張開度大于0.7時(shí),可以判斷駕駛員在打哈欠。
3)嘴部打哈欠頻率
式中,N為打哈欠次數(shù),T為單位時(shí)間。在進(jìn)行疲勞判定前需要先設(shè)定嘴部動(dòng)作頻率閾值Fm,本文設(shè)Fm為1次/分。
文中研究了疲勞駕駛檢測(cè)[8]中的人臉嘴部狀態(tài)。首先通過人臉定位算法找出人臉部分,然后對(duì)人臉的下半部分使用閾值迭代法進(jìn)行二值化,從而得到較完整的嘴部區(qū)域,通過最小外接矩形定位嘴巴區(qū)域,利用Harris角點(diǎn)檢測(cè)算法檢測(cè)嘴角,并且對(duì)傾斜嘴部進(jìn)行矯正,測(cè)量嘴巴的高度和寬度,從而得到嘴巴的張開度,通過嘴巴張開度以及持續(xù)時(shí)間來判斷嘴部狀態(tài),以嘴部動(dòng)作頻率作為疲勞檢測(cè)的一個(gè)判定依據(jù)。本過程已經(jīng)在Matlab7.0中進(jìn)行編程實(shí)現(xiàn),有較快的速度和較高的效率。
[1]沈永增,劉小磊.眼部疲勞狀態(tài)檢測(cè)算法的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(3):106-109.SHEN Yong-zeng,LIU Xiao-lei.Research and implementation of eye fatigue state detection algorithm[J].Computer applications and software,2011,28(3):106-109.
[2]王志良,孟秀艷.人臉工程學(xué)[M].北京:機(jī)械工程出版社,2008.
[3]Viola P,Jones M.Rapid Object Detection Using a Boosted Cascade of Simple Features[C]//Proc.of IEEE Conf.on Computer Visionand Pattern Recognition.Kauai, Hawaii,USA:[s.n.],2001.
[4]李智,謝劍斌,陳章永,等.依據(jù)Adaboost的紅外視頻圖像疲勞檢測(cè)算法[J].計(jì)算機(jī)工程與應(yīng)用,2012,34(5):107-111.LI Zhi,XIE Jian-bin,CHEN Zhang-yong,et al.The infrared video image fatigue detection algorithm Based on Adaboost[J].Computer Engineering and Applications,2012,34 (5):107-111.
[5]嚴(yán)曲,趙躍龍.一種基于迭代閾值法的身份證圖像二值化算法研究[J].計(jì)算機(jī)測(cè)量與控制,2005,13(6):595-597.YANQu,ZHAOYao-long.A study of twovaluealgorithmabout ID card image based on the iterative threshold method[J].Computer Measurement and Control,2005,13(6):595-597.
[6]趙文彬,張艷寧.角點(diǎn)檢測(cè)技術(shù)綜述[J].計(jì)算機(jī)應(yīng)用研究,2006,23(10):17-19.ZHAO Wen-bin,ZHANG Yan-ning.Review of corner detection technology[J].Computer Research and Application,2006,23(10):17-19.
[7]陳白帆,蔡自興.基于尺度空間理論的Harris角點(diǎn)檢測(cè)[J].中南大學(xué)學(xué)報(bào):自然科學(xué)版,2005,36(5):751-754.CHEN Bai-fan,CAI Zi-xing.Harris corner detection based on scale space theory[J].Journal of Central South University:Natural Science Edition,2005,36(5):751-754.
[8]Wang Q,Yang J,Ren M,et al.Driver Fatigue DetectionA Survey[C]//Proc of the 6th World Congress on Intelligent Control and Automation,2006:8587-8591.