江躍龍 張銘智
摘? 要: 列車司機(jī)長期處于精神高度集中、工作強(qiáng)度較大的工作狀態(tài),容易產(chǎn)生生理和心理上的疲勞。本文通過Raspberry PI攝像頭對列車司機(jī)疲勞狀態(tài)進(jìn)行采集,對采集的視頻流進(jìn)行人臉定位和面部特征點(diǎn)的提取,對該列車司機(jī)眼睛、嘴巴數(shù)據(jù)進(jìn)行分析,結(jié)合PERCLOS標(biāo)準(zhǔn)判定列車司機(jī)是否疲勞,在GUI界面顯示檢測結(jié)果。
關(guān)鍵詞: 列車司機(jī)疲勞檢測; PERCLOS; 疲勞檢測; 人臉檢測; SVM人臉檢測器; 疲勞駕駛;
中圖分類號:TP301? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ?文章編號:1006-8228(2023)04-112-04
Abstract: Train drivers are prone to physiological and psychological fatigue when they are in a highly concentrated and intense work state for a long time. In this paper, the fatigue state of the train driver is captured by Raspberry PI camera, and the face positioning and extraction of facial feature points are performed on the captured video stream. By analyzing the data of the train driver's eyes and mouth, whether the train driver is fatigued or not is determined combining with PERCLOS criteria, and the detection results are displayed in the GUI interface.
Key words: train driver fatigue detection; PERCLOS; fatigue detection; face detection; SVM face detector; fatigue driving
0 引言
中國鐵路交通發(fā)展迅速,鐵路運(yùn)輸任務(wù)繁忙。列車司機(jī)工作環(huán)境單調(diào)且與人交流時(shí)間較少,且長期處于精神高度集中、工作強(qiáng)度較大的狀態(tài),容易產(chǎn)生生理和心理上的疲勞,比如駕駛時(shí)產(chǎn)生打哈欠、視覺模糊、磕睡打盹等生理反應(yīng),而這些生理反應(yīng)可能屬于疲勞駕駛,增加了軌道交通運(yùn)行的安全風(fēng)險(xiǎn);在高鐵、地鐵運(yùn)行期間,列車駕駛員需要維持其精神高度集中,以應(yīng)對各種可能出現(xiàn)的風(fēng)險(xiǎn)。因此,檢測列車司機(jī)是否處于疲勞狀態(tài),對于提高列車運(yùn)行安全性有著重要意義。
1 列車司機(jī)疲勞檢測疲勞檢測方法
1.1 生理特征的疲勞檢測方法
利用列車司機(jī)的腦電圖信號[1]、心電圖信號[2]、肌電圖信號[3]以及眼電波信號[4]等生理信息特征,對其在正常和疲勞狀態(tài)下的生理特征的變化進(jìn)行比較,從而判斷列車司機(jī)是否產(chǎn)生疲勞。Jain A等人利用腦電圖信號的回歸參數(shù)檢測測試者的疲勞程度,對獲得的誤差函數(shù)進(jìn)行分析,以預(yù)測肌肉疲勞程度,從而判斷被測試者是否處于疲勞狀態(tài)[5]。楊渝書等通過心電圖信號的時(shí)頻域指標(biāo)變化來判斷司機(jī)的疲勞程度[6]。
1.2 駕駛數(shù)據(jù)的疲勞檢測方法
司機(jī)的駕駛行為在不同的疲勞程度下有不同的表現(xiàn),根據(jù)行車數(shù)據(jù)中的汽車轉(zhuǎn)向角度數(shù)據(jù)、車輛駕駛方向軌跡數(shù)據(jù)、行車加速度變化數(shù)據(jù)以及司機(jī)手臂握力變化數(shù)據(jù)可以檢測司機(jī)是否疲勞。Sayed R等將汽車轉(zhuǎn)向角度變化信息經(jīng)過預(yù)處理后,將其作為特征參數(shù)輸入人工神經(jīng)網(wǎng)絡(luò)中[7]。使用評價(jià)主體作為駕駛數(shù)據(jù)的疲勞檢測方法,駕駛員不需要穿戴各種各樣的測量儀器,駕駛數(shù)據(jù)收集不復(fù)雜,但需要汽車安裝相應(yīng)的檢測裝置,而且檢測裝置的準(zhǔn)確度受道路環(huán)境、司機(jī)駕駛習(xí)慣不同和天氣變化影響較大。
1.3 面部特征的疲勞檢測方法
司機(jī)進(jìn)入疲勞狀態(tài)時(shí)的面部特征會有所變化,例如瞳孔區(qū)域變小、打哈欠、減慢眼球運(yùn)動(dòng)速度等等。計(jì)算機(jī)視覺圖像處理技術(shù)可被用于收集司機(jī)產(chǎn)生疲勞時(shí)的面部特征,分析司機(jī)疲勞時(shí)的面部特征來判定司機(jī)的疲勞程度。該方法具有采集面部數(shù)據(jù)簡單、成本低、無需穿戴測量儀器等優(yōu)點(diǎn)。目前該方法已成為疲勞檢測的主流方法。李強(qiáng)使用眼睛的睜開程度來計(jì)算閉眼圖像幀數(shù)占列車司機(jī)駕駛圖像幀數(shù)的百分比,從而判斷司機(jī)是否疲勞[8]。陳東偉等為檢測司機(jī)疲勞狀態(tài)使用了一種新的動(dòng)態(tài)滑動(dòng)窗口算法來計(jì)算眼睛開閉時(shí)的準(zhǔn)確閾值[9]。
2 系統(tǒng)的總體架構(gòu)
列車司機(jī)疲勞駕駛檢測系統(tǒng)需要具備實(shí)時(shí)檢測、穩(wěn)定的性能和檢測高準(zhǔn)確性的特點(diǎn),如果列車司機(jī)產(chǎn)生疲勞,則對列車司機(jī)進(jìn)行文字提醒和語音預(yù)警。本文的硬件開發(fā)平臺采用樹莓派4B和筆記本電腦,然后使用樹莓派CSI攝像頭實(shí)時(shí)采集圖像并通過視頻推流的方式傳輸?shù)焦P記本上,利用Dlib庫進(jìn)行人臉檢測、人臉關(guān)鍵點(diǎn)特征提取,通過PERCLOS準(zhǔn)則結(jié)合眼睛、嘴巴縱橫比判斷列車司機(jī)是否疲勞,實(shí)現(xiàn)對列車司機(jī)的非接觸式的疲勞狀態(tài)檢測。為了方便操作,基于PyQt5等開發(fā)工具開發(fā)列車司機(jī)疲勞檢測系統(tǒng)的GUI界面?;谝陨显O(shè)計(jì)思路,繪制相應(yīng)的系統(tǒng)架構(gòu)圖,如圖1所示。
2.1 人臉檢測技術(shù)
人臉檢測技術(shù)的發(fā)展越來越成熟,如基于模板的匹配算法[10]。
本文選用的硬件為樹莓派4B和一臺筆記本電腦,硬件性能一般,在兼顧硬件性能和檢測速度的情況下,本文選擇HOG+線性SVM人臉檢測器來進(jìn)行人臉檢測,HOG算法的主要目的是對圖像進(jìn)行梯度計(jì)算,統(tǒng)計(jì)圖像的梯度方向和梯度大小。該算法提取的邊緣和梯度特征可以較好的描述圖像局部形狀的特征,由于采用cell方式對圖像進(jìn)行歸一化處理,并且使用Gamma校正處理圖像,所以該算法對幾何和光學(xué)變化都具有良好的抗干擾性,圖像發(fā)生變換或發(fā)生旋轉(zhuǎn)的區(qū)域比較小的話對該算法影響很小。在Dlib庫中的目標(biāo)檢測模塊包含了HOG算法,在Dlib庫中調(diào)用get_frontal_face_detector函數(shù)即可使用HOG+線性SVM人臉檢測器,其在檢測人臉上有高準(zhǔn)確性和良好的實(shí)時(shí)性,能確保順利地檢測到人臉。HOG+線性SVM人臉檢測器檢測人臉流程如圖2所示。
2.2 疲勞駕駛檢測方法
當(dāng)筆記本電腦讀取到列車司機(jī)臉部視頻流信息時(shí),筆記本電腦中的HOG+線性SVM人臉檢測器首先定位人臉的面部信息;當(dāng)識別確定人臉在圖像上的位置后,使用Dlib庫提取人臉68個(gè)關(guān)鍵點(diǎn)信息;利用PERCLOS值與眼睛縱橫比、嘴巴縱橫比來計(jì)算司機(jī)疲勞狀態(tài),當(dāng)判定司機(jī)處于疲勞狀態(tài)時(shí),及時(shí)對司機(jī)進(jìn)行語音播報(bào)預(yù)警和文字顯示預(yù)警,如圖3所示。
2.3 列車司機(jī)張閉眼睛判斷方法
判斷列車司機(jī)疲勞的方法,一般列車司機(jī)的人臉特征點(diǎn)68個(gè),如圖4所示。
左眼睛和右眼,計(jì)算閉眼方法[11],將左眼的特征點(diǎn)提取和多邊形如圖5和圖6所示。
圖7所示的六邊形頂點(diǎn)坐標(biāo)分別為A(x1,y1),B(x2,y2),C(x3,y3),D(x4,y4),E(x5,y5),F(xiàn)(x6,y6),則其面積可以表示為四個(gè)三角形面積之和:
如果S面積為0,說明我們列車司機(jī)的眼睛實(shí)閉合的。
如果S面積>一定閾值的時(shí)候(如該值為0),說明我們司機(jī)的眼睛是張開。
3 界面設(shè)計(jì)
列車司機(jī)疲勞檢測系統(tǒng)的GUI界面設(shè)計(jì),主要使用PyCharm集成開發(fā)環(huán)境+PyQt5工具包,具體包括登錄界面、檢測界面等。
3.1 疲勞狀態(tài)檢測測試
在樹莓派開啟RTSP推流后,打開疲勞檢測的GUI界面并點(diǎn)擊疲勞檢測頁面中的“打開攝像頭”按鈕,此時(shí)疲勞檢測系統(tǒng)開始運(yùn)行,截取系統(tǒng)運(yùn)行過程中的部分視頻幀進(jìn)行檢測效果展示。
列車司機(jī)在清醒情況下檢測結(jié)果見圖8。
列車司機(jī)在長時(shí)間打哈欠后的檢測結(jié)果見圖9。當(dāng)計(jì)算得出的嘴巴縱橫比值大于設(shè)定的疲勞閾值時(shí),檢測窗口會輸出“You are tired”文字預(yù)警,提醒列車司機(jī)已經(jīng)出現(xiàn)精神疲勞。
列車司機(jī)在長時(shí)間閉眼后的檢測結(jié)果見圖10。當(dāng)計(jì)算得出的眼睛縱橫比值小于設(shè)定的疲勞閾值時(shí),檢測窗口會輸出“You are tired”文字預(yù)警,提醒列車司機(jī)已經(jīng)出現(xiàn)精神疲勞。
4 總結(jié)
本文通過Raspberry PI攝像頭對列車司機(jī)的疲勞狀態(tài)進(jìn)行數(shù)據(jù)采集,人臉定位,面部特征點(diǎn)的提取,同時(shí)結(jié)合列車司機(jī)的特征點(diǎn)對其眼睛、嘴巴數(shù)據(jù)進(jìn)行分析,將列車司機(jī)疲勞檢測在GUI界面顯示檢測結(jié)果“You are tired”文字預(yù)警,提醒列車司機(jī)當(dāng)前已經(jīng)疲勞,為后續(xù)進(jìn)一步研究列車司機(jī)的心沖擊信號與疲勞相關(guān)性研究奠定一定基礎(chǔ)。
參考文獻(xiàn)(References):
[1] Luo H, Qiu T, Liu C, et al. Research on fatigue driving detection using forehead EEG based on adaptive multi-scale entropy[J]. Biomedical Signal Processing and Control,2019,51:50-58
[2] Zontone P, Affanni A, Bernardini R, et al. Car Driver's Sympathetic Reaction Detection Through Electrodermal Activity and Electrocardiogram Measurements[J]. IEEE Transactions on Biomedical Engineering,2020,67(12):3413-3424
[3] Fu R, Wang H. Detection of driving fatigue by using noncontact EMG and ECG signals measurement system[J]. International journal of neural systems,2014,24(3):1450006
[4] Zheng W L, Gao K, Li G, et al. Vigilance estimation using a wearable EOG device in real driving environment[J]. IEEE transactions on intelligent transportation systems,2019,21(1):170-184
[5] Jain A, Abbas B, Farooq O, et al. Fatigue detection and estimation using auto-regression analysis in EEG[C]//2016 International conference on advances in computing, communications and informatics (ICACCI). IEEE,2016:1092-1095
[6] 楊渝書,姚振強(qiáng),李增勇,等.心電圖時(shí)頻域指標(biāo)在駕駛疲勞評價(jià)中的有效性研究[J].機(jī)械設(shè)計(jì)與制造,2002(5):94-95
[7] Sayed R, Eskandarian A. Unobtrusive drowsiness detection by neural network learning of driver steering[J]. Proceedings of the Institution of Mechanical Engineers, Part D: Journal of Automobile Engineering,2001,215(9):969-975
[8] 李強(qiáng).基于PERCLOS的列車司機(jī)駕駛疲勞檢測研究[D].碩士,北京交通大學(xué),2014
[9] 陳東偉,張喆,韓娜,等.多算法融合的疲勞駕駛監(jiān)測算法設(shè)計(jì)與實(shí)現(xiàn)[J].太原理工大學(xué)學(xué)報(bào),2016,47(4):518-522
[10] 李金寶.基于深度視頻的疲勞駕駛和危險(xiǎn)駕駛行為檢測算法研究[D].碩士,青島大學(xué),2020
[11] 鞏曉倩,蒲亦非,楊智勇,等.基于有限狀態(tài)自動(dòng)機(jī)的人眼開度PERCLOS實(shí)現(xiàn)算法[J].計(jì)算機(jī)應(yīng)用研究,2014,31(1):307-310
*基金項(xiàng)目:2019年廣東省普通高校青年創(chuàng)新人才類項(xiàng)目“基于增強(qiáng)PERCLOS深度學(xué)習(xí)軌道交通列車司機(jī)疲勞檢測方法的研究”(2019GKQNCX100); 2021年廣州市基礎(chǔ)研究計(jì)劃基礎(chǔ)與應(yīng)用項(xiàng)目“動(dòng)態(tài)場景下基于鐵重移采動(dòng)樣機(jī)優(yōu)器化人粒的子應(yīng)濾用波算法及其在高”(202102080153); 2022年廣東省科技創(chuàng)新戰(zhàn)略專項(xiàng)資金項(xiàng)目“基于機(jī)器學(xué)習(xí)的軌道交通列車司機(jī)HRV健康監(jiān)測與預(yù)警系統(tǒng)”(pdjh2022b0956)
作者簡介:江躍龍(1984-),男,福建省龍巖市人,研究生,電子工程師,主要研究方向:智能信息系統(tǒng)、機(jī)器視覺、機(jī)器學(xué)習(xí)。