头发分类方法、装置、设备及存储介质转让专利

申请号 : CN202210033340.9

文献号 : CN114093011B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 苗锋刘聪杨浩杰张梦洁

申请人 : 北京新氧科技有限公司

摘要 :

本申请提出一种头发分类方法、装置、设备及存储介质,该方法包括:获取训练集,训练集包括多个标注有头发类别的人脸头像图片;根据人脸头像图片对应的头发区域,对人脸头像图片进行数据增强处理;根据数据增强处理后的人脸头像图片,对预设分类网络进行训练,得到训练好的头发分类模型。本申请基于语义分割结果来标注头发类别,提高了标注的准确性,加快标注速度,缩短获得训练集的时间。基于语义分割结果进行数据增强,增加数据多样性,提高正确的难样本比例,提高模型性能。在虚拟换装之前先利用头发分类模型识别用户图像对应的头发类别,基于识别的头发类别采取相应的措施能够减少头发类别对换装效果的不良影响,提高换装效果。

权利要求 :

1.一种头发分类方法,其特征在于,包括:获取训练集,所述训练集包括多个标注有头发类别的人脸头像图片;所述人脸头像图片为从对齐后的原人物图像中裁剪人脸头像得到的;

根据所述人脸头像图片对应的头发区域,对所述人脸头像图片进行数据增强处理;

根据数据增强处理后的人脸头像图片,对预设分类网络进行训练,得到训练好的头发分类模型;

其中,所述根据所述人脸头像图片对应的头发区域,对所述人脸头像图片进行数据增强处理,包括:

通过预设语义分割模型从所述人脸头像图片中分割出头发区域;确定所述头发区域的宽度;采用预设数据增强算法在所述头发区域中掩盖或擦除部分像素区域,所述部分像素区域的面积小于或等于所述头发区域的宽度与预设比例的乘积,经过数据增强处理后的图片仍具有和数据增强处理之前一致的头发类别。

2.根据权利要求1所述的方法,其特征在于,所述获取训练集,包括:获取包含人脸头像的人物图像;

根据所述人物图像对应的人脸关键点,对所述人物图像进行人脸对齐处理;

从对齐后的所述人物图像中截取出所述人脸头像对应的人脸头像图片;

基于预设语义分割模型,在所述人脸头像图片中标注头发类别;

将标注了头发类别的人脸头像图片组成训练集。

3.根据权利要求2所述的方法,其特征在于,所述基于预设语义分割模型,在所述人脸头像图片中标注头发类别,包括:通过预设语义分割模型对所述人脸头像图片进行语义分割,得到所述人脸头像图片包括的头发区域和衣服区域;

根据所述头发区域和所述衣服区域,确定所述头发区域对应的头发类别;

在所述人脸头像图片中标注出确定的所述头发类别。

4.根据权利要求3所述的方法,其特征在于,所述根据所述头发区域和所述衣服区域,确定所述头发区域对应的头发类别,包括:若所述头发区域和所述衣服区域不相邻,则确定所述头发区域对应的头发类别为短发;

若所述头发区域和所述衣服区域相邻,则根据所述头发区域和所述衣服区域,分别确定出人脸左侧的头发对应的头发类别及人脸右侧的头发对应的头发类别。

5.根据权利要求4所述的方法,其特征在于,所述根据所述头发区域和所述衣服区域,分别确定出人脸左侧的头发对应的头发类别及人脸右侧的头发对应的头发类别,包括:确定所述衣服区域最上侧的边界线及所述衣服区域的竖直中轴线;

统计所述边界线以下所述竖直中轴线左侧的第一头发像素面积以及所述边界线以下所述竖直中轴线右侧的第二头发像素面积;

计算所述第一头发像素面积与所述边界线以下所述竖直中轴线左侧的衣服像素面积之间的第一比值;计算所述第二头发像素面积与所述边界线以下所述竖直中轴线右侧的衣服像素面积之间的第二比值;

若所述第一比值大于预设阈值,则确定人脸左侧的头发对应的头发类别为左侧向前批发;否则,确定人脸左侧的头发对应的头发类别为左侧向后批发;

若所述第二比值大于所述预设阈值,确定人脸右侧的头发对应的头发类别为右侧向前批发;否则,确定人脸右侧的头发对应的头发类别为右侧向后批发。

6.根据权利要求2‑5任一项所述的方法,其特征在于,所述基于预设语义分割模型,在所述人脸头像图片中标注头发类别之前,还包括:确定所述人脸头像图片中人脸头像的竖直中轴线;

沿所述人脸头像的竖直中轴线将所述人脸头像图片分割为左半部分的人脸头像图片和右半部分的人脸头像图片。

7.根据权利要求1‑5任一项所述的方法,其特征在于,所述根据数据增强处理后的人脸头像图片,对预设分类网络进行训练,得到训练好的头发分类模型,包括:将数据增强后所述训练集中包括的人脸头像图片输入预设分类网络中,得到每个人脸头像图片对应的分类结果;

根据每个人脸头像图片中标注的头发类别和每个人脸头像图片对应的分类结果,计算当前训练周期的损失值;

判断当前训练周期的损失值与上一训练周期的损失值之间的差值是否小于阈值;

如果是,根据所述预设分类网络和当前训练周期的训练参数,得到训练好的头发分类模型;

如果否,则返回执行所述将数据增强后所述训练集中包括的人脸头像图片输入预设分类网络中的操作,循环训练直至得到训练好的所述头发分类模型。

8.根据权利要求1‑5任一项所述的方法,其特征在于,所述得到训练好的头发分类模型之后,还包括:

获取待分类的用户图像;

根据所述用户图像的人脸关键点,对所述用户图像进行人脸对齐处理;

从对齐后的所述用户图像中截取出用户人脸头像图片;

将所述用户人脸头像图片输入训练好的所述头发分类模型中,输出所述用户图像对应的头发类别。

9.一种头发分类装置,其特征在于,包括:获取模块,用于获取训练集,所述训练集包括多个标注有头发类别的人脸头像图片;所述人脸头像图片为从对齐后的原人物图像中裁剪人脸头像得到的;

数据增强模块,用于根据所述人脸头像图片对应的头发区域,对所述人脸头像图片进行数据增强处理;

模型训练模块,用于根据数据增强处理后的人脸头像图片,对预设分类网络进行训练,得到训练好的头发分类模型;

所述数据增强模块,具体用于通过预设语义分割模型从所述人脸头像图片中分割出头发区域;确定所述头发区域的宽度;采用预设数据增强算法在所述头发区域中掩盖或擦除部分像素区域,所述部分像素区域的面积小于或等于所述头发区域的宽度与预设比例的乘积,经过数据增强处理后的图片仍具有和数据增强处理之前一致的头发类别。

10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序以实现如权利要求1‑8任一项所述的方法。

11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行实现如权利要求1‑8中任一项所述的方法。

说明书 :

头发分类方法、装置、设备及存储介质

技术领域

[0001] 本申请属于图像处理技术领域,具体涉及一种头发分类方法、装置、设备及存储介质。

背景技术

[0002] 虚拟换装是指将用户图像中的服装图像替换为服装模板图像中的服装图像。若用户图像中头发为披肩发,则换装后头发区域和服装之间可能出现缝隙,影响换装效果。因此
在换装之前需要先识别用户图像中的头发类别,然后才能依据头发类别采取相应措施减少
头发类别对换装效果的影响。

发明内容

[0003] 本申请提出头发分类方法、装置、设备及存储介质,根据头发区域对训练集中的人脸头像图像进行数据增强,增加数据多样性,提高正确的难样本比例,提高模型性能。在虚
拟换装之前先利用训练的头发分类模型识别头发类别,基于识别的头发类别采取相应的措
施能够减少头发类别对换装效果的不良影响,提高换装效果。
[0004] 本申请第一方面实施例提出了头发分类方法,包括:
[0005] 获取训练集,所述训练集包括多个标注有头发类别的人脸头像图片;
[0006] 根据所述人脸头像图片对应的头发区域,对所述人脸头像图片进行数据增强处理;
[0007] 根据数据增强处理后的人脸头像图片,对预设分类网络进行训练,得到训练好的头发分类模型。
[0008] 在本申请的一些实施例中,所述获取训练集,包括:
[0009] 获取包含人脸头像的人物图像;
[0010] 根据所述人物图像对应的人脸关键点,对所述人物图像进行人脸对齐处理;
[0011] 从对齐后的所述人物图像中截取出所述人脸头像对应的人脸头像图片;
[0012] 基于预设语义分割模型,在所述人脸头像图片中标注头发类别;
[0013] 将标注了头发类别的人脸头像图片组成训练集。
[0014] 在本申请的一些实施例中,所述基于预设语义分割模型,在所述人脸头像图片中标注头发类别,包括:
[0015] 通过预设语义分割模型对所述人脸头像图片进行语义分割,得到所述人脸头像图片包括的头发区域和衣服区域;
[0016] 根据所述头发区域和所述衣服区域,确定所述头发区域对应的头发类别;
[0017] 在所述人脸头像图片中标注出确定的所述头发类别。
[0018] 在本申请的一些实施例中,所述根据所述头发区域和所述衣服区域,确定所述头发区域对应的头发类别,包括:
[0019] 若所述头发区域和所述衣服区域不相邻,则确定所述头发区域对应的头发类别为短发;
[0020] 若所述头发区域和所述衣服区域相邻,则根据所述头发区域和所述衣服区域,分别确定出人脸左侧的头发对应的头发类别及人脸右侧的头发对应的头发类别。
[0021] 在本申请的一些实施例中,所述根据所述头发区域和所述衣服区域,分别确定出人脸左侧的头发对应的头发类别及人脸右侧的头发对应的头发类别,包括:
[0022] 确定所述衣服区域最上侧的边界线及所述衣服区域的竖直中轴线;
[0023] 统计所述边界线以下所述竖直中轴线左侧的第一头发像素面积以及所述边界线以下所述竖直中轴线右侧的第二头发像素面积;
[0024] 计算所述第一头发像素面积与所述边界线以下所述竖直中轴线左侧的衣服像素面积之间的第一比值;计算所述第二头发像素面积与所述边界线以下所述竖直中轴线右侧
的衣服像素面积之间的第二比值;
[0025] 若所述第一比值大于预设阈值,则确定人脸左侧的头发对应的头发类别为左侧向前批发;否则,确定人脸左侧的头发对应的头发类别为左侧向后批发;
[0026] 若所述第二比值大于所述预设阈值,确定人脸右侧的头发对应的头发类别为右侧向前批发;否则,确定人脸右侧的头发对应的头发类别为右侧向后批发。
[0027] 在本申请的一些实施例中,所述基于预设语义分割模型,在所述人脸头像图片中标注头发类别之前,还包括:
[0028] 确定所述人脸头像图片中人脸头像的竖直中轴线;
[0029] 沿所述人脸头像的竖直中轴线将所述人脸头像图片分割为左半部分的人脸头像图片和右半部分的人脸头像图片。
[0030] 在本申请的一些实施例中,所述根据所述人脸头像图片对应的头发区域,对所述人脸头像图片进行数据增强处理,包括:
[0031] 通过预设语义分割模型从所述人脸头像图片中分割出头发区域;
[0032] 确定所述头发区域的宽度;
[0033] 采用预设数据增强算法在所述头发区域中掩盖或擦除部分像素区域,所述部分像素区域的面积小于或等于所述头发区域的宽度与预设比例的乘积。
[0034] 在本申请的一些实施例中,所述根据数据增强处理后的人脸头像图片,对预设分类网络进行训练,得到训练好的头发分类模型,包括:
[0035] 将数据增强后所述训练集中包括的人脸头像图片输入预设分类网络中,得到每个人脸头像图片对应的分类结果;
[0036] 根据每个人脸头像图片中标注的头发类别和每个人脸头像图片对应的分类结果,计算当前训练周期的损失值;
[0037] 判断当前训练周期的损失值与上一训练周期的损失值之间的差值是否小于阈值;
[0038] 如果是,根据所述预设分类网络和当前训练周期的训练参数,得到训练好的头发分类模型;
[0039] 如果否,则返回执行所述将数据增强后所述训练集中包括的人脸头像图片输入预设分类网络中的操作,循环训练直至得到训练好的所述头发分类模型。
[0040] 在本申请的一些实施例中,所述得到训练好的头发分类模型之后,还包括:
[0041] 获取待分类的用户图像;
[0042] 根据所述用户图像的人脸关键点,对所述用户图像进行人脸对齐处理;
[0043] 从对齐后的所述用户图像中截取出用户人脸头像图片;
[0044] 将所述用户人脸头像图片输入训练好的所述头发分类模型中,输出所述用户图像对应的头发类别。
[0045] 本申请第二方面的实施例提供了一种头发分类装置,包括:
[0046] 获取模块,用于获取训练集,所述训练集包括多个标注有头发类别的人脸头像图片;
[0047] 数据增强模块,用于根据所述人脸头像图片对应的头发区域,对所述人脸头像图片进行数据增强处理;
[0048] 模型训练模块,用于根据数据增强处理后的人脸头像图片,对预设分类网络进行训练,得到训练好的头发分类模型。
[0049] 本申请第三方面的实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序以实
现上述第一方面所述的方法。
[0050] 本申请第四方面的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现上述第一方面所述的方法。
[0051] 本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
[0052] 在本申请实施例中,基于对人脸头像图片的语义分割结果来标注头发类别,提高了头发类别标注的准确性,加快了图像标注的速度,能缩短获得训练集的时间。基于人脸头
像图片的语义分割结果进行数据增强处理,增加了数据的多样性,提高了训练集中正确的
难样本比例,提高了头发分类模型的性能。应用训练得到的头发分类模型进行头发分类能
够迅速准确地识别出人物图像中的头发类别。在虚拟换装之前先利用头发分类模型识别用
户图像对应的头发类别,基于识别的头发类别采取相应的措施能够减少头发类别对换装效
果的不良影响,提高换装效果。
[0053] 本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变的明显,或通过本申请的实践了解到。

附图说明

[0054] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请
的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0055] 图1示出了本申请一实施例所提供的一种头发分类方法的流程图;
[0056] 图2示出了本申请一实施例所提供的EfficientNet‑B0的网络结构示意图;
[0057] 图3示出了本申请一实施例所提供的头发分类在虚拟换装场景中进行应用的流程示意图;
[0058] 图4示出了本申请一实施例所提供的一种头发分类装置的结构示意图;
[0059] 图5示出了本申请一实施例所提供的一种电子设备的结构示意图;
[0060] 图6示出了本申请一实施例所提供的一种存储介质的示意图。

具体实施方式

[0061] 下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实
施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申
请的范围完整的传达给本领域的技术人员。
[0062] 需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。
[0063] 下面结合附图来描述根据本申请实施例提出的头发分类方法、装置、设备及存储介质。
[0064] 在虚拟换装场景中,若用户图像中头发为披肩发,则换装后头发区域和服装之间可能出现缝隙,影响换装效果。因此在换装之前需要先识别用户图像中的头发类别,然后才
能依据头发类别采取相应措施减少头发类别对换装效果的影响。但相关技术中还没有针对
此场景下的头发类别识别方案,若直接应用现有的分类方案,存在代码逻辑复杂,需要大量
调试,误识别率较高的问题。
[0065] 基于此,本申请实施例提供了一种头发分类方法,该方法在获取训练集的过程中基于对人脸头像图片的语义分割结果来标注头发类别,提高了头发类别标注的准确性,加
快了图像标注的速度。基于人脸头像图片的语义分割结果进行数据增强处理,提高了训练
集中正确的难样本的比例,通过数据增强后的训练集来训练头发分类模型,提高了头发分
类模型的性能。应用训练得到的头发分类模型进行头发分类能够迅速准确地识别出人物图
像中的头发类别。在虚拟换装之前先利用头发分类模型识别用户图像对应的头发类别,基
于识别的头发类别采取相应的措施能够减少头发类别对换装效果的不良影响,提高换装效
果。
[0066] 参见图1,该方法具体包括以下步骤:
[0067] 步骤101:获取训练集,该训练集包括多个标注有头发类别的人脸头像图片。
[0068] 首先获取大量包含人脸头像的人物图像。对于获取的每个人物图像,采用预设人脸关键点检测模型识别人物图像中的所有人脸关键点。本申请预先设置了标准人脸图像,
并标注了该标准人脸图像中的每个标准人脸关键点。根据识别的该人物图像对应的人脸关
键点,对人物图像进行人脸对齐处理。即将该人物图像中的人脸关键点与预设的标准人脸
图像中的标准人脸关键点对齐,具体可以将人物图像中五官的多个人脸关键点与预设的标
准人脸图像中对应的标准人脸关键点对齐。例如,将人物图像的两个嘴角处、鼻尖、左右眼
中心及两个眉毛中心的人脸关键点分别与预设的标准人脸图像中的对应的人脸关键点对
齐。
[0069] 将人物图像与标准人脸图像对齐后,从对齐后的人物图像中截取出人脸头像对应的人脸头像图片。然后基于预设语义分割模型,在人脸头像图片中标注头发类别。将标注了
头发类别的人脸头像图片组成训练集。
[0070] 预设语义分割模型可以包括U‑Net、FCN(Fully Convolution Network,全卷积网络)、SegNet等。
[0071] 具体地,通过预设语义分割模型对人脸头像图片进行语义分割,得到人脸头像图片包括的头发区域和衣服区域。根据头发区域和衣服区域,确定头发区域对应的头发类别。
然后在人脸头像图片中标注出确定的头发类别。
[0072] 在虚拟换装场景下,若原图片是短发,则头发区域不需要进行拉伸变形,即可得到很好的换装效果。若原图片是长发披到前面的,将服装模板图片换装覆盖到原图片中后,头
发区域和服装区域之间不会出现缝隙,因此头发区域不需要进行拉伸变形,即可得到很好
的换装效果。原图片是长发披到后面的情况,换妆后头发和服装之间可能会出现缝隙,在此
情况下若将头发区域进行拉伸变形,可以改善换装效果,因此这种情况需要单独考虑,用户
左右肩膀两侧,头发前披或后披,或者头发缕到一边,这些情况均需要单独考虑。
[0073] 基于上述换装场景中不同头发类别对换装效果的不同影响,本申请实施例中将头发类别划分为短发(头发不超过肩部的上边界)、左侧向前披发、右侧向前批发、左侧向后披
发、右侧向后批发共5种类别。本申请实施例并不限制头发分类的具体划分方式,实际应用
中头发类别的划分还可以有其他形式。
[0074] 上述通过预设语义分割模型分割出头发区域和衣服区域之后,首先判断头发区域和衣服区域是否相邻,即头发区域最下端处于边缘的像素是否与衣服区域最上端处于边缘
的像素相邻。若确定头发区域和衣服区域不相邻,则确定头发区域对应的头发类别为短发。
若确定头发区域和衣服区域相邻,则确定人脸头像图片中的头发为长发。
[0075] 进一步根据头发区域和衣服区域,分别确定出人脸左侧的头发对应的头发类别及人脸右侧的头发对应的头发类别。具体地,确定衣服区域最上侧的边界线及衣服区域的竖
直中轴线。统计边界线以下竖直中轴线左侧的第一头发像素面积。计算第一头发像素面积
与边界线以下竖直中轴线左侧的衣服像素面积之间的第一比值。若第一比值大于预设阈
值,则确定人脸左侧的头发对应的头发类别为左侧向前批发。否则,确定人脸左侧的头发对
应的头发类别为左侧向后批发。
[0076] 同样地,统计边界线以下竖直中轴线右侧的第二头发像素面积。计算第二头发像素面积与边界线以下竖直中轴线右侧的衣服像素面积之间的第二比值。若第二比值大于预
设阈值,确定人脸右侧的头发对应的头发类别为右侧向前批发。否则,确定人脸右侧的头发
对应的头发类别为右侧向后批发。
[0077] 通过上述方式确定出人脸头像图片对应的头发类别之后,在人脸头像图片中标注出确定的头发类别。若确定出的头发类别为短发,则在人脸头像图片中标注短发。若确定出
头发为长发,则进一步分别确定出左右两侧的头发类别,如左侧向前批发及右侧向后批发,
或左侧向后批发及右侧向前批发,或左右两侧均为向前批发,或左右两侧均为向后批发。将
确定出的左右两侧的头发类别均标注在人脸头像图片中。
[0078] 在另一些实施例中,在基于预设语义分割模型在人脸头像图片中标注头发类别之前,还确定人脸头像图片中人脸头像的竖直中轴线,沿该竖直中轴线将人脸头像图片分割
为左半部分的人脸头像图片和右半部分的人脸头像图片。即将人脸头像图片均分为左半图
像和右半图像。后续按照上述方式通过预设语义分割模型分别对左半图像和右半图像进行
语义分割,然后基于分割结果分别确定左半图像中的头发类别并进行标注,以及确定右半
图像中的头发类别并进行标注。将大量标注后的左半图像和右半图像组成训练集。在此实
施例中具体地头发类别的确定方式与上文所述方式相同,在此不再赘述。
[0079] 在上述任一实现方式中,在人脸头像图片中标注头发类别之后,还可以采用人工来检查标注的头发类别是否正确,并对标注错误的图像进行重新标注,以确保训练集中的
每个图像都标注了正确的头发类别。
[0080] 本申请实施例通过对人脸头像图片进行语义分割,基于语义分割结果自动判断头发区域所属的头发类别并进行标注,提高了头发类别标注的自动化,减少了图像标注过程
中的人工成本,提高了头发类别标注的效率及准确性。
[0081] 步骤102:根据人脸头像图片对应的头发区域,对人脸头像图片进行数据增强处理。
[0082] 通过步骤101的方式获得训练集之后,对于训练集中的每个人脸头像图片,都进行数据增强处理,以扩充训练集。
[0083] 具体地,通过预设语义分割模型从人脸头像图片中分割出头发区域,确定头发区域的宽度。采用预设数据增强算法在头发区域中掩盖或擦除部分像素区域,该部分像素区
域的面积小于或等于头发区域的宽度与预设比例的乘积。
[0084] 预设数据增强算法可以为cutout算法或随机擦除算法等。Cutout算法能够在训练中掩盖一个正方形区域,掩盖的区域只对卷积神经网络的第一层隐藏,能够减少模型训练
过程出现过拟合的情况。随机擦除算法用于将图像中的部分区域替换为随机值或训练集的
平均像素值,通常采用不同比例的擦除图像和擦除区域的高宽比来实现。在功能上,随机擦
除算法相当于一种正则化技术,可以防止模型记忆训练数据和过拟合。
[0085] 随机擦除算法和cutout算法是很强的正则化技术,直接应用于头发分类中会降低头发分类结果的准确性,本申请实施例使用了语义分割结果进行辅助数据增强,在头发区
域,控制随机擦除和cutout的区域面积小于等于头发区域的宽度与预设比例的乘积。该预
设比例可以为1/3、1/4等。
[0086] 对于将人脸头像图片切分为左半图像和右半图像的实施方式中,预设数据增强算法掩盖或擦除的部分像素区域的面积小于或等于头发区域的宽度与预设比例的乘积,此处
头发区域的宽度为对应的一半图像中的头发区域的宽度。
[0087] 通过上述方式经过数据增强处理后的图片,仍然具有和数据增强处理之前一致的头发类别,但更加难以学习。尤其是长发中的披发情况,批发类别的头发末端在擦除后分类
没有变,但语义上更接近短发的情况。同时数据增强处理还增加了数据的多样性,增加了标
注正确的困难样本,能够使模型性能得到很大提升。
[0088] 在本申请实施例中,还可以采用其他数据增强方式来扩充训练集。如使用光照畸变方式改变人脸头像图片中的亮度、对比度、饱和度和噪声等。使用几何畸变进行随机缩
放、裁剪、翻转和旋转等处理。通过多种数据增强方式扩充训练集,提高样本多样性,以增强
后续训练的模型的性能。
[0089] 步骤103:根据数据增强处理后的人脸头像图片,对预设分类网络进行训练,得到训练好的头发分类模型。
[0090] 通过步骤102进行数据增强处理之后,将数据增强后训练集中包括的人脸头像图片输入预设分类网络中,得到每个人脸头像图片对应的分类结果。
[0091] 预设分类网络可以为EfficientNet‑B0至B7中的任一分类网络,也可以为其他任意能够实现图像分类的网络模型。以EfficientNet‑B0为例进行说明,将EfficientNet‑B0
网络作为骨干网络构建上述预设分类网络的结构,该预设分类网络的输入为人脸对齐并裁
剪出的人脸头像图片。人脸头像图片不受原人物图像中其他图像区域的影响,特征感受野
更好,更有助于预设分类模型学习头发类别。此外头发类别的信息基本包含在人脸头像图
片内,不在需要原始的整个人物图像,使用EfficientNet‑B0识别对齐裁剪后的人脸头像图
片即可。efficientnet‑b0网络结构如图2所示。
[0092] 完成当前训练周期的训练后,根据每个人脸头像图片中标注的头发类别和每个人脸头像图片对应的分类结果,计算当前训练周期的损失值。本申请实施例可以采用如下所
示的交叉熵损失函数cross entropy loss来计算损失值。
[0093]
[0094] 其中, 为当前训练周期的损失值,N为头发类别的总数目,i为头发类别的序号,为第i种头发类别对应的损失值,m为当前训练周期输入的图像的数目,c为输入的图像的
序号。 为第c个图像中标注的真实的头发类别, 为第c个图像预测为第i种头发类别
的概率。
[0095] 计算出当前训练周期的损失值之后,计算当前训练周期的损失值与上一训练周期的损失值之间的差值,将该差值与预设阈值进行比较,若该差值小于预设阈值,则表明模型
已经收敛,停止训练,根据预设分类网络和当前训练周期的训练参数,得到训练好的头发分
类模型。若该差值大于等于预设阈值,则再次将数据增强后训练集中包括的人脸头像图片
输入预设分类网络中进行训练,如此循环迭代直至得到训练好的头发分类模型。
[0096] 在上述模型训练过程中,使用AdamW优化器,AdamW优化器容易调参,利用AdamW优化器可以训练出和利用SGD+Moment进行优化等同的模型性能。在训练过程中学习率调度器
可以采用余弦退火学习率调度器CosineAnnealingWarmRestarts,该学习率调度器可以让
模型跳出局部最优解,从而训练得到更好的模型。余弦退火学习率调度器的公式如下:
[0097]
[0098] 其中, 为最小学习率, 为最大学习率, 为上次学习率重置后的epochs(训练轮数), 表示经过多少epochs(训练轮数)后,学习率进行重置,当
= 时,设置 ,当学习率重制后 =0时,设置

[0099] 通过上述方式训练得到头发分类模型之后,当需要对用户图像的头发进行分类时,获取待分类的用户图像。根据用户图像的人脸关键点,对用户图像进行人脸对齐处理。
从对齐后的用户图像中截取出用户人脸头像图片。将用户人脸头像图片输入训练好的头发
分类模型中,输出用户图像对应的头发类别。
[0100] 在虚拟换装场景下,若输出的用户图像对应的头发类别为左侧向后批发和/或右侧向后批发,则在换装之前,可以先对向后批发的一侧头发区域进行拉伸变形,然后再将服
装模板图像覆盖到拉伸变形后的用户图像中,从而能够避免换装后衣服区域与头发区域之
间存在缝隙,提高换装效果。
[0101] 为了便于理解本申请实施例提供的头发分类方法在虚拟换装场景中的应用,下面结合附图进行说明。如图3所示,获取用户图片和服装模板图像,对用户图片和服装模板图
像均基于五官关键点进行人脸对齐。然后利用本申请实施例训练的头发分类模型识别用户
图片中的头发区域所属的头发类别,若识别的头发类别为短发或向前批发,则不需要对头
发区域进行操作。若识别的头发类别为向后批发,则对用户图片中的头发区域进行拉伸变
形处理,然后将人脸对齐后的服装模板图像覆盖到拉伸变形后的用户图片中得到换装效果
图。
[0102] 在本申请实施例中,基于对人脸头像图片的语义分割结果来标注头发类别,提高了头发类别标注的准确性,加快了图像标注的速度,能缩短获得训练集的时间。基于人脸头
像图片的语义分割结果进行数据增强处理,增加了数据的多样性,提高了训练集中正确的
难样本比例,提高了头发分类模型的性能。应用训练得到的头发分类模型进行头发分类能
够迅速准确地识别出人物图像中的头发类别。在虚拟换装之前先利用头发分类模型识别用
户图像对应的头发类别,基于识别的头发类别采取相应的措施能够减少头发类别对换装效
果的不良影响,提高换装效果。
[0103] 本申请实施例还提供一种头发分类装置,用于执行上述任一实施例提供的头发分类方法。如图4所示,该装置包括:
[0104] 获取模块201,用于获取训练集,训练集包括多个标注有头发类别的人脸头像图片;
[0105] 数据增强模块202,用于根据人脸头像图片对应的头发区域,对人脸头像图片进行数据增强处理;
[0106] 模型训练模块203,用于根据数据增强处理后的人脸头像图片,对预设分类网络进行训练,得到训练好的头发分类模型。
[0107] 获取模块201,用于获取包含人脸头像的人物图像;根据人物图像对应的人脸关键点,对人物图像进行人脸对齐处理;从对齐后的人物图像中截取出人脸头像对应的人脸头
像图片;基于预设语义分割模型,在人脸头像图片中标注头发类别;将标注了头发类别的人
脸头像图片组成训练集。
[0108] 获取模块201,用于通过预设语义分割模型对人脸头像图片进行语义分割,得到人脸头像图片包括的头发区域和衣服区域;根据头发区域和衣服区域,确定头发区域对应的
头发类别;在人脸头像图片中标注出确定的头发类别。
[0109] 获取模块201,用于若头发区域和衣服区域不相邻,则确定头发区域对应的头发类别为短发;若头发区域和衣服区域相邻,则根据头发区域和衣服区域,分别确定出人脸左侧
的头发对应的头发类别及人脸右侧的头发对应的头发类别。
[0110] 获取模块201,用于确定衣服区域最上侧的边界线及衣服区域的竖直中轴线;统计边界线以下竖直中轴线左侧的第一头发像素面积以及边界线以下竖直中轴线右侧的第二
头发像素面积;计算第一头发像素面积与边界线以下竖直中轴线左侧的衣服像素面积之间
的第一比值;计算第二头发像素面积与边界线以下竖直中轴线右侧的衣服像素面积之间的
第二比值;若第一比值大于预设阈值,则确定人脸左侧的头发对应的头发类别为左侧向前
批发;否则,确定人脸左侧的头发对应的头发类别为左侧向后批发;若第二比值大于预设阈
值,确定人脸右侧的头发对应的头发类别为右侧向前批发;否则,确定人脸右侧的头发对应
的头发类别为右侧向后批发。
[0111] 获取模块201,还用于在基于预设语义分割模型,在人脸头像图片中标注头发类别之前,确定人脸头像图片中人脸头像的竖直中轴线;沿人脸头像的竖直中轴线将人脸头像
图片分割为左半部分的人脸头像图片和右半部分的人脸头像图片。
[0112] 数据增强模块202,用于通过预设语义分割模型从人脸头像图片中分割出头发区域;确定头发区域的宽度;采用预设数据增强算法在头发区域中掩盖或擦除部分像素区域,
部分像素区域的面积小于或等于头发区域的宽度与预设比例的乘积。
[0113] 模型训练模块203,用于将数据增强后训练集中包括的人脸头像图片输入预设分类网络中,得到每个人脸头像图片对应的分类结果;根据每个人脸头像图片中标注的头发
类别和每个人脸头像图片对应的分类结果,计算当前训练周期的损失值;判断当前训练周
期的损失值与上一训练周期的损失值之间的差值是否小于阈值;如果是,根据预设分类网
络和当前训练周期的训练参数,得到训练好的头发分类模型;如果否,则返回执行将数据增
强后训练集中包括的人脸头像图片输入预设分类网络中的操作,循环训练直至得到训练好
的头发分类模型。
[0114] 该装置还包括:头发分类模块,用于获取待分类的用户图像;根据用户图像的人脸关键点,对用户图像进行人脸对齐处理;从对齐后的用户图像中截取出用户人脸头像图片;
将用户人脸头像图片输入训练好的头发分类模型中,输出用户图像对应的头发类别。
[0115] 本申请的上述实施例提供的头发分类装置与本申请实施例提供的头发分类方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效
果。
[0116] 本申请实施方式还提供一种电子设备,以执行上述头发分类方法。请参考图5,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。如图5所示,电子设备8包
括:处理器800,存储器801,总线802和通信接口803,所述处理器800、通信接口803和存储器
801通过总线802连接;所述存储器801中存储有可在所述处理器800上运行的计算机程序,
所述处理器800运行所述计算机程序时执行本申请前述任一实施方式所提供的头发分类方
法。
[0117] 其中,存储器801可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non‑volatile memory),例如至少一个磁盘存储器。通过至
少一个通信接口803(可以是有线或者无线)实现该装置网元与至少一个其他网元之间的通
信连接,可以使用互联网、广域网、本地网、城域网等。
[0118] 总线802可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器801用于存储程序,所述处理器800在接收到执行指令后,
执行所述程序,前述本申请实施例任一实施方式揭示的所述头发分类方法可以应用于处理
器800中,或者由处理器800实现。
[0119] 处理器800可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器800中的硬件的集成逻辑电路或者软件形式的指令完成。上
述的处理器800可以是通用处理器,包括中央处理器(Central Processing Unit,简称
CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用
集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管
逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑
框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申
请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理
器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,
可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存
储介质位于存储器801,处理器800读取存储器801中的信息,结合其硬件完成上述方法的步
骤。
[0120] 本申请实施例提供的电子设备与本申请实施例提供的头发分类方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
[0121] 本申请实施方式还提供一种与前述实施方式所提供的头发分类方法对应的计算机可读存储介质,请参考图6,其示出的计算机可读存储介质为光盘30,其上存储有计算机
程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供
的头发分类方法。
[0122] 需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取
存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或
其他光学、磁性存储介质,在此不再一一赘述。
[0123] 本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的头发分类方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的
有益效果。
[0124] 需要说明的是:
[0125] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的结构和技
术,以便不模糊对本说明书的理解。
[0126] 类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施
例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下示意图:即所要求
保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下
面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因
此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求
本身都作为本申请的单独实施例。
[0127] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的
范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任
意之一都可以以任意的组合方式来使用。
[0128] 以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,
都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范
围为准。