◆孫昕 顧延中
基于面部特征識別的管制員疲勞檢測算法研究
◆孫昕 顧延中
(中國民航飛行學(xué)院空中交通管理學(xué)院 四川 610000 )
管制員疲勞是關(guān)系到航空安全的重要問題之一,本文通過安裝在管制員工作臺正前方的攝像頭獲取管制員工作時(shí)候的視頻,運(yùn)用一種使用多任務(wù)級聯(lián)卷積網(wǎng)絡(luò)(Multi-Task Convolutional Neural Network,MTCNN)對獲得的視頻圖像,包含管制員的臉部,身體的姿態(tài)等特定部位進(jìn)行定位,從獲取的圖像中提取管制員嘴部、左右眼等區(qū)域的光流圖并進(jìn)行特征融合,然后使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)提取特征進(jìn)行管制員疲勞檢測,實(shí)驗(yàn)結(jié)果表明能夠有效檢測出管制員瞌睡、打哈欠、閉眼等一系列疲勞動(dòng)作。
多任務(wù)級聯(lián)卷積網(wǎng)絡(luò);卷積神經(jīng)網(wǎng)絡(luò);特征融合;光流圖
近些年來,由于中國民用航空發(fā)展速度加快,我國管制人員工作負(fù)荷大大增加,導(dǎo)致管制員工作中產(chǎn)生疲勞,威脅民航安全。根據(jù)民航某地區(qū)調(diào)查顯示,由于管制員疲勞導(dǎo)致發(fā)生的危險(xiǎn)事件約占18%[1]。2014年7月,武漢某管制人員因?yàn)槠谠陲w機(jī)進(jìn)近階段睡崗;2016年10月,虹橋機(jī)場塔臺管制員因?yàn)槠诙中?,沒有認(rèn)真考慮飛行員指令,盲目跟從之后造成了跑道侵入事件[2]。根據(jù)美國聯(lián)邦航空局(Federal Aviation Administration,F(xiàn)AA)調(diào)查發(fā)現(xiàn),大約有80%的管制員在上班期間會因工作勞累而產(chǎn)生疲勞,其中,大約有20%的管制員認(rèn)為自己一直存在疲勞感[3]。在2016年4月,國際民航組織召開了疲勞風(fēng)險(xiǎn)相關(guān)會議,因此,越來越多的國家關(guān)注由于管制員疲勞造成的安全事件,合理有效的檢測管制員疲勞成了空管安全領(lǐng)域研究的重點(diǎn)。目前,已經(jīng)有各種算法技術(shù)對管制員疲勞進(jìn)行檢測,如:基于面部的Haar特征的AdaBoost[4]人臉檢測算法,該算法在實(shí)際復(fù)雜的環(huán)境下運(yùn)用效果不理想,當(dāng)人體姿態(tài)改變或者人臉方向的變動(dòng)時(shí),并不能準(zhǔn)確的檢測到嘴部,臉部區(qū)域;基于HOG-SVM[5]人臉檢測算法,該算法由于本身模型很小,只能檢測到最小圖片尺寸為80*80,不具有普遍性;本文中提出利用結(jié)合光流算法和多任務(wù)級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的方式來檢測管制員的疲勞狀態(tài),當(dāng)多任務(wù)級卷積神經(jīng)網(wǎng)絡(luò)檢測到人臉的時(shí)候,結(jié)合光流算法能夠解決傳統(tǒng)算法對動(dòng)態(tài)場景下運(yùn)動(dòng)目標(biāo)檢測誤差較高的問題,并且有效地去除噪聲的干擾,較暗的光線等外在因素的影響,完整地檢測出場景中的運(yùn)動(dòng)目標(biāo),并實(shí)現(xiàn)了對檢測出的運(yùn)動(dòng)目標(biāo)進(jìn)行穩(wěn)定的跟蹤。
本文首先使用 MTCNN 進(jìn)行人臉和關(guān)鍵點(diǎn)檢測任務(wù)如圖1,本文算法過程如圖2。
圖1 MTCNN檢測人臉關(guān)鍵點(diǎn)定位
圖2 本文的算法流程圖
MTCNN由3個(gè)網(wǎng)絡(luò)結(jié)構(gòu)組成(P-Net,R-Net,O- Net),其算法模型總體結(jié)構(gòu)如圖3所示。第一階段是Proposal Network (P-Net):該網(wǎng)絡(luò)結(jié)構(gòu)主要獲得了人臉區(qū)域的候選窗口和邊界框的回歸向量。并用該邊界框做回歸,對候選窗口進(jìn)行校準(zhǔn),然后通過非極大值抑制(NMS)來合并高度重疊的候選框;第二階段是Refine Network (R-Net):該網(wǎng)絡(luò)結(jié)構(gòu)還是通過邊界框回歸和NMS來去掉那些false-positive區(qū)域。只是由于該網(wǎng)絡(luò)結(jié)構(gòu)和P-Net網(wǎng)絡(luò)結(jié)構(gòu)有差異,多了一個(gè)全連接層,所以會取得更好抑制false-positive的作用;第三階段是Output Network (O-Net):該層比R-Net層又多了一層卷積層,所以處理的結(jié)果會更加精細(xì)。作用和R-Net層作用一樣。但是該層對人臉區(qū)域進(jìn)行了更多的監(jiān)督,同時(shí)還會輸出5個(gè)關(guān)鍵點(diǎn)位置。
圖3 MTCNN算法效果
但只確定人臉關(guān)鍵點(diǎn)部位是遠(yuǎn)遠(yuǎn)不夠的,還需要確定關(guān)鍵點(diǎn)坐標(biāo),本文根據(jù)“三庭五眼”規(guī)律,以眼部坐標(biāo)為中心、左右唇端距離為長度,確定一個(gè)矩形框,作為眼部區(qū)域;以左唇端、右唇端中點(diǎn)為中心、左右唇端距離為長度,確定一個(gè)矩形框,作為嘴部區(qū)域,如圖4所示。
圖4 關(guān)鍵點(diǎn)坐標(biāo)
當(dāng)管制員處于疲勞狀態(tài)時(shí),會出現(xiàn)瞌睡、打哈欠、閉眼等一系列動(dòng)態(tài)動(dòng)作,因此,僅有靜態(tài)的圖像是遠(yuǎn)遠(yuǎn)不夠的。光流[7]是利用圖像序列中像素在時(shí)間域上的變化以及相鄰幀之間的相關(guān)性來找到上一幀跟當(dāng)前幀之間存在的對應(yīng)關(guān)系,包含了連續(xù)幀之間的動(dòng)態(tài)信息。本文使用光流圖中包含的動(dòng)態(tài)信息代替連續(xù)幀所提供的動(dòng)態(tài)信息,將動(dòng)態(tài)與靜態(tài)相融合,可以更好檢測管制員疲勞。
光流是用于顯示在三維空間中運(yùn)動(dòng)的物體,并形象的表現(xiàn)到二維圖像中,反映出物體像素點(diǎn)的運(yùn)動(dòng)方向。利用圖像序列中像素在時(shí)間域上的變化以及相鄰幀之間的相關(guān)性來找到上一幀跟當(dāng)前幀之間存在的對應(yīng)關(guān)系,從而計(jì)算出相鄰幀之間物體的運(yùn)動(dòng)信息。假設(shè)每一個(gè)時(shí)刻均有一個(gè)向量集合(,,),表示指定坐標(biāo)(,)在點(diǎn)的瞬時(shí)速度。設(shè)(,,)為時(shí)刻(,)點(diǎn)的像素亮度,在很短的時(shí)間?內(nèi),和分別增加?,?,可得:
但考慮到相鄰兩幀的圖像之間距離較短,可得:
兩者合并可得:
因此,
最后可得:
Farneback算法[8]是光流計(jì)算的一種方法,在管制員工作的時(shí)候,由于正對著管制員的攝像頭是固定的,因此,管制員面部的光流特寫是由管制員本身頭部或者身體姿勢改變而運(yùn)動(dòng)的,本文通過Farneback算法計(jì)算管制員眼部、嘴部的光流特寫,以此來反映管制員當(dāng)前的狀態(tài)。在圖5中,采集到模擬管制員視頻中的兩幀,(a)表示光流計(jì)算的水平分量,(b)表示光流計(jì)算的垂直分量。
圖5 Farneback光流計(jì)算相關(guān)圖像
一個(gè)正常的人在同一時(shí)間自然狀態(tài)下,左右眼的運(yùn)動(dòng)方向是基本一致的[9],因此,本文首先在MTCNN 的三個(gè)網(wǎng)絡(luò)均設(shè)置了一個(gè)閾值,這個(gè)值代表著大多數(shù)情況下人臉候選窗口的精確性,閾值嚴(yán)格選定的情況下,管制員低頭(MTCNN檢測不到人臉的情況下),判斷管制員處于瞌睡(分心)情況;如果檢測到人臉,則將提取眼睛、嘴部等特征區(qū)域送入疲勞檢測網(wǎng)絡(luò),并結(jié)合眼部、嘴部光流圖,判斷管制員在上崗期間是處于正常工作狀態(tài),還是處于分心、打哈欠狀態(tài)。之后,使用CNN對光流圖提取動(dòng)態(tài)特征,對一個(gè)短時(shí)間的動(dòng)作變化進(jìn)行分類。
本文將疲勞檢測網(wǎng)絡(luò)分為四部分,首先是眼睛光流特征提取子網(wǎng)絡(luò);其次是左眼特征提取子網(wǎng);接著是嘴部光流特征提取子網(wǎng),最后一個(gè)是嘴部特征提取。將提取到的嘴部,眼部光流圖以及提取的嘴部,眼部特征輸入進(jìn)四個(gè)子網(wǎng),經(jīng)過數(shù)層卷積、池化后,將眼部和眼部光流圖融合,進(jìn)一步提取眼部特征。同樣的辦法處理嘴部得到的圖像,然后將眼部/嘴部融合后的子網(wǎng)絡(luò)再全部輸入全連接層以此得到全局區(qū)域的特征。之后再經(jīng)過降維,最終輸入Softmax層進(jìn)行分類得到最終處理結(jié)果。為了避免過度擬合,在每個(gè)卷積層添加L2正則項(xiàng),在全連接層前添加了Dropout層(如圖6)。
圖6 疲勞檢測網(wǎng)絡(luò)
為檢測本文所采用面部特征識別算法的魯棒性和實(shí)時(shí)性,本文對11名志愿者進(jìn)行管制模擬機(jī)訓(xùn)練,獲取了共11段5分鐘的面部視頻數(shù)據(jù),1秒鐘為24幀,可獲取7200張RNG圖像。本文將收集到的數(shù)據(jù)分為兩部分,一部分是正常與打瞌睡的動(dòng)作,這一部分用于睡崗檢測;另一部分是正常動(dòng)作與打哈欠、閉眼等一系列疲勞動(dòng)作,用于疲勞檢測網(wǎng)格。圖7中的圖像均來自實(shí)驗(yàn)所得到的數(shù)據(jù),(a)是正常工作情況圖像、(b)瞌睡圖像、(c)打哈欠圖像、(d)閉眼圖像。
因?yàn)槿嗽诖蝾瘯r(shí)候重要特征是低頭,此時(shí)實(shí)際視頻采集到的面部圖像在原來的640*480中管制員的人臉只占200*150,因此直接以MTCNN是否檢測到人臉作為打瞌睡的標(biāo)準(zhǔn)。從表1采集到的視頻結(jié)果中可以看出,大部分正常狀態(tài)下(a圖)能被檢測到,也很容易檢測到瞌睡(b圖)情況。
表1 MTCNN檢測瞌睡實(shí)驗(yàn)結(jié)果
由表1可以看出,結(jié)合光流圖檢測打瞌睡會更精確些,但由于人擺頭等頭部運(yùn)動(dòng)會被標(biāo)記為打瞌睡,對試驗(yàn)結(jié)果造成波動(dòng)較大。
當(dāng)以人的眼部(以左眼為例)和嘴部檢測管制員疲勞時(shí),結(jié)合光流圖的算法,能夠識別短時(shí)間內(nèi)的動(dòng)作變化,得出在響應(yīng)時(shí)間內(nèi)眼睛閉合次數(shù)和打哈欠的次數(shù)(如圖6),如表2所示。
圖6 數(shù)據(jù)集采集正常、打哈欠、閉眼等情
表2 左眼、嘴部結(jié)合光流圖疲勞檢測結(jié)果
從表中可以看出,結(jié)合包含動(dòng)態(tài)信息的光流圖獲得的精確度可達(dá)到90.5%,由此可以看出本文的算法對管制員工作時(shí)候打哈欠、閉眼等動(dòng)作可以更好識別。
本文提出了一種基于面部特征識別的管制員疲勞檢測算法,相對于生理檢測[10](腦電、心電等監(jiān)測)、主觀檢測[11](斯坦福嗜睡量表),本文的方法避免了對管制員造成身體侵入性的影響,而且檢測結(jié)果的精確度高,并引入光流圖和卷積神經(jīng)網(wǎng)絡(luò),應(yīng)用到管制員日常工作視頻監(jiān)控中,從實(shí)驗(yàn)結(jié)果看出,在外部正常的工作環(huán)境下,對于各種不同情景如打瞌睡、閉眼、打哈欠均適用,本文的算法具有更高的魯棒性和準(zhǔn)確率。但本文也存在一些不足,稍微低頭、左右擺頭等頭部運(yùn)動(dòng)會被標(biāo)記為打瞌睡;講話等會被標(biāo)記為打哈欠,這些需要在今后的工作中改進(jìn)和做進(jìn)一步研究。
[1]孫瑞山,李康,李敬強(qiáng).空中交通管制員疲勞狀態(tài)及影響因素分析[J].安全與環(huán)境學(xué)報(bào),2018,18(06):2241-2246.
[2]沈笑云,張肖艷,張思遠(yuǎn).基于ADS-B的跑道侵入沖突檢測與告警研究[J].中國安全科學(xué)學(xué)報(bào),2019,29(09):119-124.
[3]Lee Young Jong. Domestic Application Plan of Fatigue Risk Management System by Air Traffic Controller[J]. The Journal of Advanced Navigation Technology,2019,23(6).
[4]李佩,汪紅娟,李業(yè)麗,劉夢陽.基于AdaBoost人臉檢測算法的分析研究[J].北京印刷學(xué)院學(xué)報(bào),2020,28(01):128-132.
[5]張萌,王文,任俊星,魏冬,黃偉慶,楊召陽,呂志強(qiáng).基于HOG-SVM的跳頻信號檢測識別算法[J].信息安全學(xué)報(bào),2020,5(03):62-77.
[6]賈小碩,曾上游,潘兵,周悅.基于改進(jìn)MTCNN網(wǎng)絡(luò)的目標(biāo)人臉快速檢測[J].計(jì)算機(jī)工程與科學(xué),2020,42(07):1262-1266.
[7]劉闖. 基于計(jì)算機(jī)視覺的人體行為識別方法[D].南京郵電大學(xué),2019.
[8]Chia-Wei Chang,Zi-Qi Zhong,Jing-Jia Liou. A FPGA Implementation of Farneback Optical Flow by High-Level Synthesis[P]. Field-Programmable Gate Arrays,2019.
[9]Junhao Huang,Weize Sun,Lei Huang. Deep neural networks compression learning based on multi objective evolution aryalgorithms[J]. Neurocomputing,2020,378.
[10]陳鳳蘭. 基于多導(dǎo)生理信號的管制員疲勞分析方法研究[D].中國民航大學(xué),2018.
[11]項(xiàng)悅. 基于認(rèn)知科學(xué)的管制員疲勞狀態(tài)檢測方法研究與系統(tǒng)設(shè)計(jì)[D].中國民用航空飛行學(xué)院,2019.