馬發民吳紅樂張林王錦彪
(1.商洛學院數學與計算機應用學院商洛726000)(2.河北金融學院信息管理與工程系保定071000)(3.中國民航大學計算機科學與技術學院天津300000)
基于BP神經網絡的疲勞判定
馬發民1吳紅樂2張林1王錦彪3
(1.商洛學院數學與計算機應用學院商洛726000)(2.河北金融學院信息管理與工程系保定071000)(3.中國民航大學計算機科學與技術學院天津300000)
在現有的數據條件下,疲勞判定的本質問題是分類問題,BP神經網絡是一種經常應用于人臉識別領域的分類算法,其不需要一套人為確定的規則,并可以根據有代表性的樣本自我學習。論文采用BP神經網絡算法進行飛行員的疲勞識別,首先定位出飛行員面部和頭部特征點,然后根據特征點計算出相應的特征向量,把這些特征向量輸入BP神經網絡分類器,最后利用神經網絡模糊分類的優點,進行飛行員疲勞判定。
疲勞判定;BP神經網絡;自我學習;BP神經網絡算法;BP神經網絡分類器
Class NumberTP301
BP(Back Propagation)神經網絡于1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播算法訓練的多層前饋網絡,是目前應用最廣泛的神經網絡模型之一。BP網絡能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用梯度下降法,通過反向傳播來不斷調整網絡的權值和閾值,使網絡的誤差平方和最小。BP神經網絡模型拓撲結構包括輸入層(input layer)、隱層(hidden layer)和輸出層(output layer)。BP神經網絡模仿動物的神經元對外部刺激信號的反應,建立多層感知器模型,利用信號正向傳播和誤差反向調節的學習機制,通過多次迭代學習,成功地搭建出處理非線性信息的智能化網絡模型。
單層感知器模型是BP神經網絡的結構基礎,它模擬人腦神經元記憶、學習和認知的過程,采用閾值激活函數對一組輸入向量產生0或1的響應。人腦神經元的形態各異,但有共性的組織結構,圖1是典型神經元的基本結構示意圖[2]。

圖1 神經元示意圖
神經元由樹突、細胞體、突觸和軸突四部分組成。信息流從樹突出發,經過細胞體,然后由軸突傳出。1943年數學家W.Pitts和心理學家McCelland在分析人腦神經系統結構的基礎上,提出MP模型。經過不斷改進,提出了現在的BP神經元模型[3]。BP神經元模型如圖2所示,其中,xj為神經元j的輸入信號,wij為連接權重,ui是輸入信號xj線性組合后的結果,即神經元i的凈輸入。θi是神經元的閾值,vi為經過閾值調整后的值,f(·)為神經元的激活函數。輸入信號在單層感知器傳遞的數學模型如圖2所示。

圖2 BP神經元模型

f(·)是BP神經元的激勵函數,常用的形式是Sigmoid函數,數學表達式如式(4)所示[4]:

2.1 BP神經網絡算法原理
BP神經網絡是一種按誤差反向傳播的多層前饋網絡,是目前應用最廣泛的神經網絡模型之一。它能存貯和學習大量的輸入—輸出模式映射關系,而無需事前明了描述這種映射關系的數學公式。BP網絡由輸入層、隱層和輸出層構成,每層由許多并行運算的簡單神經元組成,網絡的層與層之間的神經元采用全互連方式,同層神經元之間無相互連接。其網絡拓撲結構如圖3所示[5]。

圖3 三層BP網絡結構
隱含層是神經網絡的中間層,位于輸入層、輸出層之間,其結構可為一層或多層。它的主要功能是抽取一類輸入模式中與其它類輸入模式不相同的特征,并將抽出的特征再傳回給輸出層,由輸出層來判斷這類輸入模式與其他輸入模式是否相同,其可以自組織的不斷調整輸入層與隱含層間的連接權重。因此,在BP神經網絡的學習訓練過程中,不同層間的連接權重通過特征的傳遞起著橋梁的作用。
2.2 BP神經網絡學習算法
BP算法作為一種監督式的學習算法,其主要思想為:對于多個輸入學習樣本:A1,A2,…,An,己知與其對應的輸出樣本為:B1,B2,…,Bn,學習的目標是網絡的實際輸出C1,C2,…,Cn與目標矢量B1,B2,…,Bn之間的誤差平方和達到最小。BP神經網絡算法主要分為兩部分[5]:
1)在信息的正向傳播過程中,輸入信息從輸入層經隱含層逐層計算傳向輸出層,每一層神經元只會影響下層神經元的狀態。
2)在誤差反向傳播過程中,如果在輸出層沒有得到期望的輸出,則計算輸出層的誤差變化值,通過神經網絡將誤差信號沿原來的連接通路反傳回來并修改各層神經元的權值直至達到期望的輸出。
定義誤差函數為[6]

其中,Bk為目標輸出,Ck為實際輸出。
(1)BP神經網絡的學習算法
①初始化連接權重,每個權重為(0,1)之間的隨機數;
②輸入BP神經網絡的訓練樣本;
③逐層計算各層的輸出;
④從輸出層開始,調整權重,并反向傳播誤差;
⑤若誤差小于設定值,則結束,否則轉③繼續學習。
網絡訓練結束并達到穩定狀態后,保存網絡的連接權重;對每一個神經網絡單獨訓練,最后將所有的神經網絡的權重矢量組成一個特征矢量。
(2)BP神經網絡的識別過程
①輸入層節點讀取的對應特征矢量;
②BP神經網絡依次從庫中讀取各個權值矢量;
③計算輸出層的輸出;
④重復②~③,直到庫中所有的權值矢量讀取和計算完畢。
2.3 BP神經網絡的訓練
采用BP神經網絡的方法進行飛行員的疲勞識別,分為三個子任務,分別由單個神經網絡完成嘴部、眼睛、頭部的識別,對每個神經網絡分別進行學習,然后再將各個神經網絡的識別結果綜合起來進行最后判定。
將飛行員嘴部的特征向量輸入到BP神經網絡中,根據網絡輸出得到飛行員嘴部的三種狀態[7~8]:
1)嘴巴普通張開狀態;
2)打哈欠時的嘴巴大張狀態;3)嘴巴閉合狀態。

表1 隱層節點選取
BP神經網絡結構為三層結構[9~10],輸入層有三個神經元,分別為飛行員嘴部的特征點,包括嘴部區域的最大寬度、嘴部區域的最大高度、上下嘴唇之間的高度,當判定效果相同時,隱層節點數越少越好,由表1可知當節點數大于14時,其識辨率均為96.3%,故本文實驗中隱層選用14個神經元。

圖4 嘴部識別BP網絡結構
網絡的輸出向量為[11]

其中Y1代表嘴巴普通張開狀態;Y2代表打哈欠時的大張嘴巴狀態;Y3代表嘴巴閉合狀態。
網絡訓練參數:最大訓練次數為10000次;誤差平方和指標為0.02;學習速率為0.02。BP神經網絡經過4292次的訓練,收斂到規定的誤差值0.02。

圖5 嘴部識別網絡訓練過程
訓練過程如圖5所示。由圖5可以看出,BP神經網絡快速收斂,證明網絡輸入變量的選擇合適。

表2 嘴部狀態識別實驗結果
將飛行員眼部特征向量輸入到BP網絡中[12~13],可以由網絡的輸出判斷飛行員眼睛的睜閉狀態,該BP神經網絡為三層結構,輸入層有4個神經元,分別代表飛行員眼睛眨眼頻率、持續閉眼時間、瞳孔直徑、PERCLOS,經實驗驗證,隱層選用16個神經元時會取得較好的結果,如圖6所示。

圖6 眼部識別BP網絡結構
同樣,網絡的輸出向量為[14]

其中Y1代表飛行員精神旺盛時眼睛睜大;Y2代表飛行員精神欠佳時眼睛微閉;Y3代表飛行員疲勞時眼睛閉合。
網絡訓練參數:最大訓練次數為10000次;誤差平方和指標為0.02;學習速率為0.02。BP神經網絡經過4560次的訓練,收斂到規定的誤差值0.02。

表3 眼部狀態識別實驗結果
將飛行員頭部特征向量輸入到BP神經網絡中,根據網絡的輸出判斷飛行員頭部位置狀態[15~17],該BP神經網絡為三層結構,輸入層有三個神經元,分別代表飛行員頭部的歐拉角α、β、γ,經實驗驗證,隱層選用14個神經元效果比較理想,網絡結構如圖7所示。
同樣,網絡的輸出向量為

其中Y1代表飛行員精神充沛時頭部直立;Y2代表飛行員在精神萎靡時頭部稍垂;Y3代表飛行員磕睡時頭部低垂。

圖7 頭部識別BP網絡結構
網絡訓練參數:最大訓練次數為10000次;誤差平方和指標為0.02;學習的速率為0.02。BP神經網絡經過4150次的反復訓練,收斂到規定的誤差值為0.02。

表4 頭部狀態識別實驗結果
疲勞狀態是一個連續累積的過程,因此不能只根據當前幀飛行員嘴部、眼部和頭部的狀態來判斷飛行員的疲勞狀態。為了提高系統報警的準確性需在連續時間內根據飛行員狀態的系列數據統計判定飛行員的狀態。
1)飛行員嘴部狀態分析
飛行員嘴閉合狀態用0表示,飛行員張大嘴狀態用1表示,飛行員嘴部狀態由01序列組成的一個序列,故可以根據這個狀態序列來判斷飛行員精神狀態。飛行員在正常飛行駕駛過程中,嘴部基本是閉合狀態;當飛行員進入疲勞狀態打哈欠時,嘴巴會張開較大。
眾多資料表明,人在打哈欠時嘴部大張的平均時間至少維持5s以上。因此,我們以6s作為計算周期,眼動儀監測頻率為25幀/秒。故將正常打哈欠時間閾值設置為5s,而稍低閾值設置為4.5s,即在正常閾值下,如果150幀中飛行員嘴部狀態時間狀態系列中1連續出現次數超過125次,則可以判定飛行員處于打哈欠狀態,監測系統給予疲勞警告。
2)飛行員眼部狀態分析
在正常情況下,人的眼睛眨眼頻率為10~15次/分鐘[18]。本文眼動儀的取樣頻率為25幀/秒。飛行員眼睛睜大狀態用0表示,飛行員眼睛閉合狀態1表示,則會產生一個由01組成的飛行員眼部狀態序列,由1變為0的過程代表飛行員一次眨動動作。故根據01狀態轉變頻率,就可得到飛行員的眨眼頻率。眨眼頻率正常閾值設置為7次,稍低閾值設置為6次。
持續閉眼時間[19]t=(n/1500)*60;其中n指在1分鐘內1500幀圖像狀態序列中最多連續出現1的個數,t單位為s。持續閉眼時間正常閾值為0.6s,稍低閾值設置為0.5s。
本文對PERCLOS方法采用的是P80標準,統計在一分鐘內眼睛閉合時所占的時間比例。PERCLOS正常閾值設置為40%,稍低閾值設置為35%。
瞳孔直徑可通過眼動儀幾何灰度二值法測得,經查閱資料后確定正常閾值設置為其直徑與正常狀態下變化率為30%;稍低閾值設置為20%。
3)飛行員頭部狀態分析
根據飛行員頭部角度β判定飛行員是否瞌睡,β隨時間變化如圖8所示。通過實驗得出:當β> π/18時,飛行員會出現較大幅度的點頭動作,因此設閾值βr=π/18。圖8中在t2t3時間段內為飛行員頭部的點頭狀態。
點頭頻率fNOD計算方法:

式中:NNOD為在ΔTNOD時間段內點頭的次數;ΔTNOD為檢測時間段。
點頭時間TNOD定義為:飛行員發生點頭動作到頭部姿勢正常時所用時間,其值:


圖8 飛行員頭部歐拉角變化過程
式中:NTN為發生一次點頭動作所用的圖像幀數;FPS為圖像的刷新頻率,單位為:幀/秒。
PERCLOS是在單位時間里眼睛閉合時間所占的百分比。Walt Wierwille從20世紀70年代開始研究眼睛光學變量與疲勞的關系,并且發現PERCLOS是最具潛力的疲勞測定方法之一。
通常PERCLOS方法有以下三種判斷標準[19]:
P70:指眼瞼遮住瞳孔的面積超過70%就認為眼睛閉合,計算在一定時間內閉合時所占的時間比例。
P80:指眼瞼遮住瞳孔的面積超過80%就認為眼睛閉合,計算在一定時間內閉合時所占的時間比例。

圖9 飛行員疲勞判定流程圖
EM:指眼瞼遮住瞳孔的面積超過一半就認為眼睛閉合,計算在一定時間內眼睛閉合時所占的時間比例。
NHTSA對這三種標準做了對比試驗,試驗結果表明P80與疲勞程度有較好的線性相關性。

圖10 PERCLOS變化規律
根據定義,P80判斷標準的PERCLOS值為

PERCLOS測量方法:

式中:NC為眨眼過程中眼睛閉合所對應的幀數;NT為眨眼一次對應幀數。
PERCLOS作為一種比較經典的檢測疲勞的方法,它的優點主要是比較簡單。疲勞程度的部分試驗結果如下。
由實驗結果可以看出,當PERCLOS≥0.80的時候就可以判定飛行員處于疲勞狀態。

表5 PERCLOS值
我們用了一組數據來測試該BP神經網絡,如表6、表7和表8,以下是測試用的部分數據。

表6 嘴唇特征部分數據
表6所示數據測試的圖像分別為飛行員張大嘴(打哈欠)、普通張嘴、嘴巴閉合(正常)三種狀態的圖像,三種圖像各25幅。

表7 眼睛特征部分數據
表7所示數據測試的圖像分別為飛行員眼睛睜大、眼睛微閉、眼睛閉合三種狀態的圖像,三種圖像各25幅。

表8 頭部特征部分數據
表8所示數據測試的圖像分別為飛行員頭部直立、頭部微垂、頭部低垂三種狀態的圖像,三種圖像各25幅。
在以PERCLOS作為判定依據的疲勞檢測中,分別取飛行員正常、輕微疲勞、疲勞、較疲勞以及嚴重疲勞的五種飛行狀態各28幅飛行員臉部圖片進行了實驗,其中,正常狀態下有18幅圖像正確識別,正確識別率為64.3%;輕微疲勞狀態下識辨率為35.7%;疲勞狀態下識別率為67.9%。較疲勞狀態下識別率為53.6%。嚴重疲勞狀態下識別率為71.4%。PERCLOS是依據眼瞼遮住瞳孔的面積來判斷的,而且只能單一的測試眼睛,忽略常碰到一些異常現象的出現,人在輕微疲勞時也有可能出現緊閉眼睛現象,比如在抗拒疲勞的過程中,會用力地緊閉眼睛幾次,來舒緩眼部肌肉,如果測試時間太短就會造成誤差,且是否戴眼鏡也會影響結果的準確性。PERCLOS雖然是一種比較快速的判定方法,不過誤差也比較大,達不到實際要求。
在BP神經網絡疲勞判定中,分別取飛行員正常、輕微疲勞、疲勞、較疲勞和嚴重疲勞的五種精神狀態各50幅飛行員頭部圖片進行實驗。其中,正常狀態下有44幅圖像正確識別,識別率為88%;輕微疲勞狀態識別率為90%;疲勞狀態下識別率為86%;較疲勞狀態下識別率為88%;嚴重疲勞狀態下識別率為92%。
在五種狀態中,飛行員疲勞狀態的識別正確率均在80%以上,且可通過增加訓練樣本的數量逐步提高。在實際應用中會根據飛行員選擇的疲勞閾值進行報警提示;故該BP神經網絡的結論完全可以應用到實踐中去,并且準確率很高。
本文通過BP神經網絡對嘴巴、眼睛和頭部的特征向量進行分類,并在此基礎上分別來判定飛行員是否疲勞,并與PECLOS方法疲勞檢測結果進行比較,發現采用基于BP神經網絡的疲勞判定方法的準確率要遠高于PERCLOS疲勞判定方法,表明了采用基于BP神經網絡的疲勞判定方法的合理性。
[1]焦李成.神經網絡系統理論[M].西安:西安電子科技大學出版社,1990:37-40.
JIAO Licheng.Theory of neutral network[M].Shaanxi:Xidian University Press,1990:37-40.
[2]李友坤.BP神經網絡的研究分析及改進應用[D].哈爾濱:哈爾濱工業大學,2012.
LI Youkun.Analysis and improvement application of BP neutral network[D].Heilongjiang:Harbin Institute of University,2012.
[3]徐大威,李偉,何永保.多層BP網絡的研究及應用[J].信息與控制,1995,24(9):588-596.
XU Dawei,LI Wei,HE Yongbao.Research and application of multi-level BP network[J].Information and Control,1995,24(9):588-596.
[4]田啟川,潘泉,王峰,等.基于Metropolis準則的BP神經網絡學習算法研究[J].自動化技術與應用,2003(5):15-17.
TIAN Qichuan,PAN Quan,WANG Feng,et al.Study of BP neutral network algorithm based on Metropolis norm[J].Automatic Technology and Application,2003(5):15-17.
[5]賀麒文.基于多特征融合的駕駛員疲勞檢測研究[D].湖南:中南林業科技大學,2009.
HE Qiwen.Study of driver's fatigue detection based on multi-feature fusion[D].Hunan:Central South University Of Forestry and Technology,2009.
[6]張紅偉.基于信息融合的駕駛員疲勞檢測研究[D].四川:西南交通大學,2008.
ZHANG Hongwei.Study of driver's fatigue detection based on information fusion[D].Sichuan:Southwest Jiaotong University,2008.
[7]Ying1i Tian,Takeo Kanade,Jefrey Cohn.Eye State Action Unit Detection by Gabor Wavelet[M].ICMI,2000,143-150.
[8]Yanjiang Wang,Baozong Yuan.A novel approach for human face detection from color images under complex background[J].Pattern Recognition,2001,34(5):1983-1992.
[9]Long Liu,wen Gao,Jun Miao,Jintao Li.A Novel Method to Compensate Variety of 11lumination in Face Detection[C].Proc,6th Joint Conference on Information Sciences,North Carolina,2002,13(3):692-695.
[10]Wen Gao,Hongxun Yao.The Method of Principal Component Analysis on Human Face Recognition System[C]. In Proceeding of the Second International Conference on Mu1timodal Interface,1999:91-95.
[11]劉天舒.BP神經網絡的改進研究及應用[D].哈爾濱:東北農業大學,2011.
LIU Tianshu.The research and application of BP neutral network improvement[D].Heilongjiang:Northeast Agriculture University,2011.
[12]滕紅艷.基于機器視覺系統的駕駛員疲勞檢測研究[D].沈陽:沈陽工業大學,2012.
TENG Hongyan.Research on driver's fatigue detecting based on computer vision[D].Shenyang:Shenyang University of Technology,2012.
[13]趙團.基于計算機視覺的駕駛員疲勞檢測技術的研究與實現[D].沈陽:東北大學,2010.
ZHAO Tuan.Research and implementation of driver's fatigue detecting technology based on computer vision[D]. Shenyang:Northeastern University,2010.
[14]朱淑亮.基于視頻圖像分析的駕駛員疲勞檢測方法的研究[D].濟南:山東大學,2008.
ZHU Shuliang.Research on driver fatigue test method based on video image analysis[D].Jinan:Shandong University,2008.
[15]賈培剛,王少梅.一種人體頭部運動姿態的測量方法[J].西安工業大學學報,2011,31(5):429-433.
JIA Peigang,WANG Shaomei.A measuring method for motion attitude of human's head[J].Journal of Xi'an Technological University,2011,31(5):429-433.
[16]Collewin,Vander Mark,Jansen.Precise recording of human eye movements[J].Vision Research,1975,15:447-450.
[17]邸巍.駕駛員頭部檢測算法研究[D].長春:吉林大學,2005.
DI Wei.Study of detecting algorithm for driver's head[D].Changchun:Jilin University,2005.
[18]黃姜江.基于人眼識別的駕駛員疲勞測控系統的研究[D].長春:吉林大學,2010.
HUANG Jiangjiang.Research on driver fatigue test system based on identification of human eye[D].Changchun:Jilin University,2010.
[19]吳康華.基于PERCLOS的駕駛疲勞檢測系統設計[D].杭州:浙江大學,2008.
WU Kanghua.Detection system design of driving fatigue based on PERCLOS[D].Hongzhou:Zhejiang University,2008.
Fatigue Recognization Based on BP Neural Network
MA Famin1WU Hongle2ZHANG Lin1WANG Jinbiao3
(1.Institute of Mathematics and Computer Application,Shangluo University,Shangluo726000)(2.School of Information Management and Engineering,Hebei Finance University,Baoding071000)(3.College of Computer Science and Technology,Civil Aviation University of China,Tianjin300000)
On the basis of current data,fatigue recognization is classification in nature.BP neural network refers to classification algorithm applied in the field of face identification and can conduct self-training according to typical samples with no need of man-made rules.In this paper,BP neutral network algorithm is adapted for fatigue recognization of pilots.Features of pilot's face and head is firstly located,then the corresponding feature vectors computed in terms of feature is input into BP neural network classifier.Finally,strengths of fuzzy classification of neutral network is utilized for pilot's fatigue recognization.
fatigue recognization,BP neural network,self-training,BP neural network algorithm,BP neural network classifier
TP301
10.3969/j.issn.1672-9722.2017.06.036
2016年12月10日,
2017年1月30日
國家自然科學基金項目(編號:60472121);商洛學院自然科學研究項目(編號:15SKY007)資助。
馬發民,男,碩士,講師,研究方向:神經網絡、智能優化算法。王錦彪,男,教授,碩士生導師,研究方向:螞蟻算法、智能優化算法。張林,男,教授,研究方向:神經網絡、仿生算法。