疲劳驾驶实时检测系统的制作方法

文档序号:1229916阅读:161来源:国知局
专利名称:疲劳驾驶实时检测系统的制作方法
技术领域
本发明涉及生理学、自动控制、模式识别、人工智能等相关学科,属于计算机 嵌入式系统应用和图像处理技术领域,尤其是一种疲劳驾驶实时检测系统。
背景技术
汽车的普及一方面促进了交通事业的发展,另一方面却使交通事故日趋增 多。据有关部门统计,在各种道路交通事故肇事的主要原因中,疲劳驾驶引起的 失控占了40%。疲劳虽然是一个正常的生理现象,但是对驾驶员这一特殊的群体, 就可能引起严重的后果,甚至危及生命,许多疲劳的驾驶员却常常不知道自己已 经处在瞌睡的危险状态之中,所以汽车驾驶员瞌睡检测报警系统就成为了构建交 通工具主动安全系统中的一个重要研究方向。如何利用先进的技术来减少交通事 故已成为重要的研究热点。
驾驶疲劳检测是一个非常复杂的问题,早期的研究主要从医学角度出发,研 究引发驾驶疲劳的因素,美国汽车联合会(AAA)从1993年开始研究瞌睡与交通安 全的关系。当时仅限于如何根据交通事故的分析来对司机进行教育。让司机利用 自我记录表对驾驶任务、驾驶习惯和驾驶时间等进行自我评测。因为引发疲劳因 素的复杂性和个体的差异性,这种主观的调査方法很难成为评测驾驶疲劳的标准 尺度。到90年代中期,日本、美国等国家开始研究和设计能够实时检测驾驶疲劳 的方法和仪器。
目前,驾驶疲劳检测方法的一般思路是首先确定所要选取的能够反映疲劳 的特征,如脑电图(EEG)、眨眼频率等,然后进行特征提取,最后根据提取到的 特征和预先设定的标准进行识别。判断有无疲劳发生。脑电图的方法虽然测量结 果比较准确,但是一般在驾驶后测量,结果是超前或滞后的;而且在驾驶室内安装上述仪器也不现实。因此,寻求一种在车载、实时、客观的疲劳检测装置成为 国内外研究者的共同研究方向。
已有的申请号为CN200510037771的专利,通过两个不同波长红外滤波CMOS 摄像头得到两幅图像进行差分处理得到处理图像,通过计算得到PERCLOS值进行 疲劳判断,,但是这种差分算法在光照强烈的条件下比较容易失败,在实际复杂的 环境中应用中可靠性就比较低。
已有的申请号为CN200610012623的专利,其装置由图像采集和转换系统、图 像处理系统、疲劳状态识别系统、提示和报警以及制动系统构成;它利用红外光 源光线和摄像机光轴成一定的角度,采集到的驾驶员的面部图像信号由数字信号 处理器的图像处理程序进行处理,得到眼睛图像,同时利用Kalman滤波器Mean Shift算法实现眼睛跟踪,采用模板匹配的方法,以相似度衡量相似程度来识别眼 睛状态,根据眼睛的状态计算出眨眼持续时间、眨眼频率、PERCLOS值,来判断 驾驶员的疲劳程度。但是,上述在人脸检测的基础上利用Canny算子进行边缘提 取定位眼睛的做法错误率高;而且用Kalman滤波器MeanShift算法实现眼睛跟 踪效率不高。最后它采用TMS320C6711DSP虽然可以满足数据图像处理的要求, 但成本过高,而且最终级别预警还需经过单片机才能提示,增加了硬件的复杂度, 无法用于大批量生产销售,因而广泛普及会有相当大的困难。

发明内容
为了克服已有的疲劳驾驶检测系统的可靠性较低、成本高、适用性差的不足, 本发明提供一种可靠性高、成本低、适用性好的疲劳驾驶实时检测系统。 本发明解决其技术问题所采用的技术方案是
一种疲劳驾驶实时检测系统,包括用于采集驾驶员脸部图像的摄像头、用于 进行疲劳检测的处理器,所述处理器包括图像采集模块,用于获取所述摄像头 捕获的驾驶员脸部图像;图像预处理模块,用于对获取的图像进行预处理;所述
处理器还包括图像处理模块,用于利用AdaBoost算法分析预处理后的图像,检 测出驾驶员的左右眼,分别计算上眼睑的曲率和睁眼面积,接着将上眼睑的曲率 和睁眼面积进行融合,得到眼睛闭合程度,并依照p80测量方法检测驾驶员是否 有疲劳;控制报警模块,用于当图像处理模块判断驾驶员有疲劳时,发出告警信 号。
作为优选的一种方案所述图像处理模块包括人眼识别单元,用于利用 AdaBoost算法得到驾驶员的左右眼,并对其进行实时跟踪;疲劳检测单元,用于 在获得驾驶员的左右眼图像后,计算得到眼睛图像的基于上眼睑的曲率的眼睛闭 合程度函数pl和基于睁眼面积的眼睛闭合程度函数p2,分别用下列公式表示
<formula>formula see original document page 7</formula>
其中,Cmax为上眼睑曲率的最大值、Cmin为眼睑曲率的最小值,C为眼睑曲率 的当前值;Smax为睁眼面积的最大值,Srnin为为睁眼面积的最小值,S为睁眼面 积的最当前值;
并依照下式进行融合
由上式得到眼睛闭合程度; 并计算设定时间段内眼睛闭合程度大于等于80°/。所占的时间比例,即测量出 U t4值就能计算出PERCLOS的值/ :
其中,/为眼睛闭合时间占设定时间段的百分率; tl:眼睛睁开程度减小到80%的时刻;
t2:眼睛睁开程度减小到20%的时刻; t3:眼睛再次睁开到20%的时刻; t4:眼睛再次睁开到80%的时刻;
如上述得到的/大于80%,则判定驾驶员有疲劳。
进一步,在所述的疲劳检测单元中,使用Sobel算子来提取眼睛边缘,按列 扫描图像,取出每列的最上面的点,即为上眼睑,并取中间部分来计算眼睑曲率;
依次扫描眼睑上各点,计算其上任一点沿眼睑到两端的长度之差,其中的最小者 为眼睑的中点,以中点为边界点,分别计算左半部分和右半部分的中点,同样再
以该中点为边界分别计算左右各部分的中点,依次进行下去就得到了各个边界点
进行曲率的计算,曲率计算公式_:,其中A^表示曲线段切线变化的 角度,^为弧长;
在获得眼睛区域后,利用边缘图的水平和垂直投影方法得到眼睛的范围,获 得眼睛的长宽信息,按照长宽乘积计算睁眼面积。
再进一步,在所述的疲劳检测单元中,所述设定时间段包括两个时间窗口宽 度,分别为8秒和2秒,其中8秒窗口用于检测最近8秒内闭眼程度达80%以上 的时间是否占了时间窗口的80%以上;2秒窗口判断最近2秒内闭眼程度达80%以 上的时间是否占了时间窗口的80%以上,如果同时满足上述两个条件,发出报警。
作为优选的另一种方案所述的图像预处理模块包括灰度处理单元,用于
将获取的图像统一转化为灰度图
G, = 0.3i + 0.59G + 0.115
其中,R表示红色分量,G表示绿色分量,B表示蓝色分量; 均衡化处理单元,用于将图像的直方图通过变换函数5 = 7^>*)处理,其中s、 r分 别为目标图像和原始图像上的像素点(x, y);
噪声处理单元,用于采用中值滤波法来进行噪声处理。
本发明的技术构思为首先用可调红外LED灯加CMOS传感器摄像捕获驾
驶员脸部图像,对获取的图像进行预处理方法来减弱驾驶员行驶过程中背景和光
照的复杂变化影响;然后用AdaBoost方法检测出眼睛位置,并通过计算上眼睑曲 率和睁眼面积两者信息融合的结果来评价眼睛状态;接着,用PERCLOS方法观 察一段时间内的眼睛状态变化,即眨眼频率,来判断是否处于瞌睡状态,如果检 测到瞌睡,嵌入式系统就发出警报提醒驾驶人员,否则继续采集人眼图像直至下 一次检测到瞌睡报警提醒,最后在基于ARM9的嵌入式芯片S3C2410处理器下实 现检测算法图像采集及预处理由可调红外LED灯加CMOS传感器在不同的 光照环境下取得的图像差异性较大,故将采集到的图像统一转化为灰度图,并通
过直方图均衡化,去噪声处理来减少背景和光照的影响。人眼识别把预处理之
后的图像数据交由图像处理程序处理,利用AdaBoost方法对眼睛进行实时跟踪。
疲劳检测人眼识别出来以后,通过计算上眼睑曲率和睁眼面积两者信息融合的
结果来评价眼睛的闭合程度,在跟踪观察眼睛状态一段时间后得到PERCLOS值, 将结果与事先设定的阈值进行比较得出驾驶员是否疲劳驾驶,决定是否发出预警 提示。
本发明的有益效果主要表现在(1)用红外成像,可以使系统全天候工作,
适应能力强。(2)通过AdaBoost方法直接检测出人眼位置,方便快捷。(3)用 上眼睑曲率和睁眼面积两者信息融合的结果来评价眼睛的闭合程度,大大提高了 检测的准确率(4) ARM处理器较DSP处理器集成度更高,成本较低,兼容性好, 扩展性强,并且可以使图像处理与分级别预警在同一芯片上实现。(5)本发明硬 件成本相对较低,算法精确,便于在实际交通运输上实行生产推广使用,有良好 的市场前景,对减少交通事故发生有着积极长远的作用。


图1是疲劳驾驶检测系统的总框架图。 图2是疲劳驾驶检测算法的简要流程图。 图3是疲劳检测部分的流程图。 图4是开眼和闭眼的上眼睑曲率近似图。 图5是睁眼面积计算示意图。 图6是PERCLOS测量原理图。
具体实施例方式
下面结合附图对本发明作进一步描述。
参照图1 图6, 一种疲劳驾驶实时检测系统,包括用于采集驾驶员脸部图像
的摄像头、用于进行疲劳检测的处理器,所述处理器包括图像采集模块,用于
获取所述摄像头捕获的驾驶员脸部图像;图像预处理模块,用于对获取的图像进
行预处理;所述处理器还包括图像处理模块,用于利用AdaBoost算法分析预处
理后的图像,检测出驾驶员的左右眼,分别计算上眼睑的曲率和睁眼面积,接着
将上眼睑的曲率和睁眼面积进行融合,得到眼睛闭合程度,并依照p80测量方法
检测驾驶员是否有疲劳;控制报警模块,用于当图像处理模块判断驾驶员有疲劳
时,发出告警信号。
图l是系统总框架图,其中软件部分是用0++实现,整个硬件部分包含了图
像采集模块,图像处理模块,控制报警模块三个部分。
硬件部分
(1)图像采集模块
可调红外LED用了波长880nm的红外LED光照,使用Omnivsion公司生产的 0V7620芯片,0V7620是一款功能强大的单片相机芯片,配合0V511组成了一个低 成本的数字图像采集模块。前者实现了图像采集的功能,后者提供了USB接口方 便与系统连接。(2) 图像处理模块
图像处理系统采用S3C2410处理器,能满足图像处理速度的要求,保证了图像 传输速度。扩展64M SDRAM与64M FLASH,大容量的RAM能够保存多幅连续图像, 便于图像的实时分析与处理。本发明的主要步骤如人眼检测和疲劳检测部分的算 法在这个部分实现。
(3) 控制报警模块
根据是否检测到瞌睡,可使S3C2410芯片输出控制信号来启动蜂鸣报警器。 软件部分
图2中,展示了疲劳驾驶检测算法的简要流程图
在疲劳驾驶检测中,预处理是第一步,由于红外线摄像头在不同的光照环境 下取得的图像差异性较大,而且本身固有的特性和人为因素总是会或多或少地引 入某些干扰和噪声。因此,为了保证具有较好的检测和识别效果,我们必须进行
图像的预处理。我们依据如下公式将图像统一转化为灰度图
=0.3i + 0.59G + 0.115
其中,R表示红色分量,G表示绿色分量,B表示蓝色分量; 然后由于图像中光照的不均匀性,需要对图像做光照补偿,我们希望图像具
有本文方法研究所需要的灰度分布,即突出所需要的图像特征(如眼睛特征),而
直方图均衡化能较好地满足这一要求。
直方图均衡化(Histogram Equalization)又称直方图平坦化,实质上是对图像进
行非线性拉伸,重新分配图像象元值,使一定灰度范围内象元值的数量大致相等。
对图像的直方图均衡化过程是通过变换函数^ = 7^)来完成的,s、 r分别为目标 图像和原始图像上的像素点(x, y)。
输入的原始图像一般都存有不同程度的噪声,而这些噪声对于特征的提取具 有较大的影响。因此,需要对输入图像进行噪声处理,以尽可能减小噪声的影响。
这一过程也称为对图像的平滑滤波过程。
常用的滤波去噪方法大致可以分为以下四类高斯平滑滤波去噪声法;均值 滤波去噪声法;中值滤波去噪声法;最佳滤波去噪声法。
中值滤波可以去除孤点噪声,不会使图像的边界模糊,比较适合于人眼图像 的去噪处理,因此,本发明采用中值滤波法来进行噪声处理。
第二步,进行Adaboost人眼识别。AdaBoost方法是基于样本学习的方法,通 过样本学习得到的规则(分类器)更接近于人眼的特征,很好地解决了人眼检测 的复杂性问题,即背景图像的多样性和人眼特征的多变性。AdaBoost方法的第二 个特点是运用了分层推进的思想,顶层简单分类器把大多数非人眼的样本排除在 外,减小了底层复杂分类器的检测压力,极大地提高了人眼检测的速度。本发明 同时检测出人的左右眼,并对其进行实时跟踪。但是一旦检测不到人眼,通常情 况下这是由于驾驶员头部严重倾斜,我们可以认为这是驾驶员的错误驾驶行为, 尽管也有可能是由于误差问题导致系统无法检测。所以我们设置一个错误允许时 间,即如果此过程持续5秒以上(这样就可以基本排除系统的误差问题),本发明 将立刻发出警报,提醒驾驶员矫正驾驶姿态。
第三步,疲劳检测。整个疲劳流程如图2所示。在获得驾驶员的眼睛图像之 后,计算眼睛图像的上眼睑曲率和睁眼面积。由于上眼睑是眼睛区域边缘的一部 分,并且灰度值的差异比较大,我们使用Sobel算子来提取眼睛边缘。上眼睑基 本上位于边缘图的最上部,故可按列扫描图像,取出每列的最上面的点,即为上 眼睑。在研究大量眼睛睁闭过程之后,我们发现眼睑的中间部分能比较准确地反 映眼睛的状态而眼睑两端容易突变,故只取中间部分来计算眼睑曲率。
依次扫描眼睑上各点,计算其上任一点沿眼睑到两端的长度之差,其中的最 小者为眼睑的中点。以中点为边界点,分别计算左半部分和右半部分的中点,同 样再以该中点为边界分别计算左右各部分的中点,依次进行下去就得到了各个边界点。
下面进行曲率的计算。曲率计算公式 &,其中A^表示曲线段切线变
化的角度,^为弧长。为了减少计算量,可用近似公式代替以上公式来计算曲率。 利用图4中曲率来近似眼睛睁开和闭合,当点A、 B、 C等间隔选取时,使用如 ^一 AD
下公式计算曲率—。睁眼和闭眼时眼睑弯曲方向不同,是判断睁闭的一个
重要特征。用B和AC的相对位置来描述其方向,睁眼时B在AC的上方,闭眼 时B在AC的下方。故可定义当B在AC的上方时曲率为正,反之曲率为负。
睁眼面积的计算。在获得眼睛区域后,则可以利用边缘图的水平和垂直投影 方法很容易地得到眼睛的范围,从而获得了眼睛的长宽信息,据此计算睁眼面积。 图5反映了睁眼和闭眼区域的范围,我们发现睁眼与闭眼的区域面积相差较大、 易于分辨且计算简单,因此采用该参数作为另一个融合特征。用睁眼面积作为第 二个融合特征的另一个好处是,前面所述的上眼睑曲率的计算大致是眼睛长宽相 除,而面积则是长宽相乘,通过两者的模糊融合将会产生较好的互补效应。
在检测眼睛状态的过程中,我们可以得到上眼睑曲率的最大值Cmax、最小值
Cmin和当前值C,以及睁眼面积的最大值Smax,最小值Smin和当前值S,这样就可
以计算得到基于上眼睑曲率的眼睛闭合程度函数pl和基于睁眼面积的眼睛闭合
程度函数p2,分别用下列公式表示
, C一Cmin Cmax-Cmin
^ S1 — min
; 2 =-
S max- S1 min
然后我们用Pl, P2的算术平均值作为信息融合的结果来表征眼睛闭合程度
最后用PERCL0S的p80测量方法检测驾驶员是否疲劳驾驶。PERCLOS(PERcentage of eye CLOSure over the pupil over time)是指眼睛闭合时间占某一特 定时间的百分率。而p80测量方法表示眼睛闭合程度大等于80%所占的时间比例。 图示6给出了 PERCLOS的测量原理。只要测量出tl t4值就能计算出PERCLOS的 值/。
f 4 M
其中,/为眼睛闭合时间占某一特定时间的百分率;
tl:眼睛睁开程度减小到80%的时刻;
t2:眼睛睁开程度减小到20%的时刻;
t3:眼睛再次睁开到20 %的时刻;
t4:眼睛再次睁开到80%的时刻; 在截获视频流中的图像帧并提取出图像中的人眼且识别其状态后,将此状态 信息分别送入两个检测时间窗口同时进行检测。这两个时间窗口宽度分别为8秒
和2秒,其中8秒窗口用于检测最近8秒内闭眼程度达80%以上的时间是否占了 时间窗口的80%以上;2秒窗口判断最近2秒内闭眼程度达80%以上的时间是否占 了时间窗口的80%以上。如果同时满足这两个条件则发出报警,否则重新回到检 测阶段(表明眼睛最近是睁开的,即使8秒宽度的大窗口做出了报警的判断)。设 置2秒宽度窗口的理由为宽度大的时间窗口不太灵敏,在报警之后,当驾驶员 清醒过来,往往需要1.6秒钟左右(8X20%)才能做出解除报警的判断;而宽度 较小的时间窗口则比较灵敏,只需要0.4秒左右(2X20%)即可做出解除警报的 判断。另一方面,用2秒的检测窗口在瞌睡检测时可以对最近2秒的时间段内的 眼睛状态做出嗑睡判断,有利于排除那些假瞌睡的状态。这样经过两个窗口的判 断,既能准确地做出瞌睡状态的判断,又可以快速地做出解除瞌睡报警的判断, 提高了系统的准确性和稳定性。通过实验数据证明2秒窗口的设置较为合理。
权利要求
1、一种疲劳驾驶实时检测系统,包括用于采集驾驶员脸部图像的摄像头、用于进行疲劳检测的处理器,所述处理器包括图像采集模块,用于获取所述摄像头捕获的驾驶员脸部图像;图像预处理模块,用于对获取的图像进行预处理;其特征在于所述处理器还包括图像处理模块,用于利用AdaBoost算法分析预处理后的图像,检测出驾驶员的左右眼,分别计算上眼睑的曲率和睁眼面积,接着将上眼睑的曲率和睁眼面积进行融合,得到眼睛闭合程度,并依照PERCLOS的p80测量方法检测驾驶员是否有疲劳;控制报警模块,用于当图像处理模块判断驾驶员有疲劳时,发出告警信号。
2、 如权利要求l所述的疲劳驾驶实时检测系统,其特征在于所述图像处理模块 包括人眼识别单元,用于利用AdaBoost算法得到驾驶员的左右眼,并对其进行实时跟 踪;疲劳检测单元,用于在获得驾驶员的左右眼图像后,计算得到眼睛图像的基于上眼睑的曲率的眼睛闭合程度函数pl和基于睁眼面积的眼睛闭合程度函数p2,分别用下列公式表示<formula>formula see original document page 2</formula>其中,Cmax为上眼睑曲率的最大值、Cmin为眼睑曲率的最小值,C为眼睑曲率 的当前值;Smax为睁眼面积的最大值,Smin为为睁眼面积的最小值,S为睁眼面积的最当前值;并依照下式进行融合由上式得到眼睛闭合程度P;并计算设定时间段内眼睛闭合程度大于等于80%所占的时间比例,即测量出 t广t4值就能计算出PERCL0S的值/ :<formula>formula see original document page 3</formula>其中,/为眼睛闭合时间占设定时间段的百分率; tl:眼睛睁开程度减小到80%的时刻; t2:眼睛睁开程度减小到20%的时刻; t3:眼睛再次睁开到20%的时刻; t4:眼睛再次睁开到80%的时刻;如上述得到的/大于80%,则判定驾驶员有疲劳。
3、 如权利要求2所述的疲劳驾驶实时检测系统,其特征在于在所述的疲劳检测单元中,使用Sobel算子来提取眼睛边缘,按列扫描图像,取出每列的最上面的点,即为上眼睑,并取中间部分来计算眼睑曲率;依次扫描眼睑上各点,计算其上任一点沿眼睑到两端的长度之差,其中的最 小者为眼睑的中点,以中点为边界点,分别计算左半部分和右半部分的中点,同 样再以该中点为边界分别计算左右各部分的中点,依次进行下去就得到了各个边 界点-<formula>formula see original document page 3</formula>进行曲率的计算,曲率计算公式一&,其中A^表示曲线段切线变化的 角度,^为弧长;在获得眼睛区域后,利用边缘图的水平和垂直投影方法得到眼睛的范围,获 得眼睛的长宽信息,按照长宽乘积计算睁眼面积。
4、 如权利要求2所述的疲劳驾驶实时检测系统,其特征在于在所述的疲劳检测 单元中,所述设定时间段包括两个时间窗口宽度,分别为8秒和2秒,其中8秒 窗口用于检测最近8秒内闭眼程度达80%以上的时间是否占了时间窗口的80%以 上;2秒窗口判断最近2秒内闭眼程度达80%以上的时间是否占了时间窗口的80% 以上,如果同时满足上述两个条件,发出报警。
5、如权利要求1一4之一所述的疲劳驾驶实时检测系统,其特征在于所述的图 像预处理模块包括灰度处理单元,用于将获取的图像统一转化为灰度图G, = + 0.59G + 0.115其中Gray为灰度值,R表示红色分量,G表示绿色分量,B表示蓝色分量; 均衡化处理单元,用于将图像的直方图通过变换函数^ = 71(>")处理,其中s、 r分 别为目标图像和原始图像上的像素点(x, y); 噪声处理单元,用于采用中值滤波法来进行噪声处理。
全文摘要
一种疲劳驾驶实时检测系统,包括用于采集驾驶员脸部图像的摄像头、用于进行疲劳检测的处理器,所述处理器包括图像采集模块,用于获取所述摄像头捕获的驾驶员脸部图像;图像预处理模块,用于对获取的图像进行预处理;所述处理器还包括图像处理模块,用于利用AdaBoost算法分析预处理后的图像,检测出驾驶员的左右眼,分别计算上眼睑的曲率和睁眼面积,接着将上眼睑的曲率和睁眼面积进行融合,得到眼睛闭合程度,并依照PERCLOS的p80测量方法检测驾驶员是否有疲劳;控制报警模块,用于当图像处理模块判断驾驶员有疲劳时,发出告警信号。本发明可靠性高、成本低、适用性好。
文档编号A61B5/16GK101375796SQ20081016165
公开日2009年3月4日 申请日期2008年9月18日 优先权日2008年9月18日
发明者周德龙, 林瑶磊, 梁荣华, 毛剑飞, 妍 胡 申请人:浙江工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1