一种基于深度相机的疲劳驾驶预警系统及方法与流程

文档序号:23673395发布日期:2021-01-23 06:37阅读:221来源:国知局
一种基于深度相机的疲劳驾驶预警系统及方法与流程

[0001]
本发明涉及驾驶监控预警技术领域,具体涉及一种基于深度相机的疲劳驾驶预警系统及方法。


背景技术:

[0002]
当前我国是汽车制造大国,汽车保有量居世界第二,不断增多的车辆带来的不仅是出行的便利,也带来了一系列的问题。其中,频繁发生的交通事故已经成为最重要的问题,每年发生的交通事故造成的司亡人数逐年递增,并且据美国国家公路交通安全管理局(nhtsa)的调查报告显示,在发生的事故中,由疲劳驾驶引起的交通事故占了很大的比例。
[0003]
目前有不少研究人瞌睡/疲劳驾驶检测的技术,主要分为(1)测量人的生理信号,比如脑电、心电、皮肤电势灯,其主要缺点是需要身体接触;(2)测量物理反应,比如眨眼频率、眨眼持续时间、眼睛的运动、头部的运动等,没有身体接触,易于接受;(3)测量车辆和路面相关参数,比如速度、加速度、侧向位置、白线位置等,其缺点是测量的信息不可靠。
[0004]
对于测量物理反应,近年来有关疲劳驾驶检测的算法也在不断推陈出新,刘瑞安等通过差分图像法进行头部检测,并通过内角提取算子获取内眼角的位置跟踪眼部状态达到眨眼检测;朱振华等利用红外敏感相机获得司机面部图像,通过可变性模板匹配的方法对眼睛进行定位,然后利用卡尔曼滤波的方法跟踪眼睛状态;程如中等提出一种基于adaboost的人脸与眼睛检测定位算法,并通过otsu算法分割眼部获取状态;游峰等提出一个基于卷积神经网络对驾驶员进行面部特征提取,并在最后一层网络进行疲劳判断的方法。但是其主要是根据普通相机获取的图像进行分析,受到车内光线影响较大,在隧道内或者夜晚光线暗的情况下,不适合使用。且戴眼镜的驾驶员较多,戴眼镜,会影响对眼部关键点的分析。


技术实现要素:

[0005]
为克服所述不足,本发明的目的在于提供一种基于深度相机的疲劳驾驶预警系统及方法。
[0006]
本发明解决其技术问题所采用的技术方案是:一种基于深度相机的疲劳驾驶预警系统,包括深度相机、人脸特征点定位模块、状态识别模块、驾驶状态预警模块;
[0007]
所述深度相机安装在驾驶员的前方,用于获取驾驶员的不戴眼睛、戴眼镜正面图像集合;
[0008]
人脸特征点定位模块提取深度相机的每帧图像的视觉特征参数,通过红外图像预处理后识别面部,进而使用随机森林和全局线性回归相结合的方法训练出的lbf特征模型获取人脸特征点;
[0009]
状态识别模块用于对人脸特征点定位模块提取的人脸进行分析,提取眼睛状态信息、嘴巴状态信息,获得眼睛状态、嘴巴状态的识别结果返回值;
[0010]
驾驶状态预警模块对眼睛状态和嘴巴状态进行综合分析,获得驾驶员的危险评估
结果,若超出设定值,这进行危险状态预警。
[0011]
所述深度相机采用intel realsense深度摄像头。
[0012]
一种基于深度相机的疲劳驾驶预警方法,包括以下步骤:
[0013]
s1获取红外图像与深度图像样本
[0014]
图像样本包括不戴眼睛的样本、戴眼镜的正面人脸图像样本、戴眼镜的侧面人脸图像样本;
[0015]
s2获取人脸区域、人脸特征点集合,通过红外图像预处理后识别面部,进而使用随机森林和全局线性回归相结合的方法训练出的lbf特征模型获取人脸特征点,具体包括以下方法:
[0016]
s2.1人脸区域检测
[0017]
采用局部二值模式进行人脸检测;
[0018]
s2.2获取不戴眼睛的人脸特征点
[0019]
在获得人脸区域后,包括正面脸部区域和侧面脸部区域,使用ren shaoqing提出的随机森林和全局线性回归相结合的方法,进行人脸标定获取特征点,有较高的准确率和实时性。
[0020]
s2.3获取戴眼镜时,人脸特征点
[0021]
由于是否佩戴眼镜会对眼睛宽和高的比值阈值产生影响,因佩戴眼镜使图像中的人眼特征点拟合产生了影响,在s2.1、s2.2的基础上加入戴眼镜检测来对应相应的阈值,戴眼镜的人脸特征点检测的具体算法如下:
[0022]
s2.3.1对获得的红外图像进行预处理,使用均值滤波平滑图像;
[0023]
s2.3.2使用sobel算子,进行图像y方向的边缘检测;
[0024]
s2.3.3对边缘检测后的面部图像,进行二值化处理;
[0025]
s2.3.4利用s2.2中求得的面部特征点,计算出两眼的中间坐标与鼻部特征点的距离、眼睛的内角点,以此来分割出眼镜中间roi区域,分割出的roi戴眼镜与不戴眼镜的情况;
[0026]
s2.3.5在分割的roi区域,求眼镜边缘占roi的百分比,即白色像素所占比值,经长时间的实验分析,比值超10%时为戴眼镜情况;
[0027]
s3基于步骤s2中获取的人脸特征点集合,经计算获得其对应的分类状态:
[0028]
s3.1获得戴眼镜和不戴眼镜的情况下的正面眼部状态,计算眼睛高宽比
[0029]
在获得实时的面部特征点后,基于特征点的眨眼检测方法计算眼睛的高宽比,在人脸的68个特征点中,每个眼部有6个特征点,且在睁眼与闭眼时处在不同的状态,通过计算眼睛宽和高的比值计算眼睛状态,闭眼时眼睛宽和高的比值会发生明显的波动,可以方便的找出阈值,判断眨眼与否,且符合实时检测的要求,精准度的高;
[0030]
s3.2计算嘴部的高宽比,计算出嘴部的状态
[0031]
在获得实时的面部特征点后,根据特征点获得嘴部状态,计算出嘴部的宽,嘴部的高,并根据嘴部的高宽比计算出嘴部的状态;
[0032]
s4疲劳驾驶评估
[0033]
s4.1眼部状态评估
[0034]
perclos指数是美国卡内基梅陇研究在进行了大量的实验后提出的一种衡量驾驶
员疲劳状态的物理量,是美国国家公路安全局(nhtsh)唯一认可的检测疲劳的方法,perclos指的是眼睛在一段时间内闭合状态占总时间的比值,其有三种测量标准:p70,p80,em,分别为眼睑遮住瞳孔70%,80%,50%时判定闭眼,在实际的使用中,我们使用p80标准,即眼睑遮住瞳孔80%以上,认为是闭眼;
[0035]
s4.2嘴巴状态判断
[0036]
即当嘴部的高宽比大于24%时,认为嘴巴是张开状态,若嘴巴张开持续达1.5s,则记为一次哈欠;
[0037]
s4.3综合疲劳状态判断
[0038]
其眼部perclos指数计算方法,方法如下:
[0039][0040]
其中frame
wink
为闭眼帧数,frame
sum
为总时间帧数,取30分钟为一个时间区段,计算该时间段内的有效帧的眼部perclos值,统计该时间段内的哈欠次数,超过60次peiclos值+10%,融合哈欠后的综合perclos值为如下:
[0041][0042]
其中eye
perclos
为左右眼perclos值的均值,yawn为一个计时区间内的哈欠次数,若在该时间段内综合perclos值>40%,则认为达到疲劳阶段,进行疲劳预警,为了防止出现司机瞌睡的情况,当司机持续闭眼达3s后,也发出相应的疲劳预警。
[0043]
本发明具有以下有益效果:本发明针对夜间识别特征提取问题,采用了intel realsense深度相机,利用其获取红外图像与深度图像,利用红外图像采用lbp特征进行面部识别和特征点提取,并在深度图像上获取面部深度,同时提取戴眼镜的人脸特征点,通过正面人脸特征点的眼睛长宽比或侧面人脸特征点的上下眼睑间距,来判断眼睛状态,通过眼睛状态和嘴巴状态综合评估疲劳状态,通过长时间的实验测试证明,该算法的鲁棒性高,能够满足实时检测的需要,为疲劳检测预警提供了新思路且具有较高的实用价值。
附图说明
[0044]
图1为本发明的流程示意图。
[0045]
图2为本发明的lbp算子示意图。
[0046]
图3为本发明的预处理后的人脸检测与特征点获取示意图。
[0047]
图4为本发明的68特征点图。
[0048]
图5为本发明的眼睛高宽比ear值变化图。
[0049]
图6为本发明的不戴眼睛、戴眼镜的roi图。
具体实施方式
[0050]
现在结合附图对本发明作进一步详细的说明。
[0051]
如图1-6所示的一种基于深度相机的疲劳驾驶预警系统,包括深度相机、人脸特征点定位模块、状态识别模块、驾驶状态预警模块;
[0052]
所述主深度相机安装在驾驶员的前方,用于获取驾驶员的不戴眼睛、戴眼镜正面
图像集合;
[0053]
人脸特征点定位模块提取深度相机的每帧图像的视觉特征参数,通过红外图像预处理后识别面部,进而使用随机森林和全局线性回归相结合的方法训练出的lbf特征模型获取人脸特征点;
[0054]
状态识别模块用于对人脸特征点定位模块提取的人脸进行分析,提取眼睛状态信息、嘴巴状态信息,获得眼睛状态、嘴巴状态的识别结果返回值;
[0055]
驾驶状态预警模块对眼睛状态和嘴巴状态进行综合分析,获得驾驶员的危险评估结果,若超出设定值,这进行危险状态预警。
[0056]
所述深度相机采用intel realsense深度摄像头。
[0057]
一种基于深度相机的疲劳驾驶预警方法,包括以下步骤:
[0058]
s1获取红外图像与深度图像样本
[0059]
图像样本包括不戴眼睛的样本、戴眼镜的正面人脸图像样本、戴眼镜的侧面人脸图像样本;
[0060]
s2获取人脸区域、人脸特征点集合,通过红外图像预处理后识别面部,进而使用随机森林和全局线性回归相结合的方法训练出的lbf特征模型获取人脸特征点,具体包括以下方法:
[0061]
s2.1人脸区域检测
[0062]
采用局部二值模式进行人脸检测,所述局部二值模式lbp(local binary patterns)算子是在一个3*3的窗口内取其中心像素值为阈值,周围8个像素值与其比较,大于标记为1,否则为0,公式表示为:其中
[0063]
首先计算图像大小为(w-2*radius,h-2*radius)的lbpi,然后计算各像素在第n邻域所对应像素的偏移坐标(d
x
,d
y
)
n
:
[0064][0065]
然后双线性差值计算像素(x,y)第n邻域的灰度值gray(x,y)
n
和编码lbp(x,y)
n
:
[0066][0067]
得出所有像素的lbp编码值:
[0068][0069]
计算每个lbpi图像的宽度和高度:
[0070][0071]
按行统计每个lbpi直方图各值高度,将结果存储在hist中,并将高度除以(lbpi图像的高度*lbpi图像的宽度),进行直方图归一化,以行为主序列将hist转换为1维的向量矩阵,最后计算直方图之间的距离来判定是否为人脸:
[0072][0073]
s2.2获取不戴眼睛的人脸特征点
[0074]
在获得人脸区域后,包括正面脸部区域和侧面脸部区域,使用ren shaoqing提出的随机森林和全局线性回归相结合的方法,进行人脸标定获取特征点,有较高的准确率和实时性,包括以下步骤:
[0075]
s2.2.1首先使用随机森林算法和形状索引特征得到图像的局部二值特征,然后线性回归求解回归模型,然后使用训练得到的特征图和线性方程得到更新后的人脸区域

s,与上一个阶段相加得到当前步骤的人脸区域,不断迭代直至结束;
[0076]
s2.2.2使用opencv3.4及其contrib模块加载模型,首先创建人脸关键点检测对象(facemark)类对象,然后加载训练后的人脸对齐模型(facealignment),并创建存储人脸关键点的容器,在检测到人脸的区域内,检测人脸关键点,这样可以缩减检测区域,提高标定的准确率和实时性,然后绘制出特征点,并把特征点转为cv::point类获取特征点坐标;
[0077]
在人脸检测前,因通过红外得到的灰度图像偏暗,需对其进行直方图均衡化,处理后的图像面部识别率明显提高,在预处理后再进行人脸检测与特征点检测。
[0078]
s2.3获取戴眼镜时,人脸特征点
[0079]
由于是否佩戴眼镜会对眼睛宽和高的比值阈值产生影响,因佩戴眼镜使图像中的人眼特征点拟合产生了影响,在s2.1、s2.2的基础上加入戴眼镜检测来对应相应的阈值,戴眼镜的人脸特征点检测的具体算法如下:
[0080]
s2.3.1对获得的红外图像进行预处理,使用均值滤波平滑图像;
[0081]
s2.3.2使用sobel算子,进行图像y方向的边缘检测;
[0082]
s2.3.3对边缘检测后的面部图像,进行二值化处理;
[0083]
s2.3.4利用s2.2中求得的面部特征点,计算出两眼的中间坐标与鼻部特征点的距离、眼睛的内角点,以此来分割出眼镜中间roi区域,分割出的roi戴眼镜与不戴眼镜的情况;
[0084]
s2.3.5在分割的roi区域,求眼镜边缘占roi的百分比,即白色像素所占比值,经长时间的实验分析,比值超10%时为戴眼镜情况;
[0085]
s3基于步骤s2中获取的人脸特征点集合,经计算获得其对应的分类状态:
[0086]
s3.1获得戴眼镜和不戴眼镜的情况下的正面眼部状态,计算眼睛高宽比
[0087]
在获得实时的面部特征点后,基于特征点的眨眼检测方法计算眼睛的高宽比,在人脸的68个特征点中,每个眼部有6个特征点,在睁眼与闭眼时处在不同的状态,6个特征点分别为p1为外眼角特征点,p2为内眼角特征点,p2为上眼睑边缘拱起一点,p3为上眼睑边缘拱起二点,p5为下眼睑边缘下凹二点,p6为下眼睑边缘下凹一点,其中p2与p6位于眼睛竖向中线的外侧,p3与p5位于眼睛竖向中线的内侧,通过计算眼睛宽和高的比值计算眼睛状态,简称ear,其计算方法如下:
[0088][0089]
通过实际实验可以观察到,闭眼时ear值会发生明显的波动,可以方便的找出阈
值,判断眨眼与否,且符合实时检测的要求,精准度的高;
[0090]
s3.2计算嘴部的高宽比,计算出嘴部的状态
[0091]
在获得实时的面部特征点后,根据特征点获得嘴部状态,计算出嘴部的宽,嘴部的高,并根据嘴部的高宽比计算出嘴部的状态;
[0092]
s4疲劳驾驶评估
[0093]
s4.1眼部状态评估
[0094]
perclos(percentage of eyelid closure over the pupil over time)指数是美国卡内基梅陇研究在进行了大量的实验后提出的一种衡量驾驶员疲劳状态的物理量,是美国国家公路安全局(nhtsh)唯一认可的检测疲劳的方法。perclos指的是眼睛在一段时间内闭合状态占总时间的比值,其有三种测量标准:p70,p80,em,分别为眼睑遮住瞳孔70%,80%,50%时判定闭眼,在实际的使用中,我们使用p80标准,即眼睑遮住瞳孔80%以上,认为是闭眼;
[0095]
s4.2嘴巴状态判断
[0096]
即当嘴部的高宽比大于24%时,认为嘴巴是张开状态,若嘴巴张开持续达1.5s,则记为一次哈欠;
[0097]
s4.3综合疲劳状态判断
[0098]
其眼部perclos指数计算方法,方法如下:
[0099][0100]
其中frame
wink
为闭眼帧数,frame
sum
为总时间帧数,取30分钟为一个时间区段,计算该时间段内的有效帧的眼部perclos值,统计该时间段内的哈欠次数,超过60次peiclos值+10%,融合哈欠后的综合perclos值为如下:
[0101][0102]
其中eye
perclos
为左右眼perclos值的均值,yawn为一个计时区间内的哈欠次数,若在该时间段内综合perclos值>40%,则认为达到疲劳阶段,进行疲劳预警,为了防止出现司机瞌睡的情况,当司机持续闭眼达3s后,也发出相应的疲劳预警。
[0103]
本发明不局限于所述实施方式,任何人应得知在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。
[0104]
本发明未详细描述的技术、形状、构造部分均为公知技术。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1