APP下载

基于FPGA的多特征融合司机疲劳状态检测系统设计*

2013-10-22曲仕茹彭纪昌

传感器与微系统 2013年5期
关键词:嘴巴人脸投影

曲仕茹,彭纪昌

(西北工业大学自动化学院,陕西西安 710072)

0 引言

随着我国经济建设的蓬勃发展,城市的人口和机动车保有量也在急剧增长,交通流量日益加大,交通拥挤堵塞现象日益趋于严重,交通事故时有发生,交通安全问题更是严重威胁着人们的生命财产安全。驾驶员的疲劳驾驶已经成为造成交通死亡事故的重要原因,因此,开发出一种驾驶员疲劳检测和警示系统来避免由于驾驶员因疲劳而导致的交通事故很有必要[1]。

目前,利用驾驶员视觉信息进行疲劳检测方法主要有以下几种:1)头部位置监测方法;2)眼部状态监测方法;3)瞳孔特征监测方法;4)视线跟踪监测方法;5)嘴巴状态监测方法[2]。上述这些方法通常关注于单一的视觉特征,虽然能较成功地运用计算机视觉技术提取驾驶员的视觉特征信息,但其准确性、实用性不高。例如:当驾驶员带着墨镜时,使用单一的眼睛特征便很难得到正确的结果。如果能将这些方法系统地组合使用就能得到准确的结果,多个视觉特征的融合已经成为疲劳驾驶检测的一种发展趋势。

本文设计了一种融合眼睛和嘴巴2个疲劳特征的检测方法,最终通过实验得出该检测算法较单一疲劳特征的检测算法有更高的检测率和更好的检测效果。

1 系统的硬件实现

系统总体流程可以描述为:首先,通过摄像头动态获取驾驶员的图像,将驾驶员图像数据传送到系统的存储器中;然后,通过人脸检测算法定位出其中的人脸图像,经过运算处理得到人眼图像并判断其状态;最后,通过疲劳检测算法判定驾驶员是否疲劳[3]。为了实现这些功能,系统除了基本的接口单元,还需要一些必要的储存空间扩展和辅助的资源。概况地说,系统主要包括图像传感器、液晶显示屏、外扩存储器以及带有嵌入式处理器的现场可编程门阵列(FPGA)系统版。FPGA芯片集成相应的NiosⅡ软核处理器,将部分图像处理算法在FPGA内部以硬件的形式实现,将其余的算法通过NiosⅡ软核处理器通过软件来实现,系统的结构框图如图1所示。

图1 疲劳检测系统流程图Fig 1 Flow chart of fatigue detection system

2 系统的软件实现

本文设计的检测算法需要通过检测人眼和嘴巴的状态来进行疲劳的判定。人眼和嘴巴定位的基本方法是先确定人脸大致位置,再定位人眼和嘴巴。本文改进了一种人眼和嘴巴的定位方法,首先将提取出的人脸图像利用图像的垂直灰度积分投影曲线,根据凸峰宽度确定人脸的左右边界,然后利用人脸区域的水平灰度积分投影曲线确定眉眼区域和嘴巴区域形成的波谷,将人脸图像的范围缩小在双眼区域和嘴巴区域,如图2。

图2 灰度投影用于区分人脸的左右边界Fig 2 Gray projection used for distinction of left and right borders of face

根据图像预处理模块得到人脸二值化的图像,设图像为I(x,y),其大小为W×H,则该图像的垂直灰度投影函数为

式中PW称为垂直灰度投影曲线。为了去除噪声的影响,平滑处理函数为

式中K为滤波窗口的宽度,其取值与人脸图像大小有关,本文中K取值为8。以图中的人脸图像为例,其平滑前后的垂直灰度投影曲线如图3所示。

确定了人脸的左右边界之后,需要确定眼睛和嘴巴的水平位置,设人脸左右边界宽度为w,则此时的图像大小为w×H,同样对该图像区域的水平灰度投影函数为

图3 人脸垂直灰度投影曲线Fig 3 Vertical gray projection curve of face

式中PH称为水平灰度投影曲线。为了去除噪声的影响,采用与式(2)类似的方法对PH进行平滑

L的取值跟人脸在图像中的大小有关,实验中取L=8。以图2的人脸图像为例,平滑后的水平灰度投影曲线如图4。

图4 人脸水平灰度投影曲线Fig 4 Horizontal gray projection curve of face

如图5所示,算法可以准确地检测出人的眼睛和嘴巴的位置,并且可以进一步提取出眼睛和嘴巴的宽度和高度(以像素为单位),求出宽高比,为下文眼睛和嘴巴状态的确定打下基础,进而完成疲劳的判定[4,5]。

人在有明显疲劳症状时眨眼持续时间明显增大[6],根据实验数据绘出的眼睛宽高比曲线图如图6(a),(b)所示,由不疲劳状态进入疲劳状态的眨眼持续时间如图7所示。

疲劳发生时眨眼速度明显变慢,在不疲劳阶段眼睛“开—闭—开”的过程只需要几帧到十几帧的时间,时间在0.5 s以内,而疲劳时则需要10帧或以上的时间,即需要0.5 s以上,而在不疲劳的时候,眨眼持续时间也有可能在0.5 s以上,但是却不会长时间持续,如图7中的t3,t4时刻。

图5 提出的眼睑和嘴巴图像Fig 5 Extracted eyelids and mouth image

图6 眼睛宽高比变化曲线Fig 6 Aspect ratio variation curve of eye

图7 眨眼持续时间变化曲线Fig 7 Curve of blink duration

3 实验一

实验是在室内模拟驾驶条件下进行的,被测者头部放松左右旋转不超过15°,无大幅度的左右前后移动;实验结果如表1所示。实验结果显示眨眼频率高于20次/min,或者眨眼持续时间大于0.5 s以及打哈欠频率大于2次/min,即可判断属于疲劳。如图8所示,当系统判定为疲劳状态时,通过LED灯的点亮与蜂鸣器的不断蜂鸣提醒驾驶员不要疲劳驾车。从实验结果可以看出:系统可以检测出所有的疲劳状态,在实验条件下检测效率为100%。

表1 实验一结果(部分检测数据)Tab 1 Results of the first experiment(partial detection datas)

图8 疲劳检测Fig 8 Fatigue detection

4 实验二

正常状态下的系统实验已经完成。考虑到在实际应用的过程中可能会出现的一些特殊状态。本文设计了一组特殊状态下的实验,在这组实验中被检测样本通过佩戴墨镜,来进行对疲劳的检测,通过该组实验验证多特征融合系统的检测优势。

当被检测样本佩戴墨镜时,相应的疲劳特征就无法检测出来,本文所设计系统融合了眼睛和嘴巴2种疲劳特征可以通过另外的疲劳特征进行疲劳的判定。如图9(a)中图当驾驶员眼睛有遮挡物体无法检测到驾驶员的眼睛状态,而在图4(b)使用本文所设计的多特征融合的疲劳检测算法,通过检测驾驶员的打哈欠频率辅助进行疲劳的判定对比检测结果如表2,成功地检测出了驾驶员的疲劳状态。

图9 对比检测Fig 9 Contrast detection

5 结论

本文设计了一种多特征融合来进行疲劳检测的检测算法,并且在FPGA上进行了实现。该检测算法检测速度较快、抗干扰性强,满足全天候的车载使用要求。从实验结果可以看出:本文所设计的基于多特征融合的疲劳检测算法,较之传统的单一特征疲劳检测算法拥有更高的检测率、抗干扰能力更强。

表2 实验结果Tab 2 Experimental results

[1] 黄博学.汽车驾驶员疲劳实时识别与监测系统研究[D].长沙:长沙理工大学,2008.

[2] 张 恒,刘艳丽.基于视觉信息融合的驾驶员疲劳监测方法综述[J].信息技术,2008(6):8-11.

[3] Meyer-Baese U.Digital signal processing with field programmable gate arrays[M].3rd ed.New York:Springer Berlin Heidelberg,2007.

[4] Dai J,Zhang J.Information fusion system with wireless transmission for monitoring the status of driver[C]∥2007 The Second IEEE Conference on Industrial Electronics and Applications,2007:2670-2673.

[5] 吴康华.基于PERCLOS的驾驶疲劳检测系统设计[D].杭州:浙江大学,2008.

[6] Viola P,Robust J M.Real-time object detection[J].International Journal of Computer Vision,2004,57(2):137 -154.

猜你喜欢

嘴巴人脸投影
有特点的人脸
一起学画人脸
解变分不等式的一种二次投影算法
嘴巴嘟嘟
基于最大相关熵的簇稀疏仿射投影算法
嘴巴不见了
找投影
找投影
好好的嘴巴
三国漫——人脸解锁