监测面部特征与头部姿势可知道是否存在疲劳驾驶

2023-04-25 16:47彭德坤
计算机与网络 2023年5期
关键词:驾驶人员人脸头部

彭德坤

随着科技的发展,人们拥有的汽车越来越多,为出行提供了方便,但是根据大数据的调查显示,交通事故也出现的越来越多,而其中疲劳驾驶已成为导致交通事故的重要因素之一,给生命财产安全造成了严重的损失。我国交通事故仅2021年就有数万人死亡或受伤,损失财产高达几百亿元,而其中因为疲劳驾驶引发的交通事故达到1/4左右,给社会带来了潜在的危害,也增加了交通部门的工作负担。

疲劳是一种生理状态,并且伴随时间的增长疲劳程度会不断加剧,驾驶人员随着连续开车时间的增长,疲劳程度也会大大加深。疲劳是有一些生理征兆的,若能提前检测到驾驶人员的疲劳状态,给驾驶人员提出相应的警告,可以有效减少因疲劳驾驶造成的交通事故。

解决方案

可以采集图像或视频,将采集的内容解析后传输到后台,通过处理后将结果反馈给用户。该系统首先通过车载摄像头获取图像,进行人脸检测,检测驾驶员是否在位,若驾驶员在位,即可检测到人脸。为了保证每一次驾驶的适应性,需要先引导司机进行简单的样本采集,以方便后续的采集图像。比对采集图像分为面部姿势的采集和眼序列采集,及相关的头部姿势采集。

在汽车行驶途中该系统不断进行对比采集,从而得出相关的图像并判断是否达到阈值。系统首先进行头部姿态采集,采集得到的样本如果若达到阈值,说明驾驶员出现疲劳姿态,这是则立即反馈给用户,如果没有达到阈值将重复以上操作。

系统功能

面部识别

自从2006年,深度学习被Geoffrey E. Hinton教授提出以后,在各行各业,特别是互联网行业,得到了广泛的应用,目前深度学习已经成为机器学习领域中最热门的研究领域,并且在人工智能领域也取得很大突破。因此可以采取深度学习的方法进行人脸识别,深度学习就是不断地用大量的标准数据集进行训练,以提高机器识别的准度与精度。但是在驾驶室环境中进行识别,需要排除的干扰因素很多,比如夜晚行车光照、驾驶员的姿态,以及是否有墨镜或口罩的遮挡等,实时性会提高识别难度。而基于深度学习的模型通常内部网络参数众多、运行速度缓慢,同时不能移植到移动设备上,从而使实际的检测跟理想模型有较大偏差。

在传统的人脸识别过程中,一般是先进行面部检测,再进行人脸的矫正,最后根据训练的数据集提取面部特征进行人脸识别。但是当驾驶人员佩戴墨镜或口罩时,面部特征存在遮挡,会导致特征提取不准确,此时可以结合黑夜增强算法、红外线摄像头、卷积神经网络算法对图像进行修复,使特征提取变得更加准确。最后再进行特征检测,将人脸检测与人脸对齐整合到一起,通过设计精巧的三级网络结构,达到检测性能和实时性之间的平衡,使人脸识别达到最优解。

通过对驾驶环境分析,确定使用基于深度学习的方式进行驾驶人员的面部特征检测,可以成功识别人脸图像,并精确定位。

面部特征检测

面部特征检测最重要的是检测眼部与嘴部,疲劳驾驶时的面部特征主要通过眨眼与打哈欠表现出来。眼部检测可采取灰度投影的方法,使用RGB通道将原图转换成灰度图像,之后利用积分计算得到不同的色区积分投影,根据眼睛与皮肤颜色区别较大的特点,可以对眼睛状态进行准确判断。

在人脸面部的色区划分中,嘴唇的颜色跟其他地方的颜色有明显区别,从而可先利用Harr级联训练,提取大量嘴唇局部样本在色区数据集中多次迭代聚类,最后成功得到驾驶员嘴唇在颜色空间中的数据原模型。然后再根据唇色模型对原模型不断进行相似度计算,最后根据最大类间方差自适应阈值二值化运算,便可以得到精准的嘴部边界轮廓。

头部姿势估计

当人们出现疲劳状态时头部往往会向前倾,这是因为肌肉处于完全放松的状态,导致肌肉对头部的支撑也处于放松的状态。在实际驾驶过程中,当驾驶人员出现疲劳状态时,也是会导致头部向下倾斜,当头部下垂过久,驾驶人员还会将脖子进行转动,使颈椎放松缓解。因此,可以依据驾驶人员头部的变化、状态、频率判断其是否进入疲劳状态。

疲劳状态检测与判定

眨眼频率

人处于驾驶状态下眨眼速度相对较快,可达到<400 ms,但是当驾驶人员处于疲劳状态时眨眼速度将会超过1 s,为了缓解疲劳,驾驶人的眨眼频率也会增加。所以,驾驶人的眨眼频率与眨眼的速度能直观地反映出驾驶人的疲劳程度。

在2017出现了眼睛纵横比的概念,通过计算EAR数值,就可以对眼睛状态进行准确判断。运用眼睛纵横比概念,通过对眼睛数据结果不断迭代比对,可得到驾驶人员在某一瞬间的眼睛纵横比。当眼睛处于睁开时EAR值会处于一个阈值范围内,当眼睛闭合时EAR值会在极短时间快速降低到一个极小的值。通过对正常数据集的反复迭代得出EAR值阈值为0.2,当计算结果小于阈值时就能够判定驾驶人员的眼睛处于闭合状态,反之则为睁开状态。

需要注意的是,不同的人阈值可能不一样,因此还需要前面的信息采集来确定相关的阈值,再判定眨眼频率。

哈欠频率

与眨眼频率相似,也可以采用计算EAR值来检测哈欠的频率。哈欠频率也是评价疲劳程度的重要指标,当驾驶人员处于疲劳状态下,打哈欠的频率会提高几十上百倍。这里需要对面部嘴型进行数据集迭代训练计算阈值,然后得到哈欠频率从而判断驾驶人是否处于疲劳驾驶。

头部姿态的疲劳判定

利用头的转动幅度来进一步确定驾驶人员是否处于疲劳状态,当驾驶人员的颈椎长时间得不到放松和缓解,便会在一定时间后进行头部的转动,以便活动颈椎。利用双摄像头拍摄头部姿,包括俯仰角、偏航角和滚转角等3个维度的转动角度。当驾驶人员出现疲劳状态时,映射到数据源上表现为阈值的大小变化,通过对三维空间中3个坐标角度变化的监测就可以得到相对应的阈值。

驾驶人员在正常驾驶过程中需要不断观察左右后视镜以及车辆周围环境,这可能导致在水平方向上的阈值确定出现错误结果,为了使结果精準,需要添加时间参数进入测量,提高系统检测的准确性。

实现目标

以上设计实现了一个实时的疲劳驾驶检测系统,该系统通过使用红外双摄像头拍摄头部与面部图像,然后利用机器学习的方法对标准数据集进行训练,得到原模型。

该系统能根据面部特征与头部姿态实时检测驾驶人员是否存在疲劳驾驶,就算是驾驶人员戴着口罩、墨镜等遮挡物,也可以通过红外摄像以及Harr与黑夜增强算法精准地检测出结果。

最后根据检测结果综合迭代判断驾驶人员是否存在疲劳驾驶行为,如果存在便发出警告。

本系统运用基于深度学习的人脸检测算法与卷积神经网络算法,结合黑夜增强算法与Harr算法,使用Python语言进行系统开发。同时使用了由谷歌人工智能团队开发和维护的深度学习库TensorFlow,以及其他机器学习库,如Opencv等,大大提高了系统通用性、可移植性,能够在Windows、Android、IOS等多种系统上运行。

此系统的优点是:

1.传统疲劳驾驶的测试需要在用户身上佩戴仪器,给用户造成了不适,而通过深度学习的方法不会给用户造成不适,同时提高了检测的精确度。

2.避免了因佩戴眼镜等遮挡,而不能检测出正确结果。

3.通过绑定微信接口,当司机发生疲劳驾驶时将会给乘客或联系人发送提示,并且可以接入汽车的安全系统。

4.不是一次检测就会判定司机是否存在疲劳驾驶,而是通过多组次的权重分析,才会将结果反馈,多次的权重检测提高了准确率。

猜你喜欢
驾驶人员人脸头部
极端天气中的车辆安全驾驶技巧分析
如何提高机关事业单位驾驶人员的服务意识
有特点的人脸
头部按摩治疗老伴失忆
火箭的头部为什么是圆钝形?
汽车驾驶技能的形成与驾驶技能的培养探讨
三国漫——人脸解锁
安全驾驶 远离“路怒”情绪
自适应统计迭代重建算法在头部低剂量CT扫描中的应用
马面部与人脸相似度惊人