疲劳驾驶检测方法、装置、计算机设备和存储介质与流程

文档序号:17237292发布日期:2019-03-30 08:25阅读:185来源:国知局
疲劳驾驶检测方法、装置、计算机设备和存储介质与流程
本发明涉及疲劳驾驶检测领域,特别涉及一种疲劳驾驶检测方法、装置、计算机设备和存储介质。
背景技术
:研究表明,交通事故中80%-90%是人的因素造成的,而疲劳驾驶则是主要因素之一。其中,超长时间驾驶是导致疲劳驾驶的主要原因之一。当前在检测疲劳驾驶时,其检测方法主要有美国研制的打瞌睡驾驶人员侦探仪、放线盘监视装置、日本研制的das2000型路面警告仪和反应时测试仪pvt,这些检测方法中的检测用的传感器都是接触性的,在实际行车过程中往往易造成驾驶员不适或者影响驾驶员操作,且在长时间连续驾驶过程中无法较为客观的检测当前驾驶员是否违规超长时间驾驶。技术实现要素:基于此,有必要针对疲劳驾驶检测容易影响驾驶员操作,在长时间连续驾驶过程中无法客观检测当前驾驶员是否违规超长时间驾驶的问题,提供一种疲劳驾驶检测方法、装置、计算机设备和存储介质。一种疲劳驾驶检测方法,包括以下步骤:按照预设时间间隔从摄像视频中采集当前驾驶员的面部图像;从面部图像中提取面部特征信息,存储当前提取的面部特征信息;比对当前提取的面部特征信息与前若干次存储的面部特征信息是否全部一致;若全部一致,则判定当前驾驶员为疲劳驾驶。在一个实施例中,所述比对当前提取的面部特征信息与前若干次存储的面部特征信息是否全部一致之后,还包括:若当前提取的面部特征信息与前若干次存储的任意一面部特征信息不一致,则从当前面部图像中提取疲劳特征信息;判断当前的疲劳特征信息是否超过预设的疲劳阈值,若当前的疲劳特征信息超过预设的疲劳阈值,则判定当前驾驶员为疲劳驾驶。在一个实施例中,所述疲劳阈值预设有多个,用于区分驾驶员的疲劳程度。所述判断当前的疲劳特征信息是否超过预设的疲劳阈值,若当前的疲劳特征信息超过预设的疲劳阈值,则判定当前驾驶员为疲劳驾驶之后,还包括:根据当前的疲劳特征信息,以各疲劳阈值为参考,判断当前驾驶员的疲劳程度,依据当前驾驶员的疲劳程度发出相应的警示。在一个实施例中,在所述按照预设时间间隔从摄像视频中采集当前驾驶员的面部图像之后,所述方法还包括以下步骤:对当前采集的驾驶员面部图像进行灰度化处理,获得灰度面部图像,并对灰度面部图像进行增强,具体表达式为:其中,f(x,y)表示原面部图像的灰度值,g(x,y)表示灰度增强后的面部图像的灰度值,h1表示满足时的最大灰度值,h2表示满足时的最小灰度值,hist[]表示灰度增强后面部图像的灰度值直方图,n表示灰度增强后面部图像的总像素。相应的,所述从面部图像中提取面部特征信息,包括:从灰度增强后的面部图像中提取面部特征信息。在一个实施例中,所述从面部图像中提取面部特征信息包含:通过卷积神经网络的卷积层以相同的权重参数对至少一帧面部图片进行滑动取样;通过卷积神经网络的二次采样层对滑动取样的数据进行去冗余处理,得到面部特征信息。在一个实施例中,所述从面部图像中提取面部特征信息,存储当前提取的面部特征信息,包括通过环形缓存区对当前提取的面部特征信息进行存储;所述比对当前提取的面部特征信息与前若干次存储的面部特征信息是否全部一致之前,包括从所述环形缓存区读取前若干次存储的面部特征信息。在一个实施例中,所述环形缓存区包括1个写指针write_pos,m个读指针read_pos(i),m为大于等于1的自然数,1≤i≤m;其中,读指针read_pos(1)跟随写指针write_pos之后,读指针read_pos(i+1)跟随读指针read_pos(i)之后;环形缓存区的存储空间的大小为queue_size,queue_size≥m+1;通过写指针write_pos将当前提取的面部特征信息写入到环形缓存区相应的存储空间内;通过m个读指针read_pos(i)将前若干次存储到环形缓存区相应的存储空间内的各面部特征信息一一读取出来。一种疲劳驾驶检测装置,包括面部图像采集模块、面部特征信息提取模块、面部特征信息存储模块、面部特征信息比较模块,其中,所述面部图像采集模块,设置为从摄像视频中连续采集当前驾驶员的若干帧面部图像。所述面部特征信息提取模块,设置为从面部图像中提取面部特征信息。所述面部特征信息存储模块,设置为存储当前提取的面部特征信息。所述面部特征信息比较模块,设置为比对当前提取的面部特征信息与前若干次存储的面部特征信息是否全部一致,若全部一致,则判定当前驾驶员为疲劳驾驶。一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述疲劳驾驶检测方法的步骤。一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述疲劳驾驶检测方法的步骤。上述疲劳驾驶检测方法、装置、计算机设备和存储介质,通过在预设时间内以预设的时间间隔采集驾驶员的面部图像,将从当前面部图像提取的特征信息与前若干次存储的面部特征信息进行比对,判断当前驾驶员是否超长时间驾驶或者在该预设时间内有无充分休息,从而识别出在长时间的连续驾驶过程中当前驾驶员是否疲劳驾驶;此外,通过识别当前驾驶员的面部疲劳特征信息,来判断驾驶员是否进入疲劳状态;可有效做出相应预警提示,且不影响驾驶员的操作,为驾驶员的出行做好充分的安全保证。附图说明图1为本发明一个实施例中一种疲劳驾驶检测方法的流程示意图;图2为本发明一个实施例中提取面部特征信息的方法流程示意图;图3为本发明一个实施例中一种疲劳驾驶检测装置的结构示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本
技术领域
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可以包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、程序、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、程序、步骤、操作、元件、组件和/或它们的组。如图1所示,一种疲劳驾驶检测方法,包括如下步骤s1-s6:s1、采集面部图像:按照预设时间间隔从摄像视频中采集当前驾驶员的面部图像。在汽车的任一可监控到驾驶人员面部表情的位置(比如方向盘或者前排玻璃)安装一摄像装置,通过所述摄像装置获取驾驶人员的面部图像。在一个实施例中,步骤s1还包含以下步骤:对当前采集的驾驶员面部图像进行灰度化处理,获得灰度面部图像,并对灰度面部图像进行增强,具体采用如下式子:其中,f(x,y)表示原面部图像的灰度值,g(x,y)表示灰度增强后的面部图像的灰度值,h1表示满足时的最大灰度值,h2表示满足时的最小灰度值,hist[]表示灰度增强后面部图像的灰度值直方图,n表示灰度增强后面部图像的总像素。增强后的面部图像用于提取面部特征信息。s2、提取及存储面部特征信息:从面部图像中提取面部特征信息,存储当前提取的面部特征信息。如图2所示,在一个实施例中,步骤s2中所述从面部图像中提取面部特征信息包含以下步骤:s21:通过卷积神经网络(cnn)的卷基层以相同的权重参数对至少一帧面部图片进行滑动取样;预设5*5宽度的卷积窗,通过卷积窗从面部图片的起始位置开始,逐步对面部图片数据进行遍历,对面部图片进行取样。s22:通过卷积神经网络的二次采样层对滑动取样的数据进行去冗余处理,得到面部特征信息。所述卷积神经网络通过卷积层提取图片的不同特征,通过二次采样层对提取到的特征进行采样,以去除由于图像内部相邻像素之间存在较强的相关性所造成的空间冗余信息(在一个卷积神经网络中可以包含多个卷积层,二次采样层)。本实施例使用卷积神经网络,对采集的面部图片进行面部特征提取,再将提取的各面部特征信息串联起来构成最终完整的子图片特征,用于面部识别。卷积神经网络中同一层中的权重参数可以共享,因为同一张图片的各个不同区域具有一定的相似性,这样解决了全连接计算量过大问题。s3、比较面部特征信息:比对当前提取的面部特征信息与前若干次存储的面部特征信息是否全部一致,若为是,则判定当前驾驶员为疲劳驾驶,并执行s6;若为否,则执行s4。通过将当前采集的驾驶员的面部特征信息与前若干次存储的面部特征信息进行比对,以此判断一段时间内采集的面部图像中的驾驶员是否为同一人。《交通安全法实施条例》第62条规定,机动车驾驶人不得连续驾驶机动车超过4小时未停车休息,或者停车休息时间少于20分钟。也就是说,通过判断4个小时内采集的面部图像中的驾驶员是否为同一人,可以在时间上识别出驾驶员是否疲劳驾驶。因此,每次疲劳驾驶的检测最大时间间隔设置在4个小时以内比较适宜。以前后两次疲劳驾驶的检测时间间隔设置为4个小时为例,比对当前提取的面部特征信息与4个小时前提取的面部特征信息是否全部一致,如果前后提取的面部特征信息一致,则认定在4个小时内车辆的驾驶员为同一人,当前驾驶员为疲劳驾驶。这样,虽然疲劳检测的次数少了,但是很容易产生这样的问题:当前的驾驶员与4个小时前时刻的驾驶员为同一驾驶员,但期间该驾驶员很可能与其他人轮流驾驶,这样检测时很容易造成误判。因此有必要合理的设置前后两次疲劳驾驶的检测时间间隔。依据《交通安全法实施条例》第62条的规定可以看出前后两次疲劳驾驶的检测时间间隔设置在20分钟或以内最为准确,这样既可以检测出当前驾驶员是否连续驾驶超过4个小时,也可以在当前驾驶员有轮流驾驶的情况下,识别出该驾驶员每次休息是否超过20分钟。以前后两次疲劳驾驶的检测时间间隔设置为20分钟为例:则4个小时内需要检测13次(第13次为当前次的检测)。这样,当前提取的面部特征信息与前12次存储的面部特征信息一一进行比较;如果每次比较结果均一致,则很大的概率认为当前驾驶员驾驶超过了4个小时;一旦有一次比对结果不一样,则说明驾驶员在4个小时内有休息,且休息时间超过20分钟。当然,也有轮流休息几分钟,多次休息的时间之和超过20分钟的可能性,这样会导致无法准确判断当前驾驶员是否休息超过20分钟。但是,很明显,从常理上说,这种可能性是很小的,即使经过多次轮流休息超过20分钟,也很难缓解疲劳,因此可以忽略。在一个实施例中,前后两次疲劳驾驶的检测时间间隔设置为1个小时,这样,在4个小时内,当前提取的面部特征信息与前4次存储的面部特征信息一一进行比较,识别驾驶员是否疲劳驾驶。这样,既可以减少运算量,也比较符合驾驶员的驾驶与休息的时间习惯。当然,也可以依据驾驶员的易疲劳的程度设置识别多久以内是否是同一驾驶员驾驶车辆,例如设置为在2个小时,每隔20分钟疲劳检测一次,则2个小时内需要检测7次(第7次为当前次的检测),这样,当前提取的面部特征信息与前6次存储的面部特征信息一一进行比较;如果每次比较结果均一致,则很大的概率认为当前驾驶员驾驶超过了2个小时。s4、提取疲劳特征信息:从当前面部图像中提取疲劳特征信息。当然,仅依据是否遵守法定的驾驶时间来判断当前驾驶员是否疲劳驾驶并不足以判断当前驾驶员是否疲劳,因此,本申请还从驾驶员的面部动作变化来识别驾驶员在遵守法定驾驶时间的情况下是否出现疲劳驾驶。通过人脸的轮廓检测,识别出连续的各面部图像中头部的器官部位,如眼睛、嘴部等,将头部能够容易识别出疲劳状态的部位的信息作为感兴趣的疲劳特征信息,例如眨眼时间、点头幅度、打哈气动作等。采用连续的面部图像之间的特定区域幅度,作为识别驾驶员面部动作变化的判断依据,具体而言,求取面部图像连续帧间的特定区域的幅度,并预设幅度阈值,基于所述幅度及幅度阈值,对驾驶员面部动作变化进行识别。例如,连续帧面部图像显示的点头动作的幅度变化超过预设的第一幅度阈值时,则视为驾驶员在打瞌睡,否则,则视为正常动作。连续帧面部图像显示的嘴部及脸部动作的幅度变化超过预设的第二幅度阈值时,则视为驾驶员在打哈气,否则,则视为正常动作。并且对一些动作的持续时间,进行统计,连续帧图像之间的采样间隔时间是一样的,确定某一动作在多少帧的面部图像内出现,也就识别出了该动作的持续时间,例如,采用该方法对一次眨眼时间进行统计。s5、判断疲劳特征信息:判断当前的疲劳特征信息是否超过预设的疲劳阈值;若为是,则判定当前驾驶员为疲劳驾驶,并执行s6。疲劳阈值可以设定多个等级,预先设置疲劳驾驶评价标准,依据脸部微表情和头部动作,对疲劳级别进行设置,如下表1所示,设置了三级的疲劳阈值。根据获取的当前的疲劳特征信息,以各疲劳阈值为参考,对当前驾驶员的疲劳程度进行判断。疲劳级别驾驶人员的驾驶状态一级点头动作频率及幅度分别超过阈值二级单次闭眼时间超过正常眨眼时间(0.5秒)三级长时间闭眼(闭眼时长超过一秒)且频繁点头表1s6、警示疲劳驾驶:发出疲劳驾驶警示。当判定当前驾驶员为疲劳驾驶时,及时做出预警动作。可以依据,疲劳等级,对驾驶员或者其它相关人员发出提示,例如表2所示:表2在一个实施例中,所述从面部图像中提取面部特征信息,存储当前提取的面部特征信息,包括通过环形缓存区对当前提取的面部特征信息进行存储;所述比对当前提取的面部特征信息与前若干次存储的面部特征信息是否全部一致之前,包括从所述环形缓存区读取前若干次存储的面部特征信息。环形缓存区是一种首尾相连的队列数据结构,遵循先进先出原则。环形缓存区的写入进程与读取进程可以采用“生产者与消费者”的模型来缓冲,从而方便了缓存的使用和管理。环形缓存区的容量大小可根据上传数据的大小来设置。环形缓存区用一组连续地址的存储单元依次存放从队列头到队列尾的数据,设置写指针write_pos、读指针read_pos,通过write_pos和read_pos分别指向写入位置和读取位置。本申请中,环形缓存区需要设计1个写指针write_pos,m个读指针read_pos(i),m为大于等于1的自然数,1≤i≤m。其中,读指针read_pos(1)跟随写指针write_pos之后,同理,读指针read_pos(i+1)跟随读指针read_pos(i)之后。环形缓存区存储空间的大小为queue_size,queue_size≥m+1。初始化队列时,令write_pos=m,read_pos(i)=m-i。当有数据写入环形缓存区时,写指针write_pos增1;当有数据从环形缓存区读出时,读指针read_pos(i)增1。也就是说,当前提取面部特征信息后,将当前提取面部特征信息存储到写指针write_pos所指向的环形缓存区内,写指针write_pos增1;然后,分别读取各读指针read_pos(i)所指向的环形缓存区内的提取面部特征信息,即将前m次存储的面部特征信息分别读取出来,各读指针read_pos(i)分别增1;然后比对当前提取的面部特征信息与前m次存储的面部特征信息是否全部一致。上述实施例,在预设时间内以预设的时间间隔采集驾驶员的面部图像,将从当前面部图像提取的特征信息与前若干次存储的面部特征信息进行比对,判断当前驾驶员是否超长时间驾驶或者在该预设时间内有无充分休息,从而识别出当前驾驶员是否疲劳驾驶;此外,通过识别当前驾驶员的面部疲劳特征信息,来判断驾驶员是否进入疲劳状态;可有效做出相应预警提示,为驾驶员的出行做好充分的安全保证。如图3所示,在一个实施例中,提出了一种疲劳驾驶检测装置,包括面部图像采集模块、面部特征信息提取及存储模块、面部特征信息比较模块、疲劳特征信息提取模块、疲劳特征信息判断模块、疲劳驾驶警示模块。所述面部图像采集模块,设置为从摄像视频中连续采集当前驾驶员的若干帧面部图像;所述面部特征信息提取模块,设置为从面部图像中提取面部特征信息;所述面部特征信息存储模块,设置为存储当前提取的面部特征信息;所述面部特征信息比较模块,设置为比对当前提取的面部特征信息与前若干次存储的面部特征信息是否全部一致,若全部一致,则判定当前驾驶员为疲劳驾驶;所述疲劳特征信息提取模块,设置为在当前提取的面部特征信息与前若干次存储的任意一面部特征信息不一致的状态下,从当前面部图像中提取疲劳特征信息;所述疲劳特征信息判断模块,设置为判断当前的疲劳特征信息是否超过预设的疲劳阈值;若当前的疲劳特征信息超过预设的疲劳阈值,则判定当前驾驶员为疲劳驾驶所述疲劳驾驶警示模块,设置为在判定当前驾驶员为疲劳驾驶的状态下,发出疲劳驾驶警示。上述实施例,在预设时间内以预设的时间间隔采集驾驶员的面部图像,将从当前面部图像提取的特征信息与前若干次存储的面部特征信息进行比对,判断当前驾驶员是否超长时间驾驶或者在该预设时间内有无充分休息,从而识别出当前驾驶员是否疲劳驾驶;此外,通过识别当前驾驶员的面部疲劳特征信息,来判断驾驶员是否进入疲劳状态;可有效做出相应预警提示,为驾驶员的出行做好充分的安全保证。基于相同的技术构思,本发明还提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时执行上述各实施例中的所述疲劳驾驶检测方法的步骤。基于相同的技术构思,本发明还提供了一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中的所述疲劳驾驶检测方法的步骤。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1