首页 > 编程语言 >基于深度学习的疲劳检测算法

基于深度学习的疲劳检测算法

时间:2024-04-02 11:02:58浏览次数:27  
标签:疲劳 特征 检测 MTCNN 算法 深度 Net

摘要:为了实现对驾驶员驾驶状态的检测预警,避免发生交通事故。提出了一种基于改进多任务级联卷积神经网络(Multi-Task Convolutional Neural Networks,MTCNN)人脸检测及多特征融合的疲劳检测方法。算法利用改进的MTCNN进行人脸检测和面部9个特征点定位;基于特征点确定出嘴巴、眼睛区域输入多尺度深度可分离卷积神经网络(Multi-Scale Depth Separable Networks,MSDS-Net),以识别嘴巴和眼睛的状态。算法融合眼睛闭合率(ECR)、嘴巴张合率(MCR)和头部非正脸率(NFR)三个特征参数并进行疲劳状态判定,在YawDD数据集和课题组自制数据集上查准率和查全率分别为96.22%,98.08%。
关键词:多任务级联卷积神经网络;人脸检测;疲劳检测;MSDS-Net;YawDD
中图分类号:TP391.4文献标志码:A文章编号:1008-1739(2020)08-68-4

在这里插入图片描述

0引言

疲劳驾驶是引发交通事故的重要因素[1],实时疲劳状态检测对减少交通事故非常重要。目前,疲劳检测的方法主要有基于驾驶员生理参数的检测方法[2]、基于驾驶行为及车辆状态的检测方法[3]和基于驾驶员视觉特征的检测方法[4]3种。传统的基于驾驶员视觉特征的检测算法容易受光线、姿势等因素的影响,以及单一指标判别造成检测准确率、鲁棒性低等问题。基于以上问题,提出了基于深度学习的疲劳检测改进算法,使用卷积神经网络对驾驶员的眼睛、嘴巴、头部进行多特征的提取与状态的识别,实现多特征融合的疲劳状态的判定。

1基于人脸检测及多特征融合的疲劳检测算法

基于深度学习的疲劳检测算法分为人脸及特征点检测定位模块、特征状态识别模块和疲劳状态判定模块,如图1所示。

在这里插入图片描述

1.1改进MTCNN人脸及特征点检测定位模型
MTCNN是一種基于多任务级联的卷积神经网络,网络框架如图2所示,主要包括P-Net,R-Net,O-Net。将原始图像缩放得到图像金字塔,通过P-Net检测出大量候选框;通过R-Net对候选框的进一步调整;通过O-Net对预测框进行更精确的定位,最终输出边界框坐标和特征点信息。

在这里插入图片描述

对MTCNN模型进行改进,在原有5个特征点(左右眼睛、左右嘴角、鼻尖)的基础上增加4个特征点(眉心、左右脸颊、下巴中心点)进行训练,目的是为了更准确实现头部姿态的判定。同时,在O-Net网络结构中添加多尺度池化层增强网络对多尺度特征图的处理能力,提高网络检测精度。同时,修改O-Net网络中的任务权重,使之侧重训练特征点,以得到更加准确的特征点定位,为后续特征的提取做好准备,MTCNN三层网络结构以及O-Net网络的改进部分如图3所示。

在这里插入图片描述

1.2基于MSDS-Net的眼嘴状态识别模块
提出了基于MSDS-Net实现对眼睛和嘴巴状态的识别,眼睛与嘴巴的识别方法相同。网络仅使用3×3的深度可分离卷积,在max pooling前将多个3×3卷积堆叠在一起,组成卷积块结构。
网络使用了BatchNormalization对数据流进行优化,同时设置Dropout为0.25的随机失活系数,防止网络过拟合[5],优化方法使用了适应性矩阵估计(Adaptive Moment Estimation, Adam)方法。
1.3头部姿态识别模块

在这里插入图片描述

2多特征融合的疲劳检测算法

依据网络识别出的眼睛、嘴巴和头部姿态,本文借鉴PERCLOS准则,设定ECR,MCR,NFR三种特征指标,通过多特征指标融合策略进行驾驶员疲劳程度的判定,疲劳判定模块流程图如图5所示。

在这里插入图片描述

2.1 PERCLOS
PERCLOS是在单位时间内眼睛闭合时间所占的百分比[6],有P70,P80,EM三种标准。P80标准认为眼睛开度低于20%为闭合状态,高于80%为睁开状态。原理如图6所示,计算公式如式(2)所示。

在这里插入图片描述
在这里插入图片描述

3实验结果与分析

3.1人脸检测及特征点定位模型训练与结果分析
改进的MTCNN人脸检测采用WIDER Face作为训练数据,特征点训练采用新增4个(眉心、下巴中心点和左右脸颊)标注信息的MTFL数据集。使用FDDB人脸数据集作为测试数据,FDDB人脸检测数据集包含了5 171个人脸分布在2 845张图片上。本文是在Ubuntu16.04环境下基于Python和Tensorflow1.8.0进行算法模型的训练和性能的测试。为了验证算法的改进效果,在FDDB数据集上与原MTCNN算法进行对比试验。实验结果如图7所示,图7(a)为连续ROC曲线,表示检测框与真实框的相近程度;图7(b)为离散ROC曲线,表示人脸是否被检测到。从实验结果可以看出,本文改进的MTCNN算法优于原始算法。

在这里插入图片描述

基于后期头部姿态的判定和眼睛、嘴巴特征提取的需要,本文在算法原始5个特征点的基础上新增4个特征点进行训练,新增特征点后的图片示例以及相应特征提取示例如图8所示。
3.2眼睛嘴巴状态模型训练与结果分析
实验使用CEW闭眼数据集和自建嘴巴数据集进行模型的训练和测试。CEW数据集包含睁眼状态样本2 462个,其中训练样本2 112个,测试样本350个。闭眼状态样本2 384,其中训练样本2 034个,测试样本350个。嘴巴数据集包含张嘴样本1 921个,其中训练样本1 721个,测试样本200个。闭嘴样本998个,其中训练样本839个,测试样本159个。嘴巴眼睛数据集样本示例如图9所示。

在这里插入图片描述

实验中网络设置batch_size为32,学习率为0.01,设置Dropout为0.25,网络设置最大训练Epoch为40,最终眼睛和嘴巴训练曲线如图10所示。在测试集上眼睛的准确率在40个epoch之后达到0.98,嘴巴的准确率在40个epoch之后达到0.99。

在这里插入图片描述

3.3疲劳检测仿真实验与结果分析
疲劳状态仿真实验使用YawDD数据集[7]以及课题组志愿者自己录制模拟驾驶过程视频作为仿真数据,2种数据中均含有干扰因素如眨眼、说话及笑等干扰状态,不同实验条件下(正常光线、暗光和强光)实验效果如图11所示。

在这里插入图片描述

由图11中实验结果可看出,本文所设计算法以及疲劳判定策略能准确检测出驾驶员状态。
为了进一步验证算法的可行性,本文随机选取YawDD视频数据中5个female数据和5个male数据,以及2个课题组自制视频数据,统计这12个视频(总计841 s)中真实疲劳次数,以及算法识别疲劳次数。通过与传统疲劳检测方式对比实验,查看算法查全率与查准率,实验数据如表1所示。查准率为=( - )/( - +),查全率为=( - )/,其中表示真实疲劳次数,表示漏检的次数,表示误检的次数。从实验结果可以看出,本文算法的查准率和查全率均优于传统算法,误检和漏检情况主要是出现在暗光线下的,相对来说正常光照下查全率和查准率会更高。

在这里插入图片描述

4结束语

本文提出了一种基于改进MTCNN人脸检测及多特征融合的疲劳检测方法。首先通过改进的MTCNN网络实现人脸定位和相应特征点定位,提取出识别驾驶员疲劳状态所需的眼睛和嘴巴特征,同时根据特征点数据结合头部姿态判定策略判别出驾驶员头部姿态。然后,将提取的眼睛嘴巴特征输入MSDS-Net进行状态的识别,最后依据ECR,MCR,NFR三种特征指标融合的疲劳判定策略,实现驾驶员状态判定。通过相关实验表明针对不同的实验环境本文算法有较高的鲁棒性、查准率和查全率,达到检测的要求。

参考文献

[1]孔质彬,刘翔,秦文玉,等.道路交通事故的成因和地区分布特点研究[J].中国社会医学杂志,2018,35(1):31-33.
[2]王琳,化成城,姜鑫,等.基于颈腰部肌电及脑电信号的疲劳驾驶检测[J].东北大学学报(自然科学版),2018,39(1): 102-107.
[3] WU G,HE J,NIE P,et al.Driver’s Posture Detection Based on Centroid Coordinates of Two-hand (arm) Region[C]//2018 IEEE 3rd International Conference on Communication and Information Systems (ICCIS),IEEE,2018:23-27.
[4] ZHANG Zhiwei,ZHANG Ruijun,HAO Jianguo,et al.Fatigue Driving Detection and Warning Based on Eye Features[C]// The Euro-China Conference on Intelligent Data Analysis and Applications. Springer, Cham,2018: 491-498.
[5]李兆旭,陳之坤,李永毅,等.基于LBP和级联XGBoost的驾驶员打电话行为检测算法[J].信息与电脑(理论版), 2019,(3): 72-76.
[6] WANG JJ,XU W,GONG YH. Real-time Driving Danger-Level Prediction[J]. Engineering Applications of Artificial Intelligence,2010,23(8):1247-1254.
[7] ABTAHI S, OMIDYEGANEH M, SHIRMOHAMMADI S, et al. YawDD: a yawning Detection Dataset[C]//Proceedings of the 5th ACM Multimedia Systems Conference, ACM, 2014: 24-28.

标签:疲劳,特征,检测,MTCNN,算法,深度,Net
From: https://blog.csdn.net/qq_1406299528/article/details/137262167

相关文章

  • 基于深度学习的咖啡豆叶片病害识别算法设计与实现任务书
    一、毕业设计(论文)课题的背景咖啡原产于非洲热带地区,距今发展己有1300多年的的历史。作为饮料,咖啡具有健胃、消食、利尿、醒脑、提神等功效。咖啡含有淀粉、糖分、脂肪和蛋白质等多种营养成分。其中小粒咖啡的主要成分含量为:粗纤维17.94、蛋白质13.86、粗脂肪11.97、淀粉6.......
  • 基于深度学习的健身动作识别纠正系统设计与实现开题报告
    一、本课题研究意义随着人们对身体健康和自身形体的愈发重视,健身逐渐成为人们日常生活中的一个重要部分,而科学的健身和标准的健身动作可以使人们健身时能够更好地拥有好的形体和保护自己的安全,防止不规范的动作造成的肌肉拉伤和无效化健身。本系统视频识别以深度学习中的S......
  • 对二叉树深度优先遍历php算法实现的改进(先序遍历,中序遍历,后序遍历)
        树是一种数据结构,二叉树是一种特殊的树。二叉树的特点是每个结点最多有两个儿子。以某种特定顺序访问树中所有的节点称为树的遍历,今天在查看了这遍文章:https://www.cnblogs.com/ivy-zheng/p/10995492.html 中对树的遍历的实现之后我对其PHP遍历算法代码进行了重构,这次......
  • 二叉树结点关键字输出的递归算法实现
    在计算机科学中,二叉树是一种重要的数据结构,广泛应用于各种算法和程序设计中。二叉树的遍历是二叉树操作中的基础问题之一,其目的是以某种规则访问二叉树的每个结点,使得每个结点被且仅被访问一次。给定一个具有n个结点的二叉树,我们需要编写一个递归过程,以O(n)的时间复杂度输出......
  • 基于栈结构的非递归二叉树结点关键字输出算法
    基于栈结构的非递归二叉树结点关键字输出算法一、引言二、二叉树基本概念三、非递归遍历算法基础四、算法设计五、算法实现六、C代码示例七、算法分析八、优化与讨论一、引言在计算机科学中,二叉树是一种重要的数据结构,它广泛应用于各种算法和数据结构中。对于二叉树......
  • 从原理到应用探索深度学习的技术
    随着大数据和计算能力的飞速发展,深度学习作为人工智能领域的一个重要分支,已经引起了广泛的关注和研究。深度学习通过模拟人脑神经网络的运作方式,使得机器能够学习并理解数据的内在规律和特征,从而实现更高级别的智能化。本文将深入探讨深度学习的基本原理、关键技术及其在各个领域......
  • 深度学习训练服务器怎么选?
        深度学习(DeepLearning)可以完成需要高度抽象特征的人工智能任务,如机器视觉和图像识别、自然语言处理、语音识别和机器翻译等。深度学习采用的模型为深层神经网络(DeepNeuralNetworks,DNN)模型,即包含多个隐藏层(HiddenLayer,也称隐含层)的神经网络(NeuralNetworks,NN)。深......
  • 深度干货|谈谈阿里云AnalyticDB Spark如何构建低成本数据湖分析
    文/李少锋阿里云瑶池旗下的云原生数据仓库AnalyticDBMySQL版是基于湖仓一体架构打造的实时湖仓。本文将分享AnalyticDBMySQLSpark助力构建低成本数据湖分析的最佳实践。全文目录:AnalyticDBMySQL介绍AnalyticDBMySQLServerlessSpark核心优化基于AnalyticDBMySQL......
  • 深度学习-卷积神经网络--Mask RCNN-62
    目录1.总体网络结构2.MaskRCNN细节3.loss4.预测参考链接:https://blog.csdn.net/qq_47233366/article/details/131326554?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522171196013016800213023649%252522%25252C%252522scm%252522%25253A%252522201......
  • Offer必备算法20_队列_宽搜bfs_四道力扣题详解(由易到难)
    目录①力扣429.N叉树的层序遍历解析代码②力扣103.二叉树的锯齿形层序遍历解析代码③力扣662.二叉树最大宽度解析代码④力扣515.在每个树行中找最大值解析代码本篇完。①力扣429.N叉树的层序遍历429.N叉树的层序遍历难度中等给定一个N叉树,返回其节......