王 瑜,胡記文
(武警工程學院通信工程系,陜西西安 710086)
疲勞駕駛是司機在駕車過程中介于意識清醒和進入睡眠的一種非正常狀態(tài),是導致交通事故的主要原因之一。由于車輛流動性強、任務(wù)區(qū)域廣、安全隱患多、風險責任大,并缺乏科學有效的監(jiān)管手段,近年來疲勞駕駛所造成的車輛事故時有發(fā)生。通過3G視頻監(jiān)控系統(tǒng)對駕駛員面部狀態(tài)的實時監(jiān)控,一旦發(fā)現(xiàn)駕駛員眼睛疲勞狀態(tài)立即進行報警,能有效減少駕駛員疲勞所造成的交通事故,解決車輛管理中“看不見、聽不著、控不了”的難題。
基于3G視頻的疲勞檢測主要包括視頻流解壓抓幀、人臉定位、人眼定位追蹤和疲勞判斷4個部分。文中提出一種基于膚色檢測及灰度信息的疲勞檢測算法,能有效用于3G車輛視頻監(jiān)控系統(tǒng)。
文中使用車輛內(nèi)部的3G視頻監(jiān)控裝置來進行視頻采集,位于駕駛員頭頂正面上方,拍攝在駕駛過程中多種光照環(huán)境下、不同姿勢和精神狀態(tài)的駕駛員視頻。
視頻預處理主要采用DirectShow技術(shù)進行視頻流解壓抓幀。利用DirectShow的媒體監(jiān)測器對象(Media Detector Object),將拍攝到的駕駛員視頻文件進行視頻流解壓縮,實時在線地從視頻流中提取指定的幀視頻圖像,并為后續(xù)的駕駛員眼睛狀態(tài)檢測提供位圖數(shù)據(jù)。
媒體監(jiān)測器不僅能獲取媒體源文件的格式信息,也可以通過捕獲過濾器從一個媒體文件的視頻流中捕獲一幅位圖圖像,通常獲得的位圖是24位RGB格式。通過搜索媒體文件,媒體監(jiān)測器可以獲得這個文件中任意點的圖像。應用程序通過調(diào)用IMediaDet接口與Media Detector進行交互。接口包含了一些方法能夠從媒體源文件中提取重要信息,比如媒體類型、幀速率甚至是視頻流的單個幀。媒體監(jiān)測器將過濾器視圖封裝到對象中,從而使應用程序屏蔽掉與視圖相關(guān)的一些細節(jié)。
在疲勞檢測中,用得到的第一幅圖像檢測人臉和眼睛,如若失敗則從下一幅圖像檢測直至成功,并將得到的眼睛圖像作為動態(tài)模板對以后的序列進行眼睛追蹤,若失敗則重新定位人眼。
膚色是人臉最為顯著特征之一,對于彩色圖像,膚色是圖像中相對集中、穩(wěn)定區(qū)域。膚色信息可將人臉和背景區(qū)域分開。研究表明,在除去亮度的色度空間中,不同人臉膚色分布具有聚類性。所以膚色的差異主要取決于色彩信息,而非亮度信息。基于膚色檢測方法利用人的膚色中Cr和Cb的聚類特性,在YCbCr色彩空間中檢測圖像中是否存在人臉。這種算法檢測速度快,并且受人臉旋轉(zhuǎn)或側(cè)轉(zhuǎn)的影響較小。
膚色分割可以采用的色彩空間有很多種。其中YCbCr色彩空間具有與人類視覺感知過程類似的構(gòu)成機理,能很好地反映膚色分布,并反映出膚色聚類特性。YCbCr模型與RGB模型的變換公式如下
通過對人臉數(shù)據(jù)庫中和人臉視頻圖像中黃種人人臉膚色點的采樣進行分析,可得到實驗環(huán)境下膚色在YCbCr空間中的聚類,用數(shù)學表達式確定膚色范圍的方法進行膚色建模??筛鶕?jù)Chai采用YCbCr顏色空間的CbCr平面,如果某像素點的顏色落入Cr=[133∶173]和Cb=[77∶127]范圍內(nèi),就認為是屬于膚色像素,否則就認為是非膚色像素。確定為膚色區(qū)域后,將其認定的膚色區(qū)域的R、G、B值均設(shè)定為255,在圖像中顯示為白色;非膚色區(qū)域設(shè)y=R=G=B=0,即在圖像中顯示為黑色。隨后對得到的圖像采用自適應閾值二值化。
式中,g(t)為灰度值為t的像素個數(shù);G為非零像素個數(shù)。最后利用投影技術(shù)及頭部的特點確定人臉上下和左右邊界。由于眼部處于人臉上半部分,故只需保留圖像的3/5。
眼睛區(qū)域與周圍區(qū)域相比,具有灰度值較低且灰度變化率較大的特點。因此可基于眼睛圖像的灰度信息進行定位。
準確定位人臉后,根據(jù)面部器官分布,人眼在臉部的上半部,可以很簡單的確定一個大概區(qū)域。觀察人臉圖片,發(fā)現(xiàn)眼部在水平方向經(jīng)過皮膚、左眼眼白、左眼瞳孔、左眼眼白、皮膚、右眼眼白、右眼瞳孔、右眼眼白、皮膚、灰度變化較大。在灰度變化突變處進行微分,將產(chǎn)生高值,將其絕對值累加,則灰度變化越大的那一行,累積值越大。計算公式如下
f(x,y)為得到的人臉區(qū)域的灰度圖像,通過實驗發(fā)現(xiàn),在眼睛處導數(shù)變化值之和的絕對值最大,通過此方法可粗略判斷人眼所在線的位置。
通過觀察發(fā)現(xiàn)眼睛周圍Cb值較高,而Cr值較低,因此由式(5)計算得到特征圖,以突出眼部特征。
得到EyeMap濾波圖后,結(jié)合人眼粗定位結(jié)果,從左到右搜索,按比例定義相對于人臉區(qū)域一定大小的框,當框進EyeMap濾波圖值的和最大時,即為人眼。
對人眼完成定位后,還要利用動態(tài)模板匹配的方法跟蹤眼睛。設(shè)眼睛模板左上角的位置為(x,y),下一幀的搜索范圍是原位置上沿上、下、左、右4個方向各擴展10個像素。其公式為
式中,N是模板中像索的個數(shù);M為模板;I為圖像中待匹配的部分。
可得所有大于閾值p的最大值所對應的坐標為最匹配的位置。以此得到的眼睛圖像作為下一幀圖像的模板。在追蹤的過程中,若得到的p均小于閾值或兩眼的行距過大則重新回到眼睛的檢測過程。
文中的疲勞識別基于Perclos的P80模型,即將閉合程度大于80%的眼睛狀態(tài)判斷為閉合狀態(tài)。以初始時刻司機清醒時的上下眼瞼最大距離為標準,若以后得到的距離小于此距離的80%則判斷為閉合。假設(shè)實驗視頻幀率10 f·s-1,分辨率為640 ×480,時長60 s。
則以每6 s視頻作為1個檢測單元,間隔0.33 s取1幀作眼睛狀態(tài)檢測。統(tǒng)計每個檢測單元內(nèi)18幀圖像的狀態(tài),得到眼睛閉合幀數(shù)CloseFrame_Num和處理的總幀數(shù)SumFrame_Num,依據(jù)式(7)計算相應的Perclos值。
如果所得Perclos值大于實驗確定的閾值20%,則判斷此時駕駛員可能已處于疲勞狀態(tài),通過報警系統(tǒng)進行警告。
視頻監(jiān)控能對駕駛者進行監(jiān)督提醒,有效預防疲勞駕駛,減少疲勞駕駛所引起的車輛事故。3G視頻監(jiān)控是車輛監(jiān)控發(fā)展的新趨勢。算法在3G監(jiān)控視頻幀的基礎(chǔ)上,進行了人臉定位、人眼定位與追蹤及疲勞狀態(tài)判斷。實驗表明,該算法有較高的魯棒性及準確性,并能有效應用于實際。
[1]寇超.基于視頻的防疲勞駕駛研究[D].上海:上海大學,2008.
[2]劉芳.基于視頻的駕駛員疲勞駕駛實時檢測系統(tǒng)的設(shè)計與研究[D].杭州:浙江工業(yè)大學,2009.
[3]唐立峰,何東健.基于膚色分割的人臉檢測算法研究[J].計算機工程與設(shè)計,2009,30(19):4461 -4464.
[4]楊秋芬,桂衛(wèi)華,胡豁生,等.駕駛員疲勞駕駛中的眼睛定位創(chuàng)新算法[J].計算機工程與應用,2008,44(6):20 -24.
[5]王榮本,郭克友,儲江偉.適用駕駛員疲勞狀態(tài)檢測的人眼定位方法研究[J].公路交通科技,2003,20(5):111-114.
[6]孫曉玲,侯德文,儲凡靜.人臉識別中的眼睛定位方法[J].計算機技術(shù)與發(fā)展,2008,18(10):46 -49.