驾驶员疲劳检测报警系统的研究设计
2012-10-17陆二庆杨伟亮
陆二庆 杨伟亮
桂林理工大学信息科学与工程学院 广西 541004
0 引言
本文利用TMS230DM642处理器设计了驾驶员疲劳检测报警系统。该系统具有非接触式、实时性、准确性的特点。采用被动视觉的PERCLOS疲劳检测方法,从普通CCD摄像头获取驾驶员实时图像,利用TMS230DM642强大的多媒体处理能力提取驾驶员的眼部特征,提取驾驶员眼睛的闭合度,根据计算得到的PERCLOS值来判断司机是否驾驶疲劳,如果条件满足则报警提示。
1 系统硬件功能分析和设计
1.1 TMS230DM642处理器性能分析
TMS230DM642(DM642)是基于TI开发的第二代高性能处理器,先进的VelociTI技术的VLIW结构,使该处理器成为数字多媒体的极好地选择。DM642在主频720MHZ下处理速度能达到 5760MIPS。从驾驶员疲劳检测报警系统的实时性来说,一般人在正常情况下每分钟会眨眼10-15次,随着人的疲劳程度增加眨眼次数也会有所提高,因此若要很好的捕捉到眨眼的过程,对视频源的采样至少要达到每秒 10帧,即要求系统在 100ms内完成对图像的分析处理,对于DM642强大的多媒体处理能力来说,完全能够胜任。
DM642是建立在C64XDSP核之上的,C64DSP核具有64个32位字长的通用寄存器和8个独立的功能单元,其中包括2个结果为32位的乘法器和6个ALUS,这种结构是velociTI1.2的升级版。velociTI1.2升级版在8个功能单元里面包含了新的指令,可以在视频和图像应用方面提高性能,同时该版本对velociTI架构进行扩充。DM642使用两级存储,一级程序缓存L1P是一个128Kbit的直接映射缓存,另一个数据缓存L1D是一个128Kbit双路结合设置缓存。L2存储器能被配置成映射存储器、高速缓存或者两者结合。1个64位的 EMIF,可以与同步异步存储器和外围设备相连,很好的满足视频图像处理时对存储空间的需要。同时,DM642具有3个可配置视频端口(VP0,VP1,VP2)。这些视频端口给公共视频编解码设备提供了直接接口。DM642视频端口支持多种解决方法和视频标准。可见使用 DM642作为驾驶员疲劳检测报警系统的核心处理器完全合适。
1.2 系统结构框图
驾驶员疲劳报警系统共包含五个功能模块,它们分别是电源模块、图像采集模块、报警模块、图像处理模块、扩展存储模块。系统的硬件结构图如图1所示。
图1 系统硬件结构图
1.3 图像采集模块
系统图像采集模块由一个普通 CCD摄像头和一个视频解码芯片组成。CCD摄像头获取驾驶司机的脸部视频图像,通常是PAL制式或者NTSC制式的模拟信号,通过Phlips公司的视频解码芯片SAA7113H将其转换为标准的ITU-656 YUV 4:2:2(8 bit )信号。DM642 片内的(VP0、VP1、VP2)可以用作视频捕获端口、视频传输端口、视频显示端口。每个视频在捕获模式可以采用ITU-656 YUV 4:2:2(8 bit )信号。SAA7113H是Philips公司的9位视频模数转换(ADC)芯片,输入可以被配置成4路CVBS或2路S视频 (Y/C)信号,对所选的CVBS(或Y/C)通道进行编程可实现静态增益控制或自动增益控制,且有两个内置的模拟抗混叠滤波器。其输入兼容 PAL,NTSC,SECAM 多种制式,可以自动检测50 Hz或60 Hz的场频在PAL、NTSC制式之间切换,输出为标准的ITU-656 YUV 4:2:2(8 bit)信号。图像采集模块的组成框图如图2所示。
图2 图像采集模块组成框图
1.4 开发板分析
通过开发板前期的实验平台,可以大大的缩短嵌入式系统的开发周期。本系统采用 vision Magic Corporation的TMS320DM642 增强型开发板 VMD642-C,该开发板是一款专门为视频处理应用设计的。该开发板采用 TI 公司的tms320dm642agdk 媒体处理芯片,主频 600MHz,具有四路实时复合视频处理能力,同时它还具有 32M 字节的外部RAM和4M字节外部Flash存储器。它拥有四路音频实时采集及处理能力和一路音频编码输出,很好的满足音频功能的实验。它同时还拥有多种外部接口包括 10/100M 以太网接口、RS232 和 RS485 接口,以及8个GPIO 接口,它使用CPLD的异步存储器地址扩展。该开发板同时具备JTAG仿真接口。对于驾驶员疲劳检测报警系统,在设计定型以后可以裁减掉不需要的接口,重新设计电路板,以达到缩小系统的物理体积和降低应用成本的目的。
2 系统软件部分设计
系统的软件部分主要分两大关键部分的设计,一是对CCD摄像机捕获的视频图像中人脸的识别,以便缩小人眼的搜索范围,本系统采用基于肤色检测人脸的方法,在缩小的视频范围内检测人眼的状态,通过基于PERCLOS 的P80模型来判定驾驶司机是否处于疲劳状态,系统的整个功能流程如图3所示。
图3 系统流程图
2.1 驾驶疲劳检测算法
系统从 CCD相机获取一帧的视频图像以后,按照基于肤色检测人脸的方法,利用人的肤色中 Cr和 Cb的聚类特性,在 YCbCr色彩空间中检测人脸是否存在,若不存在,则继续读取下一帧图像。若人脸存在,则提取人脸头像的上半部分区域缩小人眼的搜索范围。采用基于眼睛图像灰度信息对人眼进行定位。当完成对人眼的定位后,利用动态模板匹配的方法跟踪眼睛的位置,同时提取眼睛的上下距离,计算眼睛的闭合度,若计算得到的PERCLOS大于阀值,则判定驾驶员疲劳,报警提示,否则继续进入下一帧图像的处理。
人脸检测的过程:通过对人脸数据库和人脸视频图像中黄种人人脸肤色点的采样进行分析,可得到实验环境下肤色在YCbCr空间中的聚类,用数学表达式确定肤色范围的方法进行肤色建模。可根据Chai采用 YCbCr颜色空间的 CbCr平面,如果某像素点的颜色落入Cr=[133:173]和Cb=[77:127]范围内,就认为是属于肤色像素,否则就认为是非肤色像素。将肤色区域调整为白色,非肤色区域调整为黑色。通过对图像二值化从而界定人脸的大致范围。
人眼的定位和跟踪过程是,人的眼睛区域和周围区域相比,具有灰度值偏低和灰度值偏大的特点,经过实验发现在灰度值突变处进行微分,将产生高值,将其绝对值累加,则灰度变化越大那一行,累计值越大,而眼睛处的导数变化值之和是最大的,通过这一特点可以大致定位眼睛的位置。眼睛周围Cb值较高,而Cr值较低,可以由此得到人眼的特征图,进而精确定位人眼。完成人眼的定位后,再通过动态模板匹配的方法跟踪眼睛。
2.2 基于Perclos的疲劳判定
实验表明眼睛的闭合时间可以一定程度的反应疲劳,在此结论基础上,卡内基梅隆研究所经过反复实验和论证,提出了反应疲劳/瞌睡的物理量PERCLOS(Percentage of Eyelid Closure over the Pupil ,over Time, PERCLOS),其定义为,单位时间内,眼睛所闭合一定比例所占用的时间。美国国家公路交通安全管理局(NHTSA)和美国联邦公路管理局(FHWA),在实验室中模拟驾驶,完成了九种疲劳检测指标的比较,结果表明PERCLOS与驾驶疲劳的相关性最好。PERCLOS有三个评价标准P70标准、P80标准和EM(EYEMEAS)标准,其中P80标准被NHTSA认为是与疲劳程度相关性最好的。因此,本文采用P80标准作为驾驶员疲劳判定的标准。如果满足下面的公式就认为发生了瞌睡:
本文中设定采样周期为10fps,通过上述算法对每帧图像进行眼睛闭合度的计算。如果连续的n帧内,眼睛闭合度超过80%的帧数为m,那么PERCLOS可表示为:
如果该值超过实验规定的阀值,则认为驾驶员已经疲劳,发出声音警报!
3 实验结果
实验以VMD642-C作为实验平台,抽取了5名驾驶员在白天和夜晚的各3分钟,共30分钟视频作为实验样本,摄像头的采样频率设定为10fps,在采集的17998帧图像中,驾驶员的人脸左右偏转角在±20°以内、上下偏转角在±15°以内的白天图像有8790帧,夜晚有8780帧,其他较大角度白天为213帧,晚上为217帧。实验结果如表1所示。
表1 疲劳检测准确率
4 结语
本文以TMS230DM642为核心处理器设计了驾驶员防疲劳报警系统,系统能够做到非接触,实时检测驾驶员的疲劳状态,在白天一定角度内具有较高的疲劳检测准确率。同时给出了系统的部分硬件功能框图和系统软件核心算法的介绍。该系统具有较高的经济性,但是在光照条件不足的晚上,疲劳检测准确率明显降低,有待进一步的提高。
[1]上半年全国道路交通事故主要呈现五点.http://www.gov.cn/gzdt/2010-07/13/content_1653118.htm.2010.
[2]钟国.驾驶疲劳检测技术的研究[D].合肥工业大学.2009.
[3]张进明,胡伟,杜彬.基于 TMS320DM642和 Philips视频编解码芯片的视频处理系统[J].微计算机信息.2009.
[4]王瑜,胡记文.基于 3G 视频的驾驶员疲劳状态检测方法[J].电子科技.2011.
[5]赵有灵,吴文娴,高政,陈学文.基于TMS230DM643的驾驶疲劳实时视觉检测系统[J].计算机应用.2011.