本发明属于3d人体姿态估计领域,更具体地,涉及一种基于单帧图像的3d人体姿态估计模型建立方法及其应用。
背景技术:
3d人体姿态估计任务是指通过rgb图像或视频,对于人体关节点的三维坐标进行预测,在行为识别、人机交互、智能监控等场景下,该任务都有重要应用价值。
当前3d人体姿态估计方法,从输入形式进行分类,可以分为基于多视角图像的3d人体姿态估计,基于视频的3d人体姿态估计和基于单帧图像的3d人体姿态估计。基于多视角图像或视频的方法在模型精度和泛化能力上相较以单帧图像作为输入的模型更具优势,但是在实际应用场景下,基于多视角图像的方法存在部署困难,成本较高等问题,而基于视频的方法由于需要结合多帧图像信息导致网络参数量是基于单帧图像网络的数倍,难以满足实时性的要求。相较于基于视频的3d人体姿态估计和基于单帧图像的3d人体姿态估计,基于单帧图像的3d人体姿态估计则具备部署简单,成本低,实时性较好等优势。
早期的基于单帧图像的3d人体姿态估计方法主要为单阶段模式,这类方法直接以rgb图像为输入,从图像中提取人物的纹理、肤色、轮廓等这些不变性特征,回归出人体的三维姿态。这类方法由于容易受到背景、光照等因素的影响,往往精度和泛化能力较差。
为了改善精度和泛化能力,当前基于单帧图像的3d人体姿态估计主要采用两阶段模式,将三维姿态估计问题分解为两步进行:(1)首先利用2d人体姿态估计网络对输入的rgb图像进行2d姿态估计,即根据输入的rgb图像,估计得到人体各关节点的2d坐标;(2)然后以人体2d骨架作为输入通过神经网络预测人体的3d姿态,即根据人体各关节点的2d坐标估计人体各关节点的3d坐标。在第一阶段中,首先采用卷积神经网络(cnn)利用图像信息回归获得人体关节点的热图,即网络回归出的关节点属于某一像素位置的概率值,然后将热图作为输入使用softmax生成二维关节点像素平面坐标,提取人体二维姿态。由于现有的2d姿态估计方法已经非常成熟,具有大量可供训练的数据集,训练出的网络精度极高,利用现有的2d姿态检测器先获得人体2d关节点位置可以有效消除背景、光照等因素对三维姿态估计的影响,提升三维姿态估计的性能。但是由于2d姿态到3d姿态本身是一个求解反投影的病态过程,同一2d姿态反投影回三维空间可能对应着多种3d姿态,因此使用单帧图像的2d姿态预测3d姿态仍然是很具挑战的。当前大多方法在3d姿态估计模型的训练过程中,通常将人体所有关节点视为一个整体学习统一的2d坐标到3d坐标的映射,没有充分考虑人体运动时关节点自由度的差异性,影响了2d姿态重构3d姿态的精度。
总体而言,现有的两阶段模式的3d人体姿态估计方法的估计精度有待进一步提高。
技术实现要素:
针对现有技术的缺陷和改进需求,本发明提供了一种基于单帧图像的3d人体姿态估计模型建立方法及其应用,其目的在于,充分考虑人体关节点之间运动约束的差异性,对关节点进行分组,对于每个分组,分别完成从2d姿态到3d姿态的估计,从而提高3d人体姿态的估计精度。
为实现上述目的,按照本发明的一个方面,提供了一种基于单帧图像的3d人体姿态估计模型建立方法,包括:
获得已训练好的2d人体姿态估计网络,用于根据rgb图像预测2d人体姿态;2d人体姿态包括构成人体骨架的n个关节点的2d坐标;
建立反投影网络,包括关节点分组模块、m个估计分支以及一个关节点拼接模块;关节点分组模块用于将2d人体姿态中的n个关节点划分为m个关节点组,每个关节点组中的关节点具有相同的运动约束;m个估计分支分别以m个关节点组为输入,用于估计对应关节点组中各关节点的3d坐标;关节点拼接模块用于拼接m个关节点组对应的关节点3d坐标,得到3d人体姿态的估计结果;
利用2d人体姿态估计网络估计训练数据集中各rgb图像对应的2d人体姿态,以各rgb图像对应的2d人体姿态估计结果为输入,以各rgb图像对应的实际的3d人体姿态为标签,对反投影网络进行训练;训练数据集包括多张已标注3d人体姿态的rgb图像;
串联已训练好的2d人体姿态估计网络和已训练好的反投影网络,得到基于单帧图像的3d人体姿态估计模型;
其中,m和n均为大于1的正整数。
本发明所建立的基于单帧图像的3d人体姿态估计模型,其中用于根据2d姿态估计3d姿态的反投影网络,会根据人体关节点的运动差异,结合人体结构和人体关节点运动自由度,将具备不同运动约束的关节点划分至不同的关节点组,由不同的估计分支对不同的关节点组学习2d姿态到3d姿态的映射关系,由此能够有效提高每个关节点的深度估计效果,从而提高3d人体姿态的估计精度。
进一步地,运动约束包括运动自由度和估计误差分布。
本发明以运动自由度和估计误差分布作为衡量运动约束是否相同的指标,能够准确、快速地识别出具有相同运动约束的关节点。
进一步地,n=17,且构成人体骨架的17个关节点分别为:髋关节点p0、右髋关节点p1、右膝关节点p2、右脚关节点p3、左髋关节点p4、左膝关节点p5、左脚关节点p6、躯干中部关节点p7、胸部关节点p8、颈部关节点p9、头部关节点p10、左肩关节点p11、左手肘关节点p12、左手关节点p13、右肩关节点p14、右手肘关节点p15和右手关节点p16;
m=4,划分得到的4个关节点组依次记为g0、g1、g2和g3,则各关节点组所包含的关节点具体为:g0=[p0,p7,p8]、g1=[p1,p4,p9,p10,p11,p14]、g2=[p2,p5,p12,p15]、g3=[p3,p6,p13,p16]。
本发明以上述17个关节点表示人体骨架,符合human3.6m标准骨架模型,具体所划分的四个关节点组中,各关节点的运动约束相同,且不同的关节点组中的关节点运动约束不同。
进一步地,对反投影网络进行训练时,损失函数为:
l=αl1 βl2;
其中,l1表示各关节点3d坐标的估计值与真实值之间的误差均值,l2表示预设的k对关节点间距离的估计值与实际值之间的误差均值;α和β为超参数,用于在计算损失函数时将两类误差在数量级上进行统一。
本发明在对关节点进行分组时,会丢失一些整体姿态信息,本发明预设k对关节点,在损失函数中引入这些关节点对间的估计距离与实际距离之间的误差均值作为约束项,能够弥补所丢失的整体姿态信息,使反投影网络在学习2d姿态到3d姿态反投影映射时能更好地考虑姿态间的整体性,进一步提高3d人体姿态的估计精度。
进一步地,k=4,且预设的4对关节点分别是:(左肩关节点,左手关节点),(右肩关节点,右手关节点),(左髋关节点,左脚关节点),(右髋关节点,右脚关节点)。
由于人体四肢的活动自由度较大,相关关节点的估计误差往往较大,本发明在对关节点进行分组的基础上,以上述四对关节点间的距离误差作为损失函数约束项,额外构建了四肢关节点间的连接关系,能够有效地弥补分组所丢失的姿态整体信息。
进一步地,反投影网络中的估计分支为基线网络。
本发明以基线网络作为反投影网络中的估计分支,能够准确学习各关节点组的2d姿态到3d姿态的反投影映射关系。
进一步地,2d人体姿态估计网络为hrnet-w32。
hrnet-w32的子网宽度更小,参数更少,模型更为轻量级,本发明以hrnet-w32作为2d人体姿态估计网络,能够优化整个3d人体姿态估计过程的速度。
进一步地,2d人体姿态估计网络通过如下方式训练得到:
对于mpii数据集中的各rgb图像,检测其中的人体中心位置,并在人体中心位置裁剪出包含单个完整人体的图像块,裁剪得到的各图像块大小相同;
将裁剪得到的各图像块调整为256x256像素大小后,以调整大小后的图像块为输入,以标注的2d人体姿态为标签,对2d人体姿态估计网络进行训练;
利用human3.6m数据集对训练后的2d人体姿态估计网络进行微调,得到已训练好的2d人体姿态估计网络。
本发明在训练2d人体姿态估计网络时,先将hr-net网络在2d人体姿态估计数据集mpii上进行预训练,然后利用human3.6m数据集进行微调,能够增强2d人体姿态估计网络的泛华能力,间接提升反投影网络对不同动作的关节点的检测效果。
按照本发明的另一个方面,提供了一种基于单帧图像的3d人体姿态估计方法,包括:
将待估计的单帧图像输入至由本发明提供的基于单帧图像的3d人体姿态估计模型建立方法得到的基于单帧图像的3d人体姿态估计模型,以由该模型估计得到对应的3d人体姿态。
由于本发明所建立的基于单帧图像的3d人体姿态估计模型具有较高的3d人体姿态估计精度,基于该模型,本发明提供的基于单帧图像的3d人体姿态估计方法具有较高的估计精度。
按照本发明的又一个方面,提供了一种计算机可读存储介质,包括存储的计算机程序;计算机程序被处理器执行时,控制计算机可读存储介质所在设备执行本发明提供的基于单帧图像的3d人体姿态估计模型建立方法,和/或本发明提供的基于单帧图像的3d人体姿态估计方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所建立的基于单帧图像的3d人体姿态估计模型,其中用于根据2d姿态估计3d姿态的反投影网络,会根据人体关节点的运动差异,结合人体结构和人体关节点运动自由度,将具备不同运动约束的关节点划分至不同的关节点组,由不同的估计分支对不同的关节点组学习2d姿态到3d姿态的映射关系,由此能够有效提高每个关节点的深度估计效果,从而提高3d人体姿态的估计精度。
(2)本发明在损失函数中引入一些关节点对间的估计距离与实际距离之间的误差均值作为约束项,能够额外构建人体关节点间的连接关系,弥补所丢失的整体姿态信息,使反投影网络在学习2d姿态到3d姿态反投影映射时能更好地考虑姿态间的整体性,进一步提高3d人体姿态的估计精度。
附图说明
图1为本发明实施例提供的基于单帧图像的3d人体姿态估计模型建立方法流程图;
图2为本发明实施例提供的人体关节点分布示意图;
图3为本发明实施例提供的人体关节点分组示意图;
图4为本发明实施例提供的反投影网络示意图;其中,(a)为反投影网络示意图,(b)为估计分支示意图;
图5为本发明实施例额外构建的关节点间的连接关系示意图;
图6为本发明实施例提供的2d人体姿态估计网络结构示意图;
图7为本发明实施例提供的3d人体姿态估计网络与极限网络的3d人体姿态估计效果对比图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为了解决现有的两阶段模式下的3d人体姿态估计方法因未充分考虑人体运动时关节点自由度的差异性,而影响了2d姿态重构3d姿态的精度的技术问题,本发明提供了一种基于单帧图像的3d人体姿态估计模型建立方法及其应用,其整体思路在于:充分考虑人体关节点之间运动约束的差异性,对关节点进行分组,对于每个分组,分别完成从2d姿态到3d姿态的估计,从而提高3d人体姿态的估计精度;在此基础上,额外构建人体关节点间的连接关系,并在损失函数中引入这些相连的关节点对间的距离误差作为损失向,以因弥补关节点分组而丢失的整体姿态信息,进一步提高3d人体姿态的估计精度。
以下为实施例。
实施例1:
一种基于单帧图像的3d人体姿态估计模型建立方法,如图1所示,包括:
获得已训练好的2d人体姿态估计网络,用于根据rgb图像预测2d人体姿态;2d人体姿态包括构成人体骨架的n个关节点的2d坐标;
建立反投影网络,包括关节点分组模块、m个估计分支以及一个关节点拼接模块;关节点分组模块用于将2d人体姿态中的n个关节点划分为m个关节点组,每个关节点组中的关节点具有相同的运动约束;m个估计分支分别以m个关节点组为输入,用于估计对应关节点组中各关节点的3d坐标;关节点拼接模块用于拼接m个关节点组对应的关节点3d坐标,得到3d人体姿态的估计结果;
利用2d人体姿态估计网络估计训练数据集中各rgb图像对应的2d人体姿态,以各rgb图像对应的2d人体姿态估计结果为输入,以各rgb图像对应的实际的3d人体姿态为标签,对反投影网络进行训练;训练数据集包括多张已标注3d人体姿态的rgb图像;
串联已训练好的2d人体姿态估计网络和已训练好的反投影网络,得到基于单帧图像的3d人体姿态估计模型。
可选地,本实施例中,按照human3.6m标准骨架模型,以图2所示的17个关节点表示人体骨架,各关节点及其在human3.6m标准骨架模型中的编号分别为:0号髋关节点、1号右髋关节点、2号右膝关节点、3号右脚关节点、4号左髋关节点、5号左膝关节点、6号左脚关节点、7号躯干中部关节点、8号胸部关节点、9号颈部关节点、10号头部关节点、11号左肩关节点、12号左手肘关节点、13号左手关节点、14号右肩关节点、15号右手肘关节点、16号右手关节点;为便于描述,在本实施例中,将上述0~16号关节点分别表示为符号p0~p16。利用2d姿态估计网络估计得到的2d姿态估计可记为p2d=[x0,y0,x1,y1,…,x16,y16],其中,xi,yi表示第i(i∈{0,1,2,…17})个关节点的二维坐标。
具有不同运动约束的关节点,在3d人体姿态估计中,其估计误差的分布往往存在一定的差异;在实际应用中,利用现有的任意一种3d人体姿态估计方法,对标注了3d人体姿态的rgb图像数据集进行3d人体姿态估计后,计算各关节点3d坐标的估计结果与标注结果间的差异,即可获得各关节点的估计误差分布;
为了准确识别出人体关节点中具有相同运动约束的关节点,本实施例中,具体将具有相同的运动自由度和相同的估计误差分布的关节点视作具有相同运动约束的关节点,并将这些具有相同运动约束的关节点划分至同一个关节点组中。按照上述划分标准,本实施例中,最终划分得到了4个关节点组,如图3所示,为便于描述,本实施例将划分得到的4个关节点组依次记为g0、g1、g2和g3,则各关节点组所包含的关节点具体为:g0=[p0,p7,p8]、g1=[p1,p4,p9,p10,p11,p14]、g2=[p2,p5,p12,p15]、g3=[p3,p6,p13,p16]。
与上述关节点分组结果相对应地,本实施例中,反投影网络具有4个估计分支,如图4中的(a)所示。可选地,本实施例中,估计分支具体为基线网络,如图4中的(b)所示,每个基线网络包括两个线性层和位于两个线性层中间的两个残差模块,其中的第一个线性层用于对输入的2d关节点p2d进行编码,提取2d关节点中的高维特征;最后一层线性层用于对高维特征进行解码,预测人体的3d关节点坐标p3d;中间的两个残差模块带有batchnormalization和dropout,激活函数采用relu,目的是增加网络的深度,提升网络的表达能力。应当说明的是,在实际应用中,每个估计分支中的残差块数量可根据具体的数据集进行适应性调整,基线网络的具体结构及原理描述,可参考martinezj,hossainr,romeroj,etal.asimpleyeteffectivebaselinefor3dhumanposeestimation[c]//2017ieeeinternationalconferenceoncomputervision(iccv).ieee,2017;在本发明其他的一些实施例中,也可以使用其他可完成关节点2d坐标到关节点3d坐标估计的其他网络模型,在此将不作一一列举。
考虑到在进行人体关节点分组时,会丢失一些整体姿态信息,为了弥补这些丢失的整体姿态信息,本实施例在对反投影网络进行训练时,会额外建立一些关节点间的连接关系,并在损失函数中引入这些相连接的关节点对间的估计距离误差作为约束项;考虑到人体四肢的活动自由度较大,相关关节点的估计误差往往较大,实施例具体是在四肢关节点间建立了额外的连接关系,如图5中的虚线所示,建立了额外的连接关系的4个关节点对分别为:(左肩关节点,左手关节点),(右肩关节点,右手关节点),(左髋关节点,左脚关节点),(右髋关节点,右脚关节点);由此所建立的连接关系,除了考虑关节点的运动自由度,也符合人体运动特性,例如,人体的手关节点在运动时,往往会带动没有与之直接相连的肩关节点运动,又例如,人体的脚关节点在运动时,往往会带动没有与之直接相连的髋关节节点运动。
上述距离约束损失的引入,可以有效地弥补分组过程中所丢失的整体姿态信息,使反投影网络在学习2d姿态到3d姿态反投影映射时能更好地考虑姿态间的整体性,进一步提高3d人体姿态的估计精度。最终,本实施中对反投影网络进行训练时,损失函数具体如下:
l=αl1 βl2;
其中,l1表示各关节点3d坐标的估计值与真实值之间的误差均值,其计算表达式为
可选地,本实施例对图4所示的反投影网络进行训练时,所使用的训练数据集为human3.6m数据集中的s1,s5,s6,s7,s8五个训练集,具体训练参数如下:
迭代次数为200,batchsize大小为64,学习率为0.001,每50次迭代学习率衰减0.1。
作为一种可选的实施方式,本实施例中,2d人体姿态估计网络为hrnet-w32;相比于hrnet-w48,hrnet-w32的子网宽度更小,参数更少,模型更为轻量级,以hrnet-w32作为2d人体姿态估计网络,能够优化整个3d人体姿态估计过程的速度。
为了增强二维姿态估计模型的泛化能力,从而间接提升三维姿态估计模型对于不同动作的关节点检测效果,将hr-net网络在2d人体姿态估计数据集mpii上进行预训练。mpii数据集是二维姿态估计任务的标准数据集,包含了超过4万个采集对象共25000张带关节点标注的图像,共涵盖了410种人体行为,每张图像都带有相应的活动标签并提供了身体遮挡部位等注释。在对2d人体姿态估计网络进行训练时,首先使用human3.6m数据集中提供的人体检测器对mpii数据集中的数据进行检测,估计出人的中心位置。然后在中心周围裁剪出一个440x440像素的正方形,并将其调整为256x256像素大小,之后剔除掉效果不佳、没有正确框选出人体的图像,得到包含单个完整人体的图像块;以这些图像块为输入,以标注的2d人体姿态为标签,对2d人体姿态估计网络进行训练。
按照当前通用的human3.6m数据集使用方法,以human3.6m数据集中的s1,s5,s6,s7,s8五个训练集对利用mpii数据集训练后的hr-net网络进行微调,提升hr-net网络在目标数据集human3.6m上预测2d姿态的精度。在使用human3.6m数据集对hr-net进行微调时,全部使用hr-net网络的默认训练参数,即batchsize大小为3,学习率为2.5×10-4,模型在训练数据集上进行15000次迭代。hr-net(highresolutionnetwork)网络结构如图6所示。
将图6所示已训练好的2d人体姿态估计网络和图4所示已训练好的反投影网络串联到一起,即可得到基于单帧图像的3d人体姿态估计网络。
以下以现有的基线网络为对比例,对本实施例中建立的反投影网络的性能做进一步的对比分析;
为了进行对比,在利用2d人体姿态估计网络估计得到2d人体姿态后,会先对估计得到的2d人体姿态进行归一化处理,再送入反投影网络中,具体的归一化处理方式如下:为了与human3.6m标准协议一致,需要指将预测出的人体姿态先经过平移、旋转和缩放等预处理,与真实姿态对齐后计算关节点的平均欧氏距离。除此之外,为了便于进行姿态表示,将躯干中部关节p7(在human3.6m提供的标准2d和3d姿态定义中,躯干中部关节为7号关节点)定义为中心关节标定为零点,同时将其它关节点坐标表示成为与零点的相对位置坐标:
本实施例中的反投影网络和现有基线网络在human3.6m数据集上的部分预测结果如图7所示,其中的每一行对应同一个人体姿态,四列骨架分别表示输入的2d姿态、3d姿态真值、基线网络生成的3d姿态以及实施例中的反投影网络生成的3d姿态。根据图7所示的结果可知,本实施例通过采用分组回归方式让具备不同运动约束的关节点学习不同的二维姿态到三维姿态之间的反投影映射并引入距离约束损失,能够有效提升关节点的三维估计精度。特别对于具有较大运动自由度的四肢关节点,本实施例所提出的多分支模型在直观效果上相较基线网络有明显提升。
以当前3d姿态估计领域通用的评价指标mpjpe,即预测关节点和真值之间的平均欧式距离,为评价标准,分别使用2d真值坐标(gtdetections)、使用stackhourglass网络作为2d检测器获得的2d坐标(shdetectionsft)以及以hrnet-w32获得的2d坐标(hrnet-w32detectionft)作为输入,评价现有的基线网络与本实施例中的反投影网络的估计精度,具体结果如表1所示。其中,基线网络使用2d真值作为输入,生成的3d姿态与3d姿态真值之间的mpjpe为45.5,本实施例所提出的反投影网络mpjpe值为39.8-;在同样使用stackhourglass网络作为2d检测器时,本发明方法较基线网络误差降低4.6mm;由于基线网络并未在使用hr-net作为2d检测器时进行测试,所以第三行数据为空用*表示,而实施例的mpjpe值为56.2。
表1本实施例与现有3d姿态估计方法的评估结果
根据表1所示结果可知,本发明所提出的多分支3d姿态估计模型,无论以2d姿态真实坐标作为输入,或是配合已有的2d姿态检测器以2d姿态检测器输出的2d坐标作为输入,相较于基线网络,都能更为准确的估计出3d人体姿态。
实施例2:
一种基于单帧图像的3d人体姿态估计方法,包括:
将待估计的单帧图像输入至由上述实施例1提供的基于单帧图像的3d人体姿态估计模型建立方法得到的基于单帧图像的3d人体姿态估计模型,以由该模型估计得到对应的3d人体姿态。
实施例3:
一种计算机可读存储介质,包括存储的计算机程序;计算机程序被处理器执行时,控制计算机可读存储介质所在设备执行上述实施例1提供的基于单帧图像的3d人体姿态估计模型建立方法,和/或上述实施例2提供的基于单帧图像的3d人体姿态估计方法。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
1.一种基于单帧图像的3d人体姿态估计模型建立方法,其特征在于,包括:
获得已训练好的2d人体姿态估计网络,用于根据rgb图像预测2d人体姿态;所述2d人体姿态包括构成人体骨架的n个关节点的2d坐标;
建立反投影网络,包括关节点分组模块、m个估计分支以及一个关节点拼接模块;所述关节点分组模块用于将2d人体姿态中的n个关节点划分为m个关节点组,每个关节点组中的关节点具有相同的运动约束;所述m个估计分支分别以所述m个关节点组为输入,用于估计对应关节点组中各关节点的3d坐标;所述关节点拼接模块用于拼接m个关节点组对应的关节点3d坐标,得到3d人体姿态的估计结果;
利用所述2d人体姿态估计网络估计训练数据集中各rgb图像对应的2d人体姿态,以各rgb图像对应的2d人体姿态估计结果为输入,以各rgb图像对应的实际的3d人体姿态为标签,对所述反投影网络进行训练;所述训练数据集包括多张已标注3d人体姿态的rgb图像;
串联已训练好的2d人体姿态估计网络和已训练好的反投影网络,得到基于单帧图像的3d人体姿态估计模型。
2.如权利要求1所述的基于单帧图像的3d人体姿态估计模型建立方法,其特征在于,所述运动约束包括运动自由度和估计误差分布。
3.如权利要求2所述的基于单帧图像的3d人体姿态估计模型建立方法,其特征在于,n=17,且构成人体骨架的17个关节点分别为:髋关节点p0、右髋关节点p1、右膝关节点p2、右脚关节点p3、左髋关节点p4、左膝关节点p5、左脚关节点p6、躯干中部关节点p7、胸部关节点p8、颈部关节点p9、头部关节点p10、左肩关节点p11、左手肘关节点p12、左手关节点p13、右肩关节点p14、右手肘关节点p15和右手关节点p16;
m=4,划分得到的4个关节点组依次记为g0、g1、g2和g3,则各关节点组所包含的关节点具体为:g0=[p0,p7,p8]、g1=[p1,p4,p9,p10,p11,p14]、g2=[p2,p5,p12,p15]、g3=[p3,p6,p13,p16]。
4.如权利要求3所述的基于单帧图像的3d人体姿态估计模型建立方法,其特征在于,对所述反投影网络进行训练时,损失函数为:
l=αl1 βl2;
其中,l1表示各关节点3d坐标的估计值与真实值之间的误差均值,l2表示预设的k对关节点间距离的估计值与实际值之间的误差均值;α和β为超参数,用于在计算损失函数时将两类误差在数量级上进行统一。
5.如权利要求4所述的基于单帧图像的3d人体姿态估计模型建立方法,其特征在于,k=4,且预设的4对关节点分别是:(左肩关节点,左手关节点),(右肩关节点,右手关节点),(左髋关节点,左脚关节点),(右髋关节点,右脚关节点)。
6.如权利要求1-5任一项所述的基于单帧图像的3d人体姿态估计模型建立方法,其特征在于,所述反投影网络中的估计分支为基线网络。
7.如权利要求1-5任一项所述的基于单帧图像的3d人体姿态估计模型建立方法,其特征在于,所述2d人体姿态估计网络为hrnet-w32。
8.如权利要求7所述的基于单帧图像的3d人体姿态估计模型建立方法,其特征在于,所述2d人体姿态估计网络通过如下方式训练得到:
对于mpii数据集中的各rgb图像,检测其中的人体中心位置,并在所述人体中心位置裁剪出包含单个完整人体的图像块,裁剪得到的各图像块大小相同;
将裁剪得到的各图像块调整为256x256像素大小后,以调整大小后的图像块为输入,以标注的2d人体姿态为标签,对所述2d人体姿态估计网络进行训练;
利用human3.6m数据集对训练后的所述2d人体姿态估计网络进行微调,得到已训练好的2d人体姿态估计网络。
9.一种基于单帧图像的3d人体姿态估计方法,其特征在于,包括:
将待估计的单帧图像输入至由权利要求1-8任一项所述的基于单帧图像的3d人体姿态估计模型建立方法得到的基于单帧图像的3d人体姿态估计模型,以由该模型估计得到对应的3d人体姿态。
10.一种计算机可读存储介质,其特征在于,包括存储的计算机程序;所述计算机程序被处理器执行时,控制所述计算机可读存储介质所在设备执行权利要求1-8任一项所述的基于单帧图像的3d人体姿态估计模型建立方法,和/或权利要求9所述的基于单帧图像的3d人体姿态估计方法。
技术总结