CN114093020A - 动作捕捉方法、装置、电子设备及存储介质 - Google Patents
动作捕捉方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114093020A CN114093020A CN202010743940.5A CN202010743940A CN114093020A CN 114093020 A CN114093020 A CN 114093020A CN 202010743940 A CN202010743940 A CN 202010743940A CN 114093020 A CN114093020 A CN 114093020A
- Authority
- CN
- China
- Prior art keywords
- joint
- fusion
- human body
- image frame
- thermodynamic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
Abstract
本公开提供了一种动作捕捉方法、装置、电子设备及存储介质,属于动作捕捉技术领域。方法包括:分别获取至少两个视频流中同一时刻的图像帧,得到至少两个图像帧;对至少两个图像帧分别进行关节关键点检测,得到多个关节热力图;对相同的关节对应的关节热力图分别进行融合,得到各图像帧中包括的各关节分别对应的融合热力图,根据各关节对应的融合热力图,确定各关节在对应的图像帧中的第一位置;根据各图像帧中包括的各关节的第一位置,确定各关节在人体三维模型中的第二位置,得到人体三维姿态。上述技术方案,可以根据基于不同视角拍摄的同一场景的同步视频中各图像帧中各关节的位置,较为准确的确定人体的三维姿态。
Description
技术领域
本公开涉及动作捕捉技术领域,特别涉及一种动作捕捉方法、装置、电子设备及存储介质。
背景技术
人体动作捕捉是计算机视觉中的重点以及难点问题。准确鲁棒的运动捕捉方法在医疗康复、体育训练、直播娱乐、人机交互、电影制作、机器人控制等方面有着广泛应用,如通过动作捕捉来生成虚拟角色。
目前,动作捕捉系统可以分为接触式运动捕捉系统和非接触式运动捕捉系统。接触式动作捕捉系统需要在运动目标身上的特定部位安装传感器或贴上特殊的标识点,用以向系统提供该部位在空间中的位置信息。非接触式动作捕捉系统的核心是从单个或多个视频序列中检测、跟踪并获取人体运动数据。
接触式动作捕捉系统的成本较高,而非接触式动作捕捉系统在进行动作捕捉时,受限于噪声干扰、遮挡和自遮挡以及深度方向的模糊性等问题,导致无法准确获取人体的三维姿态,从而动作捕捉的效果不佳,难以满足实际需求。
发明内容
本公开提供一种动作捕捉方法、装置、电子设备及存储介质,通过基于二维关键点检测网络得到的关节热力图进行融合后,得到各关节较为准确的二维坐标位置,提高二维关键点检测网络的鲁棒性,再结合基于三维姿态估计网络对人体图像进行处理后得到的三维坐标位置,可以较为准确的估计得到人体的三维姿态。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种动作捕捉方法,包括:
分别获取至少两个视频流中同一时刻的图像帧,得到至少两个图像帧,所述至少两个视频流为基于不同视角拍摄的同一场景的同步视频;
对所述至少两个图像帧分别进行关节关键点检测,得到多个关节热力图,一个图像帧中包括的一个关节对应一个关节热力图,所述关节热力图的像素值用于表示各像素被检测为关节的概率;
对相同的关节对应的关节热力图分别进行融合,得到各图像帧中包括的各关节分别对应的融合热力图,根据各关节对应的融合热力图,确定各关节在对应的图像帧中的第一位置;
根据各图像帧中包括的各关节的第一位置,确定各关节在人体三维模型中的第二位置,得到人体三维姿态。
在一种可选的实现方式中,所述对所述至少两个图像帧分别进行关节关键点检测,得到多个关节热力图,包括:
对于所述至少两个图像帧中的任一图像帧,对所述图像帧进行人体检测或人体跟踪中的至少一种,得到所述图像帧对应的至少一个人体图像;
对于所述图像帧对应的任一人体图像,对所述人体图像进行关节关键点检测,得到至少两个关节热力图。
在一种可选的实现方式中,所述对所述人体图像进行关节关键点检测,得到至少两个关节热力图,包括:
将所述人体图像输入二维关键点检测网络;
基于所述二维关键点检测网络对所述人体图像进行关节关键点检测;
获取所述二维关键点检测网络输出的分别对应于不同关节的关节热力图。
在一种可选的实现方式中,所述获取所述二维关键点检测网络输出的分别对应于不同关节的关节热力图之后,所述方法还包括:
对于任一关节热力图,将所述关节热力图由第一尺寸调整为第二尺寸,所述第一尺寸为所述二维关键点检测网络的输出尺寸,所述第二尺寸为所述关节热力图对应的人体图像的尺寸;
按照所述人体图像在对应的图像帧中的位置,在第二尺寸的关节热力图周围补充默认像素点,得到与所述图像帧相同尺寸的关节热力图。
在一种可选的实现方式中,所述对相同的关节对应的关节热力图分别进行融合,得到各图像帧中包括的各关节分别对应的融合热力图,包括:
对于所述至少两个图像帧中的每个图像帧,将所述图像帧作为融合目标,获取除所述图像帧以外的至少一个其他图像帧作为融合源,得到至少一个融合源;
将所述至少一个融合源中包括的各关节对应的关节热力图分别与所述融合目标中包括的相同的关节进行融合,得到所述融合目标包括的各关节分别对应的融合热力图。
在一种可选的实现方式中,所述将所述至少一个融合源中包括的各关节对应的关节热力图分别与所述融合目标中包括的相同的关节进行融合,包括:
响应于所述至少一个融合源为一个融合源,对于所述融合源包括的任一关节,对所述关节对应的关节热力图进行立体矫正变换,得到第一矫正热力图;
将所述第一矫正热力图中每行的像素值,设置为所述行的像素最大值,得到第二矫正热力图;
对所述融合目标中包括的所述关节对应的关节热力图进行立体矫正变换,得到第三矫正热力图;
对所述第二矫正热力图与所述第三矫正热力图中的元素进行几何平均处理,得到第四矫正热力图;
对所述第四矫正热力图进行立体矫正反变换,得到第五矫正热力图,所述第五矫正热力图作为所述融合目标中包括的所述关节对应的融合热力图。
在一种可选的实现方式中,所述将所述至少一个融合源中包括的各关节对应的关节热力图分别与所述融合目标中包括的相同的关节进行融合,包括:
响应于所述至少一个融合源为至少两个融合源,对于融合目标中包括的任一关节,分别根据所述至少两个融合源,确定所述关节对应的至少两个融合热力图;
将对所述至少两个融合热力图进行几何平均处理后得到的热力图,作为所述关节对应的融合热力图。
在一种可选的实现方式中,所述根据各关节对应的融合热力图,确定各关节在对应的图像帧中的第一位置,包括:
对于任一关节,从所述关节对应的融合热力图中,获取像素值大于预设阈值的位置作为所述关节在对应的图像帧中的第一位置。
在一种可选的实现方式中,所述根据各图像帧中各关节的第一位置,确定各关节在人体三维模型中的第二位置,得到人体三维姿态,包括:
获取人体三维姿态的先验约束;
根据所述各图像帧中各关节的第一位置,构建差值函数,所述差值函数用于表示各关节在人体三维模型中的第二位置在对应的视角投影后的位置,与所述第一位置之间的差值;
根据所述差值函数和所述先验约束,确定目标函数;
优化求解所述目标函数,确定人体三维姿态。
在一种可选的实现方式中,所述目标函数的初值通过以下步骤确定:
响应于所述至少两个图像帧为首帧,从所述至少两个图像帧中获取遮挡最小图像帧,作为目标图像帧;
基于单视角人体三维姿态估计网络对所述目标图像帧进行处理,得到各关节在人体三维模型中的第三位置,将所述第三位置作为所述目标函数的初值。
在一种可选的实现方式中,所述目标函数的初值通过以下步骤确定:
响应于所述至少两个图像帧为非首帧,获取上一帧中各关节在人体三维模型中的第四位置,将所述第四位置作为所述目标函数的初值。
在一种可选的实现方式中,所述根据所述差值函数和所述先验约束,确定目标函数,包括:
对所述差值函数和所述先验约束进行加权求和,得到第一函数,将所述第一函数作为所述目标函数。
在一种可选的实现方式中,所述对所述差值函数、所述先验约束以及所述时域约束函数进行加权求和,得到所述第一函数之后,所述方法还包括:
获取时域约束函数,所述时域约束函数用于表示上一帧中各关节在人体三维模型中的第四位置与所述各关节在人体三维模型中的第二位置之间的差别;
对所述第一函数和所述时域约束函数进行求和,得到第二函数,将所述第二函数作为所述目标函数。
根据本公开实施例的第二方面,提供一种动作捕捉装置,包括:
图像获取单元,被配置为执行分别获取至少两个视频流中同一时刻的图像帧,得到至少两个图像帧,所述至少两个视频流为基于不同视角拍摄的同一场景的同步视频;
关节关键点检测单元,被配置为执行对所述至少两个图像帧分别进行关节关键点检测,得到多个关节热力图,一个图像帧中包括的一个关节对应一个关节热力图,所述关节热力图的像素值用于表示各像素被检测为关节的概率;
图像融合单元,被配置为执行对相同的关节对应的关节热力图分别进行融合,得到各图像帧中包括的各关节分别对应的融合热力图,根据各关节对应的融合热力图,确定各关节在对应的图像帧中的第一位置;
姿态确定单元,被配置为执行根据各图像帧中包括的各关节的第一位置,确定各关节在人体三维模型中的第二位置,得到人体三维姿态。
在一种可选的实现方式中,所述关节关键点检测单元,包括:
人体检测跟踪子单元,被配置为执行对于所述至少两个图像帧中的任一图像帧,对所述图像帧进行人体检测或人体跟踪中的至少一种,得到所述图像帧对应的至少一个人体图像;
关节关键点检测子单元,被配置为执行对于所述图像帧对应的任一人体图像,对所述人体图像进行关节关键点检测,得到至少两个关节热力图。
在一种可选的实现方式中,所述关节关键点检测子单元,被配置为执行将所述人体图像输入二维关键点检测网络;基于所述二维关键点检测网络对所述人体图像进行关节关键点检测;获取所述二维关键点检测网络输出的分别对应于不同关节的关节热力图。
在一种可选的实现方式中,所述装置还包括:
尺寸调整单元,被配置为执行对于任一关节热力图,将所述关节热力图由第一尺寸调整为第二尺寸,所述第一尺寸为所述二维关键点检测网络的输出尺寸,所述第二尺寸为所述关节热力图对应的人体图像的尺寸;
像素调整单元,被配置为执行按照所述人体图像在对应的图像帧中的位置,在第二尺寸的关节热力图周围补充默认像素点,得到与所述图像帧相同尺寸的关节热力图。
在一种可选的实现方式中,所述图像融合单元,包括:
融合源获取子单元,被配置为执行对于所述至少两个图像帧中的每个图像帧,将所述图像帧作为融合目标,获取除所述图像帧以外的至少一个其他图像帧作为融合源,得到至少一个融合源;
图像融合子单元,被配置为执行将所述至少一个融合源中包括的各关节对应的关节热力图分别与所述融合目标中包括的相同的关节进行融合,得到所述融合目标包括的各关节分别对应的融合热力图。
在一种可选的实现方式中,所述图像融合子单元,被配置为执行响应于所述至少一个融合源为一个融合源,对于所述融合源包括的任一关节,对所述关节对应的关节热力图进行立体矫正变换,得到第一矫正热力图;将所述第一矫正热力图中每行的像素值,设置为所述行的像素最大值,得到第二矫正热力图;对所述融合目标中包括的所述关节对应的关节热力图进行立体矫正变换,得到第三矫正热力图;对所述第二矫正热力图与所述第三矫正热力图中的元素进行几何平均处理,得到第四矫正热力图;对所述第四矫正热力图进行立体矫正反变换,得到第五矫正热力图,将所述第五矫正热力图作为所述融合目标中包括的所述关节对应的融合热力图。
在一种可选的实现方式中,所述图像融合子单元,被配置为执行响应于所述至少一个融合源为至少两个融合源,对于融合目标中包括的任一关节,分别根据所述至少两个融合源,确定所述关节对应的至少两个融合热力图;将对所述至少两个融合热力图进行几何平均处理后得到的热力图,作为所述关节对应的融合热力图。
在一种可选的实现方式中,所述图像融合单元,被配置为执行对于任一关节,从所述关节对应的融合热力图中,获取像素值大于预设阈值的位置作为所述关节在对应的图像帧中的第一位置。
在一种可选的实现方式中,所述姿态确定单元,包括:
先验约束获取子单元,被配置为执行获取人体三维姿态的先验约束;
差值函数构建子单元,被配置为执行根据所述各图像帧中各关节的第一位置,构建差值函数,所述差值函数用于表示各关节在人体三维模型中的第二位置在对应的视角投影后的位置,与所述第一位置之间的差值;
目标函数确定子单元,被配置为执行根据所述差值函数和所述先验约束,确定目标函数;
姿态确定子单元,被配置为执行优化求解所述目标函数,确定人体三维姿态。
在一种可选的实现方式中,所述装置还包括:初值确定单元,被配置为执行:响应于所述至少两个图像帧为首帧,从所述至少两个图像帧中获取遮挡最小图像帧,作为目标图像帧;基于单视角人体三维姿态估计网络对所述目标图像帧进行处理,得到各关节在人体三维模型中的第三位置,将所述第三位置作为所述目标函数的初值。
在一种可选的实现方式中,所述装置还包括:初值确定单元,被配置为执行:响应于所述至少两个图像帧为非首帧,获取上一帧中各关节在人体三维模型中的第四位置,将所述第四位置作为所述目标函数的初值。
在一种可选的实现方式中,所述目标函数确定子单元,被配置为执行对所述差值函数和所述先验约束进行加权求和,得到第一函数,将所述第一函数作为所述目标函数。
在一种可选的实现方式中,所述目标函数确定子单元,被配置为执行获取时域约束函数,所述时域约束函数用于表示上一帧中各关节在人体三维模型中的第四位置与所述各关节在人体三维模型中的第二位置之间的差别;对所述第一函数和所述时域约束函数进行求和,得到第二函数,将所述第二函数作为所述目标函数。
根据本公开实施例的第三方面,提供一种电子设备,该电子设备包括:
一个或多个处理器;
用于存储该处理器可执行程序代码的存储器;
其中,该处理器被配置为执行该程序代码,以实现上述动作捕捉方法。
根据本公开实施例的第四方面,提供一种存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述动作捕捉方法。
根据本公开实施例的第五方面,提供了应用程序,该应用程序包括程序代码,该程序代码存储在存储介质中。电子设备的处理器从存储介质读取该程序代码,处理器执行该程序代码,使得该电子设备能够执行上述第一方面或者第一方面的各种可选实现方式中提供的动作捕捉方法。
本公开实施例提供的技术方案至少带来以下有益效果:
通过从基于不同视角拍摄的同一场景的同步视频的至少两个视频流中分别获取同一时刻的图像帧,可以得到同一时刻不同视角下的图像帧,通过对每个图像帧分别进行处理,可以得到表示该图像帧中包括的各关节所对应的关节热力图,进一步的通过对各关节的关节热力图分别进行融合,可以得到各关节在图像帧中较为准确的位置,提高各关节的位置的鲁棒性,从而可以根据各图像帧中各关节的位置较为准确的确定人体的三维姿态。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种动作捕捉方法的实施环境示意图。
图2是根据一示例性实施例示出的一种动作捕捉方法的流程图。
图3是根据一示例性实施例示出的另一种动作捕捉方法的流程图。
图4是根据一示例性实施例示出的另一种动作捕捉方法的流程图。
图5是根据一示例性实施例示出的一种动作捕捉装置的框图。
图6是根据一示例性实施例示出的一种终端的框图。
图7是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子
本公开所涉及的用户信息,如人体图像,可以为经用户授权或者经过各方充分授权的信息。
电子设备可以被提供为终端或者服务器,当电子设备被提供为终端时,可以由该终端实现动作捕捉方法所执行的操作;当被提供为服务器时,可以由该服务器实现动作捕捉方法所执行的操作,该服务器可以接收终端发送的视频流,由服务器基于接收到的视频流来进行动作捕捉;也可以由该服务器和终端交互来实现动作捕捉方法所执行的操作,如由终端向服务器发送动作捕捉请求,由服务器来进行动作捕捉,然后将动作捕捉的结果反馈给终端,由终端输出动作捕捉的结果。
图1是根据一示例性实施例示出的一种动作捕捉方法的实施环境示意图。以电子设备被提供为服务器为例,参见图1,该实施环境具体包括:终端101和服务器102。
终端101可以为智能手机、智能手表、台式电脑、手提电脑、MP3播放器、MP4播放器、摄像机和膝上型便携计算机等设备中的至少一种。终端101上可以安装并运行有用于拍摄视频的应用程序,用户可以通过终端101登录该应用程序来获取该应用程序提供的服务。终端101可以通过无线网络或有线网络与服务器102相连,进而可以将拍摄的视频流发送给服务器102。
终端101可以泛指多个终端中的一个,本实施例仅以终端101来举例说明。本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为几个,或者上述终端为几十个或几百个,或者更多数量,本公开实施例对终端的数量和设备类型均不加以限定。
服务器102可以为一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器102可以通过无线网络或有线网络与终端101和其他终端相连,服务器102可以接收终端101发送的视频流,以便服务器能够根据该视频流获取人体三维姿态,进行动作捕捉。可选地,上述服务器的数量可以更多或更少,本公开实施例对此不加以限定。当然,服务器102还可以包括其他功能服务器,以便提供更全面且多样化的服务。
图2是根据一示例性实施例示出的一种动作捕捉方法的流程图,参见图2,应用于电子设备,该方法具体步骤包括:
在步骤S201中,电子设备分别获取至少两个视频流中同一时刻的图像帧,得到至少两个图像帧,该至少两个视频流为基于不同视角拍摄的同一场景的同步视频。
在步骤S202中,电子设备对该至少两个图像帧分别进行关节关键点检测,得到多个关节热力图,一个图像帧中包括的一个关节对应一个关节热力图,该关节热力图的像素值用于表示各像素被检测为关节的概率。
在步骤S203中,电子设备对相同的关节对应的关节热力图分别进行融合,得到各图像帧中包括的各关节分别对应的融合热力图,根据各关节对应的融合热力图,确定各关节在对应的图像帧中的第一位置。
在步骤S204中,电子设备根据各图像帧中包括的各关节的第一位置,确定各关节在人体三维模型中的第二位置,得到人体三维姿态。
本公开实施例提供的方案,通过从基于不同视角拍摄的同一场景的同步视频的至少两个视频流中分别获取同一时刻的图像帧,可以得到同一时刻不同视角下的图像帧,通过对每个图像帧分别进行处理,可以得到表示该图像帧中包括的各关节所对应的关节热力图,进一步的通过对各关节的关节热力图分别进行融合,可以得到各关节在图像帧中较为准确的位置,提高各关节的位置的鲁棒性,从而可以根据各图像帧中各关节的位置较为准确的确定人体的三维姿态。
在一种可选的实现方式中,该对该至少两个图像帧分别进行关节关键点检测,得到多个关节热力图,包括:
对于该至少两个图像帧中的任一图像帧,对该图像帧进行人体检测或人体跟踪中的至少一种,得到该图像帧对应的至少一个人体图像;
对于该图像帧对应的任一人体图像,对该人体图像进行关节关键点检测,得到至少两个关节热力图。
在一种可选的实现方式中,该对该人体图像进行关节关键点检测,得到至少两个关节热力图,包括:
将该人体图像输入二维关键点检测网络;
基于该二维关键点检测网络对该人体图像进行关节关键点检测;
获取该二维关键点检测网络输出的分别对应于不同关节的关节热力图。
在一种可选的实现方式中,该获取该二维关键点检测网络输出的分别对应于不同关节的关节热力图之后,该方法还包括:
对于任一关节热力图,将该关节热力图由第一尺寸调整为第二尺寸,该第一尺寸为该二维关键点检测网络的输出尺寸,该第二尺寸为该关节热力图对应的人体图像的尺寸;
按照该人体图像在对应的图像帧中的位置,在第二尺寸的关节热力图周围补充默认像素点,得到与该图像帧相同尺寸的关节热力图。
在一种可选的实现方式中,该对相同的关节对应的关节热力图分别进行融合,得到各图像帧中包括的各关节分别对应的融合热力图,包括:
对于该至少两个图像帧中的每个图像帧,将该图像帧作为融合目标,获取个除该图像帧以外的至少一个其他图像帧作为融合源,得到至少一个融合源;
将该至少一个融合源中包括的各关节对应的关节热力图分别与该融合目标中包括的相同的关节进行融合,得到该融合目标包括的各关节分别对应的融合热力图。
在一种可选的实现方式中,该将该至少一个融合源中包括的各关节对应的关节热力图分别与该融合目标中包括的相同的关节进行融合,包括:
响应于所述至少一个融合源为一个融合源,对于所述融合源包括的任一关节,对所述关节对应的关节热力图进行立体矫正变换,得到第一矫正热力图;
将所述第一矫正热力图中每行的像素值,设置为所述行的像素最大值,得到第二矫正热力图;
对所述融合目标中包括的所述关节对应的关节热力图进行立体矫正变换,得到第三矫正热力图;
对所述第二矫正热力图与所述第三矫正热力图中的元素进行几何平均处理,得到第四矫正热力图;
对所述第四矫正热力图进行立体矫正反变换,得到第五矫正热力图,将所述第五矫正热力图作为所述融合目标中包括的所述关节对应的融合热力图。
在一种可选的实现方式中,该将该至少一个融合源中包括的各关节对应的关节热力图分别与该融合目标中包括的相同的关节进行融合,包括:
响应于该至少一个融合源为至少两个融合源,对于融合目标中包括的任一关节,分别根据该至少两个融合源,确定该关节对应的至少两个融合热力图;
将对该至少两个融合热力图进行几何平均处理后得到的热力图,作为该关节对应的融合热力图。
在一种可选的实现方式中,该根据各关节对应的融合热力图,确定各关节在对应的图像帧中的第一位置,包括:
对于任一关节,从所述关节对应的融合热力图中,获取像素值大于预设阈值的位置作为所述关节在对应的图像帧中的第一位置。
在一种可选的实现方式中,该根据各图像帧中各关节的第一位置,确定各关节在人体三维模型中的第二位置,得到人体三维姿态,包括:
获取人体三维姿态的先验约束;
根据该各图像帧中各关节的第一位置,构建差值函数,该差值函数用于表示各关节在人体三维模型中的第二位置在对应的视角投影后的位置,与该第一位置之间的差值;
根据该差值函数和该先验约束,确定目标函数;
优化求解该目标函数,确定人体三维姿态。
在一种可选的实现方式中,该目标函数的初值通过以下步骤确定:
响应于该至少两个图像帧为首帧,从该至少两个图像帧中获取遮挡最小图像帧,作为目标图像帧;
基于单视角人体三维姿态估计网络对该目标图像帧进行处理,得到各关节在人体三维模型中的第三位置,将该第三位置作为该目标函数的初值。
在一种可选的实现方式中,该目标函数的初值通过以下步骤确定:
响应于该至少两个图像帧为非首帧,获取上一帧中各关节在人体三维模型中的第四位置,将该第四位置作为该目标函数的初值。
在一种可选的实现方式中,该根据该差值函数和该先验约束,确定目标函数,包括:
对该差值函数和该先验约束进行加权求和,得到第一函数,将该第一函数作为该目标函数。
在一种可选的实现方式中,该对该差值函数、该先验约束以及该时域约束函数进行加权求和,得到该第一函数之后,该方法还包括:
获取时域约束函数,该时域约束函数用于表示上一帧中各关节在人体三维模型中的第四位置与该各关节在人体三维模型中的第二位置之间的差别;
对该第一函数和该时域约束函数进行求和,得到第二函数,将该第二函数作为该目标函数。
上述图2所示仅为本公开的基本流程,下面基于一种具体实现方式,来对本公开提供的方案进行进一步阐述,图3是根据一示例性实施例示出的另一种动作捕捉方法的流程图。以电子设备被提供为服务器为例,参见图3,该方法包括:
在步骤S301中,服务器分别获取至少两个视频流中同一时刻的图像帧,得到至少两个图像帧,该至少两个视频流为基于不同视角拍摄的同一场景的同步视频。
在本公开实施例中,在确定人体三维姿态时,可以在人体周围的不同位置设置有拍摄设备,通过不同的拍摄视角来对包含人体的场景进行拍摄,每个拍摄设备对应一个固定的拍摄视角,如将相机固定在三脚架上。其中,拍摄设备可以为上述图1中与服务器连接的终端101,如智能手机、摄像机等。服务器可以通过支持硬件同步或者软件同步的拍摄设备来拍摄得到时间同步的视频流,也可以利用声音同步等方式,确定不同拍摄设备拍摄得到的视频流之间的时间差,将各视频流通过延时播放的方式实现时间同步,从而服务器可以从不同视频流中获取同一时刻的图像帧。由于将固定视角拍摄的各视频流进行时间同步,使得服务器可以从时间同步的视频流中,获取同一时刻,不同拍摄角度的图像帧,从而可以基于该图像帧较为准确的对人体三维姿态进行估计,确定人体在该时刻的动作。
需要说明的是,拍摄设备均为已标定的拍摄设备,即已知该拍摄设备的内参矩阵和外参矩阵。拍摄设备的内参矩阵用于进行空间坐标和图像坐标之间的相互转换,即将3D相机坐标变换到2D图像坐标,通常由设备制造厂家设置并提供,可以通过查询已存储的拍摄设备的说明书等方式获取。拍摄设备的外参矩阵用于描述世界坐标中相机的位置,及其指向方向,可以通过自动标定方法得到,如棋盘格标定、平面靶标定等。
在步骤S302中,对于至少两个图像帧中的任一图像帧,服务器对该图像帧进行人体检测或人体跟踪中的至少一种,得到该图像帧对应的至少一个人体图像。
在本公开实施例中,服务器可以对各视频流包括的图像帧分别进行人体检测或人体跟踪中的至少一种,以获取从不同视角拍摄的视频流中人体所在的位置。相应的,对于任一图像帧,服务器可以对该图像帧进行人体检测或者人体跟踪,得到至少一个人体标注框,该人体标注框用于指示人体在该图像帧中的位置。服务器可以根据该人体标注框进行裁剪,获取该人体标注框对应的人体图像。一个图像帧可以获取至少一个人体图像,则服务器根据至少两个图像帧可以获取至少两个人体图像。由于通过人体检测或者人体跟踪获取各图像帧中人体的位置,从而可以确认同一人体在同一时刻从不同拍摄角度拍摄得到的人体图像,便于服务器根据不同拍摄角度的人体图像确认人体的姿态。
需要说明的是,服务器可以通过任一人体检测或者人体跟踪算法来获取人体图像,如YOLO(You Only Look Once)算法、Faster-RCNN(FasterRegion-CNN)算法等。本公开实施例对此不进行限制。
在步骤S303中,对于图像帧对应的任一人体图像,服务器对该人体图像进行关节关键点检测,得到至少两个关节热力图,该关节热力图的像素值用于表示各像素被检测为关节的概率。
在本公开实施例中,对于获取到的任一人体图像,服务器可以将该人体图像输入二维关键点检测网络,基于该二维关键点检测网络对该人体图像进行关节关键点检测,获取该二维关键点检测网络输出的分别对应于不同关节的关节热力图,一个关节对应一个关节热力图,该关节包括在人体图像中,也即包括在图像帧中。其中,关节热力图包括的像素值用于表示各像素被检测为关节的概率,即像素值为0到1。通过基于已训练好的二维关键点检测网络,对裁剪得到的人体图像进行关键点检测,可以较为准确的确定人体图像中各个关节的关节热力图。
例如,假设人体有24个关节,则服务器将任一人体图像输入到二维关键点检测网络后,可以得到24个关节热力图。然而由于人体的姿势不同,如侧身、蜷缩等,会导致部分关节被遮盖。因此被遮挡的关节对应的关节热力图上,会出现该被遮挡的关节的位置的概率值较低,即出现漏检的情况;或者非该被遮挡的关节对应的其他关节的位置的概率值较高,即出现误检的情况。
需要说明的是,服务器可以通过任意算法构建的二维关键点检测网络对人体图像进行处理,来得到关节热力图,如通过OpenPose(开放姿态)算法、Alphapose(阿尔法姿态)算法或者HRNet(High-ResoultionNet,高分辨率网络)算法。本公开实施例对此不进行限制。另外,二维关键点检测网络也可以称为2D关键点检测网络。
在步骤S304中,服务器对相同的关节对应的关节热力图分别进行融合,得到各图像帧中包括的各关节分别对应的融合热力图。
在本公开实施例中,对于任一时刻的图像帧,该图像帧包括至少两个关节,一个关节对应一个关节热力图,则一个图像帧对应至少两个关节热力图。则对于至少两个图像帧中的每个图像帧,服务器可以将该图像帧作为融合目标,获取除该图像帧以外的至少一个其他图像帧作为融合源,得到至少一个融合源,将该至少一个融合源中包括的各关节对应的关节热力图分别与融合目标中包括的相同的关节进行融合,得到该融合目标包括的各关节分别对应的融合热力图。其中,服务器可以获取与融合目标对应的拍摄设备距离最近的拍摄设备所拍摄的图像帧作为融合源,也可以按照拍摄设备的距离,由近到远获取多个拍摄设备所拍摄的图像帧作为融合源。由于通过至少一个其他图像帧作为一个图像帧的融合源对该图像帧中包括的各关节对应的关节热力图进行融合,使得融合后得到的的融合热力图中关节所在的位置更为准确。
例如,通过3个相机来拍摄一个人体,分别为相机1、相机2和相机3,,服务器通过三个相机拍摄得到三个视频流,对于任一时刻,服务器从上述三个视频流中分别获取图像帧1、图像帧2和图像帧3。服务器在获取图像帧1中包括的各关节的融合热力图时,将图像帧2包括的各关节对应的关节热力图与图像帧1中包括的各关节对应的关节热力图进行融合,将图像帧1称为融合目标,将图像帧2称为融合源。按照关节,将图像帧2中关节对应的关节热力图与图像帧1中相同关节对应的关节热力图进行融合,得到图像帧1中包括的各关节的融合热力图。
在一种可选的实现方式中,服务器对关节热力图进行融合遵循的是多视角拍摄设备之间的极线约束,即每个视角对应的图像帧中检测到的关节的位置,都应落在其他视角对应的同一时刻的图像帧中包括的同一关节的位置的极线附近。
融合源可以为一个也可以为多个,当融合源为一个时,相应的,服务器将该至少一个融合源中包括的各关节对应的关节热力图分别与融合目标中包括的相同的关节进行融合,得到该融合目标包括的各关节分别对应的融合热力图的步骤可以为:响应于所述至少一个融合源为一个融合源,对于该融合源包括的任一关节,服务器可以对该关节对应的关节热力图进行立体矫正变换,得到第一矫正热力图。然后服务器可以将第一矫正热力图中每行的像素值,设置为该行的像素最大值,得到第二矫正热力图。服务器还可以对融合目标中包括的该关节对应的关节热力图进行立体矫正变换,得到第三矫正热力图。然后,服务器对第二矫正热力图与第三矫正热力图中的元素进行几何平均处理,得到第四矫正热力图。最后,服务器对该第四矫正热力图进行立体矫正反变换,得到第五矫正热力图,将该第五矫正热力图做作为融合目标中包括的该关节对应的融合热力图。由于在某个视角对应的图像帧中包括的某个关节被检测到了错误的位置时,该错误的关节的位置在其他视角对应的图像帧中包括的同一关节的位置的极线上的概率值较低,通过用相邻视角对应的图像帧中包括的各关节对当前视角对应的图像帧中包括的各关节分别进行校准,基于两个视角拍摄设备之间的极线约束,可以去除检测错误的关节,从而提升关节关键点检测结果的鲁棒性。
例如,以获取一个融合源为例,相机n1为距离相机n最近的相机,在确定相机n拍摄的图像帧n中包括的各个关节的融合热力图时,可以将相机n拍摄的图像帧作为融合目标,将进行融合的相机n1拍摄的图像帧n1作为融合源。以第i个关节为例,对第i个关节对应的两个关节热力图分别进行立体矫正变换,得到图像帧n和图像帧n1中包括的第i个关节对应的矫正后的第三矫正热力图和第一矫正热力图,分别表示为和将中每行的各像素值设置为该行的像素最大值,得到第二矫正热力图,表示为也即对于经过同一关节的多条极线,选择关节存在概率的最大值。然后通过以下公式(1)来对第二矫正热力图与第三矫正热力图中的元素进行几何平均处理,得到第四矫正热力图然后对进行立体矫正反变换,得到图像帧n中包括的第i关节的融合热力图也即第五矫正热力图。
其中,表示第i个关节的融合热力图,表示图像帧n中包括的第i个关节对应的关节热力图进行立体矫正变换后的第三矫正热力图,表示对进行像素值调整后的第二矫正热力图,表示图像帧n1中包括的第i个关节对应的关节热力图进行立体矫正变换后的第一矫正热力图,*表示元素相乘,i表示第i个关节。
当融合源为至少两个时,相应的,服务器将该至少一个融合源中包括的各关节对应的关节热力图分别与融合目标中包括的相同的关节进行融合,得到该融合目标包括的各关节分别对应的融合热力图的步骤可以为:响应于至少一个融合源为至少两个融合源,服务器可以对于融合目标中包括的任一关节,分别根据该至少两个融合源,确定该关节对应的至少两个融合热力图,其中,服务器根据每个融合源确定该关节对应的融合热力图的步骤,可以参见上述融合源为一个时的步骤,在此不再赘述。服务器可以将对该至少两个融合热力图进行几何平均处理后得到的热力图,作为该关节对应的融合热力图。由于在某个视角对应的图像帧中包括的某个关节被检测到了错误的位置时,该错误的关节的位置在其他视角对应的图像帧中包括的同一关节的位置的极线上的概率值较低,通过用其他视角对应的图像帧中包括的各关节对当前视角对应的图像帧中包括的各关节分别进行校准,基于多视角拍摄设备之间的极线约束,可以去除检测错误的关节,从而提升关节关键点检测结果的鲁棒性。
例如,当相机n作为融合目标,将预设数量的其他相机作为融合源来计算相机n第i个关节融合后的融合热力图时,可以分别按照上述方式计算相机n与其他相机中第i个关节融合后的融合热力图然后对得到的至少两个融合热力图计算几何平均,得到相机n第i个关节融合后的融合热力图。
在一种可选的实现方式中,由于拍摄设备与被拍摄人体之间的距离不同或者人体的姿势不同,使得人体检测或者人体跟踪时从不同图像帧检测到的人体框的尺寸也不同,从而服务器获得的人体图像的尺寸也不相同。服务器对相同的关节对应的关节热力图分别进行融合之前可以统一尺寸,相应的步骤为:对于任一关节热力图,服务器可以将该关节热力图由第一尺寸调整为第二尺寸,该第一尺寸为二维关键点检测网络的输出尺寸,该第二尺寸为关节热力图对应的人体图像的尺寸。服务器可以按照人体图像在对应的图像帧中的位置,在第二尺寸的关节热力图周围补充默认像素点,得到与图像帧相同尺寸的关节热力图。由于,服务器将关节热力图的尺寸变换为图像帧的尺寸后,即统一为相同的尺寸后,再进行融合,减少了融合时的难度,提高了融合效率和准确度。
需要说明的是,二维关键点检测网络的输入尺寸和输出尺寸可以相同,也可以不同。服务器可以在将人体图像输入二维关键点检测网络之前,对该人体图像的尺寸进行调整,以符合二维关键点检测网络的输入尺寸。
例如,以二维关键点检测网络的输入尺寸和输出尺寸相同为例,图像帧的尺寸为W×H,对于任一时刻,服务器从第n个拍摄设备的图像帧中获取到的人体图像的第二尺寸为Wn×Hn,该人体图像的左上角对应于图像帧中的坐标为(xn,yn)。服务器在将人体图像输入二维关键点检测网络时,将人体图像由第二尺寸调整到第一尺寸W’n×H’n,然后基于该二维关键点检测网络得到多个第一尺寸的关节热力图,对于第i个关节对应的关节热力图,服务器将该第i个关节对应的关节热力图的尺寸调整为第二尺寸Wn×Hn,记为H’n,i,然后在H’n,i四周补零,得到一个尺寸为W×H的关节热力图,其中H’n,i的左上角在该关节热力图中的坐标为(xn,yn)。可选的,服务器还可以先生成一张尺寸为W×H,像素值全为零的空白图像,然后根据(xn,yn)指示的坐标位置和H’n,i,设置该空白图像的像素值,使得H’n,i的左上角在该关节热力图中的坐标为(xn,yn),得到尺寸为W×H的关节热力图。
在步骤S305中,服务器根据各关节对应的融合热力图,确定各关节在对应的图像帧中的第一位置。
在本公开实施例中,服务器从每个视角对应的拍摄设备所拍摄的视频流均获取了一个图像帧,且各图像帧对应于同一个场景,则一个关节对于每个图像帧都对应一个融合热力图。对于任一关节,服务器可以从该关节对应的融合热力图中获取像素值大于预设阈值的位置作为该关节在对应的图像帧中的第一位置。该第一位置为该关节对应的二维坐标位置。本公开实施例对预设阈值不进行限制。通过设置预设阈值,可以对各关节对应的位置进行严格的筛选,提高确定的人体三维姿态的准确性。并且,通过设置检测阈值,还以在后续步骤中辅助选取遮挡最小的视角。
在一种可选的实现方式中,服务器还可以从像素值大于预设的至少一个位置中,选择像素值最大的位置作为第一位置,从而起到对各关节对应的位置进一步进行筛选的作用,可以保证在确定人体三维姿态时使用的关节的位置的可信度较高,从而确定的人体三维姿态较为准确。
例如,融合热力图i1、融合热力图i2以及融合热力图i3是关节i分别对应于图像帧1、图像帧2和图像帧3的融合热力图。服务器可以将关节i在融合热力图i1中像素值大于预设阈值,且像素值最大的位置,作为该关节i在对应的图像帧1中的第一位置。服务器可以将关节i在融合热力图i2中像素值大于预设阈值,且像素值最大的位置,作为该关节i在对应的图像帧2中的第一位置。服务器可以将关节i在融合热力图i3中像素值大于预设阈值,且像素值最大的位置,作为该关节i在对应的图像帧3中的第一位置。
需要说明的是,如果一个关节的融合热力图中的各像素值均不满足目标条件,则表示该关节的检测结果不可靠,可以再次进行检测,或者调整拍摄设备的位置或者拍摄环境。其中,该检测阈值可以为0.4、0.5或者0.6,本公开对此不进行限制。
在步骤S306中,服务器根据各图像帧中各关节的第一位置,确定各关节在人体三维模型中的第二位置,得到人体三维姿态。
在本公开实施例中,服务器可以获取人体三维姿态的先验约束,然后根据各图像帧中各关节的第一位置,构建差值函数,该差值函数用于表示各关节在人体三维模型中的第二位置在对应的视角投影后的位置,与第一位置之间的差值。服务器可以根据该差值函数和该先验约束,确定目标函数。最后服务器通过优化求解该目标函数,确定人体三维姿态。
可选的,服务器对差值函数和所述先验约束进行加权求和,得到第一函数,将该第一函数作为目标函数,则服务器优化的目标函数可以参见公式(2)-公式(4)所示。
E=wdataEdata+wpriorEprior (2);
其中,E表示优化目标;wdata表示Edata的权重系数;Edata表示差值函数;wprior表示Eprior的权重系数;Eprior表示人体三维姿态的先验约束。
其中,Edata表示差值函数;N表示视角(拍摄设备)总数;n表示第n个视角;I表示关节总数;i表示第i个关节;wn,i表示关节的权重系数,取值为0或1;Kn表示第n个视角(拍摄设备)的内参矩阵;Pn表示第n个视角(拍摄设备)的外参矩阵;表示第i个关节的第二位置,θ表示关节旋转的轴角,β表示blendshape(混合形状)系数,γ=[γx,γy,γz]表示世界坐标系中三维人体模型根节点的三维坐标;表示第n个视角中第i个关节的第一位置。
Eprior=||A(θ-b)|| (4);
其中,Eprior表示人体三维姿态的先验约束,可以用高斯分布建模;A表示协方差矩阵;θ表示关节旋转的轴角;b表示关节旋转参数的均值。
通过约束各关节在人体三维模型中的第二位置在各视角投影后的位置与各关节点在对应的图像帧中的第一位置的差别来求解人体三维姿态,使得确定的人体三维姿态更为接近人体的真实姿态,确定的三维姿态的准确度较高。
需要说明的是,服务器可以通过两种方式来确定上述目标函数的初值。第一种方式,对于视频流的第一帧,也即首帧,服务器可以从至少两个图像帧中获取遮挡最小图像帧,作为目标图像帧,基于单视角人体三维姿态估计网络对该目标图像帧进行处理,得到各关节在人体三维模型中的第三位置,将该第三位置作为目标函数的初值。其中,服务器可以通过各图像帧包括的可靠地关节的数量来确定遮挡最小的目标图像帧,可靠的关节的数量越多,则遮挡越小。可靠的关节的数量可以通过上述预设阈值来确定。第二种方式,对于视频流的非第一帧,也即非首帧,由于相邻的图像帧之间动作变化通常不大,服务器可以将上一帧的确定的各关节在人体三维模型中的第四位置,作为所述目标函数的初值。
需要说明的是,服务器可以通过SMPL(Skinned Multi-Person Linear,一种人体三维模型)模型来描述人体三维网格M(θ,β,γ),其中,θ是长度为72的向量,表示模型中24个关节旋转的轴角,β是长度为10的向量,表示blendshape(混合形状)系数,γ=[γx,γy,γz]表示世界坐标系中三维人体模型根节点的三维坐标。三维网格M(θ,β,γ)包含6890个顶点,通过6890×3的矩阵分别表示。定义有1个关节的二维坐标位置与三维坐标位置一一对应。第i个关节的三维坐标位置表示为其中,为I×3大小的矩阵,T表示从三维网格顶点到三维坐标位置的回归矩阵,大小为I×6890。当然,服务器还可以通过其他模型来描述人体三维网格,本公开对此不进行限制。
需要说明的是,在求解上述目标函数时,服务器还可以在目标函数中加入时域约束,则服务器可以获取时域约束函数,该时域约束函数用于表示上一帧中各关节在人体三维模型中的第四位置与各关节在人体三维模型中的第二位置之间的差别。然后服务器可以对该第一函数和该时域约束函数进行求和,得到第二函数,将该第二函数作为目标函数。相应的,加入时域约束后的目标函数可以参见公式(5)-(6)所示。
E’=wdataEdata+wpriorEprior+wtemporalEtemporal (5);
其中,E’表示加入时域约束后的优化目标;wdata表示Edata的权重系数;Edata表示差值函数;wprior表示Eprior的权重系数;Eprior表示人体三维姿态的先验约束;wtemporal表示Etemporal的权重系数,Etemporal表示时域约束函数。
Etemporal=||J3D(θt,βt,γt)-J3D(θt-1,βt-1,γt-1)||2 (6);
其中,Etemporal表示时域约束函数,θt、βt和γt分别表示第t帧待求解参数。
通过加入时域约束,可以保证在求解优化问题时,得到的结果更为平滑,保证了结果的平滑性。
需要说明的是,为了使上述步骤S301至步骤S306描述的内容更清晰,可以参见图4所示,图4是根据一示例性实施例示出的另一种动作捕捉方法的流程图。如图4所示,包括以下步骤:步骤401、N个拍摄设备从不同角度拍摄得到N个时间同步的视频流;步骤402、对于任一视频流,服务器可以对其进行人体检测和跟踪;步骤403、服务器可以根据人体框裁剪得到人体图像;步骤404、服务器可以将该人体图像输入2D关键点检测网络;步骤405、服务器可以将得到的关节热力图进行热力图融合;步骤406,服务器可以根据融合热力图获取各关节的第一位置,也即二维坐标位置;步骤407、服务器可以基于单视角人体三维姿态估计网络对人体图像进行处理,得到各关节的第三位置,也即三维坐标位置;步骤408,服务器可以根据各关节点的第三位置和第二位置确定各关节在人体三维模型中的第二位置;步骤409,获得人体三维姿态估计的结果。
本公开实施例提供的方案,通过从不同视角拍摄的同步视频流中提取同一时刻的人体图像,可以得到同一时刻不同视角下人体的二维图像,基于二维关键点检测网络分别对得到的人体图像进行处理,可以得到表示关节的概率的关节热力图,进一步的通过对关节热力图进行融合,可以得到各关节较为准确的二维坐标位置,提高二维关键点检测网络的鲁棒性,再结合基于三维姿态估计网络对人体图像进行处理后得到的三维坐标位置,可以较为准确的估计得到人体的三维姿态。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图5是根据一示例性实施例示出的一种动作捕捉装置的框图。参照图5,该装置包括:图像获取单元501、关节关键点检测单元502、图像融合单元503以及姿态确定单元504。
图像获取单元501,被配置为执行分别获取至少两个视频流中同一时刻的图像帧,得到至少两个图像帧,该至少两个视频流为基于不同视角拍摄的同一场景的同步视频;
关节关键点检测单元502,被配置为执行对该至少两个图像帧分别进行关节关键点检测,得到多个关节热力图,一个图像帧中包括的一个关节对应一个关节热力图,该关节热力图的像素值用于表示各像素被检测为关节的概率;
图像融合单元503,被配置为执行对相同的关节对应的关节热力图分别进行融合,得到各图像帧中包括的各关节分别对应的融合热力图,根据各关节对应的融合热力图,确定各关节在对应的图像帧中的第一位置;
姿态确定单元504,被配置为执行根据各图像帧中包括的各关节的第一位置,确定各关节在人体三维模型中的第二位置,得到人体三维姿态。
本公开实施例提供的装置,通过图像获取单元501从基于不同视角拍摄的同一场景的同步视频的至少两个视频流中分别获取同一时刻的图像帧,可以得到同一时刻不同视角下的图像帧,通过关节关键点检测单元502对每个图像帧分别进行处理,可以得到表示该图像帧中包括的各关节所对应的关节热力图,进一步的通过图像融合单元503对各关节的关节热力图分别进行融合,可以得到各关节在图像帧中较为准确的位置,提高各关节的位置的鲁棒性,从而姿态确定单元504可以根据各图像帧中各关节的位置较为准确的确定人体的三维姿态。
在一种可选的实现方式中,关节关键点检测单元502,包括:
人体检测跟踪子单元5021,被配置为执行对于该至少两个图像帧中的任一图像帧,对该图像帧进行人体检测或人体跟踪中的至少一种,得到该图像帧对应的至少一个人体图像;
关节关键点检测子单元5022,被配置为执行对于该图像帧对应的任一人体图像,对该人体图像进行关节关键点检测,得到至少两个关节热力图。
在一种可选的实现方式中,该关节关键点检测子单元5022,被配置为执行将该人体图像输入二维关键点检测网络;基于该二维关键点检测网络对该人体图像进行关节关键点检测;获取该二维关键点检测网络输出的分别对应于不同关节的关节热力图。
在一种可选的实现方式中,该装置还包括:
尺寸调整单元505,被配置为执行对于任一关节热力图,将该关节热力图由第一尺寸调整为第二尺寸,该第一尺寸为该二维关键点检测网络的输出尺寸,该第二尺寸为该关节热力图对应的人体图像的尺寸;
像素调整单元506,被配置为执行按照该人体图像在对应的图像帧中的位置,在第二尺寸的关节热力图周围补充默认像素点,得到与该图像帧相同尺寸的关节热力图。
在一种可选的实现方式中,该图像融合单元503,包括:
融合源获取子单元5031,被配置为执行对于该至少两个图像帧中的每个图像帧,将该图像帧作为融合目标,获取除该图像帧以外的至少一个其他图像帧作为融合源,得到至少一个融合源;
图像融合子单元5032,被配置为执行将该至少一个融合源中包括的各关节对应的关节热力图分别与该融合目标中包括的相同的关节进行融合,得到该融合目标包括的各关节分别对应的融合热力图。
在一种可选的实现方式中,该图像融合子单元5032,被配置为执行对于该至少一个融合源中的任一融合源包括的任一关节,对该关节对应的关节热力图进行立体矫正变换,得到第一矫正热力图;将第一矫正热力图中每行的像素值,设置为该行的像素最大值,得到第二矫正热力图;对该融合目标中包括的该关节对应的关节热力图进行立体矫正变换,得到第三矫正热力图;对该第二矫正热力图与该第三矫正热力图中的元素进行几何平均处理,得到第四矫正热力图;对该第四矫正热力图进行立体矫正反变换,得到第五矫正热力图,将该第五矫正热力图作为该融合目标中包括的该关节对应的融合热力图。
在一种可选的实现方式中,该图像融合子单元5032,被配置为执行响应于该至少一个融合源为至少两个融合源,对于融合目标中包括的任一关节,分别根据该至少两个融合源,确定该关节对应的至少两个融合热力图;将对该至少两个融合热力图进行几何平均处理后得到的热力图,作为该关节对应的融合热力图。
在一种可选的实现方式中,该图像融合单元503,被配置为执行对于任一关节,从该关节对应的融合热力图中获取像素值大于预设阈值的位置作为该关节在对应的图像帧中的第一位置。
在一种可选的实现方式中,该姿态确定单元504,姿态确定单元,包括:
先验约束获取子单元5041,被配置为执行获取人体三维姿态的先验约束;
差值函数构建子单元5042,被配置为执行根据该各图像帧中各关节的第一位置,构建差值函数,该差值函数用于表示各关节在人体三维模型中的第二位置在对应的视角投影后的位置,与该第一位置之间的差值;
目标函数确定子单元5043,被配置为执行根据该差值函数和该先验约束,确定目标函数;
姿态确定子单元5044,被配置为执行优化求解该目标函数,确定人体三维姿态。
在一种可选的实现方式中,该装置还包括:初值确定单元507,被配置为执行:响应于该至少两个图像帧为首帧,从该至少两个图像帧中获取遮挡最小图像帧,作为目标图像帧;基于单视角人体三维姿态估计网络对该目标图像帧进行处理,得到各关节在人体三维模型中的第三位置,将该第三位置作为该目标函数的初值。
在一种可选的实现方式中,该装置还包括:初值确定单元507,被配置为执行:响应于该至少两个图像帧为非首帧,获取上一帧中各关节在人体三维模型中的第四位置,将该第四位置作为该目标函数的初值。
在一种可选的实现方式中,该目标函数确定子单元5043,被配置为执行对该差值函数和该先验约束进行加权求和,得到第一函数,将该第一函数作为该目标函数。
在一种可选的实现方式中,该目标函数确定子单元5043,被配置为执行获取时域约束函数,该时域约束函数用于表示上一帧中各关节在人体三维模型中的第四位置与该各关节在人体三维模型中的第二位置之间的差别;对该第一函数和该时域约束函数进行求和,得到第二函数,将该第二函数作为该目标函数。
需要说明的是,上述实施例提供的动作捕捉装置在进行人体动作捕捉时,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将电子设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的动作捕捉装置与动作捕捉方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
电子设备被提供为终端时,图6是根据一示例性实施例示出的一种终端600的框图。该终端600可以是:智能手机、平板电脑、MP3播放器(Moving Picture ExpertsGroupAudio LayerIII,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable GateArray,现场可编程门阵列)、PLA(Programmable LogicArray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本公开中方法实施例提供的动作捕捉方法。
在一些实施例中,终端600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、显示屏605、摄像头组件606、音频电路607、定位组件608和电源609中的至少一种。
外围设备接口603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括NFC(NearField Communication,近距离无线通信)有关的电路,本公开对此不加以限定。
显示屏605用于显示UI(UserInterface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置终端600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在终端600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在终端600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
定位组件608用于定位终端600的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件608可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源609用于为终端600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器613、指纹传感器614、光学传感器615以及接近传感器616。
加速度传感器611可以检测以终端600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器612可以检测终端600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对终端600的3D动作。处理器601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器613可以设置在终端600的侧边框和/或显示屏605的下层。当压力传感器613设置在终端600的侧边框时,可以检测用户对终端600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在显示屏605的下层时,由处理器601根据用户对显示屏605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置终端600的正面、背面或侧面。当终端600上设置有物理按键或厂商Logo时,指纹传感器614可以与物理按键或厂商Logo集成在一起。
光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器615采集的环境光强度,控制显示屏605的显示亮度。具体地,当环境光强度较高时,调高显示屏605的显示亮度;当环境光强度较低时,调低显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器616,也称距离传感器,通常设置在终端600的前面板。接近传感器616用于采集用户与终端600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与终端600的正面之间的距离逐渐变小时,由处理器601控制显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与终端600的正面之间的距离逐渐变大时,由处理器601控制显示屏605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图6中示出的结构并不构成对终端600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
电子设备被提供为服务器时,图7是根据一示例性实施例示出的一种服务器700的框图,该服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(CentralProcessing Units,CPU)701和一个或一个以上的存储器702,存储器702中包含的存储介质可以是ROM703和随机存取存储器(RAM)704。其中,该存储器702中存储有至少一条指令,该至少一条指令由该处理器701加载并执行以实现上述各个方法实施例提供的动作片捕捉方法。当然,该服务器还可以具有有线或无线网络接口705、输入输出接口706等部件,以便进行输入输出,该服务器700还可以包括大容量存储设备707,该服务器700还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器602或者存储器702,上述指令可由终端600的处理器601或者服务器700的处理器701执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种应用程序,该应用程序包括程序代码,该程序代码存储在存储介质中。电子设备的处理器从存储介质读取该程序代码,处理器执行该程序代码,使得该电子设备能够执行上述实施例中各种可选实现方式中提供的动作捕捉方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种动作捕捉方法,其特征在于,所述方法包括:
分别获取至少两个视频流中同一时刻的图像帧,得到至少两个图像帧,所述至少两个视频流为基于不同视角拍摄的同一场景的同步视频;
对所述至少两个图像帧分别进行关节关键点检测,得到多个关节热力图,一个图像帧中包括的一个关节对应一个关节热力图,所述关节热力图的像素值用于表示各像素被检测为关节的概率;
对相同的关节对应的关节热力图分别进行融合,得到各图像帧中包括的各关节分别对应的融合热力图,根据各关节对应的融合热力图,确定各关节在对应的图像帧中的第一位置;
根据各图像帧中包括的各关节的第一位置,确定各关节在人体三维模型中的第二位置,得到人体三维姿态。
2.根据权利要求1所述的动作捕捉方法,其特征在于,所述对所述至少两个图像帧分别进行关节关键点检测,得到多个关节热力图,包括:
对于所述至少两个图像帧中的任一图像帧,对所述图像帧进行人体检测或人体跟踪中的至少一种,得到所述图像帧对应的至少一个人体图像;
对于所述图像帧对应的任一人体图像,对所述人体图像进行关节关键点检测,得到至少两个关节热力图。
3.根据权利要求2所述的动作捕捉方法,其特征在于,所述对所述人体图像进行关节关键点检测,得到至少两个关节热力图,包括:
将所述人体图像输入二维关键点检测网络;
基于所述二维关键点检测网络对所述人体图像进行关节关键点检测;
获取所述二维关键点检测网络输出的分别对应于不同关节的关节热力图。
4.根据权利要求3所述的动作捕捉方法,其特征在于,所述获取所述二维关键点检测网络输出的分别对应于不同关节的关节热力图之后,所述方法还包括:
对于任一关节热力图,将所述关节热力图由第一尺寸调整为第二尺寸,所述第一尺寸为所述二维关键点检测网络的输出尺寸,所述第二尺寸为所述关节热力图对应的人体图像的尺寸;
按照所述人体图像在对应的图像帧中的位置,在第二尺寸的关节热力图周围补充默认像素点,得到与所述图像帧相同尺寸的关节热力图。
5.根据权利要求1所述的动作捕捉方法,其特征在于,所述对相同的关节对应的关节热力图分别进行融合,得到各图像帧中包括的各关节分别对应的融合热力图,包括:
对于所述至少两个图像帧中的每个图像帧,将所述图像帧作为融合目标,获取除所述图像帧以外的至少一个其他图像帧作为融合源,得到至少一个融合源;
将所述至少一个融合源中包括的各关节对应的关节热力图分别与所述融合目标中包括的相同的关节进行融合,得到所述融合目标包括的各关节分别对应的融合热力图。
6.根据权利要求5所述的动作捕捉方法,其特征在于,所述将所述至少一个融合源中包括的各关节对应的关节热力图分别与所述融合目标中包括的相同的关节进行融合,包括:
响应于所述至少一个融合源为一个融合源,对于所述融合源包括的任一关节,对所述关节对应的关节热力图进行立体矫正变换,得到第一矫正热力图;
将所述第一矫正热力图中每行的像素值,设置为所述行的像素最大值,得到第二矫正热力图;
对所述融合目标中包括的所述关节对应的关节热力图进行立体矫正变换,得到第三矫正热力图;
对所述第二矫正热力图与所述第三矫正热力图中的元素进行几何平均处理,得到第四矫正热力图;
对所述第四矫正热力图进行立体矫正反变换,得到第五矫正热力图,将所述第五矫正热力图作为所述融合目标中包括的所述关节对应的融合热力图。
7.一种动作捕捉装置,其特征在于,所述装置包括:
图像获取单元,被配置为执行分别获取至少两个视频流中同一时刻的图像帧,得到至少两个图像帧,所述至少两个视频流为基于不同视角拍摄的同一场景的同步视频;
关节关键点检测单元,被配置为执行对所述至少两个图像帧分别进行关节关键点检测,得到多个关节热力图,一个图像帧中包括的一个关节对应一个关节热力图,所述关节热力图的像素值用于表示各像素被检测为关节的概率;
图像融合单元,被配置为执行对相同的关节对应的关节热力图分别进行融合,得到各图像帧中包括的各关节分别对应的融合热力图,根据各关节对应的融合热力图,确定各关节在对应的图像帧中的第一位置;
姿态确定单元,被配置为执行根据各图像帧中包括的各关节的第一位置,确定各关节在人体三维模型中的第二位置,得到人体三维姿态。
8.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
用于存储所述处理器可执行程序代码的存储器;
其中,所述处理器被配置为执行所述程序代码,以实现如权利要求1至6任一项所述的动作捕捉方法。
9.一种存储介质,其特征在于,当所述存储介质中的程序代码由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6任一项所述的动作捕捉方法。
10.一种应用程序,其特征在于,所述应用程序包括:
程序代码,所述程序代码存储在存储介质中,电子设备的处理器从所述存储介质读取所述程序代码,所述处理器执行所述程序代码,使得所述电子设备能够执行如权利要求1至6任一项所述的动作捕捉方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010743940.5A CN114093020A (zh) | 2020-07-29 | 2020-07-29 | 动作捕捉方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010743940.5A CN114093020A (zh) | 2020-07-29 | 2020-07-29 | 动作捕捉方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114093020A true CN114093020A (zh) | 2022-02-25 |
Family
ID=80294913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010743940.5A Pending CN114093020A (zh) | 2020-07-29 | 2020-07-29 | 动作捕捉方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114093020A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115661929A (zh) * | 2022-10-28 | 2023-01-31 | 北京此刻启动科技有限公司 | 一种时序特征编码方法、装置、电子设备及存储介质 |
-
2020
- 2020-07-29 CN CN202010743940.5A patent/CN114093020A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115661929A (zh) * | 2022-10-28 | 2023-01-31 | 北京此刻启动科技有限公司 | 一种时序特征编码方法、装置、电子设备及存储介质 |
CN115661929B (zh) * | 2022-10-28 | 2023-11-17 | 北京此刻启动科技有限公司 | 一种时序特征编码方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11205282B2 (en) | Relocalization method and apparatus in camera pose tracking process and storage medium | |
CN110544280B (zh) | Ar系统及方法 | |
CN108682038B (zh) | 位姿确定方法、装置及存储介质 | |
US11517099B2 (en) | Method for processing images, electronic device, and storage medium | |
CN110427110B (zh) | 一种直播方法、装置以及直播服务器 | |
CN110148178B (zh) | 相机定位方法、装置、终端及存储介质 | |
CN110599593B (zh) | 数据合成的方法、装置、设备及存储介质 | |
CN109558837B (zh) | 人脸关键点检测方法、装置及存储介质 | |
CN109522863B (zh) | 耳部关键点检测方法、装置及存储介质 | |
CN109302632B (zh) | 获取直播视频画面的方法、装置、终端及存储介质 | |
CN112581358B (zh) | 图像处理模型的训练方法、图像处理方法及装置 | |
CN111897429A (zh) | 图像显示方法、装置、计算机设备及存储介质 | |
CN111565309B (zh) | 显示设备及其畸变参数确定方法、装置、系统及存储介质 | |
CN112272311A (zh) | 花屏修复方法、装置、终端、服务器及介质 | |
CN113384880A (zh) | 虚拟场景显示方法、装置、计算机设备及存储介质 | |
CN111127541A (zh) | 车辆尺寸的确定方法、装置及存储介质 | |
CN113160031A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN114093020A (zh) | 动作捕捉方法、装置、电子设备及存储介质 | |
CN112967261B (zh) | 图像融合方法、装置、设备及存储介质 | |
CN111982293B (zh) | 体温测量方法、装置、电子设备及存储介质 | |
CN111757146B (zh) | 视频拼接的方法、系统及存储介质 | |
CN111127539B (zh) | 视差确定方法、装置、计算机设备及存储介质 | |
CN111179628B (zh) | 自动驾驶车辆的定位方法、装置、电子设备及存储介质 | |
CN110443841B (zh) | 地面深度的测量方法、装置及系统 | |
CN112767453B (zh) | 人脸跟踪方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |