基于面部识别的疲劳驾驶检测软件计划书

陈昊天

(浙江理工大学计算机科学与技术学院,杭州310018)

摘 要:本文介绍了一款基于面部识别的疲劳驾驶检测软件的开发计划。该软件利用人脸识别技术,通过分析驾驶员的面部表情、眼睛状态和眨眼频率等指标,实时监测驾驶员的疲劳状态,并及时发出警示。该系统的核心功能包括面部检测和关键特征点数据提取、非疲劳状态下驾驶员面部表情对照模型和结合PERCLOS判断驾驶员疲劳驾驶状态。通过该系统,驾驶员可以获得实时的疲劳状态监测和警示,以降低疲劳驾驶带来的风险。该软件将在汽车制造商、运输公司和交通管理部门等领域得到广泛应用,以提升交通安全水平。

关键词:疲劳驾驶;人脸识别;特征提取

0 项目概述

疲劳驾驶是道路交通安全的一大隐患,为了提高驾驶员的安全意识并减少交通事故的发生,计划开发一款名为”疲劳驾驶检测系统”的智能软件产品。该产品基于人脸识别技术,通过分析驾驶员的面部表情、眼睛状态和眨眼频率等指标,实时监测驾驶员的疲劳状态,并及时发出警示,以提醒驾驶员采取相应的措施,确保驾驶安全。

该系统的核心功能包括面部检测和关键特征点数据提取、非疲劳状态下驾驶员面部表情对照模型和结合PERCLOS判断驾驶员疲劳驾驶状态。首先,采用HOG结合SVM分类算法,对驾驶员的面部进行检测,并提取关键特征点数据,以获取面部表情的相关信息。然后,使用Dlib库构建一个非疲劳状态下的面部表情对照模型,用于判断驾驶员是否处于疲劳状态。最后,结合PERCLOS指标,综合分析以上数据,判断驾驶员的疲劳驾驶状态。

通过该疲劳驾驶检测系统,驾驶员可以获得实时的疲劳状态监测和警示,从而及时采取休息或其他措施,以降低疲劳驾驶带来的风险。该产品将广泛应用于汽车制造商、运输公司和交通管理部门等领域,以提升交通安全水平,并保护驾驶员和乘客的生命安全。

1 立项依据

1.1 高发的疲劳驾驶事故

疲劳驾驶是导致交通事故的主要原因之一。根据统计数据,大部分交通事故都与驾驶员的疲劳状态有关。为了减少交通事故的发生,开发一款疲劳驾驶检测系统具有重要意义。

1.2人脸识别技术的成熟应用

随着人工智能技术的快速发展,人脸识别技术已经取得了显著的成果,并在各个领域得到广泛应用。通过利用人脸识别技术,可以实时监测驾驶员的面部表情和眼睛状态,从而判断其疲劳程度,为驾驶员的安全提供保障。

1.3 用户需求的增长

随着人们对交通安全的重视程度不断提高,对疲劳驾驶检测系统的需求也日益增长。汽车制造商、运输公司和交通管理部门等用户希望能够通过一种智能的软件产品对驾驶员的疲劳状态进行实时监测和预警,从而降低交通事故的风险。

2 可行性分析

2.1 技术可行性

人脸识别技术已经得到广泛应用和研究,并在疲劳驾驶检测领域取得了较好的效果。

选用HOG结合SVM分类算法进行面部检测和关键特征点数据提取,该算法已经被广泛验证并具有较高的准确性和效率。采用Dlib库构建面部表情对照模型,可以有效地识别驾驶员的面部表情,判断其是否处于疲劳状态。结合PERCLOS指标来判断驾驶员的疲劳驾驶状态,该指标已经在疲劳驾驶研究中被广泛使用,具有一定的可靠性和准确性。

2.2 市场需求和商业可行性

疲劳驾驶是导致交通事故的重要原因之一,对于汽车制造商、运输公司和交通管理部门等用户,疲劳驾驶检测系统具有重要的市场需求。

通过提供一款基于人脸识别技术的疲劳驾驶检测系统,可以提高驾驶员的安全意识,减少交通事故的发生,从而保护驾驶员和乘客的生命安全。随着人们对交通安全的关注度提高,对疲劳驾驶检测系统的需求不断增加,市场潜力巨大,具备良好的商业可行性。

2.3 可行性风险和挑战

在实际应用中,面部表情的识别和疲劳状态的判断可能会受到多种因素的影响,如光线条件、驾驶员个体差异等,需要进行充分的算法优化和测试。数据隐私和安全问题也需要充分考虑,确保驾驶员的个人信息和数据得到合理的保护。

3 需求分析

3.1 功能需求

面部检测和关键特征点数据提取:系统能够准确地检测驾驶员的面部,并提取关键特征点数据,用于后续的面部表情和疲劳判断。

非疲劳状态下驾驶员面部表情对照模型:系统能够根据预先定义的非疲劳状态下的面部表情模型,判断驾驶员当前的面部表情是否异常。

疲劳检测:系统能够根据驾驶员的眼睛状态、眨眼频率和眼睛闭合时间等指标,结合PERCLOS指标,准确判断驾驶员的疲劳驾驶状态。

报警机制:当系统检测到驾驶员处于疲劳驾驶状态时,能够及时发出警告,例如声音提示、震动提醒或者发送警报信息给相关人员。

3.2 性能需求

实时性能:系统需要能够实时地对驾驶员的面部表情和眼睛状态进行检测和判断,以便及时发出警告。

精度和准确性:系统需要具备高度的准确性和精度,能够准确地识别驾驶员的面部表情和判断疲劳驾驶状态,以避免误报和漏报的情况发生。

稳定性和可靠性:系统需要具备稳定的性能,能够在各种环境条件下稳定运行,对不同人群的驾驶员都能够进行有效的检测和判断。

3.3 用户界面需求

界面友好性:系统需要提供直观、简洁和易于操作的用户界面,以便用户能够方便地查看驾驶员的疲劳状况和系统的警告信息。

多平台支持:系统需要支持不同平台,例如PC端、移动设备端等,以满足不同用户的需求。

3.4 可维护性需求

系统可配置性:系统需要具备一定的可配置性,以便用户能够根据实际需要进行参数调整和设置。

日志记录:系统需要能够记录重要的操作日志和异常情况,方便维护人员进行故障排查和系统优化。

3.5 安全性需求

数据隐私保护:系统需要保护驾驶员的个人信息和数据的隐私,确保数据不被非法获取或滥用。

系统安全性:系统需要具备一定的安全机制,防止未经授权的访问或恶意攻击。

4 算法设计

通过红外摄像头实时采集驾驶员的影像数据,选取非午夜0~6点和白天下午1~4点的驾驶人员图像数据。通过结合支持向量机分类器和方向梯度直方图特征来检测人脸,可以定位驾驶员的面部位置。收集眼眶、眼球和嘴部等关键面部位置的数据,并建立一个模型来检测眼睛的开闭程度和状态。

此外还需要参考单位时间内眼睛闭合状态所占百分比以及打呵欠和频率的结果,这些数据可以使用PERCLOS准则来计算。通过对比非疲劳状态下驾驶员的驾驶面部习惯,可以建立疲劳驾驶状态的监测与预报机制。

4.1 HOG特征提取

HOG 特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。HOG 特征提取的流程如下。

将输入图像转换为灰度图像,进行 Gamma 校正,完成对整个图像的归一化。通过归一化调节图像的对比度,降低局部光照不均匀或者阴影的影响。公式如下:

/private/var/folders/01/_x92y8817tb15hs89177szgm0000gn/T/com.kingsoft.wpsoffice.mac/wpsoffice.lygdsmwpsoffice

分别求取图像水平方向和垂直方向的梯度,然后计算每个像素点的梯度幅值和方向。通过梯度捕获图像边缘和纹理信息,弱化光照不均匀的影响。公式如下:

wpsoffice

将图像划分为wpsoffice个像素的连通区域,然后在每个区域内统计梯度方向直方图。相邻wpsoffice个单元区域组成块,合并块内所有区域的特征向量得到该块的HOG特征描述子。不同块之间可能相互重叠,可以有效地利用局部邻域信息。最后搜索整个图像,将所有特征合并形成HOG描述子。

4.2 面部表情对照模型

确认人脸位置后,采用Dlib人脸检测预训练模型,提取人脸68个特征点,定位眼部矩形位置。选取非凌晨0~6点和下午1~4点驾驶员普遍容易困乏的时间段来采集人脸的数据进行模型训练,对眼部状态数据采集分为睁眼和闭眼,按照时间进行排序,按分钟划分为单位时间,计算眨眼频率平均值wpsoffice和闭目时长平均值比例 T 情况。

/private/var/folders/01/_x92y8817tb15hs89177szgm0000gn/T/com.kingsoft.wpsoffice.mac/wpsoffice.ITmMBuwpsoffice

疲劳状态下人易触发眨眼机制,眨眼的状态与平时睁眼情况对比,眼睑的闭合程度会增加。在现实生活中,人眨眼的闭合程度不仅仅存在于疲劳状态下,为保证计算的准确性,需要计算眼睑闭合程度和眨眼时间作为判断人是否正在眨眼的依据。通过眼标志之间的欧式距离计算眼睑的纵横比作为闭合程度,左右两只眼睑取平均值。计算单只眼睑闭合程度的公式如下:

wpsoffice

/private/var/folders/01/_x92y8817tb15hs89177szgm0000gn/T/com.kingsoft.wpsoffice.mac/photoedit2/20231025205101/temp.pngtemp

在非疲劳状态下,计算眼睑闭合程度的均值可作为未来疲劳比较的阈值。

4.3 PERCLOS疲劳识别

正常情况下,驾驶员每隔 3s 或 4s 眨一次眼,每分钟约眨眼 15 到 20 次,每次闭眼耗时约 0.2s。而当驾驶员产生疲劳时,眨眼消耗的时间也将会减慢至 0.5s 左右,同时眨眼频率也会增加。所以,单位时间内眨眼次数和闭眼的时长可以用来判断驾驶员的疲劳程度。卡内基梅隆研究所对度量疲劳提出 PERCLOS 准则,其表示在单位时间内眼睛处于闭合状态的时间所占的比例,计算公式如下:

wpsoffice

其中,wpsoffice表示观察的时间段数,wpsoffice表示每个时间段内眼睑闭合的时间,T 表示每个时间段的总时长。

驾驶员疲劳时,除了眨眼频率增加外,也会频繁的打哈欠。疲劳时,打哈欠的频率也会随疲劳程度增加,且打哈欠时间一般持续 4s 左右,张嘴幅度较大,特征明显,可以辅助检测眨眼频率判断疲劳。

5 算法测试和部署

5.1 算法测试

准备测试数据集,包括不同场景下的驾驶员面部图像和相关的疲劳状态标签。

对于面部检测和关键特征点数据提取算法,使用测试数据集评估算法的准确性和稳定性。计算面部检测的准确率、召回率和关键特征点提取的误差等指标。

对于非疲劳状态下驾驶员面部表情对照模型,使用测试数据集评估模型的性能。计算面部表情分类的准确率、召回率等指标。

对于结合PERCLOS判断驾驶员疲劳驾驶状态的算法,使用测试数据集进行验证和性能评估。计算疲劳状态判断的准确率、召回率等指标。

本文设计了一个简单的算法模型进行可行性验证。实验所使用的测试平台为16GB RAM的Apple M1 Pro,运行时平均占用65.7%的单核CPU时间和405.2MB内存,在模拟驾驶环境检测中成功率为92%。

5.2 算法部署

根据算法测试结果进行优化和调整,确保算法在不同场景下的准确性和稳定性。

开发系统的前端用户界面,提供用户友好的操作界面和展示疲劳驾驶状态的功能。

部署算法和系统到目标平台,包括PC端、移动设备端或嵌入式设备等。确保系统能够在目标平台上稳定运行。

进行系统整体测试,包括算法的集成测试和系统的功能测试。验证系统的整体性能和稳定性。

针对用户反馈和测试结果进行系统优化和调整,确保系统能够满足用户的需求和预期效果。

完成系统的文档编写和用户培训,确保用户能够正确使用系统。

通过算法测试和部署阶段,对算法进行了充分的验证和优化,确保算法的准确性和稳定性。随后,将算法和系统部署到目标平台上,并进行整体测试和优化,确保系统能够满足用户需求。最终,完成系统的文档编写、用户培训和交付,使用户能够方便地使用疲劳驾驶检测系统,提高道路安全性。

6 结语

本疲劳驾驶检测系统项目旨在利用人脸识别技术,设计一款智能软件产品,能够及时准确地检测驾驶员的疲劳状态,提高道路交通安全性。通过面部检测和关键特征点数据提取、非疲劳状态下驾驶员面部表情对照模型以及结合PERCLOS指标的算法设计,能够有效地判断驾驶员是否处于疲劳状态。

在项目的立项依据中,考虑到了疲劳驾驶对交通安全带来的威胁,以及人脸识别技术的成熟和广泛应用。经过可行性分析,确认了该项目在技术和市场层面上的可行性,并制定了相应的需求分析,明确了产品的功能和性能要求。

在算法设计中,选择HOG结合SVM分类算法用于面部检测和关键特征点数据提取,以及基于Dlib库的面部表情对照模型。同时,结合PERCLOS指标来判断驾驶员的疲劳驾驶状态。这些算法的设计和组合能够有效地检测和判断驾驶员的疲劳状态。

在算法测试和部署阶段,进行充分的测试和优化,确保算法的准确性和稳定性。同时,将算法和系统部署到目标平台上,并进行整体测试和优化,以确保系统能够满足用户需求。

通过本项目的实施,能够为道路交通安全做出一定的贡献,帮助减少疲劳驾驶引起的交通事故。期待本疲劳驾驶检测系统能够广泛应用于交通管理部门、车辆制造商和驾驶员培训机构等领域,为人们的出行安全保驾护航。

参考文献:

[1] 孙伟, 张为公, 张小瑞, 等. 疲劳驾驶检测方法的研究进展[J]. 汽车技术, 2009 (2): 1-5.

[2] 程广涛, 陈雪, 郭照庄. 基于 HOG 特征的行人视觉检测方法[J]. 传感器与微系统, 2011, 30(7): 68-70.

[3] 刘兆丰. Dlib 在人脸识别技术中的运用[J]. 电子制作, 2020, 21: 39-41.

[4] 杨彬, 黄耀志. 基于 PERCLOS 的汽车司机疲劳监控方法的研究[J]. 微计算机信息, 2005, 21(08X): 119-121.