趙 倩, 郭 彤, 王成龍
(上海電力大學(xué) 電子與信息工程學(xué)院, 上海 200090)
在電力系統(tǒng)的運(yùn)作過(guò)程中,經(jīng)常會(huì)出現(xiàn)變電站運(yùn)行維護(hù)人員誤操作事故,主要原因包括作業(yè)人員安全意識(shí)不強(qiáng)、應(yīng)急處置能力亟待提高[1],以及疲勞操作等。通常人在疲勞時(shí),身體協(xié)調(diào)性差、大腦支配能力下降,容易在工作生活中造成判斷失誤和操作失誤,從而造成事故。對(duì)于電力操作,尤其是倒班工人,采用實(shí)時(shí)監(jiān)控疲勞狀態(tài)報(bào)警提示,可以減少操作違規(guī)與失誤的發(fā)生。因此,進(jìn)行疲勞狀態(tài)檢測(cè)對(duì)于保護(hù)電力工作人員的安全具有舉足輕重的作用。
目前,被用于疲勞狀態(tài)檢測(cè)方法主要有兩類(lèi):一類(lèi)是采用醫(yī)療器械測(cè)量人體的特征,包括腦電圖、眼電圖、心電圖等生理信息,但這類(lèi)方法不太容易普及,對(duì)檢測(cè)環(huán)境有一定要求,成本高且需要佩戴相應(yīng)的儀器;另一類(lèi)是采用機(jī)器視覺(jué)技術(shù),對(duì)采集到的圖像經(jīng)過(guò)一系列圖像處理和模式識(shí)別算法處理,最終自動(dòng)判斷測(cè)試者的疲勞狀態(tài)。深度學(xué)習(xí)技術(shù)近年來(lái)已經(jīng)廣受學(xué)術(shù)界和工業(yè)界的關(guān)注[2],在這類(lèi)算法的運(yùn)用中,眨眼以及打哈欠頻率是面部疲勞狀態(tài)的重要指標(biāo),因此眼部和嘴部的狀態(tài)檢測(cè)是疲勞檢測(cè)中的關(guān)鍵問(wèn)題[3]。傳統(tǒng)的基于機(jī)器學(xué)習(xí)的面部疲勞狀態(tài)識(shí)別方法一般是通過(guò)Haar-like特征檢測(cè)出人臉的位置,然后通過(guò)計(jì)算眼睛縱橫比來(lái)描述眼睛的張開(kāi)程度判斷疲勞狀態(tài)[4]。但是由于光照、姿勢(shì)等條件變化,使得眼睛狀態(tài)識(shí)別的難度大大增加。近年來(lái),由于計(jì)算機(jī)硬件的進(jìn)步以及深度學(xué)習(xí)算法的發(fā)展,深度卷積神經(jīng)網(wǎng)絡(luò)能夠自適應(yīng)提取特征,更好地表達(dá)其處理圖像的本質(zhì)特征,且避免了人工特征選取過(guò)程,打破了圖像識(shí)別領(lǐng)域中“先提取特征,后模式識(shí)別”的框架[3],使得深度學(xué)習(xí)技術(shù)在模式識(shí)別領(lǐng)域有了廣闊的應(yīng)用空間,大大地推動(dòng)了疲勞檢測(cè)的研究。陳瑜等人[5]通過(guò)人臉人眼定位后,采用不確定性的云模型對(duì)提取的眼動(dòng)特征進(jìn)行數(shù)據(jù)處理,構(gòu)建二維多規(guī)則推理生成器檢測(cè)疲勞狀況。史瑞鵬等人[6]采用優(yōu)化的多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)(Multi-Task Convolution Neural Network,MTCNN)算法,實(shí)現(xiàn)在眼部和嘴部區(qū)域定位的基礎(chǔ)上,完成眼部、嘴部區(qū)域分類(lèi)模型的訓(xùn)練,最終實(shí)現(xiàn)疲勞駕駛的檢測(cè)判定。鄭偉成等人[7]通過(guò)MTCNN進(jìn)行人臉檢測(cè)并提取人臉關(guān)鍵點(diǎn),在此基礎(chǔ)上提取眼部、嘴部以及頭部疲勞特征,采用這3類(lèi)特征融合的策略,構(gòu)建決策樹(shù)實(shí)現(xiàn)駕駛員疲勞檢測(cè)分類(lèi)模型。深度學(xué)習(xí)雖然已經(jīng)成為疲勞檢測(cè)方面的重要途徑,但是檢測(cè)結(jié)果的準(zhǔn)確性還需要提高,因此本文提出一種新的基于深度學(xué)習(xí)的電力工作人員面部疲勞狀態(tài)識(shí)別系統(tǒng)。
本文設(shè)計(jì)的面部疲勞狀態(tài)檢測(cè)算法流程如圖1所示。對(duì)采集到的電力場(chǎng)景中工作人員圖像結(jié)合方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征和支持向量機(jī)(Support Vector Machine,SVM)分類(lèi)器進(jìn)行人臉檢測(cè),獲取人員面部位置,并進(jìn)行面部關(guān)鍵點(diǎn)定位。采用YOLOv4-tiny目標(biāo)檢測(cè)算法對(duì)眼部定位區(qū)域進(jìn)行特征提取,并建立模型檢測(cè)眼睛開(kāi)閉狀態(tài),依據(jù)PERCLOSE準(zhǔn)則求出單位時(shí)間內(nèi)眼睛閉合狀態(tài)所占的百分比,同時(shí)結(jié)合打哈欠和瞌睡點(diǎn)頭頻率完成電力環(huán)境中工作人員疲勞狀態(tài)預(yù)警機(jī)制。
圖1 疲勞狀態(tài)檢測(cè)算法流程
人臉檢測(cè)是疲勞狀態(tài)分析系統(tǒng)的重要依據(jù)。該方向目前已具有豐富的學(xué)術(shù)成果,如:基于Haar[8]人臉描述特征和Adaboost迭代算法分類(lèi)器[9]的快速人臉檢測(cè)算法;基于HOG特征和SVM分類(lèi)器的人臉檢測(cè)算法[10];以及級(jí)聯(lián)CNN的人臉檢測(cè)和人臉對(duì)齊算法MTCNN[11]。由于HOG結(jié)合SVM分類(lèi)算法具有速度快、模型小的特點(diǎn),適用于輕微遮擋以及正面和略微非正面人臉的特征,所以本文采用該方法來(lái)實(shí)現(xiàn)人臉檢測(cè),并選用Dlib庫(kù)提供的基于級(jí)聯(lián)回歸樹(shù)模型來(lái)回歸出人臉的68個(gè)關(guān)鍵點(diǎn),以實(shí)現(xiàn)人臉五官的定位。
由于梯度往往產(chǎn)生在物體的邊緣處,因此利用梯度和梯度方向的統(tǒng)計(jì)信息HOG特征可以很好地描述局部目標(biāo)的邊緣和形狀。此外,由于HOG是在圖像的局部方格單元上操作,且梯度受光照變化影響較小,因此HOG特征具有較好的光學(xué)不變性與幾何不變性。在進(jìn)行人臉檢測(cè)時(shí),HOG特征的提取過(guò)程如下[12]。
(1) 為了減少顏色數(shù)據(jù)和避免光照因素的干擾,對(duì)采集到的圖像I(x,y)采用Gamma壓縮法進(jìn)行顏色空間歸一化處理,公式為
I(x,y)=I(x,y)Gamma
(1)
(2) 計(jì)算每個(gè)點(diǎn)(x,y)的梯度值G(x,y)和梯度方向α(x,y),公式為
(2)
(3)
其中,Gx(x,y),Gy(x,y)分別為點(diǎn)(x,y)在水平和垂直方向上的梯度,公式為
Gx(x,y)=H(x+1,y)-H(x-1,y)
(4)
Gy(x,y)=H(x,y+1)-H(x,y-1)
(5)
式中:H(x,y)——點(diǎn)(x,y)的像素值。
(3) 將圖像I(x,y)劃分為若干個(gè)包含n×n個(gè)像素的單元區(qū)域,并將0°~360°劃分為N個(gè)方向區(qū)間,計(jì)算每個(gè)單元區(qū)域中的梯度方向直方圖。
(4) 將相鄰的K個(gè)單元區(qū)域組成單元塊,合并單元塊中的所有單元區(qū)域的HOG組成特征向量。為了能對(duì)光照變化和陰影獲得更好的效果,對(duì)合并后的特征向量進(jìn)行歸一化。
(5) 以步長(zhǎng)L搜索整個(gè)圖像,將所有單元塊的HOG特征合并形成整個(gè)圖像的HOG描述子。
在確定人臉位置后,需要對(duì)人臉進(jìn)行特征點(diǎn)定位和分析。為了提高識(shí)別的實(shí)時(shí)性和準(zhǔn)確率,本算法采用Dlib人臉檢測(cè)預(yù)訓(xùn)練模型,獲取人臉的關(guān)鍵點(diǎn)。人臉68個(gè)特征點(diǎn)定位及眼部區(qū)域檢測(cè)如圖2所示。
圖2 人臉68個(gè)特征點(diǎn)定位及眼部區(qū)域檢測(cè)
對(duì)獲取的圖像利用此模型估計(jì)圖像特征點(diǎn)的位置,分別分布在臉部輪廓、眉毛、眼睛、鼻子、嘴巴等臉部關(guān)鍵部位,并根據(jù)特征點(diǎn),得到眼部的矩形區(qū)域。
眼睛閉合狀態(tài)是疲勞檢測(cè)的重要標(biāo)志之一。使用傳統(tǒng)方法進(jìn)行眼睛閉合狀態(tài)判斷時(shí)局限性較大,比如直接使用Dlib進(jìn)行疲勞檢測(cè)時(shí)受環(huán)境影響較為明顯,尤其被檢測(cè)者戴眼鏡時(shí)更加大了檢測(cè)難度。本文針對(duì)以上問(wèn)題提出了使用YOLOv4-tiny目標(biāo)檢測(cè)算法與Dlib聯(lián)合進(jìn)行疲勞檢測(cè)。在自建數(shù)據(jù)集上進(jìn)行眼睛閉合狀態(tài)檢測(cè)實(shí)驗(yàn),效果良好,能夠滿(mǎn)足實(shí)際應(yīng)用場(chǎng)景需求。
在實(shí)驗(yàn)中采用網(wǎng)絡(luò)爬取進(jìn)行數(shù)據(jù)搜集,結(jié)合數(shù)據(jù)增強(qiáng)建立眼部狀態(tài)數(shù)據(jù)集,分為睜眼與閉眼兩類(lèi)進(jìn)行標(biāo)注。實(shí)驗(yàn)數(shù)據(jù)總量為1 750張,使用LabelImg數(shù)據(jù)標(biāo)注軟件對(duì)數(shù)據(jù)集的人眼部進(jìn)行標(biāo)注,標(biāo)注示例如圖3所示。
圖3 數(shù)據(jù)集眼部標(biāo)注示例
YOLOv4-tiny目標(biāo)檢測(cè)算法是YOLOv4[13]目標(biāo)檢測(cè)算法的輕量版。在數(shù)據(jù)增強(qiáng)方面使用了馬賽克(Mosaic)數(shù)據(jù)增強(qiáng)方式。在訓(xùn)練過(guò)程中選擇最優(yōu)參數(shù),Mosaic數(shù)據(jù)增強(qiáng)是通過(guò)對(duì)已有數(shù)據(jù)集進(jìn)行傳統(tǒng)仿射變換(反轉(zhuǎn)、平移、旋轉(zhuǎn)等)的同時(shí)將4張圖片組合在一起進(jìn)行訓(xùn)練。這種數(shù)據(jù)增強(qiáng)方式可以進(jìn)一步豐富物體的背景信息[14],提升模型的泛化能力。使用YOLOv4-tiny算法對(duì)YOLOv4網(wǎng)絡(luò)進(jìn)行處理,只使用兩個(gè)特征層進(jìn)行分類(lèi)與回歸處理,減少了模型的參數(shù)量,提升了模型的檢測(cè)速度。為了使網(wǎng)絡(luò)更加輕量級(jí),網(wǎng)絡(luò)刪減了原來(lái)的特征融合模塊,只對(duì)最后兩個(gè)特征層進(jìn)行特征融合,在保證網(wǎng)絡(luò)輕量級(jí)的同時(shí)進(jìn)一步增強(qiáng)小物體的檢測(cè)能力。YOLOv4-tiny網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 YOLOv4tiny網(wǎng)絡(luò)結(jié)構(gòu)
人在疲勞的時(shí)候,往往哈欠不斷,以提醒大腦已經(jīng)處于疲憊狀態(tài)。人在打哈欠時(shí),兩嘴唇距離加大,閉合時(shí),兩嘴唇的距離幾乎為零。但實(shí)際檢測(cè)中,由于人的頭部會(huì)發(fā)生各種運(yùn)動(dòng),從而會(huì)影響距離計(jì)算的準(zhǔn)確性。為了提高距離指標(biāo)的準(zhǔn)確度,使用嘴部的長(zhǎng)寬比ηMAR和張嘴時(shí)間作為打哈欠的判斷依據(jù)。利用歐式距離來(lái)計(jì)算嘴部的長(zhǎng)寬比,計(jì)算公式為
(6)
選取合適的閾值,當(dāng)ηMAR大于閾值時(shí),判斷嘴部為張開(kāi)狀態(tài)。
嘴部關(guān)鍵點(diǎn)位置如圖5所示。
圖5 嘴部關(guān)鍵點(diǎn)分布
瞌睡點(diǎn)頭可以用31#特征點(diǎn)縱坐標(biāo)變化量Δy和變化時(shí)間來(lái)判斷。當(dāng)Δy>Tnod(閾值)時(shí),為點(diǎn)頭狀態(tài)。當(dāng)連續(xù)n幀圖像滿(mǎn)足Δy>Tnod時(shí),將圖像序列標(biāo)記為瞌睡點(diǎn)頭。設(shè)Snod為點(diǎn)頭頻率,計(jì)算公式為
(7)
式中:Nnod——瞌睡點(diǎn)頭幀數(shù);
N——總幀數(shù)。
選取合適的閾值,當(dāng)Snod大于閾值時(shí),則判斷為疲勞狀態(tài)。
通過(guò)分析人的疲勞現(xiàn)象,總結(jié)在不同疲勞等級(jí)下面部的行為特征:正常狀態(tài),表現(xiàn)為眨眼速度快;輕微疲勞,表現(xiàn)為眨眼速度變慢、嘴部有哈欠動(dòng)作;重度疲勞,表現(xiàn)為眼睛長(zhǎng)時(shí)間閉合,頭部下垂。因此,在面部特征定位的基礎(chǔ)上,選擇以眨眼頻率、哈欠頻率及點(diǎn)頭頻率作為疲勞狀態(tài)的判斷依據(jù)。
使用YOLOv4-tiny進(jìn)行目標(biāo)檢測(cè)算法眼部狀態(tài)判斷,由于使用預(yù)訓(xùn)練權(quán)重,損失函數(shù)(Loss Function)初始值較低,最終收斂至3.4左右,訓(xùn)練提前截止。訓(xùn)練過(guò)程中Loss變化如圖6所示。識(shí)別結(jié)果如圖7所示。
圖6 Loss變化曲線(xiàn)
圖7 識(shí)別結(jié)果
從圖7可以看出,待檢測(cè)人員的眼部狀態(tài)檢測(cè)效果良好,戴眼鏡時(shí)也能準(zhǔn)確檢測(cè),但是只進(jìn)行眼部狀態(tài)檢測(cè)難以判斷疲勞。
因此,本文進(jìn)行睜眼、閉眼兩類(lèi)識(shí)別的主要設(shè)計(jì)思路是:首先使用YOLOv4-tiny目標(biāo)檢測(cè)算法進(jìn)行狀態(tài)識(shí)別,然后對(duì)臉部關(guān)鍵點(diǎn)定位計(jì)算人眼睜合的程度和閉眼時(shí)間,結(jié)合眼部狀態(tài)PERCLOSE準(zhǔn)則判斷的同時(shí),增加了提前截止判斷。這樣設(shè)計(jì)的好處是在于當(dāng)被檢測(cè)目標(biāo)出現(xiàn)長(zhǎng)時(shí)間閉眼現(xiàn)象時(shí),系統(tǒng)會(huì)提前判斷人員疲勞狀態(tài),避免多特征的復(fù)雜判斷延誤系統(tǒng)對(duì)疲勞者的提示,使得系統(tǒng)更加人性化,更符合實(shí)際電廠施工場(chǎng)景。
當(dāng)電力工作人員疲勞時(shí),面部會(huì)出現(xiàn)疲勞特征,通過(guò)獲取工作人員眼部、嘴部和頭部狀態(tài)信息判斷其疲勞程度。為了區(qū)分正常的眨眼、說(shuō)話(huà)和點(diǎn)頭,經(jīng)過(guò)多次實(shí)驗(yàn)對(duì)比,其中非疲勞狀態(tài)PERCLOSE范圍為0~0.3,疲勞狀態(tài)的PERCLOSE范圍為0.2~1.0。由此可見(jiàn),當(dāng)PERCLOSE在0.2~0.3范圍內(nèi)是介于清醒與疲勞的過(guò)渡狀態(tài)。在綜合嘴部和頭部狀態(tài)判斷后,PERCLOSE值設(shè)置為0.25,嘴部長(zhǎng)寬比閾值設(shè)置為0.5,頭部特征點(diǎn)縱坐標(biāo)變化的閾值設(shè)為0.3。
實(shí)驗(yàn)在Windows10操作系統(tǒng)中進(jìn)行。對(duì)比實(shí)驗(yàn)與原實(shí)驗(yàn)設(shè)置相同,本文使用YOLOv4-tiny目標(biāo)檢測(cè)算法與Dlib聯(lián)合檢測(cè)疲勞狀態(tài),同時(shí)使用檢測(cè)效果較好且參數(shù)量和計(jì)算量小于YOLOv4的YOLOv3與YOLOv4-tiny對(duì)比眼部檢測(cè)效果。從MAP@0.5、參數(shù)量、模型體積和FPS(每秒檢測(cè)幀率)等方面進(jìn)行對(duì)比,結(jié)果如表1所示。
表1 眼部檢測(cè)效果對(duì)比
由表1可以看出,YOLOv4-tiny算法的模型參數(shù)量更小,占用內(nèi)存體積更小,FPS更高,雖然相比YOLOv3其MAP@0.5低了9.2%,但是足夠滿(mǎn)足眼部疲勞狀態(tài)檢測(cè)需要,實(shí)現(xiàn)了電力操作系統(tǒng)下工作人員疲勞狀態(tài)實(shí)時(shí)預(yù)警。
在上述疲勞狀態(tài)識(shí)別系統(tǒng)上,分時(shí)間段對(duì)被檢測(cè)者進(jìn)行檢測(cè),結(jié)果如圖8所示。由圖8可以看出,結(jié)合眼部、嘴部、頭部疲勞狀態(tài)識(shí)別的實(shí)驗(yàn)檢測(cè)結(jié)果與實(shí)際狀態(tài)一致,檢測(cè)效果良好。
圖8 實(shí)時(shí)檢測(cè)結(jié)果
疲勞狀態(tài)漏檢可能導(dǎo)致更多安全隱患。本文通過(guò)多特征(眼部、嘴部、頭部)結(jié)合并行檢測(cè),可以有效減少漏檢現(xiàn)象的發(fā)生,增加電力工作人員實(shí)際工作場(chǎng)景的安全性。在人臉檢測(cè)的基礎(chǔ)上,通過(guò)級(jí)聯(lián)回歸樹(shù)算法定位人臉68個(gè)特征點(diǎn),提取眼部、嘴部、鼻部位置。由于光照及頭部姿態(tài)變動(dòng)對(duì)關(guān)鍵點(diǎn)提取位置的準(zhǔn)確度影響較大,傳統(tǒng)基于關(guān)鍵點(diǎn)距離法的眼部疲勞狀態(tài)識(shí)別準(zhǔn)確度不高,本文采用YOLOv4-tiny目標(biāo)檢測(cè)算法判斷眼睛的開(kāi)閉狀態(tài),結(jié)合眼部狀態(tài)PERCLOSF準(zhǔn)則作為判斷的主要依據(jù),聯(lián)合嘴部狀態(tài)與頭部瞌睡點(diǎn)頭進(jìn)行判斷,使得本文所提出的聯(lián)合檢測(cè)算法魯棒性更強(qiáng)。由檢測(cè)結(jié)果可知,該算法能實(shí)現(xiàn)對(duì)電力工作人員疲勞狀態(tài)的準(zhǔn)確判斷,有較強(qiáng)的實(shí)際應(yīng)用價(jià)值,使電力施工環(huán)境更加安全,給電力工人和電力產(chǎn)業(yè)更多安全保障。