|
发布时间: 2021-12-28 |
计算机与信息科学 |
|
|
收稿日期: 2020-02-28
中图法分类号: TP391.4
文献标识码: A
文章编号: 2096-8299(2021)06-0567-06
|
摘要
疲劳状态检测对于保护电力工作人员的安全具有重要作用。深度学习虽然已经成为面部疲劳状态检测方面的重要方法,但是其检测结果的准确性还需要提高。针对这一问题,提出了一种新的电力工作人员疲劳状态识别系统。该系统通过对采集到的视频图像使用人脸检测算法确定电力场景中工作人员的面部位置,利用YOLOv4-tiny目标检测算法提取眼睛部位的视觉特征,建立检测模型,以提升视觉特征的辨别能力;采用PERCLOSE准则分析眨眼频率并结合打哈欠的频率和瞌睡点头频率来判断电力场景中工作人员是否疲劳。实验结果证明了所提的基于深度学习的疲劳状态识别方法的有效性。
关键词
人脸检测; 卷积神经网络; 疲劳检测
Abstract
Fatigue state detection plays an important role in protecting the safety of electric power workers.Although deep learning has become an important method for facial fatigue detection, the accuracy of its detection results still needs to be improved.To solve this problem, a new fatigue status recognition system for electric power workers is proposed.The system uses face detection algorithmon the collected video images to determine the facial position of workers in power scenes, uses YOLOv4-tiny target detection algorithm to extract the visual features of eyes, establishes detection model to improve the discriminative ability of visual features, and uses PERCLOSE criterion to analyze blink frequency and combine yawn frequency and doze nod frequency to determine whether the workers in the scene are tired or not.The experimental results prove the effectiveness of the proposed fatigue state detection method based on deep learning.
Key words
face detection; convolution neural network; fatigue detection
在电力系统的运作过程中, 经常会出现变电站运行维护人员误操作事故, 主要原因包括作业人员安全意识不强、应急处置能力亟待提高[1], 以及疲劳操作等。通常人在疲劳时, 身体协调性差、大脑支配能力下降, 容易在工作生活中造成判断失误和操作失误, 从而造成事故。对于电力操作, 尤其是倒班工人, 采用实时监控疲劳状态报警提示, 可以减少操作违规与失误的发生。因此, 进行疲劳状态检测对于保护电力工作人员的安全具有举足轻重的作用。
目前, 被用于疲劳状态检测方法主要有两类: 一类是采用医疗器械测量人体的特征, 包括脑电图、眼电图、心电图等生理信息, 但这类方法不太容易普及, 对检测环境有一定要求, 成本高且需要佩戴相应的仪器; 另一类是采用机器视觉技术, 对采集到的图像经过一系列图像处理和模式识别算法处理, 最终自动判断测试者的疲劳状态。深度学习技术近年来已经广受学术界和工业界的关注[2], 在这类算法的运用中, 眨眼以及打哈欠频率是面部疲劳状态的重要指标, 因此眼部和嘴部的状态检测是疲劳检测中的关键问题[3]。传统的基于机器学习的面部疲劳状态识别方法一般是通过Haar-like特征检测出人脸的位置, 然后通过计算眼睛纵横比来描述眼睛的张开程度判断疲劳状态[4]。但是由于光照、姿势等条件变化, 使得眼睛状态识别的难度大大增加。近年来, 由于计算机硬件的进步以及深度学习算法的发展, 深度卷积神经网络能够自适应提取特征, 更好地表达其处理图像的本质特征, 且避免了人工特征选取过程, 打破了图像识别领域中“先提取特征, 后模式识别”的框架[3], 使得深度学习技术在模式识别领域有了广阔的应用空间, 大大地推动了疲劳检测的研究。陈瑜等人[5]通过人脸人眼定位后, 采用不确定性的云模型对提取的眼动特征进行数据处理, 构建二维多规则推理生成器检测疲劳状况。史瑞鹏等人[6]采用优化的多任务卷积神经网络(Multi-Task Convolution Neural Network, MTCNN)算法, 实现在眼部和嘴部区域定位的基础上, 完成眼部、嘴部区域分类模型的训练, 最终实现疲劳驾驶的检测判定。郑伟成等人[7]通过MTCNN进行人脸检测并提取人脸关键点, 在此基础上提取眼部、嘴部以及头部疲劳特征, 采用这3类特征融合的策略, 构建决策树实现驾驶员疲劳检测分类模型。深度学习虽然已经成为疲劳检测方面的重要途径, 但是检测结果的准确性还需要提高, 因此本文提出一种新的基于深度学习的电力工作人员面部疲劳状态识别系统。
1 面部疲劳状态检测算法设计
本文设计的面部疲劳状态检测算法流程如图 1所示。对采集到的电力场景中工作人员图像结合方向梯度直方图(Histogram of Oriented Gradient, HOG)特征和支持向量机(Support Vector Machine, SVM)分类器进行人脸检测, 获取人员面部位置, 并进行面部关键点定位。采用YOLOv4-tiny目标检测算法对眼部定位区域进行特征提取, 并建立模型检测眼睛开闭状态, 依据PERCLOSE准则求出单位时间内眼睛闭合状态所占的百分比, 同时结合打哈欠和瞌睡点头频率完成电力环境中工作人员疲劳状态预警机制。
2 人脸检测及关键点定位
2.1 基于HOG特征的人脸检测
由于梯度往往产生在物体的边缘处, 因此利用梯度和梯度方向的统计信息HOG特征可以很好地描述局部目标的边缘和形状。此外, 由于HOG是在图像的局部方格单元上操作, 且梯度受光照变化影响较小, 因此HOG特征具有较好的光学不变性与几何不变性。在进行人脸检测时, HOG特征的提取过程如下[12]。
(1) 为了减少颜色数据和避免光照因素的干扰, 对采集到的图像I(x, y)采用Gamma压缩法进行颜色空间归一化处理, 公式为
$ I\left( {x, y} \right) = I{\left( {x, y} \right)^{{\rm{Gamma}}}} $ | (1) |
(2) 计算每个点(x, y)的梯度值G(x, y)和梯度方向α(x, y), 公式为
$ G\left( {x, y} \right) = \sqrt {{G_x}{{\left( {x, y} \right)}^2} + {G_y}{{\left( {x, y} \right)}^2}} $ | (2) |
$ \alpha \left( {x, y} \right) = {\tan ^{ - 1}}\left( {\frac{{{G_y}\left( {x, y} \right)}}{{{G_x}\left( {x, y} \right)}}} \right) $ | (3) |
其中, Gx(x, y), Gy(x, y)分别为点(x, y)在水平和垂直方向上的梯度, 公式为
$ {G_x}\left( {x, y} \right) = H\left( {x + 1, y} \right) - H\left( {x - 1, y} \right) $ | (4) |
$ {G_y}\left( {x, y} \right) = H\left( {x, y + 1} \right) - H\left( {x, y - 1} \right) $ | (5) |
式中: H(x, y)——点(x, y)的像素值。
(3) 将图像I(x, y)划分为若干个包含n×n个像素的单元区域, 并将0°~360°划分为N个方向区间, 计算每个单元区域中的梯度方向直方图。
(4) 将相邻的K个单元区域组成单元块, 合并单元块中的所有单元区域的HOG组成特征向量。为了能对光照变化和阴影获得更好的效果, 对合并后的特征向量进行归一化。
(5) 以步长L搜索整个图像, 将所有单元块的HOG特征合并形成整个图像的HOG描述子。
2.2 人脸关键点定位
在确定人脸位置后, 需要对人脸进行特征点定位和分析。为了提高识别的实时性和准确率, 本算法采用Dlib人脸检测预训练模型, 获取人脸的关键点。人脸68个特征点定位及眼部区域检测如图 2所示。
对获取的图像利用此模型估计图像特征点的位置, 分别分布在脸部轮廓、眉毛、眼睛、鼻子、嘴巴等脸部关键部位, 并根据特征点, 得到眼部的矩形区域。
3 面部疲劳状态识别
3.1 眼部疲劳状态判断
眼睛闭合状态是疲劳检测的重要标志之一。使用传统方法进行眼睛闭合状态判断时局限性较大, 比如直接使用Dlib进行疲劳检测时受环境影响较为明显, 尤其被检测者戴眼镜时更加大了检测难度。本文针对以上问题提出了使用YOLOv4-tiny目标检测算法与Dlib联合进行疲劳检测。在自建数据集上进行眼睛闭合状态检测实验, 效果良好, 能够满足实际应用场景需求。
在实验中采用网络爬取进行数据搜集, 结合数据增强建立眼部状态数据集, 分为睁眼与闭眼两类进行标注。实验数据总量为1 750张, 使用LabelImg数据标注软件对数据集的人眼部进行标注, 标注示例如图 3所示。
YOLOv4-tiny目标检测算法是YOLOv4[13]目标检测算法的轻量版。在数据增强方面使用了马赛克(Mosaic)数据增强方式。在训练过程中选择最优参数, Mosaic数据增强是通过对已有数据集进行传统仿射变换(反转、平移、旋转等)的同时将4张图片组合在一起进行训练。这种数据增强方式可以进一步丰富物体的背景信息[14], 提升模型的泛化能力。使用YOLOv4-tiny算法对YOLOv4网络进行处理, 只使用两个特征层进行分类与回归处理, 减少了模型的参数量, 提升了模型的检测速度。为了使网络更加轻量级, 网络删减了原来的特征融合模块, 只对最后两个特征层进行特征融合, 在保证网络轻量级的同时进一步增强小物体的检测能力。YOLOv4-tiny网络结构如图 4所示。
3.2 嘴部疲劳状态判断
人在疲劳的时候, 往往哈欠不断, 以提醒大脑已经处于疲惫状态。人在打哈欠时, 两嘴唇距离加大, 闭合时, 两嘴唇的距离几乎为零。但实际检测中, 由于人的头部会发生各种运动, 从而会影响距离计算的准确性。为了提高距离指标的准确度, 使用嘴部的长宽比ηMAR和张嘴时间作为打哈欠的判断依据。利用欧式距离来计算嘴部的长宽比, 计算公式为
$ {\eta _{{\rm{MAR}}}} = \frac{{\left\| {{P_2} - {P_6}} \right\| + \left\| {{P_3} - {P_5}} \right\|}}{{2\left\| {{P_1} - {P_4}} \right\|}} $ | (6) |
选取合适的阈值, 当ηMAR大于阈值时, 判断嘴部为张开状态。
嘴部关键点位置如图 5所示。
3.3 头部疲劳状态判断
瞌睡点头可以用31#特征点纵坐标变化量Δy和变化时间来判断。当Δy>Tnod(阈值)时, 为点头状态。当连续n帧图像满足Δy>Tnod时, 将图像序列标记为瞌睡点头。设Snod为点头频率, 计算公式为
$ {S_{{\rm{nod}}}} = \frac{{{N_{{\rm{nod}}}}}}{N} $ | (7) |
式中: Nnod——瞌睡点头帧数;
N——总帧数。
选取合适的阈值, 当Snod大于阈值时, 则判断为疲劳状态。
4 实验结果及分析
通过分析人的疲劳现象, 总结在不同疲劳等级下面部的行为特征: 正常状态, 表现为眨眼速度快; 轻微疲劳, 表现为眨眼速度变慢、嘴部有哈欠动作; 重度疲劳, 表现为眼睛长时间闭合, 头部下垂。因此, 在面部特征定位的基础上, 选择以眨眼频率、哈欠频率及点头频率作为疲劳状态的判断依据。
4.1 眼睛闭合状态识别结果
使用YOLOv4-tiny进行目标检测算法眼部状态判断, 由于使用预训练权重, 损失函数(Loss Function)初始值较低, 最终收敛至3.4左右, 训练提前截止。训练过程中Loss变化如图 6所示。识别结果如图 7所示。
从图 7可以看出, 待检测人员的眼部状态检测效果良好, 戴眼镜时也能准确检测, 但是只进行眼部状态检测难以判断疲劳。
因此, 本文进行睁眼、闭眼两类识别的主要设计思路是: 首先使用YOLOv4-tiny目标检测算法进行状态识别, 然后对脸部关键点定位计算人眼睁合的程度和闭眼时间, 结合眼部状态PERCLOSE准则判断的同时, 增加了提前截止判断。这样设计的好处是在于当被检测目标出现长时间闭眼现象时, 系统会提前判断人员疲劳状态, 避免多特征的复杂判断延误系统对疲劳者的提示, 使得系统更加人性化, 更符合实际电厂施工场景。
4.2 疲劳状态判断及分析
当电力工作人员疲劳时, 面部会出现疲劳特征, 通过获取工作人员眼部、嘴部和头部状态信息判断其疲劳程度。为了区分正常的眨眼、说话和点头, 经过多次实验对比, 其中非疲劳状态PERCLOSE范围为0~0.3, 疲劳状态的PERCLOSE范围为0.2~1.0。由此可见, 当PERCLOSE在0.2~0.3范围内是介于清醒与疲劳的过渡状态。在综合嘴部和头部状态判断后, PERCLOSE值设置为0.25, 嘴部长宽比阈值设置为0.5, 头部特征点纵坐标变化的阈值设为0.3。
实验在Windows10操作系统中进行。对比实验与原实验设置相同, 本文使用YOLOv4-tiny目标检测算法与Dlib联合检测疲劳状态, 同时使用检测效果较好且参数量和计算量小于YOLOv4的YOLOv3与YOLOv4-tiny对比眼部检测效果。从MAP@0.5、参数量、模型体积和FPS(每秒检测帧率)等方面进行对比, 结果如表 1所示。
表 1
眼部检测效果对比
算法 | MAP@0.5/% | 参数量/104 | 模型体积/MB | FPS/(帧·s-1) |
YOLOv3 | 88.4 | 6 200 | 237.0 | 24.3 |
YOLOv4-tiny | 79.2 | 588 | 22.5 | 39.4 |
由表 1可以看出, YOLOv4-tiny算法的模型参数量更小, 占用内存体积更小, FPS更高, 虽然相比YOLOv3其MAP@0.5低了9.2%, 但是足够满足眼部疲劳状态检测需要, 实现了电力操作系统下工作人员疲劳状态实时预警。
4.3 实时检测结果
5 结语
疲劳状态漏检可能导致更多安全隐患。本文通过多特征(眼部、嘴部、头部)结合并行检测, 可以有效减少漏检现象的发生, 增加电力工作人员实际工作场景的安全性。在人脸检测的基础上, 通过级联回归树算法定位人脸68个特征点, 提取眼部、嘴部、鼻部位置。由于光照及头部姿态变动对关键点提取位置的准确度影响较大, 传统基于关键点距离法的眼部疲劳状态识别准确度不高, 本文采用YOLOv4-tiny目标检测算法判断眼睛的开闭状态, 结合眼部状态PERCLOSF准则作为判断的主要依据, 联合嘴部状态与头部瞌睡点头进行判断, 使得本文所提出的联合检测算法鲁棒性更强。由检测结果可知, 该算法能实现对电力工作人员疲劳状态的准确判断, 有较强的实际应用价值, 使电力施工环境更加安全, 给电力工人和电力产业更多安全保障。
参考文献
-
[1]王海峰, 吕政权, 陈怡君, 等. 典型电力安全突发事件演化及推演方法研究[J]. 上海电力学院学报, 2019, 35(5): 459-464. DOI:10.3969/j.issn.1006-4729.2019.05.010
-
[2]曹渝昆, 何健伟, 鲍自安. 深度学习在电力领域的研究现状与展望[J]. 上海电力学院学报, 2017, 33(4): 341-345. DOI:10.3969/j.issn.1006-4729.2017.04.007
-
[3]耿磊, 袁菲, 肖志涛, 等. 基于面部行为分析的驾驶员疲劳检测方法[J]. 计算机工程, 2018, 44(1): 274-279. DOI:10.3969/j.issn.1000-3428.2018.01.046
-
[4]柳龙飞, 伍世虔, 徐望明. 基于人脸特征点分析的疲劳驾驶实时检测方法[J]. 电视技术, 2018, 42(12): 27-30. DOI:10.3969/j.issn.1671-8658.2018.12.004
-
[5]陈瑜, 李锦涛, 徐军莉, 等. 基于眼动特征的驾驶员疲劳预警系统设计[J]. 软件导刊, 2020, 19(6): 116-119.
-
[6]史瑞鹏, 钱屹, 蒋丹妮. 一种基于卷积神经网络的疲劳驾驶检测方法[J]. 计算机应用研究, 2020, 37(11): 3481-3486.
-
[7]郑伟成, 李学伟, 刘宏哲, 等. 基于深度学习的驾驶疲检测算法[J]. 计算机工程, 2020, 46(7): 21-29.
-
[8]WHITEHILL J, OMLIN C W. Haar features for facs au recognition[C]//7th International Conference on Automatic Face and Gesture Recognition (FGR06). Southampton, UK: IEEE, 2006: 9054466.
-
[9]VIOLA P A, JONES M J. Rapid object detection using a boosted cascade of simple features[C]//Proceeding of the 2001 IEEE Computer Society Conference on Compter Vision and Pattern Recognition. Kauai, HI, USA: IEEE, 2001: 7176899.
-
[10]PANG Y, YUAN Y, LI X, et al. Efficient HOG human detection[J]. Signal Processing, 2011, 91(4): 773-781. DOI:10.1016/j.sigpro.2010.08.010
-
[11]YIN X, LIU X. Multi-task convolutional neural network for pose-invariant face recognition[J]. IEEE Transactions on Image Processing, 2017, 27(2): 964-975.
-
[12]戴诗琪, 曾智勇. 基于深度学习的疲劳驾驶检测算法[J]. 计算机系统应用, 2018, 27(7): 113-120.
-
[13]BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOv4: optimal speed and accuracy of object detection[EB/OL]. (2020-04-23)[2020-04-28]. https://arxiv.org/abs/2004.10934.
-
[14]管军霖, 智鑫. 基于YOLOv4卷积神经网络的口罩佩戴检测方法[J]. 现代信息科技, 2020, 4(11): 9-12.