廖明明, 趙波
(上海工程技術(shù)大學(xué)機(jī)械與汽車工程學(xué)院, 上海 201620)
疲勞駕駛是威脅道路安全和造成人員傷亡的主要因素之一[1]。中國(guó)交通部的一項(xiàng)調(diào)查顯示,每年有90多萬(wàn)人死于疲勞駕駛,占交通事故死亡人數(shù)的6%以上[2]。因此,疲勞檢測(cè)算法的研究對(duì)減少交通事故引起的人員傷亡和財(cái)產(chǎn)損失具有重要意義。
疲勞檢測(cè)的方法可分為三種:基于生理信息,基于車輛行為,基于視覺(jué)特征?;谝曈X(jué)特征的方法大多是通過(guò)分析眼部和嘴部的特征或者整體行為來(lái)識(shí)別駕駛員的疲勞狀態(tài)。Zhao等[3]出了一種基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的疲勞檢測(cè)算法。該算法的第一個(gè)網(wǎng)絡(luò)將人眼和非人眼進(jìn)行分類,第二個(gè)網(wǎng)絡(luò)檢測(cè)人臉特征點(diǎn)的位置,根據(jù)獲得的特征點(diǎn)位置計(jì)算眼睛睜開(kāi)程度,并采用PERCLOS準(zhǔn)則來(lái)判斷疲勞狀態(tài)。You等[4]利用改進(jìn)的深度神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉檢測(cè),使用Dlib工具獲取人臉的特征點(diǎn),通過(guò)眼睛長(zhǎng)寬比(eye aspect ratio,EAR)對(duì)眼睛狀態(tài)進(jìn)行識(shí)別,進(jìn)而得到駕駛員的疲勞狀態(tài)。王霞等[5]通過(guò)對(duì)嘴部的內(nèi)輪廓進(jìn)行Gabor特征提取,再通過(guò)嘴部的開(kāi)合頻率進(jìn)行疲勞判別。Xie等[6]利用最先進(jìn)的卷積神經(jīng)網(wǎng)結(jié)構(gòu)作為遷移學(xué)習(xí)過(guò)程中的特征提取器,利用長(zhǎng)短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)學(xué)習(xí)打哈欠動(dòng)作時(shí)間維度的特征,該模型的優(yōu)點(diǎn)是能夠?qū)⒋蚬穭?dòng)作與說(shuō)話區(qū)分開(kāi)。Liu等[7]提出了結(jié)合面部特征和模糊推理理論的方法。使用多塊局部二進(jìn)制模式(MB-LBP)和Adaboost算法對(duì)駕駛員的眼睛和嘴部區(qū)域進(jìn)行定位。并通過(guò)模糊推理系統(tǒng)對(duì)駕駛員的疲勞狀態(tài)進(jìn)行評(píng)估。Ji等[8]使用多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行疲勞檢測(cè),而且為了進(jìn)一步分析駕駛員疲勞狀態(tài),將眼睛和嘴部的兩個(gè)特征結(jié)合起來(lái),構(gòu)成疲勞判別模型。戎輝等[9]提出使用遷移學(xué)習(xí)的方法將駕駛員分心行為分為7類,進(jìn)而更加深入地分析駕駛員狀態(tài)。
如上所述,目前大多數(shù)研究[3-8]主要通過(guò)提取人臉的局部特征或者整體行為特征[9]來(lái)進(jìn)行疲勞識(shí)別。然而,這樣對(duì)面部整體的疲勞表情特征并沒(méi)有充分地挖掘,會(huì)導(dǎo)致部分面部特征丟失,從而難以將面部的整體疲勞狀態(tài)表現(xiàn)出來(lái)。因此,現(xiàn)以駕駛員面部表情為研究對(duì)象,提出一種結(jié)合傳統(tǒng)特征和卷積神經(jīng)網(wǎng)絡(luò)的疲勞狀態(tài)識(shí)別網(wǎng)絡(luò)。該網(wǎng)絡(luò)結(jié)合整體面部特征和局部特征,有效提高疲勞狀態(tài)識(shí)別的準(zhǔn)確率。通過(guò)對(duì)駕駛員面部特征進(jìn)行融合的疲勞識(shí)別算法的研究,旨在推動(dòng)駕駛員疲勞檢測(cè)的智能化發(fā)展。
疲勞檢測(cè)算法流程如圖1所示。算法的第一步是人臉圖像的預(yù)處理,預(yù)處理是人臉表情識(shí)別的重要步驟,理想的預(yù)處理應(yīng)該去除純表情圖像中不相關(guān)的信息(如光照、背景),得到預(yù)處理后的圖像具有均勻的大小和歸一化的亮度。利用Dlib進(jìn)行人臉檢測(cè)并提取表情感興趣區(qū)域。對(duì)采集的圖片進(jìn)行直方圖均衡化處理,減小真實(shí)駕駛場(chǎng)景中光照條件變化的干擾。
Dlib是一個(gè)開(kāi)源工具包,包含機(jī)器學(xué)習(xí)算法和工具,被廣泛應(yīng)用于工業(yè)和學(xué)術(shù)界。Dlib適用于人臉檢測(cè),因?yàn)椴粌H可以描述各種人臉的輪廓和邊緣特征,而且由于在局部區(qū)域上執(zhí)行操作,使得主體的運(yùn)動(dòng)被忽略。在Dlib工具包中,原始圖片如圖2(a)所示,人臉的姿態(tài)由68個(gè)關(guān)鍵點(diǎn)表示,如圖2(b)所示。
使用Dlib進(jìn)行人臉檢測(cè),主要有三個(gè)原因:①Dlib具有檢測(cè)速度快、使用方便的優(yōu)點(diǎn);②不需要測(cè)試者的先驗(yàn)人臉檢測(cè);③Dlib相對(duì)于其他的人臉檢測(cè)方法能夠快速準(zhǔn)確地分割出用于表情識(shí)別的人臉區(qū)域。表情感興趣區(qū)域分割效果如圖2(c)所示。
在真實(shí)的駕駛環(huán)境中,駕駛室內(nèi)的光照條件時(shí)常會(huì)發(fā)生變化,駕駛員臉部的各個(gè)部分也會(huì)呈現(xiàn)出不同的亮度,這將不可避免地對(duì)識(shí)別結(jié)果造成很大干擾。直方圖均衡化是圖像處理中一種簡(jiǎn)單而有效的算法,可以使不同圖像的灰度值分布更加均勻,減小不同光照條件帶來(lái)的干擾。如圖3所示,直方圖均衡化優(yōu)化了更亮的面部部分,人臉的重要特征被更好地呈現(xiàn)。
圖1 疲勞表情檢測(cè)流程Fig.1 Fatigued expression detection flow chart
圖2 Dlib人臉檢測(cè)及分割效果Fig.2 Results of Dlib face detection and segmentation
圖3 直方圖均衡處理Fig.3 Histogram equalization processing
1.3.1 Gabor特征
Gabor濾波器[10]被廣泛用于局部特征提取、紋理分析和邊緣檢測(cè)。使用Gabor濾波器對(duì)圖像進(jìn)行處理,圖像的邊緣和紋理變化能得到最高的響應(yīng),并能同時(shí)對(duì)空間和頻率信息進(jìn)行定位。Gabor濾波器可以捕捉顯著的視覺(jué)特性,如空間定位、方向選擇性和空間頻率特性??紤]到這些優(yōu)點(diǎn),選擇Gabor特征來(lái)表示人臉表情。Gabor濾波器的定義為
[eiku,vz-e-σ2/2]
(1)
式(1)中:eiku,vz為震蕩波函數(shù),其實(shí)部和虛部分別是余弦函數(shù)和正弦函數(shù);σ=2π為常量;i為虛數(shù)。且z=(x,y)給定了空間域中的位置,頻域向量ku,v定義為
(2)
式(2)中:φu=uπ/umax,φu∈[0,π);f為Gabor表征各種頻率;v為Gabor濾波器的比例,該比例主要確定Gabor濾波器在頻域中的中心;u為Gabor濾波器的方向。
1.3.2 LBP特征
局部二值模式(LBP)最初是由Ojala等[11]在引入用于紋理的描述,后來(lái)應(yīng)用于人臉?lè)治?。LBP算子通過(guò)用中心值對(duì)每個(gè)像素的3×3鄰域取閾值來(lái)標(biāo)記圖像的像素,并將結(jié)果視為二進(jìn)制數(shù),即相鄰像素值等于或高于中心像素值,則用1表示,否則用0表示。然后生成的直方圖可以用作紋理描述,圖5為原始LBP算子的圖解。LBP是一種能夠描述灰度圖像局部紋理特征的算子,它具有旋轉(zhuǎn)不變性和灰度不變性的特性。一般情況下不直接使用LBP作為分類識(shí)別的特征向量,而是使用LBP特征直方圖作為分類識(shí)別的特征向量。
圖4 Gabor濾波器處理結(jié)果Fig.4 Results of Gabor filters processing
圖5 原始LBP值定義Fig.5 Origin definition of LBP value
為提高疲勞表情識(shí)別的準(zhǔn)確率,設(shè)計(jì)的疲勞識(shí)別網(wǎng)絡(luò)融合了駕駛員面部的全局和局部的特征。全局特征傾向于表現(xiàn)表情的完整性,而局部特征側(cè)重于局部區(qū)域的細(xì)節(jié)描述,可以直接表現(xiàn)面部的活躍表情區(qū)域。這兩個(gè)獨(dú)立的分支從兩個(gè)不同的方面表示表情,具有很好的互補(bǔ)性。
提出的疲勞表情識(shí)別網(wǎng)絡(luò)包括特征提取網(wǎng)絡(luò)FE-Net以及表情識(shí)別網(wǎng)絡(luò)ER-Net,具體結(jié)構(gòu)如圖6(a)所示。FE-Net具有雙分支結(jié)構(gòu),第一個(gè)分支以表情感興趣區(qū)域的Gabor特征作為輸入,提取面部全局特征;另一個(gè)分支以嘴部LBP特征作為輸入,提取局部紋理特征。將FE-Net提取獲得的融合特征向量作為ER-Net的輸入,最終得到駕駛員的疲勞狀態(tài)。
圖6 疲勞表情識(shí)別網(wǎng)絡(luò)Fig.6 Fatigued expression recognition network
為驗(yàn)證在網(wǎng)絡(luò)中加入嘴部特征對(duì)表情識(shí)別精度的提高,將FE-Net嘴部特征提取分支去掉,構(gòu)造了一個(gè)基于全局面部特征的表情識(shí)別網(wǎng)絡(luò),用于與原網(wǎng)絡(luò)進(jìn)行對(duì)比,結(jié)構(gòu)如圖6(b)所示。
FE-Net每個(gè)分支網(wǎng)絡(luò)均由三個(gè)卷積層和三個(gè)池化層組成,且每個(gè)網(wǎng)絡(luò)的通道數(shù)依次為32、64、128個(gè),卷積核大小為3×3,步長(zhǎng)為1×1,用零填充。使用的激活函數(shù)是訓(xùn)練速度較快的ReLU激活函數(shù)。池化層使用最大池化,大小為2×2、步長(zhǎng)為2×2,這極大減少了模型的參數(shù)。
SE-Net包含兩層卷積兩層池化,通道數(shù)分別為128和256,卷積核大小3×3,步長(zhǎng)為1×1。使用兩個(gè)全連接層,分別有1 024和512個(gè)單元,隨機(jī)舍棄的概率為0.5,以防止過(guò)擬合。最后,使用softmax分類器進(jìn)行二分類任務(wù),即疲勞和非疲勞兩類。損失函數(shù)為交叉熵?fù)p失函數(shù),即
(3)
實(shí)驗(yàn)硬件配置為:core i7-9800X CPU (3.80 GHz),32 GB內(nèi)存,RTX2080顯卡。使用的操作系統(tǒng)為Ubuntu18.04。
由于目前沒(méi)有公開(kāi)疲勞表情數(shù)據(jù)集,構(gòu)建了一個(gè)疲勞表情數(shù)據(jù)集。該數(shù)據(jù)集來(lái)源于自行采集的樣本和用于疲勞檢測(cè)的公開(kāi)數(shù)據(jù)集。自行采集數(shù)據(jù)是實(shí)驗(yàn)者在駕駛室不同光照條件下采集的疲勞表情圖片。選用的公開(kāi)數(shù)據(jù)集是YawDD[12]打哈欠數(shù)據(jù)集和CEW(closed eyes in the wild)閉眼數(shù)據(jù)集,在其中選取合適的疲勞表情圖片,選擇的部分不同光照條件的樣本如圖7所示。最終獲得疲勞表情樣本2 610張以及非疲勞表情樣本2 646張。為減小數(shù)據(jù)樣本較少對(duì)模型訓(xùn)練的影響,提取出數(shù)據(jù)集中駕駛員臉部Gabor特征和嘴部LBP特征,并將特征圖片歸一化到216×216大小用作模型的訓(xùn)練和測(cè)試。
圖7 不同光照條件下的樣本Fig.7 Samples under different light conditions
3.2 疲勞表情識(shí)別
3.2.1 評(píng)估指標(biāo)
在分類問(wèn)題上,通常用精確度(Precision)和召回率(Recall)來(lái)評(píng)估網(wǎng)絡(luò)模型的好壞,精確度表示表示在預(yù)測(cè)結(jié)果為正樣本中,正確預(yù)測(cè)為正樣本的概率。召回率表示在原始樣本的正樣本中,最后被正確預(yù)測(cè)為正樣本的概率。模型的精確度和召回率的計(jì)算方法為
(4)
(5)
式中:TP(true positive)為樣本的真實(shí)類別為正,預(yù)測(cè)結(jié)果也為正;FP(false positive)為樣本的真實(shí)類別為負(fù),預(yù)測(cè)結(jié)果卻為正;FN(false negative)為樣本的真實(shí)類別為正,預(yù)測(cè)得到為負(fù)。
3.2.2 疲勞表情識(shí)別網(wǎng)絡(luò)
在訓(xùn)練過(guò)程中,設(shè)置學(xué)習(xí)率為0.000 1,訓(xùn)練樣本批次的大小為32,網(wǎng)絡(luò)使用隨機(jī)梯度下降優(yōu)化算法進(jìn)行訓(xùn)練,模型迭代的周期為100 epochs(訓(xùn)練集中全部樣本訓(xùn)練一次為一個(gè)epoch)。為了提高評(píng)估模型的性能,采用交叉驗(yàn)證法來(lái)劃分?jǐn)?shù)據(jù)集,訓(xùn)練集和測(cè)試集的比例為8∶2。如圖8所示,隨著迭代次數(shù)的增加網(wǎng)絡(luò)識(shí)別的準(zhǔn)確率不斷提高,在30 epchos后,準(zhǔn)確率達(dá)到約89.1%。網(wǎng)絡(luò)在訓(xùn)練最初的損失約為0.20,經(jīng)過(guò)50 epochs的迭代之后,損失值基本穩(wěn)定在0.01。
圖8 準(zhǔn)確率與損失函數(shù)曲線Fig.8 Training accuracy and loss function curves
為驗(yàn)證雙分支疲勞表情識(shí)別網(wǎng)絡(luò)相比于單分支疲勞表情識(shí)別網(wǎng)絡(luò)有性能的提升,繪制兩種網(wǎng)絡(luò)的P-R曲線,如圖9所示。由圖9可知,加入局部特征之后的雙分支網(wǎng)絡(luò)相比于單分支網(wǎng)絡(luò)的平均精確率提高約3%,獲得了更好的疲勞檢測(cè)效果。
在數(shù)據(jù)集中提取出晴天、多云、陰天三種不同駕駛場(chǎng)景的樣本。使用提出的雙分支疲勞表情識(shí)別網(wǎng)絡(luò)進(jìn)行測(cè)試,結(jié)果如表1所示。提出的算法在光照條件較好的晴天以及光照條件一般的多云天均能達(dá)到89%以上的準(zhǔn)確率,在光照條件較差的陰天仍能達(dá)到85.5%的準(zhǔn)確率,可知提出的算法能夠較好地適應(yīng)不同的光照條件。
為進(jìn)一步驗(yàn)證本文提出方法具有一定的優(yōu)越性,選取近年來(lái)相關(guān)的疲勞檢測(cè)方案進(jìn)行比較。文獻(xiàn)[13]采用Adaboost提取人臉有效的LBP特征,再采用支持向量機(jī)(support vector machines,SVM)進(jìn)行二分類,從而判斷測(cè)試者是否處于疲勞狀態(tài)。文獻(xiàn)[14]使用卷積神經(jīng)網(wǎng)絡(luò)提取圖片空間域特征,再使用LSTM對(duì)其進(jìn)行時(shí)域分析,判斷駕駛員是否打哈欠。文獻(xiàn)[15]通過(guò)提取駕駛員的眼部和嘴部特征得到駕駛員的眨眼、打哈欠的頻率并建立數(shù)據(jù)庫(kù),再構(gòu)建樸素貝葉斯分類器進(jìn)行疲勞分析。文獻(xiàn)[16]采用反向投影算法測(cè)量嘴部變化的頻率和數(shù)量來(lái)判別測(cè)試者是否打哈欠。在數(shù)據(jù)集中選取200張不同駕駛環(huán)境的疲勞表情樣本圖片,使用本文提出方法和其他4種方法分別進(jìn)行測(cè)試,疲勞檢測(cè)性能對(duì)比結(jié)果如表2所示。根據(jù)表2可知,相比以上通過(guò)局部特征以及局部特征融合的疲勞判別方法,提出的結(jié)合整體面部表情特征以及面部局部特征來(lái)進(jìn)行疲勞判別的方法,具有相對(duì)較好的性能。
圖9 單分支和雙分支網(wǎng)絡(luò)P-R曲線Fig.9 P-R curves of single-branch and double-branch networks
表1 不同光照條件下的疲勞檢測(cè)結(jié)果Table 1 Results of fatigue detection under different light conditions
表2 本文方法與其他方法性能對(duì)比Table 2 Comparison of performance between proposed method and other methods
提出疲勞檢測(cè)方法結(jié)合了傳統(tǒng)特征和神經(jīng)網(wǎng)絡(luò)進(jìn)一步的特征提取。通過(guò)對(duì)傳統(tǒng)特征提取獲得面部形狀外觀和局部微妙的紋理細(xì)節(jié),再使用設(shè)計(jì)的疲勞表情識(shí)別網(wǎng)絡(luò)對(duì)傳統(tǒng)特征進(jìn)行深入融合以用于表情識(shí)別。提出的方法不僅對(duì)能對(duì)整體面部特征進(jìn)行深入挖掘,而且能夠考慮到包含豐富信息的面部局部特征。該算法能夠適應(yīng)不同光照條件的駕駛場(chǎng)景,并能保證較高的檢測(cè)準(zhǔn)確率。由于使用的數(shù)據(jù)集未包含戴眼鏡的駕駛員圖片,在未來(lái)工作中,需要進(jìn)一步對(duì)有眼鏡遮擋的面部疲勞表情識(shí)別進(jìn)行研究。