头发信息识别方法、装置、设备及存储介质
文献发布时间:2023-06-19 12:13:22
技术领域
本发明涉及人工智能领域,尤其涉及一种头发信息识别方法、装置、设备及存储介质。
背景技术
随着互联网技术的不断发展,移动终端的普及给用户提供了极大的便利,例如,由于智能终端的便携性,用户使用手机替代相机进行拍照。在拍照或在对图像进行处理的过程中,可以对图像进行面部的信息识别,作为面部整体的一步,头发在人的整体形象中也起到了重要的作用,在实际应用中,识别的头发细节信息,也能在应用上进行参考,例如在关注头发健康状况时,通过识别头发细节信息中的发际线高度,发量等,能够对待识别用户的头发健康进行参考,在保险行业中,通过识别图片上人的刘海长度,针对刘海长度过长的客户在驾车过程中,由于可能遮挡视线,出事故的风险可能会更高的情况进行理赔策略的调整等。
现有技术中对头发进行识别的方式主要通过对人脸与头发之间的像素差距进行头发区域的识别,但是这种识别方式主要是对头发的整体区域进行识别,难以准确地对头发的诸多细节信息进行有效识别。
发明内容
本发明的主要目的在于解决现有的头发识别方式,对于头发的细节信息识别精准度较低的技术问题。
本发明第一方面提供了一种头发信息识别方法,包括:获取待识别的人脸图像;将所述人脸图像输入至预先训练好的人脸关键点识别模型中进行人脸特征识别,得到所述人脸图像的人脸关键点及其坐标信息;将所述人脸图像输入至预先训练好的轮廓识别模型中,得到所述人脸图像的至少一个轮廓图形;根据所述人脸关键点,从所述轮廓图形中确定所述人脸图像的头发轮廓图形,并根据所述人脸关键点的坐标信息计算所述头发轮廓图形的坐标信息;获取用户输入的头发识别请求,并解析所述头发识别请求中携带的头发识别任务标识,其中所述头发识别任务标识包括头发细节识别标识和/或发型识别标识;若所述头发识别任务标识包括头发细节识别标识,则根据所述人脸关键点的坐标信息和所述头发轮廓图形的坐标信息,计算所述人脸图像的头发细节信息;若所述头发识别任务标识包括发型识别标识,则根据所述头发轮廓图形提取所述人脸图像中的头发图像特征,并根据所述头发图像特征识别所述人脸图像的发型信息。
可选的,在本发明第一方面的第一种实现方式中,所述人脸关键点识别模型通过以下步骤训练得到:获取训练样本集,其中,所述训练样本集包括样本人脸图像;获取所述样本人脸图像的第一样本人脸关键点信息,并对所述第一样本人脸关键点信息进行标注,得到第一样本人脸姿态信息;将所述样本人脸图像输入至预设的神经网络中,得到第二样本人脸关键点信息和第二样本人脸姿态信息;将所述第一样本人脸关键点信息和所述第一样本人脸姿态信息分别与所述第二样本人脸关键点信息和第二样本人脸姿态信息进行比较,计算损失函数;判断所述损失函数是否大于预设阈值;若是,则根据所述损失函数调整所述神经网络的参数,并将所述样本人脸图像输入至参数调整后的神经网络中,重复模型训练,直至所述损失函数不大于预设阈值,得到人脸关键点识别模型。
可选的,在本发明第一方面的第二种实现方式中,所述轮廓识别模型通过以下步骤训练得到:获取预设的测试集,其中,所述测试集包括测试人脸图像;获取所述样本人脸图像和所述测试人脸图像的标记信息,并根据所述标记信息生成所述样本人脸图像和所述测试人脸图像对应的掩模图像;将所述样本人脸图像输入至语义分割网络中,得到语义分割图像,并通过交叉熵损失函数计算所述语义分割图像与所述样本人脸图像对应的掩模图像之间的损失值,并根据所述值调整所述语义分割网络的参数进行下一轮训练,直至进行完预设轮数训练后结束;将所述测试集输入至训练结束后的语义分割网络中,得到对应的语义分割图像,并根据所述测试集对应的掩模图像和所述测试集对应的语义分割图像计算分割评价指标;判断所述分割评价指标是否达到预设标准;若否,则调整所述交叉熵损失函数,并再次对所述语义分割网络进行训练和测试,直至所述分割评价指标达到预设标准,得到轮廓识别模型。
可选的,在本发明第一方面的第三种实现方式中,所述人脸关键点包括左眼关键点和右眼关键点,所述头发细节信息包括刘海长度信息;所述根据所述人脸关键点的坐标信息和所述头发轮廓图形的坐标信息,计算所述人脸图像的头发细节信息包括:根据所述左眼关键点和所述右眼关键点的坐标信息,将所述人脸图像划分为左区域、中区域和右区域;根据所述中区域中所述人脸关键点的最低点的坐标信息和所述头发轮廓图形中最高点的坐标信息,计算所述人脸图像中的人脸长度;分别根据所述左区域、中区域和右区域中的头发轮廓图形中的最高点和最低点的坐标信息,计算得到左区域、中区域和右区域的头发长度;将所述头发长度除以所述人脸长度,得到刘海长度信息。
可选的,在本发明第一方面的第四种实现方式中,所述头发细节信息还包括发际线高度信息;在所述根据所述中区域中所述人脸关键点的最低点的坐标信息和所述头发轮廓图形中最高点的坐标信息,计算所述人脸图像中的人脸长度之后,还包括:连接所述左眼关键点和所述右眼关键点,得到连接线;分别计算所述左区域、中区域和右区域的头发轮廓图形中的最低点与所述连接线的距离值,并选择左区域、中区域和右区域中的距离值的最大值除以所述人脸长度,得到所述人脸图像的额头高度;将一减去所述额头高度,得到所述人脸图像的发际线高度信息。
可选的,在本发明第一方面的第五种实现方式中,所述头发细节信息还包括发量信息;所述根据所述人脸关键点的坐标信息和所述头发轮廓图形的坐标信息,计算所述人脸图像的头发细节信息还包括:根据所述头发轮廓图形的坐标信息,构建最小发域矩形,并计算所述最小发域矩形的面积,其中,所述最小发域矩形为包含所述头发轮廓图形的最小矩形;根据所述人脸关键点的坐标信息,构建最小脸部矩形,并计算所述最小脸部矩形的面积,其中所述最小脸部矩形为包含所有所述人脸关键点的最小矩形;将所述最小发域矩形的面积除以所述最小脸部矩形的面积,得到所述人脸图像的发量信息。
可选的,在本发明第一方面的第六种实现方式中,其特征在于,所述根据所述头发轮廓图形提取所述人脸图像中的头发图像特征,并根据所述头发图像特征识别所述人脸图像的发型信息包括:根据所述头发轮廓图形,提取所述人脸图像中的头发图像;根据预设的多任务卷积神经网络,提取所述头发图像中的头发图像特征;根据提取到的头发图像特征,执行至少一个发型识别任务,得到至少一个发型信息。
本发明第二方面提供了一种头发信息识别装置,包括:获取模块,用于获取待识别的人脸图像;第一模型输入模块,用于将所述人脸图像输入至预先训练好的人脸关键点识别模型中进行人脸特征识别,得到所述人脸图像的人脸关键点及其坐标信息;第二模型输入模块,用于将所述人脸图像输入至预先训练好的轮廓识别模型中,得到所述人脸图像的至少一个轮廓图形;头发轮廓确定模块,用于根据所述人脸关键点,从所述轮廓图形中确定所述人脸图像的头发轮廓图形,并根据所述人脸关键点的坐标信息计算所述头发轮廓图形的坐标信息;任务解析模块,用于获取用户输入的头发识别请求,并解析所述头发识别请求中携带的头发识别任务标识,其中所述头发识别任务标识包括头发细节识别标识和/或发型识别标识;头发细节识别模块,用于当所述头发识别任务标识包括头发细节识别标识时,根据所述人脸关键点的坐标信息和所述头发轮廓图形的坐标信息,计算所述人脸图像的头发细节信息;发型信息识别模块,用于当所述头发识别任务标识包括发型识别标识时,根据所述头发轮廓图形提取所述人脸图像中的头发图像特征,并根据所述头发图像特征识别所述人脸图像的发型信息。
可选的,在本发明第二方面的第一种实现方式中,所述头发信息识别装置还包括第一模型训练模块,所述第一模型训练模块具体用于:获取训练样本集,其中,所述训练样本集包括样本人脸图像;获取所述样本人脸图像的第一样本人脸关键点信息,并对所述第一样本人脸关键点信息进行标注,得到第一样本人脸姿态信息;将所述样本人脸图像输入至预设的神经网络中,得到第二样本人脸关键点信息和第二样本人脸姿态信息;将所述第一样本人脸关键点信息和所述第一样本人脸姿态信息分别与所述第二样本人脸关键点信息和第二样本人脸姿态信息进行比较,计算损失函数;判断所述损失函数是否大于预设阈值;若是,则根据所述损失函数调整所述神经网络的参数,并将所述样本人脸图像输入至参数调整后的神经网络中,重复模型训练,直至所述损失函数不大于预设阈值,得到人脸关键点识别模型。
可选的,在本发明第二方面的第二种实现方式中,所述头发信息识别装置还包括第二模型训练模块,所述第二模型训练模块具体用于:获取预设的测试集,其中,所述测试集包括测试人脸图像;获取所述样本人脸图像和所述测试人脸图像的标记信息,并根据所述标记信息生成所述样本人脸图像和所述测试人脸图像对应的掩模图像;将所述样本人脸图像输入至语义分割网络中,得到语义分割图像,并通过交叉熵损失函数计算所述语义分割图像与所述样本人脸图像对应的掩模图像之间的损失值,并根据所述值调整所述语义分割网络的参数进行下一轮训练,直至进行完预设轮数训练后结束;将所述测试集输入至训练结束后的语义分割网络中,得到对应的语义分割图像,并根据所述测试集对应的掩模图像和所述测试集对应的语义分割图像计算分割评价指标;判断所述分割评价指标是否达到预设标准;若否,则调整所述交叉熵损失函数,并再次对所述语义分割网络进行训练和测试,直至所述分割评价指标达到预设标准,得到轮廓识别模型。
可选的,在本发明第二方面的第三种实现方式中,所述人脸关键点包括左眼关键点和右眼关键点,所述头发细节信息包括刘海长度信息,所述头发细节识别模块具体用于:根据所述左眼关键点和所述右眼关键点的坐标信息,将所述人脸图像划分为左区域、中区域和右区域;根据所述中区域中所述人脸关键点的最低点的坐标信息和所述头发轮廓图形中最高点的坐标信息,计算所述人脸图像中的人脸长度;分别根据所述左区域、中区域和右区域中的头发轮廓图形中的最高点和最低点的坐标信息,计算得到左区域、中区域和右区域的头发长度;将所述头发长度除以所述人脸长度,得到刘海长度信息。
可选的,在本发明第二方面的第四种实现方式中,所述头发细节信息还包括发际线高度信息,所述头发细节识别模块具体还用于:连接所述左眼关键点和所述右眼关键点,得到连接线;分别计算所述左区域、中区域和右区域的头发轮廓图形中的最低点与所述连接线的距离值,并选择左区域、中区域和右区域中的距离值的最大值除以所述人脸长度,得到所述人脸图像的额头高度;将一减去所述额头高度,得到所述人脸图像的发际线高度信息。
可选的,在本发明第二方面的第五种实现方式中,所述头发细节识别模块具体还用于:根据所述头发轮廓图形的坐标信息,构建最小发域矩形,并计算所述最小发域矩形的面积,其中,所述最小发域矩形为包含所述头发轮廓图形的最小矩形;根据所述人脸关键点的坐标信息,构建最小脸部矩形,并计算所述最小脸部矩形的面积,其中所述最小脸部矩形为包含所有所述人脸关键点的最小矩形;将所述最小发域矩形的面积除以所述最小脸部矩形的面积,得到所述人脸图像的发量信息。
可选的,在本发明第二方面的第六种实现方式中,所述发型信息识别模块具体用于:根据所述头发轮廓图形,提取所述人脸图像中的头发图像;根据预设的多任务卷积神经网络,提取所述头发图像中的头发图像特征;根据提取到的头发图像特征,执行至少一个发型识别任务,得到至少一个发型信息。
本发明第三方面提供了一种头发信息识别设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述头发信息识别设备执行上述的头发信息识别方法的步骤。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的头发信息识别方法的步骤。
本发明的技术方案中,通过获取待识别的人脸图像;将所述人脸图像分别输入至预先训练好的人脸关键点识别模型和轮廓识别模型中,得到所述人脸图像的人脸关键点的坐标信息和所述人脸图像的头发轮廓图形;根据所述人脸关键点的坐标信息计算所述头发轮廓图形的坐标信息;获取用户输入的头发识别请求,根据所述头发识别请求选择对应的头发识别任务,其中所述头发识别任务包括头发细节识别和发型识别;若所述头发识别任务为头发细节识别,则根据所述人脸关键点的坐标信息和所述头发轮廓图形的坐标信息,计算所述人脸图像的头发细节信息;若所述头发识别任务为发型识别,则根据所述头发轮廓图形提取所述人脸图像中的头发图像特征,并根据所述头发图像特征识别所述人脸图像的发型信息。本方法基于深度学习技术,对人脸图像进行识别,得到头发轮廓和人脸关键点,基于应用场景定义头发信息,进行头发信息的计算,不仅能够对头发的整体区域进行识别,同时能够准确地对头发的诸多信息进行有效识别,提高了人脸图像的识别精准度。
附图说明
图1为本发明实施例中头发信息识别方法的第一个实施例示意图;
图2为本发明实施例中头发信息识别方法的第二个实施例示意图;
图3为本发明实施例中头发信息识别方法的第三个实施例示意图;
图4为本发明实施例中头发信息识别方法的第四个实施例示意图;
图5为本发明实施例中头发信息识别方法的第五个实施例示意图;
图6为本发明实施例中头发信息识别装置的一个实施例示意图;
图7为本发明实施例中头发信息识别装置的另一个实施例示意图;
图8为本发明实施例中头发信息识别设备的一个实施例示意图。
具体实施方式
本发明的技术方案中,通过获取待识别的人脸图像;将人脸图像输入至预先训练好的人脸关键点识别模型中进行人脸特征识别,得到人脸图像的人脸关键点及其坐标信息;将人脸图像输入至预先训练好的轮廓识别模型中,得到人脸图像的至少一个轮廓图形;根据人脸关键点,从轮廓图形中确定人脸图像的头发轮廓图形,并根据人脸关键点的坐标信息计算头发轮廓图形的坐标信息;获取用户输入的头发识别请求,并解析头发识别请求中携带的头发识别任务标识,其中头发识别任务标识包括头发细节识别标识和/或发型识别标识;若头发识别任务标识包括头发细节识别标识,则根据人脸关键点的坐标信息和头发轮廓图形的坐标信息,计算人脸图像的头发细节信息;若头发识别任务标识包括发型识别标识,则根据头发轮廓图形提取人脸图像中的头发图像特征,并根据头发图像特征识别人脸图像的发型信息。本方法基于深度学习技术,对人脸图像进行识别,得到头发轮廓和人脸关键点,基于应用场景定义头发信息,进行头发信息的计算,不仅能够对头发的整体区域进行识别,同时能够准确地对头发的诸多信息进行有效识别。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中头发信息识别方法的第一个实施例包括:
101、获取待识别的人脸图像;
可以理解的是,本发明的执行主体可以为头发信息识别装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
需要强调的是,为保证数据的私密和安全性,上述人脸图像可以存储于一区块链的节点中。
在本实施例中,待识别的人脸图像可以为呈现静态的图像或者照片等图像,也可以为呈现动态的视频中的视频帧等。该人脸图像中的人脸可以为正脸,也可以为存在一定偏转角度的非正脸。待识别的人脸图像可以是本地存储的图像,也可以是从网络或服务器获取的图像,还可以是通过图像采集装置采集的图像,本实施例不作限定。
在本实施例中,人脸图像可以是需要识别的图像中的所有图像,也可以是需要识别的图像中的部分图像,例如,对于某些图像中的部分区域存在人脸图像,可以采用人脸识别方法,将人脸从完整图像中识别并截取出来,截取的人脸图像应能包含全部的人脸并附加部分背景区域。人脸识别方法可以使用dlib,也可以为其他人脸识别方法,本实施例不作限定。
102、将人脸图像输入至预先训练好的人脸关键点识别模型中进行人脸特征识别,得到人脸图像的人脸关键点及其坐标信息;
在本实施例中,人脸关键点识别模型所使用的神经网络结构为PFLD(A PracticalFacial Landmark Detector),是一个精度高,速度快,模型小的人脸关键点检测模型。
在实际应用中,数据不平衡是经常限制准确检测性能的问题。例如,训练集可能包含大量正面,而缺少那些姿势较大的面孔。导致由这样的训练集训练的模型不能很好地处理大型姿势情况。在这种情况下,“平均”惩罚每个样本将使其不平等。PFLD采用辅助网络来估计人脸样本的人脸姿态信息,在训练关键点回归的同时预测人脸姿态,通过对稀有以及姿态角度过大的样本进行大的惩罚,解决数据不平衡问题,从而提高预测的精度。
103、将所述人脸图像输入至预先训练好的轮廓识别模型中,得到所述人脸图像的至少一个轮廓图形;
在本实施例中,轮廓识别模型使用的神经网络结构为PSPNet(Pyramid SceneParseing Network,金字塔场景解析网络),PSPNet能够聚合不同区域的上下文信息,从而提高获取全局信息的能力。
PSPNet对于输入图像,使用一个带有扩展网络策略且预训练过的ResNet模型来提取特征图,主体网络由ResNet101构成,使用了残差网络、空洞卷积和降维卷积的方法(先使用1*1降低维度,然后使用3*3卷积,再用1*1恢复维度)。网络中一共出现三次特征图缩小,一次使用maxpool,两次使用conv,每次减少二分之一大小,最终得到的特征图是原尺寸的1/8。对上述特征图使用(金字塔池化模块来获取语境信息,其中,金字塔池化模块分4个层级,其池化核大小分别为图像的全部、一半和小部分,最终它们可融合为全局特征。然后,将融合得到的全局特征与原始特征图连接起来,最后,通过一层卷积层生成最终的预测图。
104、根据所述人脸关键点,从所述轮廓图形中确定所述人脸图像的头发轮廓图形,并根据所述人脸关键点的坐标信息计算所述头发轮廓图形的坐标信息;
在本实施例中,轮廓识别模型识别出人脸图像中的多个轮廓图像,例如人脸轮廓,头发轮廓等,可以通过确定人脸关键点中的左眼关键点和右眼关键点,并将不包含左眼关键点和右眼关键点且在左眼关键点和右眼关键点上方的轮廓区域确定为头发轮廓,并确定头发轮廓图形。
在本实施例中,人脸关键点识别模型输出人脸关键点的位置信息,主要为人脸关键点在人脸图像中的坐标,通过人脸关键点的坐标能够计算头发轮廓图形中各点的坐标,可以通过人脸关键点和头发轮廓图形之间的距离,获得人脸关键点和头发轮廓图形之间的向量,并将该向量拆分成坐标轴中x轴和y轴两个方向的向量,根据两个方向的长度与对应人脸关键点的坐标计算头发轮廓图形上各点的坐标信息,或者通过预先设定的坐标轴中的坐标原点对头发轮廓图形的坐标信息进行计算。
105、获取用户输入的头发识别请求,并解析头发识别请求中携带的头发识别任务标识,其中头发识别任务标识包括头发细节识别标识和/或发型识别标识;
106、若头发识别任务标识包括头发细节识别标识,则根据人脸关键点的坐标信息和头发轮廓图形的坐标信息,计算人脸图像的头发细节信息;
在本实施例中,所述头发细节信息主要包括发际线高度、发量和刘海长度等信息,通过头发细节信息中的发际线高度,发量等,对待识别用户的头发健康进行参考,在保险行业中,通过识别图片上人的刘海长度,针对刘海长度过长的客户在驾车过程中,由于可能遮挡视线,出事故的风险可能会更高的情况进行理赔策略的调整,根据不同的应用场景,可以通过对头发的不同定义获得不同类型的头发细节信息,例如鬓角长度,通过识别头发轮廓图形中的最低点与两眼之前连线的垂直距离,并除以计算得到的人脸长度,即可计算得到鬓角长度,对于头发细节信息的类型,本发明不做限定。
107、若头发识别任务标识包括发型识别标识,则根据头发轮廓图形提取人脸图像中的头发图像特征,并根据头发图像特征识别人脸图像的发型信息。
在本实施例中,通过卷积神经网络处理头发轮廓图形范围内的人脸图像,以提取人脸图像中的头发图像特征,卷积神经网络(Convolutional Neural Network,简称CNN)是一种人工神经网络。卷积神经网络包括卷积层(Convolutional Layer)和子采样层(Pooling Layer)。子采样也叫做池化(Pooling),通常有均值子采样(Mean Pooling)和最大值子采样(Max Pooling)两种形式。池化操作是一种有效的降维方式,可以防止过拟合。卷积和子采样大大简化了神经网络的复杂度,减少了神经网络的参数。多任务卷积神经网络是可以进行多任务学习的卷积神经网络。多任务卷积神经网络则针对输入可以有多个输出,每个输出对应一个任务,也就可以提取出人脸图像中的多个头发图像特征。
在本实施例中,通过获取待识别的人脸图像;将人脸图像输入至预先训练好的人脸关键点识别模型中进行人脸特征识别,得到人脸图像的人脸关键点及其坐标信息;将人脸图像输入至预先训练好的轮廓识别模型中,得到人脸图像的至少一个轮廓图形;根据人脸关键点,从轮廓图形中确定人脸图像的头发轮廓图形,并根据人脸关键点的坐标信息计算头发轮廓图形的坐标信息;获取用户输入的头发识别请求,并解析头发识别请求中携带的头发识别任务标识,其中头发识别任务标识包括头发细节识别标识和/或发型识别标识;若头发识别任务标识包括头发细节识别标识,则根据人脸关键点的坐标信息和头发轮廓图形的坐标信息,计算人脸图像的头发细节信息;若头发识别任务标识包括发型识别标识,则根据头发轮廓图形提取人脸图像中的头发图像特征,并根据头发图像特征识别人脸图像的发型信息。本方法基于深度学习技术,对人脸图像进行识别,得到头发轮廓和人脸关键点,基于应用场景定义头发信息,进行头发信息的计算,不仅能够对头发的整体区域进行识别,同时能够准确地对头发的诸多信息进行有效识别。
请参阅图2,本发明实施例中头发信息识别方法的第二个实施例包括:
201、获取训练样本集,训练样本集包括样本人脸图像;
在实际应用中,常见的几种关键点数据集有5关键点、21关键点、68关键点、98关键点等,在本实施例中,主要应用的人脸关键点为68个,所以人脸关键点检测模型的训练,训练样本集采用的数据集是300W,共600张图片,68个关键点,此外也可以使用其他的的关键点数据集,例如有68个关键点的XM2VTS 数据集,98个关键点的WFLW数据集等,本发明不做限定。
202、获取样本人脸图像的第一样本人脸关键点信息,并对第一样本人脸关键点信息进行标注,得到第一样本人脸姿态信息;
203、将样本人脸图像输入至预设的神经网络中,得到第二样本人脸关键点信息和第二样本人脸姿态信息;
204、将第一样本人脸关键点信息和第一样本人脸姿态信息分别与第二样本人脸关键点信息和第二样本人脸姿态信息进行比较,计算损失函数;
205、判断损失函数是否大于预设阈值;
206、若是,则根据损失函数调整神经网络的参数,并将样本人脸图像输入至参数调整后的神经网络中,重复模型训练,直至损失函数不大于预设阈值,得到人脸关键点识别模型;
在本实施例中,使用的神经网络结构为PFLD,该神经网络结构能够根据人脸图像的姿态信息对损失函数进行调整,解决数据不平衡问题,提高识别的准确度,所以需要对训练集中的每个关键点进行标注,得到每个关键点的人脸姿态信息,人脸姿态标注采用的是PRnet模型,获取到三个姿态数据(yaw,pitch,roll),通过将样本人脸图像输入至PFLD中,得到PFLD处理后的样本人脸关键点信息和样本人脸姿态信息,根据预设的损失函数计算损失值,其中,损失函数的公式如下:
其中,
207、获取待识别的人脸图像;
208、将人脸图像输入至预先训练好的人脸关键点识别模型中进行人脸特征识别,得到人脸图像的人脸关键点及其坐标信息;
209、将人脸图像输入至预先训练好的轮廓识别模型中,得到人脸图像的至少一个轮廓图形;
210、根据人脸关键点,从轮廓图形中确定人脸图像的头发轮廓图形,并根据人脸关键点的坐标信息计算头发轮廓图形的坐标信息;
211、获取用户输入的头发识别请求,并解析头发识别请求中携带的头发识别任务标识,其中头发识别任务标识包括头发细节识别标识和/或发型识别标识;
212、若头发识别任务标识包括头发细节识别标识,则根据人脸关键点的坐标信息和头发轮廓图形的坐标信息,计算人脸图像的头发细节信息;
213、若头发识别任务标识包括发型识别标识,则根据头发轮廓图形提取人脸图像中的头发图像特征,并根据头发图像特征识别人脸图像的发型信息。
本实施例中的步骤206-211与第一实施例中的步骤101-106相似,此处不再赘述。
本实施例在上一实施例的基础上,详细描述了人脸关键点识别模型的训练过程,本实施例中的人脸关键点模型使用PFLD,是一种精度高,速度快,模型小的人脸关键点检测模型,通过采用辅助网络来估计人脸样本的人脸姿态信息,解决数据不平衡问题,从而提高模型预测的精度。
请参阅图3,本发明实施例中头发信息识别方法的第三个实施例包括:
301、获取预设的测试集和训练样本集,训练样本集包括样本人脸图像,测试集包括测试人脸图像;
302、获取样本人脸图像和测试人脸图像的标记信息,并根据标记信息生成样本人脸图像和测试人脸图像对应的掩模图像;
303、将样本人脸图像输入至语义分割网络中,得到语义分割图像,并通过交叉熵损失函数计算语义分割图像与样本人脸图像对应的掩模图像之间的损失值,并根据值调整语义分割网络的参数进行下一轮训练,直至进行完预设轮数训练后结束;
304、将测试集输入至训练结束后的语义分割网络中,得到对应的语义分割图像,并根据测试集对应的掩模图像和测试集对应的语义分割图像计算分割评价指标;
305、判断分割评价指标是否达到预设标准;
306若否,则调整交叉熵损失函数,并再次对语义分割网络进行训练和测试,直至分割评价指标达到预设标准,得到轮廓识别模型;
在本实施例中,可以通过对样本人脸图像和所述测试人脸图像中的每个像素值进行人工标记,得到对应的标记信息,例如通过人工识别出人脸图像中的头发区域和非头发区域,将头发区域的像素值标记为1,将非头发区域的像素值标记为0,将像素值标记为1的区域进行掩模,得到掩模图像,将样本人脸图像输入至语义分割网络后,得到语义分割图像,交叉熵损失函数的公式如下:
其中p(x)为真实分布,q (x)为非真实分布。
在本实施例中,将交并比和像素精度作为语义分割网络的分割评价指标,其中交并比通过计算测试集对应的掩模图像与输入训练结束后的语义分割网络后得到的语义分割图像之间的交叠率,即它们的交集与并集的比值,而像素精度是通过掩模图像和语义分割图像之间,语义分割图像预测的正确像素值在总像素值中的占比,通过判断交并比和像素精度是否达到预设的标准,若未达到预设的标准,则通过调整整网络的单次训练的样本数、损失函数、学习率和优化器等参数,并再此对网络进行训练和测试,直到网络达到预期标准,得到轮廓识别模型。
307、获取待识别的人脸图像;
308、将人脸图像输入至预先训练好的人脸关键点识别模型中进行人脸特征识别,得到人脸图像的人脸关键点及其坐标信息;
309、将人脸图像输入至预先训练好的轮廓识别模型中,得到人脸图像的至少一个轮廓图形;
310、根据人脸关键点,从轮廓图形中确定人脸图像的头发轮廓图形,并根据人脸关键点的坐标信息计算头发轮廓图形的坐标信息;
311、获取用户输入的头发识别请求,并解析头发识别请求中携带的头发识别任务标识,其中头发识别任务标识包括头发细节识别标识和/或发型识别标识;
312、若头发识别任务标识包括头发细节识别标识,则根据人脸关键点的坐标信息和头发轮廓图形的坐标信息,计算人脸图像的头发细节信息;
313、若头发识别任务标识包括发型识别标识,则根据头发轮廓图形提取人脸图像中的头发图像特征,并根据头发图像特征识别人脸图像的发型信息。
本实施例中的步骤306-308与第一实施例中的步骤104-106相似,此处不再赘述。
本实施例在前实施例的基础上,详细描述了轮廓识别模型的训练过程,轮廓识别模型能够根据人脸图像不同区域的像素值进行头发轮廓的识别,识别精度高,使得后续计算头发细节信息更加精准。
请参阅图4,本发明实施例中头发信息识别方法的第四个实施例包括:
401、获取待识别的人脸图像;
402、将人脸图像输入至预先训练好的人脸关键点识别模型中进行人脸特征识别,得到人脸图像的人脸关键点及其坐标信息;
403、将人脸图像输入至预先训练好的轮廓识别模型中,得到人脸图像的至少一个轮廓图形;
404、根据人脸关键点,从轮廓图形中确定人脸图像的头发轮廓图形,并根据人脸关键点的坐标信息计算头发轮廓图形的坐标信息;
405、获取用户输入的头发识别请求,并解析头发识别请求中携带的头发识别任务标识,头发识别任务标识包括头发细节识别标识和发型识别标识;
406、若头发识别任务标识包括头发细节识别标识,则根据左眼关键点和右眼关键点的坐标信息,将人脸图像划分为左区域、中区域和右区域;
407、根据中区域中人脸关键点的最低点的坐标信息和头发轮廓图形中最高点的坐标信息,计算人脸图像中的人脸长度;
408、分别根据左区域、中区域和右区域中的头发轮廓图形中的最高点和最低点的坐标信息,计算得到左区域、中区域和右区域的头发长度;
409、将头发长度除以人脸长度,得到刘海长度信息;
在本实施例中,通过定位人脸图像中的人脸关键点的位置关系,定位人脸关键点中的左眼关键点和右眼关键点,通过对两关键点做垂直线,将人脸图像分为三个区域,分别为左区域、中区域和右区域,并分别计算三个区域的头发长度,将头发长度定义为
也即是头发轮廓图形的中区域的最上沿的点的坐标,与人脸关键点中最下沿的点的坐标之间的距离。
410、连接左眼关键点和右眼关键点,得到连接线;
411、分别计算左区域、中区域和右区域的头发轮廓图形中的最低点与连接线的距离值,并选择左区域、中区域和右区域中的距离值的最大值除以人脸长度,得到人脸图像的额头高度;
412、将一减去额头高度,得到人脸图像的发际线高度信息;
在本实施例中,将左眼关键点和右眼关键点两点之间的连接线定义为between_eyes_line,定义各区域中头发轮廓图形中最下沿的点为hair_bottom_point,计算额头高度的公式为:
取左区域、中区域和右区域中的额头高度的最大值,定义发际线高度的公式为:
由于除以了人脸长度,额头高度是一个归一化的值,介于0~1之间,所以发际线高度也是介于0~1之间的值。
413、根据头发轮廓图形的坐标信息,构建最小发域矩形,并计算最小发域矩形的面积,其中,最小发域矩形为包含头发轮廓图形的最小矩形;
414、根据人脸关键点的坐标信息,构建最小脸部矩形,并计算最小脸部矩形的面积,其中最小脸部矩形为包含所有人脸关键点的最小矩形;
415、将最小发域矩形的面积除以最小脸部矩形的面积,得到人脸图像的发量信息;
在本实施例中,首先构建一个最小矩形框将头发轮廓图形覆盖,该矩形的宽为hair_x_len,高为hair_y_len,所以发量面积可以粗略的表示为hair_x_len*hair_y_len,构建的方式可以通过获取头发轮廓图形的最上沿、最下沿、最左侧和最右侧的四个点,将最上沿和最下沿之间的垂直距离作为矩形的高,将最左侧和最右侧的点之间的垂直距离定义为矩形的高,同理,通过相同方法,通过获取人脸关键点中的最上沿、最下沿、最左侧和最右侧的四个点进行计算,得到面部矩形,将两者相除即得到发量信息,计算公式为:
416、若头发识别任务标识包括发型识别标识,则根据头发轮廓图形提取人脸图像中的头发图像特征,并根据头发图像特征识别人脸图像的发型信息。
本实施例在前实施例的基础上,详细描述了根据人脸关键点的坐标信息和头发轮廓图形的坐标信息,计算人脸图像的头发细节信息。通过实现定义头发细节信息的计算公式,进行头发细节信息的计算,能够高效获得对应的头发细节信息。
请参阅图5,本发明实施例中头发信息识别方法的第五个实施例包括:
501、获取待识别的人脸图像;
502、将人脸图像输入至预先训练好的人脸关键点识别模型中进行人脸特征识别,得到人脸图像的人脸关键点及其坐标信息;
503、将人脸图像输入至预先训练好的轮廓识别模型中,得到人脸图像的至少一个轮廓图形;
504、根据人脸关键点,从轮廓图形中确定人脸图像的头发轮廓图形,并根据人脸关键点的坐标信息计算头发轮廓图形的坐标信息;
505、获取用户输入的头发识别请求,并解析头发识别请求中携带的头发识别任务标识,其中头发识别任务标识包括头发细节识别标识和/或发型识别标识;
506、若头发识别任务标识包括头发细节识别标识,则根据人脸关键点的坐标信息和头发轮廓图形的坐标信息,计算人脸图像的头发细节信息;
506、若头发识别任务标识包括发型识别标识,则根据头发轮廓图形,提取人脸图像中的头发图像;
507、根据预设的多任务卷积神经网络,提取头发图像中的头发图像特征;
508、根据提取到的头发图像特征,执行至少一个发型识别任务,得到至少一个发型信息。
在本实施例中,头发图像特征是从人脸图像中提取出的关于头发的图像特征,其中,图像特征是表示图像的颜色、纹理、形状或空间关系等的特征。在本实施例中,头发图像特征具体可以是计算机设备从发型图像中提取出的可以表示头发的颜色、长度或形状等的数据,可以看作是发型图像的“非图像”的表示或描述,如数值、向量、矩阵或符号等。
在本实施例中,可通过卷积神经网络处理头发轮廓图形范围内的人脸图像,以提取人脸图像中的头发图像特征,针对需要的不同的发型信息,可能设置多任务卷积神经网络进行多特征提取,本实施例中,发型信息可以包括头发长度、头发颜色,包括长发、中发、短发、超短发、光头和绑头发等。头发颜色可以包括:黑色、棕色、金色、灰白色、红色等。
本实施例在前实施例的基础上,详细描述了根据所述头发轮廓图形提取所述人脸图像中的头发图像特征,并根据所述头发图像特征识别所述人脸图像的发型信息的过程,通过头发轮廓图形,提取人脸图像中的头发图像;根据预设的多任务卷积神经网络,提取头发图像中的头发图像特征;根据提取到的头发图像特征,执行至少一个发型识别任务,得到至少一个发型信息。通过本方法,能够对进行多种头发图像特征进行提取,并对应得到多种发型信息。
上面对本发明实施例中头发信息识别方法进行了描述,下面对本发明实施例中头发信息识别装置进行描述,请参阅图6,本发明实施例中头发信息识别装置一个实施例包括:
获取模块601,用于获取待识别的人脸图像;第一模型输入模块602,用于将所述人脸图像输入至预先训练好的人脸关键点识别模型中进行人脸特征识别,得到所述人脸图像的人脸关键点及其坐标信息;第二模型输入模块603,用于将所述人脸图像输入至预先训练好的轮廓识别模型中,得到所述人脸图像的至少一个轮廓图形;头发轮廓确定模块604,用于根据所述人脸关键点,从所述轮廓图形中确定所述人脸图像的头发轮廓图形,并根据所述人脸关键点的坐标信息计算所述头发轮廓图形的坐标信息;任务解析模块605,用于获取用户输入的头发识别请求,并解析所述头发识别请求中携带的头发识别任务标识,其中所述头发识别任务标识包括头发细节识别标识和/或发型识别标识;头发细节识别模块606,用于当所述头发识别任务标识包括头发细节识别标识时,根据所述人脸关键点的坐标信息和所述头发轮廓图形的坐标信息,计算所述人脸图像的头发细节信息;发型信息识别模块607,用于当所述头发识别任务标识包括发型识别标识时,根据所述头发轮廓图形提取所述人脸图像中的头发图像特征,并根据所述头发图像特征识别所述人脸图像的发型信息。
需要强调的是,为保证数据的私密和安全性,上述人脸图像可以存储于一区块链的节点中。
本发明实施例中,所述头发信息识别装置运行上述头发信息识别方法,所述头发信息识别装置通过获取待识别的人脸图像;将所述人脸图像分别输入至预先训练好的人脸关键点识别模型和轮廓识别模型中,得到所述人脸图像的人脸关键点的坐标信息和所述人脸图像的头发轮廓图形;根据所述人脸关键点的坐标信息计算所述头发轮廓图形的坐标信息;获取用户输入的头发识别请求,根据所述头发识别请求选择对应的头发识别任务,其中所述头发识别任务包括头发细节识别和发型识别;若所述头发识别任务为头发细节识别,则根据所述人脸关键点的坐标信息和所述头发轮廓图形的坐标信息,计算所述人脸图像的头发细节信息;若所述头发识别任务为发型识别,则根据所述头发轮廓图形提取所述人脸图像中的头发图像特征,并根据所述头发图像特征识别所述人脸图像的发型信息。本方法基于深度学习技术,对人脸图像进行识别,得到头发轮廓和人脸关键点,基于应用场景定义头发信息,进行头发信息的计算,不仅能够对头发的整体区域进行识别,同时能够准确地对头发的诸多信息进行有效识别。
请参阅图7,本发明实施例中头发信息识别装置的第二个实施例包括:
获取模块601,用于获取待识别的人脸图像;第一模型输入模块602,用于将所述人脸图像输入至预先训练好的人脸关键点识别模型中进行人脸特征识别,得到所述人脸图像的人脸关键点及其坐标信息;第二模型输入模块603,用于将所述人脸图像输入至预先训练好的轮廓识别模型中,得到所述人脸图像的至少一个轮廓图形;头发轮廓确定模块604,用于根据所述人脸关键点,从所述轮廓图形中确定所述人脸图像的头发轮廓图形,并根据所述人脸关键点的坐标信息计算所述头发轮廓图形的坐标信息;任务解析模块605,用于获取用户输入的头发识别请求,并解析所述头发识别请求中携带的头发识别任务标识,其中所述头发识别任务标识包括头发细节识别标识和/或发型识别标识;头发细节识别模块606,用于当所述头发识别任务标识包括头发细节识别标识时,根据所述人脸关键点的坐标信息和所述头发轮廓图形的坐标信息,计算所述人脸图像的头发细节信息;发型信息识别模块607,用于当所述头发识别任务标识包括发型识别标识时,根据所述头发轮廓图形提取所述人脸图像中的头发图像特征,并根据所述头发图像特征识别所述人脸图像的发型信息。
其中,所述头发信息识别装置还包括第一模型训练模块608,所述第一模型训练模块608具体用于:获取训练样本集,其中,所述训练样本集包括样本人脸图像;获取所述样本人脸图像的第一样本人脸关键点信息,并对所述第一样本人脸关键点信息进行标注,得到第一样本人脸姿态信息;将所述样本人脸图像输入至预设的神经网络中,得到第二样本人脸关键点信息和第二样本人脸姿态信息;将所述第一样本人脸关键点信息和所述第一样本人脸姿态信息分别与所述第二样本人脸关键点信息和第二样本人脸姿态信息进行比较,计算损失函数;判断所述损失函数是否大于预设阈值;若是,则根据所述损失函数调整所述神经网络的参数,并将所述样本人脸图像输入至参数调整后的神经网络中,重复模型训练,直至所述损失函数不大于预设阈值,得到人脸关键点识别模型。
其中,所述头发信息识别装置还包括第二模型训练模块609,所述第二模型训练模块609具体用于:获取预设的测试集,其中,所述测试集包括测试人脸图像;获取所述样本人脸图像和所述测试人脸图像的标记信息,并根据所述标记信息生成所述样本人脸图像和所述测试人脸图像对应的掩模图像;将所述样本人脸图像输入至语义分割网络中,得到语义分割图像,并通过交叉熵损失函数计算所述语义分割图像与所述样本人脸图像对应的掩模图像之间的损失值,并根据所述值调整所述语义分割网络的参数进行下一轮训练,直至进行完预设轮数训练后结束;将所述测试集输入至训练结束后的语义分割网络中,得到对应的语义分割图像,并根据所述测试集对应的掩模图像和所述测试集对应的语义分割图像计算分割评价指标;判断所述分割评价指标是否达到预设标准;若否,则调整所述交叉熵损失函数,并再次对所述语义分割网络进行训练和测试,直至所述分割评价指标达到预设标准,得到轮廓识别模型。
可选的,所述人脸关键点包括左眼关键点和右眼关键点,所述头发细节信息包括刘海长度信息,所述头发细节识别模块606具体用于:根据所述左眼关键点和所述右眼关键点的坐标信息,将所述人脸图像划分为左区域、中区域和右区域;根据所述中区域中所述人脸关键点的最低点的坐标信息和所述头发轮廓图形中最高点的坐标信息,计算所述人脸图像中的人脸长度;分别根据所述左区域、中区域和右区域中的头发轮廓图形中的最高点和最低点的坐标信息,计算得到左区域、中区域和右区域的头发长度;将所述头发长度除以所述人脸长度,得到刘海长度信息。
可选的,所述头发细节信息还包括发际线高度信息,所述头发细节识别模块605具体还用于:连接所述左眼关键点和所述右眼关键点,得到连接线;分别计算所述左区域、中区域和右区域的头发轮廓图形中的最低点与所述连接线的距离值,并选择左区域、中区域和右区域中的距离值的最大值除以所述人脸长度,得到所述人脸图像的额头高度;将一减去所述额头高度,得到所述人脸图像的发际线高度信息。
可选的,所述头发细节识别模块605具体还用于:根据所述头发轮廓图形的坐标信息,构建最小发域矩形,并计算所述最小发域矩形的面积,其中,所述最小发域矩形为包含所述头发轮廓图形的最小矩形;根据所述人脸关键点的坐标信息,构建最小脸部矩形,并计算所述最小脸部矩形的面积,其中所述最小脸部矩形为包含所有所述人脸关键点的最小矩形;将所述最小发域矩形的面积除以所述最小脸部矩形的面积,得到所述人脸图像的发量信息。
可选的,所述发型信息识别模块607具体用于:根据所述头发轮廓图形,提取所述人脸图像中的头发图像;根据预设的多任务卷积神经网络,提取所述头发图像中的头发图像特征;根据提取到的头发图像特征,执行至少一个发型识别任务,得到至少一个发型信息。
本实施例在上一实施例的基础上,详细描述了各个模块的具体功能以及部分模块的单元构成,通过新增的模块,基于深度学习技术,对人脸图像进行识别,得到头发轮廓和人脸关键点,基于应用场景定义头发信息,进行头发信息的计算,不仅能够对头发的整体区域进行识别,同时能够准确地对头发的诸多信息进行有效识别。
上面图6和图7从模块化功能实体的角度对本发明实施例中的中头发信息识别装置进行详细描述,下面从硬件处理的角度对本发明实施例中头发信息识别设备进行详细描述。
图8是本发明实施例提供的一种头发信息识别设备的结构示意图,该头发信息识别设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)810(例如,一个或一个以上处理器)和存储器820,一个或一个以上存储应用程序833或数据832的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器820和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对头发信息识别设备800中的一系列指令操作。更进一步地,处理器810可以设置为与存储介质830通信,在头发信息识别设备800上执行存储介质830中的一系列指令操作,以实现上述头发信息识别方法的步骤。
头发信息识别设备800还可以包括一个或一个以上电源840,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口860,和/或,一个或一个以上操作系统831,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图8示出的头发信息识别设备结构并不构成对本申请提供的头发信息识别设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Block chain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述头发信息识别方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 头发信息识别方法、装置、设备及存储介质
- 发票信息识别方法及发票信息识别装置、设备和存储介质