技术领域
[0001] 本
发明涉及
计算机视觉处理、AI智能交通技术领域,尤其涉及基于深度学习
人脸姿态估计的疲劳检测方法。
背景技术
[0002] 随着高速公路的发展和车速的提高,目前已成为
汽车安全研究的重要一环。很多车主朋友在午后开车的时候都会出现打瞌睡、困了的现象,这是很危险的驾驶行为。由于汽车处于高速度运行,加之现在各大城市道路的车流量都很大,稍不留神就诱发出现交通事故。一些司机朋友为了赶时间,就会打着瞌睡开着车,不知不觉中就睡着了,就是这几秒钟的睡意,这就给驾驶员和乘车人员的安全带来了很大的威胁。
[0003] 目前国内外主要围绕疲劳驾驶识别、预警与控制三大核心技术展开,其研究领域与方法广泛涉及到安全科学、生理学、医学、行为科学、汽车工程、信息科学、
电子检测与智能控制等,其中在疲劳识别原理与技术方面取得重要突破,但是检测识别系统的准确性、可靠性、抗干扰性、小型化与工程化等方面均存在一定问题,因此不能做出驾驶人员是否疲劳驾驶的准确判断等,鉴于此,本发明提供基于深度学习人脸姿态估计的疲劳检测方法。
发明内容
[0004] 本发明的目的是为了解决
现有技术中不能准确、可靠的识别驾驶人员状态,因此不能做出驾驶人员是否疲劳驾驶的准确判断等缺点,而提出的基于深度学习人脸姿态估计的疲劳检测方法。
[0005] 为了实现上述目的,本发明采用了如下技术方案:
[0006] 基于深度学习人脸姿态估计的疲劳检测方法,包括以下步骤:
[0007] S1、获取
驾驶室摄像头
视频流:首先通过驾驶室内的车载摄像头采集驾驶员驾驶状态视频,采用基于HOG提取
算法检测出人脸区域,并用矩形框框出;
[0008] S2、人脸关键点
定位:利用基于ERT集成回归树的landmark人脸部特征点提取技术确定人脸关键点,其中人脸关键点包括眼睛、嘴巴、下颌和鼻子的
位置;
[0009] S3、定义一个6个关键点的3D脸部模型,且3D脸部模型包括左右眼
角、左右嘴角、鼻尖和下颌,将获得的驾驶员脸部对应的6个关键点,使用OpenCv中的solvePnP函数来估算Pose,确定从3D model到驾驶员脸部图像的仿射变换矩阵,其中包含了旋转和平移信息也就是歪头和点头的移动信息,用rotation vector将旋转向量转换成欧拉角;
[0010] S4、根据S3中人脸部关键点定位出眼睛和嘴部位置,根据坐标计算眼睛和嘴部
水平方向和垂直方向欧式距离;
[0011]
[0012]
[0013]
[0014]
[0015] 式中,d1为眼睛水平方向的欧式距离,d2和d3是垂直方向的欧式距离;A为眼睛纵横比;嘴部纵横比计算方式同眼睛计算方式相同;
[0016] 步骤5:根据驾驶员点头累计次数确定超过设定
阀值报警,其中驾驶员点头次数低于设定阀值,则通过嘴部纵横比以及眼睛纵横比分别与设定
阈值做比较,确定张嘴闭眼的状态超过设定阀值报警。
[0017] 优选的,所述S1中采用
人脸识别模
块,其中人脸识别模块利用安装在驾驶员前方的车载摄像头采集驾驶员驾驶状态视频,利用基于HOG的
人脸检测器检测视频流中的每一
帧图像,识别出人脸所在区域,用矩形框进行人脸标记。
[0018] 优选的,所述S2中包括人脸关键点定位模块,人脸关键点定位模块采用基于ERT集成回归树landmark人脸部特征点提取技术对人脸关键点进行检测。
[0019] 优选的,所述S3中采用头部姿态检测预警模块和眼睛嘴部预警模块,其中头部姿态检测预警模块主要是首先定义一个6个关键点的3D脸部模型,然后采用landmark检测技术检测出
视频帧中每张人脸图片中对应的6个脸部关键点,采用OpenCV的solvePnP函数解出旋转向量,最后将旋转向量转换为欧拉角,通过这个欧拉角的旋转角度来判定驾驶员是否存在点头和歪头现象,如果判定为疲劳状态则触发报警器进行报警;眼睛嘴部姿态预警模块主要采用通过眼部和嘴部的关键点分别计算水平和垂直方向关键点之间的欧式距离,最终计算纵横比与设定阈值比较来判定驾驶员状态,如果判定为疲劳状态则触发报警器进行报警。
[0020] 本发明提出的基于深度学习人脸姿态估计的疲劳检测方法,有益效果在于:本发明设计巧妙,能够实时检测,且具有抗干扰性强,识别检测全面,准确率高
稳定性强等特点,能够从根本上提醒驾驶人员驾驶,以减少事故的发生的概率。
[0021] 通过欧拉角的角度判断驾驶员头部是否有点头和歪头的现象,点头和歪头状态持续时长超过设定时间阈值,判定驾驶员疲劳驾驶,然后触发报警器预警。
[0022] 通过纵横比与设定的眼睛睁闭和嘴巴张开闭合的阈值之间的比较,并且结合眼睛闭合或者嘴巴张开的持续时长与所设定的时间阈值之间的比较,综合判定驾驶员是否处在疲劳状态,如果处于疲劳状态则触发警报报警。
附图说明
[0023] 图1为本发明的流程示意图。
[0024] 图2为本发明的原理示意图。
具体实施方式
[0025] 下面将结合本发明
实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0026] 参照图1-2,基于深度学习人脸姿态估计的疲劳检测方法,包括以下步骤:
[0027] S1、获取驾驶室摄像头视频流:首先通过驾驶室内的车载摄像头采集驾驶员驾驶状态视频,采用基于HOG提取算法检测出人脸区域,并用矩形框框出,采用人脸识别模块,其中人脸识别模块利用安装在驾驶员前方的车载摄像头采集驾驶员驾驶状态视频,利用基于HOG的人脸检测器检测视频流中的每一帧图像,识别出人脸所在区域,用矩形框进行人脸标记;
[0028] S2、人脸关键点定位:利用基于ERT集成回归树的landmark人脸部特征点提取技术确定人脸关键点,其中人脸关键点包括眼睛、嘴巴、下颌和鼻子的位置;其中ERT集成回归树的核心公式如下表示:
[0029]
[0030] 使用梯度提高学习的回归树训练每个rt,使用最小二乘法最小化误差。t表示级联序号,rt(·,·)表示当前级的回归器regressor。回归器的输入参数为图像I和上一级回归器更新后的shape,采用的特征可以是灰度值或者其它。每个回归器由很多棵树(tree)组成,每棵树参数是根据current shape和ground truth的坐标差和随机挑选的
像素对训练得到的。
[0031] ERT是在学习Tree的过程中,直接将shape的更新值ΔS存入叶子结点leaf node.初始位置S在通过所有学习到的Tree后,meanshape加上所有经过的叶子结点的ΔS,即可得到最终的人脸关键点位置,采用人脸关键点定位模块,人脸关键点定位模块采用基于ERT集成回归树landmark人脸部特征点提取技术对人脸关键点进行检测。
[0032] S3、定义一个6个关键点的3D脸部模型,且3D脸部模型包括左右眼角、左右嘴角、鼻尖和下颌,将获得的驾驶员脸部对应的6个关键点,使用OpenCv中的solvePnP函数来估算Pose,确定从3D model到驾驶员脸部图像的仿射变换矩阵,其中包含了旋转和平移信息也就是歪头和点头的移动信息,用rotation vector将旋转向量转换成欧拉角,(pitch围绕X轴旋转,叫
俯仰角yaw围绕Y轴旋转,叫
偏航角roll围绕Z轴旋转,叫翻滚角),利用pitch和yaw分别表示点头和歪头的角度。Pitch:点头,上负下正Yaw:歪头,左正右负。设定阈值,如果pitch和yaw在规定时间内超过设定阈值,则被判定为疲劳状态,触发报警器报警。
[0033] 采用头部姿态检测预警模块和眼睛嘴部预警模块,其中头部姿态检测预警模块主要是首先定义一个6个关键点的3D脸部模型,然后采用landmark检测技术检测出视频帧中每张人脸图片中对应的6个脸部关键点(下颌:8鼻尖:30左眼角:36右眼角:45左嘴角:48右嘴角:54),采用OpenCV的solvePnP函数解出旋转向量,最后将旋转向量转换为欧拉角,通过这个欧拉角的旋转角度来判定驾驶员是否存在点头和歪头现象,如果判定为疲劳状态则触发报警器进行报警;眼睛嘴部姿态预警模块主要采用通过眼部和嘴部的关键点分别计算水平和垂直方向关键点之间的欧式距离,最终计算纵横比与设定阈值比较来判定驾驶员状态,如果判定为疲劳状态则触发报警器进行报警。
[0034] 头部姿态检测预警模块和眼睛嘴部预警模块均是预警模块,其中预警模块包括头部姿态判断单元和眼睛、嘴部姿态判断单元;其中头部姿态判断单元,利用检测到的驾驶员脸部6个关键点与定义的6个关键点的3D脸部模型做对比,通过solvePnP函数解析出旋转向量,转换为欧拉角,通过欧拉角的角度判断驾驶员头部是否有点头和歪头的现象,点头和歪头状态持续时长超过设定时间阈值,判定驾驶员疲劳驾驶,然后触发报警器预警。眼睛和嘴部姿态判断单元主要通过人脸关键点定位技术定位出眼睛和嘴部的关键点,然后,计算眼睛和嘴部的水平方向和垂直方向的关键点之间的欧式距离,最后计算水平方向和垂直方向欧式距离之间的比值(纵横比),通过纵横比与设定的眼睛睁闭和嘴巴张开闭合的阈值之间的比较,并且结合眼睛闭合或者嘴巴张开的持续时长与所设定的时间阈值之间的比较,综合判定驾驶员是否处在疲劳状态,如果处于疲劳状态则触发警报报警。
[0035] S4、根据S3中人脸部关键点定位出眼睛和嘴部位置,根据坐标计算眼睛和嘴部水平方向和垂直方向欧式距离;
[0036]
[0037]
[0038]
[0039]
[0040] 式中,d1为眼睛水平方向的欧式距离,d2和d3是垂直方向的欧式距离;A为眼睛纵横比;嘴部纵横比计算方式同眼睛计算方式相同;
[0041] 步骤5:根据驾驶员点头累计次数确定超过设定阀值报警,其中驾驶员点头次数低于设定阀值,则通过嘴部纵横比以及眼睛纵横比分别与设定阈值做比较,确定张嘴闭眼的状态超过设定阀值报警。
[0042] 本发明设计巧妙,能够实时检测,且具有抗干扰性强,识别检测全面,准确率高稳定性强等特点,能够从根本上提醒驾驶人员驾驶,以减少事故的发生的概率。
[0043] 通过欧拉角的角度判断驾驶员头部是否有点头和歪头的现象,点头和歪头状态持续时长超过设定时间阈值,判定驾驶员疲劳驾驶,然后触发报警器预警。
[0044] 通过纵横比与设定的眼睛睁闭和嘴巴张开闭合的阈值之间的比较,并且结合眼睛闭合或者嘴巴张开的持续时长与所设定的时间阈值之间的比较,综合判定驾驶员是否处在疲劳状态,如果处于疲劳状态则触发警报报警。
[0045] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉
本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。