标题 | 基于深度学习的多维疲劳驾驶检测系统 |
范文 | 王旭彬 韩毅 郭晓波
摘 要:针对机动车驾驶员疲劳驾驶的检测问题,本文设计了一种基于深度学习与计算机视觉的多特征融合疲劳驾驶检测系统。该系统基于Jetson Nano便携式开发板,使用目标检测框架YOLOV3对驾驶员进行面部定位,而后进行人脸多特征点提取、多维度特征融合分析,评估驾驶员状态。该系统创新性地引入时间特征维度,对面部特征以时间维度进行“预分析”和“趋势化”的分析方法,极大地缩减了驾驶员个体差异对判别带来的影响,达到了疲劳驾驶检测的高置信、高精度。 关键词:疲劳驾驶;深度学习;人脸特征点检测 中图分类号:TP391.41;U463.6 文献标识码:A 文章编号:1003-5168(2020)34-0017-04 Multidimensional Fatigue Driving Detection System Based on Deep Learning WANG Xubin HAN Yi GUO Xiaobo (Anyang Institute of Technology,Anyang Henan 455000) Abstract: For fatigue driving detection, a multi-feature fusion fatigue driving detection method based on deep learning was proposed. The algorithm is based on the Jetson Nano portable development board, uses the target detection framework YOLOV3 to locate the driver, and then performs face landmarks extraction and multi-dimensional analysis to evaluate the driver's status. Innovatively proposes "pre-analysis" and "trend-analysis" methods, which greatly reduces the impact of individual driver differences on discrimination, and improves the confidence and precision of fatigue driving detection. Keywords: fatigue driving;deep learning;face landmarks detection 疲劳驾驶是造成交通事故的重要原因之一。根据中国公安部交通管理局公布的数据显示,2015年,我国由疲劳驾驶引起的交通事故占当年交通事故总数的8.41%,死亡人数占当年交通事故死亡人数的6.21%。频繁发生的交通事故,严重危及人们的财产安全和生命安全。而对于驾驶员疲劳驾驶检测,对相关检测设备的准确性、实时性要求高,难以通过传统的电子警察、远程视频人工监控等手段检测预警。当前,缺乏一种硬性检测手段来检测驾驶员状态以提醒其要停止驾驶。 准确地检测出驾驶员的疲劳状态对提高交通安全具有重要的意义。近年来,相关研究逐渐增多。徐慧等针对疲劳驾驶的监测问题提出了一种基于人脸检测和人脸多特征点提取的疲劳程度评估算法。该算法对人脸眨眼、打哈欠、瞌睡点头等疲劳行为进行识别,并根据疲劳行为发生的频率进行综合疲劳评估,从而在移动终端实现对疲劳驾驶行为的实时监测和语音提醒[1]。张明明提出利用方向盘握力信号来检测疲劳驾驶,通过同步检测脑电信号和握力信号,利用BP神经网络方法建立基于握力信号的疲劳特征参数与基于脑电信号的疲劳程度值之间的联系[2]。闫保中等通过眼部宽高比检测人眼闭合程度,并提出将人眼视线方向应用于疲劳驾驶检测算法中,判断注意力是否分散,以便在驾驶员陷入深度疲劳之前对其进行预警[3]。 这些方案对个体差异未提出较好的解决方案,且其检测并未对驾驶员的驾驶过程进行分析。虽然在限定条件下能达到一定的精度,但在实际复杂多变的行车环境下,其准确性和可靠性还存在问题,难以达到预期要求。针对这一问题,多特征信息融合方法将成为未来发展的方向。 目前,疲劳驾驶检测系统遇到发展瓶颈:一是难以实现车载实时的检测仪器及检测设备的轻量化;二是检测指标不够客观,即特征单一,且个体差异明显。本文设计的系统基于Jetson Nano便携式开发板,根据多维指标特征,采用“预分析”方法针对不同驾驶员设置合适的评估指标,进而采用“趋势化”对驾驶员的驾驶过程进行分析。通过不同维度的分析对驾驶员状态进行评估,并保留分析过程以便取证,将疲劳驾驶检测推向新的高度。 1 系统设计 机动车驾驶员疲劳驾驶的检测系统的主要目标是快速准确地识别疲劳状态。系统采用模块化设计,以增强其可扩展性,通过改进算法降低驾驶员个体面部差异对系统检测结果的影响。 检测系统的主要任务有三部分:一是通过摄像头获取驾驶员面部图像,要准确定位驾驶员面部,同时通过滤波减少车辆行驶中的震动、摄像头抖动等图像噪声对系统的影响;二是驾驶员面部特征点的提取,系统得到裁剪后的驾驶员面部图像,可实时提取面部多特征点,并存储特征信息;三是对驾驶员驾驶状态的分析评估,要针对驾驶员面部差异进行自适应化处理,动态调整评估阈值,通过得到的特征点进行多维信息融合分析,并给出有效可靠的评估結果。 2 系统结构 本文设计的系统主要可分为三个模块,即面部定位器、面部特征提取器及分析评估系统(如图1所示)。系统通过摄像头实时采集视频数据,通过面部定位器裁剪驾驶员面部图像,以作为面部特征提取器的输入,最后分析评估系统将对特征点进行分析处理,得出驾驶员状态,实现疲劳驾驶检测。 2.1 面部定位器 本系统基于目标检测框架YOLOv3,如图2所示,以自采集车辆内场景的驾驶员面部数据作为训练数据。YOLOv3并未采用池化的方法来缩小特征图的尺寸,而是通过调整卷积核的步长来达到缩小尺寸的效果,其中多层特征图对于多尺度物体及小物体检测是有利的。本文根据实际情况对YOLOv3进行调优,调整激活函数与预选框数量,得到适用于驾驶员跟踪定位的神经网络模型,达到实时性与高准确率。 检测应用结果如图3所示。相比于传统人脸检测算法,经过不同场景下测试,YOLOv3的鲁棒性强,受外界因素如光照的影响较小,且可以实时进行检测,为后续操作提供便利。 2.2 面部特征提取器 本系统采用级联回归(Ensemble of Regression Trees,ERT),即基于梯度提高学习的回归树方法进行面部特征点检测[4-5]。将面部定位器裁剪的面部图像使用Dlib库中的人脸68特征点检测,如图4所示。 算法应用结果如图5所示,其检测效果表现良好。 2.3 分析评估系统 2.3.1 疲劳驾驶“预分析”机制。为了降低驾驶员个体差异对系统检测结果带来的影响,提高检测系统的稳定性,提出“预分析”方法,引入时间维度,在开始的一段时间内对驾驶员的面部特征点进行记录分析,避免了单帧采集、分析、检测图像数据的不准确性。 算法主要分析目标为眼睛闭合时间占某一特定时间的百分率(PERLOCS)、眼部纵横比(Eye Average Ratio,EAR)与嘴巴张开程度(Mouth Average Ratio,MAR)。其中,眼部纵横比主要用来描述眼睛睁开程度。算法分别分析记录该驾驶员的PERLOCS、EAR与MAR,将关键阈值PERLOCS_THRE设定为PERLOCS的120%~150%(疲劳时眼睛闭合时间会相应变长),记录EAR与MAR变化曲线,设置判定驾驶员闭眼和打哈欠的关键阈值EAR_THRE和MAR_THRE,以判定闭眼和打哈欠。 不同驾驶员的眼部、嘴部大小不同,眨眼时间不同,这些差异往往会对算法判定带来干扰。通过“预分析”动态设定阈值取代固定阈值,可有效减少个体化差异对算法带来的影响,可有效避免如在驾驶员受阳光刺激眯眼时判定闭眼、说话唱歌时判定打哈欠等误判行为。 2.3.2 疲劳驾驶识别。在疲劳时,最直观的体现在于面部特征,如不自主地打哈欠、闭眼,同时伴有点头、前倾头部等动作。 本文提出的算法以PERLOCS、EAR、MAR三个方面为主要目标,以头部姿态估计为辅,并结合“趋势化”分析进行疲劳驾驶状态的综合判别。 经过“预分析”过程后,算法将记录PERLOCS_THRE、EAR_THRE以及MAR_THRE三个阈值。在检测过程中,算法将实时采集PERLOCS、EAR以及MAR与阈值进行比较,同时进行头部姿态估计并记录。若PERLOCS超过阈值200%以上或EAR低于阈值超过0.5 s,算法将判别驾驶员为疲劳状态;同时,算法会实时对驾驶员前15 s内PERLOCS、EAR、MAR以及头部姿态调出进行分析,即PERLOCS是否有升高的趋势,EAR是否有下降趋势(随机在区间内取值分多次比较),头部姿态是否有多次标记为点头或前倾,是否有MAR超过阈值(打哈欠)的记录,综合四个方面进行趋势化的分析,判定驾驶员是否疲劳。 3 系统实现 本系统基于便携式开发板Jetson Nano进行实现,如图6所示。该平台拥有四核ARM Cortex-A57 MPCore处理器,GPU采用NVDIA Maxwell架构,配有128个NVDIA CUDA核心,且整个模组仅有70 mm×45 mm。Jetson Nano提供472GFLOP,可用于快速运行现代AI算法,并行运行多个神经网络,同时可处理多个高分辨率传感器,具有体积小、部署便捷、超低功耗以及性能强大的优点,这使其成为计算密集型项目的理想的嵌入式平台。 Jetson Nano配备了图形加速的Ubuntu18.04操作系统,全新发布的JetPack 4.2 SDK为其提供了完整的桌面Linux环境支持,NVIDIA CUDA 工具包10.0,以及cuDNN 7.3和TensorRT等库。该SDK还包括本机安装的常用开源机器学习框架,如TensorFlow、PyTorch、Caffe、Keras和MXNet,以及计算机视觉和机器人开发的框架,如OpenCV和ROS。 将系统调整交换空间、分配GPU加速后移植至Jetson Nano平台。Jetson Nano收到输入视频数据后,将首先采用面部定位器进行驾驶员面部定位,再调用面部特征提取器进行面部特征点提取,最后进行特征点分析,给出评估结果。 4 系统试验验证 本文采用两种方式进行系统的可靠性及有效性验证:一是将搭载检测系统的Jetson Nano部署至车辆内,以实时检测驾驶员的行为,如图7所示;二是将在车辆停止时驾驶员模拟驾驶的视频数据作为输入数据,检测分析驾驶员的疲劳状态。对两位驾驶员的驾驶情况进行实时检测(见图8),结果如表1所示;对3段行车视频进行检测,对比本系统与传统计算机视觉方案的优劣,结果如表2所示。 对于两种形式的检测,得益于深度学习的强抗干扰性、外界光照变化以及车辆抖动的干扰因素并未影响系统的检测。其中“预分析”以及“趋势化”也有效避免了系统对驾驶员说话、唱歌、受到光照刺激眯眼睛以及揉眼睛等正常行为的误判,达到了有效、可靠及高準确率的检测。 5 结语 本文采用深度学习YOLOv3目标检测框架与人脸特征点检测方法、英伟达Jetson Nano开发板为开发平台,结合“预分析”与“趋势化”思路,通过多特征融合算法对疲劳驾驶进行识别,能够快速、精准地检测出驾驶员是否疲劳。识别算法基于深度学习对驾驶员面部进行检测,相比传统算法效果更佳;使用级联回归进行人脸特征点高精度检测;通过多特征融合进行检测,与单一特征相比具有更高的可信度与准确率;“预分析”极大地缩小了个体差异带来的影响,鲁棒性好;“趋势化”进一步提高了疲劳驾驶过程化的准确率。在实际测试中,该算法表现良好,判定准确,为疲劳驾驶检测提供了新的思路。但是,本文提出的算法并未对驾驶习惯进行深入探究,今后需要进一步探索与研究。 参考文献: [1]徐慧,朱振洋,肖颖健,等.基于人脸多特征点的疲劳驾驶检测与应用[C]//中国计算机用户协会网络应用分会2019年第二十三届网络新技术与应用年会论文集.2019. [2]张明明.基于方向盘握力的疲劳驾驶检测研究[D].镇江:江苏大学,2016:5. [3]闫保中,王晨宇,王帅帅.基于人眼特征的疲劳驾驶检测技术研究[J].应用科技,2020(1):47-54. [4]许爱东,黄文琦,明哲,等.基于级联网络和残差特征的人脸特征点定位[J].浙江大学学报(工学版),2019(12):2365-2371. [5]张旭欣,王雪松.疲劳驾驶研究与预防最新进展[J].汽车与安全,2019(4):82-87. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。