汽车司机驾驶状态监测系统的制作方法_2

文档序号:10318743阅读:来源:国知局
[0046] (3)检测到人脸,扬声器开始播发系统开始工作的提示。
[0047] (4)不断从摄像头获取图像信息,并且进行人脸检测、嘴部检测,并且初始化嘴部 跟踪模块,调用眼睛轮廓定位算法定位,分析用户的上下眼皮距离,直到分析的帧数已经超 过一定数目。
[0048] (5)根据用户的上下眼皮距离,初始化眨眼判断算法的阈值。
[0049] (6)不断从摄像头获取图像信息,调用算法模块对图像进行分析,调用综合结果分 析模块来综合分析司机的驾驶状态。
[0050] (7)如果收到用户关机信号,则释放内存,关闭蓝牙,退出循环。
[0051] 从上述本实用新型的运行步骤可知,本实用新型主要包括两部分功能模块:一是 对应的计算机视觉模块,用来分析每帧图像,得到原始的信息,比如人脸区域,眼睛位置,眨 眼/闭眼,头部姿态。二是综合结果分析判定模块,其主要目的是根据各种原始分析数据来 判断司机当前的驾驶状态,比如司机是否处于深度疲劳驾驶状态。具体来说,利用计算机 视觉算法,分析摄像头所获得的红外图像并获得一些原始信息,主要包括人脸的位置(可能 包括多个人脸区域),眼睛的位置,眼睛轮廓附近(上下眼眶)关键点的位置。利用这些原始 分析信息,综合结果分析模块加以统计分析,判断出司机当前是否处于瞌睡状态,开车情绪 如何以及开车时候的专注度。最后根据综合分析结果,再调用相应的硬件模块来进行提醒 并且通过蓝牙发送数据到手机软件进行存储和显示,以供用户去检查自己的驾驶行为。
[0052] 具体而目,本实用新型实施例的计算机视觉算法有:人脸检测算法、眼睛定位算 法、眨眼分类算法、嘴部定位与跟踪算法、面部表情识别算法、正面人脸分类算法。分别描述 如下:
[0053] 对于人脸检测算法,利用向量提升算法(Vector Boosting)和转移学习 (transfer learning)作为分类器框架来训练整个算法,用修改中心变换(MCT)和局部梯度模式(LGP) 来抽取图像的特征。同时,不同于原始的vector boosting算法,在通用的数据库上面得到 通用的人脸检测模型后,再收集一部分红外训练图像,通过转移学习 (transfer learning) 技术将通用人脸检测模型转移到基于红外的训练图像上面,使得所得到的人脸检测模型相 比于通用的人脸检测模型,性能更好,更具有针对性。
[0054]具体步骤如下:(1)特征提取阶段:用修改中心变换(MCT)和局部梯度模式(LGP)来 抽取所有人脸和非人脸的图像的特征(包括红外和通用数据库),具体MCT和LGP特征提取方 式见附图6和7。
[0055] (2)正负样本构建阶段:将通用数据库和红外图像数据库中的图像进行分类,包含 人脸图像和非人脸图像,将人脸区域图像缩放到40X40像素,并且根据人脸的不同姿态将 每个人脸划分为不同的子集。
[0056] (3)原始训练阶段:在通用数据库上面采用传统的Vector Boosting算法进行级联 分类器的构建,分类器所用的特征是MCT特征和LGP特征的结合。
[0057] (4)转移学习阶段:在红外数据库上面采用Vector Boosting算法进行级联分类器 的构建,并且同时兼顾通用数据库上面所得到的模型,优化特定的训练目标方程,使得所得 到的模型既具有通用模型的特点又具有红外图像数据的特点,克服了红外图像数据量不足 问题。
[0058] (5)检测阶段:利用转移学习阶段得到的Vector Boosting模型,在红外图像上面 用基于矢量树模型结构对人脸区域进行检测。
[0059]在特征提取阶段,采用基于MCT特征的具体计算方法为:
[0062] 其中,N'(x)=N'(x)U X是X的局部空间邻居,I(x)是像素点X的灰度值,7(.\·)是像 素点X的所有邻居的平均灰度值
是链接操作符,?定义等同于C。
[0063] 采用基于LGP特征的具体计算方法为:
[0065] 其中,(Xc,y。)是像素中心点,中心点i。与邻居点1"之间的灰度值差为gn= lin-i。!,
[0066] 不同于其它算法,MCT与LGP特征有互相补充的地方,组合在一起可以提高整个算 法的稳定性,而且在相同的错误检测率情况下,正确检测率会大大提升,并且整个特征提取 计算时间仍然较低。
[0067] 在正负样本构建阶段,对于许多非人脸区域,构建更多的非人脸图片,使得整个图 片样本中的正负样本比例不平衡,通过接受大量的负样本,可以降低人脸检测整个模型的 错误报警率。
[0068]在原始训练阶段,直接使用原始的Vector Boosting训练模型,每次去从高维的 LGP和MCT特征值中去选择一部分特征值,并且给每个弱分类器以一定的权重,结合当前的 分类器的结果,去重新对每个图像进行权值分配,分类错误的给以更大的权值,分类正确的 给以较小的权值,具体训练过程见图12。在选取弱分类器时候的公式为:
[0070]其中exp是指数函数,f(Xl)是弱分类器,Vl是当前的分类标记,样本i在第t次 迭代的权重。在转移学习阶段,输入是已经在通用数据库上面训练好的模型,输出是将通用 数据库上面的模型转移到红外图像上面的模型。为了衡量模型之间的差距并且尽可能的将 通用数据库上面的模型参数转移到红外图像上面,我们使用了 KL距离来衡量模型的差别。 具体的优化公式如下:
[0073] 式子当中,λ设置不同的值,最后我们选取一个能让测试错误率到达最低的λ,@ 是在通用数据库上面训练所得到的模型,P,q是两个概率分布,?1^1是两个分布中第i个实 例的概率。
[0074] 在测试阶段,最后的强分类器是
由于转移学习的模型与非转移学 习的模型一样,只是参数不一样,因此采用传统的瀑布树级联分类器来进行人脸检测,对每 帧图像进行金字塔缩放,在不同的缩放尺度上面进行人脸检测,然后将检测的结果缩放到 原始图像大小即可。在不同的图像缩放的时候,为了加快运算速度,同时对不同尺度的图像 进行缩放,并行计算特征值,计算积分图像进行检测,具体的检测过程见图13。
[0075]由于使用Vector Boosting算法,因此鲁棒性比较强,能处理不同姿态的人脸,使 得人脸检测范围比较大。相比直接在红外图像上面训练得到的模型,利用的互联网上存在 的大量姿态各异的人脸图像来增强模型的鲁棒性,同时相比仅使用互联网图片训练得到的 通用人脸检测模型,加入了红外图像信息,使得最后的模型更加具有针对性,在红外图像上 面比通用模型具有更好的效果。更进一步,与一般Haar特征提取方法不同,由于使用了修改 中心变化特征提取算法(MCT)和局部梯度模式(LGP)的特征提取的组合,使得算法对图像的 光照变化非常不敏感,检测效果更好。在得到整个算法的模型参数后,给定一副新图像,首 先会抽取图像的MCT特征和局部梯度模式(LGP),计算出积分图像,然后对该图像上所有的 位置进行滑动,对每一个滑动的窗口(40X40像素)利用瀑布级联模型进行评价来判断该窗 口是否是人脸区域。
[0076]对于眼睛定位算法,利用Float Boosting作为分类器模型,除了分类器模型和特 征提取不一样,整个检测步骤基本同人脸检测一样。
[0077] 具体步骤如下:(1)特征提取阶段:用多模块修改中心变换(MBMCT)来抽取所有眼 睛区域和非眼睛区域的图像特征(包括红外和通用数据库),具体MBMCT见附图10。
[0078] (2)正负样本构建阶段:将通用数据库和红外图像数据库中的图像进行分类,包含 眼睛区域图像和非眼睛区域图像,将眼睛区域图像缩放到15X15像素。
[0079] (3)原始训练阶段:在通用数据库上面采用传统的Float Boosting算法进行强分 类器的构建,分类器所用的特征是MBMCT;
[0080] (4)转移学习阶段:在红外数据库上面采用Float Boosting算法进行强联分类器 的构建,并且同时兼顾通用数据库上面所得到的模型,去优化特定的训练目标方程,使得所 得到的模型既具有通用模型的特点又具有红外图像数据的特点,克服红外图像数据量不足 问题;
[0081] (5)检测阶段:利用转移学习阶段得到的Float Boosting模型,在红外图像上面用 基于矢量树模型结构对眼睛区域进行检测。最后,对得到的多个潜在的眼睛矩形区域来进 行平均,并取矩形的中心点作为眼珠位置。
[0082]在特征提取阶段,采用基于MBMCT特征的具体计算方法为:
[0085] 其中R(x,y) = ii(x+1,y+l)-ii(x,y+l)_ii(x+l,y) + ii(x,y),ii(x,y)是积分图 像。
[0086] 由于MBMCT可以在人脸检测MCT特征提取结果上进行修正,这样就可以避免重复提 取特征,在数字信号处理器上面,所需要的处理时间就会大幅度减少。
[0087]原始训练阶段所用的Float Boosting目标方程为:
[0089] hm=arg min Loss(Hm-i(x)+h(x))
[0090] 其中yi是第i个实例的标记,Hm(Xi)是强分类器(已经运行M次迭代)对实例Xl的分 类结果,h(x)是新的弱分类器。转移学习所用的优化方程是:
[0092] 其中77^是在通用数据上所学习得到的强分类器,λ是平衡参数。
[0093] 在得到针对红外图像的算法模型参数后,给定任意一副新人脸区域(假设人脸区 域已经检测到),算法会再对该人脸图像进行金字塔缩放,在对每一个缩放人脸图像区域内 所有的位置进行滑动,滑动窗口大小为15 X 15像素,再对每一个滑动的窗口来进行评价来 判断该窗口是否是包含眼睛区域。为了在嵌入式平台上面缩短处理时间,实现时候可以将 人脸区域划分为4块,然后只在上面两个区域来进行眼睛的检测,见图11。在得到所有的可 能包含眼睛的区域后,再对所有区域做平均计算来获得眼睛区域的位置,获取眼睛区域位
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1