科学技术创新2021.13
基于深度学习的疲劳驾驶检测系统
饶睿
(广西科技大学,
广西柳州545026)中国每年因疲劳驾驶引起的交通事故占总体交通事故的20豫[1]。应进行驾驶员的疲劳状态检测,从而使得有效预警和干预成为可能,这是提高行车安全、尤其是长途驾驶安全的重要保障技术。
传统疲劳检测方法主要使用类似HOG 特征,Haar 特征等[2]
用于特征描述,分类器主要使用SVM 分类器等[3]。如今深度学习
在目标检测领域取得很大进步,
基于CNN 的疲劳检测已成为当前的热点[4],例如,张芳等[5]使用面部关键点提取眼睛图像,使用CNN 来确定眼睛位置和形态,提取眼部特征用于检测疲劳驾驶。本文采用单发多框检测器(Single Shot Multibox Detector ,
SSD ),同时对人眼睛和嘴巴进行定位与状态的识别,
这种方法检测效果更为稳定,且识别率更高。
1样本库的建立
本文自制数据集包括来自7名被采集对象的4823张图像,
其中包括不同头部状态、是否佩戴眼镜、不同场景以及2353张
来源于现实驾驶场景的视频录像的图片。采用标注工具LabelImg 对图像中的眼部和嘴部特征进行标注[6],一共四个分为四个类别,其中O_eye 代表眼睛张开、C_eye 代表眼睛闭合、类似的、O_mouth 和C_mouth 分别对应与嘴巴张开或闭合。完成标注并保存后LabelImg 将为图片生成相对应的XML 格式的标注文件。
2网络结构
2.1SSD 网络介绍
SSD 全称为单发多框检测器,
是一种深度卷积神经网络。常见目标检测算法有区域卷积神经网络(R-CNN )系列、YOLO 系列等,而SSD 兼顾精度和检测速度[7]。
2.2网络结构
其基础网络是一个在ImageNet 上针对图像分类预训练后
的VGG-16模型,为了使该网络结构能够进行目标检测,
对部分网络层进行微调。微调后的网络图(图1)包括:使用卷积并替换
全连接层、移除dropout 层、使用一个扩张卷积替换最后的最大
池化层。
为了得到感受野变化的特征图,
在基础网络层后,叠加卷积核大小依次缩小的卷积层以生成更小的特征图,
这样就构成了完整的SSD 网络(图2)。
2.3SSD 网络的核心思想
2.3.1对多个尺度的特征图进行操作
首先在输入图像中通过卷积提取出特征图,并以提取后的特征图的像素为中心生成先验框以减少数据量。通过提取较多区域来检测小目标,提取较少区域来检测的目标的方法产生多个尺度的特征图。
2.3.2在位置确定和类别判定中应用CNN
在通过辅助CNN 层后将生成大小各异的特征图
(对应于不同感受野),该操作不但能降低参数规模,
还能提高对不同大小目标的检测准确率。
2.4训练方法2.4.1匹配策略
通过计算像素重合的交并比来衡量此时先验框和真实物体的相似度。
(1)
2.4.2损失
函数
总体损失函数为定位损失(loc )和置信度损失(conf )的加权和:(2)
摘要:基于面部特征的疲劳驾驶检测算法通常效果较好,但其特征提取大都基于人脸检测实现,
设计了一种基于深度学习的多特征融合疲劳驾驶检测系统,该系统基于深度卷积神经网络,
采用开源的深度学习框架搭建网络,自制数据集,完成人眼与嘴巴标注并用于网络训练。通过对比试验,训练后的网络能够适应复杂外部干扰,
疲劳驾驶预警系统解决了传统算法对头部姿态和面部遮挡鲁棒性差的问题,能有效识别疲劳状态,在测试集中总体准确率能到96%。
关键词:深度学习;疲劳驾驶;
目标检测中图分类号:U463.6,TP391.41文献标识码:A 文章编号:2096-4390(2021)13-0172-02本论文研究受广西科技大学“大学生创新创业训练计划”项目支持,项目号:201910594267。
图1VGG-16基础网络
图2SSD300模型
,A B J A B A B
,,,1
,,,conf loc L x c l g L x c L x l g N
172--
2021.13科学技术创新其中c 表示分类标签,l 表示先验框,g 表示实际目标所在的矩形框,N 表示与真实边框匹配的先验框的数量,默认为1,为权重调整参数。位置的偏离程度采用平滑后的范数损失进行衡量:(3)(4)(5)(6)(7)(8)
其中x 是0到1之间的实数,d 为目标检测的先验框。如果
x=1,表示第i 个先验框与第j 个实际目标位置一致,P 为此时实际目标框的类别,如果x=0,则先验框和实际目标框的类别不一致,此时将其视为负例,且不再计算其位置偏移值。(cx,cy ),w ,h
分别表示矩形框的中心位置,
宽度和高度。分类错误的惩罚采用交叉熵损失函数:
(9)
3疲劳状态评估方法
PERCLOS 是驾驶疲劳判定的重要指标,原理是通过计算一段时间的眼睛闭合时间所占比例判断疲劳状态,我们选择P80标准判断驾驶员是否疲劳[8]。
图3人眼睁开程度示意图
通过图3可得到PERCLOS 值的计算公式为
(10)
通过计算一段连续视频中的闭眼状态的单帧图像数K 和视频单帧图像总数N 可计算计算PERCLOS 值:
(11)
本文提出一种基于模糊综合评价的疲劳,对于人的不同疲劳状态特征划分疲劳状态,通过对不同特征给予不同权重计算
加权和,来判定是否存在疲劳驾驶,
将最终的驾驶员状态确定为三者之一:为清醒、疲劳与重度疲劳。状态评估值计算公式如下:(12)
其中P 代表PERCLOS 值,B 统计闭眼次数,C 记录眼睛持续保持闭合状态的最长时间,Y 代表张嘴次数,V P 、V B 、V C 、V Y 为不同状态下的指标P 、B 、C 、Y 所处评级的评价,设F1为疲劳状态
下阈值,F2为重度疲劳状态下的阈值,将计算得到的评估值F
与F1和F2进行比较,若F 的值小于F1则判定驾驶员处于清醒状态,若F 的值在F1和F2之间,则将当前驾驶员分类为第一种状态(疲劳),若F>F2,则认为当前驾驶人员已经处于第三种状态(重度疲劳)。根据实验结果,F1设定为5.6,F2设定为
7.8。4系统评估为了验证算法的有效性,我们让5名测试者在不同条件下,模拟疲劳和重度疲劳状态下并用摄像机采集视频。表1检测结果
如表1所示,检测算法在数据集上的检测结果,
当驾驶员为重度疲劳时,检测的准确率达到了100%,当驾驶员在疲劳和清
醒状态时的准确率稍低,分别有一个判断错误,
这是因为哈欠的时候错误判断了驾驶员的状态,算法的总体正确率达到了96%,表现出了较好的准确性。
结束语
本文实现了一种基于深度卷积神经网络SSD 的疲劳检测算法,本算法将目标检测运用到疲劳特征的检测当中以此获得驾驶员眼部和嘴部实时状态信息,判定驾驶员状态。测试结果表
明基于SSD 的疲劳检测算法能够在速度、
准确度、鲁棒性上达到较好的平衡。
参考文献
[1](2011).Road Safety in Canada.Accessed:Mar.24,2017.[EB/OL].Available:a/.
[2]陆星家,陈志荣,尹天鹤,杨帆.基于HOG 和Haar 特征的行人追踪算法研究[J].计算机科学,2013,40
(S1):199-203.
[3]刘梦佳,赵建国.基于SVM 的疲劳驾驶人脸图像特征检测算法[J].半导体光电,2020,41(02):278-282.
[4]吴雪,宋晓茹,高嵩,陈超波.基于深度学习的目标检测算法综述[J].传感器与微系统,2021,40(02):4-7+18.
[5]Zhang F,Su J,Geng L,et al.Driver fatigue detection based on eye state recognition [C]//2017International Conference on Machine Vision and Information Technology (CMVIT).IEEE,2017:105-110.
[6]黄生鹏,范平清.基于深度学习的实时车辆检测研究[J].软件工程,2021,24(01):13-16+5.
[7]陈科名.基于SSD 的多尺度目标检测算法研究[D].北京:
北京交通大学,2020.
[8]郭永彩,李文涛,高潮.基于PERCLOS 的驾驶员疲劳检测算法[J].计算机系统应用,2009,18(08):54-57.
1,,,,,g loc m N k m ij
i i L i Pos m cx cy w h L x l g x sm l
$µcx cx cx j i j w i g d g d µcy cy
cx j i j
h
i g d g d µlog w w j j w i g g d µlog h j j n i h g g d 210.5if 1smooth 0.5
otherwise
L x x x 0ˆˆ(,)log exp exp ˆN p p ij i i i Pos i Neg p i p i p i p L x c x c c c c c
32
41
100%t t f t t
100%K
f N
0.40.150.30.15P B C Y F V V V V
视频 分类 视频 数目 正确识别个数 准确率 疲劳 17 16 94.1% 重度疲劳 8 8 100% 清醒 25 24 96% 全部视频
50
48
96%
173--
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论