首页|基于计算机视觉和深度学习的疲劳驾驶检测算法研究

基于计算机视觉和深度学习的疲劳驾驶检测算法研究

贾慧杰

基于计算机视觉和深度学习的疲劳驾驶检测算法研究

贾慧杰1
扫码查看

作者信息

  • 1. 齐鲁工业大学
  • 折叠

摘要

疲劳驾驶是造成交通事故的重要原因,因此实现有效的疲劳驾驶检测尤为重要。目前的疲劳驾驶检测算法存在舒适性差、易受外界因素影响(光照强度、戴口罩、戴太阳镜)、准确度低、实时性差等问题。现有的疲劳检测算法大多是基于单网络的,由于司机处于疲劳驾驶状态时,每个司机所呈现的疲劳状态会有差异,因此基于单网络的疲劳检测算法很难同时准确的检测出驾驶员所有的面部特征。针对这些问题,本文设计了基于计算机视觉和深度学习的疲劳驾驶检测系统。该系统包括人脸检测模块、头部姿态估计模块、眼嘴状态判断模块以及多因素融合判定模块。首先通过人脸检测模块检测驾驶员的人脸和五个特征点,并根据特征点截取出驾驶员眼睛和嘴区域。将检测到的驾驶员人脸图像和截取到的眼睛和嘴区域分别传入到头部姿态估计模块和眼嘴状态判断模块中,来计算驾驶员的头部姿态角和进行眼嘴状态判断。最后通过多因素融合判定模块综合的对驾驶员的疲劳状态进行判定。本文主要工作和创新点如下: 1.在人脸检测模块中本文设计了一款轻量人脸检测网络。该网络可以在减少计算量、提高推理速度的同时保证了准确率,实现了在驾驶过程中可以实时、准确的进行人脸检测和人脸对齐。网络包括特征提取、特征融合、多任务损失函数三个部分构成。本文设计了新的损失函数,该损失函数除了进行人脸框回归外还可以回归人脸五个特征点,有助于人脸检测。新损失函数可以使模型收敛更快、人脸框回归更稳定,提升网络准确度。 2.在头部姿态估计模块中本文设计了一个用于计算驾驶员头部姿态角的网络。该网络将头部姿态回归问题转化为分类问题,采用由粗到细的分类策略。与利用CNN提取二维人脸关键点的主流方法相比,该网络计算复杂度更低、准确率更高、检测速度更快。 3.在眼嘴状态判断模块中本文使用对全局信息把握能力更好的Transformer来代替CNN。Transformer利用自身的自注意力机制能更好的学习图像的全局信息。同时为了更加充分的利用图片的上下文信息,本文对Transformer中的self-attention机制进行改进,首先对key进行上下文编码,然后通过卷积来生成注意力矩阵。 4.驾驶员在出现疲劳状态时面部多个特征会有明显的变化,如眨眼频率的变化,打哈欠次数增多,眼睛闭合时间变长,头部姿态不端正等现象。因此本文根据驾驶员的眼睛、嘴和头部姿态三个面部特征设计了MF-Algorithm,通过头部姿态估计模块和眼嘴状态判断模块的输出,根据眨眼频率、闭眼时间比例、单次闭眼时长、打哈欠时间比例以及头部姿态多个因素综合判断驾驶员是否存在疲劳驾驶的情况。 5.利用多个模块检测驾驶员的面部特征,并利用多个模块的信息来综合进行判断,各个模块互相作用减少外界因素的干扰,可以有效地解决驾驶员开车时戴墨镜或口罩导致嘴或眼睛被遮挡的问题。 整个系统基于计算机视觉和图像处理技术来获取驾驶员面部特征。该系统仅需要在驾驶员前方放置一个RGB相机,保证了驾驶员的舒适性。利用多个网络相互结合可以减少外界因素的影响,利用驾驶员多个面部特征进行综合判断可以提升系统的准确度。在WIDERFACE和BIWI公共数据集上证明了各个模块的有效性,同时,整个系统在自建数据集上进行测试,准确度到达了97.8%。

关键词

疲劳驾驶检测/人脸检测/头部姿态估计/自注意力机制

引用本文复制引用

授予学位

硕士

学科专业

电子信息

导师

肖中俊

学位年度

2023

学位授予单位

齐鲁工业大学

语种

中文

中图分类号

TP
段落导航相关论文