基于级联深度卷积神经网络的人脸检测方法与流程

文档序号:17373967发布日期:2019-04-12 23:05阅读:233来源:国知局
基于级联深度卷积神经网络的人脸检测方法与流程

本发明涉及人脸检测领域,特别涉及一种基于级联深度卷积神经网络的人脸检测方法。



背景技术:

人脸检测(facedetection)是指在输入图像中,采用一定的策略对其进行搜索,确定其中是否含有人脸,如果有则返回各个人脸的位置及大小的过程。。人脸检测是人脸识别的基础,是人脸识别的先行步骤。人脸检阶段检测出的人脸图像质量好坏直接影响到人脸识别的精度。传统的人脸识别过程中,人脸检测和人脸图像质量评价是分两个阶段任务完成的,先检测出人脸图像,然后对检测出的人脸图像进行质量评价。这种方法有两个不足之处,一是需要消耗更多的处理时间,而在许多图像实时处理中,处理时间是一个很关键的指标。二是人脸检测的过程本身就需要用到图像质量作为判断依据,两种之间存在相关性。将这两个任务分开处理,会割裂两者之间的相关性。

人脸检测方法可分成四大类:

1)基于知识的方法。

这种方法将研究人员对人脸的知识编码成识别规则。例如图像中的人脸,通常具有互相对称的两只眼睛、一个鼻子和一张嘴吧。特征之间的相互关系可以通过它们之间的距离和位置关系来描述。这种方法的问题是很难将人的知识转换为明确定义的规则。如果规则过于详细,则会导致低的识别率,反之,如果规则太通用,则会导致高的错检率。

2)特征不变量方法。

这种方法的依据是人可以容易地识别出不同姿态、角度、光照条件下的人脸,因此可以认为图像中存在不随姿态、角度、光照条件改变的特征不变量。该方法先提取出诸如眉毛、眼睛、鼻子、嘴巴等面部特征,然后建立统计模型描述特征之间的关系以证实人脸的存在。该方法的问题是当图像中存在光照、噪声和遮挡等现象时,提取出来的特征可能会变得不可靠。

3)模板匹配方法。

这种方法预先定义好一些标准的人脸模式,通过计算输入图像区域和标准模式之间的相关程度来检测人脸。该方法实现简单,但不能有效地处理尺度、状态、形状变化的的问题。

4)基于机器学习的方法。

这种方法从训练图像中学习得到人脸和非人脸的知识,并以此检测人脸。在模板匹配中方法中,人脸的模板是由专家预先定义的,而在本方法中,模式是从图像中学习得到的。这类方法的问题在如何选择好的特征和机器学习算法。

图像质量评价(imagequalityassessment,iqa)是图像处理中的基本技术之一。图像质量评价通过对图像特性进行分析研究,评估出图像的优劣程度或失真程度。图像质量评价在某些图像应用例如人脸认证(faceauthentication)中具有重要的作用,一个人脸库中注册的人,可能因为相机采集到的图像质量很差(例如:模糊,歪斜,失真等)而无法通过验证。图像质量评价包括主观评价和客观评价两种方法。主观评价方法可分为绝对评价和相对评价两种类型。客观评价可分为全参考(full-reference),部分参考(reduced-reference)和无参考(no-reference)三种类型。

1989年,lecun发明了卷积神经网络lenet,主要用手写数字识别,取得不错的效果,然而没有引起重视。2006年,geoffreyhinton提出深度置信网(deepbeliefnet),给出了深层网络训练中梯度消失问题的解决方案,即通过无监督预训练对权值进行初始化,然后再进行有监督的训练微调。2011年,relu激活函数被应用于深度网络,该激活函数能够有效的抑制梯度消失问题,2012年,正则化技术和dropout技术的应用使得深度学习算法更稳定,性能更佳。同年,hinton课题组为了证明深度学习的潜力,利用8层的alexnet卷积神经网络参加imagenet图像识别比赛,取得冠军。注入深度学习活力的神经网络重新成为人工智能和信息领域的焦点技术,深度神经网络成了一种效果良好的通用学习框架。

人脸检测要达到实用程度,对精度和速度都有较高的要求,两者缺一不可。经过研究人员多年来的不断努力,出现了大量的人脸检测方法,大致可分为三种:

1)基于cascade级联分类器的人脸检测,例如paulviola和michaeljones在2001年提出的基于adaboost的人脸检测算法。

2)基于dpm(deformablepartmodels)的人脸检测,是一种将人脸分割成好几个部件进行检测的算法。

3)基于深度神经网络的方法,例如ddfd(deepdensefacedetector),r-cnn等。

viola-jones的方法的优点是速度快,但性能不够好。dpm方法的特点是速度慢,性能也不是最好的。基于深度神经网络的方法可以取得最好的性能,速度在三类方法中处于中等水平。深度神经网络的特点是网络结构比较深,带来的问题是训练参数数量巨大,需要消耗大量的处理时间。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种能同时解决人脸检测和人脸图像质量评价的问题、在提高处理速度的同时还能提高性能的基于级联深度卷积神经网络的人脸检测方法。

本发明解决其技术问题所采用的技术方案是:构造一种基于级联深度卷积神经网络的人脸检测方法,包括如下步骤:

a)建立n级深度卷积网络;所述第n级深度卷积网络包括n个卷积层、一个全连接层、一个人脸框输出层和一个人脸质量评价输出层,每个所述卷积层中含有多个正方形卷积核和长方形卷积核,所述人脸框输出层设有多个节点,所述人脸质量评价输出层设有多个节点,所述n为整数且n≥1;

b)选取若干个输入图像作为训练样本,对当前训练样本的边缘处进行行数和列数的填充,得到填充图像,并将所述填充图像分别与第一层所述卷积层中的每个卷积核进行卷积运算,得到多个特征图;

c)将所述特征图中的部分或全部特征图作为下一层所述卷积层的输入,并将其分别与下一层所述卷积层中的每个卷积核进行卷积运算,得到多个对应的特征图;

d)重复上述步骤c)直至到第n+1层所述卷积层;

e)将第n+1层所述卷积层输出的特征图串行化得到高维向量,将所述高维向量与所述全连接层的节点进行全连接;

f)通过所述人脸框输出层输出人脸框坐标,通过所述人脸质量评价输出层输出人脸质量评价得分;

g)根据所述人脸框坐标,计算出包围框坐标偏移量,得到人脸检测损失函数;

h)用softmaxloss(softmax是神经网络中常用的归一化指数函数,用于将网络输出变成概率分布,交叉熵(crossentropy)描述了两个概率分布之间的距离,交叉熵越小说明二者之间越接近,将softmax和crossentropy结合便得到softmaxloss)函数来表示图像质量评价损失函数;

i)对所述人脸检测损失函数和图像质量评价损失函数进行加权叠加后得到当前所述训练样本的损失函数;

j)对每个训练样本的损失函数进行求和,得到总损失函数;

k)当其中一级深度卷积网络训练结束后,用训练好的深度卷积网络计算出每个训练样本的损失函数,将损失函数大的训练样本的权值进行增大,将损失函数小的训练样本的权值进行减小,完成对每个所述训练样本的权值的更新;

l)通过所述步骤a)至步骤k)的学习方式,将多级深度卷积网络串起来训练出级联深度卷积神经网络,采用所述级联深度卷积神经网络进行人脸检测,去除非人脸窗口。

在本发明所述的基于级联深度卷积神经网络的人脸检测方法中,在所述第n级深度卷积网络中,所述全连接层的节点数为64x2(n-1),从所述全连接层往左算起,第m个卷积层的卷积核的大小分别为(1+2m)×(1+2m)、(3+2m)×(1+2m)和(1+2m)×(3+2m),通道数均为16×2(n-m),所述m为整数且0<m<n+2。

在本发明所述的基于级联深度卷积神经网络的人脸检测方法中,在所述步骤b)中,令所述当前训练样本的大小为iy×ix,卷积核的大小为ky×kx,在所述当前训练样本的边缘处用0填充的行数和列数分别为输出的特征图的大小为fy×fx,存在如下关系:

fy=iy+2*py-ky+1=iy

fx=ix+2*px-kx+1=ix

其中,iy表示当前训练样本的行数,ix表示当前训练样本的列数,ky为卷积核的行数,kx为卷积核的列数,ky和kx均为奇数,fy表示特征图的行数,fx表示特征图的列数。

在本发明所述的基于级联深度卷积神经网络的人脸检测方法中,所述高维向量的长度为3*16×2(n-1)×fy×fx,所述高维向量与所述全连接层的节点全连接的连接数为3*16×2(n-1)×fy×fx×64×2(n-1)

在本发明所述的基于级联深度卷积神经网络的人脸检测方法中,在所述步骤g)中,令所述人脸框坐标中的左上角坐标为右下角坐标为所述人脸检测损失函数采用如下公式计算得到:

其中,li(face)为所述人脸检测损失函数,face为人脸框坐标,为训练样本左上角横坐标的标准值,为训练样本左上角纵坐标的标准值,为训练样本右下角横坐标的标准值,为训练样本右下角纵坐标的标准值。

在本发明所述的基于级联深度卷积神经网络的人脸检测方法中,在所述步骤h)中,所述图像质量评价损失函数如下:

其中,li(iq)为所述图像质量评价损失函数,iq为图像质量,yk为训练样本的期望值,sk为softmax的输出值。

在本发明所述的基于级联深度卷积神经网络的人脸检测方法中,在所述步骤i)中,所述训练样本的损失函数为:

li=wi(αli(face)+βli(iq))

其中,li为当前训练样本的损失函数,wi为当前训练样本的权值,α为所述人脸检测损失函数在所述总损失函数中所占的权重,β为所述图像质量评价损失函数在所述总损失函数中所占的权重,0≤α,β≤1。

在本发明所述的基于级联深度卷积神经网络的人脸检测方法中,所述总损失函数为:

其中,l为所述总损失函数。

在本发明所述的基于级联深度卷积神经网络的人脸检测方法中,在所述步骤k)中,对于第一级深度卷积网络,假设训练样本的数量为n,则每个所述训练样本的权值被初始化为1/n,即:

wi=1/n

从第二级深度卷积网络开始,训练样本的权值的初始化值来自上一级深度卷积网络更新后的权值;所述训练样本更新后的权值如下:

其中,winew为所述训练样本更新后的权值,z为用于归一化权值的中间变量,1≤i≤n。

实施本发明的基于级联深度卷积神经网络的人脸检测方法,具有以下有益效果:由于通过降低单个卷积网络的深度,采用多个深度卷积网络级联的方式组成级联深度卷积神经网络,这样可以在提高处理速度的同时,同时还能提高性能,在深度卷积网络中引入长方形结构的卷积核用于检测丰富的边、线及结构特征,以便于区分人脸和非人脸,训练样本的损失函数是人脸检测损失函数和图像质量损失函数的线性叠加,在学习过程中,可以根据损失函数的大小,自动调整训练样本的权值,损失函数大的训练样本,相应的权值也调大,损失函数小的训练样本,相应的权值也调小,通过这样的权值调整,网络可以针对性地学习,更快速地收敛,可以兼顾速度和性能,在检测人脸的同时,还给出人脸图像的质量评价,因此本发明能同时解决人脸检测和人脸图像质量评价的问题、在提高处理速度的同时还能提高性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明基于级联深度卷积神经网络的人脸检测方法一个实施例中的流程图;

图2为所述实施例中第一级深度卷积网络的结构示意图;

图3为所述实施例中第二级深度卷积网络的结构示意图;

图4为所述实施例中相同卷积的示意图;

图5为所述实施例中学习过程的流程图;

图6为所述实施例中级联深度卷积神经网络的人脸检测示意图。

具体实施方式

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

在本发明基于级联深度卷积神经网络的人脸检测方法实施例中,该基于级联深度卷积神经网络的人脸检测方法的流程图如图1所示。图1中,该基于级联深度卷积神经网络的人脸检测方法,其特征在于,包括如下步骤:

步骤s01建立n级深度卷积网络。

具体而言,该n级深度卷积网络包括n+1个卷积层、一个全连接层、一个人脸框输出层和一个人脸质量评价输出层,n为整数且n≥1。在第n级深度卷积网络中,全连接层的特征点数为64x2(n-1),从全连接层往左算起,第m个卷积层的卷积核的大小分别为(1+2m)×(1+2m)、(3+2m)×(1+2m)和(1+2m)×(3+2m),通道数均为16×2(n-m),m为整数且0<m<n+2。

当n为1时,第一级深度卷积网络的结构示意图如图2所示,image表示输入图像,第一级深度卷积网络有两个卷积层,图2中,203表示第一层卷积层,204表示第二层卷积层,当n=2时,第二级深度卷积网络的结构示意图如3所示,第二级深度卷积网络有三个卷积层,以后每增加一级深度卷积网络,都会增加一个卷积层。具体规律是:对第n级深度卷积网络,卷积层数为n+1。

每个卷积层中,除了正方形卷积核外还有长方形卷积核,每个卷积层中含有多个正方形卷积核和长方形卷积核,图2中201表示长方形卷积核,202表示正方形卷积核。例如在图2中,全连接层的特征点数为64,图2中的205表示全连接层的64个节点,第一层卷积层的卷积核的大小分别为5×5、7×5核5×7,通道数皆为8。第二层卷积层的卷积核的大小分别为3×3、5×3核3×5,通道数皆为16。各卷积层后还有激活函数和池化层,为简洁起见,图中没有画出。

受viola-jones基于cascade级联分类器的人脸检测方法启发,本发明通过降低单个深度卷积网络的深度,多个深度卷积网络采用级联的形式,可以提高处理速度的同时,还能提高性能。

具体而言,深度卷积网络通过卷积运算,可以自动从数据中学习特征。卷积运算本质是一个滤波器,通过卷积运算,可以使信号特征增强,并且降低噪音,不同的卷积核能够提取到图像中的不同特征。深度卷积网络实现了将特征提取和分类统一起来处理,通过对大量的人脸和非人脸学习样本,深度卷积网络可以有效地提取出人脸/非人脸分辨度高的特征,进而实现人脸检测。在深度卷积网络中,卷积核的结构一般都是正方形的,例如3x3或5x5的卷积核。viola-jones人脸检测方法成功的另一个重要因素是采用了harr-like特征,haar-like特征计算矩形区域内的灰度差,不同的特征原型可以反映不同的边、线及结构特征。通过harr-like特征可以提取出人脸/非人脸分辨度高的有效特征,受此启发,本发明在深度卷积网络中引入长方形结构的卷积核用于检测丰富的边、线及结构。

步骤s02选取若干个输入图像作为训练样本,对当前训练样本的边缘处进行行数和列数的填充,得到填充图像,并将填充图像分别与第一层卷积层中的每个卷积核进行卷积运算,得到多个特征图。

具体而言,在深度卷积网络中,做卷积运算时,一般需要在图像数据的边缘用0值填充(padding),通常有三种填充方式:无填充(nopadding)、半填充(halfpadding)和全填充(fullpadding),对应的卷积操作为:有效卷积(validconvolution)、相同卷积(sameconvolution)和完全卷积(fullconvolution)。由于本发明中的卷积核中有长方形结构,为了使得卷积运算后的特征图(featuremap)具有统一的大小,采用相同卷积(sameconvolution)。

在该步骤中,令当前训练样本的大小为iy×ix,卷积核的大小为ky×kx,采用半填充方式在当前训练样本的边缘处用0填充的行数和列数分别为输出的特征图的大小为fy×fx,存在如下关系:

其中,iy表示当前训练样本的行数,ix表示当前训练样本的列数,ky为卷积核的行数,kx为卷积核的列数,fy表示特征图的行数,fx表示特征图的列数。上式(1)中,第二个等号成立的条件是,卷积核的大小为ky和kx均为奇数。由上式可见,只要卷积核的大小为奇数,不管其实际大小差异,采用相同卷积,输出图像的大小和输入图像的大小是一样的。例如在图4中,输入图像的大小为5×5,即iy=ix=5。矩形卷积核大小为5×3,即ky=5,kx=3。在输入图像的边缘处采用半填充方式,即在输入图像的边缘处用0填充的行数和列数分别为根据上式(1)可得输出图像和输入图像大小一样。填充方式确定后,长方形卷积核的卷积值的计算与正方形卷积核是一样的。

步骤s03将特征图中的部分或全部特征图作为下一层卷积层的输入,并将其分别与下一层卷积层中的每个卷积核进行卷积运算,得到多个对应的特征图。

步骤s04重复上述步骤s03直至到第n+1层卷积层。

步骤s05将第n+1层卷积层输出的特征图串行化得到高维向量,将高维向量与全连接层的节点进行全连接:对于第n级深度卷积网络,共有n+1卷积层,第一层卷积层的输入为原始图像,下一层卷积层的输入是上一层卷积层输出的特征图。第n+2层为全连接层,有64x2(n-1)个节点,和前一层卷积层之间为全连接。

本步骤中,将第n+1层卷积层输出的特征图串行化得到高维向量,该高维向量的长度为3*16×2(n-1)×fy×fx,将该高维向量和全连接层的节点进行全连接(fullconnect),连接数为3*16×2(n-1)×fy×fx×64×2(n-1)。在全连接层后,有两个输出层,分别是人脸框输出层facebox和人脸质量评价输出层imagequality,人脸框输出层facebox用于得到人脸框,有4个节点(也就是神经网络的节点,相当于一个神经元,接受刺激,产生输出),可以输出人脸框坐标,图2中的206表示人脸框输出层facebox的4个节点。人脸质量评价输出层imagequality用于得到人脸质量评价,有6个节点,输出人脸质量评价得分,图2中的207表示人脸质量评价输出层imagequality的6个节点。

步骤s06通过人脸框输出层输出人脸框坐标,通过人脸质量评价输出层输出人脸质量评价得分。

步骤s07根据人脸框坐标,计算出包围框坐标偏移量,得到人脸检测损失函数。

具体而言,对第i个训练样本中,人脸包围框由左上角坐标和右下角坐标决定。人脸检测损失函数采用如下公式计算得到:

其中,li(face)为人脸检测损失函数,face为人脸框坐标为训练样本左上角横坐标的标准值,为训练样本左上角纵坐标的标准值,为训练样本右下角横坐标的标准值,为训练样本右下角纵坐标的标准值。值得一提的是,上述人脸框输出层facebox中的节点的输出和期望输出的差异就是误差,人脸检测损失函数是该误差的某种正比函数。

步骤s08用softmaxloss函数来表示图像质量评价损失函数。

具体而言,在训练样本中,人脸图像质量被标注为6个等级:80-100分为a,60-80分为b级,40-60分为c级,20-40分为d级,0-20分为e级,非人脸分为f级。图像质量评价损失函数如下:

其中,li(iq)为图像质量评价损失函数,iq为图像质量,yk为训练样本的期望值,sk为softmax的输出值。值得一提的是,上述人脸质量评价输出层imagequality中的节点的输出和期望输出的差异就是误差,图像质量评价损失函数是该误差的某种正比函数。本实施例中,人脸图像质量被标注为6个等级:80-100分为a,60-80分为b级,40-60分为c级,20-40分为d级,0-20分为e级,非人脸分为f级。

在图像质量评价中,全参考图像质量评价将失真图像和参考图像进行像素比较,得出对失真图像的评价。半参考的图像质量评价是从原始图像和失真图像中分别提取图像的有效特征,然后对特征进行比较,得出对失真图像的评价。无参考的图像质量评价则没有任何参考图像的信息,无参考方法一般都是基于图像统计特性例如图像的边界强度、噪声率、模糊度、熵值等,得出对失真图像的评价。图像质量评价最终取决于观察者的感觉,客观评价方法的目标也是追求客观评价结果与人的主观评价尽可能的一致。基于这个准则,在深度神经网络框架内,本发明采用机器学习的方式,通过大量标注好的训练样本和合理的损失函数,训练出适于图像质量评价的深度卷积网络。

步骤s09对人脸检测损失函数和图像质量评价损失函数进行加权叠加后得到当前训练样本的损失函数。

由于是同时进行人脸检测和图像质量评价任务,所以当前训练样本的损失函数是两者的叠加,综合(2)和(3)式得到训练样本的损失函数为:

li=wi(αli(face)+βli(iq))(4)

其中,li为当前训练样本的损失函数,wi为当前训练样本的权值,α为人脸检测损失函数在总损失函数中所占的权重,β为图像质量评价损失函数在总损失函数中所占的权重,0≤α,β≤1。α,β的取值可通过实验确定,也可以作为学习参数,通过网络训练确定。

步骤s10对每个训练样本的损失函数进行求和,得到总损失函数。

总损失函数为:

其中,l为总损失函数。

步骤s11当其中一级深度卷积网络训练结束后,用训练好的深度卷积网络计算出每个训练样本的损失函数,将损失函数大的训练样本的权值进行增大,将损失函数小的训练样本的权值进行减小,完成对每个训练样本的权值的更新。

具体而言,adaboost学习算法的基本思想是当分类器对某些样本正确分类时,则减少这些样本的权值;当错误分类时,则增加这些样本的权值,让学习算法在后续的学习中集中对比较难的训练样本进行学习。受此启发,本发明中,也有类似但不相同的策略。图5是学习过程的流程图,对于第一级深度卷积网络,假设训练样本的数量为n,则每个训练样本的权值被初始化为1/n,即:

wi=1/n(6)

其中,1≤i≤n。

从第二级深度卷积网络开始,训练样本的权值的初始化值来自上一级深度卷积网络更新后的权值;图5中的满足条件是指(5)式所示的总损失函数小于预定值或迭代次数达到限定值。当一个深度卷积网络训练结束后,用训练好的网络计算出每个训练样本的损失函数li,然后更新训练样本的权值如下:

其中,winew为训练样本更新后的权值,z为用于归一化权值的中间变量,1≤i≤n。

训练样本的权值经过更新后,损失函数li大的训练样本的权值得到增大,损失函数li小的训练样本的权值则得到减小,后续的深度卷积网络可以更好地对这些困难训练样本进行学习。需要指出的是这里的权值更新方法与viola-jones在adaboost人脸检测算法中的方法不同,不同之处有两点:一是更新方式不同,viola-jones的方式是每训练出一个基本分类器后,对权值进行更新,本发明的方式是每训练出一个深度卷积网络后对权值进行更新;二是权值更新公式不同。

步骤s12通过步骤s01至步骤s11的学习方式,将多级深度卷积网络串起来训练出级联深度卷积神经网络,采用级联深度卷积神经网络进行人脸检测,去除非人脸窗。

具体而言,通过步骤s01至步骤s11的学习方式可以训练出一系列级联深度卷积神经网络,图6是级联深度卷积神经网络的人脸检测示意图。排在前边的级联网络简单快速,其目的是用较少的计算量,去除大量的非人脸窗口,越后边的分类器越复杂,识别精度越高,但需要更多的计算量。级联的级数依赖于系统对正确识别率和识别速度的要求。通过这种级连方式,可以快速地排除非人脸窗口,从而节约出时间用于对那些更有希望的人脸的区域进行检测并给出人脸图像质量评价,达到较高的识别精度与速度。

总之,本发明的基于级联深度卷积神经网络的人脸检测方法可以同时进行人脸检测和图像质量评价任务,能实现速度和性能的兼顾。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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