基于人脸识别的工程机械作业人员疲劳检测系统研究
2023-07-26李含雁李勇滔梁明孔
江 柏,李含雁,李勇滔,白 帆,刘 静,梁明孔,张 峰
(1.广西科技大学自动化学院,广西 柳州 545006;2.广西科技大学机械与汽车工程学院,广西 柳州 545006;3.广西柳工机械股份有限公司,广西 柳州 545007)
0 引言
作业人员在操作工程机械过程中出现疲劳操作行为,直接导致了很多大型事故的发生,这也使其获得各个国家重视,成为工程机械智能化安全问题研究领域急需解决的重要难题。工程机械作业人员的疲劳检测与汽车中的驾驶员疲劳检测相似,设计一个疲劳检测系统可以通过分析作业人员的操作状态,判断其是否是疲劳操作,而当疲劳操作时会自动发出警报[1]。当操作人员疲劳作业不安全操作行为出现时,它们不仅对自己造成伤害,也会危害他人生命安全。
侯科[2]根据对人脸二值化图像的水平投影方法来判断人的上下眼睑的距离,并且根据P80 方法来判断驾驶员是否处于疲劳状态;胡神松[3]采用AdaBoost 算法实现对驾驶员人脸的检测,采用均值投影方法和方差投影方法实现对人眼状态睁眼和闭眼进行判断;孙艳[4]制作了一个疲劳驾驶检测装置,用PERCLOS 方法实现对司机疲劳的判定。陈萍[5]采用逐级分割的方法,逐层减少干扰至精确定位到人眼,根据PERCLOS方法进行疲劳的判定。以上方法只对眼部状态进行提取状态,特征太单一,准确率不够。廖冬杰[6]采用基于Dlib 和变种Transformer 的检测打哈欠的方法;谢国波,陈云华等[7]采用嘴巴内轮廓角点检测与曲线拟合方法检测打哈欠状态;马素刚[8]采用Softmax 分类器对神经网络提取的嘴部状态特征进行了分类,判断是否在打哈欠状态。以上3 种方法只是提取了嘴部的状态特征,特征太单一,准确率不够。因此,设计了一个能检测操作人员的疲劳检测系统,该检测系统利用眼部和嘴部的特征来判断操作人员是否疲劳,相比较上述几人提取的单一特征方法,本检测系统的实时性、定位快和准确率要高一些。
利用工程机械上安装的摄像头采集到作业人员的人脸数据信息,通过运用Opencv 人脸识别工具对采集的面部图像进行灰度化处理,利用Dlib 库标定人脸的68 个特征点。通过计算眼部纵横比EAR 阈值和连续睁闭眼的时间来判断闭眼,计算嘴部纵横比的MAR 值和连续张开嘴的时间来判断打哈欠,最后通过实验验证系统设计的可行性,实验结果表明该系统定位快、实时性高,适应复杂的工作环境。
1 眼部的纵横比计算及状态判定
工程机械作业人员眼睛状态提取方法是使用68个人脸特征点定位算法获得面部特征点位置后,通过计算眼部纵横比(Eye Aspect Ratio,EAR)的比值判断出当前作业人员的眼部状态(睁开或者闭合)。
1.1 眼部的纵横比值计算
为了判断操作人员的眼睛是睁开还是闭合,就需要计算出眼部纵横比的EAR值,先分别计算出左眼睛和右眼睛的EAR值,再求取平均值。其计算步骤如下所示:
步骤1:使用欧氏距离计算出左眼睛对应纵横比的EAR值。
步骤2:使用欧氏距离计算出右眼睛对应纵横比的EAR值。
(3)因为当人在疲惫而眨眼时,可能会两只眼睛同时的眨眼,因此需要得到两只眼睛的EAR平均值。
1.2 眼部状态判定
眼部状态的眼睛变化分为睁开与闭合两种状态。当眼睛状态在这两者之间变化时,眼睛的纵横比EAR值会随之变化,需要测定眼睛的EAR阈值。当眼睛EAR值小于设定的阈值,那么此刻作业人员的眼睛状态处于闭合状态,如图1 所示。
图1 眼部状态纵横比变化图
从图1 可以看出阈值设定在0.20 时效果最好,当操作人员眼部EAR值低于所设定的阈值,再结合闭眼的时间要素,就可以实现疲劳的判定。
2 嘴部的纵横比计算及状态判定
嘴巴状态提取方法是通过68 人脸特征点定位算法获得面部特征点位置后,通过计算得到的嘴部纵横比的比值来判断出操作人员嘴巴张开或闭合的状态,再根据实验测得嘴部纵横比的阈值,得出作业人员是否存在打哈欠的疲劳特征行为。
2.1 嘴部的纵横比值计算
嘴巴纵横比的计算过程与眼睛纵横比的计算过程相类似,它们都是计算对应在嘴部上相应的坐标点的位置,计算它们对应的纵横比。不相同的是,嘴部纵横比的MAR值只需要计算8 个关键点。计算出对应点位置的欧几里得距离,通过式(4)计算出操作人员嘴巴的MAR值。
2.2 嘴部状态判定
嘴部的状态判定采用的是嘴巴纵横比MAR值的判断方法,需要计算出嘴巴状态变化MAR的阈值,用MAR的阈值来确定嘴巴的张开程度。嘴巴状态的特征提取,需要在作业人员操作工程机械的过程中进行,操作人员的嘴巴状态会因为作业人员的动作、正常交谈等发生变化。如若设定不出合理的阈值,将使嘴巴状态判断结果不准确,从而影响疲劳驾驶的判定,如图2 所示。
图2 嘴部状态纵横比变化图
从图2 可以看出阈值设定在0.80 时效果最好,当操作人员嘴巴的MAR值超出了所设定的阈值,再结合打哈欠的时间要素,就可以实现疲劳的判定。
3 实验结果与分析
检测预警系统在PyCharm2022 开发平台上完成,由眼部与嘴部的状态可以确定出操作人员的操作状态,即通过闭眼的时间长度与打哈欠疲劳特征行为判断操作人员是否处于疲劳操作状态。这两个疲劳特征可以作为疲劳操作判定的依据。
3.1 闭眼状态预警分析
因为人在产生疲劳的状态下眨眼所用的时间会有明显变长,特别是在长时间操作工程机械没有及时休息的情况下,眼睛会长时间处于闭眼状态,这样会出现一些操作安全事故,造成生命安全和财产的损失。因此,根据作业人员眼睛闭合的状态与眼睛闭合的时间长度综合来判断出此刻作业人员是否正处于疲劳操作的状态。可以先利用操作人员眼睛的EAR的阈值判断出眼睛处在睁开或闭合状态,再根据眼睛的闭合时间来判定出操作人员其是否疲劳操作状态。图3 为开始闭眼或闭眼连续时间小于1.68 s 状态,图4 为连续闭眼时间超过了1.68 s,发出疲劳驾驶警告。
图3 眼睛闭合状态
图4 眼睛连续闭合时间超过1.68s
当判断出此时作业人员的眼睛为闭合状态时,还需要接着判断单位时间内,眼睛处于该状态下总共所用的时间。对于一般人来说,在不处于疲劳状态时,正常一分钟眨眼15 次到20 次,处于疲劳状态时,眼睛的闭合时间超过1.68 s[9]。依据眼睛疲劳状态判定条件,满足闭眼时间长度大于1.68 s 的条件后,系统发出疲劳警报。
3.2 打哈欠状态预警分析
一般情况下,打哈欠是人疲劳前的征兆。若以打哈欠行为表征为作业人员的精神状态,则可以把打哈欠作为疲劳操作的判定依据。打哈欠行为比较明显,此刻嘴巴的纵横比远大于正常值,并且打哈欠持续的时间较长,也就加大了操作工程机械所导致危险操作的危害性。因此要判断作业人员是否存在打哈欠行为,就要判断嘴巴的MAR 值是否远大于设定的阈值,并且持续时间超过4 s[9]。检测效果如图5 和图6 所示,图5 是嘴部的纵横比超过0.8,但是,时间没有达到4 s;图6 是嘴部纵横比超过0.8 的阈值,并且时间超过了4 s,出现疲劳驾驶警告。
图5 开始打哈欠
图6 打哈欠时间超过4s
依据嘴巴疲劳状态判定条件,对作业人员打哈欠的行为进行识别,从检测预警结果可以看出,系统可以对打哈欠的动作发出预警。之所以在打哈欠识别与嘴巴闭合的实验中可以准确的检测并预警,一方面是因为嘴巴疲劳状态的特征具有很明显的表现,另一方也表明疲劳检测系统所设计的嘴巴横纵比设定阈值的正确性与合理性。
4 结论
根据工程机械的作业环境,采集到人脸的面部图像,使用68 个关键点定位到眼部和嘴部。其中眼部的特征提取是通过计算左眼和右眼纵横比的平均值,再通过实验设定睁闭眼的阈值来判断眼睛的闭合状态,再根据眼睛闭合时间长度对作业人员完成疲劳判定;嘴部的特征提取与眼部相似,也是通过实验设定嘴巴张开的阈值来判断打哈欠的状态,再根据嘴巴张开持续的时间,得出作业人员是否存在打哈欠的行为,从而判定作业人员是否参与疲劳操作行为。最后在工程机械实际的操作环境下,对眼部与嘴部的疲劳检测效果进行了实验,验证了阈值设定的合理性,以及达到了疲劳检测系统实时性检测的要求。