人眼检测方法、装置、计算机设备及存储介质与流程

文档序号:14347735阅读:180来源:国知局
人眼检测方法、装置、计算机设备及存储介质与流程

本发明涉及计算机技术领域,特别是涉及一种人眼检测方法、装置、计算机设备及存储介质。



背景技术:

当前人脸识别技术已经广泛应用于商业领域,眼睛作为人脸特征的重要组成部分,准确定位眼睛不仅可以矫正带有旋转角度的人脸图像,也可以用于提取表示人脸的重要特征。

在传统技术中,使用基于adaboost(一种迭代算法)的人脸检测方法是主流,而且人脸检测和人眼检测方法只要更换训练样本,二者是可以通用的。如开源库opencv(是一个基于bsd许可(开源)发行的跨平台计算机视觉库)中自带的人脸检测和人眼检测方法,都是采用haar特征(一种反映图像的灰度变化的,像素分模块求差值的一种特征)或lbp(localbinarypatterns,局部二值模式)特征加adaboost分类器,并得到了非常好的检测效果。

然而在实际使用过程中,这种对人眼检测的误检率仍然较高,无法较准确的对人眼进行检测。



技术实现要素:

基于此,有必要针对上述问题,提供一种人眼检测方法、装置、计算机设备及存储介质。

一种人眼检测方法,所述方法包括:

获取待检测图像,将所述待检测图像输入到训练好的人眼检测器;

通过所述人眼检测器将所述待检测图像进行分割,得到多个待检测图像区域;

对每个所述待检测图像区域中像素间的差值进行预置归一化处理,得到多个像素特征;

对每个像素特征进行检测,输出检测结果为包含人眼的像素特征对应的待检测图像区域。

在其中一个实施例中,所述像素特征根据以下公式计算得到:

其中,f(x,y)表示像素特征值,x,y表示待检测图像区域中选取的两个像素值;n为预置常数。

在其中一个实施例中,所述预置常数n为255。

在其中一个实施例中,所述训练好的人眼检测器包含有训练好的第一人眼检测模型与训练好的第二人眼检测模型;

所述对每个像素特征进行检测,输出检测结果为包含人眼的像素特征对应的待检测图像区域,包括:

获取所述第一人眼检测模型与所述第二人眼检测模型分别对每个像素特征的检测结果;

将所述第一人眼检测模型的检测结果与所述第二人眼检测模型的检测结果进行结合,得到最终检测结果;

输出所述最终检测结果为包含人眼的像素特征对应的待检测图像区域。

在其中一个实施例中,在所述训练好的人眼检测器获取输入的待检测图像之前,还包括;

获取多个人脸图像训练样本;

对每个所述人脸图像训练样本中像素间的差值进行预置归一化处理,得到多个样本像素特征;

从每个所述人脸图像训练样本中获取只含有眼睛的区域对应的样本像素特征作为正样本,从每个所述人脸图像训练样本中获取眼睛区域外的其他区域对应的样本像素特征作为负样本,对第一人眼检测模型进行训练得到训练好的第一人眼检测模型;

从每个所述人脸图像训练样本中获取只含有眼睛和眉毛的区域对应的样本像素特征作为正样本,从每个所述人脸图像训练样本中获取眼睛和眉毛区域外的其他区域对应的样本像素特征作为负样本,对第二人眼检测模型进行训练得到训练好的第二人眼检测模型。

在其中一个实施例中,所述第一人眼检测模型中包含有多个深度二叉树;所述从每个所述人脸图像训练样本中获取只含有眼睛的区域对应的样本像素特征作为正样本,从每个所述人脸图像训练样本中获取眼睛区域外的其他区域对应的样本像素特征作为负样本,对第一人眼检测模型进行训练得到训练好的第一人眼检测模型,包括:

从每个所述人脸图像训练样本中获取只含有眼睛的区域,对添加分类标签后的所述只含有眼睛的区域的像素间差值进行计算,得到多个对应的正样本像素特征;

从每个所述人脸图像训练样本中获取眼睛区域外的其他区域,对添加分类标签后的所述眼睛区域外的其他区域的像素间差值进行计算,得到多个对应的负样本像素特征;

将所述多个对应的正样本像素特征和所述多个对应的负样本像素特征组成第一样本像素特征集;

从所述第一样本像素特征集中选取与所述第一人眼检测模型中包含的每个深度二叉树的节点数相同数量的样本像素特征,将选取的多个样本像素特征输入到每个深度二叉树中进行训练;

获取每个所述深度二叉树根据预设节点阈值对输入的多个样本像素特征对应区域的分类结果,得到多个第一分类结果;

根据每个所述第一分类结果与每个所述第一分类结果对应区域添加的分类标签计算得到多个第一分类准确率;

获取低于预设准确率的第一分类准确率,调整所述低于预设准确率的第一分类准确率对应深度二叉树的节点阈值,得到新的深度二叉树;

根据从所述第一样本像素特征集中选取的多个样本像素特征再次对所述新的深度二叉树中进行训练;

当所述第一人眼检测模型中包含的每个深度二叉树对应的第一分类准确率均不低于预设准确率时,得到训练好的第一人眼检测模型。

在其中一个实施例中,所述第二人眼检测模型中包含有多个深度二叉树;所述从每个所述人脸图像训练样本中获取只含有眼睛和眉毛的区域对应的样本像素特征作为正样本,从每个所述人脸图像训练样本中获取眼睛和眉毛区域外的其他区域对应的样本像素特征作为负样本,对第二人眼检测模型进行训练得到训练好的第二人眼检测模型,包括:

从每个所述人脸图像训练样本中获取只含有眼睛和眉毛的区域,对添加分类标签后的所述只含有眼睛和眉毛的区域的像素间差值进行计算,得到多个对应的正样本像素特征;

从每个所述人脸图像训练样本中获取眼睛和眉毛区域外的其他区域,对添加分类标签后的所述眼睛和眉毛区域外的其他区域的像素间差值进行计算,得到多个对应的负样本像素特征;

将所述多个对应的正样本像素特征和所述多个对应的负样本像素特征组成第二样本像素特征集;

从所述二样本像素特征集中选取与所述第二人眼检测模型中包含的每个深度二叉树的节点数相同数量的样本像素特征,将选取的多个样本像素特征输入到每个深度二叉树中进行训练;

获取每个所述深度二叉树根据预设节点阈值对输入的多个样本像素特征对应区域的分类结果,得到多个第二分类结果;

根据每个所述第二分类结果与每个所述第二分类结果对应区域添加的分类标签计算得到多个第二分类准确率;

获取低于预设准确率的第二分类准确率,调整所述低于预设准确率的第二分类准确率对应深度二叉树的节点阈值,得到新的深度二叉树;

根据从所述第二样本像素特征集中选取的多个样本像素特征再次对所述新的深度二叉树中进行训练;

当所述第二人眼检测模型中包含的每个深度二叉树对应的第二分类准确率均不低于预设准确率时,得到训练好的第二人眼检测模型。

一种人眼检测装置,所述装置包括:

待检测图像输入模块,用于获取待检测图像,将所述待检测图像输入到训练好的人眼检测器。

待检测图像分割模块,用于通过所述人眼检测器将所述待检测图像进行分割,得到多个待检测图像区域。

待检测图像处理模块,用于对每个所述待检测图像区域中像素间的差值进行预置归一化处理,得到多个像素特征。

待检测图像检测模块,用于对每个像素特征进行检测,输出检测结果为包含人眼的像素特征对应的待检测图像区域。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

获取待检测图像,将所述待检测图像输入到训练好的人眼检测器;

通过所述人眼检测器将所述待检测图像进行分割,得到多个待检测图像区域;

对每个所述待检测图像区域中像素间的差值进行预置归一化处理,得到多个像素特征;

对每个像素特征进行检测,输出检测结果为包含人眼的像素特征对应的待检测图像区域。

一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:

获取待检测图像,将所述待检测图像输入到训练好的人眼检测器;

通过所述人眼检测器将所述待检测图像进行分割,得到多个待检测图像区域;

对每个所述待检测图像区域中像素间的差值进行预置归一化处理,得到多个像素特征;

对每个像素特征进行检测,输出检测结果为包含人眼的像素特征对应的待检测图像区域。

上述人眼检测方法、装置、计算机设备及存储介质,通过获取待检测图像,将待检测图像输入到训练好的人眼检测器;再通过人眼检测器将待检测图像进行分割,得到多个待检测图像区域;对每个待检测图像区域中像素间的差值进行预置归一化处理,得到多个像素特征;对每个像素特征进行检测,输出检测结果为包含人眼的像素特征对应的待检测图像区域。通过对待检测图像区域中像素间的差值进行预置归一化处理的操作,能够保留较类似的强边缘特征,那么在比如闭眼这种情况下,也能将眉毛与眼睛的边缘特征较准确的区分,而避免了将眉毛误检测为眼睛,因此对待检测图像区域中像素间的差值进行预置归一化处理能够降低对强边缘特征的弱化,提高了对人眼检测的准确率。

附图说明

图1为一个实施例中人眼检测方法的应用环境图;

图2为一个实施例中计算机设备的内部结构示意图;

图3为一个实施例中人眼检测方法的流程示意图;

图4为一个实施例中第一人眼检测模型训练过程的流程示意图;

图5为一个实施例中第二人眼检测模型训练过程的流程示意图;

图6为另一个实施例中人眼检测方法的流程示意图;

图7a为一个实施例中第一人眼检测模型选取的正样本示意图;

图7b为一个实施例中第二人眼检测模型选取的正样本示意图;

图8为一个实施例中人眼检测装置的结构框图;

图9为一个实施例中训练模块的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1示出了一个实施例中人眼检测方法的应用环境图。参照图1,该人眼检测方法可应用于人眼检测系统中,该系统包括多个终端110和服务器120,终端110通过网络与服务器120连接,服务器120中可运行训练好的人眼检测器。终端110可以是但不限于各种能运行人眼检测方法的个人计算机、笔记本电脑、个人数字助理、智能手机、平板电脑等。服务器120可以是实现单一功能的服务器,也可以是实现多种功能的服务器,具体可以是独立的物理服务器,也可以是物理服务器集群。终端110上可通过特定的应用显示待检测图像输入界面,服务器120可大量接收由终端110上传的待检测图像。具体的,当服务器120获取到某一个终端110上传的待检测图像后,服务器120上运行的人眼检测器会先将待检测图像进行分割得到多个待检测图像区域,再对每个待检测图像区域中像素间的差值进行预置归一化处理,得到多个像素特征,人眼检测器再对每个像素特征进行检测,输出检测结果为包含人眼的像素特征对应的待检测图像区域。

图2为一个实施例中计算机设备的内部结构示意图。该计算机设备具体可以是如图1中的服务器120。如图2所示,计算机设备包括通过系统总线连接的处理器、存储介质、内存储器、网络接口和显示屏。其中,该处理器用于提供计算和控制能力,支撑整个终端的运行。计算机设备的存储介质存储有操作系统以及计算机程序,该计算机程序被处理器执行时,使得处理器实现一种人眼检测方法。计算机设备中的内存储器也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行一种人眼检测方法。计算机设备的网络接口用于与终端110通信。显示屏可用于显示输出的检测结果为包含人眼的像素特征对应的待检测图像区域。

本领域技术人员可以理解,图2中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

如图3所示,在一个实施例中,提供了一种人眼检测方法,该方法以应用于如图1和图2中所示的服务器中进行举例说明。包括:

步骤302,获取待检测图像,将待检测图像输入到训练好的人眼检测器。

待检测图像可以是一张完整的图片,也可以是来源于多个如图1中所示的终端上传的包含人脸局部区域的照片。当需要对某一个图像的人眼进行检测时,可以将待检测的图像输入到服务器中包含的训练好的人眼检测器中。

步骤304,通过人眼检测器将待检测图像进行分割,得到多个待检测图像区域。

将待检测的图像输入到训练好的人眼检测器中后,训练好的人眼检测器会先对待检测图像进行分割,将一张待检测图像分割成多个区域,得到多个待检测图像区域。在训练好的人眼检测器对待检测图像的检测过程中,分割过程实际上为区域提取过程,即训练好的人眼检测器会对输入的待检测图像中的区域依次进行提取,每次提取待检测图像的一小部分区域,即得到多个待检测图像区域。

步骤306,对每个待检测图像区域中像素间的差值进行预置归一化处理,得到多个像素特征。

像素是指由图像的小方格即所谓的像素(pixel)组成的,这些小方块都有一个明确的位置和被分配的色彩数值,而这些一小方格的颜色和位置就决定该图像所呈现出来的样子,可以将像素视为整个图像中不可分割的单位或者是元素,不可分割的意思是它不能够再切割成更小单位抑或是元素,它是以一个单一颜色的小格存在。每一个点阵图像包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小,因此可以理解为图像其实是由多个像素组成的。

将待检测图像进行分割得到多个待检测图像区域后,需要对每一个待检测图像区域中的像素间的差值进行计算,计算时需要对像素间的差值进行预置归一化处理,这样才能突出每一个边缘特征。图像的边缘是图像的最基本的特征,边缘是指周围象素灰度有阶跃变化或屋顶变化的那些象素的集合,这些点给出了图形轮廓的位置,这些轮廓则是常在图形处理时所需要的非常重要的一些特征条件,因此需要尽量保留每一个边缘特征。在对每个待检测图像区域中像素间的差值进行预置归一化处理后,可得到多个像素特征,像素特征由于是根据两个像素之间的差值计算得到的,因此像素特征反映了两个像素之间的差异性。

步骤308,对每个像素特征进行检测,输出检测结果为包含人眼的像素特征对应的待检测图像区域。

将待检测图像进行分割,得到多个待检测图像区域后,需要对每个待检测图像区域中的多个像素间的差值进行计算得到多个像素特征后,再对每一个像素特征进行检测。当检测到某个像素特征中包含有人眼时,则将该检测结果为包含有人眼的像素特征对应的待检测图像区域输出,即输出待检测图像中包含人眼的区域。在实际运用过程中,人眼检测一般输入的待检测图像为人脸照片,因此最后输出的一般是两个包含人眼的区域,即人的左右眼。

通过对待检测图像区域中像素间的差值进行预置归一化处理的操作,能够保留较类似的强边缘特征。比如在闭眼这种情况下,则能将眉毛与眼睛的边缘特征较准确的区分,而避免了将眉毛误检测为眼睛,因此对待检测图像区域中像素间的差值进行预置归一化处理能够降低对强边缘特征的弱化,提高了对人眼检测的准确率。

在一个实施例中,像素特征根据以下公式计算得到:

其中,f(x,y)表示像素特征值,x,y表示待检测图像区域中选取的两个像素值;n为预置常数。

因为景物各点的颜色及亮度不同,因此拍摄行成的黑白照片上或电视接收机重现的黑白图像上各点呈现不同程度的灰色,即灰度图像。在灰度图像中,每个像素都有一个0-255之间的亮度值,把白色与黑色之间按对数关系分成若干级,称为“灰度等级”,范围一般从0到255,白色为255,黑色为0,亮度越高,则白色所占比例越高。

假设,n未设置成预置常数,而是按照预定义的像素间的差值计算,那么像素特征的计算公式则为:x,y表示待检测图像区域中选取的两个像素值,那么x,y≥0。如果x=y=0,则定义f(0,0)=0,且f(0,0)∈[-1,1]。按照此公式,当x=2,y=1时,f(2,1)=0.3333;当x=200,y=100时,f(200,100)=0.3333,即f(2,1)=f(200,100)。那么按照此公式,像素值为200和100之间的像素特征与像素值为2和1之间的像素特征是一样的,但是事实上,像素值为200和100之间的差值为100,实际上200与100之间的差异性应该大于像素值为2和1之间的差异性,然而计算得到的像素特征却体现不出这种差异性。像素特征也可称为npd特征,normalizedpixeldifference,指归一化的像素差异特征。

因此,提出本发明中像素特征的计算公式:

将公式的分母设置为一个常数,那么当x与y之间的差值,即两个像素之间的差值越大值,差异则会越明显。当像素特征能够被体现出来时,那么图像的边缘特征也能够被很好的保留,而由于人眼的主要特征其实就是这种边缘特征,那么因此也能有效的提高对人眼检测的准确率。

在一个实施例中,预置常数n为255。

像素特征根据以下公式计算得到:n为预置常数,x,y表示待检测图像区域中选取的两个像素值。再将n设为255,那么像素特征的计算公式则变成了:进一步的体现了两个像素之间的差异性,更好的保留了边缘特征,从而能更有效的提高对人眼检测的准确率。

在一个实施例中,训练好的人眼检测器包含有训练好的第一人眼检测模型与训练好的第二人眼检测模型;对每个像素特征进行检测,输出检测结果为包含人眼的像素特征对应的待检测图像区域,包括:获取第一人眼检测模型与第二人眼检测模型分别对每个像素特征的检测结果;将第一人眼检测模型的检测结果与第二人眼检测模型的检测结果进行结合,得到最终检测结果;输出最终检测结果为包含人眼的像素特征对应的待检测图像区域。

对人眼的检测是由训练好的人眼检测器完成的。训练好的人眼检测器中包含有第一人眼检测模型与训练好的第二人眼检测模型,因此当将待检测图像输入到训练好的人眼检测器中时,实际上是由训练好的人眼检测器中训练好的第一人眼检测模型与训练好的第二人眼检测模型对该输入的待检测图像进行检测。训练好的第一人眼检测模型与训练好的第二人眼检测模型对输入的待检测图像均会有各自的检测结果,那么将两个检测模型的检测结果均获取到以后,再将两个检测结果进行结合,即可得到最终对该输入的待检测图像中人眼的检测结果,然后即可根据检测结果为包含人眼的像素特征将对应的待检测图像区域输出。输出的是一个区域,因此也可以理解为输出的是包含人眼区域的坐标。

在实际过程中,对训练好的第一人眼检测模型与训练好的第二人眼检测模型的检测结果进行结合时,若两个检测模型对待检测图像的检测结果基本一致,则以训练好的第一人眼检测模型为准。若是出现偏差,则将两者结合再得到最好的最终检测结果。比如两个检测模型均检测到的眼睛数量为2,且人眼区域坐标相差不大,则以训练好的第一人眼检测模型的结果为基准;若训练好的第一人眼检测模型并未检测到眼睛的数量为2,即训练好的第一人眼检测模型出现了漏检的情况,那么则需要参考训练好的第二人眼检测模型的检测结果。如果训练好的第二人眼检测模型检测到了眼睛的数量为2,那么检测结果即以训练好的第二人眼检测模型为准;如果训练好的第二人眼检测模型并未检测到眼睛的数量为2,而是也出现了漏检的情况,那么检测结果即为未检测到人眼区域,那么就不会输出图像的部分区域。

使用两个人眼检测模型对输入的待检测图像进行检测,有效的降低了漏检的情况,提高了对人眼检测的准确率。

在一个实施例中,在所述训练好的人眼检测器获取输入的待检测图像之前,还包括:获取多个人脸图像训练样本;对每个所述人脸图像训练样本中像素间的差值进行预置归一化处理,得到多个样本像素特征;从每个人脸图像训练样本中获取只含有眼睛的区域对应的样本像素特征作为正样本,从每个人脸图像训练样本中获取眼睛区域外的其他区域对应的样本像素特征作为负样本,对第一人眼检测模型进行训练得到训练好的第一人眼检测模型;从每个人脸图像训练样本中获取只含有眼睛和眉毛的区域对应的样本像素特征作为正样本,从每个人脸图像训练样本中获取眼睛和眉毛区域外的其他区域对应的样本像素特征作为负样本,对第二人眼检测模型进行训练得到训练好的第二人眼检测模型。

在使用人眼检测器之前,需要先对人眼检测器进行训练,得到训练好的人眼检测器。训练好的人眼检测器中包含有训练好的第一人眼检测模型与训练好的第二人眼检测模型,因此在对人眼检测器进行训练时,实际上就是对人眼检测器中包含的第一人眼检测模型与第二人眼检测模型进行训练。

在训练之前,需要先获取多个人脸图像训练样本,人脸图像训练样本可通过人脸图像数据库获取。在获取到人脸图像训练样本后,先对每个人脸图像训练样本中的像素间的差值进行预置归一化处理,即按照预定的像素特征计算公式计算像素间的差值,则每个人脸图像训练样本中都可得到多个样本像素特征。

得到多个样本像素特征后,即可开始对第一人眼检测模型和第二人眼检测模型进行训练。对于第一人眼检测模型与第二人眼检测模型而言,两者之间最大的区别在于训练样本的不同,即输入不同类型的像素特征。对第一人眼检测模型进行训练时,输入的正样本为每个人脸图像训练样本中只含有眼睛的区域对应的样本像素特征,负样本为每个人脸图像训练样本中眼睛区域外的其他区域对应的样本像素特征。可理解为,一个人脸图像训练样本中,会包含有人脸,那么将只包含了人眼的区域对应的样本像素特征作为正样本,再将人眼区域打上马赛克或者去除,然后再从这张不包含有人眼区域的图像中选取任意区域对应的样本像素特征作为负样本,对第一人眼检测模型进行训练。

在对第二人眼检测模型进行训练时,输入的正样本为每个人脸图像训练样本中只含有眼睛和眉毛的区域对应的样本像素特征,负样本为每个人脸图像训练样本中眼睛和眉毛区域外的其他区域对应的样本像素特征。同样地,可理解为,一个包含有人脸的人脸图像训练样本中,将只包含了人眼的区域对应的样本像素特征作为第二人眼检测模型的正样本,再将眉毛和人眼的区域打上马赛克或者去除,然后再从这张不包含有人眼和眉毛区域的图像中选取任意区域对应的样本像素特征作为负样本,对第二人眼检测模型进行训练。

第一人眼检测模型输入的是只含有眼睛的图像训练样本对应的多个像素特征,而第二人眼检测模型输入的是含有眉毛和眼睛的图像训练样本对应的多个样本像素特征,因此第一人眼检测模型与第二人眼检测模型的结合则更能准确的对人眼进行检测,大幅度的提升了对人眼检测的准确率。

在一个实施例中,第一人眼检测模型中包含有多个深度二叉树。

人眼检测器包含有第一人眼检测模型与第二人眼检测模型,而在第一人眼检测模型中包含有多个深度二叉树,因此训练第一人眼检测模型实际上是训练第一人眼检测模型中包含的多个深度二叉树。二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(leftsubtree)和“右子树”(rightsubtree),二叉树的每个结点至多只有二棵子树,不会存在度大于2的结点。深度二叉树则指二叉树的深度k指较大,简单而言即为二叉树较为复杂。

如图4所示,从每个人脸图像训练样本中获取只含有眼睛的区域对应的样本像素特征作为正样本,从每个人脸图像训练样本中获取眼睛区域外的其他区域对应的样本像素特征作为负样本,对第一人眼检测模型进行训练得到训练好的第一人眼检测模型,包括:

步骤402,从每个人脸图像训练样本中获取只含有眼睛的区域,对添加分类标签后的只含有眼睛的区域的像素间差值进行计算,得到多个对应的正样本像素特征。

步骤404,从每个人脸图像训练样本中获取眼睛区域外的其他区域,对添加分类标签后的眼睛区域外的其他区域的像素间差值进行计算,得到多个对应的负样本像素特征。

步骤406,将多个对应的正样本像素特征和多个对应的负样本像素特征组成第一样本像素特征集。

对第一人眼检测模型进行训练时,选择的正样本是每个人脸图像训练样本中只包含有眼睛的图像区域,选择的负样本是每个人脸图像训练样本中去除眼睛区域的其他图像区域。再对每个图像区域添加分类标签,根据添加的分类标签可立即判断出该图像区域是否包含有人眼区域。比如为包含有人眼的图像区域添加分类标签为1,不包含有人眼的图像区域添加分类标签为0。那么则可以根据每个图像区域的分类标签即能获知该图像区域是否包含有人眼区域。

每个图像区域是由多个像素组成,因此对应地,每个图像区域中会有多个像素特征,即样本像素特征。则正样本为每个人脸图像训练样本中只包含有眼睛的图像区域对应的样本像素特征即为正样本像素特征;负样本为每个人脸图像训练样本中眼睛区域外的其他图像区域对应的样本像素特征即为负样本像素特征。再将多个正样本像素特征和多个对应的负样本像素特征组成在一起,即可得到对第一人眼检测模型进行训练的对应第一样本像素特征集。

步骤408,从第一样本像素特征集中选取与第一人眼检测模型中包含的每个深度二叉树的节点数相同数量的样本像素特征,将选取的多个样本像素特征输入到每个深度二叉树中进行训练。

每个深度二叉树都会有各自的节点数,一棵深度为k的二叉树的节点最多有2k-1个。先获取到每个深度二叉树的节点数,再从第一样本像素特征集中选取与深度二叉树的节点数相同的样本像素特征输入到每个深度二叉树中,以此对第一人眼检测模型中包含的每个深度二叉树进行训练,即对第一人眼检测模型进行训练。

步骤410,获取每个深度二叉树根据预设节点阈值对输入的多个样本像素特征对应区域的分类结果,得到多个第一分类结果。

第一人眼检测模型中包含的深度二叉树是用来对输入的只含有眼睛的图像区域对应的多个样本像素特征、人脸图像中眼睛区域外的其他图像区域对应的多个样本像素特征进行判断的,判断是否包含有人眼,即对输入的多个像素特征进行分类,属于包含有人眼的一类或属于不包含有人眼的一类。在进行分类时,有一个预设标准,即预设节点阈值。当深度二叉树判断输入的像素特征在预设节点阈值内时,则认为该像素特征属于左分支,即属于包含有人眼的一类;当深度二叉树判断输入的像素特征不在预设节点阈值内时,则认为该像素特征属于右分支,即属于不包含有人眼的一类,以此方式对输入的像素特征进行分类。

进一步地,深度二叉树中有多个节点,每个节点对应一个像素特征,因此每个像素特征所在节点的预设节点阈值可设置为不同的阈值,以此更精确的对像素特征进行分类。

步骤412,根据每个第一分类结果与每个第一分类结果对应区域添加的分类标签计算得到多个第一分类准确率。

步骤414,获取低于预设准确率的第一分类准确率,调整低于预设准确率的第一分类准确率对应深度二叉树的节点阈值,得到新的深度二叉树。

在进行训练之前,有对每个图像区域添加分类标签,而每个图像区域中均包含有多个样本像素特征,在深度二叉树对输入的样本像素特征进行判断分类时,可根据每个样本像素特征对应的图像区域添加的分类标签来确定分类是否准确。比如,深度二叉树判断输入的样本像素特征a1不包含有人眼,那么当样本像素特征a1对应的图像区域a添加的分类标签为正样本时,那么说明深度二叉树判断有误。

每个深度二叉树均有很多个节点,每个节点都会对不同的样本像素特征进行判断,那么可以获取每一个深度二叉树的分类准确率,即可得到多个第一分类准确率。比如,深度二叉树a的节点为50,第一样本集(每个样本对应1000维特征)包含正样本(指包含眼睛的区域)数量100、负样本(指非眼睛区域)数量100,那么a这棵深度二叉树会从第一样本集的每个样本中选取50个像素特征输入。假设100个正样本有80个被分类为正样本,100个负样本中有30个被分类为正样本。那么实际上深度二叉树a的分类结果为,对输入的80个正样本与分类标签一致,因此,对于深度二叉树a而言,得到的第一正样本分类准确率为80/100=0.8。

再根据得到的第一分类准确率判断是否低于预设准确率,而预设准确率是研究人员预先根据经验或实际需求设定好的。比如,当预设准确率设定为0.95,那么上述例子中第一分类准确率为0.7的深度二叉树a则明显低于预设准确率,仍然需要继续训练。则调节深度二叉树的节点阈值,训练的目的实际上就是确定深度二叉树节点阈值的过程,因此在训练时需要不断根据深度二叉树对输入的样本像素特征的分类准确率调整节点阈值,以此提高分类准确率,调整了节点阈值后的深度二叉树即可得到新的深度二叉树。

步骤416,根据从第一样本像素特征集中选取的多个样本像素特征再次对新的深度二叉树中进行训练。

步骤418,当第一人眼检测模型中包含的每个深度二叉树对应的第一分类准确率均不低于预设准确率时,得到训练好的第一人眼检测模型。

调整了节点阈值得到新的深度二叉树后,需要再次进行训练。而对同一个深度二叉树进行训练的数据是相同的,仍然是之前选择的样本像素特征。比如,深度二叉树a,之前训练时选取的样本像素特征为a1,a2,a3,a4,a5。那么在调整了深度二叉树a的节点阈值得到了新的深度二叉树a后,对新的二叉树进行训练时输入的样本像素特征仍然是a1,a2,a3,a4,a5。直到深度二叉树a对于输入的样本像素特征的分类准确率能达到预设准确率,即说明深度二叉树a训练完毕。

每一个深度二叉树采取的训练方式均是如此,因此当第一人眼检测模型中包含的每个深度二叉树对应的第一分类准确率均不低于预设准确率时,即可得到训练好的第一人眼检测模型。

对每一个深度二叉树都进行有效的训练,保证第一人眼检测模型中包含的每一个深度二叉树都能准确的对输入的像素特征进行分类,当每一个深度二叉树都能准确进行分类时,自然能大幅度的提升第一人眼检测模型对于人眼检测的准确率。

在一个实施例中,第二人眼检测模型中包含有多个深度二叉树;如图5所示,从每个人脸图像训练样本中获取只含有眼睛和眉毛的区域对应的样本像素特征作为正样本,从每个人脸图像训练样本中获取眼睛和眉毛区域外的其他区域对应的样本像素特征作为负样本,对第二人眼检测模型进行训练得到训练好的第二人眼检测模型,包括:

步骤502,从每个人脸图像训练样本中获取只含有眼睛和眉毛的区域,对添加分类标签后的只含有眼睛和眉毛的区域的像素间差值进行计算,得到多个对应的正样本像素特征。

步骤504,从每个人脸图像训练样本中获取眼睛和眉毛区域外的其他区域,对添加分类标签后的眼睛和眉毛区域外的其他区域的像素间差值进行计算,得到多个对应的负样本像素特征。

步骤506,将多个对应的正样本像素特征和多个对应的负样本像素特征组成第二样本像素特征集。

步骤508,从二样本像素特征集中选取与第二人眼检测模型中包含的每个深度二叉树的节点数相同数量的样本像素特征,将选取的多个样本像素特征输入到每个深度二叉树中进行训练。

步骤510,获取每个深度二叉树根据预设节点阈值对输入的多个样本像素特征对应区域的分类结果,得到多个第二分类结果。

步骤512,根据每个第二分类结果与每个第二分类结果对应区域添加的分类标签计算得到多个第二分类准确率。

步骤514,获取低于预设准确率的第二分类准确率,调整低于预设准确率的第二分类准确率对应深度二叉树的节点阈值,得到新的深度二叉树。

步骤516,根据从第二样本像素特征集中选取的多个样本像素特征再次对新的深度二叉树中进行训练。

步骤518,当第二人眼检测模型中包含的每个深度二叉树对应的第二分类准确率均不低于预设准确率时,得到训练好的第二人眼检测模型。

对第二人眼检测模型进行训练时,只是与第一人眼检测模型输入的训练数据不一致。第二人眼检测模型输入的正样本是每个人脸图像训练样本中只含有眼睛和眉毛的区域对应的多个正样本像素特征,而负样本是每个人脸图像训练样本中获取眼睛和眉毛区域外的其他区域对应的多个负样本像素特征。而其他地方与第一人眼模型的训练并无不同,因此不再赘述。

同样地,对每一个深度二叉树都进行有效的训练,保证第二人眼检测模型中包含的每一个深度二叉树都能准确的对输入的像素特征进行分类,当第二人眼检测模型中包含的每一个深度二叉树都能准确进行分类时,则能大幅度的提升第二人眼检测模型对于人眼检测的准确率。

在一个实施例中,如图6所示,还提供了一种人眼检测方法,该方法以应用于如图1和图2中所示的服务器中进行举例说明。包括:

步骤602,对人眼检测器中包含的第一人眼检测模型进行训练,得到训练好的第一人眼检测模型。

步骤604,对人眼检测器中包含的第二人眼检测模型进行训练,得到训练好的第二人眼检测模型。

步骤606,将待检测图像输入到包含第一人眼检测模型和第二人眼检测模型的人眼检测器中。

人眼检测器中包含有第一人眼检测模型和第二人眼检测模型,在投入实际的使用过程之前,需要先对人眼检测器进行训练,即对人眼检测器中包含的第一人眼检测模型和第二人眼检测模型进行训练。

在对第一人眼检测模型和第二人眼检测模型进行训练时,输入的是人脸图像训练样本对应的样本像素特征,因此需要计算每个人脸图像训练样本的多个像素特征。像素特征定义了两个像素之间的差异性,每个人脸图像训练样本中一般都包含有多个像素,那么每个人脸图像训练样本中都会有多个像素特征,为了节约计算成本,可使用查找表的方式对每个人脸图像训练样本的多个像素特征进行计算。查找表是指用简单的查询操作替换运行时计算的数组或者关联数组(associativearray)这样的数据结构,因此这种方式避免了每次都需要对像素特征进行重新运算,加快了整体的运算效率。

如图7a所示,对第一人眼检测模型进行训练时,输入的正样本为每个人脸图像训练样本中只含有眼睛的区域对应的样本像素特征,负样本为每个人脸图像训练样本中眼睛区域外的其他区域对应的样本像素特征。如图7b所示,在对第二人眼检测模型进行训练时,输入的正样本为每个人脸图像训练样本中只含有眼睛和眉毛的区域对应的样本像素特征,负样本为每个人脸图像训练样本中眼睛和眉毛区域外的其他区域对应的样本像素特征。在将样本像素特征输入到第一人眼检测模型和第二人眼检测模型中包含的深度二叉树中进行训练时,可使用算法来选取样本像素特征,节约选取的操作步骤。

当第一人眼检测模型和第二人眼检测模型中包含的每个深度二叉树的分类准确率都达到预设准确率时,则说明训练完毕,得到训练好的第一人眼检测模型和训练好的第二人眼检测模型,即训练好的人眼检测器。训练好的人眼检测器才投入实际检测中。

步骤608,人眼检测器对待检测图像进行检测,输出包含人眼的图像区域。

训练好的人眼检测器首先会获取到待检测图像,然后再依次提取待检测图像中的各个区域,再计算得到每个区域中包含的多个npd特征(normalizedpixeldifference,归一化的像素差异特征),即每个区域对应的多个像素特征。依次对每个npd特征进行检测,再输出检测结果为包含人眼的像素特征对应的待检测图像区域。

先根据实际需求对人眼检测器进行训练,即根据需求对人眼检测器中包含的第一人眼检测模型与第二人眼检测模型进行训练,保证了训练好的人眼检测器对输入的待检测图像中人眼检测的准确性,通过训练多个人眼检测器并融合,也有效的降低了人眼检测中的漏检率和误检率。

在一个实施例中,如图8所示,提供了一种人眼检测装置,包括:

待检测图像输入模块802,用于获取待检测图像,将待检测图像输入到训练好的人眼检测器。

待检测图像分割模块804,用于通过人眼检测器将待检测图像进行分割,得到多个待检测图像区域。

待检测图像处理模块806,用于对每个待检测图像区域中像素间的差值进行预置归一化处理,得到多个像素特征。

待检测图像检测模块808,用于对每个像素特征进行检测,输出检测结果为包含人眼的像素特征对应的待检测图像区域。

在一个实施例中,上述待检测图像处理模块806还用于计算像素特征,像素特征根据以下公式计算得到:其中,f(x,y)表示像素特征值,x,y表示待检测图像区域中选取的两个像素值;n为预置常数。

在一个实施例中,上述待检测图像处理模块806还用于在计算像素特征时将预置常数n设置为255。

在一个实施例中,上述人眼检测装置中还包括第一人眼检测模块与第二人眼检测模块;上述待检测图像检测模块808,还用于获取第一人眼检测模块与第二人眼检测模块分别对每个像素特征的检测结果;将第一人眼检测模块的检测结果与所述第二人眼检测模块的检测结果进行结合,得到最终检测结果;输出最终检测结果为包含人眼的像素特征对应的待检测图像区域。

在一个实施例中,上述装置还包括训练模块,如图9所示,训练模块包括:

训练样本获取模块902,用于获取多个人脸图像训练样本。

训练样本处理模块904,用于对每个人脸图像训练样本中像素间的差值进行预置归一化处理,得到多个样本像素特征。

第一训练模块906,用于从每个人脸图像训练样本中获取只含有眼睛的区域对应的样本像素特征作为正样本,从每个人脸图像训练样本中获取眼睛区域外的其他区域对应的样本像素特征作为负样本,对第一人眼检测模型进行训练得到训练好的第一人眼检测模型;

第二训练模块908,用于从每个人脸图像训练样本中获取只含有眼睛和眉毛的区域对应的样本像素特征作为正样本,从每个人脸图像训练样本中获取眼睛和眉毛区域外的其他区域对应的样本像素特征作为负样本,对第二人眼检测模型进行训练得到训练好的第二人眼检测模型。

在一个实施例中,上述第一训练模块906还用于,从每个人脸图像训练样本中获取只含有眼睛的区域,对添加分类标签后的只含有眼睛的区域的像素间差值进行计算,得到多个对应的正样本像素特征;从每个人脸图像训练样本中获取眼睛区域外的其他区域,对添加分类标签后的眼睛区域外的其他区域的像素间差值进行计算,得到多个对应的负样本像素特征;将多个对应的正样本像素特征和多个对应的负样本像素特征组成第一样本像素特征集;从第一样本像素特征集中选取与第一人眼检测模型中包含的每个深度二叉树的节点数相同数量的样本像素特征,将选取的多个样本像素特征输入到每个深度二叉树中进行训练;获取每个深度二叉树根据预设节点阈值对输入的多个样本像素特征对应区域的分类结果,得到多个第一分类结果;根据每个第一分类结果与每个第一分类结果对应区域添加的分类标签计算得到多个第一分类准确率;获取低于预设准确率的第一分类准确率,调整低于预设准确率的第一分类准确率对应深度二叉树的节点阈值,得到新的深度二叉树;根据从第一样本像素特征集中选取的多个样本像素特征再次对新的深度二叉树中进行训练;当第一人眼检测模型中包含的每个深度二叉树对应的第一分类准确率均不低于预设准确率时,得到训练好的第一人眼检测模型。

在一个实施例中,上述第二训练模块908还用于,从每个人脸图像训练样本中获取只含有眼睛和眉毛的区域,对添加分类标签后的只含有眼睛和眉毛的区域的像素间差值进行计算,得到多个对应的正样本像素特征;从每个人脸图像训练样本中获取眼睛和眉毛区域外的其他区域,对添加分类标签后的眼睛和眉毛区域外的其他区域的像素间差值进行计算,得到多个对应的负样本像素特征;将多个对应的正样本像素特征和多个对应的负样本像素特征组成第二样本像素特征集;从二样本像素特征集中选取与第二人眼检测模型中包含的每个深度二叉树的节点数相同数量的样本像素特征,将选取的多个样本像素特征输入到每个深度二叉树中进行训练;获取每个深度二叉树根据预设节点阈值对输入的多个样本像素特征对应区域的分类结果,得到多个第二分类结果;根据每个第二分类结果与每个第二分类结果对应区域添加的分类标签计算得到多个第二分类准确率;获取低于预设准确率的第二分类准确率,调整低于预设准确率的第二分类准确率对应深度二叉树的节点阈值,得到新的深度二叉树;根据从第二样本像素特征集中选取的多个样本像素特征再次对新的深度二叉树中进行训练;当第二人眼检测模型中包含的每个深度二叉树对应的第二分类准确率均不低于预设准确率时,得到训练好的第二人眼检测模型。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待检测图像,将待检测图像输入到训练好的人眼检测器;通过人眼检测器将待检测图像进行分割,得到多个待检测图像区域;对每个待检测图像区域中像素间的差值进行预置归一化处理,得到多个像素特征;对每个像素特征进行检测,输出检测结果为包含人眼的像素特征对应的待检测图像区域。

在一个实施例中,计算机程序被处理器执行对每个待检测图像区域中像素间的差值进行预置归一化处理,得到多个像素特征的步骤时,根据以下公式计算像素特征:

其中,f(x,y)表示像素特征值,x,y表示待检测图像区域中选取的两个像素值;n为预置常数。

在一个实施例中,计算机程序被处理器执行对每个待检测图像区域中像素间的差值进行预置归一化处理,得到多个像素特征的步骤时,在计算像素特征时将预置常数n设置为255。

在一个实施例中,计算机程序被处理器执行对每个像素特征进行检测,输出检测结果为包含人眼的像素特征对应的待检测图像区域的步骤时,包括:获取第一人眼检测模型与第二人眼检测模型分别对每个像素特征的检测结果;将第一人眼检测模型的检测结果与第二人眼检测模型的检测结果进行结合,得到最终检测结果;输出最终检测结果为包含人眼的像素特征对应的待检测图像区域。

在一个实施例中,计算机程序被处理器在执行训练好的人眼检测器获取输入的待检测图像的步骤之前,包括:获取多个人脸图像训练样本;对每个人脸图像训练样本中像素间的差值进行预置归一化处理,得到多个样本像素特征;从每个人脸图像训练样本中获取只含有眼睛的区域对应的样本像素特征作为正样本,从每个人脸图像训练样本中获取眼睛区域外的其他区域对应的样本像素特征作为负样本,对第一人眼检测模型进行训练得到训练好的第一人眼检测模型;从每个人脸图像训练样本中获取只含有眼睛和眉毛的区域对应的样本像素特征作为正样本,从每个人脸图像训练样本中获取眼睛和眉毛区域外的其他区域对应的样本像素特征作为负样本,对第二人眼检测模型进行训练得到训练好的第二人眼检测模型。

在一个实施例中,计算机程序被处理器执行从每个人脸图像训练样本中获取只含有眼睛的区域对应的样本像素特征作为正样本,从每个人脸图像训练样本中获取眼睛区域外的其他区域对应的样本像素特征作为负样本,对第一人眼检测模型进行训练得到训练好的第一人眼检测模型的步骤时,包括:从每个人脸图像训练样本中获取只含有眼睛的区域,对添加分类标签后的只含有眼睛的区域的像素间差值进行计算,得到多个对应的正样本像素特征;从每个人脸图像训练样本中获取眼睛区域外的其他区域,对添加分类标签后的眼睛区域外的其他区域的像素间差值进行计算,得到多个对应的负样本像素特征;将多个对应的正样本像素特征和多个对应的负样本像素特征组成第一样本像素特征集;从第一样本像素特征集中选取与第一人眼检测模型中包含的每个深度二叉树的节点数相同数量的样本像素特征,将选取的多个样本像素特征输入到每个深度二叉树中进行训练;获取每个深度二叉树根据预设节点阈值对输入的多个样本像素特征对应区域的分类结果,得到多个第一分类结果;根据每个第一分类结果与每个第一分类结果对应区域添加的分类标签计算得到多个第一分类准确率;获取低于预设准确率的第一分类准确率,调整低于预设准确率的第一分类准确率对应深度二叉树的节点阈值,得到新的深度二叉树;根据从第一样本像素特征集中选取的多个样本像素特征再次对新的深度二叉树中进行训练;当第一人眼检测模型中包含的每个深度二叉树对应的第一分类准确率均不低于预设准确率时,得到训练好的第一人眼检测模型。

在一个实施例中,计算机程序被处理器执行从每个人脸图像训练样本中获取只含有眼睛和眉毛的区域对应的样本像素特征作为正样本,从每个人脸图像训练样本中获取眼睛和眉毛区域外的其他区域对应的样本像素特征作为负样本,对第二人眼检测模型进行训练得到训练好的第二人眼检测模型的步骤时,包括:从每个人脸图像训练样本中获取只含有眼睛和眉毛的区域,对添加分类标签后的只含有眼睛和眉毛的区域的像素间差值进行计算,得到多个对应的正样本像素特征;从每个人脸图像训练样本中获取眼睛和眉毛区域外的其他区域,对添加分类标签后的眼睛和眉毛区域外的其他区域的像素间差值进行计算,得到多个对应的负样本像素特征;将多个对应的正样本像素特征和多个对应的负样本像素特征组成第二样本像素特征集;从二样本像素特征集中选取与第二人眼检测模型中包含的每个深度二叉树的节点数相同数量的样本像素特征,将选取的多个样本像素特征输入到每个深度二叉树中进行训练;获取每个深度二叉树根据预设节点阈值对输入的多个样本像素特征对应区域的分类结果,得到多个第二分类结果;根据每个第二分类结果与每个第二分类结果对应区域添加的分类标签计算得到多个第二分类准确率;获取低于预设准确率的第二分类准确率,调整低于预设准确率的第二分类准确率对应深度二叉树的节点阈值,得到新的深度二叉树;根据从第二样本像素特征集中选取的多个样本像素特征再次对新的深度二叉树中进行训练;当第二人眼检测模型中包含的每个深度二叉树对应的第二分类准确率均不低于预设准确率时,得到训练好的第二人眼检测模型。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的非易失性存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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