基于深度融合神经网络的驾驶员视觉分散检测方法与流程

文档序号:17325596发布日期:2019-04-05 21:46阅读:298来源:国知局
基于深度融合神经网络的驾驶员视觉分散检测方法与流程

本发明涉及车辆驾驶技术领域,具体地说是一种基于深度融合神经网络的驾驶员视觉分散检测方法。



背景技术:

目前,驾驶员视觉分散驾驶是导致交通事故发生的主要因素。根据国家公路交通安全管理局的研究表明,驾驶员注意力分散引起的交通事故占比在百分之七十以上。驾驶员视觉分散驾驶是指驾驶员的视觉注意力从专注于道路和驾驶操作转移到其他的行为上,比如看手机、看文件、打电话、吃饭和操作车载电子设备等。有研究表明,在驾驶过程中进行其他与驾驶无关的任务时会加重驾驶员的认知负荷,而且随着手机和汽车电子设备的功能越来越多,这种现象愈加频繁,也就导致了分心驾驶出现的频率越来越高。当驾驶员认知负荷增加时会体现在驾驶员的视觉行为和驾驶行为上。因此通过监视驾驶员的视线方向能够有效的对驾驶员注意力进行监控。避免驾驶员视觉分散导致的危险。

采用机器视觉的技术手段实时监测复杂驾驶环境下的驾驶员视觉状态是非常具有挑战性的。难点主要包括:(1)白天和黑夜等复杂的光照条件;(2)驾驶员的头部姿态和表情的多样性;(3)人种,年龄和性别的差异性;(4)驾驶员头发遮挡和穿戴眼镜对检测精度的影响。目前商用检测系统facelab使用眼动仪监测驾驶员的视线,眼睑、瞳孔大小和头部姿态。这套系统成功应用于多个实际的辅助驾驶员场景中,但是该系统是基于立体视觉模型检测的,需要复杂的初始化程序和高昂的成本,难以量产和推广。类似的,smarteye使用多摄像头构建驾驶员的三维头部模型来计算驾驶员的视线,头部姿态和眼睑状态。然而该系统对硬件依赖非常的高,需要在车上额外安装硬件设施,极大的约束了系统的可移植性。因此,这类系统都很难在普通汽车上安装使用。



技术实现要素:

本发明的目的在于提供一种基于深度融合神经网络的驾驶员视觉分散检测方法,用于实时检测驾驶员的视线注意力。

本发明解决其技术问题所采取的技术方案是:基于深度融合神经网络的驾驶员视觉分散检测方法,其特征是,它包括以下步骤:

(1)获取驾驶员面部图像,采用局部二值特征(lbf)跟踪驾驶员的面部特征点;

(2)根据眼部区域的面部特征点的位置,定位并提取眼睛区域的图像;

(3)根据面部特征点位置,采用n点透视(pnp)算法估计头部姿态,获取驾驶员三个方向的头部姿态参数;

(4)首先,以驾驶员眼睛区域的rgb图像作为输入,构建卷积神经网络层、池化层和全连接层;然后,以头部姿态作为输入构建两层全连接神经网络,并将隐藏层与深度卷积神经网络的全连接层融合作为输出特征;在融合模型的顶层加入softmax分类器,输出视线方向参数。

进一步地,步骤(1)中,首先获取面部特征点的初始位置坐标,在训练阶段通过标定点和初始点的位置构建目标函数式中,i表示遍历所有的训练样本,操作符πl从中提取分量(2l-1,2l),表示第i个训练数据的第l个特征(共n个)点从初始坐标到真实标定坐标位置的2d偏移量,表示l个特征点局部位置的局部纹理特征,即lbf特征,lbf特征通过训练随机森林模型获得。

进一步地,步骤(1)中,在特征提取时,每个特征点都对应一个随机森林模型,输入到随机森林中的参数为形状索引特征,即在特征点位置区域中两个点的像素之差,在训练随机森林时,输入为x={im,s},预测目标是y=δs,从随机选取的形状索引特征集合中提取其中一部分样本,将样本点分配到左右子树中;针对每个节点,训练数据被分为两个部分,我们期望左右子树中的样本具有相同的模式,即使方差的减少量最大(最大方差衰减),即argmax(var-varr-varl),其中,var表示决策树节点分裂前样本方差总和,varr和varl分别表示分裂后左右分支样本的方差;随机森林中每棵树节点的训练方法和过程均相同,且相互独立,在训练完成后,决策树中的每个叶子节点均保存一个2d的偏移量;将训练好的模型作为局映射函数输出一个二值序列,把每个点的二值序列串接起来组成整体形状的lbf特征。

进一步地,步骤(4)中,将提取的眼睛图片的大小转化为24×24大小,然后构建卷积神经网络模型,该神经网络层模型由5个卷积层、3个池化层和1个完全连接层组成;前两个卷积层的卷积核大小是32×5×5,第三层的卷积核大小是32×3×3,最后两个卷积层的卷积核大小是64×3×3;在第一、第三和第五卷积层中,卷积运算的边界模式相同,即卷积运算中输入和输出特征映射的维数一致;池化层采用最大池化策略对特征映射进行降维,所有池化层的降维比例均为2×2;最后,将池化层的特征转换为全连接层。

进一步地,步骤(4)中,头部姿态参数为二维矩阵,采用全连接神经网络对其特征进行提取,隐藏层的单元个数为32,计算公式与第一步相同。

进一步地,步骤(4)中,将卷积神经网络的全连接层和普通神经网络的隐藏层串接,构建融合的全连接层;最后,通过softmax分类器将全连接层连接到输出层,得到视线估计方向的输出结果。

进一步地,步骤(4)中,采用物体识别数据集cifr-10和面部表情数据集fer2013数据集作为预训练数据集,对卷积神经网络部分进行监督预训练,得到深度模型的初始参数;然后将预训练得到的初始参数迁移到目标模型中,采用视线估计数据样本对深度模型进行精调,得到最终的识别模型。

本发明的有益效果是:本发明提供的基于深度融合神经网络的驾驶员视觉分散检测方法,在全连接层将提取眼睛图像特征的卷积神经网络和提取头部姿态特征的神经网络融合,,输出驾驶员的注视区域;利用现有的其他数据集对模型进行预训练,然后将特征迁移到目标模型当中去,最后在驾驶员视线方向数据集中进行精调,获得最优模型。

附图说明

图1为本发明检测方法的流程示意图;

图2为深度融合神经网络结构图;

图3为深度融合神经网络的训练步骤示意图;

具体实施方式

下面结合附图对本发明进行详细描述。

本发明中,使用ccd相机获取驾驶员的图像,使用通过训练得到的随机森林模型和现行回归模型定位面部特征点的位置,并提取眼睛区域图像;然后根据面部特征点的位置解耦刚性与非刚性的头部运动,使用最优化方法获取驾驶员的头部姿态;接着,结合驾驶员注意力方向和车内的区域划分位置,并根据眼睛图像和头部姿态参数构建深度融合神经网络模型,并采用不同的数据集进行预训练和精调,将眼睛图像和头部姿态参数作为模型的输入,根据模型的输出得到驾驶员的视线方向区域。如图1所示,检测方法包括以下步骤:

一、获取驾驶员面部特征,检测人脸关键点

常用的面部特征提取算法采用参数化表观模型(pams)表达面部特征,该方法在人为标定数据集上使用主成分分析(pca)方法建立目标模型。但这种方法需要优化许多参数(大约50-60个),这也就导致其很容易收敛到局部最优解,无法得到准确的结果,而且pams仅仅对于训练样本中的特殊对象具有良好的效果,推广到一般性的对象时,检测鲁棒性不佳。最后,由于大多数据集包含的样本的局限性,pams只能对对称模型进行建模,无法解决非对称表情状态下的问题(如睁一只眼,闭一只眼)。

基于以上限制,本发明使用局部二值特征(lbf)方法,该方法使用非参数形状模型,对非训练样本的情形具有较好的泛化能力。具体计算过程如下:

采用adaboost算法在得到驾驶员面部区域后,采用procrustes分析法得到面部区域的初始特征点位置。在训练过程中,利用初始点和标定点的位置和局部特征构建目标函数:

式中,i表示遍历所有的训练样本,操作符πl从中提取分量(2l-1,2l);而表示第i个训练数据的第l个特征(共n个)点从初始坐标到位置真实标定坐标位置的2d偏移量。表示l个特征点局部位置的局部纹理特征。特征点附近的纹理特征非常重要,之前常通过人工选取或者是训练得到。通过人工提取得到的映射函数(如hog或者shift等)虽然简单且达到一定的效果,但是这种映射函数并不一定是特征点定位中的最优选择。另外,如果将所有图像中的特征点在特征池中选择,在较大的空间中很难学习到理想的特征组合。因此,我们采用了基于局部学习的方法获取映射函数,即lbf。

获得关键点的lbf特征时采用的模型与传统随机森林模型不同。在特征提取时,每个特征点都对应一个随机森林模型。本文输入到随机森林中的参数为形状索引特征,即在特征点位置区域中两个点的像素之差。在本文中由于随机森林是针对单个特征点,因此每个随机森林回归模型中使用到的特征点不会关联到其他的特征点。只是在当前特征点的周围区域随选取两个点,通过求这两个点的像素之差来获得输入特征。利用上面的方法,确定了每个随机森林训练时用到的形状索引特征。在训练随机森林时,我们的输入为x={im,s},而预测目标是y=δs。从随机选取的形状索引特征集合中提取其中一部分样本,将样本点分配到左右子树中;针对每个节点,训练数据将会被分为两个部分,我们期望左右子树中的样本具有相同的模式,即使方差的减少量最大(最大方差衰减)。最大方差衰减的原理如下所示:

argmax(var-varr-varl)

其中,var表示决策树节点分裂前样本方差总和;varr和varl分别表示分裂后左右分支样本的方差。随机森林中每棵树节点的训练方法和过程均相同,且相互独立。在训练完成后,决策树中的每个叶子节点均保存一个2d的偏移量。将训练好的模型作为局映射函数输出一个二值序列,每个二值序列均表示输入图像是否包含某种局部模式。最后,把每个点的二值序列串接起来组成整体形状的lbf特征。

整个形状的特征映射函数由一系列的局部特征映射子函数构成,在本文中主要由一个瞳孔点和两个眼角点组成,映射函数集合可由下式表示:

在提取由所有特征点组成的lbf特征后,得到全局特征映射函数,学习全局映射函数后,通过下式来学习全局线性投影wt:

式中,λ用来抑制模型,防止出现过拟合;nt表示样本个数。

在测试过程中,输入人脸图片和初始坐标,通过初始坐标求出对应的lbf特征,然后直接利用线性投影和特征映射得到形状差值,最后根据其差值更新形状,通过多次迭代获得最终位置。其中第t步迭代如下式所示:

st=st-1+wtφt

二、根据眼部区域的面部特征点的位置,定位并提取眼睛区域的图像

在我们标定和训练面部特征点位置时,上下眼睑和眼角共有12个特征点。在获取面部特征点的位置之后,我们提取眼睛轮廓上的12个点的位置,并根据其位置将眼睛区域的图像分割出来。由于将图像分割出来后图像的大小不一,因此我们将图像的大小统一归一化为24×24。

三、驾驶员头部姿态估计

pnp方法是利用三维线性空间的一组基,来重新线性表示三维空间点,把求取物体关键点在相机坐标下的坐标转换为求取该4个虚拟控制点在相机坐标系下的坐标问题。其主要计算步骤为:1)构建正面的头部三维模型数据,包含了66个点的正面人脸的三维特征坐标参数,这66个点包括:眼睛(12)、鼻子(9)、眉毛(10)、嘴巴(18)和脸部的轮廓(17)。2)构建出针孔透视成像的数学模型,建立图像坐标系、摄像机坐标系和头部坐标系。3)根据成像数学模型、坐标系和三维模型的坐标点,进行线性求解,接着再用相关性来修正,最后进行迭代求得最优解,头部旋转参数。

四、基于深度混合神经网络的驾驶员视线方向估计

1、将提取的眼睛图片作为输入构建卷积神经网络模型,如图2所示,该神经网络层模型由5个卷积层、3个池化层和1个完全连接层组成。前两个卷积层的卷积核大小是32×5×5,第三层的卷积核大小是32×3×3,最后两个卷积层的卷积核大小是64×3×3。在第一、第三和第五卷积层中,卷积运算的边界模式相同,即卷积运算中输入和输出特征映射的维数一致。池化层采用最大池化策略对特征映射进行降维,所有池化层的降维比例均为2×2。其中卷积层的计算公式如下:

式中,是第i层中的j个特征映射在(x,y)位置上的值;σ是非线性激活函数;bij是特征映射的偏置;m是网络前一层特征映射的个数;是卷积核在(p,q)处连接第k个特征映射的权值;pi和qi分别是卷积核的宽和高。降采样层即池化层,主要是被用来对图像进行降维。而全连接层的计算公式如下所示:

其中,表示第j层的第k个神经单元;为第j层的第k个神经元到第j+1层的i个神经单元的参数;表示第j层神经元的偏置;σ(zi(j))表示非线性函数。

2、头部姿态参数为二维矩阵,采用全连接神经网络对其特征进行提取,其隐藏层的单元个数为128,计算公式与第一步相同。

3、将卷积神经网络的全连接层和普通神经网络的隐藏层串接,构建融合的全连接层,其计算公式如下:

式中,af表示串接层,分别表示卷积神经网络和普通神经网络的全连接层。最后,最后,通过softmax分类器将全连接层连接到输出层,得到视线估计方向的输出结果,其计算公式如下:

式中,σs表示softmax分类器,p(y=j|af)表示给定向量af后通过softmax函数得到的第j个类别的概率,为相应的权值参数。该模型的目标是建立由眼睛图像和头部姿态到视线方向的非线性映射函数,将输出概率最大值所表示的疲劳状态作为该帧在视频序列中的编码值,其计算公式如下式所示:

式中,pi为第i帧图像中输出的视线方向概率。

4、在对深度融合神经网络进行训练时,其具体步骤如图3所示,首先采用物体识别数据集cifr-10和面部表情数据集fer2013数据集对卷积神经网络进行有监督预训练,即将这两个数据集的图像转换24×24,其输出为这两个数据集的标定值;在预训练完成后,得到深度模型的初始参数。然后,将预训练得到的初始参数迁移到目标模型中,并与头部姿态作为输入的神经网络模型融合,构建联合隐藏层,采用视线估计数据样本对深度模型进行精调,得到最终的识别模型。

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