本发明属于人体姿态估计领域,更具体地,涉及一种3d人体姿态估计模型的构建方法及其应用。
背景技术:
:3d人体姿态估计是指通过rgb图像或视频,对于人体关节点的3d坐标进行预测,相比于传统的2d姿态估计方法,由于3d姿态具备立体的空间结构信息,在行为识别、人机交互等场景下都有重要应用价值。当前基于视频的3d人体姿态估计方法大致可以分为两类,一类采用端到端方式,利用深度学习网络直接从输入的rgb视频中预测出人体3d关节点位置;另一类则采用两阶段方式,首先利用已有的2d姿态估计网络从输入视频中提取出人体的2d骨架,然后利用连续的多帧2d骨架进行3d关节点预测。对于端到端的3d姿态估计方法,由于其输入是二维图像矩阵,所以网络在学习过程中可以获得更多的颜色、纹理等对于关节点恢复有用的信息,但是相对的当输入视频的场景过于复杂或是目标和背景区分不大时,端到端的方式也更容易受到颜色、光照等因素的影响。并且端到端的网络在训练时需要有3d骨架关节点的真实坐标作为训练监督,由于此类数据非常难以获取,当前可供使用的数据集较少场景也较为单一,导致此类网络精度和泛化能力都较差。而对于两阶段的3d姿态估计方法,由于当前2d姿态估计网络已经非常成熟,具备较高的精度和较强的泛化能力,通过2d姿态估计网络从rgb图像中估计出人体的2d骨架,消除掉图像中背景、光照等因素的影响,然后构建2d骨架到3d骨架的预测网络,实现3d人体姿态估计,这个过程也使得模型整体对于不同场景具备了一定的泛化能力。尽管如此,当前两阶段的3d姿态估计方法也仍然存在诸多问题,例如当前已有的基于单目视频的两阶段3d姿态估计网络往往需要大量骨架帧作为输入才能获得较为准确的3d人体姿态,导致模型在姿态估计速度上较慢。且当前网络往往过度关注于时间或空间单一维度的特征,3d姿态估计的精度较低。技术实现要素:针对现有技术的以上缺陷或改进需求,本发明提供一种基于时空特性融合的3d人体姿态估计方法,用以解决采用现有技术进行3d姿态估计精确度较低的技术问题。为了实现上述目的,第一方面,本发明提供了一种3d人体姿态估计模型的构建方法,包括以下步骤:s1、搭建3d人体姿态估计模型;其中,3d人体姿态估计模型包括m个特征提取模块和与各特征提取模块相连的特征融合模块;m大于或等于2;m个特征提取模块用于对输入的人体2d骨架时序数据在m个不同感受野大小上进行时域卷积和图卷积,以提取其在时间维度上的运动特征和在空间维度上的空间结构特征,从而得到m个不同尺度的时空特征;人体2d骨架时序数据为q帧人体各关节点的2d位置数据;q大于或等于2;特征融合模块用于将m个不同尺度的时空特征进行融合,得到人体各关节点3d位置的预测值;s2、以最小化人体各关节点3d位置的预测值与真实值之间的差异以及最小化估计到的左右对称的关节长度的差异为目标,采用预采集好的训练集训练3d人体姿态估计模型;其中,训练集中的训练样本包括2d骨架时序数据及其对应的各关节点的3d位置数据。进一步优选地,第一个特征提取模块包括级联的第一时域卷积单元、图卷积单元和第二时域卷积单元;第m个特征提取模块的输入端与第m-1个特征提取模块中的图卷积单元的输出端相连;第m个特征提取模块包括级联的第一时域卷积单元、图池化单元和图卷积单元;当m大于或等于3时,第i个特征提取模块的输入端与第i-1个特征提取模块中的图卷积单元的输出端相连;第i个特征提取模块包括级联的第一时域卷积单元、图池化单元、图卷积单元和第二时域卷积单元;i=2,3,…,m-1。进一步优选地,第一个特征提取模块用于对输入的人体2d骨架时序数据依次进行时域卷积、图卷积和时域卷积操作,得到第一个尺度的时空特征,输出至特征融合模块;并将其中进行图卷积操作后的中间时空特征输出至下一个特征提取模块;第m个特征提取模块用于对输入的中间时空特征依次执行时域卷积、图池化和图卷积操作,得到第m个尺度的时空特征,并输出至特征融合模块;当m大于或等于3时,第i个特征提取模块用于对输入的中间时空特征依次执行时域卷积、图池化、图卷积和时域卷积操作,得到第i个尺度的时空特征,输出至特征融合模块;并将其中进行图卷积后的中间时空特征发送至第i 1个特征提取模块。进一步优选地,第m个特征提取模块中的图池化方法包括:直接对中间时空特征进行时域卷积后的结果进行topk池化操作;当m大于或等于3时,第i个特征提取模块中的图池化方法包括:将人体关节按照四肢、头部和躯干进行分组,对每组关节所对应的中间时空特征进行时域卷积后的结果分别进行topk池化操作;其中,k取值为1。进一步优选地,特征融合模块用于从j=m开始进行时空特征融合操作;具体为:对第j个尺度的时空特征与第j-1个尺度的时空特征进行融合,并将第j-1个尺度的时空特征更新为融合后的结果;令j=j-1,重复上述时空特征融合操作,直至j=1,得到更新后的第一个尺度的时空特征后对其进行图卷积操作,得到人体各关节点3d位置的预测值。进一步优选地,对第j个尺度的时空特征与第j-1个尺度的时空特征进行融合的方法包括:对第j个尺度的时空特征进行上采样后执行图卷积操作,使得其大小与第j-1个尺度的时空特征的大小相同后,将二者进行加和。进一步优选地,训练集的采集方法包括:采集人体姿态视频;其中,人体姿态视频为在同一视角下对同一个人体拍摄的多种姿态视频;从人体姿态视频中抽取q帧人体姿态图像,并按照时间先后顺序进行排列;抽取多次后,得到多组包含q帧人体姿态图像的图像数据;对各组图像数据,分别按帧进行2d姿态估计,得到多组人体2d骨架时序数据;对各组人体2d骨架时序数据,分别标注其所对应的人体各关节点的3d位置,构成训练集。进一步优选地,采用预训练好的hr-net网络进行2d姿态估计;上述hr-net网络采用人体不同姿势下的图像及其对应的人体各关节点的2d位置构成的2d姿态估计训练集进行训练。第二方面,本发明提供了一种3d人体姿态估计方法,包括:对输入的q帧人体姿态图像分别进行2d姿态估计,得到人体2d骨架时序数据;将人体2d骨架时序数据输入到采用上述3d人体姿态估计模型的构建方法所构建的3d人体姿态估计模型中,得到人体各关节点3d位置的预测值。第三方面,本发明还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现如上所述的任一种3d人体姿态估计模型的构建方法和/或如上所述的3d人体姿态估计方法。总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:1、本发明提供了一种3d人体姿态估计模型的构建方法,充分利用了人体在空间结构上的多尺度特征以及时间维度上关节点的长期运动特征,分别在多个不同感受野大小上提取输入的人体2d骨架时序数据在时间维度上的运动特征和在空间维度上的空间结构特征,得到多个不同尺度的融合时空特征,并对不同尺度的融合时空特征进行融合,有效提升了模型对于人体2d骨架序列的特征提取能力,提高了3d姿态估计网络的预测精度。2、本发明所提供的3d人体姿态估计模型的构建方法,所构建的模型包含图卷积网络层、时域卷积网络层、图池化层和上采样层五种子网络层,构建得到从局部到全局的多层网络结构,通过时域卷积操作捕获骨架关节点在时间维度上的运动趋势,同时通过图池化和图卷积操作得到不同尺度的空间结构特征,能够很好的融合不同尺度的时空特性并有效提升3d姿态估计的精度。3、本发明所提供的3d人体姿态估计模型的构建方法,在进行图池化操作时采用分组topk图池化方法,将人体关节按照四肢、头部和躯干进行分组后进行top1池化操作,可以使得模型在对关节点进行下采样的过程中尽量减少关节点的信息丢失,且该分组方式能够很好的维持人体的结构特性,使得模型在获得不同尺度特征的同时减少姿态语义信息丢失。4、本发明所提供的3d人体姿态估计模型的构建方法,通过上采样操作从局部到全局对不同尺度特征进行融合,能够大大提高预测的精确度。5、本发明所提供的3d人体姿态估计方法,由于同时引入了时间和空间特征,最大程度的挖掘了2d骨架序列的时空信息,相比于现有技术,在单目视频应用场景下只需输入少量的2d骨架数据帧即可得到精确度较高的3d人体姿态预测结果,速度较快。附图说明图1为本发明实施例1提供的3d人体姿态估计模型的构建方法的流程框图;图2为本发明实施例1提供的3d人体姿态估计模型的结构示意图;图3为本发明实施例1提供的将人体形状表示成17个关节点后所构成的骨架示意图;图4为本发明实施例1提供的将人体关节进行分组top1池化的示意图;图5为本发明实施例1提供的对图4中所得的示意图进行top1池化的示意图;图6为本发明实施例1提供的topk池化方法的流程图;图7为本发明实施例1提供的采用3d姿态估计模型所得的3d人体姿态估计结果示意图;其中,(a)、(b)、(c)、(d)分别为不同人体姿态图像及其对应的3d人体姿态估计结果;图8为本发明实施例2提供的3d人体姿态估计方法应用于普通单目rgb摄像机的实施流程图;图9为本发明实施例2提供的hr-net网络结构示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。实施例1、一种3d人体姿态估计模型的构建方法,适用于单目视频应用场景,如图1所示,包括以下步骤:s1、搭建3d人体姿态估计模型;3d人体姿态估计模型包括m个特征提取模块和与各特征提取模块相连的特征融合模块;m大于或等于2;m个特征提取模块用于对输入的人体2d骨架时序数据在m个不同感受野大小上进行时域卷积和图卷积,以提取其在时间维度上的运动特征和在空间维度上的空间结构特征,从而得到m个不同尺度的时空特征;人体2d骨架时序数据为q帧人体各关节点的2d位置数据;q大于或等于2;优选地,为了在执行时域卷积过程中使得每个子卷积层更好的学习前后帧信息,q取值为3的倍数最佳,本实施例中q取值为27。本实施例中,第一个特征提取模块包括级联的第一时域卷积单元、图卷积单元和第二时域卷积单元;第m个特征提取模块的输入端与第m-1个特征提取模块中的图卷积单元的输出端相连;第m个特征提取模块包括级联的第一时域卷积单元、图池化单元和图卷积单元;且当m大于或等于3时,第i个特征提取模块的输入端与第i-1个特征提取模块中的图卷积单元的输出端相连;第i个特征提取模块包括级联的第一时域卷积单元、图池化单元、图卷积单元和第二时域卷积单元;i=2,3,…,m-1。其中,第一个特征提取模块用于对输入的人体2d骨架时序数据依次进行时域卷积、图卷积和时域卷积操作,得到第一个尺度的时空特征,输出至特征融合模块;并将其中进行图卷积操作后的中间时空特征输出至下一个特征提取模块;第m个特征提取模块用于对输入的中间时空特征依次执行时域卷积、图池化和图卷积操作,得到第m个尺度的时空特征,并输出至特征融合模块;且当m大于或等于3时,第i个特征提取模块用于对输入的中间时空特征依次执行时域卷积、图池化、图卷积和时域卷积操作,得到第i个尺度的时空特征,输出至特征融合模块;并将其中进行图卷积后的中间时空特征发送至第i 1个特征提取模块。优选地,本实施例中,第m个特征提取模块中的图池化方法包括:直接对中间时空特征进行时域卷积后的结果进行topk池化操作;当m大于或等于3时,第i个特征提取模块中的图池化方法包括:将人体关节按照四肢、头部和躯干进行分组,对每组关节所对应的中间时空特征进行时域卷积后的结果分别进行topk池化操作;其中,k取值为1。进一步地,特征融合模块用于从j=m开始进行时空特征融合操作;具体为:对第j个尺度的时空特征与第j-1个尺度的时空特征进行融合,并将第j-1个尺度的时空特征更新为融合后的结果;令j=j-1,重复上述时空特征融合操作,直至j=1,得到更新后的第一个尺度的时空特征后对其进行图卷积操作,得到人体各关节点的3d位置的预测值。优选地,对第j个尺度的时空特征与第j-1个尺度的时空特征进行融合的方法包括:对第j个尺度的时空特征进行上采样后执行图卷积操作,使得其大小与第j-1个尺度的时空特征的大小相同后,将二者进行加和。s2、以最小化人体各关节点3d位置的预测值与真实值之间的差异以及最小化估计到的左右对称的关节长度的差异为目标,采用预采集好的训练集训练3d人体姿态估计模型;其中,训练集中的训练样本包括2d骨架时序数据及其对应的各关节点的3d位置数据。具体地,上述训练集的采集方法包括:采集人体姿态视频;其中,人体姿态视频为在同一视角下对同一个人体拍摄的多种姿态视频;从人体姿态视频中抽取q帧人体姿态图像,并按照时间先后顺序进行排列;抽取多次后,得到多组包含q帧人体姿态图像的图像数据;对各组图像数据,分别按帧进行2d姿态估计,得到多组人体2d骨架时序数据;对各组人体2d骨架时序数据,分别标注其所对应的人体各关节点的3d位置,构成训练集。优选地,为了在实验时方便与前人数据进行比较,在对3d人体姿态估计模型进行训练之前,对3d人体姿态估计模型中的训练集中的训练样本进行归一化处理,即2d骨架时序数据及其对应的各关节点的3d位置数据均进行了归一化处理。除此之外,为了便于进行姿态表示,可以将髋关节定义为中心关节点标定为零点,同时将其它关节点坐标表示为与零点的相对位置坐标。具体地,3d人体姿态估计模型的损失函数由以下两项组成:第一项为三维姿态损失,表示人体各关节点的3d位置的预测值与真实值之间的差异;本实施例中,通过计算人体各关节点的3d位置的预测值与真实值之间的均值平方差得到二者之间的差异,具体表示为:其中,n为人体关节点个数;为人体第i个关节点的3d位置的预测值;为人体第i个关节点的3d位置的真实值。第二项为对称性损失,表示估计到的左右对称的关节长度的差异,是指利用人体结构的对称性,惩罚姿态估计结果中左右对称的关节长度不一致的情况;具体表示为:其中,m为人体姿态中有对称关系的关节数量;为第j对关节中左边关节的骨长,为第j对关节中右边关节的骨长,基于人体关节点的3d位置的预测值计算得到。需要说明的是,基于人体的对称骨骼关系,m取值为6。综上,3d人体姿态估计模型的损失函数为:l=αlp βls其中,α、β为标准化因子;lp为三维姿态损失;ls表示对称性损失。优选地,采用预训练好的hr-net网络进行2d姿态估计;其中,hr-net网络采用人体不同姿势下的图像及其对应的人体各关节点的2d位置构成的2d姿态估计训练集进行训练。为了进一步说明本发明所提供的3d人体姿态估计模型的构建方法,下面以m=3为例进行说明;具体地,3d人体姿态估计模型的结构示意图如图2所示;本实施例中,模型整体分为三层,共包含五种子网络层,分别为图卷积网络层、时域卷积网络层、图池化层和上采样层;其中每一层中均包括一个特征融合模块,共有3个特征融合模块。3d人体姿态估计模型的输入为人体2d骨架时序数据所构成的三维数组(q,n,c),即多帧二维姿态特征;其中,q为人体2d骨架时序数据的帧数,n为人体关节点的个数,c为每个关节点的坐标维度。在时间维度上,每一个特征融合模块都对输入的三维数组执行了多次时域卷积操作,将多帧二维姿态特征进行聚合,用于捕获骨架关节点在时间维度上的运动趋势,即运动特征。另外,第二个特征融合模块和第三个特征融合模块中均包括图池化层,通过图池化操作可以得到不同的感受野;故在空间维度上,3d人体姿态估计模型可以在3个不同感受野大小上进行图卷积,获得三种不同尺度的空间结构特征;进而包含运动特征和不同尺度的空间特征的高维向量,即得到3个不同尺度的时空特征。在特征融合模块通过上采样操作对包含了运动特征和不同尺度的空间特征的高维向量进行聚合,然后将其映射回三维空间生成人体的三维骨架结构,即人体各关节点的3d位置。其中,图卷积单元中的图卷积网络层的个数以及时域卷积单元中的时域卷积网络层的个数可以根据具体需求进行调整。其中,图卷积单元中的图卷积网络层有多个时,输入到下一个特征提取模块中的中间时空特征可以为其中某一个图卷积网络层的输出结果。进一步地,本发明中的图卷积方式优选为语义图卷积,通过在传统的图卷积公式中引入可学习的权重参数矩阵,网络可以学习到不同关节点对于其它身体部件的影响程度,从而获得更加深层次的结构语义特性,其数学表达形式为:其中表示的就是可学习的权重矩阵。本发明中的时域卷积方式优选为空洞卷积方式,此时,时域卷积网络为时域空洞卷积网络;它的优点在于可以通过调整3d人体姿态估计模型的时域卷积网络层和膨胀因子灵活的改变3d人体姿态估计模型在时间维度上的感受野,捕获不同尺度的关节点运动特性,其数学表达形式为:并且与传统的基于rnn的特性提取方式不同,时域空洞卷积网络可以通过卷积核跨层共享减少网络的内存消耗,在性能上也更加优秀。需要说明的是,在进行图池化操作时,为了在图池化过程中尽量不损失关节点的信息,同时保留人体的空间拓扑结构,本发明采用一种分组topk图池化方法,使得在图池化过程尽可能保留原始图结构的信息。具体地,如图3所示,本实施例中,将人体形状表示成17个关节点构成的骨架,分别为髋、右髋、右膝、右脚、左髋、左膝、左脚、躯干中部、胸部、颈部、头、左肩、左手肘、左手、右肩、右手肘、右手。此时,人体关节点的个数n为17;人体2d骨架时序数据中的每个关节点的坐标维度c为2,对应为xl,yl,表示第l个关节点的x,y轴坐标。此时,第2个特征提取模块中的图池化方法包括:将人体关节按照四肢、头部和躯干进行分组,对每组关节所对应的中间时空特征进行时域卷积后的结果分别进行topk池化操作;其中,k取值为1。如图4所示,此时人体关节被分为6组;头和颈部为第一组,左肩、左手肘和左手为第二组,右肩、右手肘和右手为第三组,右髋、右膝和右脚为第四组,左髋、左膝和左脚为第五组,髋、躯干中部、胸部为第六组。第3个特征提取模块中的图池化方法包括:直接对中间时空特征进行时域卷积后的结果进行topk池化操作,其中,k同样取值为1;此时,如图5所示,上述第一组、第二组、第三组、第四组、第五组和第六组为一组,进行top1池化操作。topk池化方法的目标是在特征损失最小的情况下将图中的节点数降为k个。具体地,如图6所示,整个过程分为五个阶段,在输入阶段,对于每组关节所对应的中间时空特征g,xl和al分别表示g的特征矩阵和邻接矩阵,其中,表示g中包含有n个关节点,每个关节点包含坐标维度为c。在投影阶段,是一个可训练的投影向量,将其与特征矩阵x做矩阵乘法得到矩阵y的每个元素都表示一个标量值得分,用于记录对应的节点经过向量p投影可以保留的信息量,得分越高表明该节点保留的信息越多。topk节点选择阶段,网络对y中的元素按数值大小进行排序,选择最大的k个元素并记录它们的索引,根据索引对xl和al进行下采样生成新的特征矩阵和邻接矩阵al 1。此外,为了使得投影向量p可以通过反向传播进行训练,网络通过门控将特征矩阵与进行元素乘积操作,避免p产生离散输出,同时获得最终的特征矩阵xl 1。整个图池化过程的数学表达形式为:y=xlpl/||pl||,idx=rank(y,k),al 1=al(idx,idx),topk池化可以使得模型在对关节点进行下采样的过程中尽量减少关节点的信息丢失,分组方式则很好的维持了人体的结构特性,两者融合使得模型在获得不同尺度特征的同时减少了姿态语义信息丢失。上采样层则采用了图池化的逆过程,将聚合了多个低维节点特征的高维节点按照分组重新恢复成多个,其数学表达形式为:xl 1=distribute(0n×c,xl,idx),其中表示当前图的特征矩阵,idx表示池化过程中留存下来的节点索引值,0n×c是一个全为0的特征矩阵。通过distribute操作,xl将它的k行特征向量按照idx索引值取代特征矩阵0n×c中的对应行,生成新的特征矩阵通过以上五种子网络层构建的从局部到全局的三层网络结构,模型能够很好的融合不同尺度的时空特性并有效提升3d姿态估计的精度。进一步地,为了更好的说明本发明提出的3d姿态估计模型进行3d姿态估计时的性能,本发明在现实场景视频以及human3.6m数据集上对模型分别进行如下定性和定量的分析:a、定性分析:如图7所示为采用3d姿态估计模型所得的3d人体姿态估计结果示意图;其中,(a)、(b)、(c)、(d)分别为不同人体姿态图像及其对应的3d人体姿态估计结果;四组图像都来源于同一段网络视频,左边表示输入的rgb图像帧,右边表示3d人体姿态估计结果。从视觉效果上看,无论人体正面面对摄像机还是侧身面对摄像机,模型都能较为精确的提取出3d骨架,并且即使图像中出现强光干扰,模型也能具备较强的3d姿态估计能力。b、定量分析:如表1所示为分别采用本发明所提供的3d姿态估计模型以及现有的cai、pavllo、liu、lin提出的网络在不同人体姿态下进行3d人体姿态估计所得的精确度结果。且为了最小化2d姿态检测器的影响,本次测试使用2d骨架真实坐标作为输入,评估标准选用mpjep中的协议1,将预测出的人体姿态与真实人体姿态在髋关节点处对齐后,直接计算预测关节点位置与真实关节点位置之间的平均欧氏距离;其中,f表示输入的2d估计帧数量,direct、discuss、eating、greet、phone、photo、pose、purch、sitting、sitingd、smoke、wait、walkd、walk、walkt分别表示不同人体行为,avg(mm)表示的是对以上所有的这些人体行为的估计误差求误差均值的结果。从表1可以看出,与现有网络相比,本发明所提供的3d姿态估计模型实现了较高的姿态估计精度。相对于cai和pavllo等提出的单一依赖空间特性或时间特性的网络,本网络在姿态估计精度上提升了3.2mm,证明了同时提取时空特性能够有效的提升姿态估计精度。而相比于liu和lin提出的方法,本发明所提供的3d姿态估计模型在输入帧的数量上更具优势,由于同时引入了时间和空间特征,最大程度的挖掘了2d骨架序列的时空信息,所以只需在输入少量2d估计帧便可得到与其相近的估计结果,姿态估计速度较快。表1人体行为caietal(f=3)pavlloetal(f=243)liuetal(f=243)linetal(f=50)本发明(f=27)direct.32.9-30.530.132.7discuss.38.7-33.133.735.2eating32.9-27.628.731.3greet37-313133.7phone37.3-31.833.735.3photo44.8-3740.139.5pose38.7-33.233.835.9purch.36.1-3028.532.1sitting41-35.738.639.4sitingd.45.6-37.740.840.8smoke36.8-31.432.434.8wait37.7-29.831.731.5walkd37.7-31.733.834.1walk29.5-2425.326.2walkt31.6-25.724.326.9avg(mm).37.237.231.432.834本发明充分利用人体2d骨架序列的时间和空间特性,建立了更为准确的2d姿态到3d姿态之间的预测模型,提升了3d姿态估计的精度。实施例2、一种3d人体姿态估计方法,包括:对输入的q帧人体姿态图像分别进行2d姿态估计,得到人体2d骨架时序数据;将人体2d骨架时序数据输入到采用上述3d人体姿态估计模型的构建方法所构建的3d人体姿态估计模型中,得到人体各关节点3d位置的预测值。本实施例中,进行2d姿态估计的方法与实施例1的训练集中获取人体各节点的2d位置的方法相同。进一步地,为了进一步说明书上述3d人体姿态估计方法,下面结合一个具体场景进行详述:本实施例中的3d人体姿态估计方法应用于普通单目rgb摄像机,如图8所示为本发明提供的3d人体姿态估计方法应用于普通单目rgb摄像机的实施流程图,其实现目标是使单目视频,在不借助相机内部参数和任何其他辅助设备的情况下,对人体的3维姿态进行实时预测。具体包括如下步骤:1)、图像读取:通过单目摄像机读取一帧rgb格式的图像;2)、图像判定:判断读取到的图像是否为空,若为空则说明视频已经读取完毕,相应的可以结束流程,若不为空则表明依然有图像帧需要处理,则继续执行步骤3);3)、2d人体姿态估计:将人体形状表示成如图3所示的17个关节点构成的骨架,对于给定的2d人体姿态定义为:p2d=[x0,y0,x1,y1,…,x16,y16],p2d∈r1×34表示p2d是一个1行34列的矩阵,其中xi,yi表示第i个关节点的x,y轴坐标。将2d姿态估计模型hr-net在human3.6m数据集上进行预训练,然后以rgb图像作为输入,使用hr-net预测出图像中人体的2d骨架p2d;具体地,hr-net(highresolutionnetwork)网络结构如图9所示。使用human3.6m数据集中的s1,s5,s6,s7,s8五个训练集对hr-net网络进行预训练。首先使用human3.6m数据集提供的检测器估计出人的中心位置,然后在中心周围裁剪出一个440x440像素的正方形,并将其调整为256x256像素大小。为了优化整个3d姿态估计过程的速度,这里选则使用hrnet-w32,相比于hrnet-w48,它的子网宽度更小,参数更少,模型更为轻量级。在训练时,全部使用hr-net网络的默认参数,batchsize大小为3,学习率为2.5×10-4,模型在训练数据集上进行15000次迭代。将从步骤2)中读取的rgb图像送入按上述方式预训练过的hr-net网络中,提取出人体的2d姿态p2d,p2d∈r1×34是一个1行34列的矩阵,相邻的每两列表示一个关节点的x,y轴坐标;4)、归一化处理:为了在实验时方便与前人数据进行比较,在对3d人体姿态估计模型进行训练之前,对3d人体姿态估计模型中的训练集中的训练样本进行归一化处理,即2d骨架时序数据及其对应的各关节点的3d位置数据均进行了归一化处理。具体归一化方式为:为了与human3.6m标准协议一致,需要对2d输入坐标和3d输出坐标都减去平均值并除以标准差;除此之外,为了便于进行姿态表示,将髋关节定义为中心关节点标定为零点,同时将其它关节点坐标表示为与零点的相对位置坐标:i∈[0,16],i≠0;故在进行3d人体姿态估计时,同样需要采用相同的方法对所得的2d姿态p2d进行归一化处理;5)、2d骨架存储:将进行过归一化处理的一帧2d骨架坐标存入一个有限大小的数组p中,数组p的每一个元素表示一帧2d骨架,是一个包含了17个关节点2d坐标的向量。6)、数组阈值判断:判断数组中存储的2d骨架帧数量是否达到阈值数量q,若未达到阈值数量q说明不满足3d姿态估计模型的输入条件,则回到步骤1)继续读取下一帧图像进行2d姿态估计并存入数组中,若达到阈值数量q则表明满足了3d姿态估计网络的输入条件,转至步骤7);7)、3d人体姿态估计:将数组中的连续多帧2d骨架表示第i帧2d骨架,输入到上述预训练好的3d姿态估计模型中,生成第k-1帧2d骨架对应的3d骨架表示一个1行51列的矩阵,其中,xi,yi,zi表示第i个关节点的x,y,z轴坐标。相关技术手段同实施例1,这里不做赘述。实施例3、一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现实施例1中所述的3d人体姿态估计模型的构建方法和/或如实施例2中所述的3d人体姿态估计方法。相关技术手段同实施例1和实施例2,这里不做赘述。本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
技术特征:1.一种3d人体姿态估计模型的构建方法,其特征在于,包括以下步骤:
s1、搭建3d人体姿态估计模型;所述3d人体姿态估计模型包括m个特征提取模块和与各所述特征提取模块相连的特征融合模块;m大于或等于2;
m个所述特征提取模块用于对输入的人体2d骨架时序数据在m个不同感受野大小上进行时域卷积和图卷积,以提取其在时间维度上的运动特征和在空间维度上的空间结构特征,从而得到m个不同尺度的时空特征;所述人体2d骨架时序数据为q帧人体各关节点的2d位置数据;q大于或等于2;
所述特征融合模块用于将所述m个不同尺度的时空特征进行融合,得到人体各关节点3d位置的预测值;
s2、以最小化人体各关节点3d位置的预测值与真实值之间的差异以及最小化估计到的左右对称的关节长度的差异为目标,采用预采集好的训练集训练所述3d人体姿态估计模型;其中,所述训练集中的训练样本包括2d骨架时序数据及其对应的各关节点的3d位置数据。
2.根据权利要求1所述的3d人体姿态估计模型的构建方法,其特征在于,第一个特征提取模块包括级联的第一时域卷积单元、图卷积单元和第二时域卷积单元;
第m个特征提取模块的输入端与第m-1个特征提取模块中的图卷积单元的输出端相连;所述第m个特征提取模块包括级联的第一时域卷积单元、图池化单元和图卷积单元;
当m大于或等于3时,第i个特征提取模块的输入端与第i-1个特征提取模块中的图卷积单元的输出端相连;所述第i个特征提取模块包括级联的第一时域卷积单元、图池化单元、图卷积单元和第二时域卷积单元;i=2,3,…,m-1。
3.根据权利要求2所述的3d人体姿态估计模型的构建方法,其特征在于,所述第一个特征提取模块用于对输入的人体2d骨架时序数据依次进行时域卷积、图卷积和时域卷积操作,得到第一个尺度的时空特征,输出至所述特征融合模块;并将其中进行图卷积操作后的中间时空特征输出至下一个特征提取模块;
所述第m个特征提取模块用于对输入的中间时空特征依次执行时域卷积、图池化和图卷积操作,得到第m个尺度的时空特征,并输出至所述特征融合模块;
当m大于或等于3时,所述第i个特征提取模块用于对输入的中间时空特征依次执行时域卷积、图池化、图卷积和时域卷积操作,得到第i个尺度的时空特征,输出至所述特征融合模块;并将其中进行图卷积后的中间时空特征发送至第i 1个特征提取模块。
4.根据权利要求3所述的3d人体姿态估计模型的构建方法,其特征在于,所述第m个特征提取模块中的图池化方法包括:直接对中间时空特征进行时域卷积后的结果进行topk池化操作;
当m大于或等于3时,所述第i个特征提取模块中的图池化方法包括:将人体关节按照四肢、头部和躯干进行分组,对每组关节所对应的中间时空特征进行时域卷积后的结果分别进行topk池化操作;
其中,k取值为1。
5.根据权利要求1-4任意一项所述的3d人体姿态估计模型的构建方法,其特征在于,所述特征融合模块用于从j=m开始进行时空特征融合操作;具体为:对第j个尺度的时空特征与第j-1个尺度的时空特征进行融合,并将第j-1个尺度的时空特征更新为融合后的结果;令j=j-1,重复上述时空特征融合操作,直至j=1,得到更新后的第一个尺度的时空特征后对其进行图卷积操作,得到人体各关节点3d位置的预测值。
6.根据权利要求5所述的3d人体姿态估计模型的构建方法,其特征在于,所述对第j个尺度的时空特征与第j-1个尺度的时空特征进行融合的方法包括:对所述第j个尺度的时空特征进行上采样后执行图卷积操作,使得其大小与所述第j-1个尺度的时空特征的大小相同后,将二者进行加和。
7.根据权利要求1所述的3d人体姿态估计模型的构建方法,其特征在于,所述训练集的采集方法包括:
采集人体姿态视频;其中,所述人体姿态视频为在同一视角下对同一个人体拍摄的多种姿态视频;
从所述人体姿态视频中抽取q帧人体姿态图像,并按照时间先后顺序进行排列;抽取多次后,得到多组包含q帧人体姿态图像的图像数据;
对各组图像数据,分别按帧进行2d姿态估计,得到多组人体2d骨架时序数据;
对各组人体2d骨架时序数据,分别标注其所对应的人体各关节点的3d位置,构成所述训练集。
8.根据权利要求7所述的3d人体姿态估计模型的构建方法,其特征在于,采用预训练好的hr-net网络进行2d姿态估计;
所述hr-net网络采用人体不同姿势下的图像及其对应的人体各关节点的2d位置构成的2d姿态估计训练集进行训练。
9.一种3d人体姿态估计方法,其特征在于,包括:
对输入的q帧人体姿态图像分别进行2d姿态估计,得到人体2d骨架时序数据;
将所述人体2d骨架时序数据输入到采用权利要求1-8任意一项所述的3d人体姿态估计模型的构建方法所构建的3d人体姿态估计模型中,得到人体各关节点3d位置的预测值。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-8任意一项所述的3d人体姿态估计模型的构建方法和/或权利要求9所述的3d人体姿态估计方法。
技术总结本发明公开了一种3D人体姿态估计模型的构建方法及其应用,属于人体姿态估计领域;其中,3D人体姿态估计模型包括M个特征提取模块和与各特征提取模块相连的特征融合模块;本发明充分利用了人体在空间结构上的多尺度特征以及时间维度上关节点的长期运动特征,通过M个特征提取模块分别在多个不同感受野大小上提取输入的人体2D骨架时序数据在时间维度上的运动特征和在空间维度上的空间结构特征,得到多个不同尺度的融合时空特征,并通过特征融合模块对不同尺度的融合时空特征进行融合,有效的提升了模型对于人体2D骨架序列的特征提取能力,提高了3D姿态估计网络的预测精度。
技术研发人员:许毅平;田岩;许学杰
受保护的技术使用者:华中科技大学
技术研发日:2021.05.21
技术公布日:2021.08.03