本发明涉及疲劳驾驶预警技术领域,更具体的说是涉及一种基于深度学习的疲劳驾驶预警系统。
背景技术:
目前,随着人们生活水平的不断提高,随着汽车工业和社会经济的不断发展,开车已经成为人们在日常生活中重要的一部分。然而,多发的交通事故威胁着人们的出行安全,轻则造成经济损失,重则危害人们的生命。
近年来,司机疲劳驾驶已经成为造成机动车事故的主要原因之一。疲劳驾驶,常发生于驾驶员持续驾驶车辆,或不能保证清醒状态时。此时驾驶员的生理和心理机能失衡,在客观上会导致驾驶技能下降。驾驶员的思维、注意力、感知能力、反应力、判断力、意志力和运动神经等方面会受疲劳驾驶的原因影响。长时间的疲劳驾驶,驾驶员会出现困倦疲惫,注意力难以集中,视野逐渐变窄,思维能力下降的情况。甚至会出现精神恍惚或短时间失忆,出现反应迟缓,操作失误或修正时间不及时等不安全因素,极易造成道路交通事故的发生概率。驾驶员疲劳驾驶时判断能力将会下降、反应迟缓,此时操作失误率将会增加。驾驶员面对轻微疲劳时,会导致操作变速箱不及时,不准确;驾驶员面对中度疲劳时,操作动作不连贯,忘记操作的现象也时有发生;驾驶员面对重度疲劳时,往往会机械化操作或出现中途打瞌睡现象,严重时车辆会失去控制。
目前,已经有许多技术被用来检测驾驶员的疲劳状态,这些技术大致可以被分成三类:车辆的驾驶模式、司机的生理状态和计算机视觉技术。但是,基于车辆驾驶模式检测方法的主要缺点是它们的精度取决于车辆及其驾驶员的个人特征;基于生理特征的检测是目前所有疲劳检测方法中准确度最高的,但是,因为要在身体上附加许多的传感器来干扰驾驶员的侵入性,信号的采集可能会给驾驶员带来不适感;生物信号的非侵入性方法存在,但是准确度不高;基于视觉特征的方法通过使用诸如打哈欠,面部表情,头部运动和眼睛状态等非侵入性视觉信息来检测困倦。由于非接触性,基于视觉特征的方法已经成为困倦检测的有前途的研究领域。基于打哈欠和头部运动的方法不能可靠地检测到困倦的发作,因为这些方法并不直接表示困倦。
因此,提供一种通过眼睛闭合以及眨眼频率来判断驾驶员处于困倦等疲劳状态是本领域技术人员亟需解决的问题。
技术实现要素:
有鉴于此,本发明提供了一种基于深度学习的疲劳驾驶预警方法及系统。
为了实现上述目的,本发明采用如下技术方案:
一种基于深度学习的疲劳驾驶预警方法,包括步骤如下:
s1、采集驾驶员眼部图像;
s2、建立fasterr-cnn人眼睁闭检测模型;
s3、用fasterr-cnn对驾驶员眼部图像进行检测,获取框图坐标及检测结果的置信度;
s4、对所有类别进行遍历,将所有置信度大于阈值的类别根据框图坐标进行画框并标注类别,根据类别的不同,画出颜色不同的框体加以区别;
s5、输出检测类别。
优选的,所述步骤s2的具体过程为:
s21、选择rpn作为网络结构,通过cew数据集进行模拟训练;
s22、为锚点打标签,与真实标签的box有最高交并比重叠的锚点或交并比达到0.7的锚点为正标签,交并比低于0.3的锚点为负标签;
s22、对共享卷积层进行训练,对特有层进行参数微调;
优选的,所述类别为睁眼或闭眼。
优选的,所述步骤s3中检测的具体过程为:使用im_detect函数对驾驶员眼部图像进行检测。
一种使用基于深度学习的疲劳驾驶预警方法的系统,包括:参数解析模块,视频采集模块,图像处理模块,识别模块,画框模块,警报模块;
所述参数解析模块用于当程序启动时读入程序的各种参数设定,所述视频采集模块用于采集视频,并将有效视频传输至所述图像处理模块,所述图像处理模块用于读入并记录图像的长度和宽度,并生成一个同样大小的零矩阵,然后,将图像传输至所述识别模块,所述识别模块使用训练后的fastr-cnn检测网络生成检测结果的框图坐标及检测结果的置信度,所述画框模块用于通过识别框图坐标和检测结果置信度,对所有类别进行遍历,将所有置信度大于阈值的类别根据框图坐标进行画框并标注类别,根据类别的不同,画出颜色不同的框体加以区别,所述警报模块用于发送警报信号。
优选的,所述类别为睁眼和闭眼。
优选的,所述警报模块连接有蜂鸣器,当所述警报模块输出高电平时蜂鸣器报警,当警报模块输出低电平时蜂鸣器停止报警。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种通过视频采集模块采集驾驶员眼部图像信息,通过图像处理模块记录图像的长度和宽度,并生成一个同样大小的零矩阵,通过对fasterr-cnn网络的训练,使得识别模块生成检测结果的框图坐标和置信度更加精准,通过画框模块划分类别,当闭眼次数达到阈值是进行报警的基于深度学习的疲劳驾驶预警系统。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1附图为本发明提供的流程示意图。
图2附图为本发明提供的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于深度学习的疲劳驾驶预警方法,包括步骤如下:
s1、采集驾驶员眼部图像;
s2、建立fasterr-cnn人眼睁闭检测模型;
s3、用fasterr-cnn对驾驶员眼部图像进行检测,获取框图坐标及检测结果的置信度;
s4、对所有类别进行遍历,将所有置信度大于阈值的类别根据框图坐标进行画框并标注类别,根据类别的不同,画出颜色不同的框体加以区别;
s5、输出检测类别。
为进一步优化上述技术方案,步骤s2的具体过程为:
s21、选择rpn作为网络结构,通过cew数据集进行模拟训练;
s22、为锚点打标签,与真实标签的box有最高交并比重叠的锚点或交并比达到0.7的锚点为正标签,交并比低于0.3的锚点为负标签;
s22、对共享卷积层进行训练,对特有层进行参数微调;
为进一步优化上述技术方案,类别为睁眼或闭眼。
为进一步优化上述技术方案,步骤s3中检测的具体过程为:使用im_detect函数对驾驶员眼部图像进行检测。
一种深度学习的网络模型训练方法的疲劳驾驶预警系统,包括:参数解析模块1,视频采集模块2,图像处理模块3,识别模块4,画框模块5,警报模块6;
参数解析模块1负责在程序启动时读入程序的各种参数设定,例如是否使用rpn网络、代码所使用网络和模型的名称、是否使用cpu、gpu设备的编号等;视频采集模块2使用opencv的videocapture函数对视频进行捕捉,当摄像头开启时,就会自动读入一帧图像,若读入的图像有效,则将读入的图像传输至图像处理模块3;图像处理模块3在收到送来的这帧图像后,通过numpy包读入并记录图像的长度和宽度,并生成一个同样大小的零矩阵,为未来图像的输出做准备,然后,将图像传输至识别模块4;识别模块4调用了fast_rcnn自带的im_detect函数来进行检测,im_detect函数接收两个参数,分别为net对象和待识别的图像,返回两个参数:box和scores,box是用来存储检测结果的框图坐标,scores是检测结果的置信度;画框模块5通过识别模块4得到的框图坐标和检测结果置信度,首先对所有类别进行遍历,将所有置信度大于阈值的类别根据框图坐标进行画框并标注类别,根据类别的不同—睁眼和闭眼,画出颜色不同的框体加以区别;警报模块6用于发送警报信号。
为进一步优化上述技术方案,警报模块6连接有蜂鸣器7,当警报模块6输出高电平时蜂鸣器7报警,当警报模块6输出低电平时蜂鸣器7停止报警。
实施例
图一所示的为本发明的一个实施过程,系统开启后,参数解析模块1会读取所使用的网络模型和相关配置文件,完成模型的预加载,视频采集模块2开始监控,图像处理模块3记录图像的规格信息(长,宽),然后将其传输识别模块4。识别模块4会返回识别类别的置信度数组和框图坐标数组。经过一系列的处理:从置信度数组和框图坐标数组中获得置信度score和框图坐标(xmin,ymin,xmax,ymax),将它们按列堆叠,一起存入dets数组,对dets数组进行非极大值抑制,即去掉所有的较小区域后,得出识别结果,并调用画框模块5进行画框。每识别出一次闭眼,则闭眼次数统计量加1,每识别出一次睁眼,则闭眼次数统计量减1,当闭眼次数统计量为0时,则不进行减1操作;当闭眼次数统计量大于阈值时,警报模块6发送高电平给蜂鸣器7,蜂鸣器7开始报警,直至闭眼次数统计量为0后,警报模块6才会发送低电平给蜂鸣器7,蜂鸣器7停止警报。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
1.一种基于深度学习的疲劳驾驶预警方法,其特征在于,包括步骤如下:
s1、采集驾驶员眼部图像;
s2、建立fasterr-cnn人眼睁闭检测模型;
s3、用fasterr-cnn对驾驶员眼部图像进行检测,获取框图坐标及检测结果的置信度;
s4、对所有类别进行遍历,将所有置信度大于阈值的类别根据框图坐标进行画框并标注类别,根据类别的不同,画出颜色不同的框体加以区别;
s5、输出检测类别。
2.一种基于深度学习的疲劳驾驶预警方法,其特征在于,所述步骤s2的具体过程为:
s21、选择rpn作为网络结构,通过cew数据集进行模拟训练;
s22、为锚点打标签,与真实标签的box有最高交并比重叠的锚点或交并比达到0.7的锚点为正标签,交并比低于0.3的锚点为负标签;
s22、对共享卷积层进行训练,对特有层进行参数微调。
3.一种基于深度学习的疲劳驾驶预警方法,其特征在于,所述类别为睁眼或闭眼。
4.一种基于深度学习的疲劳驾驶预警方法,其特征在于,所述步骤s3中检测的具体过程为:使用im_detect函数对驾驶员眼部图像进行检测。
5.一种使用权利要求1-4中任意一项所述的基于深度学习的疲劳驾驶预警方法的系统,其特征在于,包括:参数解析模块(1),视频采集模块(2),图像处理模块(3),识别模块(4),画框模块(5),警报模块(6);
所述参数解析模块(1)用于当程序启动时读入程序的各种参数设定,所述视频采集模块(2)用于采集视频,并将有效视频传输至所述图像处理模块(3),所述图像处理模块(3)用于读入并记录图像的长度和宽度,并生成一个同样大小的零矩阵,然后,将图像传输至所述识别模块(4),所述识别模块(4)使用训练后的fastr-cnn检测网络生成检测结果的框图坐标及检测结果的置信度,所述画框模块(5)用于通过识别框图坐标和检测结果置信度,对所有类别进行遍历,将所有置信度大于阈值的类别根据框图坐标进行画框并标注类别,根据类别的不同,画出颜色不同的框体加以区别,所述警报模块(6)用于发送警报信号。
6.根据权利要求5所述的一种基于深度学习的疲劳驾驶预警系统,其特征在于,所述类别为睁眼和闭眼。
7.根据权利要求5所述的一种基于深度学习的疲劳驾驶预警系统,其特征在于,所述警报模块(6)连接有蜂鸣器(7),当所述警报模块(6)输出高电平时所述蜂鸣器(7)报警,当所述警报模块(6)输出低电平时所述蜂鸣器(7)停止报警。
技术总结