一种基于摄像头的疲劳驾驶检测系统及预警装置的制作方法
未命名
07-18
阅读:69
评论:0

1.本发明提供一种基于摄像头的疲劳驾驶检测系统及预警装置,属于电子信息领域。
背景技术:
2.摄像头作为一种常用传感器,是视频输入设备的一种,目前在视觉信息采集,视频会议,远程交互和监控领域应用广泛。由于目前数字图像处理技术的飞速发展,以及具有的信息量大,连续信息关联度大,容易加密,传输过程中噪声不累积,保证度高等特点,使得数字图像处理技术和数字摄像头被各领域广泛应用。驾驶人的疲劳程度可以从头部和脸部的动作中体现;车内环境复杂,检测过程不能干扰驾驶员正常驾驶车辆,需要使用非接触式以及能够采集大量信息的传感器。基于以上两个需求,使用摄像头,不仅能够保证头部和面部的信息采集,而且摄像头本身体积小,在车内易于放置,不会干扰驾驶员。由于摄像头图像信息丰富,可以提取多个疲劳参数,而且单一的疲劳参数对于疲劳判断的可靠性和稳定性并不好。
技术实现要素:
3.针对上述技术问题,本发明提供一种基于摄像头的疲劳驾驶检测系统及预警装置,采用多疲劳参数混合判断的方式来判别驾驶员的疲劳状态。
4.本发明的技术方案如下:
5.一种基于摄像头的疲劳驾驶检测系统及预警装置,包括人脸检测模块、人脸特征点定位模块、疲劳检测模块和界面;
6.摄像头采集到图像,进行预处理之后,先进入人脸检测模块,得到图像中的人脸区域;在确认图像中包含人脸后,将人脸区域输入人脸特征点定位模块,输出定位特征点;将人脸和特征点数据共同输入疲劳检测模块,得到驾驶员的疲劳状态;最后将疲劳数据输出到界面上。
7.本发明采集的有perclos、眨眼频率、哈欠频率、哈欠持续时间和头部运动轨迹等参数,其中perclos是公认最有效的在视频图像中检测疲劳的评估参数,它根据一段时间内驾驶员闭眼的时间和睁眼的时间之比来确定;眨眼频率作为疲劳控制参数的一种,主要是通过对比驾驶员当前眨眼频率和常人的眨眼频率的差别,由于每个人习惯和生理情况不同,这种方式可靠性和稳定性都较perclos低,因此作为检测疲劳的辅助参数。哈欠是人类一种常见的生理表现,人们通常在无聊、厌烦或者是疲劳的状态下打哈欠,一旦开始打哈欠,驾驶员已经处于注意力及其不集中或者疲劳状态,因此哈欠也应该作为驾驶员疲劳检测的参数之一。在整个哈欠的过程中,人的嘴部大大张开,与平时说话及唱歌时的嘴部动作不相同,通过对嘴部各个特征点的数据进行处理,可以得到嘴部当前的开闭大小的状态,用于判断是否是在打哈欠。在驾驶员处于极端疲劳的状态下,驾驶员甚至会打瞌睡,这个时候的头部动作是点头,眼部处于闭合状态,在检测到驾驶员有点头这个动作的时候无疑也表
示了驾驶员处于疲劳状态,需要被提醒。
8.为了得到准确,快速和稳定的人脸检测结果,对比目前使用的主流算法,根据实时需求选择了级联adaboost算法。对比haar-like、hog、lbp三类特征,在准确度和实时性的权衡下选择了mb-lbp作为人脸提取特征。使用相同的样本建立了五组训练参数,并分别对其进行了训练和测试,详细讨论了样本和参数对分类器训练效果的作用,训练出基于mb-lbp的级联adaboost算法的人脸分类器。在人脸分类器完成训练的前提下,实现了三种方式的人脸特征点检测算法,对比后使用目前最快速的回归手段进行人脸特征点定位,在准确度和实时性上均取得不错的效果。最后,通过对眼部区域,嘴部区域,头部区域的参数采集,得到了一系列疲劳参数,并最终实现了疲劳判断,整个算法在640
×
480分辨率,30帧每秒的摄像头上的平均运行时间18ms,达到实时检测效果。
附图说明
9.图1是本发明的结构框图;
10.图2是本发明的基于随机森林和全局线性回归方法流程图;
11.图3是实施例中的眼部参数处理流程图;
12.图4是实施例中的嘴部参数处理流程图;
13.图5是实施例中的头部参数处理流程图;
14.图6是软件显示界面附图。
具体实施方式
15.结合附图说明本发明的具体技术方案。
16.如图1所示,一种基于摄像头的疲劳驾驶检测系统及预警装置,包括人脸检测模块、人脸特征点定位模块、疲劳检测模块和界面;
17.摄像头采集到图像,进行预处理之后,先进入人脸检测模块,得到图像中的人脸区域;在确认图像中包含人脸后,将人脸区域输入人脸特征点定位模块,输出定位特征点;将人脸和特征点数据共同输入疲劳检测模块,得到驾驶员的疲劳状态;最后将疲劳数据输出到界面上。
18.人脸检测模块实现的功能是对输入的图像进行人脸检测,并输出确定的人脸区域位置。本发明对比目前主流的人脸检测算法,从各种方案的特点和难度进行分析后,确定使用传统的机器学习方法,通过自行组织样本和调节参数的方式训练一个人脸分类器进行人脸检测。
19.人脸特征点定位模块的作用是从输入的人脸区域中定位人脸特征点。本发明实现了三种方法,一种为传统的投影方式,一种为传统机器学习的回归方式,一种为深度神经网络的回归方式。对比三个实现方式的准确度、速度和后续开发的难度,本发明使用了第二种方式。人脸特征点的模型有5点、20点、21点、68点、194点,为了保证有足够的特征点位置,以方便提取各部分参数,应当尽量选择特征点数量较多的模型,但模型的大小以及模型的选择时间和点数成正比,相同训练参数下194点模型较68点模型大3倍,但准确度并未显著提高,且检测时间略有提升,考虑到以上原因,本发明训练68点模型。
20.疲劳检测模块的工作流程是将得到的人脸图像和人脸特征点输入疲劳检测模块,
通过图像处理的手段获得疲劳参数,并判断疲劳状态。本发明设计的疲劳检测模块将从人脸中提取眨眼次数,眨眼频率,哈欠次数,哈欠频率,头部运动轨迹和是否瞌睡这几个参数,然后依据其对应的状态来判断疲劳。
21.人脸检测算法:
22.基于统计的人脸检测算法中,主流方法有特征脸(pca)方法,神经网络(nn)方法,支持向量机(svm)方法,隐马尔科夫模型,adaboost方法。其中,adaboost方法和nn方法是目前最快的方法,两种方式比较,在平均准确度上nn法较adaboost高,但nn设计多样化,不同的网络设计下,效率差距极大,且nn法计算数据略冗杂,依赖硬件资源,目前优化还欠佳,速度较adaboost慢;adaboost虽然准确度不如nn法,但是其实现简单,更依赖于样本的设置而不是本身算法的设计,因此本发明采用adaboost方法。adaboost方法对人脸的实时检测来自于2001年viola和jones的研究,采用了类haar(haar-like)特征提取,并且使用积分图加速特征计算过程,使用adaboost方法训练每一个强分类器,再将训练出的强分类器级联,得到最终的人脸分类器。本发明基于系统的实时性考虑,为了实获得更快的检测速度,为后续算法步骤留下足够时间,在检测特征上改用多块局部二值化模式(mb-lbp)特征,再次加速了此方法的检测速度。
23.人脸特征点检测算法:
24.如图2所示,基于随机森林和全局线性回归方法,是以形状回归为原理设计的算法,通过从局部到全局的手段,从每个特征点周围提取随机特征进行单个特征点的训练,然后级联所有特征点的特征进行整个脸部线性回归矩阵的训练,有较高的准确度和超快的检测速度。
25.疲劳参数的提取和疲劳判断:
26.摄像头采集到的图像由于芯片的成像,数据传输和外界因素等原因的影响而掺杂噪点,使整体图像效果下降。训练分类器的正样本虽然未进行过滤波等图像预处理操作,但生成的分类器仍旧是以灰度变化为主要依据,这些随机噪点会小幅度改变局部的特征,会影响到人脸检测和人脸特征点提取的过程。因此,在正式的疲劳参数提取过程前,本发明对原始图像进行了预处理操作,使用了中值滤波和直方图均衡化两种算法。
27.如图3、图4、图5所示,通过对眼部参数、嘴部参数、头部参数进行了预处理,并且设置了预警参数,通过设置的可视化界面进行实时监测,可以进行疲劳实时监测。
28.perclos(percenteyeclosure)是指眼睛闭合时间占某一特定时间的百分率。具体测量方法是:得到驾驶员的眼睛图像,通过对图像进行处理、分析和识别,判断眼睛是睁开的还是闭合的,最后计算出一段时间内眼睛闭合时间的百分率。perclos方法有p70、p80和em三种判定的标准,分别是在眼睑盖住瞳孔的70%、80%和50%时判断眼睛闭合,其中p80最能反映人是否疲劳。因此,本文采用p80作为判断标准。假设正常睁开的眼睛高度为h,按照p80标准,使用h
×
0.2为眼睛闭合和睁开的阈值。则每一段时间内的perclos的计算方式是闭合帧数除以总帧数。
[0029][0030]
得到的perclos结果越大,说明驾驶员越疲劳。
[0031]
眼部:程序中先获取人脸图像和特征点的数据,其次计算出眼部中心和眼部宽度,并对平均眼部高度进行求取,然后根据眼部平均宽度判断是睁眼还是闭眼,在睁眼的前提
下进行眼部区域获取,直方图均衡化,图像二值化和闭操作,然后求取眼部当前高度,并对历史数据进行滤波和差分,从而求得是否眨眼,最后回到流程开始等待下一次数据到来。
[0032]
嘴部:首先迭代嘴部高度和宽度,然后对历史数据进行窗口滤波处理,计算张口比例。根据张口比例的大小来判断此时嘴部处于预备哈欠过程,正在哈欠过程还是普通张口过程,如果处于预备哈欠状态和正在哈欠状态,需要进行计时统计哈欠时间,并确认整个哈欠时间超过时间阈值才认为是打哈欠;如果处于普通张口状态则不进行任何记录。整个判断完成后进入下一次迭代过程。
[0033]
头部:首先根据人脸定位结果得到头部位置,然后通过眼部闭眼和睁眼的信息,确定是否需要进行闭眼位置的初始化,如果睁眼则需要重置闭眼位置。如果在闭眼状态下,头部向下移动超过经验阈值,则认为驾驶员正在瞌睡。经验阈值取眼部和嘴部垂直距离的四分之一。
[0034]
预警参数和警告参数
[0035]
1.预警参数
[0036]
预警参数没有严格的理论依据,是在日常生活中的经验总结出来的,完全依靠预警参数判断驾驶员是否疲劳是不现实的,但预警参数的仍然具有使用价值。本文使用的预警参数有眨眼频率和哈欠频率两个。具体的判断条件是:
[0037]
①
60秒统计中眨眼次数大于等于35次。
[0038]
②
120秒统计中眨眼次数小于等于10次。
[0039]
③
60秒统计中哈欠频率高于2次/分。
[0040]
正常人的眨眼频率为6-30次/分,因此如果频率高于30,或者低于6,都有可能疲劳;打哈欠是人在困倦、缺氧或者无聊时候的习惯性动作,如果频率过高,原因也有可能是疲劳。
[0041]
2.警告参数
[0042]
满足警告参数是疲劳的充分不必要条件,这些警告参数均被论证过与疲劳联系紧密,因此不能忽视。本文使用的警告参数有perclos和瞌睡判断两个。具体的判断条件是:
[0043]
①
60秒统计中,perclos参数超过15。
[0044]
②
满足瞌睡的条件。
[0045]
如图6所示,软件界面中左上部分的区域用于实时显示摄像头采集后经过图像处理的图像,包括人脸特征点定位信息和疲劳信息;界面右部分显示眼部二值化图像,以及用于判断疲劳状态的疲劳参数,如眼部平均高度,眼部当前高度,眨眼次数,眨眼频率等;界面下方显示部分求取疲劳参数的中间参数,试验功能按钮和眼部阈值调整按钮。
[0046]
系统测试效果:
[0047]
经过人脸检测,人脸特征点定位,疲劳驾驶模拟三个实验,软件系统的人脸检测率达到96.3%,特征点定位准确率达到90.69%,眨眼平均检测率70%,哈欠检测率接近100%,瞌睡检测率100%,平均运行时间18ms。
技术特征:
1.一种基于摄像头的疲劳驾驶检测系统及预警装置,其特征在于,包括人脸检测模块、人脸特征点定位模块、疲劳检测模块和界面;摄像头采集到图像,进行预处理之后,先进入人脸检测模块,得到图像中的人脸区域;在确认图像中包含人脸后,将人脸区域输入人脸特征点定位模块,输出定位特征点;将人脸和特征点数据共同输入疲劳检测模块,得到驾驶员的疲劳状态;最后将疲劳数据输出到界面上。
技术总结
本发明提供一种基于摄像头的疲劳驾驶检测系统及预警装置,包括人脸检测模块、人脸特征点定位模块、疲劳检测模块和界面;摄像头采集到图像,进行预处理之后,先进入人脸检测模块,得到图像中的人脸区域;在确认图像中包含人脸后,将人脸区域输入人脸特征点定位模块,输出定位特征点;将人脸和特征点数据共同输入疲劳检测模块,得到驾驶员的疲劳状态;最后将疲劳数据输出到界面上。本发明采用多疲劳参数混合判断的方式来判别驾驶员的疲劳状态。混合判断的方式来判别驾驶员的疲劳状态。混合判断的方式来判别驾驶员的疲劳状态。
技术研发人员:焦子欢
受保护的技术使用者:焦子欢
技术研发日:2023.02.27
技术公布日:2023/5/30
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/