基于3G視頻的駕駛員疲勞狀態(tài)檢測設計方案
摘要:疲勞駕駛已成為交通事故發(fā)生的主要原因之一。文中提出了一種基于3G 視頻的人眼疲勞檢測方法。通過DirectShow 技術對視頻流抓取視頻幀,采用膚色聚性特征進行人臉定位,基于灰度信息進行人眼定位與追蹤,并采用Perclos 方法進行疲勞判斷。通過此方法,可以及時了解駕駛者的疲勞狀態(tài),有效預防疲勞駕駛。
本文引用地址:http://cafeforensic.com/article/197204.htm疲勞駕駛是司機在駕車過程中介于意識清醒和進入睡眠的一種非正常狀態(tài),是導致交通事故的主要原因之一。由于車輛流動性強、任務區(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)。
1 視頻采集及預處理
文中使用車輛內部的3G 視頻監(jiān)控裝置來進行視頻采集,位于駕駛員頭頂正面上方,拍攝在駕駛過程中多種光照環(huán)境下、不同姿勢和精神狀態(tài)的駕駛員視頻。
視頻預處理主要采用DirectShow 技術進行視頻流解壓抓幀。利用DirectShow 的媒體監(jiān)測器對象( MediaDetector Object) ,將拍攝到的駕駛員視頻文件進行視頻流解壓縮,實時在線地從視頻流中提取指定的幀視頻圖像,并為后續(xù)的駕駛員眼睛狀態(tài)檢測提供位圖數(shù)據(jù)。
媒體監(jiān)測器不僅能獲取媒體源文件的格式信息,也可以通過捕獲過濾器從一個媒體文件的視頻流中捕獲一幅位圖圖像,通常獲得的位圖是24 位RGB 格式。通過搜索媒體文件,媒體監(jiān)測器可以獲得這個文件中任意點的圖像。應用程序通過調用IMediaDet 接口與MediaDetector 進行交互。接口包含了一些方法能夠從媒體源文件中提取重要信息,比如媒體類型、幀速率甚至是視頻流的單個幀。媒體監(jiān)測器將過濾器視圖封裝到對象中,從而使應用程序屏蔽掉與視圖相關的一些細節(jié)。
在疲勞檢測中,用得到的第一幅圖像檢測人臉和眼睛,如若失敗則從下一幅圖像檢測直至成功,并將得到的眼睛圖像作為動態(tài)模板對以后的序列進行眼睛追蹤,若失敗則重新定位人眼。
2 基于膚色檢測的人臉定位
膚色是人臉最為顯著特征之一,對于彩色圖像,膚色是圖像中相對集中、穩(wěn)定區(qū)域。膚色信息可將人臉和背景區(qū)域分開。研究表明,在除去亮度的色度空間中,不同人臉膚色分布具有聚類性。所以膚色的差異主要取決于色彩信息,而非亮度信息?;谀w色檢測方法利用人的膚色中Cr和Cb的聚類特性,在YCbCr色彩空間中檢測圖像中是否存在人臉。這種算法檢測速度快,并且受人臉旋轉或側轉的影響較小。
膚色分割可以采用的色彩空間有很多種。其中YCbCr色彩空間具有與人類視覺感知過程類似的構成機理,能很好地反映膚色分布,并反映出膚色聚類特性。YCbCr模型與RGB 模型的變換公式如下:
通過對人臉數(shù)據(jù)庫中和人臉視頻圖像中黃種人人臉膚色點的采樣進行分析,可得到實驗環(huán)境下膚色在YCbCr空間中的聚類,用數(shù)學表達式確定膚色范圍的方法進行膚色建模??筛鶕?jù)Chai 采用YCbCr顏色空間的CbCr平面,如果某像素點的顏色落入Cr =[133∶ 173]和Cb =[77∶ 127]范圍內,就認為是屬于膚色像素,否則就認為是非膚色像素。確定為膚色區(qū)域后,將其認定的膚色區(qū)域的R、G、B 值均設定為255,在圖像中顯示為白色; 非膚色區(qū)域設y = R = G = B = 0,即在圖像中顯示為黑色。隨后對得到的圖像采用自適應閾值二值化。
式中,g( t) 為灰度值為t 的像素個數(shù); G 為非零像素個數(shù)。最后利用投影技術及頭部的特點確定人臉上下和左右邊界。由于眼部處于人臉上半部分,故只需保留圖像的3 /5.
3 基于灰度信息的人眼定位
眼睛區(qū)域與周圍區(qū)域相比,具有灰度值較低且灰度變化率較大的特點。因此可基于眼睛圖像的灰度信息進行定位。
3. 1 眼睛粗略定位
準確定位人臉后,根據(jù)面部器官分布,人眼在臉部的上半部,可以很簡單的確定一個大概區(qū)域。觀察人臉圖片,發(fā)現(xiàn)眼部在水平方向經過皮膚、左眼眼白、左眼瞳孔、左眼眼白、皮膚、右眼眼白、右眼瞳孔、右眼眼白、皮膚、灰度變化較大。在灰度變化突變處進行微分,將產生高值,將其絕對值累加,則灰度變化越大的那一行,累積值越大。計算公式如下:
f( x,y) 為得到的人臉區(qū)域的灰度圖像,通過實驗發(fā)現(xiàn),在眼睛處導數(shù)變化值之和的絕對值最大,通過此方法可粗略判斷人眼所在線的位置。
3. 2 人眼精確定位
通過觀察發(fā)現(xiàn)眼睛周圍Cb值較高,而Cr值較低,因此由式( 5) 計算得到特征圖,以突出眼部特征。
其中,EyeMap 是眼睛特征圖,( Cb) 2,( Cr) 2,( Cb /Cr)都歸一化到[0,255]之間,Cr是由Cr求反得到( 255,Cr) .在得到EyeMap 圖后,設定閥值T,將EyeMap 小于T 的值設為0,這一步可視為一個簡單的濾波以去掉非眼部特征的干擾。
得到EyeMap 濾波圖后,結合人眼粗定位結果,從左到右搜索,按比例定義相對于人臉區(qū)域一定大小的框,當框進EyeMap 濾波圖值的和最大時,即為人眼。
3. 3 眼睛的追蹤
對人眼完成定位后,還要利用動態(tài)模板匹配的方法跟蹤眼睛。設眼睛模板左上角的位置為( x,y) ,下一幀的搜索范圍是原位置上沿上、下、左、右4 個方向各擴展10 個像素。其公式為:
式中,N 是模板中像索的個數(shù); M 為模板; I 為圖像中待匹配的部分。
可得所有大于閾值p 的最大值所對應的坐標為最匹配的位置。以此得到的眼睛圖像作為下一幀圖像的模板。在追蹤的過程中,若得到的p 均小于閾值或兩眼的行距過大則重新回到眼睛的檢測過程。
4 基于Perclos 的疲勞識別
文中的疲勞識別基于Perclos 的P80 模型,即將閉合程度大于80%的眼睛狀態(tài)判斷為閉合狀態(tài)。以初始時刻司機清醒時的上下眼瞼最大距離為標準,若以后得到的距離小于此距離的80%則判斷為閉合。假設實驗視頻幀率10 f·s - 1,分辨率為640 ×480,時長60 s.
則以每6 s 視頻作為1 個檢測單元,間隔0. 33 s 取1幀作眼睛狀態(tài)檢測。統(tǒng)計每個檢測單元內18 幀圖像的狀態(tài),得到眼睛閉合幀數(shù)CloseFrame_Num 和處理的總幀數(shù)SumFrame_Num,依據(jù)式( 7) 計算相應的Perclos 值。
如果所得Perclos 值大于實驗確定的閾值20%,則判斷此時駕駛員可能已處于疲勞狀態(tài),通過報警系統(tǒng)進行警告。
5 結束語
視頻監(jiān)控能對駕駛者進行監(jiān)督提醒,有效預防疲勞駕駛,減少疲勞駕駛所引起的車輛事故。3G 視頻監(jiān)控是車輛監(jiān)控發(fā)展的新趨勢。算法在3G 監(jiān)控視頻幀的基礎上,進行了人臉定位、人眼定位與追蹤及疲勞狀態(tài)判斷。實驗表明,該算法有較高的魯棒性及準確性,并能有效應用于實際。
評論