一种基于卷积神经网络的人脸关键点检测方法及装置与流程

文档序号:17865152发布日期:2019-06-11 23:09阅读:240来源:国知局
一种基于卷积神经网络的人脸关键点检测方法及装置与流程

本发明实施例涉及计算机视觉处理技术领域,具体涉及一种基于卷积神经网络的人脸关键点检测方法及装置。



背景技术:

传统的人脸关键点检测方法主要是基于图像设计特征的回归方法,首先采用人工设计特征(hand-craftedfeature)的方式统计图像的特征信息,提取人脸图像中的特征,用于更好的描述图像,再通过高质量的回归器,直接对人脸的关键点位置进行回归计算。物体的图像特征信息包括图像的灰度、纹理、外形等,通过对图像的特征信息进行统计运算,从而对物体进行更好地描述,主要有hig、sift、haar等图像特征描述算子。sift对于图像中的杂波或者部分遮挡都有很强的鲁棒性,因为sift特征描述算子在均匀缩放、方向、光照变化和部分畸变的情况下具有不变性,sift检测器是通过关键点(感兴趣点)来使用的,利用不同尺度的高斯滤波器对图像进行卷积,然后对连续高斯模糊图像进行差分处理,关键点被识别为跨尺度图像的局部最小/最大值,这是通过将图像中的每个像素与其相同尺度的八个邻居进行比较,并且在相邻的每个尺度中比较九个对应的相邻像素来完成的,如果像素值是所有比较像素之间的最大值或最小值,则将其选择为候选关键点;hog是另一种常用的图像特征描述算子,与sift特征类似,hog对图像的局部部分中的梯度取向的出现进行计数,hog描述符比其他描述符具有几个关键的优点,由于它在局部格子上工作,它对于几何和光度变换都具有很强的鲁棒性。

在深度学习兴起之前,这种传统的人工设计特征方法是解决计算机视觉处理任务的主流,但是传统的图像设计特征方法适用范围比较局限,检测效果也比较粗糙,难以对人脸眼睛嘴角处细节的关键点进行精确的检测,此外,这种人工设计特征对于侧脸、抬头等姿态变化比较大的人脸也不具备较好的鲁棒性,光照背景、人脸位置对于整体检测效果都有较大的影响。



技术实现要素:

为此,本发明实施例提供一种基于卷积神经网络的人脸关键点检测方法,以解决传统的人脸关键点检测方法对人脸细节处的关键点难以实现精准检测,对于侧脸、抬头、低头等姿态变化较大的人脸检测效果不佳,光照背景、人脸位置对于整体检测效果都有较大的影响。

为了实现上述目的,本发明实施例提供如下技术方案:

根据本发明实施例的第一方面,提出了一种基于卷积神经网络的人脸关键点检测方法,所述方法包括:

建立训练集,所述训练集中包括多张人脸图像,对训练集中的人脸图像标注出关键点;

构建卷积神经网络模型;

使用训练集训练所述卷积神经网络模型,采用改进的l1loss作为损失函数对所述卷积神经网络模型进行训练,损失函数的形式如下:

其中,m为每张人脸图像中标注的关键点数量,wi为权重,yt表示监督的真实标签,yp表示卷积神经网络输出的预测值,通过关键点特征向量形式表示,n表示特征向量的维数。

进一步地,所述使用训练集训练所述卷积神经网络模型包括:

所述训练集包括第一训练集和第二训练集,所述第二训练集中包括多张包含抬头、低头、眨眼、张嘴、左摇头和右摇头六种人脸动作的人脸图像;

使用第一训练集对所述卷积神经网络模型进行预训练;

使用第二训练集对预训练后的卷积神经网络模型进行优化训练。

进一步地,所述方法还包括:

分别计算第一训练集或第二训练集中所有人脸图像所标注的关键点的平均点;

使用第一训练集或第二训练集训练所述卷积神经网络模型学习人脸关键点到平均点之间的偏移量。

进一步地,所述卷积神经网络模型采用改进后的resnet18网络进行人脸图像的特征提取,改进后的resnet18网络的每层卷积层的输出通道数减少为resnet18网络卷积层通道数量的1/10。

进一步地,所述卷积神经网络模型通过一个全连接层输出多维的关键点特征向量,所述特征向量的奇数项对应多个关键点的横坐标偏移量,偶数项对应多个关键点的纵坐标偏移量。

进一步地,所述方法还包括:

对于人脸图像中丢失的无效关键点,权重wi置为0。

进一步地,所述方法还包括:

对于人脸图像中的眼部关键点设置相比于其他关键点更高的权重。

进一步地,所述方法还包括:

采用批量梯度下降法和反向传播算法对所述卷积神经网络模型进行训练。

进一步地,所述方法还包括:

对于超过预设阈值的损失进行梯度回传;

对于未超过预设阈值的损失将权重wi置为0,不进行梯度回传。

根据本发明实施例的第二方面,提出了一种基于卷积神经网络的人脸关键点检测装置,所述装置包括:

训练集建立模块,用于建立训练集,并对训练集中的所有人脸图像标注出关键点;

网络建立模块,用于构建卷积神经网络模型;

训练模块,用于使用训练集训练所述卷积神经网络模型。

本发明实施例具有如下优点:

本发明实施例提出的一种基于卷积神经网络的人脸关键点检测方法及装置,通过搭建多层卷积神经网络学习人脸的深度信息,利用卷积神经网络的深度表达能力,得到人脸的深度特征,通过回归器从学习到的人脸特征中回归人脸关键点的位置,损失函数采用加权重的方式,可以通过多种权重变化学习策略,剔除无效特征点对网络的影响,使网络能够趋向于关注难学习的部分,减少容易学习的部分对网络损失的平均影响,使得整个网络对于人脸姿态变化、人脸细节处关键点、光照背景等情况更加鲁棒,检测效果更加准确,实现人脸关键点的精准定位。

附图说明

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

图1为本发明实施例1提供的一种基于卷积神经网络的人脸关键点检测方法的流程示意图;

图2为本发明实施例1提供的一种基于卷积神经网络的人脸关键点检测方法的人脸图像关键点标注示意图;

图3为resnet网络中的shortcut连接示意图;

图4为本发明实施例1提供的一种基于卷积神经网络的人脸关键点检测方法的网络处理流程示意图。

具体实施方式

以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

如图1所示,本实施例提出了一种基于卷积神经网络的人脸关键点检测方法,该方法包括:

s100、建立训练集,训练集中包括多张人脸图像,对训练集中的人脸图像标注出关键点。训练集包括第一训练集和第二训练集,所述第二训练集中包括多张包含抬头、低头、眨眼、张嘴、左摇头和右摇头六种人脸动作的人脸图像。第一训练集和第二训练集中,如图2所示,每张人脸图像均根据脸部轮廓、眉毛、眼睛、鼻子、嘴巴等关键区域的位置标注出最能体现人脸特征的70个关键点。

为了让网络尽可能学习到细节处的关键点,网络需要尽可能多的训练集样本,本实施例中搜集了60万人脸图像作为第一训练集。进一步地,为了增强网络对于人脸不同姿态动作的鲁棒性,本实施例先使用60w张标注出关键点的第一训练集对网络进行训练,训练完成后,将得到的模型作为预训练模型,然后采用1万张包含各种动作的第二训练集进行微调,增强网络对于各种动作的鲁棒性。

进一步地,该方法还包括:

分别计算第一训练集或第二训练集中所有人脸图像所标注的关键点的平均点;

使用第一训练集或第二训练集训练卷积神经网络模型学习人脸关键点到平均点之间的偏移量。

预训练和优化训练时时,计算第一训练集和第二训练集所有图片的平均点,作为初始人脸关键点,在网络中让所有人脸去回归和平均点的偏移量,比直接回归70个关键点的位置要简单得多,因此让网络去学习人脸关键点到平均点的偏移量,而不是直接回归70个点的位置。

s200、构建卷积神经网络模型。

本实施例中卷积神经网络模型采用改进后的resnet18网络进行人脸图像的特征提取。如图3所示,resnet网络通过一个shortcut的连接,使得网络可以比普通卷积神经网络(vgg,googlenet等)更深,因此网络的特征提取能力、学习能力以及网路拟合能力都大大加强。

给定一张人脸图像,首先将人脸图像以长边为标准,等比例放缩到96x96,短边不足补黑,避免人脸产生形变,然后将处理后的人脸图像输入至卷积神经网络模型,通过改进后的resnet18网络提取人脸的特征。

本实施例中,为了减少网路的参数量,避免参数冗余,改进后的resnet18网络的每层卷积层的输出通道数减少为原resnet18网络卷积层通道数量的1/10,速度比通常所用的resnet18网络大大提升,更加适用于实际应用。

卷积神经网络模型的最后通过一个全连接层输出140维的关键点特征向量,特征向量的奇数项对应70个关键点的横(x)坐标偏移量,偶数项对应70个关键点的纵(y)坐标偏移量。

本实施例中,采用批量梯度下降法和反向传播算法对卷积神经网络模型进行训练。如图4所示,通过搭建多层卷积神经网络学习人脸的深度信息,利用resnet18网络的深度表达能力,提取人脸的深度特征,然后通过一个回归器从学习到的人脸特征中回归人脸关键点的位置。

s300、使用训练集训练卷积神经网络模型,采用改进的l1loss作为损失函数对卷积神经网络模型进行训练,损失函数的形式如下:

其中,m为每张人脸图像中标注的关键点数量,本实施中,m的值为70,wi为权重,yt表示监督的真实标签,yp表示卷积神经网络输出的预测值,通过关键点特征向量形式表示,n表示特征向量的维数,即为140。

具体的,使用训练集训练所述卷积神经网络模型包括:

使用第一训练集对所述卷积神经网络模型进行预训练;

使用第二训练集对预训练后的卷积神经网络模型进行优化训练。

l1_loss衡量的是预测值和实际值之间的l1_范数,其形式如下:

其中yt表示监督的真实标签,yp表示网络的预测值,此处为特征向量,n表示特征向量的维数。

为了充分利用训练集中人脸图像的信息,同时避免一些错误的标注样本对网络的训练的影响,本实施例在网络对应的训练损失函数中加入一个权重wi,wi是标注关键点是否有效的标签。

在应用中,对于人脸图像中丢失的无效关键点,比如侧脸中一些丢失的关键点,权重wi置为0,此时对应的关键点没有损失loss,即没有梯度回传,这样可以实现充分利用有效的关键点信息,剔除无效关键点对网络的影响,同时也可以增强网络对侧脸的鲁棒性。

本实施例中的卷积神经网络模型的训练学习采用多权重变化学习策略:

(1)眼部关键点损失权重加强策略

对于人脸图像中的眼部关键点设置相比于其他关键点更高的权重。对于复杂的眼部关键点,特征往往不明显,眼部关键点经常不准确,然而实际应用中要识别闭眼动作,所以眼部关键点的准确识别至关重要,为了让网络趋向于学习眼部关键点,使模型对于眼部特征学习得更好,设计了一种眼部权重增强策略,即对于除了眼部关键点以外的部分,在监督的损失函数加上1的权重;而对于眼部关键点,采用5的权重,使得网络加大眼部关键点的损失,在眼部的学习上效果更好,实现对于人眼处的关键点着重学习。

(2)损失权重动态变化策略

由于不同关键点的损失不同,学习的难易程度不同,较难学习的关键点损失大,容易学习的关键点loss小,当梯度回传时,对所有关键点的损失作平均,使得难学习的样本损失减小,而容易学习的样本损失增大,使得网络收敛效果更差,为了让网络趋向于关注难学习样本,本实施例提出了一种动态损失权重变化策略:对于超过预设阈值的损失进行梯度回传,对于未超过预设阈值的损失将权重wi置为0,不进行梯度回传,这样就可以使网络在难学习样本的学习上效果更好。

本实施例中,卷积神经网络模型的训练采用如下参数:使用caffe深度学习框架;gpu性能:1张图片1080ti;梯度下降方式:批量梯度下降法(sgd);批量大小:64;学习率设置:初始0.01,每过5w轮学习率下降为原来的1/10;最大训练轮数:12万。

通过搭建多层卷积神经网络学习人脸的深度信息,利用卷积神经网络的深度表达能力,得到人脸的深度特征,并从学习到的人脸特征中回归关键点的位置,通过对损失函数加权重的方式,采用多种权重变化学习策略,剔除无效特征点对网络的影响,使网络能够趋向于关注难学习的部分,减少容易学习的部分对网络损失的平均影响,使得整个网络对于人脸姿态变化、人脸细节处关键点、光照背景等情况更加鲁棒,检测效果更加准确,实现人脸关键点的精准定位。

实施例2

与上述实施例1相对应的,本实施例提出了一种基于卷积神经网络的人脸关键点检测装置,装置包括:

训练集建立模块,用于建立训练集,并对训练集中的所有人脸图像标注出关键点;

网络建立模块,用于构建卷积神经网络模型;

训练模块,用于使用训练集训练卷积神经网络模型。

虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

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