基于DSP的疲劳驾驶检测系统的研究
摘 要: 针对汽车驾驶员疲劳驾驶检测的要求,设计了一种基于图像处理DSP芯片DM6437的疲劳驾驶视觉检测系统。通过DSP的GPIO口用软件控制摄像头轴上和轴外的两种不同波长的近红外光源(850 nm/950 nn)交替采集驾驶员图像,根据亮瞳效应两帧图像差分后粗定位人眼,用模板检测提取人眼的边界,根据PERCLOS值方法判断驾驶员是否疲劳。根据人眼的不同状态分别处理,用蜂鸣器作为报警系统提醒驾驶员。实验表明,该系统简单实用,而且能够全天候准确快速地判断驾驶员是否疲劳。
关键词: 疲劳检测; DSP; 亮瞳效应; PERCLOS
疲劳驾驶是造成交通事故的主要原因之一,根据公安部交通管理局发布的2009年全国道路交通事故情况显示,2009年,全国共发生道路交通事故238 351起,造成67 759人死亡、275 125人受伤,直接财产损失9.1亿元,其中疲劳驾驶造成的事故占一定比重。减少疲劳驾驶可以降低公共财产和个人人身财产损失,因此研究防疲劳驾驶系统具有重要的意义。
国内外有许多研究防疲劳驾驶监测系统,就目前来看,防疲劳监测系统并没有实现市场化原因有两点:一是各种方法都有一定的缺陷,比如用肤色变换提取人脸定位人眼的方法和灰度图像积分投影的方法因受光照影响,定位不准确;二是运行时间慢,达不到实时监测。针对此两点不足设计了本系统。
本系统用轴上和轴外的不同波长的近红外光采集图像,根据亮瞳效应分别能得到亮瞳孔图像和暗瞳孔图像,差分后快速定位人眼,用模板检测提取人眼边界,判断疲劳状态。系统的创新点是人眼定位方法简单准确,疲劳判断标准全面快速。
1 疲劳状态检测原理
1.1 人眼睁开程度检测原理
人的眼睛是一个精巧的光学成像系统,可以简单地把人眼抽象成一个光学模型,晶状体等效为一个凸透镜,视网膜看做一个光屏。进入人眼的光线是通过晶状体后成像于视网膜上,并且光线能被视网膜反射出去。根据人眼的特性,设计出有效的光源使采集到的图像出现亮瞳孔和暗瞳孔。
亮瞳效应(bright eye effect)[1]是美国著名的学者Hutchinson在眼睛运动检测专利中提出的,当靠近摄像头光轴的红外光源照射到人脸时,视网膜反射光会使瞳孔显得很亮就是所谓的亮瞳效应,当然眼角膜也会反射光,会在眼球上出现比较小的亮点(glint)[2],如图1所示。经过试验发现,出现亮瞳孔的亮度主要跟三个因素有关:离摄像头光轴的距离、光源的波长、光照强度。距离摄像头光轴的距离越近,反射光就越多进入摄像头,瞳孔就会显得越亮。人眼瞳孔对近红外光有较高的透射率,而人眼视网膜对不同的波长的光具有不同的反射量,对850 nm的红外光能把90%的入射光反射回去,对950 nm的红外光能把40%的入射光反射回去[3]。因此靠近摄像头轴上的光源选择850 nm的红外光较好,容易产生亮瞳孔,轴外的光源选择950 nm的红外光较好,会出现暗瞳孔。由于外界可见光会影响到亮瞳效应,因此在摄像头上会加上近红外滤光片,考虑到成本和使用效果用830 nm的高通滤光片就可以了。结合光源的光照强度和摄像头的视角,本系统的使用范围在40 cm~1 m之间,经过测试可以满足在汽车中的使用。
1.2 人眼疲劳状况监测原理
系统主要是靠人眼的闭合程度和持续的时间来判断驾驶员是否疲劳,采集到的图像人眼只会存在三个状态分别是:完全闭合、正常睁开、半睁半闭(眯眼的情况)。系统必须根据不同状态出现的时间来判定疲劳状态。
当眼睛完全闭合时,采集的两帧图像并没有亮瞳孔和暗瞳孔之分,不好定位人眼,这时将检测不到人眼作为一个特征来处理。连续5次都检测不到人眼说明人眼一直处于闭合状态,证明驾驶员疲劳了,这时启动报警系统提醒驾驶员。
大多数情况下,采集到的图像都是人眼睁开的状态(包括正常睁开和眯眼),采用PERCLOS法判断驾驶员的疲劳状态。到目前为止PERCLOS法是判断眼部疲劳状态的最有效的方法[4],PERCLOS是单位时间内眼睛闭合所占时间的百分比[5],比较科学的就是P80,即眼睛闭合80%所占时间的百分比。由于每个人的眼睛大小都不一样,不能用同一阈值去判断眼睛是否闭合了80%,通过图像处理得到的参数是眼睛的高宽比h(t),设定每次系统启动后把前10次得到的参数h(t)都存到一个数组A[10]中,然后在数组A[10]中找到最大的Amax存储到一个固定的地址中,以后每次得到一个高宽比h(t),人眼闭合程度p(t)就可以如式(1)求出:
在此系统中PERCLOS定义为5 s人眼闭合80%以上的帧数占图像总帧数的百分比。当PERCLOS大于40%时判定驾驶员疲劳,启动报警系统提醒驾驶员。
2 驾驶员疲劳状况监测系统的研制
2.1 硬件系统
设置在驾驶员前方的摄像机实时获取驾驶员脸部视频图像,经过视频解码器转换成数字图像,经微处理器送入数据存储器。本系统通过控制电源转换开关,从而获取两种不同波长光源照射的脸部图像,通过软件处理能够快速确定人眼位置。为本系统编写的应用程序存放在程序存储器中,系统上电时,通过引导程序将存放在程序存储器中的应用程序自动引导至微处理器中的数据存储区。当系统判定驾驶员处于驾驶疲劳状态时,通过蜂鸣器给予警示。该系统功能框图如图2所示。
2.2 软件系统
软件系统流程图如图3所示,利用亮瞳效应,轴上和轴外不同波长的交替使用会得到两帧瞳孔亮度差距很大的图像,由于采集两帧图像的时间间隔非常短,只有20 ms,基本上驾驶员的位置没有什么变化,所以两帧图像除瞳孔外,别的地方亮度差距不大。先对两帧图像中值滤波后,再差分,会得到瞳孔位置很突出的差分图像,粗定位眼睛的位置,根据眼睛的特征设置模板,提取出人眼的边界,最后计算PERCLOS值判断驾驶员的疲劳状态,当差分后找不到一对瞳孔时说明采集的两帧图像人眼都是完全闭合的,出现这种状况时把找不到瞳孔作为一个特征来处理,连续出现找不到瞳孔时系统判定人眼一直闭合,判定驾驶员已经疲劳,启动蜂鸣器提醒驾驶员。
2.3 系统模块
本系统分为4个模块,分别为:图像采集模块、图像处理模块、疲劳判断模块和报警系统模块。
评论