人脸区域的确定方法和装置与流程

文档序号:11231153阅读:615来源:国知局
人脸区域的确定方法和装置与流程

本发明涉及图像处理领域,具体而言,涉及一种人脸区域的确定方法和装置。



背景技术:

人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术,通常也叫做人像识别、面部识别。

人脸检测作为人脸识别、人脸关键点定位、人脸检索等应用的基础,一直以来受到广泛研究。人脸检测是从给定的一幅图像中,采用一定的方式判断图像中是否存在人脸,如果存在,则给出人脸的大小和位置,如图1所示,对左侧的图像进行检测,得到右侧图像,并标识出人脸区域(即虚线区域)。

虽然人类可以很容易的从一幅图像中找出人脸,但要计算机自动地检测出人脸仍然存在困难,其主要的难点来自于以下两个方面:人脸本身可以存在多种形式的细节变化,如不同的肤色、脸型、表情和人脸姿态带来的变化;图像中的人脸还会受到多种外部因素的影响,如光照、相机抖动、人脸上的装饰物带来的遮挡等。

在相关技术中,人脸检测方法多种多样,可以分为基于特征的检测方法和基于统计模型的检测方法。基于特征的人脸检测方法主要是基于一些经验规则和人工构造的特征进行人脸检测,例如基于一些面部器官结构和纹理特征的检测方法;基于统计模型的检测方法虽然也需要在样本上先提取特征,但与基于特征的检测方法不同的是,基于统计模型的人脸检测不是纯粹的基于一些设定规则,而是采用大量的样本来训练检测器模型,常见的有基于支持向量机(svm)的人脸检测算法,基于adaboost的人脸检测算法等。

评估人脸检测方法(也称为检测器)的常用指标主要有以下几种:(1)检测率,即在给定的图像集合中,被正确检测到的人脸数与图像中总的人脸数之间的比值;(2)错误检测数,即被当做人脸区域检测出来的,实际为非人脸区域的数量,理想的人脸检测器应该具有100%的检测率和0个错误检测数;(3)检测速度,从开始检测到正确定位出人脸区域所需要消耗的时间,目前很多应用中对检测速度有较高的要求,如直播美颜、人脸跟踪都需要实时地检测人脸,在检测率高,误检数低的情况下,检测速度自然越快越能提高用户的体验;(4)鲁棒性,用于表示在各种条件下,人脸检测器对环境的适应能力,检测器鲁棒性越高,在光照、人脸姿态、表情等变化以及人脸出现遮挡等情况下能准确地检测出人脸的概率越大。

为了克服上述提及的问题,实现对人脸区域的准确检测,利用相关技术中基于特征的检测方法时,由于需要使用经验规则和人工构造的特征,容易受到使用者主观因素的影响,无法保证人脸识别的检测率和鲁棒性;若利用相关技术中的基于统计模型的检测方法,目前常用的模型为了保证识别的准确度,往往设置的层数较多,会导致模型比较大,基本上这些模型均超过15mb,虽然层数较多会保证识别的准确率,但是层数的增加会带来人脸检测速度降低(在主流pc上大于300ms)的缺陷,无法满足实时性的要求。

针对相关技术中进行人脸检测的实时性较差的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种人脸区域的确定方法和装置,以至少解决相关技术中进行人脸检测的实时性较差的技术问题。

根据本发明实施例的一个方面,提供了一种人脸区域的确定方法,该人脸区域的确定方法包括:接收定位请求,其中,定位请求用于请求在目标图片中定位出人脸区域;通过卷积神经网络对目标图片进行人脸定位操作,得到定位结果,其中,卷积神经网络用于调用图形处理器对目标图片进行卷积操作,人脸定位操作包括卷积操作;在定位结果用于表示目标图片中定位出存在人脸区域的情况下,返回定位结果。

根据本发明实施例的另一方面,还提供了一种人脸区域的确定装置,该人脸区域的确定装置包括:接收单元,用于接收定位请求,其中,定位请求用于请求在目标图片中定位出人脸区域;定位单元,用于通过卷积神经网络对目标图片进行人脸定位操作,得到定位结果,其中,卷积神经网络用于调用图形处理器对目标图片进行卷积操作,人脸定位操作包括卷积操作;返回单元,用于在定位结果用于表示目标图片中定位出存在人脸区域的情况下,返回定位结果。

在本发明实施例中,在接收定位请求时,通过卷积神经网络对目标图片进行人脸定位操作,得到定位结果,在定位结果用于表示目标图片中定位出存在人脸区域的情况下,返回定位结果,由于进行人脸识别的过程中,在初步识别中是通过卷积神经网络中的全卷积网络直接调用图形处理器对目标图片进行卷积操作,采用这种硬件加速的方式,而不是通过cpu进行逐个区域的扫描这一软件处理方式,可以解决了相关技术中进行人脸检测的实时性较差的技术问题,进而达到了提高人脸检测的实时性的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是相关技术中的可选的人脸区域的示意图;

图2是根据本发明实施例的人脸区域的确定方法的硬件环境的示意图;

图3是根据本发明实施例的一种可选的人脸区域的确定方法的流程图;

图4是根据本发明实施例的一种可选的人脸重合程度的示意图;

图5是根据本发明实施例的一种可选的样本的示意图;

图6是根据本发明实施例的一种可选的网络结构的示意图;

图7是根据本发明实施例的一种可选的人脸区域的示意图;

图8是根据本发明实施例的一种可选的人脸区域的示意图;

图9是根据本发明实施例的一种可选的人脸区域的确定方法的流程图;

图10是根据本发明实施例的一种可选的概率图的示意图;

图11是根据本发明实施例的一种可选的人脸区域的确定装置的示意图;以及

图12是根据本发明实施例的一种终端的结构框图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

卷积神经网络(convolutionalneuralnetwork,cnn)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现,它主要包括卷积层和池层。

adaboost:一种迭代算法,可用于针对同一训练集训练不同的分类器,然后将这些分类器集合起来构成一个更强的分类器。

实施例1

根据本发明实施例,提供了一种人脸区域的确定方法的方法实施例。

可选地,在本实施例中,上述人脸区域的确定方法可以应用于如图2所示的由服务器202和终端204所构成的硬件环境中。如图2所示,服务器202通过网络与终端204进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端204并不限定于pc、手机、平板电脑等。本发明实施例的人脸区域的确定方法可以由服务器202来执行,也可以由终端204来执行,还可以是由服务器202和终端204共同执行。其中,终端204执行本发明实施例的人脸区域的确定方法也可以是由安装在其上的客户端来执行。

例如,对于需要进行人脸区域识别的终端,可以直接在终端上集成本申请的方法所提供的人脸识别功能,或者安装用于实现本申请的方法的客户端,这样,终端在接收到用于请求在目标图片中定位出人脸区域的定位请求时,通过卷积神经网络对目标图片进行人脸定位操作,得到定位结果,卷积神经网络用于调用图形处理器对目标图片进行卷积操作,人脸定位操作包括卷积操作;在定位结果用于表示目标图片中定位出存在人脸区域的情况下,返回定位结果。

再如,本申请所提供的方法还可以软件开发工具包sdk(softwaredevelopmentkit)的形式运行在服务器等设备上,以sdk的形式提供给应用使用,提供人脸区域识别功能的接口,其它设备通过提供的接口即可实现人脸区域的识别。服务器在接收到其它设备通过该接口发送的定位请求时,通过卷积神经网络对目标图片进行人脸定位操作,得到定位结果,卷积神经网络用于调用图形处理器对目标图片进行卷积操作,人脸定位操作包括卷积操作;在定位结果用于表示目标图片中定位出存在人脸区域的情况下,返回定位结果给发起请求的设备。

图3是根据本发明实施例的一种可选的人脸区域的确定方法的流程图,如图3所示,该方法可以包括以下步骤:

步骤s302,接收定位请求,定位请求用于请求在目标图片中定位出人脸区域;

步骤s304,通过卷积神经网络对目标图片进行人脸定位操作,得到定位结果,卷积神经网络用于调用图形处理器对目标图片进行卷积操作,人脸定位操作包括卷积操作;

步骤s306,在定位结果用于表示目标图片中定位出存在人脸区域的情况下,返回定位结果。

通过上述步骤s302至步骤s306,在接收定位请求时,通过卷积神经网络对目标图片进行人脸定位操作,得到定位结果,在定位结果用于表示目标图片中定位出存在人脸区域的情况下,返回定位结果,由于进行人脸识别的过程中,在初步识别中是通过卷积神经网络中的全卷积网络直接调用图形处理器对目标图片进行卷积操作,采用这种硬件加速的方式,而不是通过cpu进行逐个区域的扫描这一软件处理方式,可以解决了相关技术中进行人脸检测的实时性较差的技术问题,进而达到了提高人脸检测的实时性的技术效果。

相关技术中的人脸检测算法在通用应用场景下存在诸多问题,如基于特征的人脸检测虽然检测速度快,但对于稍复杂的场景该类算法的检测率偏低,缺乏鲁棒性;基于adaboost人脸检测算法虽然模型小,检测速度也较快,但对于复杂场景的鲁棒性较差,如对于极端场景下的人脸检测,如戴口罩、戴黑框眼镜、模糊图像等检测场景。

而在本申请中,采用的卷积神经网络主要有三个,分别为第一级卷积神经网络net-1、第二级卷积神经网络net-2、第三级卷积神经网络net-3,采用级联结构,给定一幅图像,通过net-1后输出候选人脸框集合,将候选集合输入到net-2,得到较精准的候选人脸框集合,再将得到的候选集合输入到net-3,得到最终的人脸框集合,即是最终的人脸位置,这是一个由粗到精的过程。使用本申请的方法,能够在保证鲁棒性、检测率及准确率的前提下解决相关技术中实时性较差的问题,主要体现如下:

(1)采用了卷积神经网cnn来表达人脸特征,相较于相关技术中的基于adaboost或svm的人脸检测方法,对于侧脸、暗光以及模糊等场景的检测具有更强的鲁棒性,同时采用三级级联结构的卷积神经网,能够保证识别的准确度;

(2)将人脸框(即人脸区域)的初始定位和精确定位分别用一个分类分支和回归分支来代替,两个分支共享中间层,相较于目前出现的一些人脸检测方法所使用的模型(如基于深度学习的模型),减小了模型的大小,使得检测速度更快;

(3)本申请的三级级联结构中的第一级网络采用了全卷积神经网络,代替了传统的扫描窗(slidingwindow)的方式,全卷积神经网络直接调用gpu进行处理,使得生成候选人脸框的过程大大加快。

下面结合图3进一步详述本申请的实施例:

在执行步骤s302的接收定位请求之前,可以采用如下方式学习卷积神经网络中的参数:通过图片集合中的图片对卷积神经网络进行训练,以确定卷积神经网络中参数的数值,图片集合中的图片为包括部分或者全部人脸区域的图像。上述的学习过程主要包括选择合适的训练数据和训练得到参数数值两个部分。

(1)选择合适的训练数据

为了使训练得到的模型参数更为准确,数据越丰富越好,在本申请中,作为一种可选的实施方式,训练以上的卷积神经网络的数据可分为三类:正样本、回归样本以及负样本,这三类样本基于样本中标识出的人脸区域(即人脸框)与真实人脸区域的iou(intersectionoverunion)来划分,iou定义了两个框的重叠程度,样本人脸区域a框和真实人脸区域b框的公共面积a∩b(即相互重叠的部分),与样本人脸区域和真实人脸区域的面积之和a∪b的比值,即:

如图4所示,在x轴和y轴组成的二维平面中,a∩b为样本人脸区域a框和真实人脸区域b框的公共面积,a∪b为a框和b框占有的总面积。

如图5所示,虚线的框为真实的人脸框(groundtruth,真实人脸区域),实线的框为生成的样本框(即样本人脸区域),在进行训练时,可以从图5中得到训练所用的样本数据,如将样本人脸区域输入卷积神经网络。

为了使模型对噪声有较强的鲁棒性,三类样本可按照如下方式进行定义:正样本,iou大于0.7的样本;回归样本,iou在0.5~0.7之间的样本;负样本,iou小于0.25的样本。

需要说明的是,本申请上述的分为三类样本进行训练仅为示意性的描述,为了使学习得到的卷积神经网络的参数更为准确,可以增加样本的学习量;同时对样本进行进一步细分,如划分为五类,iou在0.8~1.0之间的为一类;iou在0.6~0.8之间的为一类,以此类推。

完成训练数据准备之后,即可使用准备好的数据对卷积神经网络进行训练。

(2)训练过程

由图6中的网络结构可以看出,本申请所采用的网络结构可为双分支结构。其中一个分支为人脸分类分支(faceclassification),用以判断当前的输入是否含有人脸,得到候选人脸框集合,得到人脸框集合,另外一个分支为人脸框回归分支(faceboxregression),用以在分类分支给出初始的人脸框坐标后,进行人脸区域的坐标调整,以得到精确的人脸框位置。

对于人脸分类分支,图6中三个net的人脸分类分支优化的目标均是最小化误差softmaxloss,最终的分类神经元的softmax表达式为:

在softmax表达式中,h为结果,θ是模型参数,k表示待估计的状态个数,本申请中可以为区分人脸和非人人脸的两个状态,因此k=2,i=1…m,m为一次前向过程中采用的样本数量,xi表示第i个输入,即训练样本,t为参数,用于对概率分布进行归一化处理,使得概率之和为1。

通过以上表达式即可得到待优化的代价函数(softmaxloss)为:

式中“1{·}”为示性函数,仅当表达式中值为真时,该函数的值为1。“y(i)”(也即表示为yi)为样本“xi”对应的标签,在训练过程每个样本即一幅图像,若不含人脸则标签为0,若包含人脸则标签为1,其余参数与softmax表达式中的相同,参数m与表达式中m相同。

对于人脸框回归分支,对于人脸分类分支得到的候选框,可包含四个维度的信息,即(xi,yi,wi,hi),如图7所示,一幅图像中人脸框位置如图7中实线框所示,虚线框为一个选取的样本示例。

待优化的欧式距离损失函数((euclideanloss)为:

式中zi表示人脸框的四个维度r4,故zi∈r4

上述各维度信息使用的是相对量,以zi的第一个分量为例,即:

式中表示真实人脸框的顶点坐标,x″为选取的样本框的顶点坐标。

zi为训练过程中输入的监督信息,为网络的实际输出,本申请中p=4,整个网络优化的目标是使以上的两个loss最小。

在利用前述的三类样本进行参数训练时,首先可以将卷积神经网络中的参数进行初始化,然后将样本图片输入到卷积神经网络中,得到卷积神经网络输出的结果(即人脸定位结果,包括识别出的iou等),将输出的结果与真实的结果(如实际的iou)通过上述的两个公式进行误差等信息的计算,若误差在允许范围内,则说明当前的参数是合理的;若误差不在允许范围内,则根据误差大小对参数进行调整,然后重新输入样本图片,再次将输出的结果与真实的结果通过上述的两个公式进行误差等信息的计算,直至调整参数后的卷积神经网络得到的结果误差在允许范围内为止。

在对卷积神经网络中的参数训练完毕之后,即可通过本申请提供的方法进行人脸区域的识别。具体如下:

在步骤s302提供的技术方案中,在接收定位请求时,定位请求主要包括但不局限于以下几种来源:

(1)在本申请的方法是集成在终端上、或者以客户端a的形式安装在终端上的情况下,可以接收终端上的客户端b向终端发起的人脸定位请求,该客户端b可以为直播美颜、人脸跟踪等需要实时地检测人脸的客户端;

(2)在本申请的方法是集成在终端a上、或者以客户端的形式安装在终端a上的情况下,终端b与终端a通讯连接(如通过wifi、蓝牙、nfc等方式连接),终端a接收到的终端b发起的人脸定位请求;

(3)在本申请所提供的方法以软件开发工具包sdk的形式运行在服务器上的情况下,在服务器上接收到的其它设备通过调用接口发起的人脸定位请求,其它设备可以为手机、电脑、平板电脑等设备。

在步骤s304提供的技术方案中,本申请三级卷积神经网络为采用级联的方式工作,第一级卷积神经网络的人脸框集合1可以作为三级卷积神经网络中第二级卷积神经网络net-2(即第二卷积神经网络)的输入,进行进一步过滤筛选,第二级卷积神经网络进行过滤筛选的输出又可以作为第三级卷积神经网络(第三卷积神经网络)的输入,将第三级卷积神经网络过滤筛选的输出作为最终的结果。具体实现方案如下:

在通过卷积神经网络对目标图片进行人脸定位操作时,可通过三级卷积神经网络中的第一卷积神经网络net-1调用图形处理器对目标图片进行卷积操作,得到卷积结果,其中,卷积神经网络包括第一卷积神经网络;根据卷积结果确定目标图片中的第一区域为人脸区域的置信度;根据置信度在第一区域中确定出人脸区域。

在通过第一卷积神经网络调用图形处理器对目标图片进行卷积操作,得到卷积结果时,具体是通过调用图形处理器执行第一卷积神经网络上的卷积算法,以对目标图片中的各个第一区域进行一类特征的识别,得到卷积结果,卷积结果用于指示一类特征中第一区域所具有的特征。这样在根据卷积结果确定目标图片中的第一区域为人脸区域的置信度时,即可根据一类特征中第一区域所具有的特征确定第一区域为人脸区域的置信度。

如图6所示,对于第一级卷积神经网络net-1,输入的图片的参数为12*12*3,“12*12”表示输入图片的像素大小至少为12*12(即第三阈值),也即支持识别的最小人脸区域为“12*12”,“3”表示为3通道的图像;第一级卷积神经网络用于对较为粗粒度的人脸特征(即上述的一类特征)的识别,对于图片中的每个区域(即第一区域),均包括识别出来的特征,然后用预先设置的特征匹配算法来确定该区域为人脸区域的置信度。最终将置信度大于第一阈值的第一区域放入候选人脸框集合1(集合中的区域记为第二区域)。

在根据置信度在第一区域中确定出人脸区域之前,为了使可能是人脸区域的第一区域中人脸处于较为居中的位置,可根据人脸参考特征在第一区域中的位置对第一区域进行位置调整,以使人脸参考特征位于经过位置调整后的第一区域中的预设位置。

采用上述的调整方式时,在根据置信度在第一区域中确定出人脸区域时,可根据置信度在经过位置调整后的第一区域中确定出人脸区域。

可选地,为了提高处理效率,在根据人脸参考特征在第一区域中的位置对第一区域进行位置调整时,可以仅对第一区域中的第二区域(即置信度大于第一阈值的第一区域)进行位置调整,避免资源的浪费。

采用上述的调整方式时,在根据置信度在第一区域中确定出人脸区域时,可以是根据置信度在经过位置调整后的第二区域中确定出人脸区域。

上述的人脸参考特征可以为人脸的面部特征(如鼻子、眼睛、嘴、眉毛等),某一固定的面部特征在人脸上的位置是相对固定的,例如对于鼻子而言,一般位于脸部居中的位置,也即在识别出第一区域中的鼻子之后,可以对第一区域进行调整,以使鼻子位于调整后第一区域中的中心位置。

本申请的卷积神经网络可以为三级卷积神经网络,第一级卷积神经网络主要完成脸部区域的初步识别,得到上述的候选人脸框集合1。

在根据置信度在第一区域中确定出人脸区域时,上述的人脸框集合1可以作为第二卷积神经网络输入,通过第二卷积神经网络确定人脸框集合1中第二区域为人脸区域的置信度,第二区域为第一区域中置信度大于第一阈值的区域。

具体可以在通过第二卷积神经网络确定第二区域为人脸区域的置信度之前,将第二区域的区域大小调整为第四阈值,第四阈值大于第三阈值,例如将像素大小调整为“24*24”的3通道图像,然后通过第二卷积神经网络对经过区域大小调整后的第二区域进行特征识别,此处识别的特征类型与前述的第一级卷积神经网络所识别的特征类型不同,完成识别后可根据识别出的特征确定第二区域为人脸区域的置信度,具体可以通过预置的特征匹配算法进行计算。

在通过第二卷积神经网络确定第二区域为人脸区域的置信度之后,可将第二区域中置信度大于第二阈值的区域放入人脸框集合2(该集合中的区域记为第三区域)。然后可通过第三卷积神经网络识别出第三区域中的人脸区域。

可选地,在完成对第三区域的筛选之后,可以按照前述的对于第二区域的位置调整方法对人脸框集合2中的第三区域进行位置调整。

可选地,在通过第三卷积神经网络识别出第三区域中的人脸区域之前,可以将第三区域的区域大小调整为第五阈值,第五阈值大于第四阈值,例如将第三区域调整为“48*48”的图像作为第三卷积神经网络的输入,通过第三卷积神经网络对经过区域大小调整后的第三区域进行特征识别,此处所识别的特征类型与前述的第一级卷积神经网络和第二级卷积神经网络所识别的特征类型不同,完成识别后可根据识别出的特征确定第三区域中的人脸区域,具体可以通过预置的特征匹配算法进行计算匹配度的计算,将匹配度最高的第三区域作为人脸区域。

在上述实施例中,第一级卷积神经网络所识别的特征比较简单,判别阈值可以设置得比较宽松,这样就可以在保持较高召回率的同时排除掉大量的非人脸窗口;第二极卷积神经网络和第二极卷积神经网络可以设计得比较复杂,但由于只需要处理前面剩下的窗口,因此可以保证足够的效率。

采用级联的思想可以帮助去组合利用性能较差的分类器,同时又可以获得一定的效率保证,由于每一级输入的图像像素大小不一,可以使网络学习到多尺度特征组合,便于完成对人脸的最终识别。

目前已有的深度模型都比较大(卷积神经网络的级数较多),如相关技术中的模型超过15mb,导致人脸检测速度比较慢(在主流pc上大于300ms),无法满足实时性的要求。本申请采用的级联结果的深度网络架构具有检测率高、误检低、速度快(主流pc上小于40ms)、模型小等特点,充分弥补了已有的人脸检测方法的不足。

在步骤s306提供的技术方案中,返回定位结果包括:返回卷积神经网络定位出的人脸区域的位置信息,其中,位置信息用于指示人脸区域在目标图片中的位置。

在相关的产品应用中,本申请可返回人脸框在图像中的位置信息,如位置信息(xi,yi,wi,hi),i=1…k,k为检测到的人脸个数。(xi,yi)(xi,yi)表示人脸框左上顶点的图像坐标,wi和hi分别表示人脸框的宽度和高度。如图8所示,对图8中左侧图像完成检测之后,得到如右侧图所示的人脸区域,并将位置信息返回给发起请求的对象。

需要说你的是,上述的位置信息为在图像中能够唯一确定出一个人脸区域的信息,上述的(xi,yi,wi,hi)仅为一种示意性的位置信息的表示方式,具体可以更加需要进行调整,如返回左下角、右下角以及右下角中任意一个角的坐标,并返回人脸框的宽度和高度;也可以区域中心点的坐标,并返回人脸框的宽度和高度;还可以返回左下角、左上角、右下角以及右下角中任意两个点的坐标。

在得到图像中的人脸位置之后可完成人脸关键点定位、活体检测、人脸识别与检索等应用,如对于人脸关键点定位而言,可以根据相关算法定位出人脸区域内的眼睛、鼻子、嘴、眉毛等特征部位。

在本申请的实施例中,采用基于卷积神经网络(cnn)的人脸检测方法,由于卷积网络对样本具有更强的特征表示能力,卷积神经网络的基于深度学习的人脸检测在多种复杂场景下能够取得更为优异的检测性能。

下面结合图9和图10进一步详述本申请的实施例:

步骤s902,学习卷积神经网络中参数的数值。

步骤s904,输入一幅图像p到第一级卷积神经网络net-1,net-1的人脸分类分支将输出一个概率图prob(如图10所示),prob中一个点对应人脸在图像p中某个位置出现的可能性(即置信度)。设定阈值cls-1,将prob中大于cls-1的位置保留,假设得到人脸框为共有m个,记人脸框集合为r1(即候选人脸框集合1)。

步骤s906,通过net-1的人脸框回归分支调整r1中各个人脸框的位置,得到更精确的人脸框集合

步骤s908,将中各个人脸框执行非最大值抑制(non-maximumsuppression,即nms)过程,即在两个样本框的iou大于阈值nms-1时,删除置信度低的框,经过该过程后的候选人脸框集合记为

步骤s910,将对应的原图像p中的各个子图像缩放为长、宽均为24的图像,依次输入第二级卷积神经网络net-2,设定阈值cls-2,通过net-2的人脸分类分支,可以得到中各个候选框的置信度,将置信度大于的cls-2的人脸框保留,得到新的人脸框集合r2(即候选人脸框集合2)。

步骤s912,通过net-2的人脸框回归分支调整r2中各个人脸框的位置,得到更精确的人脸框集合

步骤s914,将中各个人脸,以阈值nms-2执行非最大值抑制nms,得到候选框集合

步骤s916,将对应的各个子图像缩放为长、宽均为48的图像,输入第三级卷积神经网络net-3,设定阈值cls-3,通过net-3的人脸分类分支,可以得到中各个候选框的置信度,将置信度大于的cls-3的人脸框保留,得到新的人脸框集合r3。

步骤s918,通过net-3的人脸框回归分支调整r3中各个人脸框的位置,得到更精确的人脸框集合

步骤s920,将中各个人脸,以阈值nms-3执行非最大值抑制nms,得到人脸框集合即为图像p中的各个人脸位置。

使用本申请实施例提供的技术方案,可以sdk的形式为各类场景提供服务,可以使得人脸检测的检测率高、误检低,使得基于深度学习的人脸检测在移动端实时人脸检测成为可能。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述人脸区域的确定方法的人脸区域的确定装置。图11是根据本发明实施例的一种可选的人脸区域的确定装置的示意图,如图11所示,该装置可以包括:接收单元112、定位单元114以及返回单元116。

接收单元112,用于接收定位请求,定位请求用于请求在目标图片中定位出人脸区域;

定位单元114,用于通过卷积神经网络对目标图片进行人脸定位操作,得到定位结果,卷积神经网络用于调用图形处理器对目标图片进行卷积操作,人脸定位操作包括卷积操作;

返回单元116,用于在定位结果用于表示目标图片中定位出存在人脸区域的情况下,返回定位结果。

需要说明的是,该实施例中的接收单元112可以用于执行本申请实施例1中的步骤s302,该实施例中的定位单元114可以用于执行本申请实施例1中的步骤s304,该实施例中的返回单元116可以用于执行本申请实施例1中的步骤s306。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图2所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,在接收定位请求时,通过卷积神经网络对目标图片进行人脸定位操作,得到定位结果,在定位结果用于表示目标图片中定位出存在人脸区域的情况下,返回定位结果,由于进行人脸识别的过程中,在初步识别中是通过卷积神经网络中的全卷积网络直接调用图形处理器对目标图片进行卷积操作,采用这种硬件加速的方式,而不是通过cpu进行逐个区域的扫描这一软件处理方式,可以解决了相关技术中进行人脸检测的实时性较差的技术问题,进而达到了提高人脸检测的实时性的技术效果。

相关技术中的人脸检测算法在通用应用场景下存在诸多问题,如基于特征的人脸检测虽然检测速度快,但对于稍复杂的场景该类算法的检测率偏低,缺乏鲁棒性;基于adaboost人脸检测算法虽然模型小,检测速度也较快,但对于复杂场景的鲁棒性较差,如对于极端场景下的人脸检测,如戴口罩、戴黑框眼镜、模糊图像等检测场景。

而在本申请中,采用的卷积神经网络主要有三个,分别为第一级卷积神经网络net-1、第二级卷积神经网络net-2、第三级卷积神经网络net-3,采用级联结构,给定一幅图像,通过net-1后输出候选人脸框集合,将候选集合输入到net-2,得到较精准的候选人脸框集合,再将得到的候选集合输入到net-3,得到最终的人脸框集合,即是最终的人脸位置,这是一个由粗到精的过程。使用本申请的方法,能够在保证鲁棒性、检测率及准确率的前提下解决相关技术中实时性较差的问题,主要体现如下:

(1)采用了卷积神经网cnn来表达人脸特征,相较于相关技术中的基于adaboost或svm的人脸检测方法,对于侧脸、暗光以及模糊等场景的检测具有更强的鲁棒性,同时采用三级级联结构的卷积神经网,能够保证识别的准确度;

(2)将人脸框(即人脸区域)的初始定位和精确定位分别用一个分类分支和回归分支来代替,两个分支共享中间层,相较于目前出现的一些人脸检测方法所使用的模型(如基于深度学习的模型),减小了模型的大小,使得检测速度更快;

(3)本申请的三级级联结构中的第一级网络采用了全卷积神经网络,代替了传统的扫描窗(slidingwindow)的方式,全卷积神经网络直接调用gpu进行处理,使得生成候选人脸框的过程大大加快。

可选地,在进行人脸识别之前,可以采用如下方式学习卷积神经网络中的参数:本申请装置所包括的训练单元,在接收定位请求之前,通过图片集合中的图片对卷积神经网络进行训练,以确定卷积神经网络中参数的数值,其中,图片集合中的图片为包括部分或者全部人脸区域的图像。上述的学习过程主要包括选择合适的训练数据和训练得到参数数值两个部分。

在对卷积神经网络中的参数训练完毕之后,即可通过本申请提供的装置进行人脸区域的识别。具体如下:

通过接收单元接收定位请求,定位请求用于请求在目标图片中定位出人脸区域。定位请求主要包括但不局限于以下几种来源:

(1)在本申请的方法是集成在终端上、或者以客户端a的形式安装在终端上的情况下,可以接收终端上的客户端b向终端发起的人脸定位请求,该客户端b可以为直播美颜、人脸跟踪等需要实时地检测人脸的客户端;

(2)在本申请的方法是集成在终端a上、或者以客户端的形式安装在终端a上的情况下,终端b与终端a通讯连接(如通过wifi、蓝牙、nfc等方式连接),终端a接收到的终端b发起的人脸定位请求;

(3)在本申请所提供的方法以软件开发工具包sdk的形式运行在服务器上的情况下,在服务器上接收到的其它设备通过调用接口发起的人脸定位请求,其它设备可以为手机、电脑、平板电脑等设备。

本申请三级卷积神经网络为采用级联的方式工作,第一级卷积神经网络的人脸框集合1可以作为三级卷积神经网络中第二级卷积神经网络net-2(即第二卷积神经网络)的输入,进行进一步过滤筛选,第二级卷积神经网络进行过滤筛选的输出又可以作为第三级卷积神经网络(第三卷积神经网络)的输入,将第三级卷积神经网络过滤筛选的输出作为最终的结果。

可选地,定位单元包括:卷积模块,用于通过第一卷积神经网络调用图形处理器对目标图片进行卷积操作,得到卷积结果,其中,卷积神经网络包括第一卷积神经网络;第一确定模块,用于根据卷积结果确定目标图片中的第一区域为人脸区域的置信度;第二确定模块,用于根据置信度在第一区域中确定出人脸区域。

可选地,第二确定模块包括:调整子模块,用于根据人脸参考特征在第一区域中的位置对第一区域进行位置调整,以使人脸参考特征位于经过位置调整后的第一区域中的预设位置;第二确定子模块,用于根据置信度在第一区域中确定出人脸区域包括:根据置信度在经过位置调整后的第一区域中确定出人脸区域。

可选地,卷积模块还用于通过调用图形处理器执行第一卷积神经网络上的卷积算法,以对目标图片中的各个第一区域进行一类特征的识别,得到卷积结果,其中,卷积结果用于指示一类特征中第一区域所具有的特征;第一确定模块还用于根据一类特征中第一区域所具有的特征确定第一区域为人脸区域的置信度。

可选地,卷积神经网络还包括第二卷积神经网络和第三卷积神经网络,其中,第一确定模块包括:第一确定子模块,用于通过第二卷积神经网络确定第二区域为人脸区域的置信度,其中,第二区域为第一区域中置信度大于第一阈值的区域;识别子模块,用于通过第三卷积神经网络识别出第三区域中的人脸区域,其中,第三区域为第二区域中置信度大于第二阈值的区域。

具体可以在通过第二卷积神经网络确定第二区域为人脸区域的置信度之前,将第二区域的区域大小调整为第四阈值,第四阈值大于第三阈值,例如将像素大小调整为“24*24”的3通道图像,然后通过第二卷积神经网络对经过区域大小调整后的第二区域进行特征识别,此处识别的特征类型与前述的第一级卷积神经网络所识别的特征类型不同,完成识别后可根据识别出的特征确定第二区域为人脸区域的置信度,具体可以通过预置的特征匹配算法进行计算。

可选地,第一区域的区域大小不小于第三阈值,其中,第一确定子模块还用于:在通过第二卷积神经网络确定第二区域为人脸区域的置信度之前,将第二区域的区域大小调整为第四阈值,其中,第四阈值大于第三阈值;通过第二卷积神经网络对经过区域大小调整后的第二区域进行特征识别,并根据识别出的特征确定第二区域为人脸区域的置信度;识别子模块还用于:将第三区域的区域大小调整为第五阈值,其中,第五阈值大于第四阈值;通过第三卷积神经网络对经过区域大小调整后的第三区域进行特征识别,并根据识别出的特征确定第三区域中的人脸区域。

也即在通过第三卷积神经网络识别出第三区域中的人脸区域之前,可以将第三区域的区域大小调整为第五阈值,第五阈值大于第四阈值,例如将第三区域调整为“48*48”的图像作为第三卷积神经网络的输入,通过第三卷积神经网络对经过区域大小调整后的第三区域进行特征识别,此处所识别的特征类型与前述的第一级卷积神经网络和第二级卷积神经网络所识别的特征类型不同,完成识别后可根据识别出的特征确定第三区域中的人脸区域,具体可以通过预置的特征匹配算法进行计算匹配度的计算,将匹配度最高的第三区域作为人脸区域。

在上述实施例中,第一级卷积神经网络所识别的特征比较简单,判别阈值可以设置得比较宽松,这样就可以在保持较高召回率的同时排除掉大量的非人脸窗口;第二极卷积神经网络和第二极卷积神经网络可以设计得比较复杂,但由于只需要处理前面剩下的窗口,因此可以保证足够的效率。

采用级联的思想可以帮助去组合利用性能较差的分类器,同时又可以获得一定的效率保证,由于每一级输入的图像像素大小不一,可以使网络学习到多尺度特征组合,便于完成对人脸的最终识别。

目前已有的深度模型都比较大(卷积神经网络的级数较多),如相关技术中的模型超过15mb,导致人脸检测速度比较慢(在主流pc上大于300ms),无法满足实时性的要求。本申请采用的级联结果的深度网络架构具有检测率高、误检低、速度快(主流pc上小于40ms)、模型小等特点,充分弥补了已有的人脸检测方法的不足。

可选地,返回单元还用于返回卷积神经网络定位出的人脸区域的位置信息,其中,位置信息用于指示人脸区域在目标图片中的位置。

在相关的产品应用中,本申请可返回人脸框在图像中的位置信息,如位置信息(xi,yi,wi,hi),i=1…k,k为检测到的人脸个数。(xi,yi)(xi,yi)表示人脸框左上顶点的图像坐标,wi和hi分别表示人脸框的宽度和高度。

需要说你的是,上述的位置信息为在图像中能够唯一确定出一个人脸区域的信息,上述的(xi,yi,wi,hi)仅为一种示意性的位置信息的表示方式,具体可以更加需要进行调整,如返回左下角、右下角以及右下角中任意一个角的坐标,并返回人脸框的宽度和高度;也可以区域中心点的坐标,并返回人脸框的宽度和高度;还可以返回左下角、左上角、右下角以及右下角中任意两个点的坐标。

在得到图像中的人脸位置之后可完成人脸关键点定位、活体检测、人脸识别与检索等应用,如对于人脸关键点定位而言,可以根据相关算法定位出人脸区域内的眼睛、鼻子、嘴、眉毛等特征部位。

在本申请的实施例中,采用基于卷积神经网络(cnn)的人脸检测方法,由于卷积网络对样本具有更强的特征表示能力,卷积神经网络的基于深度学习的人脸检测在多种复杂场景下能够取得更为优异的检测性能。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图2所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

实施例3

根据本发明实施例,还提供了一种用于实施上述人脸区域的确定方法的服务器或终端。

图12是根据本发明实施例的一种终端的结构框图,如图12所示,该终端可以包括:一个或多个(图中仅示出一个)处理器1201、存储器1203、以及传输装置1205(如上述实施例中的发送装置),如图12所示,该终端还可以包括输入输出设备1207。

其中,存储器1203可用于存储软件程序以及模块,如本发明实施例中的人脸区域的确定方法和装置对应的程序指令/模块,处理器1201通过运行存储在存储器1203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的人脸区域的确定方法。存储器1203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1203可进一步包括相对于处理器1201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置1205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1205包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1205为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1203用于存储应用程序。

处理器1201可以通过传输装置1205调用存储器1203存储的应用程序,以执行下述步骤:接收定位请求,其中,定位请求用于请求在目标图片中定位出人脸区域;通过卷积神经网络对目标图片进行人脸定位操作,得到定位结果,其中,卷积神经网络用于调用图形处理器对目标图片进行卷积操作,人脸定位操作包括卷积操作;在定位结果用于表示目标图片中定位出存在人脸区域的情况下,返回定位结果。

处理器1201还用于执行下述步骤:通过第一卷积神经网络调用图形处理器对目标图片进行卷积操作,得到卷积结果,其中,卷积神经网络包括第一卷积神经网络;根据卷积结果确定目标图片中的第一区域为人脸区域的置信度;根据置信度在第一区域中确定出人脸区域。

采用本发明实施例,在接收定位请求时,通过卷积神经网络对目标图片进行人脸定位操作,得到定位结果,在定位结果用于表示目标图片中定位出存在人脸区域的情况下,返回定位结果,由于进行人脸识别的过程中,在初步识别中是通过卷积神经网络中的全卷积网络直接调用图形处理器对目标图片进行卷积操作,采用这种硬件加速的方式,而不是通过cpu进行逐个区域的扫描这一软件处理方式,可以解决了相关技术中进行人脸检测的实时性较差的技术问题,进而达到了提高人脸检测的实时性的技术效果。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图12所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图12其并不对上述电子装置的结构造成限定。例如,终端还可包括比图12中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图12所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行人脸区域的确定方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s11,接收定位请求,定位请求用于请求在目标图片中定位出人脸区域;

s12,通过卷积神经网络对目标图片进行人脸定位操作,得到定位结果,卷积神经网络用于调用图形处理器对目标图片进行卷积操作,人脸定位操作包括卷积操作;

s13,在定位结果用于表示目标图片中定位出存在人脸区域的情况下,返回定位结果。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

s21,通过第一卷积神经网络调用图形处理器对目标图片进行卷积操作,得到卷积结果,卷积神经网络包括第一卷积神经网络;

s22,根据卷积结果确定目标图片中的第一区域为人脸区域的置信度;

s23,根据置信度在第一区域中确定出人脸区域。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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