当前位置: 首页 > 专利查询>吉林大学专利>正文

基于分块特征矩阵算法和SVM的疲劳状态检测方法技术

技术编号:17033461 阅读:27 留言:0更新日期:2018-01-13 19:43
基于分块特征矩阵算法和SVM的疲劳状态检测方法属图像处理和模式识别技术领域,本发明专利技术通过面部特征分析判断驾驶员是否处于疲劳状态,首先获取驾驶员视频图像,进行光照补偿和人脸区域检测;然后在人脸区域进行眼部和嘴部区域检测;本发明专利技术利用眼部分块特征矩阵算法对眼部图像进行特征提取,可降低光照条件、戴眼镜对检测的影响;利用嘴部分块特征矩阵算法对嘴部图像进行特征提取,可减少牙齿外露、嘴部留有胡须对检测的干扰;利用SVM算法对提取特征后的图像进行分类,在小样本训练集情况下提高可靠性;本发明专利技术结合眼部和嘴部疲劳特征分析,在检测到驾驶员处于疲劳状态时发出警告信息,可减少交通事故的发生。

【技术实现步骤摘要】
基于分块特征矩阵算法和SVM的疲劳状态检测方法
本专利技术属图像处理和模式识别
,具体涉及一种基于分块特征矩阵算法和SVM的疲劳状态检测方法。
技术介绍
近年来,我国因机动车驾驶员疲劳而引发的交通事故每年多达数万起,疲劳驾驶已成为交通事故频发的重要因素之一,给驾驶员和行人的生命安全和财产带来了巨大损失。因此,驾驶员疲劳检测已成为当前安全辅助驾驶措施的一个研究热点,越来越多的学者对疲劳检测感兴趣。针对这一问题,研究人员已经提出了许多疲劳检测的方法,大致可分为三种类型:生理参数、车辆行为以及面部特征分析。第一种方法是测量驾驶员的生理参数,如脑电图(EEG)、心电图(ECG)等,但这类方法是侵入性的,需要设备和驾驶员身体接触,会给驾驶带来干扰。第二种方法是测量车辆的行为,如速度、方向盘转动角度以及车道偏离检测等,但这种方法受驾驶条件、驾驶经验、车辆类型等的影响较大。第三种方法是对驾驶员面部进行分析,如PERCLOS值检测、眨眼频率、头部姿态以及打哈欠检测等。这种方法是非侵入性的,不需要和驾驶员身体接触。在面部特征分析方法中,通过方差或积分投影来估计虹膜高度和宽度,根据高度和宽度之间的比率来确定眼睛状态,这种方法受光照条件影响较大。对嘴部区域进行水平和垂直灰度投影,得到嘴巴张开的高度和宽度,根据其宽高比率判断是否打哈欠,但当牙齿露出或嘴部留有胡须时,这种检测方法效果不佳。由于以上算法的缺陷,在实际应用中很难取得理想的效果,有待改进。
技术实现思路
为解决以上算法的缺陷,本专利技术的目的在于提供一种基于分块特征矩阵算法和SVM的疲劳状态检测方法,结合眼部和嘴部疲劳特征,最大程度地提高疲劳状态检测的准确率。本专利技术解决其问题所采用的技术方案是:基于分块特征矩阵算法和SVM的疲劳状态检测方法,是提前构建训练样本图像库,所述训练样本图像库包括眼部训练集和嘴部训练集,眼部训练集特征向量由眼部分块特征矩阵算法计算而得,嘴部训练集特征向量由嘴部分块特征矩阵算法计算而得,所述疲劳状态检测方法包括以下步骤:1.将获取的驾驶员视频流转化成帧图像;2.用“参考白”算法对步骤1的帧图像进行光照补偿:将整个图像中所有像素的亮度值从高到低进行排列,取亮度值在前5%的像素,设置其RGB分量为255,其他像素的RGB分量值按比例线性调整;3.检测人脸区域:对步骤2获取的光照补偿后的帧图像,利用ViolaJones人脸检测算法进行人脸检测,获取驾驶员面部区域;4.检测眼部区域和状态分析:对步骤3获取的人脸图像,利用EyeMap算法检测眼部区域,获取人眼图像,然后利用眼部分块特征矩阵算法计算人眼图像的特征向量,由SVM分类器对图像进行分类,判断眼睛处于睁开还是闭合状态,具体包括下列步骤:4.1根据眼睛在人脸区域的分布特性,选取垂直方向的人脸二分之一到八分之七之间的区域,设为眼部ROI区域A,并检测;4.2首先,将图像从RGB空间转换到YCrCb空间;其次,建立两个眼图,其中一个根据色度分量Cr和Cb,建立眼图EyeMapC,另一个根据亮度分量Y,建立眼图EyeMapL;最后,将这两个眼图相乘,建立眼图EyeMap;4.3通过OTSU算法获得最佳阈值T,将EyeMap灰度图像转换成二值图像,综合分析每个连通域的纵横比,位置等特点来排除非眼睛区域,最后保留一对连通域视为眼睛区域;4.4对获取的人眼图像,利用眼部分块特征矩阵算法计算出特征向量,将此特征向量输入SVM分类器,根据提前训练好的眼部图像样本库,对获取的人眼图像进行分类,判断此时人眼处于睁开还是闭合状态;5.检测嘴部区域和状态分析:对步骤3获取的人脸图像,通过唇分割算法精确定位嘴部区域,然后利用嘴部分块特征矩阵算法对嘴部图像计算特征向量,由SVM分类器对图像进行分类,从而判断嘴部张开状态,具体包括下列步骤:5.1根据嘴部在人脸区域的分布特性,选取垂直方向的人脸下三分之一以下和水平方向的左四分之一至右四分之一之间的区域,设为嘴部ROI区域B,并检测;5.2根据嘴唇和皮肤颜色之间的差异,对嘴部ROI区域B所有像素利用公式计算s值:其中:s代表唇色和肤色之间的差异值;R、G和B分别代表像素的红色分量、蓝色分量和绿色分量;对所有像素的s值进行从大到小排序,考虑到嘴唇区域s值比皮肤大,选取其中s值最大的N个像素视为嘴唇区域,N为ROI区域像素个数的20%,通过连通域分析,获取的嘴唇外接矩形区域为最终嘴部图像;5.3对获取的嘴部图像,利用嘴部分块特征矩阵算法计算出特征向量,将此特征向量输入SVM分类器,根据提前训练好的嘴部图像样本库,对获取的嘴部图像进行分类,判断此时嘴巴张开大小,是否达到打哈欠时的嘴巴张开程度,同时考虑当前帧嘴部图像与前后两帧图像的相似度;6.建立疲劳状态评估模型:根据步骤4.4对眼睛睁闭状态进行判断,计算PERCLOS值,当PERCLOS值大于阈值时,说明驾驶员可能处于疲劳状态;用K值记录眼睛持续闭合的帧数,当K值超过阈值时,说明驾驶员处于疲劳状态;根据步骤5.3对嘴巴张开程度进行判断,用P值记录嘴巴张开程度达到打哈欠时张开程度的持续帧数,当P值超过阈值时,说明驾驶员在打哈欠,处于疲劳状态;7.综合疲劳判断:根据步骤6得到的PERCLOS值、K值和P值,判断驾驶员是否处于疲劳状态,在PERCLOS值超过阈值时,提醒驾驶员可能正处于疲劳驾驶状态,注意行驶;在K值或P值超过阈值时,发出警告,提醒驾驶员正处于疲劳驾驶状态,应马上到安全地带停车休息或更换驾驶员。进一步,利用眼部分块特征矩阵算法对获取的人眼图像计算特征向量包括以下步骤:步骤A1,将人眼图像从RGB空间转换到HSV空间,获取饱和度S图像;将人眼图像从RGB空间转换到YCrCb空间,根据公式获取眼图EM图像;其中,cr为YCrCb空间的红色分量,cb为YCrCb空间的蓝色分量;步骤A2,分别对S图像和EM图像进行均值滤波,并利用双线性插值算法调整图像尺寸为48×32;步骤A3,分别对S图像和EM图像进行图像灰度值归一化,将图像灰度值归一化到0-1区间内;定义饱和度-眼图矩阵,大小为16×16,横坐标值从0到1划分16个区间,对应EM图像灰度值范围,纵坐标值从0到1也划分16个区间,对应S图像灰度值范围,区间宽度都为1/16,区间序号从1到16;其中:EM权重为横坐标区间序号;S权重为纵坐标区间序号;区间像素数为遍历人眼图像所有像素,其S值和EM值落入此区间的像素个数,S值为S图像对应像素灰度值,EM值为EM图像对应像素灰度值;步骤A4,分别对S图像和EM图像依次从左到右,从上到下进行8×8分块,S图像和EM图像各分成24个局部图像块,计算对应每个局部人眼图像块的矩阵特征值,最终得到人眼图像的24维特征向量。进一步,利用嘴部分块特征矩阵算法对获取的嘴部图像计算特征向量包括以下步骤:步骤B1,获取嘴部图像对应的灰度G图像,将人眼图像从RGB空间转换到YCrCb空间,根据公式CD=cr-cb,获取色差CD图像;步骤B2,分别对G图像和CD图像进行均值滤波,并利用双线性插值算法调整图像尺寸为48×64;步骤B3,分别对G图像和CD图像进行图像灰度值归一化,将图像灰度值归一化到0-1区间内;定义灰度-色差矩阵,大小为16×16,横坐标本文档来自技高网...
基于分块特征矩阵算法和SVM的疲劳状态检测方法

【技术保护点】
一种基于分块特征矩阵算法和SVM的疲劳状态检测方法,其特征在于,提前构建训练样本图像库,所述训练样本图像库包括眼部训练集和嘴部训练集,眼部训练集特征向量由眼部分块特征矩阵算法计算而得,嘴部训练集特征向量由嘴部分块特征矩阵算法计算而得,所述疲劳状态检测方法包括下列步骤:1.1将获取的驾驶员视频流转化成帧图像;1.2用“参考白”算法对步骤1.1的帧图像进行光照补偿:将整个图像中所有像素的亮度值从高到低进行排列,取亮度值在前5%的像素,设置其RGB分量为255,其他像素的RGB分量值按比例线性调整;1.3检测人脸区域:对步骤1.2获取的光照补偿后的帧图像,利用Viola Jones人脸检测算法进行人脸检测,获取驾驶员面部区域;1.4检测眼部区域和状态分析:对步骤1.3获取的驾驶员面部区域,利用EyeMap算法检测眼部区域,获取人眼图像,然后利用眼部分块特征矩阵算法计算人眼图像的特征向量,由SVM分类器对图像进行分类,判断眼睛处于睁开还是闭合状态,具体包括下列步骤:1.4.1根据眼睛在人脸区域的分布特性,选取垂直方向的人脸二分之一到八分之七之间的区域,设为眼部ROI区域(A),并检测;1.4.2首先,将图像从RGB空间转换到YCrCb空间;其次,建立两个眼图,其中一个根据色度分量Cr和Cb,建立眼图EyeMapC,另一个根据亮度分量Y,建立眼图EyeMapL;最后,将这两个眼图相乘,建立眼图EyeMap;1.4.3通过OTSU算法获得最佳阈值T,将EyeMap灰度图像转换成二值图像,综合分析每个连通域的纵横比,位置等特点来排除非眼睛区域,最后保留一对连通域视为眼睛区域;1.4.4对获取的人眼图像,利用眼部分块特征矩阵算法计算出特征向量,将此特征向量输入SVM分类器,根据提前训练好的眼部图像样本库,对获取的人眼图像进行分类,判断此时人眼处于睁开还是闭合状态;1.5检测嘴部区域和状态分析:对步骤1.3获取的人脸图像,通过唇分割算法精确定位嘴部区域,然后利用嘴部分块特征矩阵算法对嘴部图像计算特征向量,由SVM分类器对图像进行分类,从而判断嘴部张开状态,具体包括下列步骤:1.5.1根据嘴部在人脸区域的分布特性,选取人脸垂直方向的下三分之一以下和水平方向的左四分之一至右四分之一之间的区域,设为嘴部ROI区域(B),并检测;1.5.2根据嘴唇和皮肤颜色之间的差异,对嘴部ROI区域(B)所有像素利用公式计算s值:...

【技术特征摘要】
1.一种基于分块特征矩阵算法和SVM的疲劳状态检测方法,其特征在于,提前构建训练样本图像库,所述训练样本图像库包括眼部训练集和嘴部训练集,眼部训练集特征向量由眼部分块特征矩阵算法计算而得,嘴部训练集特征向量由嘴部分块特征矩阵算法计算而得,所述疲劳状态检测方法包括下列步骤:1.1将获取的驾驶员视频流转化成帧图像;1.2用“参考白”算法对步骤1.1的帧图像进行光照补偿:将整个图像中所有像素的亮度值从高到低进行排列,取亮度值在前5%的像素,设置其RGB分量为255,其他像素的RGB分量值按比例线性调整;1.3检测人脸区域:对步骤1.2获取的光照补偿后的帧图像,利用ViolaJones人脸检测算法进行人脸检测,获取驾驶员面部区域;1.4检测眼部区域和状态分析:对步骤1.3获取的驾驶员面部区域,利用EyeMap算法检测眼部区域,获取人眼图像,然后利用眼部分块特征矩阵算法计算人眼图像的特征向量,由SVM分类器对图像进行分类,判断眼睛处于睁开还是闭合状态,具体包括下列步骤:1.4.1根据眼睛在人脸区域的分布特性,选取垂直方向的人脸二分之一到八分之七之间的区域,设为眼部ROI区域(A),并检测;1.4.2首先,将图像从RGB空间转换到YCrCb空间;其次,建立两个眼图,其中一个根据色度分量Cr和Cb,建立眼图EyeMapC,另一个根据亮度分量Y,建立眼图EyeMapL;最后,将这两个眼图相乘,建立眼图EyeMap;1.4.3通过OTSU算法获得最佳阈值T,将EyeMap灰度图像转换成二值图像,综合分析每个连通域的纵横比,位置等特点来排除非眼睛区域,最后保留一对连通域视为眼睛区域;1.4.4对获取的人眼图像,利用眼部分块特征矩阵算法计算出特征向量,将此特征向量输入SVM分类器,根据提前训练好的眼部图像样本库,对获取的人眼图像进行分类,判断此时人眼处于睁开还是闭合状态;1.5检测嘴部区域和状态分析:对步骤1.3获取的人脸图像,通过唇分割算法精确定位嘴部区域,然后利用嘴部分块特征矩阵算法对嘴部图像计算特征向量,由SVM分类器对图像进行分类,从而判断嘴部张开状态,具体包括下列步骤:1.5.1根据嘴部在人脸区域的分布特性,选取人脸垂直方向的下三分之一以下和水平方向的左四分之一至右四分之一之间的区域,设为嘴部ROI区域(B),并检测;1.5.2根据嘴唇和皮肤颜色之间的差异,对嘴部ROI区域(B)所有像素利用公式计算s值:其中:s代表唇色和肤色之间的差异值;R、G和B分别代表像素的红色分量、蓝色分量和绿色分量;对所有像素的s值进行从大到小排序,考虑到嘴唇区域s值比皮肤大,选取其中s值最大的N个像素视为嘴唇区域,N为ROI区域像素个数的20%,通过连通域分析,获取的嘴唇外接矩形区域为最终嘴部图像;1.5.3对获取的嘴部图像,利用嘴部分块特征矩阵算法计算出特征向量,将此特征向量输入SVM分类器,根据提前训练好的嘴部图像样本库,对获取的嘴部图像进行分类,判断此时嘴巴张开大小,是否达到打哈欠时的嘴巴张开程度,同时考虑当前帧嘴部图像与前后两帧图像的相似度;1.6建立疲劳状态评估模型:根据步骤1.4.4对眼睛睁闭状态进行判断,计算PERCLOS值,当PERCLOS值大于阈值时,说明驾驶员可能处于疲劳状态;用K值记录眼睛持续闭合的帧数,...

【专利技术属性】
技术研发人员:王世刚季映羽卢洋韦健赵岩
申请(专利权)人:吉林大学
类型:发明
国别省市:吉林,22

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1