基于PERCLOs的驾驶疲劳检测系统
2018-08-15刘英
刘 英
(呼和浩特职业学院,呼和浩特 010051)
随着科技水平的不断发展,机动车辆与日俱增,随之产生的人身安全问题越来越受到人们的关注。据统计,全世界每年因交通事故导致的死亡人数达60万,直接经济损失约125亿美元,这些事故中57%的灾难性事故与驾驶员疲劳驾驶有关[1]。可见驾驶员的疲劳驾驶是引发交通事故的重要原因之一,因此开展驾驶疲劳检测相关技术的研究,将在很大程度上减少交通事故的发生,具有重要的社会意义和经济价值。
目前,世界各国已经有多种驾驶疲劳的检测技术,常用疲劳检测方法有脉搏跳动检测、脑电图检测、心电图检测、头部位置检测以及PERCLOs法等,综合考虑可靠性、实时性、舒适性和实用性等多方面的性能,PERCLOs法的性能最好。本文将构建一种基于PERCLOs方法的驾驶疲劳检测系统,检测驾驶员的疲劳状态,实时地发出报警,进而避免交通事故的发生。
1 检测原理
本文构建的系统中选择PERCLOs(Percentage of Eyelid Closure Over the Pupil Over Time)算法。其中,PERCLOs的P80(单位时间内眼睛闭合程度超过80%以上的时间占总时间的百分比)与驾驶疲劳程度的相关性最好。
PERCLOs算法的测量原理如图1所示,通过测量出t1~t4,人们根据式(1)就能计算出PERCLOs的值。
式中,f为眼睛闭合时间的百分率,即PERCLOs值;t1为眼睛最大瞳孔闭合到80%瞳孔所用时间;t2为眼睛最大瞳孔闭合到20%瞳孔所用时间;t3为眼睛最大瞳孔到下一次20%瞳孔睁开所用时间;t4为眼睛最大瞳孔到下一次80%瞳孔睁开所用时间。
图1 测量PERCOLS值的原理
当系统检测到PERCLOs值大于80%,眼睛持续闭合时间大于3s时,即认为驾驶员处于疲劳状态,属于疲劳驾驶。
2 检测系统的硬件系统
本文中检测驾驶疲劳的系统,选择了1394数字图像采集卡作为硬件平台,并选择了Guppy系列的CCD摄像机,安装到实验室计算机上组成驾驶疲劳检测的硬件系统。该检测系统的硬件系统能够实现每秒20帧图像以上的处理速度,能够实现机动车驾驶员驾驶疲劳的实时检测。
3 算法实现
本系统中用摄像机实时抓取驾驶员的脸部图像,通过图像处理方法得到眼睛图像,并对所得的图像进行分析和识别,确定驾驶员眼睛当前的状态,进而识别驾驶员的疲劳状态。
驾驶疲劳检测主要包括采集图像、图像预处理、人脸定位、人眼定位、眼睛面积计算、PERCOLs值计算和疲劳程度识别。其中,图像预处理主要包括图像灰度化处理、二值化处理等。它们主要是为了降低噪声对图像的影响,确保图像的质量,这是实施人脸定位的前提。
本文将摄像机采集的原始图像转换成YCbCr颜色空间,再运用YCbCr颜色空间中肤色的聚类性进行人脸检测。根据肤色在颜色空间的高斯模型,计算像素点属于肤色区域的概率,即根据该像素点离高斯分布中心的远近得到肤色的相似度(所得图像中的每个像素点的灰度值表示该点属于肤色区域的概率),其计算公式为[2]:
式中,m为均值,m=E(x),x=(Cb,Cr);C为协方差矩阵,C=E[(x-m)(x-m)T]。
在计算出肤色的相似度P(Cb,Cr)后,将其乘以255,以灰度来表征像素点属于肤色区域的概率,进而得到了肤色的相似度图。在所得到的相似度图中,其灰度值的大小就表示该区域可能为人脸的概率大小,灰度值越大则可能为人脸的概率越大(即越亮的区域就越接近皮肤的颜色),反之则为人脸的概率越小。在经过肤色相似度计算之后,并且已经得到肤色的高斯模型后,再对图像进行二值化,检测出人脸区域。在进行二值化时,应该选取合适的阈值将相似度灰度图像进行二值化,一般利用YCbCr的肤色模型的阈值来生成二值图像。
当像素的色度值(Cb、Cr色度分量值)落入在给定的肤色模型的阈值范围内时,像素的灰度值取为1(即为肤色区域);反之,像素的色度值(Cb、Cr色度分量值)超出肤色模型的阈值范围时,像素的灰度值取为0(即为非肤色区域)。
4 结论
试验证明,本文所采用的硬件和软件系统能够达到驾驶员疲劳检测的实时性要求,并且可以较为精准地定位出人眼的位置和计算出人眼面积,最终做出驾驶员疲劳与否的判定,可以验证PERCLOs算法的准确性。
但是,本文所构建的系统还存在一些不足:当驾驶员的头部没有面向正前方,或是未能对准摄像头,会导致驾驶疲劳检测的准确率下降;驾驶室内的照明条件会导致驾驶疲劳判断的准确率下降;驾驶员睡觉眼睛不能完全闭合以及驾驶员佩戴眼睛等,均会导致驾驶员疲劳检测的准确率下降。介于该系统所存在的种种不足,人们还需在今后的驾驶员疲劳检测研究中进一步克服。