嵌入式驾驶疲劳检测系统设计

Posted 苏州程序大白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式驾驶疲劳检测系统设计相关的知识,希望对你有一定的参考价值。

嵌入式驾驶疲劳检测系统设计

1、简介

随着汽车业的迅速发展,越来越多的汽车进入人们的家中。汽车给人们带来方便的同时也对人民群众的生命财产安全带来了隐患。交通事故发生的主要原因之一是疲劳驾驶,研究与实现嵌测入式疲劳检系统对避免交通事故的发生具有重大的现实意义。疲劳驾驶是指驾驶员在心理、生理上发生变化引起驾驶能力降低
目前,驾驶疲劳检测方法分为以下三类:基于生理信号检测技术、基于车辆运动参数检测技术和基于人行为特征的检测技术。早期疲劳驾驶的检测技术通过监测生理信号判断驾驶员的疲劳状况,该方法能够较准确地进行疲劳判断,但由于采用接触式传感器,具有很多的局限性。基于车辆运动参数检测技术通过判断车辆自身参数从而得到驾驶员的疲劳状态。该方法不容易反映平缓运动车辆的驾驶员状态。基于人行为特征的图像处理判断检测技术主要是检测人脸,分析人脸特征,从而判断驾驶员驾驶状态,一般采用此方法检测驾驶疲劳。基于广泛采用的 PERCLOS算法,本文设计了适用于该系统的驾驶疲劳检测算法。“PERCLOS”定义为在一定时间内闭眼程度为 80%~100%时间百分比。该方法判别驾驶疲劳的识别度较高,对车辆和司机的影响较小。实验表明,本文的系统尺寸小,成本低,实时性良好。

2、疲劳驾驶检测系统设计

一个合格的疲劳检测系统,要求尺寸小,数据传输量大,能实现复杂计算,实时性良好。本文基于 TMS320DM642 芯片的进行设计,该芯片具有强大的图像处理能力,能满足系统的实时性要求驾驶员疲劳检测系统主要由视频采集,面部检测图像处理,人眼定位,疲劳判别和发出警报六个模块分构成如图1:
在这里插入图片描述
整体硬件结构如图 2。系统的基本工作原理是:将采集的连续模拟信号转换成数字图像信号(A/D 转换),然后将该信号交处理器处理,包括人脸检测、人眼定位、疲劳检测等,最后得到视频输出(D/A 转换),如果检测到驾驶员疲劳驾驶,则报警。这种硬件设计使得信号能被实时处理,是疲劳驾驶的一个很好的检测设计。
在这里插入图片描述

3 、疲劳检测技术

疲劳检测算法主要包含人脸检测,人眼定位以及确定人眼疲劳状态的算法,整体流程图如图 3所示:
在这里插入图片描述

3.1、人脸检测

在驾驶疲劳检测中,第一步是人脸检测,其精度是至关重要的。目前人脸检测的方法主要有基于肤色的人脸检测算法、基于人脸特征的检测定位方法和基于人脸模板的匹配定位检测算法。本文采用 Haar 特征实现人脸检测,该方法需要收集大量的人脸样本,训练分类。该样品主要分为阳性样品和阴性样品。阳性样品是面部的清晰图像,而阴性样品是除了面部以外的其他情况。样本的多样性,复杂性和数量决定训练的分类器的准确性和鲁棒性。多个弱分类器组成一个强分类器,多个强分类器级联组成级联分类器,该级联分类器就是最终检测用的分类器。当执行面部检测,所述算法接收输入视频图像,并且生成不同尺寸的窗口。该窗口中的图像通过分类器及其分类特征确认面部是否出现在窗口中;若该尺寸滑窗遍历完整张图片都未找到人脸,则改变滑窗大小重新遍历检测,以此类推。人脸检测原理如图4所示:
在这里插入图片描述

3.2 、人眼定位

人脸检测完成后,下一步的工作就是对面部图像处理,然后通过人眼进行定位判断驾驶员的疲劳状态。目前有很多成熟的算法能够从复杂的处理结果中检测人眼,例如灰度投影方法,基于可变形模板的人眼定位方法,基于霍夫变换的人眼定位方法和对称变换法等。在本文中,结合基于人的面部特征积分投影和区域分割法,实现了人眼定位。其定位的流程如图5。许多研究已经表明,在所提取的面部信息里,眉眼对称分布且两者的亮度低。因此,为了找到人眼,二值化面部,标记二进制图像,观察连接域的中心,约束连接域,从而除噪声,缩小范围,然后找到区域的中心,确定是否有高度相似的连接域。通过
眉眼最高位置的两个连接域,眼睛和眉毛可以被确定,从而实现人眼的定位。
在这里插入图片描述

3.3、 疲劳状态判定

当驾驶员出现疲劳状态时身体会出现一些相应的反应。指出疲劳程度能判断眼睛状态,眼睛疲劳的最直接的表观现象是眼睛闭合一段时间的时间长度。时间越长,人越疲劳,通过计算PERCLOS值来确定驾驶员的驾驶状态。在本文中,PERCLOS测量方法是:以瞳孔开度的 30%为界,大于此值为睁眼态,小于或等于此值为闭眼态。研究试验的结果表明,当人是清醒的,眼睛闪烁0.2s~0.3s。若汽车速度达到60km/h、眼睛闭合 3s,司机将闭眼行驶 50m,这是非常危险的。因此,当PERCLOS的值是超过40%,或者当眼睛闭合时间超过 3s,则系统认为司机已疲劳,并且系统将发出报警声。

4、 测试验证结果

为了证明本文所提方案的可行性,在室内对系统进行了室内测试,测试装置如图6所示。白天测试结果如表1所示,夜晚测试结果如表2所示。
在这里插入图片描述
表1表明在白天光照正常的情况下,摄像头角度与垂直角度为 20°,摄像头与人眼距离为 80cm时,疲劳检测判断性能优秀。平均闭眼时间间隔为3.21s时,平均第四次发出“嘀”声疲劳警告,时间间隔平均为19.58s。
在这里插入图片描述
表2表明在晚上光照不足的情况下,摄像头角度与垂直角度为 20°,摄像头与人眼距离为 80cm时,疲劳检测判断性能优秀。平均闭眼时间间隔为3.89s时,均为第四次发出“嘀”声疲劳警告,时间间隔平均为18.79s。本次测试结果说明:闭眼时间较长,模拟疲劳程度与实际疲劳时闭眼与眨眼的时间存在误差。
在这里插入图片描述
实验结果表明该驾驶疲劳检测系统在白天能够准确地判断驾驶员的疲劳状态并报警,系统稳定性好。在光线不足时,系统能够进行疲劳判定,但存在误判、延迟判定等情况,疲劳判断性能一般。

关注苏州程序大白,持续更新技术分享。谢谢大家支持

以上是关于嵌入式驾驶疲劳检测系统设计的主要内容,如果未能解决你的问题,请参考以下文章

毕业设计深度学习疲劳检测 驾驶行为检测 - python opencv cnn

毕业设计 : 基于机器学习的驾驶疲劳检测

毕设 深度学习疲劳驾驶检测 opencv python

基于intel x86+fpga智能驾驶舱和高级驾驶辅助系统硬件设计

基于YOLOv5的疲劳驾驶检测系统(Python+清新界面+数据集)

开放环境中的全自动汽车自动驾驶系统