一种人体关键点识别方法、装置及电子设备与流程

文档序号:20189982发布日期:2020-03-27 19:33阅读:128来源:国知局
一种人体关键点识别方法、装置及电子设备与流程

本发明涉及图像处理技术领域,特别是涉及一种人体关键点识别方法、装置及电子设备。



背景技术:

人体关键点识别是动作识别、异常行为检测、安防等的实现基础,其主要用于从给定的图像中定位人体的身体关键部位,例如头部、颈部、肩部、手部等部位。

现有技术中,在识别人体关键点时,获取待识别人体关键点的目标图像,通过预先训练的神经网络模型,生成该目标图像中每个人体关键点的单张的热度图heatmap,进而,基于每个人体关键点的单张的热度图,确定每个人体关键点的坐标。其中,任一关键点的热度图为该关键点可能存在的位置的概率分布图。

发明人在实现本发明的过程中发现,现有技术至少存在如下问题:

人体关键点的识别精度和模型复杂度无法同时保证,具体体现在:如果关键点的识别精准度较高,那么,热度图的尺寸需要较大,这样导致所利用的神经网络模型的复杂度会较高。

因此,如何在模型复杂度较低的情况下,保证人体关键点识别的识别精准度,是一个亟待解决的问题。



技术实现要素:

本发明实施例的目的在于提供一种人体关键点识别方法、装置及电子设备,以实现在模型复杂度较低的情况下,保证人体关键点识别的识别精准度的目的。

具体技术方案如下:

第一方面,本发明实施例提供了一种人体关键点识别方法,包括:

获取待识别人体关键点的目标图像;

利用预先训练的神经网络模型,生成所述目标图像中每个人体关键点的多级热度图;其中,所述多级热度图中各级热度图的尺寸相同且所述各级热度图对应的映射比值逐级放大,每级热度图对应的映射比值为在横向和纵向中的每一方向上,该级热度图中像素点相对于目标图像中像素点的映射比值;所述神经网络模型为基于样本图像,以及所述样本图像中每个人体关键点的多级真值热度图,所训练得到的模型;

按照预定的识别规则,基于所述目标图像中每个人体关键点的多级热度图,确定所述目标图像中的每个人体关键点的坐标;其中,所述预定的识别规则为:针对每一人体关键点,通过该人体关键点的多级热度图,从所述目标图像中逐级缩小区域以得到该人体关键点的规则。

可选地,所述按照预定的识别规则,基于所述目标图像中每个人体关键点的多级热度图,确定所述目标图像中的每个人体关键点的坐标的步骤,包括:

按照预定的第一计算公式,基于所述目标图像中每个人体关键点的多级热度图,确定所述目标图像中的每个人体关键点的坐标;

其中,所述预定的第一计算公式包括:

其中,(ix,iy)为人体关键点i的坐标,n为所述多级热度图的级数,hxj和hyj为所述人体关键点i的第j级热度图中取值最大的像素点的横坐标和纵坐标,hxn和hyn为所述人体关键点i的第n级热度图中取值最大的像素点的横坐标和纵坐标,为所述目标图像的横向尺寸与第n-j级热度图对应的映射比值的乘积,为所述目标图像的纵向尺寸与第n-j级热度图对应的映射比值的乘积。

可选地,所述神经网络模型的训练过程包括:

获取多个样本图像,以及每一样本图像中每个人体关键点的坐标;

针对每一样本图像,利用该样本图像中每个人体关键点的坐标,生成该样本图像中每个人体关键点的多级真值热度图;

分别将每一样本图像输入至训练中的所述神经网络模型,得到每一样本图像中每个人体关键点的多级预测热度图;

基于每一样本图像中每个人体关键点的多级真值热度图与多级预测热度图的差异,计算综合损失值;

基于所述综合损失值,判断训练中的所述神经网络模型是否收敛,如果收敛,结束训练,得到训练完成的所述神经网络模型;否则,调整所述神经网络模型的网络参数,继续训练所述神经网络模型。

可选地,生成任一样本图像中每个人体关键点的多级真值热度图的方式包括:

针对该样本图像中每一人体关键点,利用该人体关键点在该样本图像中的坐标,确定该人体关键点在各级真值热度图中的映射坐标;

针对该人体关键点的待生成的每一级真值热度图,生成一个矩阵m,所述矩阵m的尺寸与该级真值热度图的尺寸相同;

遍历所述矩阵m中的每一元素,在遍历到每一元素时,利用该人体关键点在该级真值热度图中的映射坐标,计算该元素与目标元素之间的距离,如果所述距离大于预定阈值,将该元素在所述矩阵m中的取值设置为0,否则,按照预定的更新方式,更新该元素在所述矩阵m中的取值,所述预定的更新方式为该元素与所述目标元素之间的距离越小,更新后的值越大;其中,所述目标元素为在该矩阵m中与该人体关键点对应的元素。

可选地,所述利用该人体关键点在该样本图像中的坐标,确定该人体关键点在各级真值热度图中的映射坐标的步骤,包括:

按照预定的第二计算公式,利用该人体关键点在该样本图像中的坐标,确定该人体关键点在各级真值热度图中的映射坐标;

其中,所述第二计算公式为:

当j=1时:

当n>j>1时:

当j=n时:

其中,(x′i-j,y′i-j)为第j级真值热度图中人体关键点i的映射坐标;为所述目标图像的纵向尺寸与第n-j级热度图对应的映射比值的乘积,为所述目标图像横向尺寸与第n-j级热度图对应的映射比值的乘积,n为多级真值热度图的总级数;

并且,j=2时,j大于2时,

可选地,所述利用该人体关键点在该级真值热度图中的映射坐标,计算该元素与目标元素之间的距离的步骤,包括:

按照预定的第三计算公式,利用该人体关键点在该级真值热度图中的映射坐标,计算该元素与目标元素之间的距离;

所述按照预定的更新方式,更新该元素在所述矩阵m中的取值的步骤,包括:

按照预定的第四计算公式,计算该元素对应的更新值,并以该更新值作为该元素在所述矩阵m中的取值;

其中,所述第三计算公式包括:

其中,dab为所述矩阵m中元素p(b,a)与所述目标元素之间的距离,a为所述元素p所在行的序号,b为所述元素p所在列的序号,(x′i-j,y′i-j)为该人体关键点在该级真值热度图中的映射坐标;

所述第四计算公式包括:

其中,m[a][b]为所述元素p的取值。

第二方面,本发明实施例提供了一种人体关键点识别装置,包括:

图像获取模块,用于获取待识别人体关键点的目标图像;

热度图生成模块,用于利用预先训练的神经网络模型,生成所述目标图像中每个人体关键点的多级热度图;其中,所述多级热度图中各级热度图的尺寸相同且所述各级热度图对应的映射比值逐级放大,每级热度图对应的映射比值为在横向和纵向中的每一方向上,该级热度图中像素点相对于目标图像中像素点的映射比值;所述神经网络模型为基于样本图像,以及所述样本图像中每个人体关键点的多级真值热度图,所训练得到的模型;

坐标生成模块,用于按照预定的识别规则,基于所述目标图像中每个人体关键点的多级热度图,确定所述目标图像中的每个人体关键点的坐标;其中,所述预定的识别规则为:针对每一人体关键点,通过该人体关键点的多级热度图,从所述目标图像中逐级缩小区域以得到该人体关键点的规则。

可选地,所述坐标生成模块具体用于:

按照预定的第一计算公式,基于所述目标图像中每个人体关键点的多级热度图,确定所述目标图像中的每个人体关键点的坐标;

其中,所述预定的第一计算公式包括:

其中,(ix,iy)为人体关键点i的坐标,n为所述多级热度图的级数,hxj和hyj为所述人体关键点i的第j级热度图中取值最大的像素点的横坐标和纵坐标,hxn和hyn为所述人体关键点i的第n级热度图中取值最大的像素点的横坐标和纵坐标,为所述目标图像的横向尺寸与第n-j级热度图对应的映射比值的乘积,为所述目标图像的纵向尺寸与第n-j级热度图对应的映射比值的乘积。

可选地,所述神经网络模型通过训练模块训练完成;所述训练模块包括:

图像获得子模块,用于获取多个样本图像,以及每一样本图像中每个人体关键点的坐标;

真值图生成子模块,用于针对每一样本图像,利用该样本图像中每个人体关键点的坐标,生成该样本图像中每个人体关键点的多级真值热度图;

训练子模块,用于分别将每一样本图像输入至训练中的所述神经网络模型,得到每一样本图像中每个人体关键点的多级预测热度图;

损失值计算子模块,用于基于每一样本图像中每个人体关键点的多级真值热度图与多级预测热度图的差异,计算综合损失值;

判断子模块,用于基于所述综合损失值,判断训练中的所述神经网络模型是否收敛,如果收敛,结束训练,得到训练完成的所述神经网络模型;否则,调整所述神经网络模型的网络参数,继续训练所述神经网络模型。

可选地,所述真值图生成子模块生成任一样本图像中每个人体关键点的多级真值热度图的方式包括:

针对该样本图像中每一人体关键点,利用该人体关键点在该样本图像中的坐标,确定该人体关键点在各级真值热度图中的映射坐标;

针对该人体关键点的待生成的每一级真值热度图,生成一个矩阵m,所述矩阵m的尺寸与该级真值热度图的尺寸相同;

遍历所述矩阵m中的每一元素,在遍历到每一元素时,利用该人体关键点在该级真值热度图中的映射坐标,计算该元素与目标元素之间的距离,如果所述距离大于预定阈值,将该元素在所述矩阵m中的取值设置为0,否则,按照预定的更新方式,更新该元素在所述矩阵m中的取值,所述预定的更新方式为该元素与所述目标元素之间的距离越小,更新后的值越大;其中,所述目标元素为在该矩阵m中与该人体关键点对应的元素。

可选地,所述真值图生成子模块利用该人体关键点在该样本图像中的坐标,确定该人体关键点在各级真值热度图中的映射坐标,包括:

按照预定的第二计算公式,利用该人体关键点在该样本图像中的坐标,确定该人体关键点在各级真值热度图中的映射坐标;

其中,所述第二计算公式为:

当j=1时:

当n>j>1时:

当j=n时:

其中,(x′i-j,y′i-j)为第j级真值热度图中人体关键点i的映射坐标;为所述目标图像的纵向尺寸与第n-j级热度图对应的映射比值的乘积,为所述目标图像横向尺寸与第n-j级热度图对应的映射比值的乘积,n为多级真值热度图的总级数;

并且,j=2时,j大于2时,

可选地,所述真值图生成子模块利用该人体关键点在该级真值热度图中的映射坐标,计算该元素与目标元素之间的距离,包括:

按照预定的第三计算公式,利用该人体关键点在该级真值热度图中的映射坐标,计算该元素与目标元素之间的距离;

所述按照预定的更新方式,更新该元素在所述矩阵m中的取值的步骤,包括:

按照预定的第四计算公式,计算该元素对应的更新值,并以该更新值作为该元素在所述矩阵m中的取值;

其中,所述第三计算公式包括:

其中,dab为所述矩阵m中元素p(b,a)与所述目标元素之间的距离,a为所述元素p所在行的序号,b为所述元素p所在列的序号,(x′i-j,y′i-j)为该人体关键点在该级真值热度图中的映射坐标;

所述第四计算公式包括:

其中,m[a][b]为所述元素p的取值。

第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一人体关键点识别方法的步骤。

第四方面,本发明实施还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一人体关键点识别方法的步骤。

第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一人体关键点识别方法。

本发明实施例所提供方案中,在识别目标图像中的人体关键点时,通过预先训练的神经网络模型,生成所述目标图像中每个人体关键点的多级热度图,其中,该多级热度图中各级热度图的尺寸相同且各级热度图对应的映射比值逐级放大,每级热度图对应的映射比值为在横向和纵向中的每一方向上,该级热度图中像素点相对于目标图像中像素点的映射比值;进而,按照预定的识别规则,基于该目标图像中每个人体关键点的多级热度图,确定该目标图像中的每个人体关键点的坐标。本方案中,多级热度图尺寸相同且各级热度图对应的映射比值逐级放大,相应的,多级热度图对应于目标图像中的区域逐级缩小,这样,在识别人体关键点时,可以通过多级热度图不断对候选区域进行逐级缩小,使得在多级热度图的尺寸较小的情况下,也能够保证较高的关键点识别精度。因此,通过本方案可以实现在模型复杂度较低的情况下,保证人体关键点识别的识别精准度的目的。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的一种人体关键点识别方法的流程图;

图2为本发明实施例所提供的神经网络模型的训练过程的流程图;

图3(a)为示例性给出的神经网络模型的一种结构图;

图3(b)为神经网络模型的训练过程的示意图;

图3(c)为示例性给出的多级热度图逐级缩小区域的界面示意图;

图4为本发明实施例所提供的一种人体关键点识别装置的示意图;

图5为本发明实施例所提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了实现在模型复杂度较低的情况下,保证人体关键点识别的识别精准度的目的,本发明实施例提供了一种人体关键点识别方法、装置及电子设备。

下面首先对本发明实施例所提供的一种人体关键点识别方法进行介绍。

其中,本发明实施例所提供的一种人体关键点识别方法的执行主体可以为一种人体关键点识别装置。该人体关键点识别装置可以应用于电子设备中。在具体应用中,该电子设备可以为终端设备或者服务器,这都是合理的。

另外,本发明实施例所涉及的人体关键点用于定位人体的身体关键部位,例如:头部、颈部、肩部、手部、腿部和/或脚部等部位;并且,针对任一身体关键部位,在定位该身体关键部位时,所需要的关键点可以为一个或多个。在不同的场景中,由于需要定位的身体关键部位不同,因此,人体关键点的具体位置以及数量可以不同,本发明实施例对此不做限定。

为了方便理解方案,首先介绍本发明实施例所提供方案的处理思路。为了解决现有技术问题,本方案的处理思路为:通过预先训练的神经网络模型,生成待识别的目标图像中每个人体关键点的多级热度图,该多级热度图的尺寸相同但各级热度图对应的映射比值逐级放大,每级热度图对应的映射比值为在横向和纵向中的每一方向上,该级热度图中像素点相对于目标图像中像素点的映射比值;进而,通过多级热度图,不断对候选区域进行逐级缩小,从而得到人体关键点。这样,在多级热度图的尺寸较小的情况下,也能够保证较高的关键点识别精度。因此,通过本方案可以实现在模型复杂度较低的情况下,保证人体关键点识别的识别精准度的目的。

如图1所示,本发明实施例所提供的一种人体关键点识别方法,可以包括如下步骤:

s101,获取待识别人体关键点的目标图像;

其中,待识别人体关键的目标图像为包含人体区域的图像。并且,该目标图像的尺寸可以为预先训练的神经网络模型的输入图像的尺寸,这样使得目标图像在输入神经网络模型时,无需尺寸调整,从而后续通过位移图和热度图结合所得到的人体关键点的坐标,为人体关键点在该目标图像中的坐标。

其中,获取待识别人体关键点的目标图像的方式存在多种。示例性的,获取待识别人体关键点的目标图像的方式可以包括:

获取原始图像;其中,该原始图像可以为视频的视频帧,或者,设备采集的图像,或者,通过网络下载的图像,等等;

对原始图像进行人体区域检测;

从该原始图像中提取所检测到的人体区域,并将所提取到的人体区域进行尺寸调整处理,得到待识别人体关键点的目标图像,该尺寸调整处理用于将尺寸调整为该神经网络模型的输入图像的尺寸。其中,对该原始图像进行人体区域检测所采用的具体实现方式可以为任一种能够从图像中检测人体区域的方式。例如:利用预先训练的人体区域检测模型,从该原始图像中检测人体区域,当然并不局限于此。

并且,由于从原始图像中所检测到的人体区域的大小不确定,而神经网络模型的输入图像为固定的尺寸,因此,为了作为神经网络模型的有效输入内容,在从该原始图像中提取所检测到的人体区域后,可以将所提取到的人体区域进行尺寸调整处理,得到待识别人体关键点的目标图像。所谓的尺寸调整处理所采用的算法可以为插值算法,该插值算法可以双线性插值或最邻近插值算法,当然并不局限于此。

s102,利用预先训练的神经网络模型,生成该目标图像中每个人体关键点的多级热度图;

其中,该多级热度图中各级热度图的尺寸相同,并且,各级热度图对应的映射比值逐级放大,每级热度图对应的映射比值为在横向和纵向中的每一方向上,该级热度图中像素点相对于目标图像中像素点的映射比值。另外,该神经网络模型为基于样本图像,以及该样本图像中每个人体关键点的多级真值热度图,所训练得到的模型。可以理解的是,该目标图像的尺寸与样本图像的尺寸相同;并且,该目标图像中每个人体关键点的多级热度图的尺寸,与样本图像中每个人体关键点的多级真值热度图的尺寸相同。

其中,任一人体关键点的多级热度图中每一级热度图均为:该人体关键点可能存在位置的概率分布图。并且,所谓的各级热度图对应的映射比值逐级放大具体指:相邻两级热度图,上一级热度图对应的映射比值为1/s1,下一级热度图对应的映射比值为1/s2,1/s2为1/s1的n倍,n大于等于2。示例性的,假设多级热度图为三级热度图,第1级热度图对应的映射比值为1/125,第2级热度图对应的映射比值为1/25,第3级热度图对应的映射比值为1/5,可见,第1级热度图对应的映射比值、第2级热度图对应的映射比值和第3级热度图对应的映射比值是逐级放大的,且相邻两级热度图对应的映射比值的放大倍数为5倍。

另外,在横向和纵向中的每一方向上,该级热度图中像素点相对于目标图像中像素点的映射比值,可以表征:在横向和纵向中的每一方向上,该级热度图中一像素点映射到目标图像时与该像素点对应的映射点的数量。举例而言,假设目标图像为625*625,第1级热度图对应的映射比值为1/125,第2级热度图对应的映射比值为1/25,第3级热度图对应的映射比值为1/5,第4级热度图对应的映射比值为1/1,那么,在横向和纵向的每一方向上,第1级热度图中的一个像素点a映射到目标图像时与该像素点a相应的映射点的数量为125,第2级热度图中的一个像素点b映射到目标图像时与该像素点b相应的映射点的数量为25,第3级热度图中的一个像素点c映射到目标图像时与该像素点c相应的映射点的数量为5,第4级热度图中的一个像素点d映射到目标图像时与该像素点d相应的映射点的数量为1。也就是说,第1级热度图中一个点对应目标图像中125*125个像素点,第2级热度图中一个点对应目标图像中25*25个像素点,第3级热度图中一个点对应目标图像中5*5个像素点,第4级热度图中一个点对应目标图像中1*1个像素点。在具体应用中,神经网络模型的模型结构可以为多种。示例性的,在一种实现方式中,参见图3(a)所示,神经网络模型可以包括:特征提取网络和n个卷积组,n的取值为多级热度图的级别数量。这样,将一张图像输入特征提取网络,得到图像特征,即特征矩阵,然后,将图像特征分别输入n个卷积组,每一卷积组可以输出:所输入图像中每个人体关键点的一个级别热度图,最终通过n个卷积组,得到所输入图像中每个人体关键点的多级热度图。其中,特征提取网络可以包括但不局限于如下网络:lenet、alexnet、vgg、googlenet、resnet、mobilenet等特征提取网络。而n个卷积组中的每一卷积组可以由多个卷积组成,该多个卷积的具体数量可以根据实际情况设定。

为了方案清楚,以图3(a)所示的神经网络模型为例,示例性的介绍神经网络模型对图像的处理流程:

将wf×hf×3的图像输入至特征提取网络,输出的特征矩阵,其中,3为图像的通道数,512为特征矩阵的数量,α为预设的缩小系数,α越小网络精度越高;

的特征矩阵,输入至卷积组1,输出即输出m张的第1级热度图,其中,m是人体关键点的个数;

的特征矩阵,输入至卷积组2,输出即输出m张的第2级热度图;

的特征矩阵,输入至卷积组n,输出即输出m张第n级热度图。

该示例中,相邻两级热度图,下一级热度相对上一级热度图,尺寸相同,但是精度逐级放大。

上述的介绍的神经网络模型的结构以及对图像的处理流程,仅仅作为示例,并不应该构成对本发明实施例的限定。

s103,按照预定的识别规则,基于所述目标图像中每个人体关键点的多级热度图,确定该目标图像中的每个人体关键点的坐标。

其中,该预定的识别规则为:针对每一人体关键点,通过该人体关键点的多级热度图,从该目标图像中逐级缩小区域以得到该人体关键点的规则。

示例性的,所述按照预定的识别规则,基于该目标图像中每个人体关键点的多级热度图,确定该目标图像中的每个人体关键点的坐标的步骤,可以包括:

按照预定的第一计算公式,基于该目标图像中每个人体关键点的多级热度图,确定该目标图像中的每个人体关键点的坐标;

其中,所述预定的第一计算公式包括:

其中,(ix,iy)为人体关键点i的坐标,n为该多级热度图的级数,hxj和hyj为该人体关键点i的第j级热度图中取值最大的像素点的横坐标和纵坐标,hxn和hyn为该人体关键点i的第n级热度图中取值最大的像素点的横坐标和纵坐标,为该目标图像的横向尺寸与第n-j级热度图对应的映射比值的乘积,为该目标图像的纵向尺寸与第n-j级热度图对应的映射比值的乘积。

可以理解的是,任一级热度图中取值最大的像素点为属于人体关键点概率最高的点,因此,在利用多级热度图计算人体关键点的坐标时,可以利用各级热度图中取值最大的像素点,在上一级所确定的候选区域的基础上,进一步进行区域缩小。也就是说,利用第1级热度图可以从人体图中确定关键点所在的一候选区域,通过第2级热度图可以将利用第1级热度图所确定的候选区域进一步缩小,得到关键点所在的新的候选区域,而通过第3级热度图可以将利用第2级热度图所确定的候选区域再次缩小,以此类推,最终将利用最后一级热度图所确定出的候选区域确定为关键点所在的位置点。为了方案清楚,图3(c)示例性的给出了利用三级热度图逐级缩小区域,从而得到人体关键点的原理示意图。

本方案中,多级热度图尺寸相同且各级热度图对应的映射比值逐级放大,相应的,多级热度图对应于目标图像中的区域逐级缩小,这样,在识别人体关键点时,可以通过多级热度图不断对候选区域进行逐级缩小,使得在多级热度图的尺寸较小的情况下,也能够保证较高的关键点识别精度。因此,通过本方案可以实现在模型复杂度较低的情况下,保证人体关键点识别的识别精准度的目的。

为了方案清楚以及布局清晰,下面示例性的介绍神经网络模型的训练过程。

可选地,如图2所示,该神经网络模型的训练过程可以包括:

s201,获取多个样本图像,以及每一样本图像中每个人体关键点的坐标;

其中,样本图像的尺寸为神经网络模型的输入图像的尺寸。并且,样本图像可以为:对人体图进行尺寸调整后所得到的图像,该人体图为从一图像中所提取的人体图像区域。

可以理解的是,样本图像中每个人体关键点的坐标可以通过人工标注方式来确定,即通过人工标注方式,在样本图像中标注出各个人体关键点,从而获得样本图像中各个人体关键点的坐标。当然,由于样本图像可以为:对人体图进行尺寸调整后所得到的图像,因此,在一种实现方式中,样本图像中每个人体关键点的坐标的确定方式可以包括:

步骤一,确定图像库中参考图像的每个人体关键点的坐标:令p={p1,p2,p3,...,pn}为样本图像的人体关键点的组合,其中,n为人体关键点的个数,pi=(xi,yi)为第i个坐标;

其中,图像库中参考图像可以为视频中的视频帧,也可以为预先采集或下载的图像。

步骤二,确定参考图像中人体区域的区域信息:令区域信息为(xbbox,ybbox,wbbox,hbbox);

步骤三,将参考图像中每个人体关键点映射到人体区域中,得到人体区域中每个人体关键点的坐标:令p,={p’1,p’2,p’3,...,p’n}为人体区域的每个人体关键点的组合,p’i=(x’i,y’i)为第i个坐标,x’i=xi-xbbox,y’i=yi-ybbox;

步骤四,将人体区域中每个人体关键点映射到该人体区域对应的样本图像中,得到样本图像中每个人体关键点的坐标。

其中,将人体区域中每个人体关键点的坐标映射到人体区域对应的样本图像的具体实现方式,可以采用:将两个尺寸的图像之间坐标点进行映射方式。举例而言:人体区域对应的样本图像的尺寸为m*n,人体区域的尺寸为(m/d1)*(n/d1),对于人体区域中的点k1(x1,y1),将k1点映射到人体区域对应的样本图像中,点k1在人体区域对应的样本图像中的映射点的坐标为(x1*d1,y1*d1)。

可以理解的是,参考图像中每个人体关键点的坐标可以通过人工标定方式来得到。

s202,针对每一样本图像,利用该样本图像中每个人体关键点的坐标,生成该样本图像中每个人体关键点的多级真值热度图;

为了布局清楚及方案清晰,后续介绍生成该样本图像中每个人体关键点的多级真值热度图的具体实现方式。

s203,分别将每一样本图像输入至训练中的该神经网络模型,得到每一样本图像中每个人体关键点的多级预测热度图;

在将每一样本图像输入至训练中的该神经网络模型后,该神经网络模型针对每一样本图像进行关键点信息识别。具体的,该神经网络模型对所接收到的样本图像提取特征矩阵,进而基于所提取的特征矩阵,生成该样本图像中每个人体关键点的多级预测热度图。

以图3(a)所示的模型结构为例,对神经网络模型处理所接收到的样本图像的过程进行介绍:

神经网络模型中的特征提取网络对该样本图像进行特征提取,得到特征矩阵,并将该特征矩阵分别输入至卷积组1-卷积组n,使得各个卷积组对特征矩阵进行卷积处理,得到每个人体关键点的多级预测热度图。

s204,基于每一样本图像中每个人体关键点的多级真值热度图与多级预测热度图的差异,计算综合损失值;

其中,基于每一样本图像中每个人体关键点的多级真值热度图与多级预测热度图的差异,计算综合损失值的具体实现方式存在多种。

示例性的,在一种实现方式中,所述基于每一样本图像中每个人体关键点的多级真值热度图与多级预测热度图的差异,计算综合损失值,可以包括:

针对每个多级预测热度图,执行如下操作:针对该多级预测热度图的每一级预测热度图,利用预定的损失函数,计算该级预测热度图与目标热度图的损失值,得到该级预测热度图的损失值;目标热度图为该多级预测热度图的多级真值热度图中相应级别的真值热度图;

针对每个多级预测热度图,将该多级预测热度图的每级预测热度图对应的损失值进行加权,得到该多级预测热度图的损失值;

将每个多级预测热度图的损失值进行加权,计算综合损失值。

其中,预定的损失函数可以包括但不局限于:平方损失函数、对数损失函数或指数损失函数,等等。另外,加权所利用的权重可以根据实际情况设定,在此不做限定。

s205,基于综合损失值,判断训练中的神经网络模型是否收敛,如果收敛,结束训练,得到训练完成的所述神经网络模型;否则,调整神经网络模型的网络参数,继续训练神经网络模型。

其中,基于该综合损失值,判断训练中的该神经网络模型是否收敛具体可以为:判断该综合损失值是否小于预设阈值,如果小于,判定训练中的该神经网络模型收敛,否则,判定训练中的该神经网络模型未收敛。当判定训练中的该神经网络模型未收敛时,可以调整该神经网络模型的网络参数,继续训练该神经网络模型。所谓继续训练该神经网络模型,即返回执行分别将每一样本图像输入至训练中的该神经网络模型,得到每一样本图像中每个人体关键点的预测热度图和预测位移图的步骤。

关于神经网络模型的训练过程可以参见图3(b)所示的示意图,其中,以一个关键点为例,给出了多级预测热度图与多级真值热度图之间的综合损失值的计算流程。

可选地,在一种实现方式中,任一样本图像中每个人体关键点的多级真值热度图的生成方式,可以包括:

针对该样本图像中每一人体关键点,利用该人体关键点在该样本图像中的坐标,确定该人体关键点在各级真值热度图中的映射坐标;

针对该人体关键点的待生成的每一级真值热度图,生成一个矩阵m,该矩阵m的尺寸与该级真值热度图的尺寸相同;

遍历该矩阵m中的每一元素,在遍历到每一元素时,利用该人体关键点在该级真值热度图中的映射坐标,计算该元素与目标元素之间的距离,如果该距离大于预定阈值,将该元素在该矩阵m中的取值设置为0,否则,按照预定的更新方式,更新该元素在所述矩阵m中的取值,该预定的更新方式为该元素与该目标元素之间的距离越小,更新后的值越大;其中,该目标元素为在该矩阵m中与该人体关键点对应的元素。

其中,该目标元素具体为:在矩阵m中,具有第一坐标的元素,该第一坐标为该人体关键点在该级真值热度图中的映射坐标。并且,矩阵m中各个元素的初始值可以为0,当然并不局限于此,例如:初始值可以为1、10、100等等,这都是合理的。

针对上述实现方式可知,对于一个人体关键点而言,在生成该人体关键点的多级真值热度图时,首先确定该人体关键点在各级真值热度图中的映射坐标;进而,在生成该人体关键点的每一级真值热度图时,初始化一个矩阵,根据矩阵中各个元素与该人体关键点所对应的元素的距离关系,来为矩阵中各个元素进行取值,该取值即为各个元素属于人体关键点的映射坐标的概率,这样,便形成了一级的真值热度图。

示例性的,在一种实现方式中,所述利用该人体关键点在该样本图像中的坐标,确定该人体关键点在各级真值热度图中的映射坐标的步骤,可以包括:

按照预定的第二计算公式,利用该人体关键点在该样本图像中的坐标,确定该人体关键点在各级真值热度图中的映射坐标;

其中,所述第二计算公式为:

当j=1时:

当n>j>1时:

当j=n时:

其中,(x′i-j,y′i-j)为第j级真值热度图中人体关键点i的映射坐标;为所述目标图像的纵向尺寸与第n-j级热度图对应的映射比值的乘积,为所述目标图像横向尺寸与第n-j级热度图对应的映射比值的乘积,n为多级真值热度图的总级数;

并且,j=2时,j大于2时,

通过该计算公式可知,针对相邻两级热度图而言,在计算人体关键点在下一级热度图中的映射坐标时,利用上一级映射坐标时的余数,这样使得该下一级热度图中的映射坐标为:将该人体关键点在该下一级热度图所对应区域内的坐标映射到该下一级热度图所得的坐标。

另外,所述利用该人体关键点在该级真值热度图中的映射坐标,计算该元素与目标元素之间的距离的步骤,可以包括:

按照预定的第三计算公式,利用该人体关键点在该级真值热度图中的映射坐标,计算该元素与目标元素之间的距离;

所述按照预定的更新方式,更新该元素在所述矩阵m中的取值的步骤,包括:

按照预定的第四计算公式,计算该元素对应的更新值,并以该更新值作为该元素在所述矩阵m中的取值;

其中,所述第三计算公式包括:

其中,dab为该矩阵m中元素p(b,a)与该目标元素之间的距离,a为元素p所在行的序号,b为元素p所在列的序号,(x′i-j,y′i-j)为该人体关键点在该级真值热度图中的映射坐标;

该第四计算公式包括:

其中,m[a][b]为该元素p的取值。

下面结合一个具体示例,对本发明实施例所提供的人体关键点识别方法进行介绍。

假设待识别图像为图像k,预先训练的神经网络模型的输入图像的尺寸为625*625,所输出多级热度图为四级热度图。假设该四级热度图中,各级热度图的尺寸为5*5,并且,第1级热度图对应的映射比值为1/125,第2级热度图对应的映射比值为1/25,第3级热度图对应的映射比值为1/5,第4级热度图对应的映射比值为1/1。

那么,利用本发明实施例所提供的人体关键点识别方法来识别该目标图像中关键点的过程包括:

获得待识别人体关键点的图像k,该图像k的尺寸为625*625;

将目标图像输入至预先训练的神经网络模型,得到该目标图像中每个人体关键点的四级热度图,即尺寸为5*5的第1级热度图、第2级热度图、第3级热度图和第4级热度图;

按照预定的第一计算公式,基于该目标图像中每个人体关键点的四级热度图,确定该目标图像中的每个人体关键点的坐标。

假设目标图像中一人体关键点p的真实坐标为(423,410)。通过神经网络模型生成该人体关键点p的四级热度图,其中,第1级热度图中取值最大的像素点的坐标为(3,3),第2级热度图中取值最大的像素点的坐标为(1,1),第3级热度图中取值最大的像素点的坐标为(4,2),第4级热度图中取值最大的像素点的坐标为(3,0)。那么,按照预定的第一计算公式,基于各级热度图中取值最大的像素点的坐标,对于点p的坐标的计算过程如下:

综上可见,计算得到的人体关键点p的坐标为(423,410),计算得到的人体关键点p的坐标与真实坐标相同。

其中,各级热度图中取值最大的像素点的确定方式如下:

由上述的任一样本图像中每个人体关键点的多级真值热度图的生成方式,可知:

针对第1级热度图而言,按照上述的第二计算公式,人体关键点p在第1级热度图中的映射坐标(x′i-1,y′i-1)计算过程如下:

可见,人体关键点p在第1级热度图中的映射坐标(x′i-1,y′i-1)为(3,3),那么,第1级热度图中取值最大的像素点的坐标为(3,3)。

针对第2级热度图而言,按照上述的第二计算公式,人体关键点p在第2级热度图中的映射坐标(x′i-2,y′i-2)计算过程如下:

可见,人体关键点p在第2级热度图中的映射坐标(x′i-2,y′i-2)为(1,1),那么,第2级热度图中取值最大的像素点的坐标为(1,1)。

针对第3级热度图而言,按照上述的第二计算公式,人体关键点p在第3级热度图中的映射坐标(x′i-3,y′i-3)计算过程如下:

可见,人体关键点p在第3级热度图中的映射坐标(x′i-3,y′i-3)为(4,2),那么,第3级热度图中取值的像素点的坐标为(4,2);

针对第4级热度图而言,按照上述的第二计算公式,可知人体关键点p在第4级热度图的映射坐标(x′i-4,y′i-4)的计算过程如下:

可见,第4级热度图中取值最大的像素点的坐标(x′i-4,y′i-4)为(3,0)。

并且,需要说明的是,由于第1级热度图对应的映射比值为1/125,即第1级热度图中一个点对应目标图像中125*125个像素点,且热度图的尺寸为5*5,因此,第1级热度图对应的区域的尺寸为625*625。由于第2级热度图对应的映射比值为1/25,即第2级热度图中一个点对应目标图像中(25*25个像素点,且热度图的尺寸5*5,因此,第2级热度图对应的区域的尺寸为125*125。由于第3级热度图对应的映射比值为1/5,即第3级热度图中一个点对应目标图像中5*5个像素点,且热度图的尺寸为5*5,因此,第3级热度图对应的区域的尺寸为25*25。由于第4级热度图对应的映射比值为1/1,即第4级热度图中一个点对应于目标图像中1*1个像素点,且热度图尺寸为5*5,因此,第4级热度图对应的区域的尺寸为5*5。也就是说,各级热度图所针对的目标图像中的区域逐级缩小。这样,通过人体关键点p的多级热度图,利用第一计算公式,可以从目标图像中逐级缩小区域以得到该人体关键点p。

相应于上述方法实施例,如图4所示,本发明实施例还提供了一种人体关键点识别装置。如图4所示,该人体关键点识别装置,可以包括:

图像获取模块410,用于获取待识别人体关键点的目标图像;

热度图生成模块420,用于利用预先训练的神经网络模型,生成所述目标图像中每个人体关键点的多级热度图;其中,所述多级热度图中各级热度图的尺寸相同且所述各级热度图对应的映射比值逐级放大,每级热度图对应的映射比值为在横向和纵向中的每一方向上,该级热度图中像素点相对于目标图像中像素点的映射比值;所述神经网络模型为基于样本图像,以及所述样本图像中每个人体关键点的多级真值热度图,所训练得到的模型;

坐标生成模块430,用于按照预定的识别规则,基于所述目标图像中每个人体关键点的多级热度图,确定所述目标图像中的每个人体关键点的坐标;其中,所述预定的识别规则为:针对每一人体关键点,通过该人体关键点的多级热度图,从所述目标图像中逐级缩小区域以得到该人体关键点的规则。

可选地,所述坐标生成模块430具体用于:

按照预定的第一计算公式,基于所述目标图像中每个人体关键点的多级热度图,确定所述目标图像中的每个人体关键点的坐标;

其中,所述预定的第一计算公式包括:

其中,(ix,iy)为人体关键点i的坐标,n为所述多级热度图的级数,hxj和hyj为所述人体关键点i的第j级热度图中取值最大的像素点的横坐标和纵坐标,hxn和hyn为所述人体关键点i的第n级热度图中取值最大的像素点的横坐标和纵坐标,为所述目标图像的横向尺寸与第n-j级热度图对应的映射比值的乘积,为所述目标图像的纵向尺寸与第n-j级热度图对应的映射比值的乘积。

可选地,所述神经网络模型通过训练模块训练完成;所述训练模块包括:

图像获得子模块,用于获取多个样本图像,以及每一样本图像中每个人体关键点的坐标;

真值图生成子模块,用于针对每一样本图像,利用该样本图像中每个人体关键点的坐标,生成该样本图像中每个人体关键点的多级真值热度图;

训练子模块,用于分别将每一样本图像输入至训练中的所述神经网络模型,得到每一样本图像中每个人体关键点的多级预测热度图;

损失值计算子模块,用于基于每一样本图像中每个人体关键点的多级真值热度图与多级预测热度图的差异,计算综合损失值;

判断子模块,用于基于所述综合损失值,判断训练中的所述神经网络模型是否收敛,如果收敛,结束训练,得到训练完成的所述神经网络模型;否则,调整所述神经网络模型的网络参数,继续训练所述神经网络模型。

可选地,所述真值图生成子模块生成任一样本图像中每个人体关键点的多级真值热度图的方式包括:

针对该样本图像中每一人体关键点,利用该人体关键点在该样本图像中的坐标,确定该人体关键点在各级真值热度图中的映射坐标;

针对该人体关键点的待生成的每一级真值热度图,生成一个矩阵m,所述矩阵m的尺寸与该级真值热度图的尺寸相同;

遍历所述矩阵m中的每一元素,在遍历到每一元素时,利用该人体关键点在该级真值热度图中的映射坐标,计算该元素与目标元素之间的距离,如果所述距离大于预定阈值,将该元素在所述矩阵m中的取值设置为0,否则,按照预定的更新方式,更新该元素在所述矩阵m中的取值,所述预定的更新方式为该元素与所述目标元素之间的距离越小,更新后的值越大;其中,所述目标元素为在该矩阵m中与该人体关键点对应的元素。

可选地,所述真值图生成子模块利用该人体关键点在该样本图像中的坐标,确定该人体关键点在各级真值热度图中的映射坐标,包括:

按照预定的第二计算公式,利用该人体关键点在该样本图像中的坐标,确定该人体关键点在各级真值热度图中的映射坐标;

其中,所述第二计算公式为:

当j=1时:

当n>j>1时:

当j=n时:

其中,(x′i-j,y′i-j)为第j级真值热度图中人体关键点i的映射坐标;为所述目标图像的纵向尺寸与第n-j级热度图对应的映射比值的乘积,为所述目标图像横向尺寸与第n-j级热度图对应的映射比值的乘积,n为多级真值热度图的总级数;

并且,j=2时,j大于2时,

可选地,所述真值图生成子模块利用该人体关键点在该级真值热度图中的映射坐标,计算该元素与目标元素之间的距离,包括:

按照预定的第三计算公式,利用该人体关键点在该级真值热度图中的映射坐标,计算该元素与目标元素之间的距离;

所述按照预定的更新方式,更新该元素在所述矩阵m中的取值的步骤,包括:

按照预定的第四计算公式,计算该元素对应的更新值,并以该更新值作为该元素在所述矩阵m中的取值;

其中,所述第三计算公式包括:

其中,dab为所述矩阵m中元素p(b,a)与所述目标元素之间的距离,a为所述元素p所在行的序号,b为所述元素p所在列的序号,(x′i-j,y′i-j)为该人体关键点在该级真值热度图中的映射坐标;

所述第四计算公式包括:

其中,m[a][b]为所述元素p的取值。

相应于上述方法实施例,本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,

存储器503,用于存放计算机程序;

处理器501,用于执行存储器503上所存放的程序时,实现本发明实施例所提供的任一种人体关键点识别方法的步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的任一种人体关键点识别方法的步骤。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本发明实施例所提供的任一种人体关键点识别方法的步骤。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的每个实施例均采用相关的方式描述,每个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、存储介质及程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1