基于智能手机的汽车驾驶员困倦检测与预警系统
摘要
本文提出了一种基于智能手机的汽车驾驶员困倦检测系统。该框架采用三阶段疲劳检测方法。第一阶段通过前置摄像头捕获的图像,利用改进的眼睛状态分类方法获取眼睑闭合百分比(PERCLOS)。系统在夜间驾驶时使用近红外照明来照亮驾驶员面部。第二阶段在PERCLOS超过阈值时,利用麦克风采集的语音数据中的有声与无声比值进行判断。第三阶段作为最终验证,要求驾驶员在规定时间内作出触控响应,若未响应则判定为困倦并触发警报。设备会记录各项指标的周期性事件日志文件,并附带相应的GPS坐标。本系统相比现有疲劳检测系统具有三个优势:首先,三阶段验证过程使系统更加可靠;其次,系统实现在安卓智能手机上,相较于其他通用嵌入式平台,大多数驾驶员或出租车车主更容易获得;第三,系统可通过短信服务向控制室及乘客通报驾驶员注意力丧失的情况。该框架的嗜睡状态分类准确率达到93.33%,而单阶段方法仅为86.66%。
一、引言
在单调的驾驶条件下长时间驾驶常常会导致驾驶员出现困倦和精神疲劳[1]。睡眠不足是导致困倦和疲劳的另一个原因,可能会引发道路事故及相关意外[2]。因此,有必要监测驾驶员的疲劳程度,并在需要时发出警报。
A. 研究工作的动机
大多数现有解决方案通过单一线索来解决驾驶员困倦程度的估计问题。一些系统需要专用硬件,这限制了它们在普通人群中的使用。
在我们之前的研究[3]中,我们开发了一种基于图像的嵌入式平台,仅通过眼睛闭合率来检测汽车驾驶员的困倦情况,解决了车载照明条件、驾驶员头部运动等问题。该方法[3]相比仅依赖PERCLOS的类似方法具有显著更高的准确性。然而,单一基于图像的线索的可靠性可能并非极其稳健。这一因素促使我们采用Dhupati et al.[4]的研究成果,将语音信号与PERCLOS相结合,以提高系统的有效性。
此外,如果嵌入式平台是智能手机,只需安装应用程序,该系统便可覆盖更广泛的用户群体。智能手机具有使用蜂窝数据和网络进行通信的额外优势,从而使系统能够向控制室发送警告信息。这一通信功能将帮助出租车车主记录其驾驶员的困倦程度,并对驾驶员采取必要措施。此类实施可作为预防因困倦或疲劳导致事故的工具,适用于每一辆汽车。
B. 本工作的目标
本工作的目标是利用三阶段过程开发一种基于智能手机的疲劳检测解决方案。各阶段如下:
- 阶段一 使用智能手机的前置摄像头捕获图像,计算PERCLOS。
- 阶段二 当PERCLOS达到阈值时,计算有声与无声比率(VUR)。
- 阶段三 设计反应时间测试作为最终阶段验证器。
C. 提出的方法的优势
所提出的实现方法具有诸多优势,例如:
- 如今智能手机非常普及,因此驾驶员或车主无需像现有解决方案那样购买额外硬件。
- 智能手机配备了用于图像和语音数据采集的高保真传感器,无需连接外部附加设备。
- 利用智能手机中的蜂胞网络和互联网功能,紧急情况可以通过短信和相关在线服务轻松处理。
D. 相关工作回顾
1) 基于PERCLOS的疲劳检测
基于PERCLOS的框架遵循面部和眼睛检测后进行眼睛状态分类的流程。最早关于基于PERCLOS的疲劳检测报告之一是卡内基梅隆驾驶研究中心的Grace等[5]所开展的工作。他们提出了一种框架,通过视网膜反射对重型车辆驾驶员的PERCLOS进行计算,并用于眼睛状态的分类。Ji等[6]开发了一种使用远程电荷耦合器件(CCD)相机和主动红外照明器的疲劳检测系统。他们声称该系统具有合理的鲁棒性、可靠性和准确性,因为主动红外技术有助于通过角膜反射有效定位瞳孔中心。
然而,这两种实现方式的主要问题是使用主动红外照明,在长时间暴露下会对眼睛造成刺激[7]。Hong和Qin[8]在利用Haar分类器完成面部和眼睛检测后,采用CAMSHIFT算法跟踪眼睛,并计算PERCLOS。他们定义了一个新的复杂度函数,用于眼睛状态的分类。然而,该函数高度依赖光照条件,因为它仅考虑灰度强度。Lang和Qi[9]将PERCLOS与平均眼睑闭合率相结合,以评估驾驶员的困倦程度。其面部和眼睛检测算法采用肤色分割方法,但有时会因人而异。Qing等[10]使用类Haar特征进行面部和眼睛检测来计算PERCLOS,并通过改进的模板匹配对眼睛状态进行分类。
从综述可以看出,该领域仍存在较大的研究空间。结合多种困倦线索是提高此类系统鲁棒性的可行方案。通过利用智能手机中现有的传感器,可实现通用性,从而为大规模应用提供一种低成本的解决方案。综述表明,大多数基于PERCLOS的方法使用Haar分类器进行面部和眼睛检测。差异主要在于眼睛状态分类的方式。此外,这些系统构建于特定的嵌入式平台之上,限制了其在更广泛用户群体中的应用。随着智能手机的出现,驾驶员疲劳检测问题迎来了新的研究方向。目前,利用智能手机进行困倦检测的方法还非常少。
2) 基于智能手机的疲劳检测
Lee和Chung[11]开发了一种在基于Android的智能手机上的驾驶员监控系统。该智能手机通过无线传感器网络接收来自摄像头以及光电容积描记传感器的传感器数据。他们采用动态贝叶斯网络框架进行最终的疲劳状态评估,当疲劳水平达到预设阈值时,系统将发出警告报警。
Wan et al.[12]开发了一种基于移动平台实时脑电图处理的智能手机便携式注意力水平监测与报警系统。一个主要缺点是在驾驶过程中原始脑电图信号会含有大量的运动伪影,难以在线滤除。此外,驾驶时佩戴脑电图传感器存在舒适性问题,可能限制其实际应用。
You等[13]开发了一款名为CarSafe的安卓应用程序,用于检测并提醒驾驶员注意危险的驾驶状况。该程序使用前置摄像头检测疲劳程度,而后置摄像头则用于监测道路状况。他们通过切换主次摄像头实现了这一功能。该疲劳检测方案基于PERCLOS。
考虑到基于脑电图(EEG)评估在智能手机上的局限性,我们更倾向于使用基于摄像头的方法来实时计算PERCLOS并检测驾驶员的困倦状态。
E. 研究问题
在开发此类系统时需要注意以下问题:
- 采集的语音数据是嘈杂的,
- 智能手机摄像头的光照敏感性过高,以及在车内安装近红外(NIR)LED时需考虑的功耗和空间需求
- 智能手机的放置以正确获取语音和图像,
- 在软件于后台运行的同时,将关键事件与服务器同步。
F. 贡献
本工作的主要贡献是在安卓智能手机上开发了一种三阶段疲劳检测方案。这是首次尝试融合语音线索与PERCLOS。主要贡献包括:
- 三阶段级联框架,
- 一种新的眼状态分类方法,
- 估计的疲劳检测指标与标准心理测量测试之间的交叉相关,
- 一个集成了完整框架的安卓应用程序。
让我们简要介绍一下该系统。
G. 系统概述
该系统采用三阶段方法。第一阶段利用智能手机前置摄像头捕获的图像计算PERCLOS。当PERCLOS高于预设阈值时,系统会要求驾驶员说出其全名。作为最后阶段的验证,若前两个阶段(即PERCLOS和基于语音的测量)判断驾驶员处于疲劳状态,则会要求其在10秒内触摸智能手机屏幕。
系统会维护一个日志文件,存储在内部存储的根目录中。该文件记录每分钟的PERCLOS值以及GPS坐标。每当检测到驾驶员处于困倦状态时,系统会发出声音警报进行警告。如果连续五次检测到驾驶员处于困倦状态;
通过智能手机的蓝牙模块连接汽车扬声器,发出重复的响亮警报。带有正确放置位置的概念系统如图2所示。
第二阶段一:PERCLOS计算算法
PERCLOS是一种基于眼睛闭合率的疲劳度量指标,已在[14]中被验证为困倦的重要标志。PERCLOS可定义为眼睑遮盖瞳孔超过80%的时间所占的比例[14]。最终,PERCLOS值的计算方式如下:
$$ P = \frac{E_c}{E_o + E_c} \times 100\% $$ (1)
这里,$E_c$和$E_o$分别表示在预定义时间段内闭眼和睁眼的次数。较高的P值表示更高的疲劳程度,反之亦然[1]。从图像序列计算PERCLOS所涉及的步骤包括人脸检测、眼睛检测以及眼睛状态分类,如图3所示。
我们通过以下步骤估算PERCLOS。
A. 预处理
真实驾驶环境带来了挑战,在这种环境下,驾驶员的光照和头部姿态均不受限制。我们通过使用几何和光度校正的预处理方法来解决这一问题。
1) 光度校正
设输入图像为大小为$N \times M$的$I$。将图像划分为大小为$N_h \times M_w$的块。因此得到总数为$h \times w$个方框,计算公式如下:
$$ h = \frac{N}{N_h} $$ (2)
$$ w = \frac{M}{M_w} $$ (3)
我们选择了大小为 $8 \times 8$ 的块,遵循 [15]。假设我们将每个子图像表示为 $I_{ij} \forall i \in w, j \in h$。现在每个 $I_{ij}$ 都进行直方图均衡化,得到 $hI_{ij}$。采用对比度限制以防止图像相对均匀区域中的噪声被过度放大。
此过程可提高局部对比度并增强图像细节。然而,当均衡化的子图像 $hI_{ij}$ 拼接形成$I_h$时,其边界处存在一些块状伪影。使用$5 \times 5$高斯滤波器进行平滑操作可解决此问题。该滤波器的尺寸是最佳的,能够在平滑噪声的同时不破坏清晰的图像特征。图像 $I_h$与高斯掩模的卷积操作表示为
$$ I_f = \frac{1}{159}
\begin{bmatrix}
2 & 4 & 5 & 4 & 2 \
4 & 9 & 12 & 9 & 4 \
5 & 12 & 15 & 12 & 5 \
4 & 9 & 12 & 9 & 4 \
2 & 4 & 5 & 4 & 2
\end{bmatrix} * I_h $$ (4)
这里 $(*)$ 是卷积操作。
输入图像 I,(b) 校正后的图像 If(x, y))
2) 几何校正
当驾驶员面部相对于垂直直立位置倾斜超过 $\pm30^\circ$时,执行此校正。通过对预处理图像$I_f(x, y)$的像素进行仿射旋转,得到新图像$I_f(x’, y’)$,从而在几何上将面部置于直立位置[3]。像素关系表示如下:
$$
\begin{bmatrix}
x’ \
y’
\end{bmatrix}
=
\begin{bmatrix}
\cos\theta & \sin\theta \
-\sin\theta & \cos\theta
\end{bmatrix}
\begin{bmatrix}
x \
y
\end{bmatrix}
$$ (5)
在初始帧中,算法依次分配$\theta = \pm45^\circ$和 $\theta = \pm60^\circ$的角度,并保留人脸检测成功时的角度。后续帧的起始旋转角度 $\theta$保持不变,直到人脸检测失败。在这种情况下,算法会分配最近的旋转步长。例如,如果某一帧的旋转角度为 $\theta = 45^\circ$,而在下一帧中人脸检测失败,则我们分配 $\theta = 60^\circ$而不是 $0^\circ$。该理论源于物理学规律,即人脸转动需要较长时间。
下一步是面部和眼部区域的定位。
−60O,(b)−45O,(c) 0O,(d) 45O,(e) 60O,顺时针旋转取为 θ的正值。)
B. 面部和眼睛检测
显然,为了准确估计PERCLOS,必须快速且精确地进行眼睛检测。为了定位眼睛,我们首先从预处理后的图像 $I_f(x’, y’)$中定位人脸区域$F(x,y)$。这一步骤不仅减少了眼睛检测的搜索空间,还降低了眼睛检测阶段的误报率。
我们采用基于类Haar特征的分类器进行人脸检测,并根据我们先前研究的结果[16],使用最优参数进行训练。
从检测到的面部区域$F(x,y)$中,我们在面部区域的上半部分搜索眼睛。我们采用了一个使用眼部图像训练的Haar分类器。我们训练了两个分类器——一个用于白天驾驶时的可见光图像,另一个用于夜间驾驶时的近红外图像。
C. 眼部状态分类
为了准确估计PERCLOS,需要将局部眼区 $E(x,y)$精确分类为睁眼或闭眼状态。现有的眼睛状态分类方法未能捕捉到显著的区分性特征,因此准确率有限。这反过来导致PERCLOS估计产生较大误差。
由于任务是将眼部图像分类为睁眼或闭眼,主要区别在于两类图像边缘图的方向。睁眼图像因虹膜的存在而包含比闭眼图像更多的边缘特征。现有的分类方法使用了边缘信息,但未能考虑其方向。因此,我们提出一种基于边缘信息及其方向融合的新特征集。该过程的第一步是获取梯度图像,如图7所示。
1) 梯度图像计算
我们首先从眼睛图像 $E$中以50%的重叠率获取尺寸为 $8 \times 8$ 的子图像$E_{i,j}$
在两个方向上。我们将每个子图像$E_{i,j}$通过以下给出的 Sobel算子$S_x$和$S_y$进行处理:
$$
S_x =
\begin{bmatrix}
1 & 0 & -1 \
2 & 0 & -2 \
1 & 0 & -1
\end{bmatrix}
$$ (6)
$$
S_y =
\begin{bmatrix}
1 & 2 & 1 \
0 & 0 & 0 \
-1 & -2 & -1
\end{bmatrix}
$$ (7)
梯度图像是通过以下方式获得的
$$ G_x(i,j) = E_{i,j} * S_x $$ (8)
$$ G_y(i,j) = E_{i,j} * S_y $$ (9)
2) 方向计算
对边缘图进行梯度运算以找到有方向的梯度。得到输出图像的幅值$M$和方向$D$如下所示
$$ M_{i,j} = \sqrt{G^2_x(i,j) + G^2_y(i,j)} $$ (10)
$$ D_{i,j} = \arctan \frac{G_y(i,j)}{G_x(i,j)} $$ (11)
在此步骤中,首先,我们创建细胞直方图。基于梯度计算中每个像素的值获得加权投票。我们使用无符号表示,因此直方图通道均匀分布在0到180度之间。
3) 特征计算
最后,我们在水平和垂直轴上分别形成9个区间。因此,通过行和列各自的9个区间得到一个81维特征向量。所选特征由于采用重叠局部对比度归一化,获得了更高的准确率,因此在性能上优于其他竞争特征,如边缘方向直方图、尺度不变特征变换描述符等。
4) 分类
我们使用从普通光和近红外光照下创建的数据库中获取的1200张图像(700张睁眼和500张闭眼图像)来训练线性支持向量机。一些训练图像如图9和图8所示。
5) PERCLOS计算
一旦眼睛被分类为睁眼或闭眼,算法便会在持续时间为10秒的滑动时间窗口内,利用(1)计算PERCLOS值。我们使用20% PERCLOS值阈值进入下一阶段。该阈值是根据图13的观察结果确定的。
实时算法被部署到一款具有5.5英寸屏幕、八核处理器、1.6 GHz处理速度和3GB内存的酷派Note 3手机上。辅助摄像头为500万像素,操作系统为Android Lollipop 5.1。
III. 第二阶段:基于语音的框架
PERCLOS 确实是困倦的一个真实指标,已在[1]中得到验证。然而,在当前的实现中,我们得到的是P的估计值,该值依赖于眼态分类算法[3]。因此,融合语音信号等额外线索可以使疲劳检测系统更加可靠。最近,语音信号的有声‐无声比(VUR)已在[4]中被验证为困倦的指标。
在我们的系统中,我们使用智能手机的内置麦克风来采集以20 kHz采样的语音信号,因为语音信息最高约为7.5 kHz。该语音数据以逐帧方式处理。若信号持续时间较短 (10‐30ms),可假设声带振动具有周期性。因此,语音数据被分割为10‐30毫秒的小帧进行处理。
对语音信号进行逐帧的奇异值分解(SVD),以去除噪声和冗余信息。通过使用前五个奇异值对应的奇异向量重构语音信号,可以显著降低环境噪声和其他声源的干扰。
有声音是由声带振动产生的,而无声音则是由于声道(口腔、舌头、软腭等)中气流湍流所致[4]。与有声音相比,无声音具有较低能量和较高的过零率。利用梅尔频率倒谱系数(MFCC)作为特征,采用支持向量机(SVM)[17]进行有声/无声分类。MFCC 表示语音信号的短时功率谱。
获取 MFCC 后,支持向量机(SVM)输出有声音$v_s(n)$和 无声音$u_s(n)$,长度分别为$N_v$和$N_u$。最终,VUR 通过能量的比值得到,即
$$ VUR = \frac{\sum^{N_v-1} {0} v^2_s(n)}{\sum^{N_u-1} {0} u^2_s(n)} $$ (12)
IV. 阶段III:触摸响应与警报生成
框架的第三也是最后一个验证阶段是基于触摸的反应。Abdullah等人提出将触摸反应测试作为警觉性检测工具,启发了本研究采用该方法。在此阶段,驾驶员在听到语音指令后,需在10秒的规定时间内触摸智能手机屏幕如此。10秒的阈值是通过观察清醒和疲劳受试者的反应时间直方图后确定的,如图12所示。当基于声音和视觉的分类方法均判断驾驶员处于困倦状态时,将触发此阶段。如果驾驶员在10秒内未作出反应,则最终判定为困倦状态,并通过扬声器发出警报声。同时,向在驾驶开始时设置的紧急联系号码发送一条短信。该事件也会被记录在智能手机内部存储的日志文件中。
A. 框架有效性的概率模型
让我们用一个概率模型来说明整体框架。表I显示了从实验II的数据中采样的30个案例的样本数据。其中,事件A和D分别表示用户处于清醒或困倦状态。目的是展示触摸验证如何改善前两个阶段产生的误报警。通过直观检查该表,我们发现第五个样本点在前两个阶段被错误分类为D,但最终通过触摸验证过程得以纠正。
现在我们在概率框架中统计观察三个阶段的效果。从表中我们发现
$$ P(A) = \frac{14}{30} = 0.4667 $$ (13)
$$ P(D) = 1 - P(A) = 0.5333 $$ (14)
这里,$P(.)$表示概率算子。现在,当驾驶员实际处于困倦状态时,PERCLOS预测为困倦的概率 $P(P=D|D)$可表示为
$$ P(P=D|D) = \frac{14}{16} = 0.8750 $$ (15)
当PERCLOS判定为困倦时,VUR预测困倦的概率,$P(V=D|P=D)$是
$$ P(V=D|P=D) = \frac{13}{16} = 0.8125 $$ (16)
因此,驾驶员处于困倦状态时,VUR预测为困倦的概率 $P(V=D|D)$是
$$ P(V=D|D) = \frac{13}{14} = 0.9286 $$ (17)
这表明VUR阶段提高了困倦预测的准确性。最终结果显示,所有困倦情况均被正确分类为困倦。类似地,我们发现清醒状态的分类可表示为 $P(P=A|A) = \frac{12}{14} = 0.8571$,假阳性概率为 $P(P=D|A) = \frac{2}{14} = 0.1429$。然而,这两个错误分类在后续阶段得到了纠正。这从统计上证明了该框架的有效性。
B. 报警生成与数据日志管理
设备维护日志文件存储在内部存储的根目录下,每个用户分别保存在一个.csv文件中。该日志文件记录每分钟的PERCLOS值以及计算出的VUR值,同时还记录触摸响应时间和报警生成状态。表II显示了其结构。
该系统采用三种报警管理方式——短信服务、互联网和声音警报。系统启动时,驾驶员需输入紧急联系人号码,例如乘客或任何控制室的号码。每当PERCLOS超过阈值时,系统会向紧急联系号码发送警报短信“驾驶员可能处于困倦状态”,并附上驾驶员ID和车辆注册号。同时,系统还会将GPS坐标同步到服务器。如果出租车有服务提供商,希望跟踪其驾驶员的嗜睡状态,此功能非常有用。第三种方式是在所有阶段均判定驾驶员为困倦时,触发声音警报。
V. 系统概述
该系统由两部分组成——硬件和软件。
A. 硬件描述
硬件的子组件包括智能手机、NIR模块和连接线。硬件单元如图11所示。原型实现使用的是配备3GB内存、16GB内部存储的酷派Note 3。图11中所示的智能手机周围环绕着NIR模块,该模块在夜间驾驶时启用。可通过OTG电源线开启NIR模块。驾驶员需要在夜间插入电源线以打开LED灯。如果夜间未给LED灯供电,应用程序将发出警告。当光照强度低于10勒克斯的阈值时,应用程序即执行此操作。
B. 安卓应用程序描述
开发的应用程序可在任何配备至少Lollipop内核(即内核版本5.0或更高)的安卓设备上运行。该应用程序使用前置摄像头和麦克风放置在汽车仪表盘上的安卓设备。当检测到驾驶员注意力分散时,该设备会向控制室发送一条警报短信,同时包含驾驶员姓名、车辆注册号和GPS坐标。如果PERCLOS高于预设阈值,系统将要求驾驶员说话,并记录其声音。计算VUR,若发现低于预设阈值,则判定驾驶员处于困倦状态,并对驾驶员及同车乘客发出警报。系统还会维护一个日志文件,用于记录驾驶员的嗜睡行为。该决策日志包含驾驶员嗜睡程度的登记信息、GPS坐标、车辆注册号以及其姓名。仅当驾驶员嗜睡程度超过阈值时,控制室服务器才会收到消息。日志文件保存在智能手机中,行程结束后可根据主管部门要求提取数据。该应用程序还提供将日志文件上传至云端的选项服务器以保留记录。这对于出租车服务提供商来说是有益的,他们可以根据驾驶员表现来维护其记录。
该系统已进行实地测试以评估其性能。在描述使用智能手机在车内对系统进行测试之前,让我们先了解该应用程序的用户界面。根据规定,只有注册用户才能使用此应用程序。紧急联系号码表示当驾驶员出现注意力不集中时,控制室或乘客的联系电话。
VI. 系统的测试
A. 数据说明
1) 实验一:车载实验
该数据用于专门评估人脸检测、眼睛检测和眼睛状态分类的性能。在车载条件下构建了一个数据集以测试系统的有效性。该数据集包含30名男性专业驾驶员在白天光照和夜间驾驶条件下的数据。数据在车载环境中采集,以确保光照、头部姿态和与摄像头距离的自然性。图10展示了该数据集的一些样本图像。该数据库命名为“Invedrifac”(车载驾驶员面部)数据库,可通过链接 https://sites.google.com/site/invedrifac/home 获取。
要求驾驶员在颠簸路面和高速公路上驾驶。录制按以下连续时间段进行:
- 时段M ‐ 上午9:00至下午1:00
- 时段A ‐ 下午2:00到下午5:00
- 时段E ‐ 下午6:00到晚上9:00
每次录制持续约15到20分钟。视频以 640 × 480的分辨率、30帧每秒进行采集。该数据库在白天正常照明条件下和夜间近红外(NIR)光照条件下创建。外部照明系统采用砷化镓被动近红外LED阵列,用于在没有阳光时对面部进行照明。
2) 实验II:离板实验
我们进行了一项独立的离板实验,将估计的PERCLOS和VUR与标准的心理测量测试以及主观评分进行交叉相关分析。该实验在60名参与者中进行,其中40名为清醒状态,20名为嗜睡状态。所使用的心理测量测试包括视觉反应测试(VRT)和听觉反应测试(ART)。实验前已从相关机构获得伦理许可。受试者接受了口头指导,并确保他们完全理解了任务内容。
该测试的协议如下:受试者进入实验室,并在笔记本电脑上以在线表单形式填写问卷。随后,他进行VRT,接着进行ART和文本阅读任务。这一整套流程构成一个阶段,而我们共进行了12个这样的阶段,以通过单调任务使受试者产生疲劳。
在VRT中,一个绿色球会随机出现在屏幕的右侧、左侧、顶部和底部。受试者必须尽快按下相应正确的方向键。反应时间和正确响应次数被用作测试的性能指标。
ART使用由随机序列的1和2组成的音频刺激。驾驶员需尽快按下正确的响应按钮。反应时间和正确响应次数被用作该测试的性能指标。
3) 实验III:车载测试
本实验在9名驾驶员上进行,旨在观察系统的有效性。目标是获得如表IX所列的事件处理表。驾驶持续四小时,期间不允许休息,仅允许使用洗手间。
B. 结果
我们针对所提出的方法在眼睛状态分类、仅使用PERCLOS的困倦分类、VUR计算性能、与其他指标的交叉相关性以及三阶段框架性能方面的表现对系统进行了测试。
1) 眼睛状态分类
我们将提出的方法与四种流行方法以及我们之前的方法在处理速度和准确率方面进行了比较。帧率测试是在安卓智能手机上进行的,其规格如前所述。准确率测试在配备Intel i5,2.2 GHz处理器,8 GB内存,64位系统的标准PC上的MATLAB中进行。在此比较中,我们使用来自实验一数据的1200张眼部图像(其中700张为睁眼,500张为闭眼)来训练分类器。测试则在另外 1200张来自实验一的数据图像上进行,其中605张为睁眼,595张为闭眼。此处,TP、FP、TN和FN分别表示对于P正样本和N负样本的真负例、假正例、真负例和假负例的数量。TP表示睁眼被正确分类为睁眼的情况,FP表示闭眼被错误分类为睁眼的情况。TN表示闭眼被分类为闭眼的情况,而FN表示睁眼被分类为闭眼的情况。每种方法的速度计算为20次试验的平均值。准确率获取方式为
$$ Accuracy = \frac{TP + TN}{P + N} \times 100\% $$ (18)
表III和表IV分别显示了使用不同算法和数据集的性能比较。这些表格展示了平均百分比准确率和运行时性能。表III表明,我们的方法在分类准确率方面表现更优,而运行时性能与现有方法相当。在速度上的妥协是可接受的,因为此类关键应用出于安全考虑需要更高的准确率原因。表IV显示了我们的眼状态分类框架在BioId眼位数据库[21], GI4E数据库[22], CEW [23], Hufapart [24],以及我们创建的数据库‐Invidrifac上的测试结果。
2) 使用PERCLOS进行嗜睡状态分类
可以看出,使用提出的方法对眼睛状态进行分类是相对可接受的。现在,我们观察该分类如何影响基于PERCLOS的嗜睡状态分类。我们从实验II的采样帧中随机抽样创建了五组数据,以比较使用真实数据和预测状态进行的嗜睡状态分类。在许多情况下,将睁眼误分类为闭眼以及反之的影响相互抵消,因此即使眼睛状态存在这一对误分类,计算出的PERCLOS也不会受到影响。
3) VUR的测试
通过从实验II中随机采样数据创建四组来测试VUR。每组均使用所提出的方法进行测试,结果列于表VI中。
4) 与其他测量指标的交叉相关
我们将实验II的不同测量指标进行交叉相关,以对估计的测量值进行交叉验证。我们使用皮尔逊相关系数,基于平均测量值来观察各测量指标之间的相似性。系统的准确率分析是离线进行的,以评估系统性能。所有数值均已归一化以便比较。VRT和ART分别表示驾驶员在视觉任务和听觉任务中的反应时间。皮尔逊相关系数见表VII。
相关性幅度越接近1,表示各测量指标之间的一致性越强。可以看出,在疲劳主观评分较高时,PERCLOS、VRT和ART均较高,而VUR较低,仅有少数例外情况。
5) 三阶段框架的性能
将三阶段框架与单一PERCLOS分类技术进行比较。我们将实验II的数据划分为另外四个数据集。结果见表VIII。我们观察到,与广泛使用的单一PERCLOS方法相比,我们提出的三阶段级联在平均分类性能上表现更优。
VII. 结论
我们提出了一种基于智能手机的汽车驾驶员困倦检测解决方案。我们设计了一个三阶段验证系统来应对驾驶员疲劳问题。该系统采用的检测指标包括PERCLOS、VUR以及驾驶员在智能手机屏幕上的反应测试响应。每个阶段的触发均基于前一阶段的判断结果。系统会记录日志,标记出根据PERCLOS、VUR和触控响应判断驾驶员处于困倦状态的事件。该应用程序提供将日志文件上传至云服务器的选项,以便保存记录。此功能对出租车服务提供商有益,他们可根据驾驶员表现保留相关记录。我们已对子操作进行了测试,包括眼睛状态分类、基于PERCLOS的嗜睡状态分类以及基于VUR的嗜睡状态分类。单独以及结合综合测量指标,并将估计线索与标准线索进行交叉相关。该设备可适当改进以监测任何从事关键安全操作人员的注意力丧失情况。通过提升前置摄像头的采集帧率,可以捕捉到快速眼球运动(如眼球扫视),从而更早地提示疲劳初期的出现。本工作的进一步扩展可能是利用主摄像头并行跟踪道路状况和驾驶员嗜睡程度。然而,此类实现将需要大量的多线程操作。
1323

被折叠的 条评论
为什么被折叠?



