◆孙昕 顾延中
基于面部特征识别的管制员疲劳检测算法研究
◆孙昕 顾延中
(中国民航飞行学院空中交通管理学院 四川 610000 )
管制员疲劳是关系到航空安全的重要问题之一,本文通过安装在管制员工作台正前方的摄像头获取管制员工作时候的视频,运用一种使用多任务级联卷积网络(Multi-Task Convolutional Neural Network,MTCNN)对获得的视频图像,包含管制员的脸部,身体的姿态等特定部位进行定位,从获取的图像中提取管制员嘴部、左右眼等区域的光流图并进行特征融合,然后使用卷积神经网络(Convolutional Neural Network,CNN)提取特征进行管制员疲劳检测,实验结果表明能够有效检测出管制员瞌睡、打哈欠、闭眼等一系列疲劳动作。
多任务级联卷积网络;卷积神经网络;特征融合;光流图
近些年来,由于中国民用航空发展速度加快,我国管制人员工作负荷大大增加,导致管制员工作中产生疲劳,威胁民航安全。根据民航某地区调查显示,由于管制员疲劳导致发生的危险事件约占18%[1]。2014年7月,武汉某管制人员因为疲劳在飞机进近阶段睡岗;2016年10月,虹桥机场塔台管制员因为疲劳而分心,没有认真考虑飞行员指令,盲目跟从之后造成了跑道侵入事件[2]。根据美国联邦航空局(Federal Aviation Administration,FAA)调查发现,大约有80%的管制员在上班期间会因工作劳累而产生疲劳,其中,大约有20%的管制员认为自己一直存在疲劳感[3]。在2016年4月,国际民航组织召开了疲劳风险相关会议,因此,越来越多的国家关注由于管制员疲劳造成的安全事件,合理有效的检测管制员疲劳成了空管安全领域研究的重点。目前,已经有各种算法技术对管制员疲劳进行检测,如:基于面部的Haar特征的AdaBoost[4]人脸检测算法,该算法在实际复杂的环境下运用效果不理想,当人体姿态改变或者人脸方向的变动时,并不能准确的检测到嘴部,脸部区域;基于HOG-SVM[5]人脸检测算法,该算法由于本身模型很小,只能检测到最小图片尺寸为80*80,不具有普遍性;本文中提出利用结合光流算法和多任务级联卷积神经网络的方式来检测管制员的疲劳状态,当多任务级卷积神经网络检测到人脸的时候,结合光流算法能够解决传统算法对动态场景下运动目标检测误差较高的问题,并且有效地去除噪声的干扰,较暗的光线等外在因素的影响,完整地检测出场景中的运动目标,并实现了对检测出的运动目标进行稳定的跟踪。
本文首先使用 MTCNN 进行人脸和关键点检测任务如图1,本文算法过程如图2。
图1 MTCNN检测人脸关键点定位
图2 本文的算法流程图
MTCNN由3个网络结构组成(P-Net,R-Net,O- Net),其算法模型总体结构如图3所示。第一阶段是Proposal Network (P-Net):该网络结构主要获得了人脸区域的候选窗口和边界框的回归向量。并用该边界框做回归,对候选窗口进行校准,然后通过非极大值抑制(NMS)来合并高度重叠的候选框;第二阶段是Refine Network (R-Net):该网络结构还是通过边界框回归和NMS来去掉那些false-positive区域。只是由于该网络结构和P-Net网络结构有差异,多了一个全连接层,所以会取得更好抑制false-positive的作用;第三阶段是Output Network (O-Net):该层比R-Net层又多了一层卷积层,所以处理的结果会更加精细。作用和R-Net层作用一样。但是该层对人脸区域进行了更多的监督,同时还会输出5个关键点位置。
图3 MTCNN算法效果
但只确定人脸关键点部位是远远不够的,还需要确定关键点坐标,本文根据“三庭五眼”规律,以眼部坐标为中心、左右唇端距离为长度,确定一个矩形框,作为眼部区域;以左唇端、右唇端中点为中心、左右唇端距离为长度,确定一个矩形框,作为嘴部区域,如图4所示。
图4 关键点坐标
当管制员处于疲劳状态时,会出现瞌睡、打哈欠、闭眼等一系列动态动作,因此,仅有静态的图像是远远不够的。光流[7]是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,包含了连续帧之间的动态信息。本文使用光流图中包含的动态信息代替连续帧所提供的动态信息,将动态与静态相融合,可以更好检测管制员疲劳。
光流是用于显示在三维空间中运动的物体,并形象的表现到二维图像中,反映出物体像素点的运动方向。利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息。假设每一个时刻均有一个向量集合(,,),表示指定坐标(,)在点的瞬时速度。设(,,)为时刻(,)点的像素亮度,在很短的时间∆内,和分别增加∆,∆,可得:
但考虑到相邻两帧的图像之间距离较短,可得:
两者合并可得:
因此,
最后可得:
Farneback算法[8]是光流计算的一种方法,在管制员工作的时候,由于正对着管制员的摄像头是固定的,因此,管制员面部的光流特写是由管制员本身头部或者身体姿势改变而运动的,本文通过Farneback算法计算管制员眼部、嘴部的光流特写,以此来反映管制员当前的状态。在图5中,采集到模拟管制员视频中的两帧,(a)表示光流计算的水平分量,(b)表示光流计算的垂直分量。
图5 Farneback光流计算相关图像
一个正常的人在同一时间自然状态下,左右眼的运动方向是基本一致的[9],因此,本文首先在MTCNN 的三个网络均设置了一个阈值,这个值代表着大多数情况下人脸候选窗口的精确性,阈值严格选定的情况下,管制员低头(MTCNN检测不到人脸的情况下),判断管制员处于瞌睡(分心)情况;如果检测到人脸,则将提取眼睛、嘴部等特征区域送入疲劳检测网络,并结合眼部、嘴部光流图,判断管制员在上岗期间是处于正常工作状态,还是处于分心、打哈欠状态。之后,使用CNN对光流图提取动态特征,对一个短时间的动作变化进行分类。
本文将疲劳检测网络分为四部分,首先是眼睛光流特征提取子网络;其次是左眼特征提取子网;接着是嘴部光流特征提取子网,最后一个是嘴部特征提取。将提取到的嘴部,眼部光流图以及提取的嘴部,眼部特征输入进四个子网,经过数层卷积、池化后,将眼部和眼部光流图融合,进一步提取眼部特征。同样的办法处理嘴部得到的图像,然后将眼部/嘴部融合后的子网络再全部输入全连接层以此得到全局区域的特征。之后再经过降维,最终输入Softmax层进行分类得到最终处理结果。为了避免过度拟合,在每个卷积层添加L2正则项,在全连接层前添加了Dropout层(如图6)。
图6 疲劳检测网络
为检测本文所采用面部特征识别算法的鲁棒性和实时性,本文对11名志愿者进行管制模拟机训练,获取了共11段5分钟的面部视频数据,1秒钟为24帧,可获取7200张RNG图像。本文将收集到的数据分为两部分,一部分是正常与打瞌睡的动作,这一部分用于睡岗检测;另一部分是正常动作与打哈欠、闭眼等一系列疲劳动作,用于疲劳检测网格。图7中的图像均来自实验所得到的数据,(a)是正常工作情况图像、(b)瞌睡图像、(c)打哈欠图像、(d)闭眼图像。
因为人在打瞌睡时候重要特征是低头,此时实际视频采集到的面部图像在原来的640*480中管制员的人脸只占200*150,因此直接以MTCNN是否检测到人脸作为打瞌睡的标准。从表1采集到的视频结果中可以看出,大部分正常状态下(a图)能被检测到,也很容易检测到瞌睡(b图)情况。
表1 MTCNN检测瞌睡实验结果
由表1可以看出,结合光流图检测打瞌睡会更精确些,但由于人摆头等头部运动会被标记为打瞌睡,对试验结果造成波动较大。
当以人的眼部(以左眼为例)和嘴部检测管制员疲劳时,结合光流图的算法,能够识别短时间内的动作变化,得出在响应时间内眼睛闭合次数和打哈欠的次数(如图6),如表2所示。
图6 数据集采集正常、打哈欠、闭眼等情
表2 左眼、嘴部结合光流图疲劳检测结果
从表中可以看出,结合包含动态信息的光流图获得的精确度可达到90.5%,由此可以看出本文的算法对管制员工作时候打哈欠、闭眼等动作可以更好识别。
本文提出了一种基于面部特征识别的管制员疲劳检测算法,相对于生理检测[10](脑电、心电等监测)、主观检测[11](斯坦福嗜睡量表),本文的方法避免了对管制员造成身体侵入性的影响,而且检测结果的精确度高,并引入光流图和卷积神经网络,应用到管制员日常工作视频监控中,从实验结果看出,在外部正常的工作环境下,对于各种不同情景如打瞌睡、闭眼、打哈欠均适用,本文的算法具有更高的鲁棒性和准确率。但本文也存在一些不足,稍微低头、左右摆头等头部运动会被标记为打瞌睡;讲话等会被标记为打哈欠,这些需要在今后的工作中改进和做进一步研究。
[1]孙瑞山,李康,李敬强.空中交通管制员疲劳状态及影响因素分析[J].安全与环境学报,2018,18(06):2241-2246.
[2]沈笑云,张肖艳,张思远.基于ADS-B的跑道侵入冲突检测与告警研究[J].中国安全科学学报,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]李佩,汪红娟,李业丽,刘梦阳.基于AdaBoost人脸检测算法的分析研究[J].北京印刷学院学报,2020,28(01):128-132.
[5]张萌,王文,任俊星,魏冬,黄伟庆,杨召阳,吕志强.基于HOG-SVM的跳频信号检测识别算法[J].信息安全学报,2020,5(03):62-77.
[6]贾小硕,曾上游,潘兵,周悦.基于改进MTCNN网络的目标人脸快速检测[J].计算机工程与科学,2020,42(07):1262-1266.
[7]刘闯. 基于计算机视觉的人体行为识别方法[D].南京邮电大学,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].中国民航大学,2018.
[11]项悦. 基于认知科学的管制员疲劳状态检测方法研究与系统设计[D].中国民用航空飞行学院,2019.