基于图像处理的疲劳驾驶预警系统的制作方法

文档序号:21084793发布日期:2020-06-12 16:49阅读:165来源:国知局
基于图像处理的疲劳驾驶预警系统的制作方法

本发明涉及图像检测领域,具体涉及基于图像处理的疲劳驾驶预警系统。



背景技术:

我国在驾驶疲劳检测方面起步较晚,相关的研究不能突破其瓶颈,从而导致我国在该领域技术始终落后。随着我国科技的不断突破创新、经济实力的不断提高以及科研能力的不断发展,在疲劳驾驶检测系统开发上投入的人力、物力也越来越多,其研究进程正在与国外发达国家靠近。但由于我国对于该方面的研究仅局限于理论方向,实际运用方面仍旧较为欠缺。

美国研究人员开发的系统能够检测驾驶员是否处于疲劳驾驶状态。该系统通过利用红外线摄像头捕捉驾驶员眼部信息,并将所捕捉的信息与该系统录入的疲劳驾驶状态数据进行对比,判定驾驶员是否处于疲劳驾驶状态,若判定结果为处于疲劳驾驶,则该系统会及时提醒驾驶员休息。但事实上该系统存在着一定缺陷使得尚未能够广泛运用到日常生活中。

因此,需要一种预警装置,通过相关匹配方式进行对人眼的粗定位,从而使得系统能够识别人眼位置,进而对人眼睛进行识别,最终评定驾驶员是否处于疲劳状态。



技术实现要素:

本发明目的在于提供基于图像处理的疲劳驾驶预警系统,为了实现对人眼的精确检测,通过对人脸的检测将图像简化为只含有人脸的局部图像,降低人眼检测的难度,并且能够有效地提升识别的效率与精度,使得最终获得可靠的人眼信息,本发明设计巧妙,适合推广;

为实现上述目的,本发明所采用的技术方案是:基于图像处理的疲劳驾驶预警系统,系统包括采集模块、处理模块和显示模块,所述采集模块录入驾驶员的图像并传送至所述处理模块,所述图像中包含有驾驶员的面部特征,所述处理模块对所述图像中的面部特征进行人眼定位并获取驾驶员的眼部特征数据,通过将眼部特征数据进行闭合频率检测得出闭眼百分率,根据驾驶员的闭眼百分率得出驾驶员的疲劳程度并通过显示模块显示。

通过上述技术手段,对人脸实现粗定位,随后细定位到人眼部位,再通过人眼状态判定驾驶员是否处于疲劳驾驶状态,本发明设计巧妙,适合推广。

优选的,所述处理模块中预存有人眼平均灰度模板,通过驾驶员的眼部特征数据与模板匹配实现人眼定位。

优选的,所述人眼平均灰度模板的计算包括下面步骤:

步骤1:对面部区域进行二值化,对面部区域建立坐标,并将所述面部区域的宽度设定为l进行计算;

步骤2:从面部区域上沿向下搜索至1/2l位置,并对面部区域的坐标值进行计算;

步骤3:通过人眼粗定位确定区域d,所述区域d就获取驾驶员的眼部特征数据的整个区域。

优选的,所述人眼平均灰度模板包括左眼平均灰度模板和右眼灰度模板。

优选的,所述左眼平均灰度模板包括对左眼睁开状态下的平均灰度模板和左眼闭合状态下的平均灰度模板,所述右眼平均灰度模板包括对右眼睁开状态下的平均灰度模板和右眼闭合状态下的平均灰度模板。

优选的,所述处理模块还包括有瞳孔定位,通过通孔定位中的hough变换算法确定人眼为闭合状态还是睁开状态。

优选的,所述闭合频率检测的公式为

其中,ttotal是单位时间内所有的图像帧数;tctotal是眼睛闭合状态下的图像帧数。

优选的,所述采集模块为摄像头。

与现有技术相比,本发明的有益效果为:

1.在检测的过程中,需要对待检测图像进行合理的分割,并获得人眼分布的小区域,接着可以在各个小区域中对人眼进行精确的定位与识别。通过这种精确的划分方式不仅缩小了识别范围,而且执行效率更高,最终可以获得更加精确的识别结果;

2.基于hough变换算法来进行人眼的分析不仅能够精确的判断出眼睛的具体位置信息,同时还能够对人眼的状态进行判断,并基于此可以对驾驶员的疲劳状态进行分析;

3.实时视频跟踪过程中会有大量的数据需要保存下来,利用fpga处理器的优势,引入cf卡可以方便地对这些视频数据进行存储,在司机没有及时对报警做出反应而导致发生交通意外的情况下,这些数据可以作为分析事故原因的重要证据。

附图说明

图1为基于图像处理的疲劳驾驶预警系统的结构图;

图2为本发明的实施例中圆的hough变换原理图;

图3为本发明的实施例中不同疲劳状态下的闭眼百分率;

图4为本发明的实施例的基于hough变换的人眼虹膜定位步骤;

图5为本发明的实施例的眼睛模型;

图6为本发明的实施例的人眼疲劳检测系统算法流程图;

图7为本发明的实施例的自适应阈值分割。

具体实施方式

下面结合本发明的附图1~7,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施。

在本发明的描述中,需要理解的是,术语“逆时针”、“顺时针”“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

实施例1:

基于图像处理的疲劳驾驶预警系统,系统包括采集模块、处理模块和显示模块,所述采集模块录入驾驶员的图像并传送至所述处理模块,所述图像中包含有驾驶员的面部特征,所述处理模块对所述图像中的面部特征进行人眼定位并获取驾驶员的眼部特征数据,通过将眼部特征数据进行闭合频率检测得出闭眼百分率,根据驾驶员的闭眼百分率得出驾驶员的疲劳程度并通过显示模块显示。

值得说明的是,所述处理模块中预存有人眼平均灰度模板,通过驾驶员的眼部特征数据与模板匹配实现人眼定位,所述人眼平均灰度模板的计算包括下面步骤:

步骤1:对面部区域进行二值化,对面部区域建立坐标,并将所述面部区域的宽度设定为l进行计算;

步骤2:从面部区域上沿向下搜索至1/2l位置,并对面部区域的坐标值进行计算;

步骤3:通过人眼粗定位确定区域d,所述区域d就获取驾驶员的眼部特征数据的整个区域。

值得说明的是,所述人眼平均灰度模板包括左眼平均灰度模板和右眼灰度模板。值得说明的是,所述左眼平均灰度模板包括对左眼睁开状态下的平均灰度模板和左眼闭合状态下的平均灰度模板,所述右眼平均灰度模板包括对右眼睁开状态下的平均灰度模板和右眼闭合状态下的平均灰度模板,所述处理模块还包括有瞳孔定位,通过通孔定位中的hough变换算法确定人眼为闭合状态还是睁开状态,所述闭合频率检测的公式为

其中,ttotal是单位时间内所有的图像帧数;tctotal是眼睛闭合状态下的图像帧数,所述采集模块为摄像头。

实施例2:

为了实现对人眼的精确检测,本实施例只将图像简化为只含有人脸的局部图像,从而降低了检测的难度。请参照图6,另外通过这种方式能够有效地提升识别的效率与精度,使得最终获得的人眼信息比较可靠。在检测的过程中,需要对待检测图像进行合理的分割,并获得人眼分布的小区域,接着可以在各个小区域中对人眼进行精确的定位与识别。通过这种精确的划分方式不仅缩小了识别范围,而且执行效率更高,最终可以获得更加精确的识别结果。

具体计算过程如下所示:1)首先是对脸部区域进行二值化;2)然后利用人脸区域的上沿与下沿坐标对整个区域的宽度l进行计算;3)从脸部区域上沿向下开始搜索1/2l位置,并对此区域的坐标值进行计算;4)获取xl与xm范围内的整个区域d,d也就是对人眼进行检测的整个区域。

首先对左眼区域开状态模板的训练过程进行分析,此过程也就是对待检测图像素点的灰度值进行计算的过程,需要对之前分割的10张人眼待检测图的各个点a(i,j)灰度值进行计算,从而获得每一个对应点位置的平均灰度值,通过这种方式即可获得左眼睁开状态下的平均灰度模板。接着对右眼区域开状态模板来进行相关训练,此过程与左眼睁开状态下的平均灰度模板计算过程基本相同,所以可以按照同样的方法得到右眼睁开状态下的平均灰度模板。

通过以上过程即可分别获得左眼与右眼在开、闭状态下的平均灰度模板。然后就可以通过模板匹配原理来实现对人眼的精确定位。

基于模板匹配法来实现对人眼的定位过程如下所示:首先在d区域使用左眼开、闭状态的模板进行人员的检测,也就是对左眼的睁开与闭合两种状态进行检测。如果能够直接确定其中的一种状态,就可以标记处其中的左眼位置l。其次是在d区域使用右眼开、闭状态的模板进行人员的检测,也就是对右眼的睁开与闭合两种状态进行检测。如果能够直接确定其中的一种状态,就可以标记处其中的右眼位置r。

值得说明的是,本实施例中通过对面部进行粗定位后通过瞳孔精确定位算法进一步确定驾驶员的眼部数据;请参照图2,基于hough变换方法实现精确定位瞳孔位置,hough变换作为一种常用的图像检测算法,已经普遍的应用于机械领域,例如可以对机械器件的直线、圆孔等图形进行有效的识别,并对机械产品的质量以及形状等进行较为精准的检测。使用hough变换算法检测瞳孔位置时,需要先对区域中的圆形区域进行识别,如果瞳孔处于完全打开时基本上可以认为是一个圆形,此时即可以较为准确的检测出待检测图像内的人眼位置,所以可以更加进一步的计算左右瞳孔的具体坐标;如果没有检测到圆形,就表明人眼处于闭合状态。基于hough变换算法来进行人眼的分析不仅能够精确的判断出眼睛的具体位置信息,同时还能够对人眼的状态进行判断,并基于此可以对驾驶员的疲劳状态进行分析。

hough变换的多个特性使其可以有效地用在人眼的检测中,一般不会受到噪声的影响,对于边缘出现断续的情况hough变换具有较高的鲁棒性。

值得说明的是,进一步在对驾驶员的眼睛闭合频率的检测:通常情况下,人体眼部具有两种状态,首先是张开,其次是闭合。不管人体眼睛处于两种状态的任何一种,视频和图片都可以对其进行反应,单位时间内司机眼部张开和闭合帧数所占的比例计算公式如下。

其中,ttotal是单位时间内所有的图像帧数;tctotal是眼睛闭合状态下的图像帧数。

值得说明的是,请参照图3,闭眼百分率的变化与人体的疲劳程度有着密切的相关性,通常情况下呈现出正相关的基本关系。总的来说,清醒的人在每个时间段内的闭眼百分比也呈现出差异性的基本特点,虽然存在差异,但是整体保持在一定的范围内,因而可以对其阈值进行确定。该方式一定程度上可以判断驾驶员的疲劳程度,并对存在疲劳情况的司机进行预警。

值得说明的是,本实施例中,在fpga上完成系统设计,通过摄像头实时采集驾驶员头部图像,通过图像处理快速定位并进行眼睛状态的识别与分析,系统开机后的一分钟对驾驶员清醒状态下的瞳孔形状与眨眼频率进行采集作为模板,之后开始对驾驶员进行实时疲劳检测预警,系统能适应驾驶员头部在一定程度上倾斜、适应车内的光线变化、适应驾驶员的表情变化等情况,驾驶员的头部在一定范围内,左右移动不会超过15厘米,前后移动不超过5厘米,头部会有轻微的晃动,偶尔会有扭头但很快会恢复原位,眼睛正视前方时,实现以下技术指标:1)实现每秒处理图像40帧;2)人脸模块准确率达到95%;3)人眼识别准确率达到90%;4)疲劳检测准确率达到85%。

值得说明的是,为了实现对人眼的精确检测,通过对人脸的检测将图像简化为只含有人脸的局部图像,降低人眼检测的难度,并且能够有效地提升识别的效率与精度,使得最终获得可靠的人眼信息。对于人眼坐标进行精确定位的算法即为图1中所示。

值得说明的是,关于互相关模板匹配的人眼粗定位:在对人眼进行粗略定位时,采用合理的方法对模板匹配算法进行改进与优化,然后基于此对人眼的区域进行大致的检测。选取合适的模板匹配算法完成对图像的有效划分,成对人眼的粗略定位。通过此算法的使用能够降低人眼检测的难度,并为更精确的检测奠定基础。

值得说明的是,请参照图4,基于hough变换算法来进行人眼的分析不仅能够精确的判断出眼睛的具体位置信息,同时还能够对人眼的状态进行判断,并基于此可以对驾驶员的疲劳状态进行分析。所以这种方法是对人眼进行精确识别与判断的较好方式。

值得说明是,基于perclos与眨眼频率的疲劳检测算法:在精确定位了眼睛窗口和眼球位置后,要提取人眼的疲劳参数,需要先构建眼睛的模型。通常眼睛包括内外眼角、上下眼睑、黑眼球、白角膜等,其标准模型如图5所示,眼睛的黑眼球部分在眼睛中呈圆形。上下眼睑之间的高度h表示眼睛的高度,在进行眼睛睁闭程度检测时,首先要提取眼睛的高度h。

值得说明的是,根据区域生长二值化得到人眼区域,然后需要在人眼区域进行垂直积分投影提取眼睛上下眼睑的距离,按照上眼睑和下眼睑之间的高度,来判断眼睛的状态。perclos检测方法需要用摄像头采集相邻的两帧脸部图像,通过帧差法、二值化、积分投影、区域生长等图像处理方法获得分割出的眼睛图像,通过计算出的阈值分析确定眼睛是闭合还是睁开,判断驾驶员的疲劳程度,并对存在疲劳情况的司机进行预警。

值得说明的是,硬件部分是使用verilog语言编写的fpga内部配置程序,主要实现初始化、图像数据处理等功能;软件部分是使用niosii软件设计的软核部分,主要实现人脸图像预处理、特征提取和判断输出等功能。

值得说明的是,驾驶员疲劳驾驶行为属于一段时间内的疲劳现象,因此单凭单张图片难以判定该对象是否处于疲劳驾驶状态。只有通过采取实时视频帧序列检测方式进行对象疲劳驾驶状态检测,其检测结果才具有科学性和真实性。首先对人脸检测算法展开研究(统计计算检测法、基于特征的人脸检测算法、基于模板匹配的人脸检测算法),完成仿真分析,通过性能评估得出最优人脸检测算法。

值得说明的是,在进行视频图像的检测时,首先要做的是识别脸部信息,在确定脸部信息之后可以进一步的识别人眼信息。检测时需要先计算图像内各个像素点坐标,接着基于人的脸部特征信息来对眼部区域执行阈值分割,并在此基础上实现更加精确的定位。

值得说明的是,请参照图7,阈值分割法是一种基于区域分割的图像处理技术,该方法的基本原理是通过设定的不同的特征阈值,将图像象素点分成若干类。常用的特征通常来自原始图像的灰度值或彩色特征以及由原始灰度或彩色值变换得到的特征。根据阈值t对图像进行二值化变换,确定当前像素是背景点还是前景点。在经粗定位后的眼睛窗口,分析眉眼窗口直方图,计算眼睛窗口灰度直方图,然后求取峰值tmax,取阈值为t=tmax;最后,把像素值与阈值比较,二值化眉眼窗口。

值得说明的是,为了更加精确的获得人眼位置,需要采用更加精确的定位算法,其具体过程如下所示:1)首先是根据先前得到的左眼举行l与右眼矩形r进行边缘检测,此时需要使用canny算子在其范围内进行计算;2)完成对图像的边缘检测过程之后,需要对图像进行二值化处理,通过这种方式即可确定瞳孔圆的半径大小。3)接着需要初始化hough矩阵,首先需要初始化累加器数组m,将瞳孔圆参数列表都设置为0,即m(i,j,r)=0;4)然后就是在左右眼的矩形区域中绘制圆形,圆半径大小是r。然后在其边界位置进行检测,并获得各个边界点的坐标值。然后即可以根据圆的坐标方程来获得m(i,j,r)的值;5)最后需要计算m中累加器的最大值,也就是获取瞳孔圆形的圆心坐标。可以通过m(0,r)进行表示。

值得说明的是,通过以上过程即可实现对人眼的精确定位,此方法即为hough变换算法实现人眼定位的全过程,能够有效地识别到人眼瞳孔圆心的位置。这里的圆心半径即为r,并保持其固定不变,通过这种方式能够显著降低识别瞳孔的复杂度,从而为之后的计算过程提供便利。对于hough变换算法来说,采用固定半径r的方式来进行人眼瞳孔的检测,能够有效地降低其维度,算法的计算效率也会得到提升,可以更快的完成计算过程。如果司机的眼睛一直处理睁开状态,通过这种算法即可以获取每一帧图像的瞳孔近似圆形;而一直没有检测到这种近似圆形时,就表明司机的眼睛一直处于闭合状态。

综上所述,本发明的实施原理为:首先,通过摄像头动态获取驾驶员的图像,将驾驶员图像数据传送到系统的存储器中;然后,通过人脸检测算法对人脸实现粗定位,通过相关匹配方式进行对人眼的粗定位,从而使得系统能够识别人眼位置,进而对人眼睛进行识别,最终评定驾驶员是否处于疲劳状态,本发明设计巧妙,适合推广。

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