头发分类方法、装置、设备及存储介质转让专利
申请号 : CN202210033340.9
文献号 : CN114093011B
文献日 : 2022-05-06
发明人 : 苗锋 , 刘聪 , 杨浩杰 , 张梦洁
申请人 : 北京新氧科技有限公司
摘要 :
权利要求 :
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中任一项所述的方法。
说明书 :
头发分类方法、装置、设备及存储介质
技术领域
背景技术
在换装之前需要先识别用户图像中的头发类别,然后才能依据头发类别采取相应措施减少
头发类别对换装效果的影响。
发明内容
拟换装之前先利用训练的头发分类模型识别头发类别,基于识别的头发类别采取相应的措
施能够减少头发类别对换装效果的不良影响,提高换装效果。
的衣服像素面积之间的第二比值;
现上述第一方面所述的方法。
像图片的语义分割结果进行数据增强处理,增加了数据的多样性,提高了训练集中正确的
难样本比例,提高了头发分类模型的性能。应用训练得到的头发分类模型进行头发分类能
够迅速准确地识别出人物图像中的头发类别。在虚拟换装之前先利用头发分类模型识别用
户图像对应的头发类别,基于识别的头发类别采取相应的措施能够减少头发类别对换装效
果的不良影响,提高换装效果。
附图说明
的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
具体实施方式
施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申
请的范围完整的传达给本领域的技术人员。
能依据头发类别采取相应措施减少头发类别对换装效果的影响。但相关技术中还没有针对
此场景下的头发类别识别方案,若直接应用现有的分类方案,存在代码逻辑复杂,需要大量
调试,误识别率较高的问题。
快了图像标注的速度。基于人脸头像图片的语义分割结果进行数据增强处理,提高了训练
集中正确的难样本的比例,通过数据增强后的训练集来训练头发分类模型,提高了头发分
类模型的性能。应用训练得到的头发分类模型进行头发分类能够迅速准确地识别出人物图
像中的头发类别。在虚拟换装之前先利用头发分类模型识别用户图像对应的头发类别,基
于识别的头发类别采取相应的措施能够减少头发类别对换装效果的不良影响,提高换装效
果。
并标注了该标准人脸图像中的每个标准人脸关键点。根据识别的该人物图像对应的人脸关
键点,对人物图像进行人脸对齐处理。即将该人物图像中的人脸关键点与预设的标准人脸
图像中的标准人脸关键点对齐,具体可以将人物图像中五官的多个人脸关键点与预设的标
准人脸图像中对应的标准人脸关键点对齐。例如,将人物图像的两个嘴角处、鼻尖、左右眼
中心及两个眉毛中心的人脸关键点分别与预设的标准人脸图像中的对应的人脸关键点对
齐。
头发类别的人脸头像图片组成训练集。
然后在人脸头像图片中标注出确定的头发类别。
发区域和服装区域之间不会出现缝隙,因此头发区域不需要进行拉伸变形,即可得到很好
的换装效果。原图片是长发披到后面的情况,换妆后头发和服装之间可能会出现缝隙,在此
情况下若将头发区域进行拉伸变形,可以改善换装效果,因此这种情况需要单独考虑,用户
左右肩膀两侧,头发前披或后披,或者头发缕到一边,这些情况均需要单独考虑。
发、右侧向后批发共5种类别。本申请实施例并不限制头发分类的具体划分方式,实际应用
中头发类别的划分还可以有其他形式。
的像素相邻。若确定头发区域和衣服区域不相邻,则确定头发区域对应的头发类别为短发。
若确定头发区域和衣服区域相邻,则确定人脸头像图片中的头发为长发。
直中轴线。统计边界线以下竖直中轴线左侧的第一头发像素面积。计算第一头发像素面积
与边界线以下竖直中轴线左侧的衣服像素面积之间的第一比值。若第一比值大于预设阈
值,则确定人脸左侧的头发对应的头发类别为左侧向前批发。否则,确定人脸左侧的头发对
应的头发类别为左侧向后批发。
设阈值,确定人脸右侧的头发对应的头发类别为右侧向前批发。否则,确定人脸右侧的头发
对应的头发类别为右侧向后批发。
头发为长发,则进一步分别确定出左右两侧的头发类别,如左侧向前批发及右侧向后批发,
或左侧向后批发及右侧向前批发,或左右两侧均为向前批发,或左右两侧均为向后批发。将
确定出的左右两侧的头发类别均标注在人脸头像图片中。
为左半部分的人脸头像图片和右半部分的人脸头像图片。即将人脸头像图片均分为左半图
像和右半图像。后续按照上述方式通过预设语义分割模型分别对左半图像和右半图像进行
语义分割,然后基于分割结果分别确定左半图像中的头发类别并进行标注,以及确定右半
图像中的头发类别并进行标注。将大量标注后的左半图像和右半图像组成训练集。在此实
施例中具体地头发类别的确定方式与上文所述方式相同,在此不再赘述。
每个图像都标注了正确的头发类别。
中的人工成本,提高了头发类别标注的效率及准确性。
域的面积小于或等于头发区域的宽度与预设比例的乘积。
过程出现过拟合的情况。随机擦除算法用于将图像中的部分区域替换为随机值或训练集的
平均像素值,通常采用不同比例的擦除图像和擦除区域的高宽比来实现。在功能上,随机擦
除算法相当于一种正则化技术,可以防止模型记忆训练数据和过拟合。
域,控制随机擦除和cutout的区域面积小于等于头发区域的宽度与预设比例的乘积。该预
设比例可以为1/3、1/4等。
头发区域的宽度为对应的一半图像中的头发区域的宽度。
没有变,但语义上更接近短发的情况。同时数据增强处理还增加了数据的多样性,增加了标
注正确的困难样本,能够使模型性能得到很大提升。
放、裁剪、翻转和旋转等处理。通过多种数据增强方式扩充训练集,提高样本多样性,以增强
后续训练的模型的性能。
网络作为骨干网络构建上述预设分类网络的结构,该预设分类网络的输入为人脸对齐并裁
剪出的人脸头像图片。人脸头像图片不受原人物图像中其他图像区域的影响,特征感受野
更好,更有助于预设分类模型学习头发类别。此外头发类别的信息基本包含在人脸头像图
片内,不在需要原始的整个人物图像,使用EfficientNet‑B0识别对齐裁剪后的人脸头像图
片即可。efficientnet‑b0网络结构如图2所示。
示的交叉熵损失函数cross entropy loss来计算损失值。
序号。 为第c个图像中标注的真实的头发类别, 为第c个图像预测为第i种头发类别
的概率。
已经收敛,停止训练,根据预设分类网络和当前训练周期的训练参数,得到训练好的头发分
类模型。若该差值大于等于预设阈值,则再次将数据增强后训练集中包括的人脸头像图片
输入预设分类网络中进行训练,如此循环迭代直至得到训练好的头发分类模型。
可以采用余弦退火学习率调度器CosineAnnealingWarmRestarts,该学习率调度器可以让
模型跳出局部最优解,从而训练得到更好的模型。余弦退火学习率调度器的公式如下:
= 时,设置 ,当学习率重制后 =0时,设置
。
从对齐后的用户图像中截取出用户人脸头像图片。将用户人脸头像图片输入训练好的头发
分类模型中,输出用户图像对应的头发类别。
装模板图像覆盖到拉伸变形后的用户图像中,从而能够避免换装后衣服区域与头发区域之
间存在缝隙,提高换装效果。
像均基于五官关键点进行人脸对齐。然后利用本申请实施例训练的头发分类模型识别用户
图片中的头发区域所属的头发类别,若识别的头发类别为短发或向前批发,则不需要对头
发区域进行操作。若识别的头发类别为向后批发,则对用户图片中的头发区域进行拉伸变
形处理,然后将人脸对齐后的服装模板图像覆盖到拉伸变形后的用户图片中得到换装效果
图。
像图片的语义分割结果进行数据增强处理,增加了数据的多样性,提高了训练集中正确的
难样本比例,提高了头发分类模型的性能。应用训练得到的头发分类模型进行头发分类能
够迅速准确地识别出人物图像中的头发类别。在虚拟换装之前先利用头发分类模型识别用
户图像对应的头发类别,基于识别的头发类别采取相应的措施能够减少头发类别对换装效
果的不良影响,提高换装效果。
像图片;基于预设语义分割模型,在人脸头像图片中标注头发类别;将标注了头发类别的人
脸头像图片组成训练集。
头发类别;在人脸头像图片中标注出确定的头发类别。
的头发对应的头发类别及人脸右侧的头发对应的头发类别。
头发像素面积;计算第一头发像素面积与边界线以下竖直中轴线左侧的衣服像素面积之间
的第一比值;计算第二头发像素面积与边界线以下竖直中轴线右侧的衣服像素面积之间的
第二比值;若第一比值大于预设阈值,则确定人脸左侧的头发对应的头发类别为左侧向前
批发;否则,确定人脸左侧的头发对应的头发类别为左侧向后批发;若第二比值大于预设阈
值,确定人脸右侧的头发对应的头发类别为右侧向前批发;否则,确定人脸右侧的头发对应
的头发类别为右侧向后批发。
图片分割为左半部分的人脸头像图片和右半部分的人脸头像图片。
部分像素区域的面积小于或等于头发区域的宽度与预设比例的乘积。
类别和每个人脸头像图片对应的分类结果,计算当前训练周期的损失值;判断当前训练周
期的损失值与上一训练周期的损失值之间的差值是否小于阈值;如果是,根据预设分类网
络和当前训练周期的训练参数,得到训练好的头发分类模型;如果否,则返回执行将数据增
强后训练集中包括的人脸头像图片输入预设分类网络中的操作,循环训练直至得到训练好
的头发分类模型。
将用户人脸头像图片输入训练好的头发分类模型中,输出用户图像对应的头发类别。
果。
括:处理器800,存储器801,总线802和通信接口803,所述处理器800、通信接口803和存储器
801通过总线802连接;所述存储器801中存储有可在所述处理器800上运行的计算机程序,
所述处理器800运行所述计算机程序时执行本申请前述任一实施方式所提供的头发分类方
法。
少一个通信接口803(可以是有线或者无线)实现该装置网元与至少一个其他网元之间的通
信连接,可以使用互联网、广域网、本地网、城域网等。
执行所述程序,前述本申请实施例任一实施方式揭示的所述头发分类方法可以应用于处理
器800中,或者由处理器800实现。
述的处理器800可以是通用处理器,包括中央处理器(Central Processing Unit,简称
CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用
集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管
逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑
框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申
请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理
器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,
可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存
储介质位于存储器801,处理器800读取存储器801中的信息,结合其硬件完成上述方法的步
骤。
程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供
的头发分类方法。
存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或
其他光学、磁性存储介质,在此不再一一赘述。
有益效果。
术,以便不模糊对本说明书的理解。
例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下示意图:即所要求
保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下
面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因
此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求
本身都作为本申请的单独实施例。
范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任
意之一都可以以任意的组合方式来使用。
都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范
围为准。