掌桥专利:专业的专利平台
掌桥专利
首页

一种分类模型训练方法、模型、分类方法以及产品

文献发布时间:2024-04-18 19:58:26


一种分类模型训练方法、模型、分类方法以及产品

技术领域

本申请实施例涉及数据处理的技术领域,具体而言,涉及一种分类模型训练方法、模型、分类方法以及产品。

背景技术

计算机视觉包括图像识别、目标检测、对抗攻击、语义分割等,人脸检测与识别也是当前计算机视觉领域内的一个热门研究课题。

人脸检测属于目标检测的延伸任务,主要是对各种尺寸的人脸均进行像素级别的定位,示例地,人脸检测模型获取不同尺寸的人脸图像,输出对应的人脸检测框坐标、人脸关键点坐标、人脸分类预测等人脸检测特征;人脸识别是通过对人脸检测后的图像进行人脸对齐和特征提取,实现不同人脸比对。

而随着多媒体、社交网络的快速发展,催生出更加细节且多维度的人脸属性分类需求,如人脸属性不仅包括面部生物特征、如性别、年龄、种族、脸型以及肤色等,甚至还需要确定人物的服装化妆等外部属性,如是否化妆、服饰发型、戴眼镜、戴口罩以及戴美瞳等,甚至包含人脸不同表情,这些人脸属性不仅可以作为人脸特征辅助人脸识别,而且可以直接用于各种多媒体场景中,比如购物网站、社交网络推荐等。

现有人脸属性分类方法中包括多任务学习人脸属性分类的方法,具体地一个模型同时学习多个人脸属性的预测任务,多任务学习人脸属性分类的方法可以占用更少的计算资源,同时多任务学习可以考虑到任务之间的关联和约束,共享信息与相互补充,可以提升预测精度。

但是目前的多任务人脸属性分类模型中,虽然在模型的底层共享参数,但是在模型的顶层各个人脸属性任务在分裂后时独立的,忽视了人脸属性之间的相关性,从而导致多任务人脸属性分类模型的预测精度仍较低。

发明内容

本申请实施例提供一种分类模型训练方法、模型、分类方法以及产品,旨在提高人脸属性分类的预测精度。

第一方面本申请实施例提供一种人脸属性分类模型训练方法,所述方法包括:

获取多个人脸属性,根据语义相关程度将所述多个人脸属性划分为多组人脸属性;

构建所述多个人脸属性对应的学习模型,所述学习模型包括所述多组人脸属性的学习任务共享的网络部分以及每组人脸属性各自对应的特征属性子网络部分,其中,所述多组人脸属性的学习任务通过所述共享的网络部分共享学习参数,所述每组人脸属性的学习任务通过各自对应的特征属性子网络部分对共享的学习参数进行调整;

获取含有多个人脸图像的人脸数据集,所述人脸数据集中每个人脸图像均携带有人脸属性类别标签;

基于所述人脸数据集对所述学习模型进行迭代训练,当所述学习模型的迭代次数等于预设迭代次数时,输出训练好的人脸属性分类模型。

可选地,根据语义相关程度将所述多个人脸属性划分为多组人脸属性,包括:

获取多组人脸属性各自对应的分组基准信息,分组基准信息用于包括人脸属性的描述信息或者人脸属性的位置信息;

根据每个人脸属性与所述多组人脸属性的分组基准信息之间的语义相关程度,将所述多个人脸属性划分为多组人脸属性。

可选地,构建所述多个人脸属性对应的学习模型包括:

构建所述学习模型的共享的网络部分,所述共享的网络部分包括依次连接的主干网与共享网络;

构建所述每组人脸属性各自对应的特征属性子网络部分,每个特征属性自网络部分均连接所述共享网络。

可选地,构建所述多个人脸属性对应的学习模型还包括:

构建加权损失层,所述加权损失层连接多组特征属性子网络部分的输出端,所述加权损失层用于调节所述多个人脸属性的在训练过程中的损失权重。

可选地,构建所述多个人脸属性对应的学习模型还包括:

定义所述每组人脸属性的学习任务各自对应的单任务属性目标函数;

定义所述多组人脸属性的学习任务对应的多任务属性目标函数。

可选地,获取含有多个人脸图像的人脸数据集之后,包括:

对所述人脸数据集中每个人脸图像标记该人脸图像中包含的所有人脸属性。

可选地,基于所述人脸数据集对所述学习模型进行迭代训练,当所述学习模型的迭代次数等于预设迭代次数时,输出训练好的人脸属性分类模型,包括:

将所述人脸数据集分为人脸训练数据集和人脸验证数据集;

基于所述人脸训练数据集对所述学习模型进行迭代训练,并在迭代过程中根据所述学习模型对于所述人脸验证数据集的验证损失,调节所述学习模型对每个人脸属性的损失权重,基于调整后的损失权重更新所述学习模型的网络参数。

可选地,所述方法还包括:

将所述学习模型对所述每个人脸属性的损失权重的初始值设置为1。

可选地,将所述人脸数据集分为人脸训练数据集和人脸验证数据集,包括:

将所述人脸数据集中60%的人脸图像作为人脸训练数据集;

将所述人脸数据集中20%的人脸图像作为人脸验证数据集;

其中,所述人脸验证数据集中每个人脸属性对应的类别标签数量不低于所述人脸训练数据集中该人脸属性的类别标签数量的三分之一。

可选地,基于所述人脸训练数据集对所述学习模型进行迭代训练,并在迭代过程中根据所述学习模型对于所述人脸验证数据集的验证损失,调节所述学习模型对每个人脸属性的损失权重,包括:

每基于所述人脸训练数据集中的一批次人脸图像对所述学习模型进行一次训练后,将所述人脸验证数据集中一批次人脸图像输入当前所述学习模型中,得到并记录当前所述学习模型对于所述每个人脸属性的验证损失;

当所述学习模型迭代次数满足预设的权重更新周期时,根据所述学习模型在所述权重更新周期内每次对所述每个人脸属性的验证损失,确定所述每个人脸属性对应的泛化系数与学习速度;

根据所述每个人脸属性对应的泛化系数与学习速度,确定所述每个人脸属性对应的损失权重。

可选地,根据所述每个人脸属性对应的泛化系数与学习速度,确定所述每个人脸属性对应的损失权重,包括:

将所述泛化系数与所述学习速度的商作为所述每个人脸属性对应的损失权重。

可选地,基于所述人脸训练数据集对所述学习模型进行迭代训练,并在迭代过程中根据所述学习模型对于所述人脸验证数据集的验证损失,调节所述学习模型对每个人脸属性的损失权重,包括:

将所述人脸训练数据集中的一批次人脸图像和所述人脸验证数据集中一批次人脸图像均输入所述学习模型中;

基于所述人脸训练数据集中的一批次人脸图像对学习模型进行一次训练,得到并记录当前所述学习模型对所述人脸验证数据集中一批次人脸图像中每个人脸属性的验证损失;

当所述学习模型的迭代次数c为预设的权重更新周期t的整数倍且c>2*t时,对于任一人脸属性的验证损失,计算第c-t次到第c次区间内所有验证损失的第一验证损失均值,计算第c-2t次到第c-t次区间内所有验证损失的第二验证损失均值;

基于所述第一验证损失均值和所述第二验证损失均值,确定该人脸属性对应的损失变化率,对所述损失变化率进行归一化后得到该人脸属性对应的泛化系数;

根据第c次对应的验证损失和第1次训练过程得到的验证损失,确定该人脸属性对应的学习速度;

将所述泛化系数与所述学习速度的商作为该人脸属性对应的损失权重。

第二方面,本申请实施例提供一种人脸属性分类模型,所述人脸属性分类模型是基于实施例第一方面所述的训练方法训练得到的,所述分类模型包括:

多组人脸属性的学习任务共享的网络部分以及每组人脸属性各自对应的特征属性子网络部分,所述多组人脸属性的学习任务通过所述共享的网络部分共享学习参数,所述每组人脸属性的学习任务通过各自对应的特征属性子网络部分对共享的学习参数进行调整。

可选地,所述共享的网络部分包括主干网和共享网络,所述主干网的输出端连接所述共享网络,所述共享网络的输出端连接每组人脸属性各自对应的特征属性子网络部分。

可选地,所述主干网采用Resnet50结构。

可选地,所述共享网络和每个特征属性子网络均包括2个全连接层。

第三方面,本申请实施例提供一种人脸属性分类方法,所述方法包括:

获取待分类的人脸图像;将所述待分类的人脸图像输入如实施例第二方面所述的人脸属性分类模型中,所述人脸属性分类模型输出所述待分类的人脸图像中包含的所有人脸属性。

第四方面,本申请实施例提供一种计算机设备,包括:至少一个处理器,以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时执行如实施例第一方面所述的人脸属性分类模型训练方法。

第五方面,本申请实施例提供一种非易失性可读存储介质,所述非易失性可读存储介质存储有计算机程序,其中,所述计算机程序被处理器执行时执行如实施例第一方面所述的人脸属性分类模型训练方法。

第六方面,本申请实施例提供一种计算处理设备,包括:

存储器,其中存储有计算机可读代码;一个或多个处理器,当所述计算机可读代码被所述一个或多个处理器执行时,所述计算处理设备执行实施例第一方面所述的人脸属性分类模型训练方法。

有益效果:

本实施例提供的训练方法中,首先获取多个人脸属性,根据语义相关程度将所述多个人脸属性划分为多组人脸属性,所述多组人脸属性中每组人脸属性对应一个学习任务;然后构建所述多个人脸属性对应的学习模型,所述学习模型包括所述多组人脸属性的学习任务共享的网络部分以及每组人脸属性各自对应的特征属性子网络部分,所述多组人脸属性的学习任务通过所述共享的网络部分共享学习参数,所述每组人脸属性的学习任务通过各自对应的特征属性子网络部分对共享的学习参数进行调整。

然后获取含有多个人脸图像的人脸数据集,所述人脸数据集中每个人脸图像均携带有人脸属性类别标签;基于所述人脸数据集对所述学习模型进行迭代训练,当所述学习模型的迭代次数等于预设迭代次数时,输出训练好的人脸属性分类模型。

本实施例在训练人脸属性分类模型时,将不同的人脸属性根据语义相关程度进行分组,然后学习模型的共享的网络部分对所有人脸属性先共享所有特征进行学习,然后在由每组人脸属性对应的特征属性子网络部分,对语义相关的人脸属性的特定特征进行学习,对在共享的网络部分得到的共享的学习参数进行调整,实现对组内每个人脸属性预测任务的细化,可以提高得到的人脸分类模型的预测精度。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1示出了本申请实施例提供的人脸属性分类模型训练方法的步骤流程图;

图2示出了本申请实施例提供的学习模型的网络结构图;

图3示出了本申请实施例提供的人脸属性分类模型的示意图;

图4示出了本申请实施例提供的人脸属性分类方法的步骤流程图;

图5示出了本申请实施例提供的计算机设备的示意图;

图6示出了本申请实施例提供的非易失性可读存储介质的示意图;

图7示出了本申请实施例提供的计算处理设备的示意图。图7示出了本申请实施例提供的计算处理设备的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。

在对多个人脸属性进行分类时,现有的技术包括单任务学习人脸属性分类方法和多任务学习人脸属性分类,在单任务学习人脸属性分类方法中,需要对不同的人脸属性的分类任务分别建立对应模型,同时对每个分类模型进行独立计算,不但会浪费大量计算资源与存储成本,而且忽略了不同人脸属性的分类任务之间的关联。

而在现有的多任务学习人脸属性分类中,多任务学习学习的底层网络采用底层参数统一共享,顶层参数各个属性各自独立,并且底层共享的参数可能存在偏向于某一个任务,或者偏向某个任务的全局最优方向的风险;并且模型顶层各个属性任务在分裂后是独立,限制了任务之间的交互,也很难利用属性之间的相关性或者约束关系来进一步提升精度,甚至可能存在某个属性任务的样本数量比较少,导致对应任务顶层参数优化困难,模型的学习难度较高。

为了使得人脸属性分类模型的预测更加精准,本申请实施例提供一种人脸属性分类模型训练方法。

参照图1,示出了本申请实施例提供的一种人脸属性分类模型训练方法的步骤流程图,所述方法可以包括以下步骤:

S101:获取多个人脸属性,根据语义相关程度将所述多个人脸属性划分为多组人脸属性,所述多组人脸属性中每组人脸属性对应一个学习任务。

人脸属性反映的是人脸的局部特征或整体特征,有些人脸属性之间具有正相关性,例如一般双下巴和圆脸这两种人脸属性是正相关的,口红、眼妆、带项链、带耳环、长发、卷发以及齐刘海等人脸属性也是正相关的,均是女性的人脸特征,同样对人脸整体而言,眼妆与脸部化妆、长头发、卷发、女性等成正相关。

本方法中,基于不同人脸属性之间的语义相关程度,可以将多个人脸属性划分多组人脸属性,在一种可行的实施方式中,可以获取多组人脸属性各自对应的分组基准信息,根据每个人脸属性与所述多组人脸属性的分组基准信息之间的语义相关程度,将所述多个人脸属性划分为多组人脸属性。

分组基准信息用于包括人脸属性的描述信息或者人脸属性的位置信息,示例地,所述分组基准信息可以包括:男性、女性、胖、瘦、整体面部、人脸上部、人脸中部以及人脸下部,其中,男性、女性、胖和瘦是可以基于人脸属性得到的人物的描述信息,而整体面部、人脸上部、人脸中部以及人脸下部则是划分人脸属性在人脸上的位置信息。

本实施例中提供30个人脸属性包括腮胡、小胡子、短发、秃顶、浓密粗眉、打领带、口红、眼妆、带项链、带耳环、长发、卷发、齐刘海、圆脸、双下巴、尖下巴、颧骨凸出、脸颊凹陷、皮肤偏白、皮肤有皱纹、双眼皮、大眼睛、有黑眼圈、戴眼镜、高鼻子、尖鼻子、招风耳、厚嘴唇,樱桃小嘴、微笑唇。

通过语义相关程度的分析,腮胡、小胡子、短发、秃顶、浓密粗眉以及打领带这些人脸属性普遍是男性的特征,因此可以将这些人脸属性划分在一组。

示例地,对于30个人脸属性和8个分组基准信息,可以形成如下分组:

男性:络腮胡、小胡子、短发、秃顶、浓密粗眉、打领带;

女性:口红、眼妆、带项链、带耳环、长发、卷发、齐刘海;

胖:圆脸、双下巴;

瘦:尖下巴、颧骨凸出、脸颊凹陷;

整体面部:皮肤偏白、皮肤有皱纹;

人脸上部:双眼皮、大眼睛、有黑眼圈、戴眼镜;

人脸中部:高鼻子、尖鼻子、招风耳;

人脸下部:厚嘴唇,樱桃小嘴、微笑唇。

S102:构建所述多个人脸属性对应的学习模型,所述学习模型包括所述多组人脸属性的学习任务共享的网络部分以及每组人脸属性各自对应的特征属性子网络部分。

具体地,学习模型主要由用于共享特征学习的深度网络和用于特定类别特征学习的浅层子网络组成,示例地构建所述学习模型的共享的网络部分,所述共享的网络部分包括依次连接的主干网与共享网络;构建所述每组人脸属性各自对应的特征属性子网络部分,每个特征属性子网络部分均连接所述共享网络。

其中,所述多组人脸属性的学习任务通过所述共享的网络部分共享学习参数,所述每组人脸属性的学习任务通过各自对应的特征属性子网络部分对共享的学习参数进行调整。

在一种可行的实施方式中,考虑到多个任务一起学习时,通常默认每个人脸属性分类预测任务对学习模型的总损失函数的贡献是相同的,即通常是把所有任务的损失直接求和作为总损失;但是,不同任务的重要性是不同的,一般人脸属性特征更明显或影响更大的任务对应的损失权重应该更高,而有些人脸属性对最终人脸整体属性的影响较小则应该降低其对总损失函数的贡献。

因此本实施方式中,还在学习模型中构建了加权损失层,所述加权损失层连接多组特征属性子网络部分的输出端,所述加权损失层用于调节每个人脸属性的在训练过程中的损失权重。

参照图2,示出了本申请实施例提供的学习模型的网络结构图,具体地,图2中从模型的输入开始前向传播,前向传播通过学习模型的网络向前传播输入,逐层传播直到到达每组特征属性子网络部分的输出层,在反向传播中,基于学习模型预测值与真实值的差异作为验证误差,多次迭代,用学习模型的泛化能力和学习速度共同作用动态更新每个人脸属性的损失权重,进而可以通过传播加权训练损失来更新学习模型的参数。

学习模型的基本框架遵循硬参数共享(hard parameter sharing),学习模型的网络结构可以由残差网络Resnet50主干网、共享网络、多个特征属性分组子网络以及加权损失层组成,其中Resnet50主干网的基本网络结构包括卷积层、池化层、构建块层;具体依次连接顺序为:卷积层conv(64@7x7,64为卷积核个数,7x7为卷积核大小)、池化层pool(64@3x3)、构建块层A、构建块层B、构建块层B、构建块层A、构建块层B、构建块层B、构建块层A、构建块层B、构建块层B、构建块层A、构建块层B、构建块层B以及池化层Pool(2048@7x7),其中并且构建块层B对应的构建块数量可以分别为2,2,3,3,5,5,2,2;而共享网络和每个特征属性分组子网络可以分别由2个全连接层组成,并且每个特征属性分组子网络连接到共享网络的最后一个全连接层。

在其他实施方式中,学习模型还可以采用其他的网络架构,本实施例不做限制。

通过在对多个人脸属性进行分组基础上,学习模型结构以Resnet50作为主干网,加上用于共享特征学习的深度网络和用于特定类别特征学习的浅层特征属性分组子网络以及加权损失层组成,其中深度网络的所有任务底层参数统一共享,对所有人脸属性先共享所有特征进行学习,而顶层参数按照人脸属性分组,浅层特征属性分组子网络由每个分组的特定类别特征学习组成,分组内小范围共享进行参数,用来微调共享特征,实现对组内单个人脸属性预测任务的细化,既可以保留部分参数共享,又保持组间信息独立。

S103:获取含有多个人脸图像的人脸数据集,所述人脸数据集中每个人脸图像均携带有人脸属性类别标签。

基于深度学习的多任务人脸属性分类模型训练需要收集一定量的人脸图像作为人脸数据集,在创建人脸数据集时,人脸图像应包含多种丰富场景,如涵盖了不同姿势、面部表情、拍照角度、照明变化、遮挡、年龄变化以及分辨率等信息,也应包含不同人种不同性别、不同年龄、不同高矮胖瘦以及不同肤色等,人脸图像的种类越丰富,则训练得到的人脸属性分类模型的预测精度越高。

然后对于收集到的人脸图像进行标记,为人脸属性添加类别标签,示例地,可以对所述人脸数据集中每个人脸图像标记该人脸图像中包含的所有人脸属性,使得可供学习模型学习的人脸属性的样本数据更丰富。

假设人脸属性包括:络腮胡、小胡子、短发、秃顶、浓密粗眉、打领带、口红、眼妆、带项链、带耳环、长发、卷发、齐刘海、圆脸、双下巴、尖下巴、颧骨凸出、脸颊凹陷、皮肤偏白、皮肤有皱纹、双眼皮、大眼睛、有黑眼圈、戴眼镜、高鼻子、尖鼻子、招风耳、厚嘴唇,樱桃小嘴、微笑唇;人脸数据集中包含N张人脸图像,M个人脸属性类别,类别标签的分配方法可以从1到M,也可以采用其他类别标签分配方式,例如:0到M-1;本实施例不限制标签的分配方式;为了训练出高精度的人脸属性分类模型,人脸数据集可以至少包含10万张人脸图像以及1万个不同身份。

然后将上述人脸属性从1~M(M=30)进行标记序号,设人脸数据集D有N张训练人脸图像和M种人脸属性,则可以将人脸数据集表示为:D={X,Y},其中X表示人脸数据集的人脸图像,第

可以用

S104:基于所述人脸数据集对所述学习模型进行迭代训练,当所述学习模型的迭代次数等于预设迭代次数时,输出训练好的人脸属性分类模型。

首先,将人脸数据集进行划分,分为人脸训练数据集、人脸验证数据集以及人脸测试训练集,虽然人脸训练数据集和人脸验证数据集中每一个图片不需要包含所有类型的人脸属性,示例地,一张人脸图片中可以只包含30种人脸属性中的几种,但是人脸训练数据集和人脸验证数据集的图片应该覆盖所有种类的人脸属性的类型标签,可以按照标准分割方式,将所述人脸数据集中60%的人脸图像作为人脸训练数据集;将所述人脸数据集中20%的人脸图像作为人脸验证数据集;将剩余的20%的人脸图像作人脸测试训练集,并且所述人脸验证数据集中每个人脸属性对应的类别标签数量不低于所述人脸训练数据集中该人脸属性的类别标签数量的三分之一。

接着,可以采用批量随机梯度下降方法来训练学习模型,在梯度更新迭代之前,学习模型需要初始化梯度下降算法,设定训练周期epoch以及批次batch_size,权重更新周期t以及完成训练的预设迭代次数,其中权重更新周期是指模型训练时每迭代t次更新一次各个人脸属性的损失权重。

示例地,假设人脸训练数据集中样本总数为6万,学习模型被训练至少100个训练周期epoch,一个epoch是指不重复的利用训练数据集中的全部训练样本来训练模型的神经网络的模型参数,每次取一个批次(batch)数据用于更新模型的神经网络的模型参数,即完成一次训练的过程,将迭代次数+1。

假设在梯度更新迭代过程中,每次迭代更新时一个批次(batch)的样本数量为500,即batchsize=500个,迭代次数iteration是指使用batchsize个样本训练的次数,完成一个epoch的迭代次数为:iteration=60000/500=120。

在确定好学习模型的网络结构后,可以确定学习模型目标函数,具体地,包括定义所述每组人脸属性的学习任务各自对应的单任务属性目标函数,以及定义所述多组人脸属性的学习任务对应的多任务属性目标函数。

在一种可行的实施方式中,学习模型对于任一个人脸属性的预测对应一个二分类任务,通过神经网络输出结果的函数表现形式为:

其中,

在一种可行的实施方式中,对于任一个人脸属性的损失函数为:

其中,

接着,每组人脸属性的学习任务各自对应的单任务属性目标函数可以定义为:

其中,

然后,在定义多组人脸属性的学习任务对应的多任务属性目标函数时,如果每个人脸属性对应一个目标函数进行多任务学习,则M个人脸属性对应M个二分类任务,对应的多任务属性目标函数可以表示为:

其中,

进一步考虑到人脸属性之间的关系,通过对不同人脸属性进行分组,将参数进一步细化更新,因此可以增加不同人脸属性之间特征共享的控制,具体地,用共享深度网络Wc控制参数之间的共享,人脸图像由复杂非线性映射级联组成的共享深度网络Wc将人脸映射到高级表示,然后通过子网络{Wj}对各个人脸属性任务进行细化,其中,

因此,可以进一步将多任务属性目标函数表示为:

其中,

还因为不同的人脸属性的损失对于学习模型的总损失的贡献程度不同,因此还可以加入损失权重,M个人脸属性的损失权重可以表示为权重系数向量λ={λ1,λ2,…,λM},并且所述学习模型对所述每个人脸属性的损失权重的初始值均设置为1。

在更新每个人脸属性对应的损失权重时,可以用学习模型的泛化能力和学习速度来更新,泛化能力化可以衡量学习模型对没有出现过的新样本的预测表现,即学习模型举一反三的能力,将每个人脸属性分类的任务的泛化能力作为任务重要性的衡量标准,每个人脸属性任务对应一个损失函数,可以对泛化能力较低的任务训练模型设置更高的权重,而对泛化能力较强的任务训练模型设置较低的权重,每个人脸属性的泛化能力可以通过验证集来衡量。

实际实施的过程中,学习模型对每个人脸属性分类的任务的学习速度不同,有的较快有的较慢,可以对学习速度快的分配较小的损失权重,学习速度慢的分配较大的损失权重,进而可以使不同的人脸属性分类的任务的学习速度保持一致。

在一种可行的实施方式中,在对学习模型迭代训练的过程中,基于所述人脸训练数据集对所述学习模型进行迭代训练,并在迭代过程中根据所述学习模型对于所述人脸验证数据集的验证损失,调节所述学习模型对所述每个人脸属性的损失权重,基于调整后的损失权重更新所述学习模型的网络参数。

具体地,可以每基于所述人脸训练数据集中的一批次人脸图像对所述学习模型进行一次训练后,将所述人脸验证数据集中一批次人脸图像输入当前所述学习模型中,得到并记录当前所述学习模型对于所述每个人脸属性的验证损失;当所述学习模型迭代次数满足预设的权重更新周期时,根据所述学习模型在所述权重更新周期内每次对所述每次人脸属性的验证损失,确定所述每个人脸属性对应的泛化系数与学习速度;根据所述每个人脸属性对应的泛化系数与学习速度,将所述泛化系数与所述学习速度的商作为所述每个人脸属性对应的损失权重。

在一种可行的实施方式中,将所述人脸训练数据集中的一批次人脸图像和所述人脸验证数据集中一批次人脸图像均输入所述学习模型中,基于所述人脸训练数据集中的一批次人脸图像对学习模型进行一次训练,得到并记录当前所述学习模型对所述人脸验证数据集中一批次人脸图像中每个人脸属性的验证损失。

具体地,每次分别从人脸训练数据集和人脸验证数据集选取一个批次(batch)人脸图像输入学习模型,利用人脸训练数据集的一批次人脸图像对学习模型进行一次训练,训练损失train Loss,然后再计算本次训练完毕的学习模型在人脸验证数据集中一批次人脸图像中每个人脸属性的验证损失,在实际实施时,可以将每次计算得到的验证损失valLoss保存到val Loss list中。

当所述学习模型的迭代次数c为预设的权重更新周期t的整数倍且c>2*t时,则可以更新权重向量λ={λ1,λ2,…,λM},并使用更新的权重向量来计算后续学习模型在根据人脸训练数据集上的损失并在反向传播过程中更新模型的网络参数。

权重向量取决于学习模型对于每个任务的泛化能力和学习速度,可以通过验证损失的变化趋势衡量出泛化能力,然后对泛化能力较低的任务设置更高的权重,对泛化能力较强的任务训练模型设置较低的权重,另一方面,通过对当前验证损失与初始验证损失的比值来衡量学习速度,对于学习速度快的任务可以设置较低的权重,对于学习速度较慢的任务可以设置更高的权重,以使得使不同任务之间的学习速度保持一致。

在更新权重向量时,对于任一人脸属性的验证损失,计算第c-t次到第c次区间内所有验证损失的第一验证损失均值,记为avg_curLoss;计算第c-2t次到第c-t次区间内所有验证损失的第二验证损失均值,记为avg_preLoss;例如,c=2*t时,则avg_preLoss为第1次到t+1次的验证损失均值,avg_curLoss为第t+1次到2t+1次的验证损失均值。

然后基于所述第一验证损失均值和所述第二验证损失均值,确定该人脸属性对应的损失变化率,对所述损失变化率进行归一化后得到该人脸属性对应的泛化系数。

具体地,损失变化率的计算公式为:

然后,将第

从而可以得到一个所有人脸属性的泛化系数组成的M维的泛化系数向量G={g1,g2,……,gM}。

然后,根据第c次对应的验证损失和第1次训练过程得到的验证损失,确定该人脸属性对应的学习速度,将第j个人脸属性的学习速度记作 learn rate j(j=1,2,…,M),用第c次,即用当前训练后的学习模型得到的验证损失curLoss和第1次初始firstLoss的比值作为学习速度,公式如下:

每个人脸属性都对应一个learn_rate,一共有M个,然后将M个learn_rate归一化记作norm_learn_rate,将第j个人脸属性的norm_learn_rate记作lj,所有人脸属性的学习速度按照上述公式更新后,即可以得到一个M维的学习速度向量L={l1,l2,……,lM}。

最后,将所述泛化系数与所述学习速度的商作为该人脸属性对应的损失权重,即:λj= gj/lj (j=1,2,…,M),从而每个人脸属性的损失权重更新完毕。

按照损失权重动态更新的过程对学习模型进行训练,直到对学习模型的训练次数等于预设迭代次数时,输出训练好的人脸属性分类模型,预设迭代次数可以根据实际训练的需求进行设置,本申请实施例不做限制。

本实施例在训练人脸属性分类模型时,将不同的人脸属性根据语义相关程度进行分组,然后学习模型的共享的网络部分对所有人脸属性先共享所有特征进行学习,然后在由每组人脸属性对应的特征属性子网络部分,对语义相关的人脸属性的特定特征进行学习。

从而对在共享的网络部分得到的共享的学习参数进行调整,实现对组内每个人脸属性预测任务的细化;相比传统的多任务学习网络模型,本方法的人脸属性分类模型采用底层所有参数共享,顶层按分组关系局部共享参数,并且通过迭代训练时计算每个任务的泛化能力和学习速度动态调节每个任务的权重系数,从而选出最优解的loss权重组合,可以提高得到的人脸分类模型的预测精度。

最后,由于每个任务的重要性不同、对整体影响的贡献不同,模型的学习能力也不同,直接对loss相加可能导致多任务学习被某个任务主导或者学偏,因此还提出了在学习模型的训练过程中动态调节每个人脸属性的损失权重的算法,基于在模型训练时,同时输入人脸训练数据集和人脸验证数据集,在训练迭代的过程中利用人脸验证数据集的样本计算验证损失,通过每个任务后t次验证损失函数均值和前t次验证损失函数均值的变化来验证该任务的泛化能力,给泛化能力较低的人脸属性分类的任务提高权重或赋予更高的优先级,权重系数体现了泛化能力和学习速度并可以作用到训练损失上,在反向传播时,通过传播加权训练损失来更新学习模型的网络参数,从而实现平衡各个人脸属性的分类子任务的损失对多任务联合学习的总损失的贡献,进一步提高了得到的人脸属性分类模型的精度。

参照图3,示出了本申请实施例提供的一种人脸属性分类模型的示意图,所述人脸属性分类模型是基于实施例所述的训练方法训练得到的,所述分类模型包括:多组人脸属性的学习任务共享的网络部分以及每组人脸属性各自对应的特征属性子网络部分,所述多组人脸属性的学习任务通过所述共享的网络部分共享学习参数,所述每组人脸属性的学习任务通过各自对应的特征属性子网络部分对共享的学习参数进行调整。

所述共享的网络部分包括主干网和共享网络,所述主干网的输出端连接所述共享网络,所述共享网络的输出端连接每组人脸属性各自对应的特征属性子网络部分,示例地,所述主干网采用Resnet50结构,所述共享网络和每个特征属性子网络均包括2个全连接层。

参照图4,示出了本申请实施例提供的一种人脸属性分类方法的步骤流程图,所述方法包括:

S201:获取待分类的人脸图像。

S202:将所述待分类的人脸图像输入如实施例所述的人脸属性分类模型中,所述人脸属性分类模型输出所述待分类的人脸图像中包含的所有人脸属性。

参照图5,示出了本申请实施例提供的一种计算机设备的示意图,计算机设备501包括:至少一个处理器520,以及存储器510,所述存储器510存储有可在所述处理器上运行的计算机程序511,其中,所述处理器执行所述计算机程序时执行如以下过程:获取多个人脸属性,根据语义相关程度将所述多个人脸属性划分为多组人脸属性;然后构建所述多个人脸属性对应的学习模型,所述学习模型包括所述多组人脸属性的学习任务共享的网络部分以及所述每组人脸属性各自对应的特征属性子网络部分,所述多组人脸属性的学习任务通过所述共享的网络部分共享学习参数,所述每组人脸属性的学习任务通过各自对应的特征属性子网络部分对共享的学习参数进行调整;然后获取含有多个人脸图像的人脸数据集,所述人脸数据集中每个人脸图像均携带有人脸属性类别标签;基于所述人脸数据集对所述学习模型进行迭代训练,当所述学习模型的迭代次数等于预设迭代次数时,输出训练好的人脸属性分类模型。

参照图6,示出了本申请实施例提供的一种非易失性可读存储介质的示意图,所述非易失性可读存储介质601中存储有计算机程序610,其中,所述计算机程序610被处理器执行时执行以下过程:获取多个人脸属性,根据语义相关程度将所述多个人脸属性划分为多组人脸属性;然后构建所述多个人脸属性对应的学习模型,所述学习模型包括所述多组人脸属性的学习任务共享的网络部分以及所述每组人脸属性各自对应的特征属性子网络部分,所述多组人脸属性的学习任务通过所述共享的网络部分共享学习参数,所述每组人脸属性的学习任务通过各自对应的特征属性子网络部分对共享的学习参数进行调整;然后获取含有多个人脸图像的人脸数据集,所述人脸数据集中每个人脸图像均携带有人脸属性类别标签;基于所述人脸数据集对所述学习模型进行迭代训练,当所述学习模型的迭代次数等于预设迭代次数时,输出训练好的人脸属性分类模型。

参照图7,示出了本申请实施例提供的一种计算处理设备的示意图,包括:

一个或多个处理器710和存储器720,其中存储器720存储有计算机可读代码;当所述计算机可读代码被所述一个或多个处理器执行时,所述计算处理设备执行实施例所述的人脸属性分类模型训练方法,示例地,执行以下过程:以下过程:获取多个人脸属性,根据语义相关程度将所述多个人脸属性划分为多组人脸属性;然后构建所述多个人脸属性对应的学习模型,所述学习模型包括所述多组人脸属性的学习任务共享的网络部分以及所述每组人脸属性各自对应的特征属性子网络部分,所述多组人脸属性的学习任务通过所述共享的网络部分共享学习参数,所述每组人脸属性的学习任务通过各自对应的特征属性子网络部分对共享的学习参数进行调整;然后获取含有多个人脸图像的人脸数据集,所述人脸数据集中每个人脸图像均携带有人脸属性类别标签;基于所述人脸数据集对所述学习模型进行迭代训练,当所述学习模型的迭代次数等于预设迭代次数时,输出训练好的人脸属性分类模型。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 二分类模型训练方法、数据分类方法及对应装置
  • 一种分类模型的训练方法和装置
  • 一种文本情绪分类模型建立方法及文本情绪分类方法
  • 合同公章分类模型的训练方法、系统和识别方法、系统
  • 一种分类模型优化方法、装置及存储设备、程序产品
  • 疾病分类模型的训练方法、疾病分类的方法及相关产品
  • 轨迹分类方法、轨迹分类模型训练方法及计算机程序产品
技术分类

06120116488172