張偉偉 糜澤陽 肖凌云 錢宇彬
1.上海工程技術大學機械與汽車工程學院,上海,201620 2.中國標準化研究院,北京,100191
駕駛員疲勞是造成交通事故的重要原因[1],而檢測駕駛員面部疲勞信號之一的駕駛員打哈欠事件已經成為計算機視覺技術領域研究的熱點。駕駛員打哈欠檢測的首要任務是定位駕駛員面部,然后在面部區域檢測嘴部并分析嘴角或嘴內的形狀變化等。在人臉檢測方面,學者們已經提出了多種不同的方法,如主成分分析法[2]、神經網絡法[3]、支持向量機[4]以及建立人臉幾何模型[5]等。VIOLA等[6]提出了一種基于 Haar特征的人臉自適應提升訓練方法(AdaBoost),獲得了較好的檢測效果;SOCHMAN 等[7]提出的 Wald-Boost算法結合序列概率原理改進了AdaBoost算法,使其具有了更高的分類檢測效率;HSU等[8]通過皮膚亮度補償以及非線性顏色變換等技術來檢測面部區域,然而該方法只在靜態圖像上進行了測試,且在具有寬動態光照范圍的真實駕駛環境中,其“真白”假設前提不再成立,很難獲得可靠的檢測結果;CHOI等[9]采用 CDF(cumulative distribution funtion)分析方法定位駕駛員的瞳孔位置,然后根據檢測到的駕駛員視線的變化來確定駕駛員的疲勞狀態。實際上當駕駛員處于疲勞狀態時,眨眼和點頭的頻率會顯著增加,這些參數都可以用作疲勞評估的指標。
針對打哈欠檢測,一些研究人員關注于嘴部的幾何特征。SHABNAM等[10]首先通過皮膚分割來檢測嘴部區域,然后對比嘴內外區域的像素比來確定是否發生打哈欠事件;MANDALAPU等[11]直接采用支持向量機來分別訓練打哈欠與正常狀態下嘴部的狀態圖,在只有20幅靜態圖像的測試集中獲得了81%的檢測正確率;童兵亮[12]采用灰度投影模型來定位嘴角,并使用線性分類模型來區分打哈欠時的嘴角特征;SHABNAM等[13]采用顏色模型來確定嘴部區域,并根據嘴部的主動輪廓模型來確定嘴部輪廓的高寬比等。然而,以上算法測試均采用有限數量的靜態圖像,且圖像都來自于條件可控的室內環境。除此之外,NENOIT等[14]提出了一種基于譜頻率的方法來檢測嘴部閉合或張開狀態,但該方法需基于駕駛員面部以及嘴部已經檢測定位的前提;FAN等[15]使用Gabor小波變換提取嘴角點的紋理特征,然后據此判斷駕駛員的疲勞狀態,但這種方法易受到光照、遮擋和角度變化的影響;HYUN等[16]提出了一種基于多模態車輛和生理傳感器數據的駕駛員狀態估計算法,但與單圖像識別駕駛員疲勞狀態方法相比,其成本較高,且應用起來較為繁瑣。
為適應真實駕駛環境,并慮及面部特征易受性別、面部朝向、光照、遮擋、面部表情以及圖像尺度和圖像低分辨率的影響等因素,本文提出一種基于深度卷積網絡[17-18]和在線學習跟蹤的駕駛員打哈欠檢測方法。
系統框架如圖1所示。首先,面部檢測器在圖像多尺度滑窗中根據深度卷積網絡定位駕駛員面部區域,同時,采用基于另一深度卷積網絡的鼻子檢測器在面部區域定位鼻子區域;然后,通過在線學習的方法訓練隨機森林目標檢測器,對光流跟蹤器的漂移誤差進行校正。有相對剛性的人臉輪廓中,嘴部區域位于鼻子下方,當打哈欠事件發生時,嘴角具有較大形變,其邊緣的水平方向梯度強度值將有劇烈的增大;而駕駛過程中駕駛員經常扭頭查看兩側交通狀況,因此,打哈欠檢測器融合了左右嘴部區域的邊緣梯度值、鼻子跟蹤置信度以及面部運動方向等信息綜合判斷是否有打哈欠事件發生。

圖1 駕駛員打哈欠檢測系統原理框圖Fig.1 Pipeline of driver yawning detection system
深度卷積網絡實質上是一種多層神經網絡,其融合了局部感知野、共享權重以及空間降采樣等特性,不僅可以大幅減少訓練參數個數,還可以對一定程度的尺度縮放、旋轉以及平移等保持魯棒性。該深度卷積網絡主要由交替連接的卷積層和降采樣層組成,其中卷積層本質上是由不同的局部濾波器組合而成,而最終將得到的高層級的特征向量全連接到一個神經網絡上。在駕駛員面部檢測過程中,可以采用大量的原始面部圖像數據庫進行訓練。圖2顯示了基于深度卷積網絡的駕駛員面部檢測結構圖。

圖2 用于駕駛員人臉檢測的深度卷積網絡的多層級結構Fig.2 Multi-level structure of deep convolution network for driver face detection
在圖2的深度卷積網絡中,輸入圖像統一設定為96pixel(寬)×120pixel(高)(圖中簡寫為96×120)。第一層是一個濾波器感知野大小為4×4的卷積層,通過該卷積層,每一個輸入圖像得到4個特征圖,其中顯示了2個特征圖例子。卷積層的下一層是降采樣層,該層通過一個3×3的局部平均核對上一層的特征圖進行空間降采樣,最終其特征圖像素由93pixel×117pixel降低至31pixel×39pixel,使得該卷積網絡降低對于旋轉和畸變的敏感度,該層中顯示了3個經過降采樣的特征圖例子。經過三次不同的卷積層和降采樣層的迭代,輸入層最終演變為具有1pixel×2pixel的40個高層級特征圖,因此最終形成的特征向量具有80個參數,全部連接至輸出層的神經網絡進行分類訓練。如圖2所示,每一層均由不同大小的卷積核或降采樣核進行處理,形成不同個數的特征圖,為簡化表達,將圖2所描述的深度卷積網絡結構描述為96×120-4C4-3S4-4C6-2S6-3C12-2S12-3C20-2S20-2C40,其中字母 C 代表卷積層,字母S代表降采樣層,字母前的數字為核尺寸,字母后的數字為特征圖數量。
采用類似的方法設計了用于駕駛員鼻子檢測的深度卷積網絡架構。鼻子檢測的訓練圖片全部來自于駕駛員人臉檢測的數據集,同時鼻子的圖像像素(14pixel×18pixel)遠遠小于駕駛員面部,且鼻子相對人臉具有較小的個體差異,因此,該深度卷積網絡架構具有較少的層級結構和較少的層內濾波參數。用于駕駛員鼻子檢測的深度卷積網絡簡化為14×18-3C6-2S6-3C10-2S10。
目前常用的目標跟蹤方法有LK光流[19]、梯度直方圖[20]以及均值漂移[20]等快速跟蹤方法,但這些方法均要求目標始終保持在視頻場景內,不能應對駕駛員面部目標因扭頭觀察鄰車道車況而短時間遮擋或消失等情況,同時,LK光流跟蹤法雖簡單易行,但其光照亮度一致性的前提在駕駛場景中難以滿足,在駕駛環境中容易產生漂移誤差,而均值漂移等方法均采用直方圖模型,對于駕駛過程中面部目標一定程度的旋轉以及變形缺少適應性,缺少必要的模型更新。為適應駕駛過程中強烈的光照變化、面部目標可能的旋轉形變、短時遮擋或消失等問題,有必要引入可在線學習目標的外觀與姿態變化并進行訓練的目標檢測器,通過該在線檢測器搭配可以快速跟蹤的光流跟蹤器對目標位置進行綜合判定。為確保在線目標檢測器的運行效率,采用低維的局部二比特特征和快速高效的隨機森林分類器進行目標檢測訓練。
在確定跟蹤目標的初始位置之后,需要根據目標的外觀以及周圍背景在線訓練目標檢測器。為便于實時計算,在線訓練的特征應能在反映物體梯度方向性的情況下盡量保持簡潔性。啟發于物體檢測常用訓練特征 Haar[6]、LBP(local binary pattern)[21]以 及 HOG(histogram oriental gradient)[22]等,特設計了更簡潔的二比特特征,僅通過計算水平和垂直方向灰度總和,并比較大小便可實現前述三種特征對物體梯度方向的反映,避免了大量的梯度求導運算,具有更快的運行速度。該特征反映了圖像區域內的邊緣梯度方向,并對該梯度方向性進行了量化,最終獲得了四種可能的編碼結果。如圖3所示,對目標區域隨機選取若干個矩形框(圖3中虛線框和實線框),對矩形實線框內灰度進行編碼結果為00,其中I(Ai)(i=1,2,3,4)代表選定的圖像框內的第i個區域內的灰度值總和;所有虛線框內二比特特征構成當前目標圖像的特征向量X=(x1,x2,…,xk),其中k是目標區域選定的矩形圖像框數量,反映了特征的維度,xk是四種可能的二比特特征。

圖3 在目標邊界框內進行局部灰度梯度方向編碼的二比特特征Fig.3 Binary-bit feature of local gray gradient direction coding in the target bounding box
為適應目標外觀的動態改變,在線訓練檢測器的正負樣本均來自于當前幀目標周圍的圖像塊,其大小與目標大小一致。為提高在線檢測器的分辨能力,只選擇那些區域內部像素方差在目標圖像方差一半以上的樣本圖像塊。與目標區域的重合率大于0.7的100個圖像塊選為訓練的正樣本,重合率小于0.7的300個圖像塊視為訓練的負樣本。樣本圖像塊與目標圖像區域的重合率O的計算方法為

其中,b1和b2分別為樣本圖像塊和目標圖像區域的邊界面積;∩代表圖像邊界框之間重疊部分的面積。
隨機森林分類器是一種由多棵決策樹組合而成的聯合預測模型,是一種快速且有效的分類模型[23]。各決策樹獨立進行樣本類別的預測,對所有的預測類別進行投票,票數最高的類別被選舉為最終的結果。在訓練中,每棵樹上的葉節點記錄了經過該節點的正樣本的數量p和負樣本數量n。而每棵決策樹對每個輸入圖像的特征向量通過葉節點的后驗概率進行類別的預測,其目標類別的后驗概率

其中,k既是目標區域選定的矩形圖像框數量,也代表了隨機森林分類器中決策樹的數量。
最終對來自所有決策樹的后驗概率進行均值計算,若均值大于0.5,則隨機森林分類器輸出類型為目標,否則為背景。而在整幅圖像的掃描窗內檢測單目標時,往往只選擇具有最高隨機森林預測概率輸出的掃描窗格作為目標物體的邊界框。
隨機森林分類器由兩個參數來決定其精度和速度:森林中決策樹的數量m以及每棵決策樹中包含特征的數量k。決策樹的數量越多,隨機森林分類器的分類性能越好,但運行的速度越慢。在本試驗中,決策樹數量m設定為10可以在滿足實時性的同時保證分類的性能。而每棵樹中所使用的特征維度k越大,隨機森林分類器的判別能力越強。由于每個特征有4種可能的編碼模式,因此每個決策樹中葉節點的數量有4k個。在本文中,選定k為10。
采用LK光流法由幀Ft到幀Ft+1前向跟蹤目標時,跟蹤點坐標Pt轉換為Pt+1,而Pt+1也可由LK光流法在幀Ft上得到反向虛擬跟蹤點P′t。若LK光流法跟蹤正確,則跟蹤誤差e=|Pt-P′t|應足夠小,如圖4所示。
根據LK光流跟蹤的誤差以及在線隨機森林檢測器的目標位置,最終目標邊界框的范圍為


圖4 LK光流跟蹤誤差Fig.4 Optical flow tracking error
其中,PLk(x,y,w,h)為LK光流法得到的純跟蹤邊界框的左上角坐標(x,y)以及邊界框的寬度w和高度h;POLD(x,y,w,h)為在線檢測方法得到的目標邊界框位置;eth為跟蹤誤差,其閾值為5個像素,大于此誤差時認為光流法跟蹤失敗。
根據相鄰幀得到的跟蹤目標的邊界框所選定的圖像塊bt之間的相似程度,可以大概估計目標跟蹤的質量,即跟蹤置信度T:

其中,C為正則化的圖像互相關系數,圖像塊的大小均事先調整為相同的分辨率。
整個視頻算法在公開的行人跟蹤視頻測試集[24]上進行了測試,并與行人的標準參考位置進行了對比,其效果如圖5所示。
圖5中,行人跟蹤測試視頻的分辨率為QVGA格式,各跟蹤方法使用的測試函數(如光流、均值漂移、梯度直方圖、隨機森林分類器等)均采用MATLAB R2014a庫函數。從圖5中可以明顯看出,梯度直方圖與均值漂移等方法的跟蹤效率隨著視頻幀數增加逐漸降低,大部分視頻幀內不能有效跟蹤行人的移動,而光流法雖能根據幀差原理檢測到行人移動,但跟蹤效率受光照影響太大而導致大部分跟蹤結果產生漂移誤差,與標準參考框的重合率大部分在0.5以下,而通過在線學習的方式訓練的檢測器可以有效地校正光流跟蹤器產生的漂移誤差,在隨機森林決策樹數量m為10的情況下(配置1)可以顯著地改善跟蹤效果,能連續跟蹤復雜場景下的行人目標,使得大部分視頻幀的跟蹤重合率大部分在0.7以上,而決策樹數量m降低為8(配置2)時,跟蹤重合率有所下降,如圖5a所示。

圖5 在公開測試集上的跟蹤重合率及其幀數統計直方圖Fig.5 The tracking overlap and frame histogram on open datasets
在通過檢測跟蹤獲得駕駛員鼻子位置之后,可以在鼻子正下方直接選定一個區域為嘴部形變分析區域。根據經驗,該嘴部區域的寬度和高度分別設定為鼻子的1.5倍和1.8倍。嘴部區域由其豎直中心線分為左右兩部分,如圖6所示。
當打哈欠事件發生時,在嘴角處有明顯的形變發生,豎直邊沿的比例增大,因此,在嘴部區域對圖像進行水平和豎直方向邊緣濾波器卷積,并求取絕對梯度方向在0~10°內的像素的梯度強度和:當打哈欠事件發生時,0~10°范圍內的像素梯度強度和會有明顯的增大。像素梯度計算方法如下:

圖6 兩種狀態嘴角梯度方向示意圖Fig.6 Two state of mouth corner gradient

其中,I(x,y)為坐標點(x,y)處的像素值;θ和M 分別為點(x,y)處的梯度角度值和強度值。
圖7顯示了在打哈欠過程中,左側嘴角部分0~10°范圍內的像素梯度強度和(在3左右浮動)相對于正常狀態數值明顯增大(最高可達20)。在不同的光照條件下,相同的打哈欠事件的梯度強度和應該會有較大的差異。為在不同光照場景下確定不同嘴型打哈欠檢測的統一閾值,需要將所有嘴部區域大小正則化至同一尺度(36×46),亮度值均由0~255正則化至0~1范圍內。然而,當外界光照強烈變化時,跟蹤質量急劇下降,此時無法分析嘴角梯度強度;當駕駛員扭頭觀察兩側車流時,嘴部區域往往包含面部與背景之間的豎直邊沿,這為嘴角梯度強度的分析造成了極大的干擾。圖8顯示了車輛通過橋梁下方時光照的突變導致鼻子跟蹤失敗的情景。很明顯,由于鼻子跟蹤失敗導致嘴部區域的誤判,在右側嘴角處面部與背景之間形成了較長的豎直邊沿,使得右側嘴角0~10°內的梯度強度和增大至29.40,該值遠遠大于左側嘴角的8.7,同時右側嘴角10°~20°范圍內的梯度強度和18.61也遠大于左側梯度強度和3.68,而鼻子跟蹤置信度降低至0.574 3,但此時并沒有明顯的嘴部打哈欠事件發生。

圖7 正常狀態和打哈欠狀態(矩形框內)下左側嘴角0~10°范圍內梯度強度和Fig.7 Gradient intensity in 0~10degree of left mouth corner in normal and yawning state(rectangle box)
為獲得打哈欠檢測的精確描述,在進行嘴角梯度強度分析的同時,引入鼻子跟蹤置信度以及面部橫向運動等信息以作綜合判斷。設定打哈欠判別值YD來融合以上三種信息:

圖8 車輛通過橋梁時面部目標跟蹤失敗后的左右側嘴部梯度強度和的對比Fig.8 Comparisons of gradient intensity of left and right mouth corners after failure of facial tracking when vehicle pass bridge

其中,SL和SR分別為尺寸亮度正則化后的左右兩側嘴部區域0~10°范圍內梯度強度和,T為鼻子跟蹤器輸出的跟蹤置信度,Tth為可靠跟蹤的置信度閥值,設定為0.6。當跟蹤失敗時,T 值為0。而面部運動方向可以通過跟蹤過程中的鼻子中心位置進行判斷:如果鼻子中心橫向像素值突然增大,則代表駕駛員面部向右運動;反之,則代表駕駛員面部向左運動,即

其中,vh和vth分別為駕駛員鼻子中心橫向運動速度(橫向坐標的幀間差分值)及其速度閾值。
駕駛員面部分類數據庫圖像截取于本實驗室內9名駕駛員的行車視頻,以及公開的打哈欠測試視頻YawDD[25]中的89個駕駛視頻,該數據庫共有52 344個正樣本圖像以及108 323個負樣本圖像,樣本圖像大小為96pixel×120pixel,圖9顯示了部分正樣本示例。

圖9 駕駛員面部數據庫正樣本示例Fig.9 Positive samples of driver facial database
從圖9可以看出,駕駛員面部數據庫正樣本中包含多種光照條件下的不同面部角度的駕駛員面部圖像。訓練和測試均經過圖2所示的卷積神經網絡配置下的十折交叉驗證,其中圖2中的參數配置為缺省配置。為對比深度卷積網絡的訓練檢測性能,分別設定了另外兩種不同配置的深度卷積網絡架構:第一種與本文缺省配置具有同樣的網絡層數,但每層具有更多的特征圖數量,其網絡結構簡化為 96×120-4C4-3S4-4C8-2S8-3C16-2S16-3C32-2S32-2C64,該網絡架構稱為“多特征圖網絡”;第二種較本文缺省配置僅缺少最后一層降采樣層,其他層數配置相同,其網絡結構簡化為96× 120-4C4-3S4-4C6-2S6-3C12-2S12-3C20-2S20,該網絡稱為“少一卷積層網絡”。圖10顯示了三種方法下駕駛員面部檢測深度卷積網絡的ROC(receiveroperating characteristic)性能曲線。

圖10 不同深度卷積網絡配置下的駕駛員面部分類ROC曲線Fig.10 The ROC curves of driver facial classification with different deep network configurations
從圖10可以看出,具有相同網絡層數的情況下,多特征圖網絡相對于本文缺省配置具有更好的分類性能,但性能改善效果一般;而本文缺省配置若缺少一層網絡配置,則其性能下降較為明顯。表1顯示了三種方法在同一工作站(配置酷睿i5-6500CPU和MATLAB R2014a)上的訓練開銷和測試精度。
可以看出,在本文缺省配置下可以獲得較為滿意的性能,且計算機內存和時間開銷均較為適中,特將該缺省配置下的深度卷積神經網絡與常規的AdaBoost算法及其改進版WaldBoost算法采用相同的面部數據庫進行性能效果對比,如圖11所示。通過圖11可以看出,深度卷積網絡相對于常規的Boost算法具有很明顯的分類性能優勢。

表1 不同深度卷積網絡配置下的訓練開銷和測試精度Tab.1 Training overhead and test accuracy with different deep network configurations

圖11 用于駕駛員面部圖像分類的深度卷積網絡與Boost算法的ROC曲線性能比較Fig.11 Performance comparison of ROC curves between depth convolution network and Boost algorithm for driver face image classification
圖12顯示了車輛經過橋梁下方時駕駛員打哈欠過程中的若干視頻截圖。在車輛駛出橋梁下方的過程中,光照的突然變化使得跟蹤逐漸惡化甚至于跟蹤失敗,跟蹤置信度從0.874 66下降至0.574 3。由于跟蹤失敗,僅僅采用嘴角區域的邊緣梯度強度分析易引起誤警。如圖12d~圖12f所示,該時間段沒有發生打哈欠事件,但因為跟蹤失敗導致嘴部區域判斷有誤,進而輸出錯誤的打哈欠警告信息。

圖12 車輛通過橋梁下方時跟蹤失敗引起的打哈欠誤警事件的典型視頻序列截圖Fig.12 Typical video sequences of yawning error alert events caused by tracking failure when vehicles pass under bridges
圖12中對應的視頻序列中,右側嘴部區域0~10°范圍內的梯度強度和的變化趨勢以及跟蹤置信度值如圖13所示。在該視頻序列內打哈欠事件發生在579~656幀范圍內,如圖13中實線矩形框所示。當實線矩形框內打哈欠事件發生時,0~10°范圍內的梯度強度和顯著地增大,如圖13a所示。然而,僅僅采用梯度強度值將會引入較多的誤警率,如圖13b中矩形虛線區域所示,此段時間內并沒有打哈欠事件發生,但此區域內梯度強度和甚至會高于矩形實線區域內的梯度強度和。誤判產生的主要原因來自于跟蹤質量下降和跟蹤失敗引起的鼻子位置誤差,如圖13b所示,跟蹤置信度在矩形虛線區域迅速減小,甚至跟蹤丟失。
另一種易引起誤警率的現象是駕駛員行車過程中扭頭引起的嘴部區域選擇誤差。圖14顯示了駕駛員面部在視頻331~385幀中轉向右側時右側嘴角梯度強度與鼻子中心橫向位置分析。

圖13 跟蹤質量下降時的駕駛員打哈欠檢測的多數據分析Fig.13 Multi-data analysis of yawning detection when the tracking quality is degrading
在圖14所示的視頻序列中,打哈欠事件發生在517~645幀之間,如矩形實線區域所示,然而僅進行梯度強度分析將在331~382幀之間引入誤警,如矩形虛線區域所示,此段區間內駕駛員面部轉向右側,如圖14b所示。因此有必要綜合考慮嘴部區域的梯度強度、鼻子跟蹤置信度以及駕駛員面部運動方向等信息來確定是否有打哈欠事件發生。
圖15顯示了圖13和圖14兩個視頻序列內對應的打哈欠判別值YD的變化情況。

圖15 圖13和圖14對應的視頻序列內的打哈欠判別值YD的變化情況Fig.15 The changes of yawning discrimination value YDin Fig.13and Fig.14video sequences
圖15中,在打哈欠事件發生時,YD可以智能化地選擇左側或右側嘴部區域作為分析對象,從而在圖15a和圖15b分別顯示了圖13和圖14視頻序列內打哈欠事件發生時YD值的明顯增大,可以通過左側區域的恒虛警率自適應閾值[26]檢測到矩形實線框內打哈欠事件的發生,且最大限度地降低了誤警事件發生的可能性。該駕駛員打哈欠檢測方法在YawDD視頻集[25]上進行了測試,打哈欠檢測成功率達到93.7%,遠高于文獻[25]中60%的檢測成功率。本方法仍未達到完全的檢測效率,其主要原因在于:①少量視頻內駕駛員打哈欠時面部有旋轉,在鼻子正下方無法準確選定嘴部區域;②少量視頻內駕駛員打哈欠時有用手遮擋面部的習慣,導致面部跟蹤失敗或嘴部區域無法定位。
(1)根據交通場景復雜多變、光照強度變化范圍大、駕駛員面部特征個體差異大的特點,設計了深度卷積網絡架構對駕駛員面部進行分類檢測,根據其監督式訓練學習機制,可以深度提取面部的主要特征,使得該分類網絡獲得較為理想的分類檢測效果。
(2)設計了低維的局部二比特特征,同時利用該類特征在線訓練了隨機森林面部目標檢測器,將其與傳統的光流跟蹤器搭配,可以克服光流跟蹤器易受光照影響的缺點,彌補了光流跟蹤器的漂移誤差。整個在線學習跟蹤算法可以通過跟蹤置信度反映跟蹤質量。
(3)采用統計方式分析了嘴角區域的梯度強度,可以避免低分辨率下直接定位嘴角的困難;同時,在駕駛視頻測試集上的實驗結果證明,結合鼻子跟蹤器置信度以及面部運動方向等綜合判斷駕駛員打哈欠行為,在提高檢測正確率的同時也降低了誤警事件發生的可能。