指甲关键点检测方法、装置、电子设备及存储介质

文档序号:1832025 发布日期:2021-11-12 浏览:9次 >En<

阅读说明:本技术 指甲关键点检测方法、装置、电子设备及存储介质 (Nail key point detection method and device, electronic equipment and storage medium ) 是由 张知行 于 2020-04-27 设计创作,主要内容包括:本公开关于一种指甲关键点检测方法、装置、电子设备及存储介质,其中方法通过获取具有指甲区域的待检测图像,并将待检测图像输入关键点检测模型中进行关键点提取,从而得到与指甲区域中指甲的方向对应的指甲关键点坐标,由于关键点检测模型是采用包括了角度损失项和距离损失项的预设损失函数进行训练后得到的,从而保证了模型输出结果的稳定性与准确性,即得到的指甲关键点坐标具有稳定的方向性,因此,避免了传统技术中因指甲关键点存在方向抖动,而导致难以完成素材贴合的问题。(The method obtains an image to be detected with a nail area, inputs the image to be detected into a key point detection model to extract key points, and obtains nail key point coordinates corresponding to the direction of a nail in the nail area.)

指甲关键点检测方法、装置、电子设备及存储介质

技术领域

本公开涉及深度学习技术领域,尤其涉及一种指甲关键点检测方法、装置、电子设备及存储介质。

背景技术

随着深度学习技术的发展,虚拟美甲在短视频应用或相机应用中越来越常见。目前常见的虚拟美甲是基于指甲关键点,来指导具有方向性的素材贴合。

相关技术中,目前的关键点检测方案可以较为准确的进行指甲关键点检测,但是,却难以避免最终计算出的指甲关键点存在方向的抖动性,从而导致难以完成具有方向性的素材贴合。

发明内容

本公开提供一种指甲关键点检测方法、装置、电子设备及存储介质,以至少解决相关技术中难以避免计算出的指甲关键点存在方向抖动性的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种指甲关键点检测方法,包括:

获取待检测图像,所述待检测图像中包括指甲区域;

将待检测图像输入关键点检测模型中,得到与指甲区域中指甲的方向对应的指甲关键点坐标,所述关键点检测模型是采用预设的损失函数预先训练神经网络得到的,所述预设的损失函数中包括角度损失项和距离损失项。

在其中一个实施例中,关键点检测模型的训练方法,包括:获取指甲样本图像,所述指甲样本图像中标注了指甲根关键点坐标和指甲尖关键点坐标;采用神经网络提取指甲样本图像中与标注的指甲尖关键点坐标对应的第一预测指甲关键点坐标,以及与标注的指甲根关键点坐标对应的第二预测指甲关键点坐标;根据预设的损失函数、标注的指甲尖关键点坐标和指甲根关键点坐标、以及第一预测指甲关键点坐标和第二预测指甲关键点坐标,确定损失值;根据损失值训练所述神经网络,得到关键点检测模型。

在其中一个实施例中,根据预设的损失函数、标注的指甲尖关键点坐标和指甲根关键点坐标、以及第一预测指甲关键点坐标和第二预测指甲关键点坐标,确定损失值,包括:根据角度损失项,计算第一预测指甲关键点坐标和第二预测指甲关键点坐标与标注的指甲尖关键点坐标和指甲根关键点坐标之间的角度损失;根据距离损失项,计算第一预测指甲关键点坐标和第二预测指甲关键点坐标与标注的指甲尖关键点坐标和指甲根关键点坐标之间的距离损失;将角度损失和距离损失之和确定为所述损失值。

在其中一个实施例中,根据角度损失项,计算第一预测指甲关键点坐标和第二预测指甲关键点坐标与标注的指甲尖关键点坐标和指甲根关键点之间的角度损失,包括:确定第一预测指甲关键点坐标和第二预测指甲关键点坐标之间的第一连线;确定标注的指甲尖关键点坐标和指甲根关键点之间的第二连线;根据角度损失项计算第一连线与第二连线之间的夹角,将夹角确定为所述角度损失。

在其中一个实施例中,角度损失项为:其中,x为指甲样本图像,x1、y1为在指甲样本图像映射的平面直角坐标系中标注的指甲尖关键点坐标,x2、y2为在指甲样本图像映射的平面直角坐标系中标注的指甲根关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲尖关键点坐标对应的第一预测指甲关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲根关键点坐标对应的第二预测指甲关键点坐标。

在其中一个实施例中,根据距离损失项,计算第一预测指甲关键点坐标和第二预测指甲关键点坐标与标注的指甲尖关键点坐标和指甲根关键点坐标之间的距离损失,包括:根据距离损失项计算第一预测指甲关键点坐标与标注的指甲尖关键点坐标之间的第一距离,计算第二预测指甲关键点坐标与标注的指甲根关键点坐标之间的第二距离;将第一距离与第二距离的和确定为距离损失。

在其中一个实施例中,距离损失项为:其中,x为指甲样本图像,x1、y1为在指甲样本图像映射的平面直角坐标系中标注的指甲尖关键点坐标,x2、y2为在指甲样本图像映射的平面直角坐标系中标注的指甲根关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲尖关键点坐标对应的第一预测指甲关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲根关键点坐标对应的第二预测指甲关键点坐标,λ表示权重。

在其中一个实施例中,根据损失值训练所述神经网络之前,还包括:确定λ的大小,所述λ的大小用于控制所述神经网络输出结果中角度的准确性权重或距离的准确性权重。

在其中一个实施例中,根据损失值训练所述神经网络,包括:根据损失值判断所述神经网络是否收敛;若所述神经网络收敛,则确定所述神经网络训练完成,更新所述神经网络的参数,将更新参数后的所述神经网络确定为关键点检测模型;若所述神经网络不收敛,则根据损失值调整所述神经网络的参数,返回执行采用所述神经网络提取所述指甲样本图像中与标注的指甲尖关键点坐标对应的第一预测指甲关键点坐标,以及与标注的指甲根关键点坐标对应的第二预测指甲关键点坐标的步骤,直到所述神经网络收敛。

根据本公开实施例的第二方面,提供一种指甲关键点检测装置,包括:

待检测图像获取模块,被配置为执行获取待检测图像,所述待检测图像中包括指甲区域;

指甲关键点坐标检测模块,被配置为执行将待检测图像输入关键点检测模型中,得到与指甲区域中指甲的方向对应的指甲关键点坐标,所述关键点检测模型是采用预设的损失函数预先训练神经网络得到的,所述预设的损失函数中包括角度损失项和距离损失项。

在其中一个实施例中,指甲关键点坐标检测模块包括:样本图像获取子模块,被配置为执行获取指甲样本图像,所述指甲样本图像中标注了指甲根关键点坐标和指甲尖关键点坐标;特征提取子模块,被配置为执行采用神经网络提取指甲样本图像中与标注的指甲尖关键点坐标对应的第一预测指甲关键点坐标,以及与标注的指甲根关键点坐标对应的第二预测指甲关键点坐标;损失值确定子模块,被配置为执行根据预设的损失函数、标注的指甲尖关键点坐标和指甲根关键点坐标、以及第一预测指甲关键点坐标和第二预测指甲关键点坐标,确定损失值;模型训练子模块,被配置为执行根据损失值训练所述神经网络,得到关键点检测模型。

在其中一个实施例中,损失值确定子模块包括:角度损失计算单元,被配置为执行根据角度损失项,计算第一预测指甲关键点坐标和第二预测指甲关键点坐标与标注的指甲尖关键点坐标和指甲根关键点坐标之间的角度损失;距离损失计算单元,被配置为执行根据距离损失项,计算第一预测指甲关键点坐标和第二预测指甲关键点坐标与标注的指甲尖关键点坐标和指甲根关键点坐标之间的距离损失;损失值计算单元,被配置为执行将角度损失和距离损失之和确定为损失值。

在其中一个实施例中,角度损失计算单元,被配置为执行:确定第一预测指甲关键点坐标和第二预测指甲关键点坐标之间的第一连线;确定标注的指甲尖关键点坐标和指甲根关键点之间的第二连线;根据角度损失项计算第一连线与第二连线之间的夹角,将夹角确定为角度损失。

在其中一个实施例中,角度损失项为:其中,x为指甲样本图像,x1、y1为在指甲样本图像映射的平面直角坐标系中标注的指甲尖关键点坐标,x2、y2为在指甲样本图像映射的平面直角坐标系中标注的指甲根关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲尖关键点坐标对应的第一预测指甲关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲根关键点坐标对应的第二预测指甲关键点坐标。

在其中一个实施例中,距离损失计算单元,被配置为执行:根据距离损失项计算第一预测指甲关键点坐标与标注的指甲尖关键点坐标之间的第一距离,计算第二预测指甲关键点坐标与标注的指甲根关键点坐标之间的第二距离;将第一距离与第二距离的和确定为距离损失。

在其中一个实施例中,距离损失项为:其中,x为指甲样本图像,x1、y1为在指甲样本图像映射的平面直角坐标系中标注的指甲尖关键点坐标,x2、y2为在指甲样本图像映射的平面直角坐标系中标注的指甲根关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲尖关键点坐标对应的第一预测指甲关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲根关键点坐标对应的第二预测指甲关键点坐标,λ表示权重。

在其中一个实施例中,模型训练子模块还包括参数确定单元,被配置为执行确定λ的大小,所述λ的大小用于控制所述神经网络输出结果中角度的准确性权重或距离的准确性权重。

在其中一个实施例中,模型训练子模块被配置为执行:根据损失值判断神经网络是否收敛;若所述神经网络收敛,则确定所述神经网络训练完成,更新所述神经网络的参数,将更新参数后的所述神经网络确定为关键点检测模型;若所述神经网络不收敛,则根据损失值调整所述神经网络的参数,返回执行采用神经网络提取指甲样本图像中与标注的指甲尖关键点坐标对应的第一预测指甲关键点坐标,以及与标注的指甲根关键点坐标对应的第二预测指甲关键点坐标的步骤,直到所述神经网络收敛。

根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,使得电子设备执行第一方面的任一项实施例中所述的指甲关键点检测方法。

根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行第一方面的任一项实施例中所述的指甲关键点检测方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行第一方面的任一项实施例中所述的指甲关键点检测方法。

本公开的实施例提供的技术方案至少带来以下有益效果:通过获取具有指甲区域的待检测图像,并将待检测图像输入关键点检测模型中进行关键点提取,从而得到与指甲区域中指甲的方向对应的指甲关键点坐标,由于关键点检测模型是采用包括了角度损失项和距离损失项的预设损失函数进行训练后得到的,从而保证了模型输出结果的稳定性与准确性,即得到的指甲关键点坐标具有稳定的方向性,能够较好的完成素材贴合,因此,避免了传统技术中因指甲关键点存在方向抖动,而导致难以完成素材贴合的问题。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的传统技术中关键点检测的输出示意图。

图2是根据一示例性实施例示出的一种指甲关键点检测方法的应用环境图。

图3是根据一示例性实施例示出的一种指甲关键点检测方法的流程图。

图4是根据一示例性实施例示出的关键点检测模型的训练步骤的流程图。

图5是根据一示例性实施例示出的确定损失值的步骤的流程图。

图6是根据一示例性实施例示出的指甲关键点检测的输出比较示意图。

图7是根据一示例性实施例示出的一种指甲关键点检测装置的框图。

图8是根据一示例性实施例示出的一种电子设备的内部结构图。

图9是根据一示例性实施例示出的一种服务器的内部结构图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

由于传统技术的关键点检测中对模型输出坐标与真实坐标之间通常使用平均绝对值差进行损失函数计算并反向传播,其优化的是坐标间的距离,因此,只能约束模型输出关键点坐标的准确性,但是没有办法对方向的准确性进行约束,如图1所示,在应用模型进行指甲关键点坐标检测时,对应相同的输入,在不同的随机噪声下,模型可能会输出第一类坐标和第二类坐标两种结果。由于第一类坐标的连线10和第二类坐标的连线20对应着相同的损失函数(图中未示出具体的坐标点,可以理解的是,连线的两个端点即为对应的坐标,例如连线10的两个端点即为第一类坐标),且与真实坐标的连线30之间的损失值也相同,这就会导致在应用时模型时输出的指甲关键点坐标的方向在第一类坐标和第二类坐标之间不停抖动,从而导致难以完成素材贴合。

基于此,本公开提供了一种指甲关键点检测方法,可以应用于如图2所示的应用环境中。其中,终端210通过网络与服务器220进行交互。具体的,终端210可以是各种具有图像采集功能的设备,如可以但不限于各种智能手机、平板电脑、相机和便携式图像采集设备,服务器220可以用独立的服务器或者是多个服务器组成的服务器集群来实现。在本实施例中,指甲关键点检测方法可以应用于服务器220,具体的,终端210用于采集待检测图像,其中,待检测图像中包括指甲区域,终端210将采集的待检测图像通过网络发送至服务器220,服务器220则将待检测图像输入关键点检测模型中,得到与指甲区域中指甲的方向对应的指甲关键点坐标,其中,关键点检测模型是采用预设的损失函数预先训练神经网络得到的,预设的损失函数中至少包括角度损失函数。由于对神经网络进行训练的损失函数中具有角度损失函数,因此,可以有效约束方向的准确性,使得训练后的关键点检测模型可以输出方向稳定的指甲关键点坐标。

本公开所提供的指甲关键点检测方法,也可以应用于终端210中,具体的,终端210中加载有训练后的关键点检测模型,终端210还可以采集待检测图像,其中,待检测图像中包括指甲区域,终端210将采集的待检测图像通过关键点检测模型进行关键点检测,得到与指甲区域中指甲的方向对应的指甲关键点坐标,其中,关键点检测模型是采用预设的损失函数预先训练神经网络得到的,预设的损失函数中至少包括角度损失函数。由于对神经网络进行训练的损失函数中具有角度损失函数,因此,可以有效约束方向的准确性,通过在终端中加载训练后的关键点检测模型,从而可以输出方向稳定的指甲关键点坐标。

图3是根据一示例性实施例示出的一种指甲关键点检测方法的流程图,如图3所示,以该方法应用于终端为例进行说明,包括以下步骤。

在步骤S310中,获取待检测图像。

其中,待检测图像是指待进行指甲关键点检测的图像,具体的,待检测图像中包括指甲区域。在本实施例中,待检测图像可以是终端采集的具有指甲区域的图像,例如,对于虚拟美甲的场景,当用户需要进行虚拟美甲时,则通过终端采集包括用户的指甲区域的待检测图像,以便于终端对采集的待检测图像进行后续处理,从而进行素材贴合,以完成虚拟美甲。

在步骤S320中,将待检测图像输入关键点检测模型中,得到与指甲区域中指甲的方向对应的指甲关键点坐标。

其中,关键点检测模型是采用预设的损失函数预先训练神经网络得到的,而预设的损失函数中包括角度损失项和距离损失项。具体的,神经网络可以是基于基本的特征提取网络框架实现的,其中,基本的特征提取网络框架包括但不限于VGG(Visual GeometryGroup Network,神经网络)或hourglass network(沙漏网络)等网络;角度损失项则用于在对模型训练的过程中,对模型输出结果的角度或方向进行约束,距离损失项则用于在对模型训练的过程中,对模型输出结果的位置进行约束,从而保证模型输出结果的稳定性与准确性。指甲关键点坐标则是指指甲中对素材贴合的方向起决定性影响的坐标位置。指甲的方向可以是指指甲的生长方向,如从指甲根到指甲尖的方向,当然,也可以是与此方向相反的方向,或是其他的方向,本实施例并不对此进行限定。在本实施例中,终端通过关键点检测模型对采集的待检测图像进行检测,从而得到待检测图像中与指甲区域内指甲的方向对应的指甲关键点坐标,即得到的指甲关键点坐标的方向与指甲区域中指甲的方向相同,因此,可以基于得到的指甲关键点坐标进行素材贴合,以完成虚拟美甲。

上述指甲关键点检测方法中,通过获取具有指甲区域的待检测图像,并将待检测图像输入关键点检测模型中进行关键点提取,从而得到与指甲区域中指甲的方向对应的指甲关键点坐标,由于关键点检测模型是采用包括了角度损失项和距离损失项的预设损失函数进行训练后得到的,从而保证了模型输出结果的稳定性与准确性,即得到的指甲关键点坐标具有稳定的方向性,能够较好的完成素材贴合,因此,避免了传统技术中因指甲关键点存在方向抖动,而导致难以完成素材贴合的问题。

在一示例性实施例中,如图4所示,关键点检测模型的训练方法可以包括如下步骤:

在步骤S410中,获取指甲样本图像。

其中,指甲样本图像是用于对神经网络进行训练的训练数据,指甲样本图像中标注了指甲根关键点坐标和指甲尖关键点坐标,具体的,指甲根关键点坐标可以是指甲根部的顶点坐标或指甲根部的中心点坐标,指甲尖关键点坐标则可以是指甲尖的顶点坐标或指甲尖的中心点坐标。在本实施例中,通过在获取的指甲样本图像中标注出指甲根关键点坐标和指甲尖关键点坐标,从而使得神经网络可以学习到指甲的方向性特征。

在步骤S420中,采用神经网络提取指甲样本图像中的预测指甲关键点坐标。

其中,预测指甲关键点坐标是指经过神经网络对指甲样本图像进行特征检测后,得到的输出结果,具体的,预测指甲关键点坐标包括与标注的指甲尖关键点坐标对应的第一预测指甲关键点坐标,以及与标注的指甲根关键点坐标对应的第二预测指甲关键点坐标。在本实施例,通过神经网络对指甲样本图像进行关键点提取,从而得到指甲样本图像中与标注的指甲尖关键点坐标对应的第一预测指甲关键点坐标,以及与标注的指甲根关键点坐标对应的第二预测指甲关键点坐标。

在步骤S430中,根据预设的损失函数、标注的指甲根关键点坐标和指甲尖关键点坐标以及预测指甲关键点坐标,确定损失值。

其中,预设的损失函数中包括角度损失项和距离损失项,具体的,角度损失项用于表示指甲样本图像中,预测的第一预测指甲关键点坐标和第二预测指甲关键点坐标与标注的指甲根关键点坐标和指甲尖关键点坐标之间的角度损失;距离损失项用于表示指甲样本图像中,预测的第一预测指甲关键点坐标和第二预测指甲关键点坐标与标注的指甲根关键点坐标和指甲尖关键点坐标之间的距离损失。在本实施例中,根据预设的损失函数、标注的指甲根关键点坐标和指甲尖关键点坐标以及对应的第一预测指甲关键点坐标和第二预测指甲关键点坐标,从而得到对应的损失值。

在步骤S440中,根据损失值训练神经网络,得到关键点检测模型。

具体的,根据损失值可以判断神经网络是否收敛,当确定神经网络收敛时,则神经网络训练完成,并更新神经网络的参数,将更新参数后的神经网络确定为关键点检测模型。当确定神经网络没有收敛时,则可以根据损失值调整神经网络的参数,并基于反向传播法继续对神经网络进行训练,即返回执行采用神经网络提取指甲样本图像中的预测指甲关键点坐标的步骤,直到神经网络收敛。

上述实施例中,由于在对网络进行训练时使用的指甲样本图像中标注了指甲根关键点坐标和指甲尖关键点坐标,且在训练过程中使用了包括角度损失项和距离损失项的损失函数,从而使得模型可以学习到指甲的方向性特征,进而在利用模型对指甲关键点检测时,可以输出与待检测图像中指甲的方向相对应的指甲关键点坐标,保证了模型输出结果的稳定性。

在一示例性实施例中,如图5所示,在步骤S430中,根据预设的损失函数、标注的指甲根关键点坐标和指甲尖关键点坐标、以及第一预测指甲关键点坐标和第二预测指甲关键点坐标,确定损失值,具体可以通过以下步骤实现:

在步骤S431中,根据预设的角度损失项,计算第一预测指甲关键点坐标和第二预测指甲关键点坐标与标注的指甲根关键点坐标和指甲尖关键点坐标之间的角度损失。

具体的,由于角度损失项用于表示指甲样本图像中,预测指甲关键点坐标与标注的指甲根关键点坐标和指甲尖关键点坐标之间的角度损失,即模型输出关键点坐标的连线与标注坐标的连线之间的角度,而角度通常是由两条相交的直线确定,一条直线又由至少两个点确定,而在本实施例中,预测指甲关键点坐标又包括第一预测指甲关键点坐标和第二预测指甲关键点坐标,因此,通过第一预测指甲关键点坐标和第二预测指甲关键点坐标确定两者之间的第一连线,通过指甲根关键点坐标和指甲尖关键点坐标确定两者之间的第二连线,进而根据角度损失项计算第一连线与第二连线之间的夹角,该夹角则为预测指甲关键点坐标与标注的指甲根关键点坐标和指甲尖关键点坐标之间的角度损失。

在步骤S432中,根据预设的损失函数中的距离损失项,计算预测指甲关键点坐标与标注的指甲根关键点坐标和指甲尖关键点坐标之间的距离损失。

由于距离损失项用于表示指甲样本图像中,预测指甲关键点坐标与标注的指甲根关键点坐标和指甲尖关键点坐标之间的距离损失,即模型输出关键点坐标与标注坐标之间的距离,在本实施例中,以曼哈顿距离为例进行说明,则预测指甲关键点坐标与标注的指甲根关键点坐标和指甲尖关键点坐标之间的距离损失为:第一预测指甲关键点坐标和第二预测指甲关键点与指甲根关键点坐标和指甲尖关键点坐标之间在标准坐标系上的绝对轴距总和。具体的,根据距离损失项计算第一预测指甲关键点坐标与标注的指甲尖关键点坐标之间的第一距离,计算第二预测指甲关键点坐标与标注的指甲根关键点坐标之间的第二距离,将第一距离与第二距离的和确定为距离损失。

在步骤S433中,将角度损失和距离损失之和确定为损失值。

具体的,对神经网络进行训练的损失值,可以是上述角度损失和距离损失之和。从而使得训练后的模型可以输出具有稳定方向和准确距离的结果。

在一示例性实施例中,上述角度损失项具体可以采用如下表达式实现:

上述距离损失项具体可以采用如下表达式实现:其表示预测指甲关键点坐标与标注的指甲根关键点坐标和指甲尖关键点坐标之间的曼哈顿距离;则预设的损失函数为:L=Lθ(x)+Ld。其中,x为指甲样本图像,x1、y1为在指甲样本图像映射的平面直角坐标系中标注的指甲尖关键点坐标,x2、y2为在指甲样本图像映射的平面直角坐标系中标注的指甲根关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲尖关键点坐标对应的第一预测指甲关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲根关键点坐标对应的第二预测指甲关键点坐标,λ表示权重,其初始值通常为1,在模型训练过程中,可以通过调节λ的比例来控制模型输出结果中角度的准确性权重或距离的准确性权重,即通过调节λ的比例可以使得模型最终输出的结果是更倾向于方向的准确性和稳定性还是坐标位置的准确性,例如,若增大λ,则输出结果的方向会更准确,但是坐标位置会存在较大偏差,因此,λ的具体取值可以通过对模型的训练过程中进行调整。

在一示例性实施例中,上述距离损失项具体还可以采用如下表达式实现:即通过平均平方差来替代上述公式中的平均绝对值,具体也可以采用其他相类似的替代方式,本实施例中并不对此进行限定。

由于使用上述损失函数对神经网络进行训练,从而使得模型可以学习到标注的指甲的方向性特征,如图6所示,虽然第一类坐标的连线100和第二类坐标的连线200对应着相同的损失函数(图中未示出具体的坐标点,可以理解的是,连线的两个端点即为对应的坐标点,例如连线100的两个端点即为第一类坐标,其中,连线300是标注的指甲根关键点坐标和指甲尖关键点坐标之间的连线),且连线100和连线200对应着损失函数的第二项(即距离损失)的值也相同,但是由于损失函数的第一项(即角度损失)的控制,模型输出第二类坐标会带来更低的损失函数数值,通过充分的训练后,在应用训练后的模型对待检测图像进行指甲关键点坐标检测时,模型则更倾向于输出第二类坐标,从而保证了模型输出结果在方向上的稳定性和准确性,并有效解决了在方向性虚拟美甲贴合中,指甲关键点方向抖动的问题。

应该理解的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

图7是根据一示例性实施例示出的一种指甲关键点检测装置框图。参照图7,该装置包括待检测图像获取模块701和指甲关键点坐标检测模块702。

待检测图像获取模块701,被配置为执行获取待检测图像,其中,待检测图像中包括指甲区域;

指甲关键点坐标检测模块702,被配置为执行将待检测图像输入关键点检测模型中,得到与指甲区域中指甲的方向对应的指甲关键点坐标,其中,关键点检测模型是采用预设的损失函数预先训练神经网络得到的,所述预设的损失函数中包括角度损失项和距离损失项。

在一示例性实施例中,指甲关键点坐标检测模块702包括:样本图像获取子模块,被配置为执行获取指甲样本图像,所述指甲样本图像中标注了指甲根关键点坐标和指甲尖关键点坐标;特征提取子模块,被配置为执行采用神经网络提取指甲样本图像中与标注的指甲尖关键点坐标对应的第一预测指甲关键点坐标,以及与标注的指甲根关键点坐标对应的第二预测指甲关键点坐标;损失值确定子模块,被配置为执行根据预设的损失函数、标注的指甲尖关键点坐标和指甲根关键点坐标、以及第一预测指甲关键点坐标和第二预测指甲关键点坐标,确定损失值;模型训练子模块,被配置为执行根据损失值训练所述神经网络,得到关键点检测模型。

在一示例性实施例中,损失值确定子模块包括:角度损失计算单元,被配置为执行根据角度损失项,计算第一预测指甲关键点坐标和第二预测指甲关键点坐标与标注的指甲尖关键点坐标和指甲根关键点坐标之间的角度损失;距离损失计算单元,被配置为执行根据距离损失项,计算第一预测指甲关键点坐标和第二预测指甲关键点坐标与标注的指甲尖关键点坐标和指甲根关键点坐标之间的距离损失;损失值计算单元,被配置为执行将角度损失和距离损失之和确定为损失值。

在一示例性实施例中,角度损失计算单元,被配置为执行:确定第一预测指甲关键点坐标和第二预测指甲关键点坐标之间的第一连线;确定标注的指甲尖关键点坐标和指甲根关键点之间的第二连线;根据角度损失项计算第一连线与第二连线之间的夹角,将夹角确定为角度损失。

在一示例性实施例中,角度损失项为:其中,x为指甲样本图像,x1、y1为在指甲样本图像映射的平面直角坐标系中标注的指甲尖关键点坐标,x2、y2为在指甲样本图像映射的平面直角坐标系中标注的指甲根关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲尖关键点坐标对应的第一预测指甲关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲根关键点坐标对应的第二预测指甲关键点坐标。

在一示例性实施例中,距离损失计算单元,被配置为执行:根据距离损失项计算第一预测指甲关键点坐标与标注的指甲尖关键点坐标之间的第一距离,计算第二预测指甲关键点坐标与标注的指甲根关键点坐标之间的第二距离;将第一距离与第二距离的和确定为距离损失。

在一示例性实施例中,距离损失项为:其中,x为指甲样本图像,x1、y1为在指甲样本图像映射的平面直角坐标系中标注的指甲尖关键点坐标,x2、y2为在指甲样本图像映射的平面直角坐标系中标注的指甲根关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲尖关键点坐标对应的第一预测指甲关键点坐标,为神经网络从指甲样本图像映射的平面直角坐标系中提取的与指甲根关键点坐标对应的第二预测指甲关键点坐标,λ表示权重。

在一示例性实施例中,模型训练子模块还包括参数确定单元,被配置为执行确定λ的大小,所述λ的大小用于控制所述神经网络输出结果中角度的准确性权重或距离的准确性权重。

在一示例性实施例中,模型训练子模块被配置为执行:根据损失值判断神经网络是否收敛;若所述神经网络收敛,则确定所述神经网络训练完成,更新所述神经网络的参数,将更新参数后的所述神经网络确定为关键点检测模型;若所述神经网络不收敛,则根据损失值调整所述神经网络的参数,返回执行采用神经网络提取指甲样本图像中与标注的指甲尖关键点坐标对应的第一预测指甲关键点坐标,以及与标注的指甲根关键点坐标对应的第二预测指甲关键点坐标的步骤,直到所述神经网络收敛。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图8是根据一示例性实施例示出的一种用于指甲关键点检测方法的设备Z00的框图。例如,设备Z00可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。

参照图8,设备Z00可以包括以下一个或多个组件:处理组件Z02、存储器Z04、电力组件Z06、多媒体组件Z08、音频组件Z10、输入/输出(I/O)的接口Z12、传感器组件Z14以及通信组件Z16。

处理组件Z02通常控制设备Z00的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件Z02可以包括一个或多个处理器Z20来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件Z02可以包括一个或多个模块,便于处理组件Z02和其他组件之间的交互。例如,处理组件Z02可以包括多媒体模块,以方便多媒体组件Z08和处理组件Z02之间的交互。

存储器Z04被配置为存储各种类型的数据以支持在设备Z00的操作。这些数据的示例包括用于在设备Z00上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器Z04可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘或光盘。

电源组件Z06为设备Z00的各种组件提供电力。电源组件Z06可以包括电源管理系统,一个或多个电源,及其他与为设备Z00生成、管理和分配电力相关联的组件。

多媒体组件Z08包括在所述设备Z00和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件Z08包括一个前置摄像头和/或后置摄像头。当设备Z00处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件Z10被配置为输出和/或输入音频信号。例如,音频组件Z10包括一个麦克风(MIC),当设备Z00处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器Z04或经由通信组件Z16发送。在一些实施例中,音频组件Z10还包括一个扬声器,用于输出音频信号。

I/O接口Z12为处理组件Z02和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件Z14包括一个或多个传感器,用于为设备Z00提供各个方面的状态评估。例如,传感器组件Z14可以检测到设备Z00的打开/关闭状态,组件的相对定位,例如所述组件为设备Z00的显示器和小键盘,传感器组件Z14还可以检测设备Z00或设备Z00一个组件的位置改变,用户与设备Z00接触的存在或不存在,设备Z00方位或加速/减速和设备Z00的温度变化。传感器组件Z14可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件Z14还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件Z14还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。

通信组件Z16被配置为便于设备Z00和其他设备之间有线或无线方式的通信。设备Z00可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件Z16经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件Z16还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,设备Z00可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器Z04,上述指令可由设备Z00的处理器Z20执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

图9是根据一示例性实施例示出的一种用于指甲关键点检测方法的设备S00的框图。例如,设备S00可以为一服务器。参照图9,设备S00包括处理组件S20,其进一步包括一个或多个处理器,以及由存储器S22所代表的存储器资源,用于存储可由处理组件S20的执行的指令,例如应用程序。存储器S22中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件S20被配置为执行指令,以执行上述指甲关键点检测方法。

设备S00还可以包括一个电源组件S24被配置为执行设备S00的电源管理,一个有线或无线网络接口S26被配置为将设备S00连接到网络,和一个输入输出(I/O)接口S28。设备S00可以操作基于存储在存储器S22的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。

在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器S22,上述指令可由设备S00的处理器执行以完成上述方法。存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种图像中目标对象的识别方法、装置、系统及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!