一种基于神经网络和形状约束的人脸关键点检测方法

文档序号:25023557发布日期:2021-05-11 16:48阅读:155来源:国知局
一种基于神经网络和形状约束的人脸关键点检测方法

本发明属于人脸识别和分析领域,用于人脸关键点检测,具体为一种基于神经网络和形状约束的人脸关键点检测方法。



背景技术:

人脸关键点检测是人脸识别和分析领域中的关键一步,它是诸如自动人脸识别、表情分析、三维人脸重建及三维动画等其它人脸相关问题的前提和突破口。近些年来,深度学习方法由于其自动学习及持续学习能力,已被成功应用到了图像识别与分析、语音识别和自然语言处理等很多领域,且在这些方面都带来了很显著的改善。深度学习方法也在人脸关键点检测的研究上取得了极大的进展。

传统的深度学习方法的模型大小与检测精度之间相关性极大,现有的高精度人脸关键点检测方法往往具有较大的模型尺寸,轻量级模型往往达不到检测精度要求,从而为实际应用带来了困难。



技术实现要素:

本发明的目的是给出一种基于神经网络和形状约束的人脸关键点检测方法,训练人脸关键点检测模型,并且用于现实场景的人脸关键点检测,在轻量级的基础上实现较高的精度,且具有遮挡鲁棒性。

本发明采取的技术方案是:

首先,根据训练集标注的人脸关键点构建形状字典;接着,利用神经网络前向预测出关键点的热图;然后,根据热图构建初始形状特征和权重矩阵;最后,重建形状特征。本发明解决其技术问题所采用的技术方案如下:

一种基于神经网络和形状约束的人脸关键点检测方法,包括如下步骤:

步骤(1).采集人脸图像,并标记人脸关键点坐标,构成训练数据集t={(i1,p1),(i2,p2),...,(in,pn)},p={(x1,y1),(x2,y2),...,(xm,ym)};其中,i为人脸图像,p为该人脸图像的关键点坐标集合,m为关键点数量,(xm,ym)为第m个关键点的坐标,n表示人脸图像的数量,in为第n张人脸图像;

步骤(2).数据预处理:

统一人脸图像尺寸为h*w,同时归一化对应的关键点坐标,归一化公式为:

其中,w为原图像的宽度,h为原图像的高度,x和y是预处理之前的关键点坐标,cx和cy是预处理之后的关键点坐标,w是统一尺寸后的图像的宽度,h是统一尺寸后的图像的高度;

步骤(3).利用步骤(2)得到的预处理后的关键点坐标构建形状字典ds,将每张人脸图像的关键点坐标合并为形状特征向量(x1,x2,...,xm,y1,y2,...,ym),训练数据集中所有人脸图像对应的形状特征向量构成了形状字典ds∈r2m×n

步骤(4).利用步骤(2)得到的预处理后的关键点坐标生成二维高斯热图,公式如下:

其中,cx和cy是预处理之后的关键点的横坐标和纵坐标,σ是高斯分布的标准差,y是二维高斯热图上点(x',y')处的像素值,最终生成的二维高斯热图大小为h*w;

步骤(5).由步骤(2)和步骤(4)生成训练集ta={(g1,v1),(g2,v2),...,(gn,vn)},v={r1,r2,...,rm};其中,g为预处理之后的人脸图像,v为每张人脸图像m个关键点对应的m张高斯热图的集合,r为每个人脸关键点对应的二维高斯热图;

步骤(6).构建卷积神经网络,使用训练集ta对卷积神经网络进行训练,得到训练好的卷积神经网络模型;

步骤(7).在预测阶段,将待检测的人脸图像经过步骤(2)进行预处理,输入至步骤(6)训练好的卷积神经网络模型,输出相应的高斯热图v={r1,r2,...,rm};

步骤(8).由步骤(7)所述的高斯热图得到对应的人脸关键点坐标与置信度,其中,高斯热图中像素值最大的点所在的位置即为人脸关键点,最大像素也就是该人脸关键点的置信度,计算公式如下:

pi=max(ri)(4)

其中,ri为第i个关键点对应的高斯热图,(xi,yi)为第i个关键点的坐标,pi为第i个关键点的置信度;

步骤(9).由步骤(8)得到的关键点坐标构建形状特征向量s,公式如下:

s=(x1,x2,...,xm,y1,y2,...,ym)(5)

步骤(10).由步骤(8)得到的置信度构建权重矩阵ws,公式如下:

ws=diag(w1,w2,...,wm,w1,w2,...,wm)(6)

其中,wi根据置信度得到,当pi大于阈值θ时,wi=1,反之为0,diag(·)表示对角矩阵;

步骤(11).由步骤(10)得到的权重矩阵ws和步骤(3)得到的形状字典ds构建动态形状字典wsds,并从中选出与wss欧氏距离最近的k个样本形状向量构成矩阵m=[s1,s2,...,sk],si表示第i个距离最近的样本形状向量;

步骤(12).由步骤(11)得到的矩阵m和动态形状字典wsds,计算k个样本形状向量的系数α=[α1,α2,...,αk],公式如下:

其中,为2-范数的平方,也就是均方误差;

步骤(13).由步骤(12)得到的系数计算α和形状字典ds重建人脸形状特征snew,也就是人脸关键点检测结果,公式如下:

snew=dsα(9)。

本发明的有益效果:

本发明通过基于高斯热图回归的神经网络来得到人脸关键点检测的初步结果,然后利用形状约束做进一步校正,利用训练集所构建的形状字典,根据检测结果中置信度高的人脸关键点来重建形状向量,可以有效提升检测精度;和传统的人脸关键点检测方法相比,检测精度可以提高约0.5个百分点。

附图说明

图1为本发明基于神经网络和形状约束的人脸关键点检测方法的流程框图。

图2为本发明采用的沙漏网络结构图。

图3为本发明的实际检测效果图。

具体实施方式

下面结合附图对本发明方法作进一步说明。

一种基于神经网络和形状约束的人脸关键点检测方法,以沙漏网络和数据集300w为例,其具体实施步骤如下:

一、获取人脸数据,并进行预处理,包括步骤(1)至(2):

步骤(1).输入数据集w={(i1,p1),(i2,p2),...,(in,pn)},p={(x1,y1),(x2,y2),...,(x68,y68)}其中i为人脸图像,p为该人脸图像的关键点坐标集合,每张人脸图像标注了68个关键点,(xm,ym)为第m个关键点的坐标,n表示人脸图像的数量,in为第n张人脸图像。

步骤(2).数据预处理,统一人脸图像尺寸为256*256,同时归一化对应的关键点坐标,归一化公式为

其中,w为原图像的宽度,h为原图像的高度,x和y是预处理之前的关键点坐标,cx和cy是预处理之后的关键点坐标。

二、根据训练集标注的人脸关键点构建形状字典,具体为步骤(3):

步骤(3).利用步骤(2)得到的预处理后的关键点坐标构建形状字典ds,将每张人脸图像的关键点坐标合并为形状特征向量(x1,x2,...,x68,y1,y2,...,y68),训练集中所有人脸图像对应的形状特征向量构成了形状字典ds∈r136×n

三、建立神经网络模型,预测出待测人脸图像的关键点的热图,包括步骤(4)至步骤(7):

步骤(4).利用步骤(2)得到的关键点坐标生成高斯热图,公式如下:

其中,cx和cy是预处理之后的关键点的横坐标和纵坐标,σ是高斯分布的标准差,(x',y')是二维热图上待求点的横坐标和纵坐标,y是二维热图上待求点的像素值,最终生成的二维热图大小为256*256。

步骤(5).由步骤(2)和步骤(3)生成训练集ta={(g1,v1),(g2,v2),...,(gn,vn)},v={r1,r2,...,r68};其中,g为预处理之后的人脸图像,v为每张人脸图像68个关键点对应的68张高斯热图的集合,r为每个人脸关键点对应的二维高斯热图。

步骤(6).构建卷积神经网络,本实施例采用沙漏网络,网络结构如图2所示,属于轻量级网络。使用训练集ta对卷积神经网络进行训练,所设计的卷积神经网络采用单阶网络框架,主干网络采用类似u型网络结构,输出采用热图的方式,如图1所示。其中,本实施例中,采用sigmoid函数作为激活函数,公式为:

采用的损失函数公式如下:

式中,l表示损失值,m表示每张人脸的关键点数量,y表示高斯热图上每个点的实际像素值,y'表示高斯热图上每个点的预测像素值,α和β是幂指数常数;h和w表示图像尺寸,c表示通道数,即每张人脸的关键点数量。

步骤(7).将图片输入至步骤(6)训练好的沙漏网络模型,输出相应的高斯热图v={r1,r2,...,r68}。

四、根据热图构建初始形状特征和权重矩阵,包括步骤(8)至步骤(10):

步骤(8).由步骤(7)得到的高斯热图得到对应的人脸关键点坐标与置信度,高斯热图中像素值最大的点所在的位置即为人脸关键点,最大像素也就是该人脸关键点的置信度,计算公式如下:

pi=max(ri)(6)

其中ri为第i个关键点对应的高斯热图,(xi,yi)为第i个关键点的坐标,pi为第i个关键点的置信度。

步骤(9).由步骤(8)得到的关键点坐标构建形状特征向量s,公式如下:

s=(x1,x2,...,x68,y1,y2,...,y68)(7)

步骤(10).由步骤(8)得到的置信度构建权重矩阵ws,公式如下:

ws=diag(w1,w2,...,w68,w1,w2,...,w68)(8)

其中,wi根据置信度得到,当pi大于阈值θ=0.7时,wi=1,反之为0。diag(·)表示对角矩阵。

五、构建动态形状字典,重建人脸形状特征,包括步骤(11)至步骤(13):

步骤(11).由步骤(10)得到的权重矩阵ws和步骤(3)得到的形状字典ds构建动态形状字典wsds,并从中选出与wss欧氏距离最近的20个样本形状向量构成矩阵m=[s1,s2,...,s20]。

步骤(12).由步骤(11)得到的矩阵m和动态形状字典wsds计算20个样本形状向量的系数α=[α1,α2,...,α20],公式如下:

其中,为2-范数的平方,也就是均方误差。

步骤(13).由步骤(12)得到的系数计算α和形状字典ds重建人脸形状特征snew,也就是人脸关键点检测结果,公式如下:

snew=dsα(11)

为了验证本发明所述的算法的优越性能,本发明在通用的人脸对齐数据集300w数据集(300facesin-the-wildchallenge(300-w),iccv2013)上进行了人脸关键点检测的实验。

在实验中使用了均一化误差normerror(nm)、模型尺寸size来对实验结果进行评估。相关计算公式如下:

其中,loc_label是关键点的实际坐标,loc_predict是关键点的预测坐标,dist是坐标之间的距离计算函数,m是每张人脸的关键点个数,dist_between_eyes是外眼角距离。

本发明所述方法的均一化误差在3.31%左右,远远高于大部分人脸关键点检测算法的精度(3.5%到7%),实际检测效果如图3所示。

以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。

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