关键点检测模型的训练方法和检测目标对象关键点的方法与流程

文档序号:25821768发布日期:2021-07-09 14:58阅读:101来源:国知局
关键点检测模型的训练方法和检测目标对象关键点的方法与流程

1.本公开涉及电子技术领域,具体涉及增强现实和深度学习技术领域,更具体地涉及一种关键点检测模型的训练方法和检测目标对象关键点的方法、装置、电子设备和存储介质。


背景技术:

2.目前关键点检测方法使用有标注的监督数据进行训练。为了提高检测精度,通常需要海量的监督数据,这无疑给训练带来了较大的标注成本。


技术实现要素:

3.提供了一种降低训练成本、并保证检测精度的关键点检测模型的训练方法及检测目标对象关键点的方法、装置、电子设备和存储介质。
4.根据本公开的一个方面,提供了一种关键点检测模型的训练方法,该方法包括:获取包括目标对象的训练样本,该训练样本至少包括不具有标签的第一类训练样本;基于训练样本,采用关键点检测模型获得目标对象的多个关键点的预测位置信息;以及基于针对训练样本的预定损失函数和预测位置信息,对关键点检测模型进行训练,其中,针对第一类训练样本的预定损失函数是基于多个关键点中相邻关键点的预测位置信息构建得到的。
5.根据本公开的另一个方面,提供了一种检测目标对象关键点的方法,包括:获取包括目标对象的待处理图像;以及采用关键点检测模型,获得待处理图像中目标对象的关键点的位置信息。其中,关键点检测模型采用前述的关键点检测模型的训练方法训练得到。
6.根据本公开的另一个方面,提供了一种关键点检测模型的训练装置,该装置包括:样本获取模块,用于获取包括目标对象的训练样本,该训练样本至少包括不具有标签的第一类训练样本;预测信息获得模块,用于基于训练样本,采用关键点检测模型获得目标对象的多个关键点的预测位置信息;以及模型训练模块,用于基于针对训练样本的预定损失函数和预测位置信息,对关键点检测模型进行训练,其中,针对第一类训练样本的预定损失函数是基于多个关键点中相邻关键点的预测位置信息构建得到的。
7.根据本公开的另一个方面,提供了一种检测目标对象关键点的装置,该装置包括:图像获取模块,用于获取包括目标对象的待处理图像;以及位置信息确定模块,用于采用关键点检测模型,获得待处理图像中目标对象的关键点的位置信息。其中,关键点检测模型采用前述的关键点检测模型的训练装置训练得到。
8.根据本公开的另一个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的关键点检测模型的训练方法和/或检测目标对象关键点的方法。
9.根据本公开的另一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的关键点检测模型的训练方法和/
或检测目标对象关键点的方法。
10.根据本公开的另一个方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开提供的关键点检测模型的训练方法和/或检测目标对象关键点的方法。
11.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
12.附图用于更好地理解本方案,不构成对本公开的限定。其中:
13.图1是根据本公开实施例的关键点检测模型的训练方法和检测目标对象关键点的方法的应用场景示意图;
14.图2是根据本公开实施例的关键点检测模型的训练方法的流程图;
15.图3是根据本公开另一实施例的关键点检测模型的训练方法的流程图;
16.图4是根据本公开实施例的确定针对第一类训练样本的预定损失函数的取值的原理示意图;
17.图5是根据本公开实施例的检测目标对象关键点的方法的流程图;
18.图6是根据本公开实施例的关键点检测模型的训练装置的结构框图;
19.图7是根据本公开实施例的检测目标对象关键点的装置的结构框图;以及
20.图8是用来实现本公开实施例的关键点检测模型的训练方法和/或检测目标对象关键点的方法的电子设备的框图。
具体实施方式
21.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
22.本公开提供了一种关键点检测模型的训练方法,包括样本获取阶段、预测信息获得阶段和模型训练阶段。在样本获取阶段,获取包括目标对象的训练样本,该训练样本至少包括不具有标签的第一类训练样本。在预测信息获得阶段,基于训练样本,采用关键点检测模型获得目标对象的多个关键点的预测位置信息。在模型训练阶段,基于针对训练样本的预定损失函数和预测位置信息,对关键点检测模型进行训练。其中,针对第一类训练样本的预定损失函数是基于多个关键点中相邻关键点的预测位置信息构建得到的。
23.以下将结合图1对本公开提供的方法和装置的应用场景进行描述。
24.图1是根据本公开实施例的关键点检测模型的训练方法和检测目标对象关键点的方法的应用场景示意图。
25.如图1所示,该应用场景100包括终端设备110,该终端设备可以为具有处理功能的任意电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机和服务器等等。
26.该终端设备110例如可以对输入的图像120进行目标对象的检测,并对检测得到的
目标对象进行关键点的标注,从而实现对目标对象的识别。其中,该终端设备110例如可以采用关键点检测模型来对目标对象的关键点进行标注,获得该目标对象的关键点的位置信息130。
27.示例性地,关键点检测模型例如可以基于回归法或基于高斯热图法构建的模型。其中,回归法通过回归的方法直接输出目标对象的关键点的坐标,该方法适于检测有明显纹理特征的点。高斯热图法的原理为将点的位置信息编码成高斯平滑的峰值点。该高斯热图法适于拟合非刚体的点。
28.根据本公开的实施例,如图1所示,该应用场景100例如还可以包括服务器140。终端设备110可以通过网络与服务器140通信连接,网络可以包括有线或无线通信链路。
29.示例性地,服务器140可以用于训练关键点检测模型,并响应于终端设备110发送的模型获取请求,将训练好的关键点检测模型150发送给终端设备110,便于终端设备110对输入的图像进行目标对象的检测。
30.示例性地,服务器例如可以是提供各种服务的服务器,例如可以为对终端设备110上运行的应用程序提供支持的后台管理服务器。该服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
31.根据本公开的实施例,如图1所示,该应用场景100还可以包括数据库160,该数据库160例如可以维护有海量的图像,该海量的图像中包括具有标签的图像和不具有标签的图像。服务器140例如可以访问该数据库160,并从数据库中的海量的图像中随机抽取部分图像,将抽取的图像作为训练样本对关键点检测模型进行训练。
32.在一实施例中,终端设备110与服务器140例如可以为同一设备,该同一设备中包括用于对图像进行目标对象检测的第一处理模块和用于对关键点检测模型进行训练的第二处理模块。该第一处理模块和第二处理模块之间可以通过网络协议进行通信。
33.需要说明的是,本公开所提供的关键点检测模型的训练方法和检测目标对象关键点的方法可以由服务器140和终端设备110中的不同设备执行,也可以由服务器140和终端设备110中的相同设备执行。相应地,本公开所提供的关键点检测模型的训练装置和检测目标对象关键点的装置可以设置在服务器140和终端设备110中的不同设备中,也可以设置在服务器140和终端设备110中的相同设备中。
34.应该理解,图1中的终端设备、服务器、关键点检测模型和数据库的数目和类型仅仅是示意性的。根据实现需要,可以具有任意数目和类型的终端设备、服务器、关键点检测模型和数据库。
35.图2是根据本公开实施例的关键点检测模型的训练方法的流程图。
36.如图2所示,该实施例的关键点检测模型的训练方法200可以包括操作s210~操作s230。
37.在操作s210,获取包括目标对象的训练样本,该训练样本至少包括不具有标签的第一类训练样本。
38.根据本公开的实施例,每个训练样本例如可以为一张图像,该图像中包括目标对象。其中,目标对象例如可以为任意实体,例如动物、植物、生活用品、服饰鞋帽等。
39.示例性地,例如可以从数据库中随机抽取图像而获得训练样本,该数据库中存储的图像可以包括具有标签的图像和不具有标签的图像。在一实施例中,具有标签的图像和
不具有标签的图像例如可以存储于数据库的不同存储分区。该实施例可以从各存储分区中获取预定数量的图像,从而得到训练样本。其中,图像所具有的标签用于指示图像中目标对象的多个关键点的位置信息,该位置信息可以通过预先标定得到。
40.示例性地,在关键点检测模型为精度未达到预定要求的预先训练的模型时,可以从仅存储不具有标签的图像的存储分区中获取图像,将获取的不具有标签的图像作为第一类训练样本,来对关键点检测模型进行无监督的训练。
41.在操作s220,基于训练样本,采用关键点检测模型获得目标对象的多个关键点的预测位置信息。
42.根据本公开的实施例,关键点检测模型例如可以基于轻量级的前端mvc(model view controller)框架构建,例如可以基于骨干(backbone)架构构建。可以理解的是,该关键点检测模型的架构仅作为示例以利于理解本公开,本公开对此不做限定。
43.示例性地,该关键点检测模型可以为基于回归法或高斯热图法构建的神经网络模型,以通过对输入图像进行处理,输出得到该输入图像中关键点的位置坐标。该操作s220可以将训练样本作为关键点检测模型的输入,经由关键点检测模型处理后输出预测的训练样本中目标对象的关键点的坐标值。可以理解的是,关键点检测模型的类型及采用的算法仅作为示例以利于理解本公开,本公开对此不做限定。
44.根据本公开的实施例,在训练样本为多个的情况下,可以将训练样本分批输入关键点检测模型,以逐次地对模型进行训练。
45.可以理解的是,多个关键点的个数取决于目标对象的类型。对于相同的目标对象,可以根据实际需求设定多个关键点的个数。该多个关键点的个数可以通过对关键点检测模型的初始配置参数来设定,本公开对此不做限定。
46.在操作s230,基于针对训练样本的预定损失函数和预测位置信息,对关键点检测模型进行训练。
47.根据本公开的实施例,针对第一类训练样本,预定损失函数可以是基于多个关键点中相邻关键点的预测位置信息构建得到的。在训练样本为第一类训练样本时,该操作s230可以先根据多个关键点的预测位置信息,确定预定损失函数的取值。以基于该预定损失函数的取值,来对关键点检测模型进行训练。
48.示例性地,可以将将多个关键点的预测位置信息作为预定损失函数中变量的取值,从而得到预定损失函数的取值。随之采用梯度下降算法等来确定该预定损失函数的取值为最小值时,关键点检测模型中参数的取值。将该参数的取值赋值给关键点检测模型,可以实现对关键点检测模型的优化。可以理解的是,确定预定损失函数取值的最小值的算法仅作为示例以利于理解本公开,本公开对此不做限定。例如,还可以采用反向传播算法来确定预定损失函数取值的最小值。其中,例如可以使用pytorch等自动求导系统来完成预定函数取值最小值的确定。
49.示例性地,在确定针对第一类训练样本的预定损失函数的取值时,可以先计算相邻两个关键点的预测位置之间的距离。若该距离大于预定距离,则将该两个关键点的预测位置作为预定损失函数中变量的取值。或者,可以先计算该相邻两个关键点之间的连线与平行于预定轴的直线之间的夹角值,若该夹角值大于预定夹角值,则将该两个关键点的预测位置作为预定损失函数中变量的取值。
50.本公开实施例通过根据相邻关键点之间的位置信息来构建预定损失函数,而无需借助于标签指示的位置信息,可以在训练关键点检测模型时使用无标签的训练样本,以此实现对模型的无监督训练。相较于相关技术中需要采用海量训练样本对模型进行有监督训练的技术方案,可以在使得训练的模型满足精度需求的同时,至少部分地降低标签的标注成本。该实施例的方法尤其适用于因目标对象自由度大、特征纹理多样化而需要更多训练样本的场景。
51.图3是根据本公开另一实施例的关键点检测模型的训练方法的流程图。
52.如图3所示,该实施例的关键点检测模型的训练方法300可以包括操作s310~操作s340。
53.在操作s310,获取包括目标对象的训练样本,该训练样本包括不具有标签的第一类训练样本和具有标签的第二类训练样本。
54.根据本公开的实施例,第二类训练样本的标签指示该第二类训练样本包括的目标对象的关键点的位置信息。第二类训练样本例如可以通过对图像中的目标对象的关键点进行标注而得到。该操作s310的实现方法与前文描述的获取训练样本的方法类似,在此不再赘述。
55.在操作s320,根据训练样本的类型,确定针对训练样本的预定损失函数。
56.根据本公开的实施例,训练样本的类型可以包括第一类型和第二类型,在为第一类型时,训练样本即为前述的第一类训练样本,在为第二类型时,训练样本即为前述的第二类训练样本。该实施例可以根据训练样本是否具有标签来确定训练样本的类型。若具有标签,则为第一类型,若没有标签,则为第二类型。
57.示例性地,在训练样本为第一类训练样本的情况下,针对训练样本的预定损失函数可以为前述的基于多个关键点中相邻关键点的预测位置信息构建得到的函数。后文将详细描述针对第一类训练样本的预定损失函数,在此不再详述。
58.示例性地,在训练样本为第二类训练样本的情况下,针对训练样本的预定损失函数包括以下任意一个:平均绝对误差、均方误差损失、平滑平方绝对误差。可以理解的是,上述针对第二类训练样本的预定损失函数的类型仅作为示例以利于理解本公开,本公开对此不做限定。
59.在操作s330,基于训练样本,采用关键点检测模型获得目标对象的多个关键点的预测位置信息。根据本公开的实施例,该操作s330的实现方式与前文描述的获得预测位置信息的方法类似,在此不再赘述。
60.在操作s340,基于针对训练样本的预定损失函数和预测位置信息,对关键点检测模型进行训练。
61.根据本公开的实施例,在训练样本为第一类训练样本时,该操作s340的实现方法与前文描述的对关键点检测模型进行训练的方法类似,在此不再赘述。
62.根据本公开的实施例,在训练样本为第二类训练样本时,该操作s340可以基于针对训练样本的预定损失函数、多个关键点的预测位置信息和标签指示的位置信息,对关键点检测模型进行训练。例如,可以先根据多个关键点的预测位置信息与标签指示的位置信息之间的差值,来确定预定损失函数的取值。然后采用反向传播算法等确定预定损失函数取最小值时,关键点检测模型中参数的取值。使用该参数的取值替换当前状态下关键点检
测模型中参数的取值,得到优化后的关键点检测模型,从而实现对模型的训练。
63.本公开实施例通过综合有标签的训练样本和无标签的训练样本对关键点检测模型进行训练,可以进一步提高训练得到的关键点检测模型的精度。
64.根据本公开的实施例,在获取到第一类训练样本和第二类训练样本后,例如可以先采用第二类训练样本对关键点检测模型进行预训练,以使得关键点检测模型中的参数取值在合理区间范围内。在预训练完成后,再采用第一类训练样本和第二类训练样本混合的方式,或采用单独的第一类训练样本对关键点检测模型进行训练。即先采用有监督的方式进行预训练,再采用有监督与无监督混合的方式或无监督的方式进行精准的训练。通过该方式,可以提高模型的训练效率。
65.图4是根据本公开实施例的确定针对第一类训练样本的预定损失函数的取值的原理示意图。
66.根据本公开的实施例,在训练样本为第一类训练样本的情况下,确定预定损失函数的取值的操作例如可以先确定多个关键点中相邻的任意两个关键点之间的连线,作为目标连线。在得到目标连线后,再基于多个关键点中相邻的任意三个关键点的预测位置信息,确定任意三个关键点之间的两条目标连线的差异,以根据该差异确定预定损失函数的取值。
67.示例性地,可以将根据多个关键点确定的所有差异的和作为预定损失函数的取值,或者,可以将该多个关键点确定的所有差异的平均值作为预定损失函数的取值。
68.示例性地,如图4所示,在目标对象为鞋子400时,多个关键点的个数例如可以为18个,关键点检测模型输出的数据可以为该18个关键点的坐标值,该坐标值例如可以是相对于如图4所示的坐标系的。该坐标系以鞋子400的鞋尖位置为坐标原点o,以鞋子宽度方向为x轴,以鞋子长度方向为y轴。在得到该18个关键点的坐标值后,可以根据相邻的两个坐标值定位得到一条目标连线。从而可以得到18条目标连线(如图4中相邻关键点之间的点状线)。
69.示例性地,在得到目标连线后,可以根据目标连线的两个端点的坐标值,来确定目标连线的长度。在得到目标连线的长度后,可以确定相邻的两条目标连线的长度的差值,将该差值作为相邻的任意三个关键点之间的两条目标连线的差异。例如,如图4所示,对于相邻的三个关键点401、402和403,通过对相邻的两个关键点进行连线,可以得到两条目标连线,该两条目标连线的长度分别为l1和l2,该两条目标连线的长度的差值为l1‑
l2。在一实施例中,该差值的取值可以为l1‑
l2的绝对值,以避免因正负差值抵消导致预定损失函数的取值不准确的情况。该实施例可以将确定得到的差值的取值之和作为预定损失函数的取值。
70.示例性地,在得到目标连线后,可以根据目标连线的两个端点的坐标值,来确定相邻的任意三个关键点之间的两条目标连线的夹角值。将该夹角值作为该两条目标连线的差异。在一实施例中,还可以根据每条目标连线相对于图4中x轴的斜率k,来确定每条目标连线与x轴的夹角的取值,该夹角的取值例如为tan
‑1k。将两条目标连线与x轴的两个夹角的取值的差值作为该两条目标连线的差异。例如,对于图4中的相邻的三个关键点401、402和403,连接形成的两条目标连线之间的夹角值为λ。该实施例可以将确定得到的所有夹角值的和作为预定损失函数的取值。
71.示例性地,在得到目标连线后,可以将通过前文描述的方法确定的相邻的任意三个关键点之间的两条目标连线的长度,以及该两条目标连线的夹角值作为该两条目标连线
的差异。将该两条目标连线的长度和两条目标连线的夹角值代入如下所述的预定损失函数的公式中,计算得到预定损失函数的取值。
[0072][0073]
其中,n为多个关键点的个数,p
i
为多个关键点中的第i个关键点,p
i
‑1为多个关键点中的第(i

1)个关键点,p
i+1
为多个关键点中的第(i+1)个关键点,d(p
i
‑1,p
i
)为第(i

1)个关键点与第i个关键点之间的目标连线的长度,d(p
i
,p
i+1
)为第i个关键点与第(i+1)个关键点之间的目标连线的长度,v(p
i
‑1,p
i
)为第(i

1)个关键点与第i个关键点之间的目标连线相对于预定轴的转动角度,v(p
i
,p
i+1
)为第i个关键点与第(i+1)个关键点之间的目标连线相对于预定轴的转动角度,(v
pi

1,pi

v
pi,pi+1
)为前述两条目标连线之间的夹角值。其中,在i=1时,i

1被赋值为n,在i=n时,i+1被赋值为1。预定轴可以为基于目标对象构建的坐标系中的任一坐标轴,或者可以为预先设定的任意轴。
[0074]
综上分析,该实施例通过上述针对第一类训练样本的预定损失函数的设置,可以实现对关键点检测模型的无监督训练,可以在使得训练的模型满足精度需求的同时,至少部分地降低标签的标注成本。该实施例的方法尤其适用于因目标对象(如鞋子等)自由度大、特征纹理多样化而需要更多训练样本的场景。
[0075]
再者,本公开实施例通过根据相邻三个关键点连接形成的两条目标连线的差异来确定损失函数的取值,可以充分考虑关键点之间的相对位置信息,从而可以提高模型对目标对象特征的更准确的学习,便于提高训练得到的关键点检测模型的精度。
[0076]
基于以上关键点检测模型的训练方法,本公开还提供了一种检测,目标对象关键点的方法。以下将结合图5对该方法进行详细描述。
[0077]
图5是根据本公开实施例的检测目标对象关键点的方法的流程图。
[0078]
如图5所示,该实施例的检测目标对象关键点的方法500可以包括操作s510~操作s520。
[0079]
在操作s510,获取包括目标对象的待处理图像。
[0080]
根据本公开的实施例,目标对象与前文描述的目标对象类似,在此不再赘述。待处理图像例如可以为实时拍摄的图像,或者可以为预先拍摄后缓存的图像。在虚拟试装场景中,待处理图像可以为预先拍摄的服装图像,或者鞋子图像等。
[0081]
在操作s520,采用关键点检测模型获得待处理图像中目标对象的关键点的位置信息。其中,关键点检测模型例如可以为采用前文描述的关键点检测模型的训练方法训练得到。
[0082]
可以理解的是,该操作s520与前文描述的采用关键点检测模型获得训练样本中目标对象的多个关键点的预测位置信息的方法类似,区别在于该实施例中的关键点检测模型为预先训练后,精度满足条件的模型。
[0083]
该实施例的检测目标对象关键点的方法,通过采用前文描述的训练方法训练得到的关键点检测模型,可以实现对自由度大、纹理特征多样化的目标对象的关键点的精准检测,并因此便于提高用户体验。
[0084]
基于以上关键点检测模型的训练方法,本公开还提供了一种关键点检测模型的训
练装置。以下将结合图6对该装置进行详细描述。
[0085]
图6是根据本公开实施例的关键点检测模型的训练装置的结构框图。
[0086]
如图6所示,该实施例的关键点检测模型的训练装置600可以包括样本获取模块610、预测信息获得模块620和模型训练模块630。
[0087]
样本获取模块610用于获取包括目标对象的训练样本,该训练样本至少包括不具有标签的第一类训练样本。在一实施例中,该样本获取模块610例如可以用于执行前文描述的操作s210,在此不再赘述。
[0088]
预测信息获得模块620用于基于训练样本,采用关键点检测模型获得目标对象的多个关键点的预测位置信息。在一实施例中,该预测信息获得模块620例如可以用于执行前文描述的操作s220,在此不再赘述。
[0089]
模型训练模块630用于基于针对训练样本的预定损失函数和预测位置信息,对关键点检测模型进行训练。其中,针对第一类训练样本的预定损失函数是基于多个关键点中相邻关键点的预测位置信息构建得到的。在一实施例中,该模型训练模块630例如可以用于执行前文描述的操作s230,在此不再赘述。
[0090]
根据本公开的实施例,上述模型训练模块630例如可以包括取值确定子模块和训练子模块。取值确定子模块用于基于多个关键点的预测位置信息,确定预定损失函数的取值。训练子模块用于根据预定损失函数的取值,对关键点检测模型进行训练。
[0091]
根据本公开的实施例,上述取值确定子模块例如可以包括连线确定单元、差异确定单元和取值确定单元。连线确定单元用于在训练样本为第一类训练样本的情况下,确定多个关键点中相邻的任意两个关键点之间的连线,作为目标连线。差异确定单元用于基于多个关键点中相邻的任意三个关键点的预测位置信息,确定任意三个关键点之间的两条目标连线的差异。取值确定单元用于根据差异,确定预定损失函数的取值。
[0092]
根据本公开的实施例,差异确定单元确定的差异包括以下至少之一:两条目标连线的长度的差值、两条目标连线之间的夹角值。
[0093]
根据本公开的实施例,针对第一类训练样本的预定损失函数采用以下公式表示:
[0094][0095]
其中,n为多个关键点的个数,p
i
为多个关键点中的第i个关键点,p
i
‑1为多个关键点中的第(i

1)个关键点,p
i+1
为多个关键点中的第(i+1)个关键点,d(p
i
‑1,p
i
)为第(i

1)个关键点与第i个关键点之间的目标连线的长度,d(p
i
,p
i+1
)为第i个关键点与第(i+1)个关键点之间的目标连线的长度,v(p
i
‑1,p
i
)为第(i

1)个关键点与第i个关键点之间的目标连线相对于预定轴的转动角度,v(p
i
,p
i+1
)为第i个关键点与第(i+1)个关键点之间的目标连线相对于预定轴的转动角度,其中,在i=1时,i

1被赋值为n,在i=n时,i+1被赋值为1。
[0096]
根据本公开的实施例,训练样本还包括具有标签的第二类训练样本,标签指示目标对象中多个关键点的位置信息。上述关键点检测模型的训练装置600还可以包括损失函数确定模块,用于根据训练样本的类型,确定针对训练样本的预定损失函数。
[0097]
根据本公开的实施例,上述模型训练模块具体用于:在训练样本为第二类训练样本的情况下,基于针对训练样本的预定损失函数、多个关键点的预测位置信息和标签指示
的位置信息,对关键点检测模型进行训练。
[0098]
根据本公开的实施例,在训练样本为第二类训练样本的情况下,针对训练样本的预定损失函数包括以下任意一个:平均绝对误差、均方误差损失、平滑平方绝对误差。
[0099]
基于以上检测目标对象关键点的方法,本公开还提供了一种检测目标对象关键点的装置。以下将结合图7对该装置进行详细描述。
[0100]
图7是根据本公开实施例的检测目标对象关键点的装置的结构框图。
[0101]
如图7所示,该实施例的检测目标对象关键点的装置700可以包括图像获取模块710和位置信息确定模块720。
[0102]
图像获取模块710用于获取包括目标对象的待处理图像。在一实施例中,图像获取模块710可以用于执行前文描述的操作s510,在此不再赘述。
[0103]
位置信息确定模块720用于采用关键点检测模型获得待处理图像中目标对象的关键点的位置信息。其中,关键点检测模型可以是采用前文描述的关键点检测模型的训练装置训练得到的。在一实施例中,位置信息确定模块720可以用于执行前文描述的操作s520,在此不再赘述。
[0104]
需要说明的是,本公开的技术方案中,所涉及的用户个人信息的获取、存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
[0105]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0106]
图8示出了可以用来实施本公开实施例的关键点检测模型的训练方法和/或检测目标对象关键点的方法的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0107]
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
[0108]
设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0109]
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如关键点检测模型的训练方法和/或检测目标对象关键点的方法。例如,在一些实施例
中,关键点检测模型的训练方法和/或检测目标对象关键点的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram 803并由计算单元801执行时,可以执行上文描述的关键点检测模型的训练方法和/或检测目标对象关键点的方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行关键点检测模型的训练方法和/或检测目标对象关键点的方法。
[0110]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0111]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0112]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0113]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0114]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数
字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0115]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。其中,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务(“virtual private server”,或简称“vps”)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0116]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0117]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1