马发民吴红乐张林王锦彪
(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)资助。
马发民,男,硕士,讲师,研究方向:神经网络、智能优化算法。王锦彪,男,教授,硕士生导师,研究方向:蚂蚁算法、智能优化算法。张林,男,教授,研究方向:神经网络、仿生算法。