一种基于图像处理的疲劳检测方法及其系统与流程

文档序号:16739770发布日期:2019-01-28 12:54阅读:289来源:国知局
一种基于图像处理的疲劳检测方法及其系统与流程

本发明涉及交通技术领域,具体为一种基于图像处理的疲劳检测方法及其系统。



背景技术:

目前,随着社会经济的迅速发展和城市化进程的不断加快,汽车用户数量逐年增多,道路交通安全状况日益恶化,我国每年道路交通事故死亡的人数超过6万人,平均每天死亡人数超过165人,居世界前列。根据公安部交管局发布的“2016年全国道路交通事故情况”介绍,2016年,涉及人员伤亡的道路交通事故212846起,造成63093人死亡,226430人受伤,直接财产损失12.1亿元。由此可见,道路交通安全问题已经严重影响经济发展和社会建设,减少道路交通事故的发生和人员伤亡是关系民生问题的重要大事。驶员疲劳驾驶是引发交通事故的重要原因之一,主要表现为打瞌睡,注意力下降。研究表明,在开车仅1小时的时候就会出现注意力下降的最初迹象。近二十年来,世界各国的交通部门对困倦监测投入了很大的力量,取得了一些效果,但目前还未得到很好地应用。由于驾驶员的疲劳多与睡眠不足有关,因此,研究驾驶员疲劳驾驶检测具有重要的应用价值。

现有驾驶员疲劳检测方法较多,基于生理信号的检测方法是采用脑电图、心电图、肌电图、呼吸等信息,虽然其准确性较高,但生理信号需要采用接触式测量,对驾驶员依赖性较大,实时性差且成本较高。基于操控行为的检测方法需要检测驾驶员的各种操作如方向盘、加速器、刹车装置等变化,该方法准确性及实用性一般,上述方法难以通过相对较简单的技术处理进行疲劳检测。

基于上述问题,需要设计一种新的基于图像处理的疲劳检测系统。



技术实现要素:

本发明的目的是提供一种基于图像处理的疲劳检测方法及其系统。

为了解决上述技术问题,本发明提供了一种基于图像处理的疲劳检测方法,包括:

步骤s1,人脸检测;

步骤s2,图像处理;

步骤s3,数据处理;以及

步骤s4,疲劳检测。

进一步,所述步骤s1中人脸检测的方法包括:

利用opencv库来训练级联分类器并进行人脸检测,获取驾驶员的人脸图像,即

基于opencv库创建正样本集合,以及准备大量负样本图片,设置特征类型;采用opencv_traincascade训练级联分类器。

进一步,所述步骤s2中图像处理的方法包括:灰度处理、二值化处理和人眼侦测;其中

所述灰度处理的方法包括:

将人脸图像转化为灰度直方图,并统计左脸和右脸的平均灰度,缩小左右脸的亮度差;

所述二值化处理的方法包括:

利用灰度直方图统计灰度,设置灰度阈值,即

小于灰度阈值设为黑色,其他设为白色,再利用洪水填充法去除人脸图像中的头发后,进行垂直梯度投影;

所述人眼侦测的方法包括:

首先进行纵向侦测,定位包括双眼的大致水平位置;再进行横向侦测,区分左右眼并确定垂直位置;然后进行精确侦测,去除部分眉毛信息并得到双眼的精确位置;最后进行眼睑侦测,计算眼睑张开度。

进一步,所述步骤s3中数据处理的方法包括:

合法性检测和数据统计;其中

所述合法性检测的方法包括:去除非法数据,所述非法数据为左右眼睑张开程度相差悬殊的数据或者过双眼中心的直线斜率的绝对值大于预设值的数据;

所述数据统计的方法包括:

首先计算当前眼睑张开度,取左右眼睑展开度的平均值,同时保存到眼睑序列中,然后统计一段时间的眼睑展开度,对眼睑展开度进行筛选后剩下的最大值为最大眼睑张开度。

进一步,所述步骤s4中疲劳检测的方法包括:

检测短期疲劳和检测长期疲劳;

检测短期疲劳的方法包括:

被驾驶员连续闭眼时间超过所设定的驾驶员允许连续闭眼时间,即判定驾驶员出现短期疲劳;

检测长期疲劳的方法包括:

在预设时间内统计驾驶员的总眼睑张开度次数,当眼睑张开度低于预设眼睑张开度的次数占据总眼睑张开度次数的比例高于所预先设定的长期疲劳判定阈值时,判定驾驶员出现长期疲劳。

进一步,所述疲劳检测方法还包括:步骤s5,状态显示方法,

所述状态显示方法包括:显示疲劳信息和发出报警信息;

所述显示疲劳信息,即

显示短期疲劳状态曲线和长期疲劳状态曲线;以及

所述发出报警信息,即

判断驾驶员疲劳后发出警报。

另一方面,本发明还提供一种疲劳检测系统,包括:

依次连接的人脸检测模块、图像处理模块、数据处理模块;其中

所述人脸检测模块,适于利用opencv库来训练级联分类器并进行人脸检测,获取驾驶员的人脸图像;

所述图像处理模块适于对人脸图像进行灰度处理、二值化处理和人眼侦测,从而得到人眼图像;

所述数据处理模块适于对人眼图像的合法性进行检查,统计一段预设时间内的眼睑张开度,并计算最大正常眼睑张开度;以及

所述疲劳检测模块适于驾驶员的短期疲劳和长期疲劳。

进一步,所述疲劳检测系统还包括:状态显示模块,

所述状态显示模块适于显示驾驶员疲劳状态曲线,判断驾驶员疲劳后发出警报。

本发明的有益效果是,本发明通过人脸检测、图像处理、数据处理,以及疲劳检测相互配合,实现了基于图像处理进行疲劳检测。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明所涉及的基于图像处理的疲劳检测方法的步骤流程图;

图2是本发明所涉及的基于图像处理的疲劳检测方法的具体流程图;

图3是本发明所涉及的基于图像处理的疲劳检测方法中灰度处理流程图;

图4是本发明所涉及的基于图像处理的疲劳检测方法中二值化处理流程图;

图5是本发明所涉及的基于图像处理的疲劳检测方法中人眼侦测流程图;

图6是本发明所涉及的基于图像处理的疲劳检测系统中正常状态曲线图;

图7是本发明所涉及的基于图像处理的疲劳检测系统中疲劳状态曲线图。

具体实施方式

现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

实施例1

图1是本发明所涉及的基于图像处理的疲劳检测方法的步骤流程图;

图2是本发明所涉及的基于图像处理的疲劳检测方法的具体流程图。

如图1和图2所示,本实施例提供了一种基于图像处理的疲劳检测方法,包括:步骤s1,人脸检测;步骤s2,图像处理;步骤s3,数据处理;以及步骤s4,疲劳检测;通过人脸检测、图像处理、数据处理,以及疲劳检测相互配合,实现了基于图像处理进行疲劳检测。

在本实施例中,所述步骤s1中人脸检测的方法包括:利用opencv库来训练级联分类器并进行人脸检测,获取驾驶员的人脸图像,所述级联分类器包括数据集准备和运行训练程序两个部分,即基于opencv库创建正样本集合,以及准备大量负样本图片,设置特征类型;采用opencv_traincascade训练级联分类器;所述负样本图片可以是手工准备,所述设置特征类型可以是haar类型;通过级联分类器可以高效便捷的进行人脸检测。

图3是本发明所涉及的基于图像处理的疲劳检测方法中灰度处理流程图;

图4是本发明所涉及的基于图像处理的疲劳检测方法中二值化处理流程图;

图5是本发明所涉及的基于图像处理的疲劳检测方法中人眼侦测流程图。

在本实施例中,所述步骤s2中图像处理的方法包括:灰度处理、二值化处理和人眼侦测;其中

如图3所示,所述灰度处理的方法包括:将人脸图像转化为灰度直方图,并统计左脸和右脸的平均灰度,缩小左右脸的亮度差;首先将彩色图像转换为灰度图,rgb色彩空间转化为灰度图的公式为gray=0.299*r+0.587*g+0.114*b,接着统计0~255个灰度等级出现的次数,得到灰度直方图,最后进行左右亮度均衡,具体做法是统计人脸左边平均灰度和右边平均灰度,通过参数调节缩小左右脸的亮度差。

如图4所示,所述二值化处理的方法包括:利用灰度直方图统计灰度,设置灰度阈值并二值化图像,即小于灰度阈值设为黑色,其他设为白色,再利用洪水填充法去除人脸图像中的头发后,进行垂直梯度投影;

如图5所示,所述人眼侦测的方法包括:首先进行纵向侦测,定位包括双眼的大致水平位置,由二值图像的垂直梯度投影可见眼睛和眉毛的地方会出现一对明显的波峰波谷,计算并设定波峰为max,波峰位置信息为imax,波谷为min,波谷位置信息为imin,再进行横向侦测,区分左右眼并确定垂直位置,即首先将纵向侦测的二值区域存储到数组,找到最大值max及其位置imax,设定阈值为threshold=max/10,然后从数组中间开始遍历左右双眼,标记第一次遇到不为0的点和第二次遇到0的点,两点之间的差即为左眼宽或者右眼宽;然后进行精确侦测,去除部分眉毛信息并得到双眼的精确位置,即将上述步骤的数据保存到数据,从数组底部开始,遇到值大于0的点开始标记,直到遇到值为0的点停止,这样得到人眼的精确范围;最后进行眼睑侦测,计算眼睑张开度,即人眼的精确范围可以看成是一个矩形框,将矩形框中值不为0的最大高度作为眼睑张开度;通过灰度处理、二值化处理和人眼侦测后可以精确的获得人眼的数据。

在本实施例中,所述步骤s3中数据处理的方法包括:合法性检测和数据统计;其中所述合法性检测的方法包括:对人眼图像进行合法性检查,去除非法数据,所述非法数据为左右眼睑张开程度相差悬殊的数据或者过双眼中心的直线斜率的绝对值大于预设值的数据(所述预设值可以是0.5);可以更加精确的获得人眼图像;

所述数据统计的方法包括:首先计算当前眼睑张开度,取左右眼睑展开度的平均值,同时保存到眼睑序列中,然后统计一段时间的眼睑展开度,对眼睑展开度进行筛选(所述筛选可以是去除眼睑张开度最大的5%)后剩下的最大值为最大眼睑张开度;可以更加准确的获得最大眼睑张开度。

在本实施例中,所述步骤s4中疲劳检测的方法包括:检测短期疲劳和检测长期疲劳;检测短期疲劳的方法包括:被驾驶员连续闭眼时间超过所设定的驾驶员允许连续闭眼时间(所述设定的允许连续闭眼时间可以是3秒),即判定驾驶员出现短期疲劳;

检测长期疲劳的方法包括:一段时间内眼睑张开度与最大眼睑张开度的比例低于50%则判断长期疲劳;或者在预设时间内统计驾驶员的总眼睑张开度次数,当眼睑张开度低于预设眼睑张开度(所述预设眼睑张开度可以是最大眼睑张开度的50%)的次数占据总眼睑张开度次数的比例高于所预先设定的阈值时(所述长期疲劳判定阈值可以是占据总眼睑张开度次数的比例为50%),判定驾驶员出现长期疲劳;可以精确的分辨出驾驶员是短期疲劳或是长期疲劳。

图6是本发明所涉及的基于图像处理的疲劳检测系统中正常状态曲线图;

图7是本发明所涉及的基于图像处理的疲劳检测系统中疲劳状态曲线图。

如图6和图7所示(图6和图7的横坐标均表示时间,纵坐标均表示眼睑张开度与最大眼睑张开度的比例,连续3秒比例低于50%则认为疲劳),在本实施例中,所述疲劳检测方法还包括:步骤s5,状态显示方法,所述状态显示方法包括:显示疲劳信息和发出报警信息;所述显示疲劳信息,即显示短期疲劳状态曲线和长期疲劳状态曲线(疲劳状态曲线的横坐标表示时间,短期和长期疲劳可以通过横坐标的长度来度量,可以根据需要设定长期疲劳的判定时间,例如但不限于300s、500s等);所述疲劳信息可以显示在显示屏上,所述显示屏可以采用led显示屏;所述状态显示方法还包括:显示正常状态曲线;以及所述发出报警信息,即判断驾驶员疲劳后发出警报;可以有效的当驾驶员疲劳后发出警报。

实施例2

在实施例1的基础上,本实施例2还提供一种疲劳检测系统,包括:依次连接的人脸检测模块、图像处理模块、数据处理模块;其中所述人脸检测模块,适于利用opencv库来训练级联分类器并进行人脸检测,获取驾驶员的人脸图像;所述图像处理模块适于对人脸图像进行灰度处理、二值化处理和人眼侦测,从而得到人眼图像;所述数据处理模块适于对人眼图像的合法性进行检查,统计一段预设时间内的眼睑张开度,并计算最大正常眼睑张开度;以及所述疲劳检测模块适于驾驶员的短期疲劳和长期疲劳。

在本实施例中,所述疲劳检测系统还包括:状态显示模块,所述状态显示模块适于显示驾驶员疲劳状态曲线,判断驾驶员疲劳后发出警报。

在本实施例中人脸检测模块、图像处理模块、数据处理模块以及状态显示模块的具体处理过程和原理在实施例1中已经进行详细描述,请参见上述内容。

综上所述,本发明通过人脸检测、图像处理、数据处理,以及疲劳检测相互配合,实现了基于图像处理进行疲劳检测;将疲劳检测的结果数据通过状态显示方法显示出来,可以更加方便和直观的了解驾驶员的疲劳状态。

以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1