驾驶员状态以及驾驶行为相结合的疲劳驾驶检测系统
【论文】:Fatigue Driver Detection System Using a Combination of Blinking Rate and Driving Inactivity
提出的方法
使用驾驶员状态以及驾驶员行为指标的组合,构建疲劳驾驶检测系统。
- 驾驶员状态:系统监控眨眼频率和眨眼持续时间。疲劳驾驶的眨眼频率以及持续时间相对高于正常水平。
- 驾驶行为:从惯性测量单元(IMU)和油门踏板传感器获取车辆状态。
使用主成分分析(PCA)挑选高方差的成分。方差值用于区分疲劳驾驶员,认为这些驾驶员比正常驾驶员具有较高的驾驶活动。
系统概述
系统主要基于驾驶员状态和驾驶行为两个指标设计的。系统由两部分组成:1)检测眼部动作,2)检测驾驶员行为。如图1:
![](https://img.haomeiwen.com/i5836316/e1c9d3bf71eaf05c.png)
A.基于眼部动作的疲劳检测
眨眼检测处理流程包括一下几个步骤:
- 面部和眼部检测
- 眼部追踪
- 闭眼检测以及计算眨眼频率
![](https://img.haomeiwen.com/i5836316/a99ddfea80a1f5e1.png)
眨眼检测以及眨眼持续时间分析
我们利用颜色特征检测眼睛闭合,将眼睛ROI(Region of Interest)图像的颜色空间由RGB转换为HSV,然后将图像分割为V通道,检测ROI图像亮度的变化。当用户的眼睛从睁开状态变为闭合状态时,会导致亮度增加,因为闭眼状态下黑眼的大小小于开眼状态,所以开眼状态下的亮度值小于闭眼状态。如图3:
![](https://img.haomeiwen.com/i5836316/dd932fe59f8e7515.png)
将眼睛ROI图像的颜色空间从RGB转换为HSV后,我们可以得到亮度值(HSV中的V值),并将其绘制在时间轴上,如图4:
![](https://img.haomeiwen.com/i5836316/93153565b3711c6e.png)
根据图4中的亮度值,我们可以通过图5中的流程图检测眨眼并计算眨眼持续时间。该算法的目标是寻找V值的陡坡,并将其定义为转折点。首先,我们会找到爬坡(斜率为正),如果斜率大于“Th_close”,系统将把他判定为闭眼状态,并增加闭眼持续时间,直到下坡(斜率为负)的斜率大于“Th_open”,系统将停止增加闭眼持续时间。然后,系统将会继续寻找闭眼以及V值的陡坡。
![](https://img.haomeiwen.com/i5836316/2b4192994f1b46ab.png)
对于眼睛状态,是通过用阈值与测试的“V值”相比较来定义的,判定眼睛状态的公式如下:
![](https://img.haomeiwen.com/i5836316/f50d51d888e8906a.png)
B.基于驾驶行为的疲劳检测
基于驾驶行为的疲劳驾驶检测处理过程包含以下几个步骤:
i) 从传感器获取数据;
ii) 按照图6的步骤分析驾驶员的驾驶行为。
![](https://img.haomeiwen.com/i5836316/a2e5e36ed594cd7a.png)
1) 获取传感器数据
力阻传感器安装在加速踏板上。传感器根据接收到的力输出电压值。当驾驶员不踩踏板时,输出电压为0V,当驾驶员对踏板施加全部力时,输出电压为3.3V,电压的变化反映了踏板的运动。我们将其作为输入来构建驾驶行为模型。
![](https://img.haomeiwen.com/i5836316/3657987998665ea2.png)
汽车的运动是由FreeIMU模块测量的。FreeIMU模块由加速度计、陀螺仪以及罗盘组成,其信号包括以下9个参数:i) 陀螺仪的三轴参数;ii) 加速度计的三轴参数;iii)磁场的三轴参数。传感器数据划分为两组:训练数据和测试数据。
2) 分析驾驶员驾驶行为
![](https://img.haomeiwen.com/i5836316/59ec80a7fe8a9eeb.png)
根据从电阻传感器和FreeIMU模块(采样率为1ms)采集的数据,采用主成分分析法对数据进行简化,建立疲劳驾驶识别模型,对驾驶员的驾驶行为进行分析。为了分析驾驶员的驾驶行为,包括两个步骤:i)从训练数据中计算平均值、标准偏差和系数值,用于对驾驶员陈述进行建模;ii)使用训练数据的平均值、标准偏差和系数计算测试数据的方差。我们可以通过图8中的流程图计算平均值、标准差和系数值。
![](https://img.haomeiwen.com/i5836316/caf3c706c6bfc503.png)
疲劳驾驶识别如图9所示。首先,利用z-score对来自传感器和FreeIMU模块的数据进行归一化,然后通过主成分分析对数据进行分析,以减少数据的维数。然后,利用训练数据的均值、标准差和系数值,计算主成分分析(PCA)的变量得分方差。最后,选择5列的组合方差。当组合方差大于阈值时,该算法将驾驶状态判断为正常状态。但是,当组合方差小于阈值时,该算法把驾驶状态判断为疲劳状态。
实验和结果
图10显示了在60s的测试视频中检测到眼睛闭上和睁开的时间间隔。图中只显示峰值的时刻。
眨眼检测结果如图11所示,其中高值表示检测到眼睛闭合,低值表示检测到眼睛睁开。眨眼的持续时间也可以计算出来。在视频捕捉过程中,由21次眨眼,其中一次在21s到25s之间,眨眼持续4s。
![](https://img.haomeiwen.com/i5836316/e21d6ddec34cd8a0.png)
![](https://img.haomeiwen.com/i5836316/133961b917f8ed32.png)
在相同位置和驾驶模拟视频中,眨眼检测结果如表1所示:
![](https://img.haomeiwen.com/i5836316/d415d60ac3f7bedb.png)
![](https://img.haomeiwen.com/i5836316/12fd7cffd42bcbef.png)