本发明涉及智能驾驶技术领域,尤其涉及驾驶预警方法、设备及计算机可读存储介质。
背景技术:
随着人们生活水平的提高,汽车已进入了千家万户,汽车的行驶安全越来越成为了人们关注的问题,汽车行驶过程中驾驶员疲劳驾驶、注意力不集中等问题,更是成为了汽车行驶过程中的安全隐患,如何对疲劳驾驶、注意力不集中等驾驶员生理异常状况做出有效的检测和预警,成为了目前亟待解决的问题。
技术实现要素:
本发明的主要目的在于提出一种驾驶预警方法、设备及计算机可读存储介质,旨在实现对驾驶员的生理异常状况做出有效的检测和预警,从而保障驾驶安全。
为实现上述目的,本发明提供一种驾驶预警方法,所述驾驶预警方法包括如下步骤:
采集驾驶员的面部图像,根据预设的人脸检测算法和人脸特征点对齐算法,对所述面部图像进行分析,得到驾驶员面部特征点的位置信息;
根据所述位置信息确定驾驶员的头部姿态,并判断所述驾驶员的头部姿态是否满足预设的异常条件,和/或,根据所述位置信息识别所述驾驶员的疲劳程度;
当所述驾驶员的头部姿态满足预设的异常条件,或者当所述驾驶员的疲劳程度满足预设的预警条件时,触发相应的预警提醒。
优选地,所述根据所述位置信息确定驾驶员的头部姿态,并判断所述驾驶员的头部姿态是否满足预设的异常条件的步骤包括:
获取预设判断周期内所述驾驶员面部特征点的位置信息,根据预设的几何投影算法将所述位置信息转换为驾驶员的头部偏角数据;
根据所述头部偏角数据识别所述驾驶员的头部偏离状态;
在所述判断周期内,根据所述头部偏离状态检测是否存在所述驾驶员的单次头部偏离持续时长达到第一预设时长;
若存在所述驾驶员的单次头部偏离持续时长达到第一预设时长,则判定所述驾驶员的头部姿态满足预设的异常条件。
优选地,所述头部偏角数据包括水平偏角和竖直偏角,所述根据所述头部偏角数据识别所述驾驶员的头部偏离状态的步骤包括:
判断所述水平偏角是否落在预设的水平偏角区间,及所述竖直偏角是否落在预设的竖直偏角区间;
当所述水平偏角未落在预设的水平偏角区间,或者所述竖直偏角未落在预设的竖直偏角区间时,判定所述驾驶员当前处于头部偏离状态。
优选地,所述在所述判断周期内,根据所述头部偏离状态检测是否存在所述驾驶员的单次头部偏离持续时长达到第一预设时长的步骤之后,还包括:
若不存在所述驾驶员的单次头部偏离持续时长达到第一预设时长,则统计所述判断周期内所述驾驶员处于头部偏离状态的累积时长;
判断所述累积时长在所述判断周期内的占比是否达到预设值;
若所述累积时长在所述判断周期内的占比达到预设值,则判定所述驾驶员的头部姿态满足预设的异常条件。
优选地,所述采集驾驶员的面部图像的步骤包括:
在采集驾驶员面部图像的过程中,检测是否存在第二预设时长内未采集到任何驾驶员的面部图像;
若存在第二预设时长内未采集到任何驾驶员的面部图像,则判定所述驾驶员的头部姿态满足预设的异常条件。
优选地,所述根据所述位置信息识别所述驾驶员的疲劳程度的步骤包括:
获取预设识别周期内所述驾驶员面部特征点的位置信息,根据所述位置信息分别计算所述驾驶员眼睛和嘴部的高宽比;
根据所述眼睛和嘴部的高宽比对应识别所述驾驶员的眼睛睁闭状态和打哈欠状态;
根据识别出的所述眼睛睁闭状态和打哈欠状态计算预设的疲劳特征参数;
将计算得到的所述疲劳特征参数输入至预设分类器中,以使所述分类器输出与预设的疲劳等级对应的响应值;
将不同疲劳等级对应的响应值的大小进行比较,根据比较结果从所述预设疲劳等级中选取一个疲劳等级,作为所述驾驶员的疲劳程度的识别结果。
优选地,所述将不同疲劳等级对应的响应值的大小进行比较,根据比较结果从所述预设疲劳等级中选取一个疲劳等级,作为所述驾驶员的疲劳程度的识别结果的步骤包括:
计算所述响应值中最大值和次大值的差值,判断所述差值是否大于或等于预设阈值;
若所述差值大于或等于预设阈值,则将所述最大值对应的疲劳等级作为所述驾驶员的疲劳程度的识别结果;
若所述差值小于预设阈值,则统计所述识别周期内所述驾驶员打哈欠的次数;
若所述驾驶员打哈欠的次数大于或等于预设次数,则将所述最大值和次大值所对应的疲劳等级中较高的疲劳等级作为所述驾驶员的疲劳程度的识别结果;
若所述驾驶员打哈欠的次数小于预设次数,则将所述最大值和次大值所对应的疲劳等级中较低的疲劳等级作为所述驾驶员的疲劳程度的识别结果。
优选地,所述驾驶员的疲劳程度包括清醒、轻度疲劳和深度疲劳,所述当所述驾驶员的疲劳程度满足预设的预警条件时,触发相应的预警提醒的步骤包括:
当识别出所述驾驶员的疲劳程度为轻度疲劳或深度疲劳时,触发相应的预警提醒,其中所述深度疲劳对应的提醒频率高于所述轻度疲劳对应的提醒频率。
此外,为实现上述目的,本发明还提供一种驾驶预警设备,所述驾驶预警设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的驾驶预警程序,所述驾驶预警程序被所述处理器执行时实现如上所述的驾驶预警方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有驾驶预警程序,所述驾驶预警程序被处理器执行时实现如上所述的驾驶预警方法的步骤。
本发明提出的驾驶预警方法,通过获取驾驶员面部特征点的位置信息,进而根据该位置信息检测驾驶员头部姿态的异常情况,以及检测驾驶员的疲劳程度,并最终根据这两者触发相应的异常提醒,实现了对驾驶员的注意力不集中、疲劳等生理异常状况做出有效的检测和预警,保障了驾驶安全。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明驾驶预警方法第一实施例的流程示意图;
图3为图2中步骤根据所述位置信息确定驾驶员的头部姿态,并判断所述驾驶员的头部姿态是否满足预设的异常条件的细化步骤示意图;
图4为本发明实施例中通过滑动数据窗口采集驾驶员面部特征点的位置信息的示意图;
图5为本发明实施例中通过数据流方式采集数据的示意图;
图6为图2中步骤根据所述位置信息识别所述驾驶员的疲劳程度的细化步骤示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:采集驾驶员的面部图像,根据预设的人脸检测算法和人脸特征点对齐算法,对所述面部图像进行分析,得到驾驶员面部特征点的位置信息;根据所述位置信息确定驾驶员的头部姿态,并判断所述驾驶员的头部姿态是否满足预设的异常条件,和/或,根据所述位置信息识别所述驾驶员的疲劳程度;当所述驾驶员的头部姿态满足预设的异常条件,或者当所述驾驶员的疲劳程度满足预设的预警条件时,触发相应的预警提醒。
目前,汽车的行驶安全越来越成为了人们关注的问题,汽车行驶过程中驾驶员疲劳驾驶、注意力不集中等问题,更是成为了汽车行驶过程中的安全隐患,如何对疲劳驾驶、注意力不集中等驾驶员生理异常状况做出有效的检测和预警,成为了目前亟待解决的问题。
本发明提出的驾驶预警方法,通过获取驾驶员面部特征点的位置信息,进而根据该位置信息检测驾驶员头部姿态的异常情况,以及检测驾驶员的疲劳程度,并最终根据这两者触发相应的异常提醒,实现了对驾驶员的生理异常状况做出有效的检测和预警,保障了驾驶安全。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例驾驶预警设备可以是车载终端,该驾驶预警设备包括一摄像头,用于采集驾驶员的面部图像。
如图1所示,该驾驶预警设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及驾驶预警程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的驾驶预警程序,并执行以下操作:
采集驾驶员的面部图像,根据预设的人脸检测算法和人脸特征点对齐算法,对所述面部图像进行分析,得到驾驶员面部特征点的位置信息;
根据所述位置信息确定驾驶员的头部姿态,并判断所述驾驶员的头部姿态是否满足预设的异常条件,和/或,根据所述位置信息识别所述驾驶员的疲劳程度;
当所述驾驶员的头部姿态满足预设的异常条件,或者当所述驾驶员的疲劳程度满足预设的预警条件时,触发相应的预警提醒。
进一步地,处理器1001可以调用存储器1005中存储的驾驶预警程序,还执行以下操作:
获取预设判断周期内所述驾驶员面部特征点的位置信息,根据预设的几何投影算法将所述位置信息转换为驾驶员的头部偏角数据;
根据所述头部偏角数据识别所述驾驶员的头部偏离状态;
在所述判断周期内,根据所述头部偏离状态检测是否存在所述驾驶员的单次头部偏离持续时长达到第一预设时长;
若存在所述驾驶员的单次头部偏离持续时长达到第一预设时长,则判定所述驾驶员的头部姿态满足预设的异常条件。
进一步地,处理器1001可以调用存储器1005中存储的驾驶预警程序,还执行以下操作:
判断所述水平偏角是否落在预设的水平偏角区间,及所述竖直偏角是否落在预设的竖直偏角区间;
当所述水平偏角未落在预设的水平偏角区间,或者所述竖直偏角未落在预设的竖直偏角区间时,判定所述驾驶员当前处于头部偏离状态。
进一步地,处理器1001可以调用存储器1005中存储的驾驶预警程序,还执行以下操作:
若不存在所述驾驶员的单次头部偏离持续时长达到第一预设时长,则统计所述判断周期内所述驾驶员处于头部偏离状态的累积时长;
判断所述累积时长在所述判断周期内的占比是否达到预设值;
若所述累积时长在所述判断周期内的占比达到预设值,则判定所述驾驶员的头部姿态满足预设的异常条件。
进一步地,处理器1001可以调用存储器1005中存储的驾驶预警程序,还执行以下操作:
在采集驾驶员面部图像的过程中,检测是否存在第二预设时长内未采集到任何驾驶员的面部图像;
若存在第二预设时长内未采集到任何驾驶员的面部图像,则判定所述驾驶员的头部姿态满足预设的异常条件。
进一步地,处理器1001可以调用存储器1005中存储的驾驶预警程序,还执行以下操作:
获取预设识别周期内所述驾驶员面部特征点的位置信息,根据所述位置信息分别计算所述驾驶员眼睛和嘴部的高宽比;
根据所述眼睛和嘴部的高宽比对应识别所述驾驶员的眼睛睁闭状态和打哈欠状态;
根据识别出的所述眼睛睁闭状态和打哈欠状态计算预设的疲劳特征参数;
将计算得到的所述疲劳特征参数输入至预设分类器中,以使所述分类器输出与预设的疲劳等级对应的响应值;
将不同疲劳等级对应的响应值的大小进行比较,根据比较结果从所述预设疲劳等级中选取一个疲劳等级,作为所述驾驶员的疲劳程度的识别结果。
进一步地,处理器1001可以调用存储器1005中存储的驾驶预警程序,还执行以下操作:
计算所述响应值中最大值和次大值的差值,判断所述差值是否大于或等于预设阈值;
若所述差值大于或等于预设阈值,则将所述最大值对应的疲劳等级作为所述驾驶员的疲劳程度的识别结果;
若所述差值小于预设阈值,则统计所述识别周期内所述驾驶员打哈欠的次数;
若所述驾驶员打哈欠的次数大于或等于预设次数,则将所述最大值和次大值所对应的疲劳等级中较高的疲劳等级作为所述驾驶员的疲劳程度的识别结果;
若所述驾驶员打哈欠的次数小于预设次数,则将所述最大值和次大值所对应的疲劳等级中较低的疲劳等级作为所述驾驶员的疲劳程度的识别结果。
进一步地,所述驾驶员的疲劳程度包括清醒、轻度疲劳和深度疲劳,处理器1001可以调用存储器1005中存储的驾驶预警程序,还执行以下操作:
当识别出所述驾驶员的疲劳程度为轻度疲劳或深度疲劳时,触发相应的预警提醒,其中所述深度疲劳对应的提醒频率高于所述轻度疲劳对应的提醒频率。
本发明驾驶预警设备的具体实施例与下述驾驶预警方法的各个实施例基本相同,此处不作赘述。
基于上述硬件结构,提出本发明驾驶预警方法实施例。
参照图2,图2为本发明驾驶预警方法第一实施例的流程示意图,所述方法包括:
步骤s10,采集驾驶员的面部图像,根据预设的人脸检测算法和人脸特征点对齐算法,对所述面部图像进行分析,得到驾驶员面部特征点的位置信息;
本实施例中,在车辆行驶过程中,驾驶预警设备可以通过红外补光摄像头实时采集驾驶员的面部图像,通过采用红外补光摄像头,能够在环境光线较暗的情况下拍清驾驶员的面部,并且可以在驾驶员佩戴墨镜的情况下拍清驾驶员的眼睛。
在采集到驾驶员的面部图像后,再根据预设的人脸检测算法和人脸特征点对齐算法,对所述面部图像进行分析,以得到驾驶员面部特征点的位置信息,该位置信息可以包括不同的人脸特征点的编号及位置坐标。其中,人脸检测算法可以为haar(哈尔)级联分类算法,或者基于dlib库的svm(supportvectormachine,支持向量机)人脸检测算法,人脸特征点对齐算法可以为sdm(supviseddescentmethod,监督下降法)人脸特征点对齐算法,或者clnf(constrainedlocalneuralfieldmodel,受约束的局部神经场)人脸特征点对齐算法,具体实施时,可以根据配置文件灵活配置不同的算法组合形式。
通过上述算法对面部图像进行分析以得到驾驶员面部特征点的位置信息的具体方式可参照现有技术,此处不作赘述。通过采用预设算法将驾驶员的面部图像转换为面部特征点的位置信息,可以得到每帧面部图像所对应的面部特征点的位置信息。
步骤s20,根据所述位置信息确定驾驶员的头部姿态,并判断所述驾驶员的头部姿态是否满足预设的异常条件,和/或,根据所述位置信息识别所述驾驶员的疲劳程度;
在得到驾驶员面部特征点的位置信息后,根据该位置信息分别对驾驶员进行头部姿态检测和疲劳程度检测。
在进行疲劳程度检测时,可以根据位置信息计算驾驶员眼部和嘴部的高宽比,进而识别驾驶员的眼睛睁闭状态和打哈欠状态,然后根据一段时间内驾驶员的眼睛睁闭状态和打哈欠状态判断驾驶员的疲劳程度,其中疲劳程度的判断方式可灵活设置,比如当检测到一段时间内驾驶员打哈欠的次数超过预设次数时,判定驾驶员为疲劳驾驶。
在进行头部姿态检测时,作为一种实施方式,参照图3,图3为图2中步骤根据所述位置信息确定驾驶员的头部姿态,并判断所述驾驶员的头部姿态是否满足预设的异常条件的细化步骤示意图,该步骤可以包括:
步骤s21,获取预设判断周期内所述驾驶员面部特征点的位置信息,根据预设的几何投影算法将所述位置信息转换为驾驶员的头部偏角数据;
步骤s22,根据所述头部偏角数据识别所述驾驶员的头部偏离状态;
步骤s23,在所述判断周期内,根据所述头部偏离状态检测是否存在所述驾驶员的单次头部偏离持续时长达到第一预设时长;
若存在,则执行步骤s24,判定所述驾驶员的头部姿态满足预设的异常条件。
参照图4,图4为本发明实施例中通过滑动数据窗口采集驾驶员面部特征点的位置信息的示意图。具体地,可以预先设定一个判断周期(如2s),该判断周期用于表示每次判断驾驶员的头部姿态是否异常的间隔时长,驾驶员面部特征点的位置信息数据可以通过滑动数据窗口的形式进行采集,比如将一个判断周期内数据窗口的长度设置为5s,滑动步长设置为2s,则首次采集5秒内的数据(对应窗口一)作为第一个判断周期的分析对象,之后隔2秒采集长度为5s的数据(对应窗口二)作为后续判断周期的分析对象。这种重叠方式采集数据的依据是驾驶员做出动作的过程是连续性的,下一帧保留上一帧的部分数据,可以表现出这种连续的过程,且可以避免因图像帧数据不连续的误检,从而提高检测的精确度。
针对某一判断周期进行判断时,首先获取该判断周期内各个时间点的驾驶员面部特征点的位置信息,然后根据预设的几何投影算法将位置信息转换为驾驶员的头部偏角数据,其中头部偏角数据包括水平偏角和竖直偏角,水平偏角表示驾驶员当前头部在水平方向相对于预设标准头部位置的偏离角度,竖直偏角表示驾驶员当前头部在竖直方向相对于预设标准头部位置的偏离角度。
具体将位置信息转换为驾驶员的头部偏角数据的转换过程可以如下:
在一实施方式中,位置信息包括68个对齐的人脸特征点数据,其中第0号点至第16号点标注了人脸的轮廓,第17号点至第21号点标注了右侧眉毛区域,第22号点至第26号点标注了左侧眉毛区域,第27号点至第35号点标注了鼻子区域,第36号点至第41号点标注了右侧眼睛区域,第42号点至第47号点标注了左侧眼睛区域,第48号点至第67号点标注了嘴巴区域;在计算头部偏角数据时,选取68个特征点中的左右眼睛眼角位置的点(4个),鼻尖位置的点(1个),嘴角位置的点2个,总共7个人脸特征点,和对应的标准化人脸上对应的点做矩阵乘积,得到当前人脸相对于标准化人脸的旋转矩阵,再利用旋转矩阵和欧拉角之间的换算公式,计算出当前人脸各个方向上的偏转角度。
之后,再根据头部偏角数据识别驾驶员的头部偏离状态,具体识别过程可以为:判断所述水平偏角是否落在预设的水平偏角区间,及所述竖直偏角是否落在预设的竖直偏角区间;当所述水平偏角未落在预设的水平偏角区间,或者所述竖直偏角未落在预设的竖直偏角区间时,判定所述驾驶员当前处于头部偏离状态。
需要说明的是,上述水平偏角区间和竖直偏角区间可以通过预设的机器学习算法进行学习得到,具体学习过程为:当驾驶员初始进入驾驶状态后,驾驶员保持头部面向汽车前方,此时根据上述几何投影算法统计一段时间内的驾驶员头部姿态的水平偏角和竖直偏角,以得到水平偏角集合和竖直偏角集合;然后,分别求取这两个集合数据的均值及标准差,并结合平均值和标准差构建驾驶员初始状态的水平方向和垂直方向的初始偏角范围,其中水平方向范围阈值:
当前驾驶员头部的水平偏角未落在预设的水平偏角区间,说明驾驶员当前头部在水平方向上偏离正前方程度较大,此时可判定驾驶员当前处于头部偏离状态;同理,当前驾驶员头部的竖直偏角未落在预设的竖直偏角区间,说明驾驶员当前头部在竖直方向上偏离正前方程度较大,此时亦判定驾驶员当前处于头部偏离状态。
通过机器学习算法计算水平偏角区间和竖直偏角区间,实现了根据不同驾驶员的不同驾驶习惯进行区间设定,也即能够自适应不同驾驶员的头部偏角,将该水平偏角区间和竖直偏角区间作为后续驾驶员头部偏离状态的判断标准,能够提高判断的准确性。当然,水平偏角区间和竖直偏角区间也可以直接人为设定,具体实施时可灵活设置。
基于一个判断周期,在识别出驾驶员各个时间点的头部偏离状态后,再引入预设规则判断驾驶员的头部姿态是否满足预设的异常条件。作为一种判断方式,可以检测所述判断周期内是否存在驾驶员的单次头部偏离持续时长达到第一预设时长,如2s,若是,则可判定驾驶员的头部姿态满足预设的异常条件。
进一步地,若不存在所述驾驶员的单次头部偏离持续时长达到第一预设时长,则统计所述判断周期内所述驾驶员处于头部偏离状态的累积时长;判断所述累积时长在所述判断周期内的占比是否达到预设值;若所述累积时长在所述判断周期内的占比达到预设值,则判定所述驾驶员的头部姿态满足预设的异常条件。比如,当判断周期为2s,如果2s内驾驶员处于头部偏离状态的累积时长为1.4s,达到预设占比70%,此时即可判定驾驶员的头部姿态满足预设的异常条件。
具体地,在统计所述判断周期内驾驶员处于头部偏离状态的累积时长时,需要进行驾驶员单次偏头时长的检测,该单次偏头时长的检测可采用数据流的方式,参照图5,图5为本发明实施例中通过数据流方式采集数据的示意图,其中,数据1、数据2、数据3分别为在一段预设时长内采集到的数据流,对每一数据流,可以从首次检测到驾驶员头部姿态异常行为时开始计时,在计时过程中判断驾驶员头部姿态异常状态持续时间是否超过预设时间,若是,即将本次计时时长累加到驾驶员头部姿态异常持续时间中,若否,则说明驾驶员在超过设定阈值时间界限前恢复了正常姿态且满足驾驶员正常的反应时间,例如:0.15秒,此时放弃将本次计时时长累加到驾驶员头部姿态异常持续时间中。
上述累积方式有一个假定,首先假设驾驶员的行为具有连续性,因此,在极短的时间内驾驶员的行为不会出现剧烈的波动,据此可以排除在一段数据内值偏高或偏低的异常数据点;其次,根据相关资料可以知道驾驶员采取行动的反应时间为0.1~0.2s,可以根据驾驶员反应时间这个阈值来断定当前驾驶员是做出了动作还是数据采集的偏差。
进一步地,除上述判断规则外,还可以在采集驾驶员面部图像的过程中,检测是否存在第二预设时长内未采集到任何驾驶员的面部图像;若存在第二预设时长内未采集到任何驾驶员的面部图像,则判定所述驾驶员的头部姿态满足预设的异常条件。比如,若持续3s内未采集到任何驾驶员的面部图像,则可判定驾驶员的头部姿态满足预设的异常条件。
步骤s30,当所述驾驶员的头部姿态满足预设的异常条件,或者当所述驾驶员的疲劳程度满足预设的预警条件时,触发相应的预警提醒。
该步骤中,当判定驾驶员的头部姿态满足预设的异常条件,或者驾驶员的疲劳程度满足预设的预警条件时,触发相应的预警提醒,具体的提醒方式包括但不限于语音、提示灯等。比如,当判定驾驶员的头部姿态满足预设的异常条件时,说明驾驶员注意力不集中,此时可以输出提醒语音“请驾驶员注意前方道路”;当驾驶员的疲劳程度满足预设的预警条件时,说明驾驶员处于疲劳状态,此时可以输出提醒语音“请驾驶员降低车速或停车休息”。
本实施例提出的驾驶预警方法,通过获取驾驶员面部特征点的位置信息,进而根据该位置信息检测驾驶员头部姿态的异常情况,以及检测驾驶员的疲劳程度,并最终根据这两者触发相应的异常提醒,实现了对驾驶员的注意力不集中、疲劳等生理异常状况做出有效的检测和预警,保障了驾驶安全。
进一步地,基于本发明驾驶预警方法第一实施例,提出本发明驾驶预警方法第二实施例。
参照图6,图6为图2中步骤根据所述位置信息识别所述驾驶员的疲劳程度的细化步骤示意图,该步骤可以包括:
步骤s25,获取预设识别周期内所述驾驶员面部特征点的位置信息,根据所述位置信息分别计算所述驾驶员眼睛和嘴部的高宽比;
步骤s26,根据所述眼睛和嘴部的高宽比对应识别所述驾驶员的眼睛睁闭状态和打哈欠状态;
步骤s27,根据识别出的所述眼睛睁闭状态和打哈欠状态计算预设的疲劳特征参数;
步骤s28,将计算得到的所述疲劳特征参数输入至预设分类器中,以使所述分类器输出与预设的疲劳等级对应的响应值;
步骤s29,将不同疲劳等级对应的响应值的大小进行比较,根据比较结果从所述预设疲劳等级中选取一个疲劳等级,作为所述驾驶员的疲劳程度的识别结果。
本实施例中,在进行疲劳程度检测时,可以预先设定一个识别周期(如2s),该识别周期用于表示每次识别驾驶员的疲劳程度的间隔时长。针对某一识别周期进行疲劳程度识别时,首先获取该识别周期内各个时间点的驾驶员面部特征点的位置信息,然后根据所述位置信息分别计算驾驶员眼睛和嘴部的高宽比,其中眼睛的高宽比反映了驾驶员的眼睛睁闭状态,嘴部的高宽比反映了驾驶员的嘴部张合状态。
具体地,作为一种实施方式,可以根据坐标差的方式分别计算驾驶员眼睛和嘴部的高度和宽度,然后转换为高度和宽度的比值,即高宽比,由此统计一段时间内驾驶员眼睛和嘴部的高宽比数据,计算出驾驶员眨眼,打哈欠的高宽比阈值。比如,可以统计30秒内驾驶员的眼睛和嘴巴的高宽比数据,然后过滤掉异常数据(高宽比在0到1之间为正常数据),将过滤得到的正常数据放置到队列中进行排序(从小到大);之后,在包含眼睛高宽比的队列中,可以首先剔除掉可能的异常数据,如将统计的数据队列的前5%和后5%的数据过滤掉,再取队列中的最大值ea和最小值ei,此时眼睛阈值的计算公式可以为:t_eye=(ea-ei)×0.1+ei;在包含嘴部高宽比的队列中,可以从队列小端开始取0.8处的数据,然后将其放大1.5倍,得到驾驶员打哈欠时嘴巴高宽比的阈值。小于眼睛阈值的即为闭眼,否则为睁眼;小于嘴巴阈值即为正常,否则为打哈欠。
当然,也可以采用其他方式计算驾驶员的眼镜阈值和嘴巴阈值,具体实施时可灵活设置。
之后,再根据识别出的眼睛睁闭状态和打哈欠状态计算预设的疲劳特征参数,在一实施方式中,疲劳特征参数包括12个,分别是perclos(一段时间内,眼睛累计闭合时间占时间窗长度的百分比),mcd(一段时间内,最长一次眼睛闭合的持续时间),bf(每分钟眨眼次数),aol(一段时间内,眼睛睁开程度(百分比)的平均值),twlclos(累计达到特定闭眼时间所需要的总时间),aot(一段时间内,睁眼动作所需时间的平均值),mot(一段时间内,睁眼动作所需时间的最大值),act(一段时间内,闭眼动作所需时间的平均值),mct(一段时间内,闭眼动作所需时间的最大值),mrcot(闭眼时间与睁眼时间比值在一段时间内的最大值),arcot(闭眼时间与睁眼时间的比值在一段时间内的平均值),yawn(一段时间内打哈欠次数),具体疲劳特征参数的计算方式可参照现有技术,此处不作赘述。
在计算得到各项疲劳特征参数后,将计算结果输入预设分类器(如fisher分类器)中,以使该分类器输出与预设的疲劳等级对应的响应值,然后,将不同疲劳等级对应的响应值的大小进行比较,并根据比较结果从所述预设疲劳等级中选取一个疲劳等级,作为驾驶员的疲劳程度的识别结果。
在一实施方式中,可以将最大响应值对应的疲劳等级作为驾驶员的疲劳程度的识别结果;在更多的实施方式中,上述将不同疲劳等级对应的响应值的大小进行比较,根据比较结果从所述预设疲劳等级中选取一个疲劳等级,作为所述驾驶员的疲劳程度的识别结果的步骤可以包括:计算所述响应值中最大值和次大值的差值,判断所述差值是否大于或等于预设阈值;若所述差值大于或等于预设阈值,则将所述最大值对应的疲劳等级作为所述驾驶员的疲劳程度的识别结果;若所述差值小于预设阈值,则统计所述识别周期内所述驾驶员打哈欠的次数;若所述驾驶员打哈欠的次数大于或等于预设次数,则将所述最大值和次大值所对应的疲劳等级中较高的疲劳等级作为所述驾驶员的疲劳程度的识别结果;若所述驾驶员打哈欠的次数小于预设次数,则将所述最大值和次大值所对应的疲劳等级中较低的疲劳等级作为所述驾驶员的疲劳程度的识别结果。
以预设疲劳等级为clear(清醒)、little(浅度疲劳)、deep(深度疲劳),其对应的响应值为分别为f1、f2、f3,且f1>f2>f3为例,首先计算最大值f1和次大值f2的差值,判断该差值是否大于或等于预设阈值,若是,则说明是清醒的可能性较大,若否,则说明清醒和浅度疲劳两者都有很大的可能性,此时进一步统计识别周期内驾驶员打哈欠的次数,如果驾驶员打哈欠的次数大于或等于预设次数,则将浅度疲劳作为驾驶员的疲劳程度的识别结果,反之,则将清醒作为驾驶员的疲劳程度的识别结果。
上述方式通过结合响应值的大小和识别周期内驾驶员打哈欠的次数,提高了驾驶员疲劳程度识别的准确性。
进一步地,驾驶员的疲劳程度包括清醒、轻度疲劳和深度疲劳,所述当所述驾驶员的疲劳程度满足预设的预警条件时,触发相应的预警提醒的步骤可以包括:当识别出驾驶员的疲劳程度为轻度疲劳或深度疲劳时,触发相应的预警提醒,其中所述深度疲劳对应的提醒频率高于所述轻度疲劳对应的提醒频率。由此实现了对驾驶员的疲劳状态做出有效的预警。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有驾驶预警程序,所述驾驶预警程序被处理器执行时实现如上所述的驾驶预警方法的步骤。
其中,在所述处理器上运行的驾驶预警程序被执行时所实现的方法可参照本发明驾驶预警方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
技术特征:
1.一种驾驶预警方法,其特征在于,所述驾驶预警方法包括如下步骤:
采集驾驶员的面部图像,根据预设的人脸检测算法和人脸特征点对齐算法,对所述面部图像进行分析,得到驾驶员面部特征点的位置信息;
根据所述位置信息确定驾驶员的头部姿态,并判断所述驾驶员的头部姿态是否满足预设的异常条件,和/或,根据所述位置信息识别所述驾驶员的疲劳程度;
当所述驾驶员的头部姿态满足预设的异常条件,或者当所述驾驶员的疲劳程度满足预设的预警条件时,触发相应的预警提醒。
2.如权利要求1所述的驾驶预警方法,其特征在于,所述根据所述位置信息确定驾驶员的头部姿态,并判断所述驾驶员的头部姿态是否满足预设的异常条件的步骤包括:
获取预设判断周期内所述驾驶员面部特征点的位置信息,根据预设的几何投影算法将所述位置信息转换为驾驶员的头部偏角数据;
根据所述头部偏角数据识别所述驾驶员的头部偏离状态;
在所述判断周期内,根据所述头部偏离状态检测是否存在所述驾驶员的单次头部偏离持续时长达到第一预设时长;
若存在所述驾驶员的单次头部偏离持续时长达到第一预设时长,则判定所述驾驶员的头部姿态满足预设的异常条件。
3.如权利要求2所述的驾驶预警方法,其特征在于,所述头部偏角数据包括水平偏角和竖直偏角,所述根据所述头部偏角数据识别所述驾驶员的头部偏离状态的步骤包括:
判断所述水平偏角是否落在预设的水平偏角区间,及所述竖直偏角是否落在预设的竖直偏角区间;
当所述水平偏角未落在预设的水平偏角区间,或者所述竖直偏角未落在预设的竖直偏角区间时,判定所述驾驶员当前处于头部偏离状态。
4.如权利要求2所述的驾驶预警方法,其特征在于,所述在所述判断周期内,根据所述头部偏离状态检测是否存在所述驾驶员的单次头部偏离持续时长达到第一预设时长的步骤之后,还包括:
若不存在所述驾驶员的单次头部偏离持续时长达到第一预设时长,则统计所述判断周期内所述驾驶员处于头部偏离状态的累积时长;
判断所述累积时长在所述判断周期内的占比是否达到预设值;
若所述累积时长在所述判断周期内的占比达到预设值,则判定所述驾驶员的头部姿态满足预设的异常条件。
5.如权利要求4所述的驾驶预警方法,其特征在于,所述采集驾驶员的面部图像的步骤包括:
在采集驾驶员面部图像的过程中,检测是否存在第二预设时长内未采集到任何驾驶员的面部图像;
若存在第二预设时长内未采集到任何驾驶员的面部图像,则判定所述驾驶员的头部姿态满足预设的异常条件。
6.如权利要求1所述的驾驶预警方法,其特征在于,所述根据所述位置信息识别所述驾驶员的疲劳程度的步骤包括:
获取预设识别周期内所述驾驶员面部特征点的位置信息,根据所述位置信息分别计算所述驾驶员眼睛和嘴部的高宽比;
根据所述眼睛和嘴部的高宽比对应识别所述驾驶员的眼睛睁闭状态和打哈欠状态;
根据识别出的所述眼睛睁闭状态和打哈欠状态计算预设的疲劳特征参数;
将计算得到的所述疲劳特征参数输入至预设分类器中,以使所述分类器输出与预设的疲劳等级对应的响应值;
将不同疲劳等级对应的响应值的大小进行比较,根据比较结果从所述预设疲劳等级中选取一个疲劳等级,作为所述驾驶员的疲劳程度的识别结果。
7.如权利要求6所述的驾驶预警方法,其特征在于,所述将不同疲劳等级对应的响应值的大小进行比较,根据比较结果从所述预设疲劳等级中选取一个疲劳等级,作为所述驾驶员的疲劳程度的识别结果的步骤包括:
计算所述响应值中最大值和次大值的差值,判断所述差值是否大于或等于预设阈值;
若所述差值大于或等于预设阈值,则将所述最大值对应的疲劳等级作为所述驾驶员的疲劳程度的识别结果;
若所述差值小于预设阈值,则统计所述识别周期内所述驾驶员打哈欠的次数;
若所述驾驶员打哈欠的次数大于或等于预设次数,则将所述最大值和次大值所对应的疲劳等级中较高的疲劳等级作为所述驾驶员的疲劳程度的识别结果;
若所述驾驶员打哈欠的次数小于预设次数,则将所述最大值和次大值所对应的疲劳等级中较低的疲劳等级作为所述驾驶员的疲劳程度的识别结果。
8.如权利要求1至7中任一项所述的驾驶预警方法,其特征在于,所述驾驶员的疲劳程度包括清醒、轻度疲劳和深度疲劳,所述当所述驾驶员的疲劳程度满足预设的预警条件时,触发相应的预警提醒的步骤包括:
当识别出所述驾驶员的疲劳程度为轻度疲劳或深度疲劳时,触发相应的预警提醒,其中所述深度疲劳对应的提醒频率高于所述轻度疲劳对应的提醒频率。
9.一种驾驶预警设备,其特征在于,所述驾驶预警设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的驾驶预警程序,所述驾驶预警程序被所述处理器执行时实现如权利要求1至8中任一项所述的驾驶预警方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有驾驶预警程序,所述驾驶预警程序被处理器执行时实现如权利要求1至8中任一项所述的驾驶预警方法的步骤。
技术总结
本发明公开了一种驾驶预警方法,该方法包括:采集驾驶员的面部图像,根据预设的人脸检测算法和人脸特征点对齐算法,对所述面部图像进行分析,得到驾驶员面部特征点的位置信息;根据所述位置信息确定驾驶员的头部姿态,并判断所述驾驶员的头部姿态是否满足预设的异常条件,和/或,根据所述位置信息识别所述驾驶员的疲劳程度;当所述驾驶员的头部姿态满足预设的异常条件,或者当所述驾驶员的疲劳程度满足预设的预警条件时,触发相应的预警提醒。本发明还公开了一种驾驶预警设备和一种计算机可读存储介质。本发明能够实现对驾驶员的生理异常状况做出有效的检测和预警,从而保障驾驶安全。
技术研发人员:张长隆;罗水强;李智勇;肖德贵
受保护的技术使用者:长沙智能驾驶研究院有限公司
技术研发日:.07.27
技术公布日:.02.07