杜永昂,楊耀權(quán),金玥佟
(華北電力大學(xué) 控制與計(jì)算機(jī)學(xué)院,河北 保定071003)
隨著社會(huì)經(jīng)濟(jì)的發(fā)展,我國(guó)汽車(chē)保有量逐年增加,交通安全形勢(shì)愈發(fā)嚴(yán)峻。 在所有交通事故的成因中,由疲勞駕駛造成的交通事故占總交通事故的20%左右,占特大交通事故40%以上[1]。 目前,疲勞駕駛的檢測(cè)方法主要分為三大類(lèi):基于生理指標(biāo)的檢測(cè)方法、基于駕駛員行為特性分析的檢測(cè)方法和基于面部表情識(shí)別的檢測(cè)方法?;谏碇笜?biāo)的檢測(cè)方法采用接觸式測(cè)量方式,一般通過(guò)測(cè)試駕駛?cè)藛T的生理信號(hào)來(lái)推測(cè)駕駛?cè)说钠跔顟B(tài)。 文獻(xiàn)[2]使用一種自制駕駛員腦電圖信號(hào)檢測(cè)裝置,采用快速傅里葉變換提取腦電圖功率譜密度,當(dāng)分析腦電圖功率譜密度發(fā)現(xiàn)疲勞時(shí),采取一種自動(dòng)減速的車(chē)輛速度控制策略。這種接觸式生理參數(shù)測(cè)試方法通常需要被測(cè)者佩戴相應(yīng)的裝置(如電極片等),會(huì)給駕駛行為造成極大干擾,不適合實(shí)際行車(chē)環(huán)境下的應(yīng)用。 基于駕駛?cè)诵袨樘匦缘钠跈z測(cè)方法受道路環(huán)境、行駛速度、個(gè)人習(xí)慣、操作技能等的影響,并不適用我國(guó)復(fù)雜多變的道路情形。 得益于機(jī)器視覺(jué)等人工智能的發(fā)展,基于面部表情的疲勞駕駛檢測(cè)方法因其應(yīng)用成本較低、無(wú)需干擾駕駛?cè)藛T,已經(jīng)成為該領(lǐng)域的研究熱點(diǎn)。 文獻(xiàn)[3]基于開(kāi)源庫(kù)提取的人臉輪廓點(diǎn)計(jì)算眼和嘴的縱橫比,生成瞇眼和哈欠特征,基于線性擬合趨勢(shì)提取法生成車(chē)輛操縱活躍度特征,然后采用改進(jìn)的隨機(jī)森林模型對(duì)疲勞狀態(tài)進(jìn)行識(shí)別。 文獻(xiàn)[4]提出了一種采用級(jí)聯(lián)的序列級(jí)和幀級(jí)兩層檢測(cè)模型,分別處理持續(xù)睜眼和眨眼的視頻序列, 實(shí)現(xiàn)由粗到精漸進(jìn)地檢測(cè)眨眼的方法,通過(guò)隨機(jī)回歸森林計(jì)算眼睛開(kāi)合度,最終完成眨眼過(guò)程。 文獻(xiàn)[5]針對(duì)復(fù)雜光照和姿態(tài)變化造成疲勞駕駛的原因,提出了實(shí)時(shí)增強(qiáng)約束局部模型的多信息疲勞檢測(cè)方法。 文獻(xiàn)[6]提出比例縮減區(qū)域(PRA)的方法快速定位人眼,其原理為對(duì)面部區(qū)域反復(fù)迭代縮減,最后得到對(duì)人眼區(qū)域的定位。 因此,構(gòu)建一種可靠快速的人眼定位技術(shù)是對(duì)駕駛?cè)藛T疲勞檢測(cè)的關(guān)鍵。 由于光照、道路兩側(cè)樹(shù)木及樓房陰影等原因的影響,直接在原始圖像中進(jìn)行人眼定位存在較大困難,而且準(zhǔn)確率較低,因此,人眼定位一般分為如下步驟:第一步,在原始圖像中定位出人臉區(qū)域;第二步,在人臉圖像中粗定位出人眼區(qū)域;第三步,對(duì)人眼區(qū)域進(jìn)行精確定位。
考慮到不同特征維度對(duì)人臉的貢獻(xiàn)程度不同,本文提出了一種基于信息熵加權(quán)的方向梯度直方圖(Histogram of Oriented Gradients,HOG)與支持向量機(jī)(Support Vector Machine,SVM)相結(jié)合的人臉檢測(cè)算法,可以有效提取人臉特征,并準(zhǔn)確完成人臉定位。 在完成人臉檢測(cè)之后,以人臉區(qū)域?yàn)槟赴?,先采用OpenCV 開(kāi)源實(shí)現(xiàn)對(duì)人眼的粗定位;然后采用自商圖消除光照影響,遍歷尋找最優(yōu)二值分割點(diǎn);最后用二值分割圖像進(jìn)行積分投影, 實(shí)現(xiàn)瞳孔的精確定位。 該算法解決了復(fù)雜光照下的瞳孔定位問(wèn)題。
梯度直方圖HOG 是在2005 年CVPR 會(huì)議上由Dalal 提出的特征提取算法[7]。 近年來(lái),HOG 特征提取算法越來(lái)越多地受到國(guó)內(nèi)外學(xué)者的青睞,積極探索其潛能及應(yīng)用范圍,但在對(duì)HOG 特征的相關(guān)研究中,大部分學(xué)者只是將HOG 算子應(yīng)用到人臉全局中或只是簡(jiǎn)單地進(jìn)行全局特征和局部特征的級(jí)聯(lián)。文獻(xiàn)[8]提出的信息熵加權(quán)的HOG 特征提取算法將人臉?lè)指畛刹煌瑝K,在不同塊中進(jìn)行加權(quán)來(lái)提高不同部位的識(shí)別率。
本文提出一種基于信息熵加權(quán)的HOG 特征提取算法。 首先計(jì)算每幅圖片的信息熵;然后提取每幅圖片的原有HOG 特征;最后對(duì)原有提取的HOG特征實(shí)行閾值分割,將符合條件的特征點(diǎn)加權(quán)信息熵形成新的HOG 特征。 算法采用SVM 作為分類(lèi)器,將加權(quán)后的HOG 特征作為SVM 的輸入特征進(jìn)行分類(lèi)。 算法步驟如下:
(1)人臉圖像預(yù)處理
對(duì)檢測(cè)到的圖像進(jìn)行灰度變換,單通道圖片相較RGB 三通道圖片信息量更少,可以更加快速地完成訓(xùn)練。
(2)圖片HOG 特征提取
本文將人臉圖像矩陣I 的維數(shù)設(shè)定為Ix×Iy,其中x、y 均為64;每個(gè)細(xì)胞單元尺寸設(shè)定為(8,8);每2×2 個(gè)細(xì)胞單元組成一個(gè)塊(block);每個(gè)細(xì)胞單元分為9 個(gè)方向塊;滑動(dòng)步長(zhǎng)設(shè)定為一個(gè)胞元長(zhǎng)度。檢測(cè)窗口在橫向滑動(dòng)7 個(gè)塊,在縱向滑動(dòng)7 個(gè)塊,共提取1 764 個(gè)特征點(diǎn)。
(3)信息熵加權(quán)到特征點(diǎn)
由于HOG 特征點(diǎn)只在人臉輪廓線或鼻子、嘴巴等區(qū)域有較為明顯的特征,而在人臉大部分較為平滑的區(qū)域特征點(diǎn)不明顯,故將信息熵加權(quán)到該區(qū)域。 設(shè)DN×M為特征點(diǎn)向量,其中N=1,M=1 764,則特征點(diǎn)均值為:
其中l(wèi)en(DN×M)為特征點(diǎn)向量長(zhǎng)度。
加權(quán)特征點(diǎn)計(jì)算為:
其中DN×M(i)為第i 個(gè)特征點(diǎn)向量,E[I]為圖片信息熵。 本文閾值點(diǎn)的選擇在實(shí)驗(yàn)部分有詳細(xì)的實(shí)驗(yàn)數(shù)據(jù)作為參考。
(4)對(duì)信息熵加權(quán)后的HOG 特征點(diǎn)進(jìn)行SVM分類(lèi)。
自商圖的計(jì)算公式為:
其中,R 為自商圖,I 為灰度圖,F(xiàn) 為濾波核。
根據(jù)自商圖的計(jì)算公式,將采集的原始圖像轉(zhuǎn)變?yōu)樽陨虉D,消除眼睛區(qū)域的光照變化,以更好實(shí)現(xiàn)二值化閾值分割。 將人眼區(qū)域灰度圖進(jìn)行低通濾波,遍歷灰度圖與低通濾波圖像中的所有像素點(diǎn),“點(diǎn)對(duì)點(diǎn)”地作商運(yùn)算,并將計(jì)算結(jié)果歸一化到[0~255]灰度范圍。
一般而言,臉部圖像中眼睛區(qū)域與周?chē)鷧^(qū)域相比較暗,利用該特征,常采用灰度積分投影法來(lái)定位眼睛,根據(jù)圖像的波谷和波峰的分布情況來(lái)定位眼睛區(qū)域[9]。
假設(shè)圖像大小為m×n,G(x,y)為像素點(diǎn)(x,y)的灰度值,其在水平方向的積分投影為:
在圖像[y1,y2]區(qū)域的垂直積分投影為:
本文提出了由粗到精的瞳孔檢測(cè)方法,以自商圖為基準(zhǔn)尋找二值分割點(diǎn),實(shí)現(xiàn)了眼部區(qū)域光照不變性,以灰度積分投影為依據(jù)實(shí)現(xiàn)了瞳孔精確定位。傳統(tǒng)灰度積分投影是直接將原始圖像進(jìn)行灰度化,然后將灰度圖進(jìn)行二值化,最后將二值化圖像進(jìn)行水平投影與垂直投影。 此方法雖然計(jì)算效率高,但是容易受光照及陰影所影響,在實(shí)際應(yīng)用中存在一定的缺陷。本文引入自商圖,用以消除光照的影響,同時(shí)可以保留積分投影的運(yùn)算效率,滿足了實(shí)際運(yùn)用。 瞳孔定位算法主要步驟為:
(1)應(yīng)用OpenCV 得到左、右眼睛的大體區(qū)域。
(2)對(duì)眼睛區(qū)域進(jìn)行自商圖變化,結(jié)果如圖1(b)所示,本文濾波核采用高斯濾波。
(3)從圖1(b)不難看出,眼部灰度最小值在瞳孔附近,故遍歷眼部區(qū)域自商圖,將灰度值進(jìn)行排序,得 到 灰 度 最 小 值。 設(shè)FN×M為 自 商 圖,N、M 分 別 為 該圖行列數(shù),則最小值為:
(4)以T 為分割點(diǎn)做灰度閾值變換,將其轉(zhuǎn)換為二值圖像:
(5)對(duì)二值圖像進(jìn)行水平、垂直積分投影。
(6)得到瞳孔定位的橫縱坐標(biāo)。
如圖1 所示,(a)為原始圖像人臉檢測(cè)區(qū)域;(b)為圖像自商圖;(c)為二值化圖像。 可以看出基于自商圖的眼部細(xì)節(jié)更加突出。 本數(shù)據(jù)來(lái)源LFW 公開(kāi)數(shù)據(jù)集,數(shù)據(jù)編號(hào)為Zico_0002。
圖1 原始圖像、自商圖及二值圖像對(duì)比結(jié)果
本文提出的瞳孔定位算法流程圖如圖2 所示。
圖2 瞳孔定位算法流程圖
通過(guò)Python 工具平臺(tái)進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)運(yùn)行環(huán)境為InterCore I5 處理器,8 GB 運(yùn)行內(nèi)存,Windows 10操作系統(tǒng)。 人臉檢測(cè)數(shù)據(jù)集采用香港中文大學(xué)公布的大型人臉識(shí)別數(shù)據(jù)集CelebA,該數(shù)據(jù)集包含20 萬(wàn)張人臉圖片,人臉屬性有40 多種,在表情、光照及姿態(tài)等方面更有權(quán)威性。 瞳孔定位實(shí)驗(yàn)數(shù)據(jù)集采用HELEN 系列數(shù)據(jù)集,該數(shù)據(jù)集包含348 幅圖片。 實(shí)驗(yàn)識(shí)別分類(lèi)器采用支持向量機(jī)分類(lèi)器。
本文選用CelebA 人臉庫(kù)編號(hào)為1 ~200 的圖片作為訓(xùn)練樣本,選用編號(hào)為201~350 的圖片作為測(cè)試樣本。 正、負(fù)訓(xùn)練集樣本共為400 張;正、負(fù)測(cè)試集樣本共為300 張。 首先對(duì)特征點(diǎn)閾值進(jìn)行選擇,通過(guò)不同閾值點(diǎn)對(duì)比選擇出最佳的閾值點(diǎn)。
在CelebA 人臉庫(kù)中對(duì)于不同閾值共進(jìn)行了4次實(shí)驗(yàn),每一次對(duì)人臉特征點(diǎn)進(jìn)行不同的閾值劃分,通過(guò)對(duì)4 次閾值劃分所得的實(shí)驗(yàn)結(jié)果進(jìn)行比較,選取最佳閾值點(diǎn)。 得到的最佳實(shí)驗(yàn)結(jié)果即為本文方法的最終實(shí)驗(yàn)結(jié)果。
令Mean1=0.8×Mean;Mean2=1.25×Mean;Mean3=1.5×Mean。表1 給出了幾種閾值的識(shí)別結(jié)果。識(shí)別結(jié)果用百分比表示。 不同閾值識(shí)別率比較如圖3所示。
表1 不同閾值所得識(shí)別結(jié)果 (%)
圖3 不同閾值識(shí)別率比較
根據(jù)不同閾值仿真結(jié)果可以看出以Mean 為閾值點(diǎn)識(shí)別效果最佳,Mean2 次之,然后依次為Mean3、Mean1。 如果Mean1 作為閾值劃分點(diǎn),信息熵只能加權(quán)到小部分特征點(diǎn),不能很好表示全局特征點(diǎn),導(dǎo)致識(shí)別率較低;Mean2、Mean3 則是因?yàn)樾畔㈧丶訖?quán)到了太多的特征點(diǎn),造成了大量噪聲,給分類(lèi)帶來(lái)了干擾,導(dǎo)致識(shí)別率有所下降。
在選擇好最佳閾值點(diǎn)后,用原始HOG+SVM 人臉檢測(cè)與本文人臉檢測(cè)算法進(jìn)行實(shí)驗(yàn)對(duì)比,實(shí)驗(yàn)結(jié)果如表2 所示。
從不同算法的對(duì)比仿真結(jié)果中可以看出,本文提出的人臉檢測(cè)算法識(shí)別率高于原始HOG+SVM人臉檢測(cè)算法。 原始HOG+SVM 算法主要依賴于全局特征,有部分關(guān)鍵特征點(diǎn)并不能很好地體現(xiàn)出來(lái),而本文所提出的信息熵加權(quán)算法則對(duì)這些特征點(diǎn)進(jìn)行信息熵加權(quán),從而提高了識(shí)別率。
表2 不同算法識(shí)別率比較 (%)
此外,本文還在HELEN_1 公開(kāi)數(shù)據(jù)集對(duì)原始HOG+SVM 人臉檢測(cè)算法與本文提出的人臉檢測(cè)算法進(jìn)行了仿真實(shí)驗(yàn),并選擇部分樣本圖片作為展示結(jié)果,以便更加直觀地體現(xiàn)該算法性能。 其中數(shù)據(jù)類(lèi)型分別為臉部右側(cè)旋轉(zhuǎn)、臉部左側(cè)旋轉(zhuǎn)、光照明亮、光照較暗、光影對(duì)比強(qiáng)烈、側(cè)臉、陰影強(qiáng)烈、佩戴眼鏡、抬頭、低頭等類(lèi)型。 數(shù)據(jù)編號(hào)分別為10697993_1、13789611_1、16542667_1、103236168_1、137346980_1、170508172_1、143588896_1、151902153_1、167629013_1、213033315_1。 仿真結(jié)果如圖4、圖5所示。
圖4 原始HOG+SVM 人臉檢測(cè)算法結(jié)果
圖5 本文人臉檢測(cè)算法結(jié)果
通過(guò)對(duì)HELEN_1 公開(kāi)數(shù)據(jù)集驗(yàn)證可知,如圖4所示,HOG+SVM 人臉檢測(cè)算法對(duì)于臉部左側(cè)旋轉(zhuǎn)(13789611_1)、 陰 影 強(qiáng) 烈(143588896_1)、 抬 頭 幅 度過(guò)大(167629013_1)等情況檢測(cè)結(jié)果均不佳,出現(xiàn)漏檢等情況。 本文提出的人臉檢測(cè)算法,如圖5 所示,無(wú)論對(duì)于臉部右側(cè)旋轉(zhuǎn)、左側(cè)旋轉(zhuǎn),還是抬頭等均可達(dá)到滿意的檢測(cè)效果,但是對(duì)于陰影強(qiáng)烈(143588896_1)的情況因?yàn)橛?xùn)練樣本不足還有待增強(qiáng)。 由仿真實(shí)驗(yàn)結(jié)果可知,本文提出的人臉檢測(cè)算法比傳統(tǒng)人臉檢測(cè)算法精度更高、魯棒性更強(qiáng)。
本文提出的基于自商圖先粗后精的瞳孔定位算法,充分考慮了光照、陰影等環(huán)境,該算法對(duì)光影及噪聲干擾等有較強(qiáng)適應(yīng)性。 一般積分投影法在眼睛定位時(shí),采用的圖像預(yù)處理方法為自適應(yīng)閾值分割法,以該法獲取二值圖像。 雖然該分割法在眼部區(qū)域光照較為明亮?xí)r會(huì)得到較好的效果,但當(dāng)面部陰影較為嚴(yán)重時(shí),使得整個(gè)眼部都會(huì)出現(xiàn)二值為黑的情況,如圖1(c)所示。 文獻(xiàn)[10]提出了一種基于膚色和積分投影結(jié)合的眼部定位方法,該方法在水平投影和垂直投影方向均出現(xiàn)了多個(gè)波峰、波谷的情況,不易得到準(zhǔn)確的瞳孔坐標(biāo)值。 本文以眼部最小灰度值為分割點(diǎn),可以較為理想地得到瞳孔橫縱坐標(biāo)值。
本文隨機(jī)選取50 張實(shí)際行車(chē)環(huán)境圖片用于瞳孔定位實(shí)驗(yàn),首先通過(guò)上文提到的自商圖處理眼部區(qū)域,之后通過(guò)對(duì)每幅圖片遍歷求取灰度最小值,以該灰度值進(jìn)行圖像二值化,最后進(jìn)行灰度積分投影,得到準(zhǔn)確的瞳孔定位坐標(biāo)。
表3 給出了本文與傳統(tǒng)積分投影瞳孔定位的識(shí)別結(jié)果。 識(shí)別結(jié)果用百分比表示。
表3 本文與傳統(tǒng)積分投影瞳孔定位算法比較(%)
本文算法充分考慮了眼部區(qū)域結(jié)構(gòu)性特點(diǎn),即瞳孔附近灰度值最低的特性,并引入自商圖消除光影的影響。 由仿真實(shí)驗(yàn)結(jié)果可知,本文提出的瞳孔定位算法比傳統(tǒng)算法泛化能力更強(qiáng),準(zhǔn)確度更高。
為了更加直觀地展現(xiàn)該算法的優(yōu)勢(shì), 本文從樣本中選取部分圖片作為展示結(jié)果。其中數(shù)據(jù)類(lèi)型分別為臉部右側(cè)旋轉(zhuǎn)、臉部左側(cè)旋轉(zhuǎn)、抬頭、表情(打哈欠)等類(lèi)型。 數(shù)據(jù)幀數(shù)分別為1316、1139、469、446、66、26。 仿真結(jié)果如圖6、圖7 所示。
圖6 基于傳統(tǒng)積分投影瞳孔定位
圖7 基于自商圖二值分割點(diǎn)瞳孔定位
通過(guò)數(shù)據(jù)仿真結(jié)果可知,如圖6 所示,基于傳統(tǒng)積分投影法對(duì)瞳孔定位時(shí),如果頭部出現(xiàn)偏轉(zhuǎn)、抬頭時(shí)將會(huì)出現(xiàn)誤檢等情況,如編號(hào)1316、1139、469、446 所示,在實(shí)際應(yīng)用中檢測(cè)精度較低。 本文提出的瞳孔定位算法,如圖7 所示,對(duì)于頭部左右旋轉(zhuǎn)、抬頭等情況都能較為精準(zhǔn)地定位出瞳孔位置。 相較于傳統(tǒng)的人眼定位方法,本文提出的瞳孔定位方法在準(zhǔn)確度方面得到了較好提升。
人眼定位是疲勞駕駛檢測(cè)的關(guān)鍵環(huán)節(jié),針對(duì)現(xiàn)有方向梯度直方圖人臉檢測(cè)算法泛化能力不佳的問(wèn)題,本文提出了一種基于信息熵加權(quán)的HOG 特征提取算法,該算法將待分類(lèi)的人臉特征進(jìn)行閾值加權(quán),提高了原有人臉檢測(cè)的識(shí)別率。 針對(duì)現(xiàn)有瞳孔定位準(zhǔn)確率不高的問(wèn)題,本文提出了多算法協(xié)同工作的瞳孔定位方法,以自商圖為基準(zhǔn)尋找二值分割點(diǎn),實(shí)現(xiàn)了眼部區(qū)域光照不變性,以灰度積分投影為依據(jù)實(shí)現(xiàn)了瞳孔精確定位。 仿真實(shí)驗(yàn)結(jié)果表明,本文提出的人臉檢測(cè)算法比傳統(tǒng)人臉檢測(cè)算法魯棒性更高、泛化能力更強(qiáng);本文提出的瞳孔定位算法相較于傳統(tǒng)方法,定位精度更高,可以為疲勞駕駛檢測(cè)研究提供更加科學(xué)、可靠的數(shù)據(jù)。