论文部分内容阅读
近年来,随着社会的发展,道路交通网的快速扩展延伸以及私家车的普及,公路出行已经成为人们日常生活中不可或缺重要的组成部分,随之而来的便是城市交通安全问题,而每一起重大交通事故都伴随着不可估量的生命财产损失。统计数据显示,疲劳驾驶是导致交通安全事故的重要诱因之一。因此,研究开发出一套高效、普适、准确率高的疲劳驾驶检测系统,降低因疲劳驾驶引发的交通事故的发生率,有着重要的现实意义。目前市面上已经有不少疲劳检测设备,经研究分析,这些设备大多存在以下几点问题:准确率受光照因素影响较大;面部定位与跟踪算法效率较低,鲁棒性较低,导致系统性能较差;疲劳判定机制单一,且疲劳信息量不足,需要多源特征共同表征驾驶员疲劳状态。本文借助深度学习在图像领域的优秀表征能力,基于驾驶员面部所展现出来的疲劳特征,实现了对疲劳驾驶行为的检测。该课题的具体工作包括:输入图像的光照评估与校正、驾驶员面部位置的检测与追踪、面部关键位置定位以及疲劳特征提取、特征融合与疲劳判定,并基于wxPython开源库对该系统进行了仿真实验。首先,提出了光照评估算法,对输入视频流的帧图像光照情况进行评估,筛选出光照不均匀和光照强度不理想的图像。通过研究现有的经典光照补偿算法,并在此基础上提出了基于动态参数的图像光照校正算法,对筛选出来的光照条件不佳的帧图像进行校正。校正后的图像相比校正前,辨识度有了大幅度的提高。其次,针对疲劳驾驶检测的应用场景,针对性的改进了人脸检测模型MTCNN。通过通道降维,降低模型计算复杂度,提升检测效率。通过研究驾驶舱内驾驶员面部成像的规律,压缩MTCNN的输入图像金字塔,降低了模型输入数据量,提升模型效率的同时,也消除了后排乘客对驾驶员人脸检测任务造成的干扰。随后,针对连续视频流帧图像中的人脸检测任务,我们研究分析了相关的跟踪算法,并提出了基于MTCNN的面部追踪算法、基于O-Net的面部追踪算法以及基于CNN特征的KCF跟踪算法,实验验证结果显示,与传统跟踪算法相比,效率有所提升。追踪算法的引入,使得面部定位任务耗时被极大的压缩,使得系统的效率大幅度提高。接着,为了实现对驾驶员面部疲劳特征的快速提取,基于CNN强大的回归能力,提出了人脸关键点模型。训练后的网络模型可以快速且精准的从输入人脸图像检测到关键点的位置。实验结果显示,该模型在96*96的人脸图像中关键点误差在1像素左右。基于人脸关键点模型,可以快速的实现人脸相关器官的分割与对应疲劳特征的提取,主要为眼部、头部、嘴部的疲劳特征。最后,基于逆误差传播神经网络,设计了网络结构,使用从实验样本中提取的疲劳特征数据集完成模型的训练。通过该网络模型来融合疲劳特征,输出驾驶员的疲劳系数,交叉验证结果显示,该模型的准确率高达98.81%。使用Python语言对各个章节中介绍的算法进行了实现,并整合了各个阶段的算法模型,使用wxPython搭建了图形界面,实现了疲劳驾驶检测系统。该系统可以实时的计算相关疲劳特征值,定位并跟踪驾驶员面部位置,检测驾驶员面部关键点坐标。测试结果表明,综合光照情况下的驾驶员人脸跟踪丢失率不高于3.4912%,可以给系统提供可靠的疲劳特征;综合处理速率在11帧/秒以上,实时性良好;综合光照情况下的平均准确率能达到95.71%,理想光照状态下的平均准确率达到97.47%,可以准确的检测出驾驶员的疲劳状态。相关算法的准确率和执行效率也得到了验证。