基于深度学习和多任务学习的人脸属性预测方法及装置的制造方法_2

文档序号:9646809阅读:来源:国知局
效果,因此,每张图片除了检测人脸外,还需检测其关键点,根据其关键点,计算一个该人脸到标准人脸的仿射或者相似变换,把该人脸与标准人脸对齐。所述人脸关键点包括眼角、眉毛的末端、嘴角、鼻尖等位置信息。
[0038]步骤S3:对类别中具有顺序性的属性进行编码。
[0039]以年龄属性为例。对于年龄a,其编码可以为以下几种形式之一或者其组合。
[0040](1)编码为\ XfXr..,其中XiS二值的数值,0或者1。如果i小于等于a,则Xi为1,如果i大于a,则\为0。
[0041](2)编码为Xi XyXr..,其中XiS二值的数值,0或者1。如果i等于a除以k,则1为1,否则,X $ 0。其中k可以为任何正整数,可以人工定义或者随机选取。
[0042]该编码方式可用于任何一属性,以具有顺序性的属性为佳。
[0043]步骤S4:构造一个深度神经网络。该网络的前端可以是任何多个卷积层(convolut1nal layer),池化层(pooling layer)和非线性层(non-linear layer)的组合,其后端是softmax,和/或crossentropy等损耗层。
[0044]该深度神经网络的结构如附图2所示,其中,
[0045]A为输入层,该层用于读入人脸图片,属性类别及属性编码。该层可以对人脸图片进行预处理操作,输出对齐的人脸图片,属性类别或者编码。输入层A将经过预处理的人脸图片输出到卷积层B。同时输入层A将经过预处理的属性类别和/或编码输入到G层损耗层。
[0046]B层为卷积层,其输入是经过预处理的人脸图片或者图片的图像特征,通过一线性变换输出得到新特征。其输出的新特征为C层非线性层的输入。
[0047]C层为非线性层,其通过非线性函数,对卷积层B输入的特征进行非线性的变换,使得其输出的特征有较强的表达能力。非线性层C的输出特征为池化层D的输入。
[0048]D为池化层(Pooling layer),池化层可以将多个数值映射到一个数值。该层不但可以进一步加强学习到的特征的非线性,而且可以使得输出的特征的空间大小(spatialsize)变小,而从增强学习的特征的平移不变性,即人脸平移,提取的特征保持不变。池化层D的输出特征可以再次作为为卷积层B的输入或者全连接层E的输入。
[0049]如附图2所示,卷积层B,非线性层C和池化层D外面的大框表示B,C,D层可以重复一次或者多次,即卷积层B,非线性层C和池化层D组合可以重复一次或多次,每一次池化层的输出可以作为卷积层B的再次输入。B,C,D三层的多次组合,可以更好的处理输入的图片,使其特征具有最佳的表达能力。
[0050]E层为全连接层,它对池化层D的输入做一个线性变换,把学习得到的特征投影到一个更好的子空间以利于属性预测。全连接层E的输出特征作为非线性层F的输入。
[0051]F层为非线性层,与非线性层C的功能一样,对全连接层E的输入特征进行非线性变换。其输出特征可以作为损耗层G的输入或者再次作为全连接层E的输入。
[0052]如附图2所示,全连接层E和非线性层F外面的大框,表示E层和F层可以重复一次或者多次。
[0053]G层为一个或者多个损耗层,可以是softmax,和/或crossentropy等。其主要负责计算预测的属性类别和/或编码与输入的属性类别和/或编码的误差。
[0054]总体而言,输入层A负责简单处理输入。卷积层B,非线性层C和池化层D的组合负责图片的特征提取。全连接层E和非线性层F是特征到属性类别和/或编码的映射。损耗层G负责计算预测误差。通过上述深度神经网络的多层设计保证提取的特征具有丰富的表达能力,而从更好的预测属性。同时,多个属性类别和编码同时连接损耗层G,确保多个任务同时学习,共享深度网络学到的特征。
[0055]步骤S5:利用步骤S1形成的训练数据集合,训练步骤S4中设计的深度神经网络,并部署训练得到的神经网络模型。
[0056]通过向后传递的梯度下降算法,训练得到步骤S4中深度神经网络的网络参数。替换输入层A使得其只输入图片;替换损耗层G,使得其只输入特征,从而部署得到一个输入人脸图片,同时输出人脸多个属性的深度神经网络模型。
[0057]步骤S6,利用步骤S5中的深度神经网络模型,预测图片中的人脸属性。
[0058]此外,本发明还涉及一种基于深度学习和多任务学习的人脸属性预测装置。现结合附图3对该装置作详细说明。
[0059]如图3所示,该基于深度学习和多任务学习的人脸属性预测装置,包括以下单元:
[0060]收集标注单元,用于收集人脸图片并标注对应的多个属性的类别,形成一个训练数据集合。
[0061]人脸属性的类别由局部属性和全局属性组成。局部属性包括但不限于头发颜色,头发长短,眉毛长短,眉毛浓密或者稀疏,眼睛大小,眼睛睁开或者闭着,鼻梁高低,嘴巴大小,嘴巴张开或者闭着,是否佩戴眼镜,是否佩戴墨镜,是否戴口罩等。全局属性包括但不限于人种,性别,年龄,颜值,表情等。
[0062]针对收集的人脸图片,人工标注其对应的属性,并根据属性对应的类别形成一个训练数据集合。
[0063]检测对齐单元,用于检测人脸,以及人脸关键点,通过多个关键点对齐人脸。
[0064]利用AdaBoost分类器(自适应增强分类器)或者深度学习的人脸检测算法检测人脸。
[0065]其中利用AdaBoost分类器检测人脸的算法为现有技术,具体可以参见CN102254183B公开的算法。
[0066]利用深度学习算法检测人脸的方法也为现有技术,具体可以参见CN103778414A和/或CN104866810A公开的算法。
[0067]本发明的重点并不在于人脸检测算法,因此,采用任何一现有的AdaBoost分类器或深度学习算法实现人脸及人脸关键点的检测即可。
[0068]由于不同的人脸照片,可能具有不同的姿态。为了达到更好的预测效果,因此,每张图片除了检测人脸外,还需检测其关键点,根据其关键点,计算一个该人脸到标准人脸的仿射或者相似变换,把该人脸与标准人脸对齐。所述人脸关键点包括眼角、眉毛的末端、嘴角、鼻尖等位置信息。
[0069]编码单元,用于对类别中具有顺序性的属性进行编码。
[0070]以年龄属性为例。对于年龄a,其编码可以为以下几种形式之一或者其组合。
[0071](1)编码为\ XyXr..,其中XiS二值的数值,0或者1。如果i小于等于a,则Xi为1,如果i大于a,则xi为0。
[0072](2)编码为Xi XyXr..,其中XiS二值的数值,0或者1。如果i等于a除以k,则1为1,否则,X $ 0。其中k可以为任何正整数,可以人工定义或者随机选取。
[0073]该编码方式可用于任何一属性,以具有顺序性的属性为佳。
[0074]神经网络构造单元,用于构造一个深度神经网络。该网络的前端可以是任何多个卷积层(convolut1nal layer),池化层(pooling layer)和非线性层(non-1 inear layer)的组合,其后端是softmax,和/或crossentropy等损耗层。
[0075]该深度神经网络的结构如附图2所示,其中,
[0076]A为输入层,该层用于读入人脸图片,属性类别及属性编码。该层可以对人脸图片进行预处理操作,输出对齐的人脸图片,属性类别或者编码。输入层A将经过预处理的人脸图片输出到卷积层B。同时输入层A将经过预处理的属性类别和/或编码输入到G层损耗层。
[0077]B层为卷积层,其输入是经过预处理的人脸
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1