本申请涉及计算机视觉技术,尤其是涉及一种目标对象关键点检测方法、用于检测目标对象关键点的深度学习神经网络、目标对象关键点检测装置、电子设备、计算机可读存储介质以及计算机程序。
背景技术:
预测图像(例如,视频中的视频帧等)中的目标对象关键点(例如,人的身体关键点等)可以为多种应用提供信息支持;例如,通过对视频的各视频帧的身体关键点进行分析,可以获得人的行为;再例如,通过获得视频的各视频帧的身体关键点,可以在人体的相应部位增加相应的特效,从而增强视频的视觉效果。
如何快速准确的预测出图像中的目标对象关键点,是一个值得关注的技术问题。
技术实现要素:
本申请实施方式提供一种目标对象关键点检测的技术方案。
根据本申请实施方式其中一个方面,提供了一种目标对象关键点检测方法,该方法包括:接收待处理图像的特征图;在按照分支网络所对应的指定部位的活动自由度的大小,依次对深度学习神经网络中的各关键点检测分支网络进行排列的情况下,将所述特征图提供给对应指定部位的活动自由度最低的关键点检测分支网络,并将前级关键点检测分支网络输出的关键点预测信息与所述特征图一起提供给后级关键点检测分支网络;根据所述各关键点检测分支网络输出的关键点预测信息确定待处理图像的目标对象关键点。
在本申请一实施方式中,确定所述活动自由度的参数包括:指定部位的活动频率,和/或指定部位的被遮挡的概率。
在本申请又一实施方式中,不同关键点检测分支网络所具有的计算资源不相同。
在本申请再一实施方式中,对应指定部位活动自由度高的关键点检测分支网络所具有的计算资源,高于对应指定部位活动自由度低的关键点检测分支网络所具有的计算资源。
在本申请再一实施方式中,所述神经网络包括:用于预测目标对象头颈部位的关键点的第一关键点检测分支网络;用于预测目标对象躯干部位的关键点的第二关键点检测分支网络;用于预测目标对象四肢部位的关键点的第三关键点检测分支网络。
在本申请再一实施方式中,所述第一关键点检测分支网络所具有的计算资源低于第二关键点检测分支网络所具有的计算资源,所述第二关键点检测分支网络所具有的计算资源低于第三关键点检测分支网络所具有的计算资源。
在本申请再一实施方式中,所述第一关键点检测分支网络包括:至少一个基于卷积层的网络结构单元;所述第二关键点检测分支网络包括:至少两个基于卷积层的网络结构单元;所述第三关键点检测分支网络包括:至少三个基于卷积层的网络结构单元;其中,所述第一关键点检测分支网络所包含的网络结构单元的数量小于第二关键点检测分支网络所包括的网络结构单元的数量,所述第二关键点检测分支网络所包含的网络结构单元的数量小于第三关键点检测分支网络所包括的网络结构单元的数量。
在本申请再一实施方式中,所述将前级关键点检测分支网络输出的关键点预测信息与所述特征图一起提供给后级关键点检测分支网络包括:将前一级关键点检测分支网络输出的关键点预测信息与所述目标对象特征图一起作为后一级关键点检测分支网络的输入;或者,将当前关键点检测分支网络之前的任一级关键点检测分支网络输出的关键点预测信息与所述特征图一起作为当前关键点检测分支网络的输入;或者,将所有前级关键点检测分支网络输出的关键点预测信息与所述目标对象特征图一起被作为后级关键点检测分支网络。
在本申请再一实施方式中,所述任一关键点检测分支网络的输出包括:其对应的指定部位的关键点置信度信息。
在本申请再一实施方式中,所述方法还包括:利用每个关键点检测分支网络各自对应的损失函数层,对相应的关键点检测分支网络进行训练。
在本申请再一实施方式中,所述损失函数层包括:L2损失函数层。
在本申请再一实施方式中,所述方法还包括:获取待处理图像的目标对象外接框以及目标对象外接框的中心位置;根据所述目标对象外接框切割出的图像块以及目标对象外接框的中心位置获取所述待处理图像的特征图。
根据本申请实施方式的其中另一个方面,提供了一种用于检测目标对象关键点的深度学习神经网络,包括:至少两个关键点检测分支网络,所述关键点检测分支网络用于预测目标对象中指定部位的关键点;其中,一个关键点检测分支网络对应目标对象中的一个指定部位以及所述指定部位的活动自由度;所述至少两个关键点检测分支网络根据所述活动自由度大小依次分级;首级的关键点检测分支网络的输入包括:从待处理图像提取出的目标对象的特征图;任一非首级的关键点检测分支网络的输入包括:前级关键点检测分支网络输出的指定部位的关键点预测信息与所述目标对象的特征图;任一关键点检测分支网络的输出包括:指定部位的关键点预测信息。
在本申请一实施方式中,确定所述活动自由度的参数包括:指定部位的活动频率,和/或指定部位的被遮挡的概率。
在本申请又一实施方式中,不同关键点检测分支网络所具有的计算资源不相同。
在本申请再一实施方式中,对应指定部位活动自由度高的关键点检测分支网络所具有的计算资源,高于对应指定部位活动自由度低的关键点检测分支网络所具有的计算资源。
在本申请再一实施方式中,所述目标对象包括:身体,所述神经网络包括:用于预测身体头颈部位的关键点的第一关键点检测分支网络;用于预测身体躯干部位的关键点的第二关键点检测分支网络;用于预测身体四肢部位的关键点的第三关键点检测分支网络。
在本申请再一实施方式中,所述第一关键点检测分支网络所具有的计算资源低于第二关键点检测分支网络所具有的计算资源,所述第二关键点检测分支网络所具有的计算资源低于第三关键点检测分支网络所具有的计算资源。
在本申请再一实施方式中,所述第一关键点检测分支网络包括:至少一个基于卷积层的网络结构单元;所述第二关键点检测分支网络包括:至少两个基于卷积层的网络结构单元;所述第三关键点检测分支网络包括:至少三个基于卷积层的网络结构单元;其中,所述第一关键点检测分支网络所包含的网络结构单元的数量小于第二关键点检测分支网络所包括的网络结构单元的数量,所述第二关键点检测分支网络所包含的网络结构单元的数量小于第三关键点检测分支网络所包括的网络结构单元的数量。
在本申请再一实施方式中,所述任一非首级的关键点检测分支网络的输入包括:前一级关键点检测分支网络输出的关键点预测信息与所述特征图;或者,当前关键点检测分支网络之前的任一级关键点检测分支网络输出的关键点预测信息与所述特征图;或者,所有前级关键点检测分支网络输出的关键点预测信息与所述目标对象特征图。
在本申请再一实施方式中,所述任一关键点检测分支网络的输出包括:其对应的指定部位的关键点置信度信息。
在本申请再一实施方式中,所述神经网络还包括:至少两个损失函数层,每个关键点检测分支网络对应一个损失函数层,不同的关键点检测分支网络对应不同的损失函数层。
在本申请再一实施方式中,所述损失函数层包括:L2损失函数层。
在本申请再一实施方式中,所述神经网络还包括:目标对象检测模型以及用于提取待处理图像的特征图的特征提取神经网络;目标对象检测模型的输入包括:待处理图像;目标对象检测模型的输出包括:目标对象外接框以及目标对象外接框的中心位置;所述特征提取神经网络的输入包括:根据所述目标对象外接框切割出的图像块以及目标对象外接框的中心位置;所述特征提取神经网络的输出包括:待处理图像的特征图;所述特征提取神经网络的输出与各关键点检测分支网络的输入分别连接。
根据本申请实施方式的其中另一个方面,提供了一种目标对象关键点检测装置,该装置包括:接收特征图模块,用于接收待处理图像的特征图;输入模块,用于在按照分支网络所对应的指定部位的活动自由度的大小,依次对深度学习神经网络中的各关键点检测分支网络进行排列的情况下,将所述特征图提供给对应指定部位的活动自由度最低的关键点检测分支网络,并将前级关键点检测分支网络输出的关键点预测信息与所述特征图一起提供给后级关键点检测分支网络;确定关键点模块,用于根据所述各关键点检测分支网络输出的关键点预测信息确定待处理图像的目标对象关键点。
在本申请一实施方式中,所述输入模块具体用于:将前一级关键点检测分支网络输出的关键点预测信息与所述目标对象特征图一起作为后一级关键点检测分支网络的输入;或者,将当前关键点检测分支网络之前的任一级关键点检测分支网络输出的关键点预测信息与所述特征图一起作为当前关键点检测分支网络的输入;或者,将所有前级关键点检测分支网络输出的关键点预测信息与所述目标对象特征图一起被作为后级关键点检测分支网络。
在本申请再一实施方式中,所述装置还包括:训练模块,用于利用每个关键点检测分支网络各自对应的损失函数层,对相应的关键点检测分支网络进行训练。
在本申请再一实施方式中,所述装置还包括:获取外接框模块,用于获取待处理图像的目标对象外接框以及目标对象外接框的中心位置;获取特征图模块,用于根据所述目标对象外接框切割出的图像块以及目标对象外接框的中心位置获取所述待处理图像的特征图。
根据本申请实施方式的再一个方面,提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现目标对象关键点检测方法实施方式中的步骤。
根据本申请实施方式的再一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现目标对象关键点检测方法实施方式中的步骤。
根据本申请实施方式的再一个方面,提供一种计算机程序,包括计算机指令,当所述计算机指令在设备的处理器中运行时,实现目标对象关键点检测方法实施方式中的步骤。
基于本申请提供的目标对象关键点检测方法、用于检测目标对象关键点的深度学习神经网络、目标对象关键点检测装置、电子设备以及计算机可读存储介质,本申请通过设置至少两个关键点检测分支网络,使不同的关键点检测分支网络可以针对目标对象的不同部位进行关键点预测,进而使针对不同的关键点检测分支网络分配不同的计算资源,以避免冗余计算以及计算不充分等现象成为可能;通过将前级关键点检测分支网络(例如,相邻两级中的前一级关键点检测分支网络)输出的关键点预测信息与待处理图像的特征图一起作为后级关键点检测分支网络(例如,相邻两级中的后一级关键点检测分支网络)的输入,由于前级关键点检测分支网络所对应的目标对象的指定部位的活动自由度小于后级关键点检测分支网络所对应的目标对象的指定部位的活动自由度,因此,前级关键点检测分支网络得到的关键点预测信息具有较好的鲁棒性,这样,前级关键点检测分支网络输出的关键点预测信息可以为后级关键点检测分支网络提供准确且更加丰富的语义信息,有利于提高后级关键点检测分支网络的关键点预测的准确性。由此可知,本申请不仅有利于优化神经网络的计算资源,而且有利于提高目标对象关键点的检测准确性。
下面通过附图和实施方式,对本申请的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本申请的实施方式,并且连同描述一起用于解释本申请的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本申请,其中:
图1为本申请用于检测目标对象关键点的深度学习神经网络一个实施方式的结构示意图;
图2为本申请用于检测人体关键点的深度学习神经网络一个实施方式的结构示意图;
图3为本申请目标对象关键点检测方法一个实施方式的流程图;
图4为本申请的训练神经网络的流程图;
图5为本申请目标对象关键点检测装置一个实施方式的结构示意图;
图6为实现本申请实施方式的一示例性设备的框图。
具体实施方式
现在将参照附图来详细描述本申请的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本申请及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法以及设备可能不作详细讨论,但在适当情况下,所述技术、方法及设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本申请实施例可以应用于终端设备、计算机系统以及服务器等电子设备中,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
示例性实施例
下面结合图1至图6对本申请提供的检测目标对象关键点的技术方案进行说明。
本申请的目标对象关键点检测方法以及目标对象关键点检测装置均涉及了深度学习神经网络,下面先对本申请实施方式的目标对象关键点检测方法和装置所涉及的深度学习神经网络进行说明。
图1为本申请的用于检测目标对象关键点的深度学习神经网络的一个实施方式的结构示意图。
如图1所示,本申请实施方式的用于检测目标对象关键点的深度学习神经网络主要包括:至少两个关键点检测分支网络100(图1中仅示意性的示出了三个关键点检测分支网络),关键点检测分支网络也可以称为关键点检测子网络或者关键点检测模块或者关键点检测分支模块等。可选的,该深度学习神经网络还包括:至少两个损失函数层110、目标对象检测模型120以及特征提取神经网络130。
在一个可选示例中,本申请中的目标对象被划分为多个部位,例如,本申请可以根据目标对象的不同部位的活动自由度的不同,而将目标对象划分为多个部位。本申请中的每一个关键点检测分支网络100分别对应目标对象的一个指定部位,不同的关键点检测分支网络100对应目标对象的不同指定部位,从而本申请中的一个关键点检测分支网络100可以仅针对其对应的指定部位的关键点进行检测。
在一个可选示例中,本申请可以根据指定部位的活动频率来确定指定部位的活动自由度,本申请也可以根据指定部位的被遮挡的概率来确定指定部位的活动自由度,本申请还可以根据指定部位的活动频率和指定部位的被遮挡的概率来确定指定部位的活动自由度。另外,本申请中的活动自由度也可以认为是关键点预测难度,即目标对象中的活动自由度高的部位,通常其活动范围大,活动频率高,被遮挡的可能性高,从而目标对象的该部位的关键点预测难度相应较高;而目标对象中的活动自由度低的部位,通常其活动范围小,活动频率低,被遮挡的可能性低,从而目标对象的该部位的关键点预测难度相应较低。
在一个可选示例中,每一个关键点检测分支网络100的输入均包括:从待处理图像提取出的特征图。在按照分支网络所对应的指定部位的活动自由度从小到大的顺序对所有关键点检测分支进行排列的情况下,前级关键点检测分支网络100输出的关键点预测信息与特征图一起被作为后级关键点检测分支网络100的输入;下面举三个可选示例对本申请的各关键点检测分支网络100的输入信息进行说明:
第一个可选示例,针对所有关键点检测分支网络100中的任意两个前后相邻的关键点检测分支网络100而言,前一级关键点检测分支网络100输出的关键点预测信息与特征图一起被作为后一级关键点检测分支网络100的输入;也就是说,所有关键点检测分支网络100中的第一级关键点检测分支网络100(即位于图1右侧最上端位置处的关键点检测分支网络100)的输出与特征图一起被作为输入信息提供给第二级关键点检测分支网络100(即位于图1右侧中间位置处的关键点检测分支网络100),所有关键点检测分支网络100中的第二级关键点检测分支网络100的输出与特征图一起被作为输入信息提供给第三级关键点检测分支网络100(即位于图1右侧最下端位置处的关键点检测分支网络100),以此类推,直到所有关键点检测分支网络100中的倒数第二级关键点检测分支网络100的输出与特征图一起被作为输入信息提供给最后一级关键点检测分支网络100。
第二个可选示例,针对所有关键点检测分支网络100中的任意一个关键点检测分支网络100而言,位于该关键点检测分支网络100之前的所有前级关键点检测分支网络100输出的关键点预测信息与特征图一起被作为该关键点检测分支网络100的输入;也就是说,所有关键点检测分支网络100中的第一级关键点检测分支网络100的输出与特征图一起被作为输入信息提供给第二级关键点检测分支网络100,所有关键点检测分支网络100中的第一级关键点检测分支网络100的输出和第二级关键点检测分支网络100的输出与特征图一起被作为输入信息提供给第三级关键点检测分支网络100,以此类推,直到所有关键点检测分支网络100中的除了最后一级关键点检测分支网络100之外的所有关键点检测分支网络100的输出与特征图一起被作为输入信息提供给最后一级关键点检测分支网络100。
第三个可选示例,针对所有关键点检测分支网络100中的任意一个关键点检测分支网络100而言,位于该关键点检测分支网络100之前的所有前级关键点检测分支网络100中的任意一个前级关键点检测分支网络100输出的关键点预测信息与特征图一起被作为该关键点检测分支网络100的输入;例如,第一级关键点检测分支网络100的输出与特征图一起被作为输入信息提供给第三级关键点检测分支网络100;再例如,所有关键点检测分支网络100中的除了最后一级关键点检测分支网络100之外的至少一个或者两个关键点检测分支网络100的输出与特征图一起被作为输入信息提供给最后一级关键点检测分支网络100。
在一个可选示例中,任意一个关键点检测分支网络100所输出的关键点预测信息可以具体为:该关键点检测分支网络100所对应的指定部位的关键点置信度信息。
在一个可选示例中,不同关键点检测分支网络100所具有的计算资源可以不相同,通常情况下,用于检测活动自由度低的指定部位的关键点的关键点检测分支网络100所具有的计算资源,会少于用于检测活动自由度高的指定部位的关键点的关键点检测分支网络100所具有的计算资源。由于活动自由度低的指定部位的关键点的检测难度通常小于活动自由度高的指定部位的关键点的检测难度,因此,本申请通过为活动自由度较低的指定部位所对应的关键点检测分支网络100分配较少的计算资源,并为活动自由度较高的指定部位所对应的关键点检测分支网络100分配较多的计算资源,有利于避免对预测难度较低的指定部位关键点的冗余计算,且有利于保证对预测难度较高的指定部位关键点的充分计算,从而本申请可以在基本上不影响关键点检测分支网络100检测目标对象关键点的准确性的同时,优化深度学习神经网络的计算资源。
本申请中的目标对象可以为身体,身体可以为人体或者其他生物或者机器身体,下面以人体为例对本申请的用于检测目标对象关键点的深度学习神经网络进行说明,然而,可以理解的是,在身体为其他类型的身体时,本申请提供的用于检测目标对象关键点的深度学习神经网络同样可以适用。
在一个可选示例中,本申请可以根据人体不同部位的活动自由度的不同,将人体划分为多个部位,例如,身体头颈部位(也可以称为人体头颈部位)、身体躯干部位(也可以称为人体躯干部位)以及身体四肢部位(也可以称为人体四肢部位)这三个部位。从活动自由度的角度而言,身体头颈部位的活动自由度低于躯干部位的活动自由度,而躯干部位的活动自由度低于身体四肢部位的活动自由度。本申请针对这三个部位设置有第一关键点检测分支网络200、第二关键点检测分支网络210以及第三关键点检测分支网络220(如图2所示);其中的第一关键点检测分支网络200用于预测头颈部位的关键点;其中的第二关键点检测分支网络210用于预测躯干部位的关键点;其中的第三关键点检测分支网络220用于预测四肢部位的关键点。
在一个可选示例中,第一关键点检测分支网络200所具有的计算资源通常低于第二关键点检测分支网络210所具有的计算资源,第二关键点检测分支网络210所具有的计算资源通常低于第三关键点检测分支网络220所具有的计算资源;例如,如图2所示,第一关键点检测分支网络200包括:一个基于卷积层的网络结构单元;第二关键点检测分支网络210包括:两个基于卷积层的网络结构单元;第三关键点检测分支网络220包括:三个基于卷积层的网络结构单元。上述第一关键点检测分支网络200、第二关键点检测分支网络210以及第三关键点检测分支网络220所包含的基于卷积层的网络结构单元的数量仅为举例,本申请不限制第一关键点检测分支网络200、第二关键点检测分支网络210以及第三关键点检测分支网络220的具体结构。本申请中的第一关键点检测分支网络所包含的网络结构单元的数量小于第二关键点检测分支网络所包括的网络结构单元的数量,第二关键点检测分支网络所包含的网络结构单元的数量小于第三关键点检测分支网络所包括的网络结构单元的数量。本申请中的基于卷积层的网络结构单元是指针对卷积层以及为卷积层配置的层进行封装所形成的结构块,例如,由卷积层、BN以及激活层等所形成的网络结构单元。基于卷积层的网络结构单元可以具体为Inception-block或者Residual-block等。
下面以用于检测目标对象关键点的深度学习神经网络包括:第一关键点检测分支网络200、第二关键点检测分支网络210以及第三关键点检测分支网络220为例,对本申请的用于检测目标对象关键点的深度学习神经网络进行描述,然而,可以理解的是,在该神经网络包括两个关键点检测分支网络,或者多于三个关键点检测分支网络的情况下,下述描述的内容同样可以适用。
在一个可选示例中,第一关键点检测分支网络200、第二关键点检测分支网络210以及第三关键点检测分支网络220的输入均包括:从待处理图像提取出的特征图。另外,在按照分支网络所对应的身体部位的活动自由度从小到大的顺序对三个关键点检测分支网络进行排列的情况下,特征图作为输入信息被提供给第一关键点检测分支网络200,第一关键点检测分支网络200输出的头颈部位的关键点预测信息与特征图一起作为输入信息被提供给第二关键点检测分支网络210,第二关键点检测分支网络220输出的躯干部位的关键点预测信息与特征图一起作为输入信息被提供给第三关键点检测分支网络220。
在一个可选示例中,关键点预测信息可以具体为关键点置信度信息。一个可选的例子,第一关键点检测分支网络200所输出的关键点预测信息可以具体为位于头顶位置处的关键点置信度信息以及位于颈部中间位置处的关键点置信度信息。第二关键点检测分支网络210所输出的关键点预测信息可以具体为位于左肩边缘位置处的关键点置信度信息、位于右肩边缘位置处的关键点置信度信息、位于左胯边缘位置处的关键点置信度信息以及位于右胯边缘位置处的关键点置信度信息。第三关键点检测分支网络220所输出的关键点预测信息可以具体为左腕关键点置信度信息、右腕关键点置信度信息、左肘关键点置信度信息、右肘关键点置信度信息、左膝关键点置信度信息、右膝关键点置信度信息、左踝关键点置信度信息及右踝关键点置信度信息。在该可选例子中,利用第一关键点检测分支网络200、第二关键点检测分支网络210以及第三关键点检测分支网络220通常可以检测出14个关键点。
在一个可选示例中,本申请的用于检测目标对象关键点的深度学习神经网络所包含的损失函数层110的数量与关键点检测分支网络100的数量相同,即每个关键点检测分支网络100对应一个损失函数层110,不同的关键点检测分支网络100对应不同的损失函数层110。每一个损失函数层110用于对其对应的关键点检测分支网络100进行训练;例如,在用于检测目标对象关键点的深度学习神经网络的训练过程中,损失函数层110根据输入神经网络的图像样本中标注的相应部位的关键点信息(例如,关键点编号以及坐标)与其对应的关键点检测分支网络100输出的相应部位的关键点预测信息(例如,关键点编号以及坐标)计算每组关键点之间的偏移量(即误差),以调整与其对应的关键点检测分支网络100中的网络参数。本申请中的损失函数层110可以具体为:L2损失函数层。
在一个可选示例中,目标对象检测模型120主要用于提取待处理图像中的目标对象外接框,并确定目标对象外接框的中心位置;也就是说,目标对象检测模型120的输入包括:待处理图像,例如,基于RGB的待处理图像等;目标对象检测模型120的输出包括:目标对象外接框以及目标对象外接框的中心位置。本申请可以采用现有的人体检测技术来实现目标对象检测模型120,本申请不限制目标对象检测模型120提取目标对象外接框以及确定目标对象外接框的中心位置的具体实现方式。
在一个可选示例中,特征提取神经网络130主要用于提取待处理图像的特征图;特征提取神经网络130的输入可以与目标对象检测模型120的输出连接,特征提取神经网络130的输入可以包括:根据目标对象外接框从待处理图像中切割出的图像块以及目标对象外接框的中心位置;本申请可以将该图像块调整为预定大小的图像块,例如,调整为256×256像素的图像块;特征提取神经网络130的输出包括:该图像块的特征图,该图像块的特征图可以被作为待处理图像的特征图;特征提取神经网络130的输出与各关键点检测分支网络110的输入分别连接。特征提取神经网络130可以包括多个卷积层,通过多个卷积层对图像块进行编码,获得图像块的特征图。如果将每一个关键点检测分支网络100输出的关键点预测信息也看做是一种特殊的特征图的话,则特征提取神经网络130获得的特征图也可以称为待处理图像的初始特征图。
在一个可选示例中,本申请可以采用现有的特征提取技术来实现特征提取神经网络130,本申请不限制特征提取神经网络130获得特征图的具体实现方式。
图3为本申请的目标对象关键点检测方法一个实施例的流程图。如图3所示,该实施例方法包括:步骤S300、步骤S310以及步骤S320。
S300、接收待处理图像的特征图。
在一个可选示例中,本申请中的待处理图像可以为呈现静态的图片或者照片等图像,也可以为呈现动态的视频中的视频帧等。该待处理图像中的目标对象可以为人,例如,待处理图像中的人可以为正在做运动的人,也可以为正处于静止状态的人等。本申请不限制待处理图像中的目标对象的具体表现形态。
在一个可选示例中,本申请中的待处理图像的特征图可以是待处理图像中的目标对象的身体特征图,例如,待处理图像中的人体特征图。本申请可以利用现有用于提取特征图的神经网络从待处理图像中提取出特征图,从而通过接收该神经网络的输出信息而接收到待处理图像的特征图。
在一个可选示例中,本申请可以将待处理图像(例如,基于RGB的待处理图像)提供给目标对象检测模型,由目标对象检测模型提取待处理图像中的目标对象外接框,并确定出目标对象外接框的中心位置;本申请可以根据目标对象检测模型输出的外接框从待处理图像中切割出的图像块,并将该图像块调整为预定大小的图像块(例如,256×256像素的图像块),然后,将该图像块与目标对象外接框的中心位置一起提供给特征提取神经网络,由特征提取神经网络对输入的中心位置以及图像块进行多层卷积处理,从而特征提取神经网络输出该图像块的特征图,进而本申请通过接收特征提取神经网络的输出信息,获得该图像块的特征图,并将该图像块的特征图作为待处理图像的特征图。
S310、在按照分支网络所对应的指定部位的活动自由度的大小,依次对深度学习神经网络中的各关键点检测分支网络进行排列的情况下,将特征图提供给对应指定部位的活动自由度最低的关键点检测分支网络,并将前级关键点检测分支网络输出的关键点预测信息与特征图一起提供给后级关键点检测分支网络。
在一个可选示例中,本申请的用于检测目标对象关键点的深度学习神经网络主要包括:至少两个关键点检测分支网络。每一个关键点检测分支网络分别对应目标对象的一个指定部位,不同的关键点检测分支网络对应目标对象的不同指定部位,从而本申请中的一个关键点检测分支网络可以仅针对其对应的指定部位的关键点进行检测。
在一个可选示例中,每一个关键点检测分支网络的输入均包括:从待处理图像提取出的特征图。在按照分支网络所对应的指定部位的活动自由度从小到大的顺序对所有关键点检测分支进行排列的情况下,前级关键点检测分支网络输出的关键点预测信息与特征图一起被作为后级关键点检测分支网络的输入的具体实现方式如上述深度学习神经网络实施方式中的针对三个例子的描述,在此不再重复说明。
需要特别说明的是,本申请一种优选的实现方式为:将前一级关键点检测分支网络输出的关键点预测信息与特征图拼接在一起作为后一级关键点检测分支网络的输入;也就是说,本申请将所有关键点检测分支网络中的第一级关键点检测分支网络的输出与特征图拼接在一起作为第二级关键点检测分支网络的输入信息,将所有关键点检测分支网络中的第二级关键点检测分支网络的输出与特征图拼接在一起作为第三级关键点检测分支网络的输入信息,以此类推,直到将所有关键点检测分支网络中的倒数第二级关键点检测分支网络的输出与特征图拼接在一起作为最后一级关键点检测分支网络的输入信息。
在一个可选示例中,不同关键点检测分支网络所具有的计算资源可以不相同,通常情况下,用于检测活动自由度低的指定部位的关键点的关键点检测分支网络所具有的计算资源,会少于用于检测活动自由度高的指定部位的关键点的关键点检测分支网络所具有的计算资源。
本申请中的目标对象可以为人体或者其他生物或者机器的身体等,在一些描述中本申请使用了人体,然而,可以理解的是,在目标对象为其他类型时,本申请提供的目标对象关键点检测的方法同样可以适用。
在一个可选示例中,在本申请中的目标对象为人体的情况下,本申请可以预先针对人体头颈部位、人体躯干部位以及人体四肢部位设置第一关键点检测分支网络、第二关键点检测分支网络以及第三关键点检测分支网络;其中的第一关键点检测分支网络用于预测头颈部位的关键点;其中的第二关键点检测分支网络用于预测躯干部位的关键点;其中的第三关键点检测分支网络用于预测四肢部位的关键点。第一关键点检测分支网络所具有的计算资源通常低于第二关键点检测分支网络所具有的计算资源,第二关键点检测分支网络所具有的计算资源通常低于第三关键点检测分支网络所具有的计算资源;例如,第一关键点检测分支网络包括一个基于卷积层的网络结构单元(如一个Inception-block或者一个Residual-block);第二关键点检测分支网络包括两个基于卷积层的网络结构单元(如两个Inception-block或者两个Residual-block);第三关键点检测分支网络包括三个基于卷积层的网络结构单元(如三个Inception-block或者三个Residual-block)。
S320、根据各关键点检测分支网络输出的关键点预测信息确定待处理图像的目标对象关键点。
在一个可选示例中,每一个关键点检测分支网络输出的所有关键点预测信息可以形成一个置信度图像,每一个置信度图像中的每一个位置的值为该位置的像素点被预测为相应的指定部位关键点的置信度。本申请可以从所有的置信度图像中选取出置信度最大的像素点,并将选取出的该像素点作为目标对象相应指定部位的关键点。
在一个可选示例中,本申请确定出的目标对象关键点主要用于描述待处理图像中的目标对象(如人)的形态(如身体形态),例如,本申请确定出的目标对象关键点可以包括:头顶关键点、颈关键点、左肩关键点、右肩关键点、左胯关键点、右胯关键点、左腕关键点、右腕关键点、左肘关键点、右肘关键点、左膝关键点、右膝关键点、左踝关键点及右踝关键点等14个关键点。由于待处理图像中的目标对象的部分指定部位可能会存在被遮挡或者位于图像外等现象,因此,本申请最终确定出的身体关键点的数量可能会少于14。
需要特别说明的是,本申请在根据置信度确定的待处理图像的目标对象关键点的过程中,可以进行坐标位置的转换处理,即选取出的置信度最大的像素点的坐标位置通常为在切割后的图像块中的坐标位置,通过坐标位置的转换处理,可以将图像块中的像素点的坐标位置转换为待处理图像中的坐标位置,从而确定出待处理图像的身体关键点。
在一个可选示例中,本申请可以利用样本数据集中的多个图像样本对用于检测目标对象关键点的深度学习神经网络进行训练。本申请中的样本数据集中的各图像样本均标注有目标对象关键点信息(如身体关键点信息)。一个可选的例子,样本数据集中的各图像样本均标注有14个身体关键点信息,这14个身体关键点信息可以具体为:头顶关键点编号及坐标、颈关键点编号及坐标、左肩关键点编号及坐标、右肩关键点编号及坐标、左胯关键点编号及坐标、右胯关键点编号及坐标、左腕关键点编号及坐标、右腕关键点编号及坐标、左肘关键点编号及坐标、右肘关键点编号及坐标、左膝关键点编号及坐标、右膝关键点编号及坐标、左踝关键点编号及坐标及右踝关键点编号及坐标。本申请不限制标注的目标对象关键点信息的具体数量以及标注方式。
在一个可选示例中,本申请利用图像样本对用于检测目标对象关键点的深度学习神经网络进行训练的过程如图4所示。
图4中,S400、从图像样本中提取特征图。
在一个可选示例中,本申请可以从样本数据集中读取至少一个图像样本(如基于RGB的至少一个图像样本),并将读取出的图像样本提供给目标对象检测模型,由目标对象检测模型从图像样本中提取目标对象外接框,并确定出目标对象外接框的中心位置;本申请可以根据目标对象检测模型输出的外接框从待处理图像中切割出的图像块,并将该图像块调整为预定大小的图像块(例如,256×256像素的图像块),然后,将该图像块与目标对象外接框的中心位置一起提供给特征提取神经网络,由特征提取神经网络对输入的中心位置以及图像块进行多层卷积处理,从而特征提取神经网络输出该图像块的特征图,进而本申请获得从图像样本中提取出的特征图。
S410、将提取出的特征图提供给对应指定部位的活动自由度最低的关键点检测分支网络,并将前级关键点检测分支网络输出的关键点预测信息与特征图一起提供给后级关键点检测分支网络。
在一个可选示例中,前级关键点检测分支网络输出的关键点预测信息与特征图一起被作为后级关键点检测分支网络的输入的具体实现方式如上述用于检测目标对象关键点的深度学习神经网络实施方式中针对三个例子的描述,在此不再重复说明。需要特别说明的是,本申请一种优选的实现方式为:将前一级关键点检测分支网络输出的关键点预测信息与特征图拼接在一起被作为后一级关键点检测分支网络的输入;也就是说,本申请可以将所有关键点检测分支网络中的第一级关键点检测分支网络的输出与特征图拼接在一起作为第二级关键点检测分支网络的输入信息,将所有关键点检测分支网络中的第二级关键点检测分支网络的输出与特征图拼接在一起作为第三级关键点检测分支网络的输入信息,以此类推,直到将所有关键点检测分支网络中的倒数第二级关键点检测分支网络的输出与特征图拼接在一起作为最后一级关键点检测分支网络的输入信息。
S420、经由各关键点检测分支网络获取目标对象的各指定部位的关键点预测信息。
在一个可选示例中,每一个关键点检测分支网络输出的所有关键点预测信息可以形成一个置信度图像,每一个置信度图像中的每一个位置的值为该位置的像素点被预测为目标对象相应的指定部位关键点的置信度。本申请可以从所有的置信度图像中选取出置信度最大的像素点,并将选取出的该像素点作为目标对象相应的指定部位关键点。
S430、经由各关键点检测分支网络各自对应的损失函数层,利用图像样本中标注的目标对象关键点信息和各分支输出的关键点预测信息对深度学习的神经网络进行监督学习。
在一个可选示例中,本申请可以根据各关键点检测分支网络各自输出的置信度确定出其对应的指定部位的关键点,并将各关键点检测分支网络各自确定出的各关键点进行坐标位置的转换处理,从而获得各关键点检测分支网络各自检测出的图像样本中的目标对象的指定部位的关键点。本申请中的每一个关键点检测分支网络各自对应的损失函数层(例如,L2损失函数层)可以利用基于其所对应的关键点检测分支网络而获得的指定部位的关键点与图像样本标注的相应关键点进行误差计算,并根据误差计算结果对相应的关键点检测分支网络进行监督学习。
图5为本申请的目标对象关键点检测装置一个实施例的结构示意图。如图5所示,该实施例的装置主要包括:接收特征图模块500、输入模块510以及确定关键点模块520。可选的,该实施例的装置还可以包括:训练模块530、获取外接框模块540以及获取特征图模块550。
接收特征图模块500主要用于接收待处理图像的特征图。接收特征图模块500接收到的特征图可以是获取外接框模块540和获取特征图模块550针对待处理图像形成的特征图。具体的,获取外接框模块540主要用于获取待处理图像的目标对象外接框以及目标对象外接框的中心位置。获取特征图模块550主要用于根据目标对象外接框切割出的图像块以及目标对象外接框的中心位置获取待处理图像的特征图。
接收特征图模块500、获取外接框模块540以及获取特征图模块550所执行的操作可以参见上述针对S300的描述,在此不再重复说明。
输入模块510主要用于在按照分支网络所对应的指定部位的活动自由度的大小,依次对深度学习神经网络中的各关键点检测分支网络进行排列的情况下,将特征图提供给对应指定部位的活动自由度最低的关键点检测分支网络,并将前级关键点检测分支网络输出的关键点预测信息与特征图一起提供给后级关键点检测分支网络。
在一个可选示例中,输入模块510可以将前一级关键点检测分支网络输出的关键点预测信息与目标对象特征图一起作为后一级关键点检测分支网络的输入。输入模块510也可以将当前关键点检测分支网络之前的任一级关键点检测分支网络输出的关键点预测信息与特征图一起作为当前关键点检测分支网络的输入。输入模块510还可以将所有前级关键点检测分支网络输出的关键点预测信息与特征图一起作为后级关键点检测分支网络的输入。
输入模块510所执行的操作可以参见上述针对S310的描述,在此不再重复说明。
确定关键点模块520主要用于根据各关键点检测分支网络输出的关键点预测信息确定待处理图像的目标对象关键点。确定关键点模块520所执行的操作可以参见上述针对S300的描述,在此不再重复说明。
训练模块530主要用于利用每个关键点检测分支网络各自对应的损失函数层,对相应的关键点检测分支网络进行训练。训练模块530具体执行的操作可以参见上述针对图4的描述,在此不再重复说明。
示例性设备
图6示出了适于实现本申请的示例性设备600,设备600可以是汽车中配置的控制系统/电子系统、移动终端(例如,智能移动电话等)、个人计算机(PC,例如,台式计算机或者笔记型计算机等)、平板电脑以及服务器等。图6中,设备600包括一个或者多个处理器、通信部等,所述一个或者多个处理器可以为:一个或者多个中央处理单元(CPU)601,和/或,一个或者多个身体关键点检测器(GPU)613等,处理器可以根据存储在只读存储器(ROM)602中的可执行指令或者从存储部分608加载到随机访问存储器(RAM)603中的可执行指令而执行各种适当的动作和处理。通信部612可以包括但不限于网卡,所述网卡可以包括但不限于IB(Infiniband)网卡。处理器可与只读存储器602和/或随机访问存储器630中通信以执行可执行指令,通过总线604与通信部612相连、并经通信部612与其他目标设备通信,从而完成本申请中的相应步骤。
在一个可选的示例中,处理器所执行的指令包括:用于接收待处理图像的特征图的指令;用于在按照分支网络所对应的指定部位的活动自由度的大小,依次对深度学习神经网络中的各关键点检测分支网络进行排列的情况下,将特征图提供给对应指定部位的活动自由度最低的关键点检测分支网络,并将前级关键点检测分支网络输出的关键点预测信息与特征图一起提供给后级关键点检测分支网络的指令;用于根据各关键点检测分支网络输出的关键点预测信息确定待处理图像的目标对象关键点的指令。
上述各指令所执行的操作可以参见上述方法实施例中的相关描述,在此不再详细说明。
此外,在RAM 603中,还可以存储有装置操作所需的各种程序以及数据。CPU601、ROM602以及RAM603通过总线604彼此相连。在有RAM603的情况下,ROM602为可选模块。RAM603存储可执行指令,或在运行时向ROM602中写入可执行指令,可执行指令使中央处理单元601执行上述物体分割方法所包括的步骤。输入/输出(I/O)接口605也连接至总线604。通信部612可以集成设置,也可以设置为具有多个子模块(例如,多个IB网卡),并分别与总线连接。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装在存储部分608中。
需要特别说明的是,如图6所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图6的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如,GPU和CPU可分离设置,再如理,可将GPU集成在CPU上,通信部可分离设置,也可集成设置在CPU或GPU上等。这些可替换的实施方式均落入本申请的保护范围。
特别地,根据本申请的实施方式,下文参考流程图描述的过程可以被实现为计算机软件程序,例如,本申请实施方式包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的步骤的程序代码,程序代码可包括对应执行本申请提供的方法实施方式中的步骤对应的指令。
在这样的实施方式中,该计算机程序可以通过通信部分609从网络上被下载及安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请中记载的上述指令。
可能以许多方式来实现本申请的方法和装置、电子设备以及计算机可读存储介质。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本申请的方法和装置、电子设备以及计算机可读存储介质。用于方法的步骤的上述顺序仅是为了进行说明,本申请的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施方式中,还可将本申请实施为记录在记录介质中的程序,这些程序包括用于实现根据本申请的方法的机器可读指令。因而,本申请还覆盖存储用于执行根据本申请的方法的程序的记录介质。
本申请的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本申请限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施方式是为了更好说明本申请的原理和实际应用,并且使本领域的普通技术人员能够理解本申请从而设计适于特定用途的带有各种修改的各种实施方式。