李 蓉, 殷晨波, 馬 偉, 馮 浩
(南京工業(yè)大學(xué) 機(jī)械與動力工程學(xué)院,江蘇 南京 211800)
目前,在工程建設(shè)領(lǐng)域,挖掘機(jī)的需求量越來越大,提高挖掘機(jī)駕駛員操作效率的同時保證其人身安全成為亟待解決的問題[1]。然而挖掘機(jī)的工作環(huán)境通常較為惡劣,需要駕駛員時刻集中注意力,當(dāng)駕駛員出現(xiàn)疲勞駕駛情況,很容易導(dǎo)致傾翻、誤撞裝運(yùn)車或施工人員等重大事故。據(jù)統(tǒng)計(jì),因?yàn)槠隈{駛而引發(fā)挖掘機(jī)事故的比例已經(jīng)達(dá)到 5%~10%,所以對挖掘機(jī)駕駛員疲勞駕駛的研究具有重要意義。
目前,國內(nèi)外專家學(xué)者對疲勞駕駛進(jìn)行了大量的研究。文獻(xiàn)[2]通過檢測駕駛員腦電信號分析腦部的活動狀態(tài),判斷是否疲勞。但是該方法會在檢測過程中對駕駛員造成干擾,不適合用于實(shí)時條件下進(jìn)行疲勞檢測。文獻(xiàn)[3]建立以駕駛員操作方向盤轉(zhuǎn)角及車輛橫向移動距離作為疲勞駕駛的評價方法。該方法易受駕駛者操作意圖影響,判別精度相對較低。文獻(xiàn)[4]綜合眼睛持續(xù)閉合時間、嘴巴持續(xù)張開時間、頭部持續(xù)偏移時間3個疲勞指標(biāo)獲得疲勞程度。這種方法通過圖像傳感器采集人臉圖像,利用圖像識別與處理技術(shù)分析面部表情。此方法操作簡單,設(shè)備造價低且是一種非接觸式系統(tǒng),已成為研究熱點(diǎn)。
目前,疲勞駕駛的研究對象主要是汽車駕駛員,但挖掘機(jī)工作環(huán)境與汽車駕駛環(huán)境不同, 挖掘機(jī)的工作大多在凹凸不平的礦石泥土上進(jìn)行,路面顛簸導(dǎo)致圖片人像抖動,而且容易遇到粉塵和光線不足等情況。因此現(xiàn)有的汽車駕駛員檢測方法無法直接用于挖掘機(jī)駕駛員。借鑒汽車駕駛員疲勞研究的相關(guān)研究思路,基于機(jī)器視覺的疲勞檢測方法,本文提出一種眼部和嘴部信息的疲勞特征提取的方法,并設(shè)置閾值,將檢測到的特征數(shù)據(jù)與閾值比較,判斷是否睜眼或打哈欠。
圖像采集實(shí)驗(yàn)在三一SY235C-8S型挖掘機(jī)上進(jìn)行,通過攝像頭Microsoft Kinect 2.0(分辨率為1 920×1 080像素,30幀/s)采集人臉圖像。將采集到的圖像傳送到筆記本電腦進(jìn)行處理,采用的電腦CPU配置為Intel(R)Core(TM)I7-8565U。實(shí)驗(yàn)基于Visual C++6.0平臺,調(diào)用OpenCV視覺庫從而提取疲勞特征數(shù)據(jù)。
為了模擬真實(shí)的挖掘機(jī)操作環(huán)境,把攝像頭固定在挖掘機(jī)上。按照實(shí)驗(yàn)要求招募5名駕駛者并對他們進(jìn)行挖掘機(jī)培訓(xùn)。實(shí)驗(yàn)分清醒和疲勞2個階段進(jìn)行測試。清醒階段要求駕駛者保持充足的睡眠,在早上9:00進(jìn)行實(shí)驗(yàn)。疲勞階段要求駕駛者前一天的睡眠時間為4 h,實(shí)驗(yàn)在下午2:00進(jìn)行,并在實(shí)驗(yàn)前不允許補(bǔ)充睡眠。2個階段都獲取駕駛者30 min的有效視頻作為實(shí)驗(yàn)數(shù)據(jù)。挖掘機(jī)及實(shí)驗(yàn)設(shè)備安裝位置如圖1所示。
圖1 實(shí)驗(yàn)設(shè)備安裝示意圖
人臉區(qū)域定位是提取面部特征的基礎(chǔ),在定位人臉之后可以有效地縮小圖像檢測范圍,降低信息冗余度,提高后續(xù)眼睛與嘴部區(qū)域定位的精度。目前人臉檢測主要方法有人臉輪廓、模板特征、膚色模型、神經(jīng)網(wǎng)絡(luò)、AdaBoost 模型等。其中AdaBoost 模型識別效率高,能同時保證速度與準(zhǔn)確度,可以達(dá)到視頻流實(shí)時處理的檢測效果[5],因此本文采用AdaBoost算法識別出臉部區(qū)域。
AdaBoost算法是將多個弱分類器組合成一個強(qiáng)分類器,從而使分類效果得到顯著提升[6]。設(shè)原始訓(xùn)練樣本集為:
D={(xi,yj)|i=1,2,…,N}
(1)
其中,xi為人臉或非人臉圖像;yj∈{-1,1}為xi所屬的正確分類標(biāo)簽,1和-1分別表示人臉圖像和非人臉圖像。設(shè)Dt(i)為第t次迭代時全部訓(xùn)練樣本的權(quán)重分布。
AdaBoost算法的實(shí)現(xiàn)過程有以下3個步驟:
(1) 初始化訓(xùn)練數(shù)據(jù)的權(quán)值分布。令
D={x1,y1,x2,y2,…,xN,yN},
(2)
對t=1,2,…,T,在分布Dt上尋找錯誤率最小的弱分類器ht:X→{-1,1},其錯誤率為:
εt=PDt(ht(xi)≠yj)
(3)
(2) 選擇權(quán)重系數(shù)。權(quán)重系數(shù)計(jì)算公式為:
(4)
更新訓(xùn)練樣本分布:
(5)
其中,Zt為歸一化常數(shù)。
(3) 依此類推,最終組成的強(qiáng)分類器為:
(6)
AdaBoost算法進(jìn)行人臉檢測主要是通過分類器來完成的,而分類器則是從大量樣本的訓(xùn)練中得來的,分類器的好壞直接決定了最終的檢測效果[7]。實(shí)驗(yàn)所運(yùn)用的8 078個樣本來源于自己采集的圖像、網(wǎng)絡(luò)圖像和MIT人臉訓(xùn)練庫,通過OpenCV對其進(jìn)行分類器訓(xùn)練,最終得到一個強(qiáng)分類器。采用強(qiáng)分類器進(jìn)行人臉區(qū)域定位的實(shí)驗(yàn)結(jié)果如圖2所示。
圖2 人臉定位
在檢測出人臉后,需要定位眼部區(qū)域。為了滿足挖掘機(jī)駕駛員疲勞檢測實(shí)時動態(tài)和精確度高的要求,采用基于AdaBoost算法進(jìn)行人眼檢測。根據(jù)眼睛在人臉上的位置分布,將眼睛檢測區(qū)域縮小至人臉圖像上1/2部分進(jìn)行粗定位,從而大大縮減檢測時間。AdaBoost算法對人眼定位的檢測效果如圖3所示。當(dāng)駕駛者佩戴眼鏡或者頭部偏轉(zhuǎn)一定角度,該方法都能快速準(zhǔn)確地定位人眼區(qū)域。
圖3 人眼定位
在對眼睛進(jìn)行定位后,需要對眼睛特征狀態(tài)進(jìn)行提取,作為疲勞判斷的依據(jù)。常用的檢測方法如下:
(1) 基于Hough變換法。通過檢測眼睛圖像中是否有圓來判斷眼睛狀態(tài)[8]。
(2) 積分投影法。根據(jù)眼睛區(qū)域水平和垂直投影的灰度值進(jìn)行判斷。
(3) 模板匹配法。首先建立眼睛各個狀態(tài)的模板,然后計(jì)算眼睛圖像與模板的匹配度。
(4) 計(jì)算眼瞼曲率法。根據(jù)眼睛在開、閉狀態(tài)下的曲率差異進(jìn)行判斷。因?yàn)檠芯繉ο笫峭诰驒C(jī)駕駛員,與汽車駕駛環(huán)境不同,挖掘機(jī)在工作時不可避免地會產(chǎn)生振動,同時受到光線及噪聲的影響,所以采用大津法二值化圖像從而進(jìn)行眼睛特征提取。該方法計(jì)算簡單,受圖像亮度和對比度的影響較小,適用于挖掘機(jī)工作環(huán)境。
文獻(xiàn)[9]提出大津法,也稱最大類間方差法,是一種自適應(yīng)的閾值確定方法。該方法通過計(jì)算最佳閾值,使得圖像的背景和目標(biāo)2個部分區(qū)分度最大。
設(shè)T為前景與背景的分割閾值,ω0為前景像素點(diǎn)占圖像總像素的比例,μ0為平均灰度;ω1為背景像素點(diǎn)數(shù)占圖像總像素的比例,μ1為平均灰度;μ為圖像的總平均灰度,g為前景和背景圖象的方差,則有:
μ=ω0μ0+ω1μ1
(7)
g=ω0(μ0-μ)2+ω1(μ1-μ)2
(8)
聯(lián)立(7)式、(8)式可得:
g=ω0ω1(μ0-μ1)2
(9)
眼睛特征提取結(jié)果見表1所列,本文用大津法對眼睛區(qū)域進(jìn)行二值化分割,當(dāng)閾值T=109時,類間方差g達(dá)到最大值。此時的圖像能清晰地把眼睛區(qū)域從整幅眼睛圖片中提取出來。之后對該二值化圖像進(jìn)行垂直積分投影和水平積分投影。
從表1可以看出,睜眼和閉眼狀態(tài)下垂直積分投影有明顯的不同。當(dāng)睜眼狀態(tài)時,垂直積分投影圖像有明顯的波峰;當(dāng)閉眼狀態(tài)時,該圖像非常平坦。
表1 眼睛特征提取結(jié)果
因此,采用垂直積分投影的高寬比來識別眼睛的睜閉情況。垂直積分投影曲線如圖4所示,寬W可由垂直積分投影圖像最小外接矩形的寬表示,高H可由圖像最小外接矩形的高表示。
圖4 垂直積分投影曲線
記λ為曲線高寬比,λ=H/W,λ值越大,眼睛狀態(tài)越接近睜開;λ值越小,眼睛狀態(tài)越接近閉合。對于λ的閾值,通過處理收集到的532張人臉網(wǎng)絡(luò)資源庫圖像,統(tǒng)計(jì)人眼高寬比,并結(jié)合大量參考文獻(xiàn)選取λ的閾值為0.42,當(dāng)λ>0.42時,可判定為睜眼狀態(tài),否則為閉眼狀態(tài)。
根據(jù)醫(yī)學(xué)研究表明,人在一般情況下1 min眨眼15~20次。因此在獲取眼睛睜閉狀態(tài)后,可以根據(jù)眨眼頻率來區(qū)分疲勞的閉眼動作和普通的眨眼動作。
由于嘴部始終位于人臉的下半部分,因此可以根據(jù)人臉“三庭五眼”[10]的結(jié)構(gòu)特征對嘴部進(jìn)行定位。通過采取人臉圖像下1/3處和兩眼之間的區(qū)域來確定嘴部位置,這種方法不僅可以提高檢測的精度,還可以大大縮減檢測時間。
在獲取嘴部位置后,可以對嘴部特征進(jìn)行提取,從而判斷駕駛員是否處于打哈欠狀態(tài)。目前,國內(nèi)外許多專家學(xué)者通過唇色和膚色的差異提取嘴部特征。但是挖掘機(jī)工作環(huán)境復(fù)雜,特別當(dāng)光線不足時,采用該方法會存在很大的誤差,因此采取先對圖像進(jìn)行二值化操作,然后用Canny檢測方法提取出嘴部邊緣輪廓,獲取輪廓包含的面積與周長參數(shù),最后通過計(jì)算嘴部似圓度e判斷嘴部狀態(tài)。
e的計(jì)算公式為:
e=4πS/L2
(10)
似圓度e的取值范圍為0~1,S為嘴部區(qū)域面積,L為嘴部輪廓周長,e的值越接近1,說明嘴巴張開越大。對于e的值,文獻(xiàn)[11]通過實(shí)驗(yàn)數(shù)據(jù)得出似圓度閾值為0.4,因此結(jié)合文獻(xiàn)和實(shí)際實(shí)驗(yàn)數(shù)據(jù)分析得出當(dāng)e值超過0.4,即可判定為張開狀態(tài)。
據(jù)統(tǒng)計(jì),人在打哈欠時嘴部張開持續(xù)的時間為4~5 s,因此依據(jù)此特征可以對打哈欠和普通說話進(jìn)行區(qū)分。嘴部特征提取結(jié)果見表2所列。
表2 嘴部特征提取結(jié)果
為了驗(yàn)證所提出的嘴部特征提取算法在挖掘機(jī)工作環(huán)境下更加有效,采用基于唇色和膚色差異的方法進(jìn)行嘴部特征提取實(shí)驗(yàn)。2種方法對比結(jié)果見表3所列。
表3 2種方法對比結(jié)果
從表3可以看出,在同等實(shí)驗(yàn)條件下,唇色與膚色差異法提取嘴部準(zhǔn)確率低于Canny檢測方法。從實(shí)驗(yàn)中發(fā)現(xiàn),在粉塵較多,光線過強(qiáng)或過暗,光照不均勻的情況下,容易出現(xiàn)將多余的皮膚區(qū)域識別成嘴唇所在區(qū)域,導(dǎo)致似圓度指數(shù)產(chǎn)生嚴(yán)重偏差,因此Canny邊緣檢測方法更適用于對挖掘機(jī)駕駛員進(jìn)行嘴部特征提取。
為了驗(yàn)證上文提出的疲勞特征提取算法的準(zhǔn)確性,在挖掘機(jī)上對處于疲勞狀態(tài)下的駕駛員閉眼與打哈欠狀態(tài)進(jìn)行實(shí)時檢測,并對比實(shí)驗(yàn)結(jié)果。眼睛垂直積分投影高寬比隨幀數(shù)變化曲線如圖5所示。
圖5 眼睛睜開度
從圖5可以看出,以一個60幀的視頻作為實(shí)驗(yàn)樣本,測出λ值的范圍在0.24~0.57之間。黑色虛線以上為大于0.42的區(qū)域,眼睛可判別為睜開狀態(tài)。實(shí)驗(yàn)中,眼睛完全睜開時停留時間較長,睜眼狀態(tài)相對穩(wěn)定,因此在15~20幀、40~45幀時數(shù)據(jù)比較密集且檢測數(shù)據(jù)失真情況較少。在閉眼和睜眼的過程中,眼睛狀態(tài)變化較快,有8幀數(shù)據(jù)未能準(zhǔn)確測出,總體準(zhǔn)確率為86.67%。該駕駛員在這60幀視頻中眼睛連續(xù)睜閉且次數(shù)達(dá)到2次以上,符合眼部在疲勞狀態(tài)下的特征。
嘴部似圓度隨幀數(shù)變化曲線如圖6所示。
圖6 嘴部張開度
同樣檢測一段視頻,選取其中的60幀進(jìn)行處理,圖6中e為0.4的黑色虛線是區(qū)分嘴巴張開閉合分界線。在23~52幀時,嘴巴比較快速地張開到閉合。在30~40幀之間,嘴巴一直處于張開狀態(tài),因此數(shù)據(jù)無較大波動。在嘴部狀態(tài)檢測中,誤檢主要存在于嘴巴動態(tài)變化的過程中,平均檢測準(zhǔn)確率為90%。該駕駛員在這60幀視頻中嘴部連續(xù)閉合且次數(shù)達(dá)到2次以上,符合嘴部在疲勞狀態(tài)下的特征。
以上是2組60幀的實(shí)驗(yàn)樣本中眼部和嘴部的特征參數(shù)隨時間的變化情況。通過2個特征參數(shù)的2組樣本數(shù)據(jù)計(jì)算得到的平均準(zhǔn)確率、平均方根誤差、平均絕對誤差見表4所列,直觀地反映出了本文提出方法的有效性。
表4 總體樣本數(shù)據(jù)分析結(jié)果
本文針對挖掘機(jī)工作環(huán)境,提出了適用于挖掘機(jī)駕駛員的疲勞特征提取方法。為了減少挖掘機(jī)周圍光線變化對疲勞特征提取的影響,利用AdaBoost算法對人臉和人眼進(jìn)行識別,在此基礎(chǔ)上采用大津法和Canny檢測方法檢測眼睛和嘴部特征。
本文分別做了幾組對照實(shí)驗(yàn),實(shí)驗(yàn)表明在誤差允許的范圍內(nèi),本文方法能準(zhǔn)確提取挖掘機(jī)駕駛員疲勞特征,具有較高的實(shí)用價值。