CN110874865A - 三维骨架生成方法和计算机设备 - Google Patents

三维骨架生成方法和计算机设备 Download PDF

Info

Publication number
CN110874865A
CN110874865A CN201911111436.7A CN201911111436A CN110874865A CN 110874865 A CN110874865 A CN 110874865A CN 201911111436 A CN201911111436 A CN 201911111436A CN 110874865 A CN110874865 A CN 110874865A
Authority
CN
China
Prior art keywords
dimensional
video frame
loss function
position information
sequence
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
Application number
CN201911111436.7A
Other languages
English (en)
Inventor
杨博
王博
程禹
陈明辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911111436.7A priority Critical patent/CN110874865A/zh
Publication of CN110874865A publication Critical patent/CN110874865A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Architecture (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)

Abstract

本申请涉及一种三维骨架生成方法和计算机设备,所述方法包括:获取包括目标对象的视频帧序列;对所述视频帧序列中的各视频帧,分别确定所述视频帧中所述目标对象的关键点的原始位置信息;将所述视频帧序列中各视频帧对应的原始位置信息,分别输入至第一时间卷积网络,得到与各视频帧对应的、且经过修正后的二维位置信息;将所述视频帧序列中各视频帧对应的二维位置信息,分别输入至第二时间卷积网络,得到与各视频帧对应的三维位置信息;根据所述三维位置信息,确定与所述目标对象对应的三维骨架。本申请提供的方案可以提高三维骨架提取的准确性。

Description

三维骨架生成方法和计算机设备
技术领域
本申请涉及神经网络技术领域,特别是涉及一种三维骨架生成方法和计算机设备。
背景技术
三维骨架是处于三维空间中的生物模型的一种简洁的表征方式。三维骨架可以用来简洁且高效的表征目标对象的运动,其中,目标对象具体可以是人物或动物。因此三维骨架常常在游戏或视频中用来驱动虚拟对象,以实现虚拟对象执行相应的动作。
为了对游戏或者动画中的虚拟对象提供自然连贯的动作,目前常见的方法是雇佣演员,演员身上穿戴三维位置传感器,然后进行各种动作的表演,从而捕捉检测三维骨架的姿态。但这种三维骨架提取的方式常常由于雇佣的演员无法完成一些过于专业的动作,例如花样扣篮等动作,而导致三维骨架的提取大受限制,不够灵活。
发明内容
基于此,有必要针对传统方案中通过演员穿戴三维位置传感器,进行各种动作的表演,以捕捉检测三维骨架,导致动作提取受限不够灵活的技术问题,提供一种三维骨架生成方法、装置、计算机可读存储介质和计算机设备。
一种三维骨架生成方法,包括:
获取包括目标对象的视频帧序列;
对所述视频帧序列中的各视频帧,分别确定所述视频帧中所述目标对象的关键点的原始位置信息;
将所述视频帧序列中各视频帧对应的原始位置信息,分别输入至第一时间卷积网络,得到与各视频帧对应的、且经过修正后的二维位置信息;
将所述视频帧序列中各视频帧对应的二维位置信息,分别输入至第二时间卷积网络,得到与各视频帧对应的三维位置信息;
根据所述三维位置信息,确定与所述目标对象对应的三维骨架。
一种三维骨架生成装置,包括:
获取模块,用于获取包括目标对象的视频帧序列;
确定模块,用于对所述视频帧序列中的各视频帧,分别确定所述视频帧中所述目标对象的关键点的原始位置信息;
修正模块,用于将所述视频帧序列中各视频帧对应的原始位置信息,分别输入至第一时间卷积网络,得到与各视频帧对应的、且经过修正后的二维位置信息;
转换模块,用于将所述视频帧序列中各视频帧对应的二维位置信息,分别输入至第二时间卷积网络,得到与各视频帧对应的三维位置信息;
所述确定模块,还用于根据所述三维位置信息,确定与所述目标对象对应的三维骨架。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
获取包括目标对象的视频帧序列;
对所述视频帧序列中的各视频帧,分别确定所述视频帧中所述目标对象的关键点的原始位置信息;
将所述视频帧序列中各视频帧对应的原始位置信息,分别输入至第一时间卷积网络,得到与各视频帧对应的、且经过修正后的二维位置信息;
将所述视频帧序列中各视频帧对应的二维位置信息,分别输入至第二时间卷积网络,得到与各视频帧对应的三维位置信息;
根据所述三维位置信息,确定与所述目标对象对应的三维骨架。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
获取包括目标对象的视频帧序列;
对所述视频帧序列中的各视频帧,分别确定所述视频帧中所述目标对象的关键点的原始位置信息;
将所述视频帧序列中各视频帧对应的原始位置信息,分别输入至第一时间卷积网络,得到与各视频帧对应的、且经过修正后的二维位置信息;
将所述视频帧序列中各视频帧对应的二维位置信息,分别输入至第二时间卷积网络,得到与各视频帧对应的三维位置信息;
根据所述三维位置信息,确定与所述目标对象对应的三维骨架。
上述三维骨架生成方法、装置、计算机可读存储介质和计算机设备,通过对一组时序上连续的视频帧进行检测,以实现对目标对象的关键点进行初步预测,得到每一帧的关键点的原始位置信息。再将各关键点的原始位置信息输入到预训练的第一时间卷积网络中,以得到相对平滑稳定的二维位置信息。之后将二维位置信息进一步输入到预训练的第二时间卷积网络中,进行三维姿态的估计,从而从视频帧序列中提取出目标对象的三维骨架。这样,无需雇佣演员完成相应动作以采集三维坐标,即可从已有的视频数据中准确地提取出目标对象的三维骨架,提取出的三维骨架可辅助虚拟对象实现相应的动作,大大减少或消除对于雇佣演员进行动作捕捉的需求,使得三维骨架的提取不受场景条件的限制,大大提高了三维骨架提取的灵活性。
附图说明
图1为一个实施例中一种三维骨架生成方法的应用环境图;
图2为一个实施例中一种三维骨架生成方法的流程示意图;
图3A为一个实施例中将通过三维骨架生成方法所提取出的三维骨架应用于街头篮球游戏的界面展示图;
图3B为一个实施例中将通过三维骨架生成方法所提取出的三维骨架应用于炫舞游戏的设计中的界面展示图;
图4为一个实施例中对视频帧序列中的各视频帧,分别确定视频帧中目标对象的关键点的原始位置信息的步骤的流程示意图;
图5为一个具体实施例中三维骨架生成方法的流程示意图;
图6为一个实施例中三维骨架生成模型的训练步骤的流程示意图;
图7为一个实施例中获取视频帧样本序列、及视频帧样本序列中各视频帧对应的标注信息的步骤的流程示意图;
图8A为一个实施例中人体圆柱模型的结构图;
图8B为一个实施例中通过人体圆柱模型确定关键点是否被遮挡的参考示意图;
图9为一个具体实施例中三维骨架生成模型的训练步骤的流程示意图;
图10为一个实施例中三维骨架生成方法的流程示意图;
图11为一个实施例中三维骨架生成装置的结构框图;
图12为另一个实施例中三维骨架生成装置的结构框图;
图13为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中三维骨架生成方法的应用环境图。参照图1,该三维骨架生成方法应用于三维骨架生成***。该三维骨架生成***包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端110和服务器120均可单独用于执行本申请实施例中提供的三维骨架生成方法。终端110和服务器120也可协同用于执行本申请实施例中提供的三维骨架生成方法。
如图2所示,在一个实施例中,提供了一种三维骨架生成方法。本实施例主要以该方法应用于计算机设备来举例说明,该计算机设备具体可以是上述图1中的终端110或服务器120。参照图2,该三维骨架生成方法具体包括如下步骤:
S202,获取包括目标对象的视频帧序列。
其中,视频帧序列是一组在时序上连续的视频帧所组成的序列。目标对象是执行目标动作的对象,具体可以是虚拟对象、真实人物、或动物等。目标动作是具有一定动机和目的的角色肢***置的变化,比如偷懒的动作、跑步的动作、或跳高的动作等。具体地,计算机设备可获取本地摄像头采集的视频数据,或通过网络连接接收其他计算机设备发送的视频数据。计算机设备可从视频数据中截取包括执行目标动作的目标对象的视频帧序列。
S204,对视频帧序列中的各视频帧,分别确定视频帧中目标对象的关键点的原始位置信息。
其中,目标对象的关键点是用于确定目标对象的骨架的关键点,具体可以是目标对象的各个关节的位置点。比如,当目标对象是人物时,该目标对象的关键点具体可以是人体各个关节的位置点,比如,肩、肘、腕、颈、头、髋、胯、膝或踝等位置点。当目标对象是四脚动物时,该目标对象的关键点具体可以是动物各个关节的位置点,比如,颈、头、髋、膝或踝等位置点。
各关键点的原始位置信息是对目标对象的各关键点进行初步检测所确定的位置信息,可用来表示各关键点各自的粗略位置。各关键点的原始位置信息具体可以是各关键点的二维坐标、或者相对位置坐标等。其中,二维坐标是关键点在二维空间中的坐标;相对位置坐标是某个关键点在二维空间中相对于另外的关键点的坐标。
具体地,对于视频帧序列中的每帧视频帧,计算机设备可对各帧视频帧中出现的目标对象进行检测和跟踪,将对于每帧中每个独立的目标对象,计算机设备可根据检测的边界框(bounding box)截取包括有目标对象的区域,然后通过关键点检测算法,例如Stacked Hourglass(堆叠沙漏算法),检测目标对象的每个关键点的位置。其中,对目标对象进行检测和跟踪时,具体可采用Mask RCNN(Mask region with CNN,掩模区域卷积神经网络)或Pose Flow(人体姿态跟踪)等算法,当然也可以采用其他有效的算法,本申请实施例在此不做限定。
在一个实施例中,当目标对象为人物对象时,计算机设备可对视频帧序列中的每帧视频帧中的人物进行检测与跟踪。对于每帧中每个独立的人物,计算机设备可根据检测的bounding box截取周围的区域,并将其归一化到统一大小。然后使用自上而下的关键点检测算法,检测目标人体的每个关键点的位置。
在一个实施例中,步骤S204,也就是确定各视频帧中目标对象的各关键点的原始位置信息的步骤具体包括以下步骤:对视频帧序列中的各视频帧,分别检测视频帧所包括的候选对象;从各视频帧所包括的候选对象中,筛选出执行目标动作的目标对象;确定各视频帧中目标对象的各关键点的原始位置信息。
具体地,对于视频帧序列中的各视频帧,计算机设备可分别通过目标检测算法检测该视频帧中出现的对象,并通过边界框框出各个对象。并且,计算机设备可确定各个对象所属的类别。计算机设备将属于目标类别的对象作为候选对象,并从候选对象中筛选出执行目标动作的候选对象作为目标对象。计算机设备可对各视频帧中的目标对象的关键点进行检测,确定各关键点对应的原始位置信息。其中,各个对象所属的类别,比如人物、猫、狗、树、桌子等类别,计算机设备可检测出视频帧中出现的不同的对象并进行区分。当目标类别为人物类别时,计算机设备可将视频帧中出现的不同的人物均作为候选对象。
在一个实施例中,当目标类别为人物类别时,计算机设备可对于视频中每帧进行人的检测,然后将不同的人通过跟踪的方法来区分。其中,目标检测算法可采用Mask RCNN算法,跟踪算法可采用Pose Flow算法。当然,其他的任何性能可靠的检测与跟踪算法均可以在这里采用,本申请实施例对此不做限定。
在一个实施例中,计算机设备可通过预先训练好的卷积网络对视频帧序列中的各视频帧进行目标对象的检测和跟踪,在每帧视频帧中对于每个人进行检测得到了一个矩形边界框后,计算机设备可将矩形边界框扩大成以矩形长边为边长的中心点不变的正方形边界框,进一步对正方形边界框所确定的区域进行缩放处理,得到标准图像。进而,计算机设备可通过预先训练好深度卷积网络,比如Stacked Hourglass网络进行关键点检测和估计。可以理解,对于本实施例中所提及的进行目标检测和跟踪、以及关键点检测的网络结构,可通过常规的训练方式进行训练,并直接使用训练好的上述网络结构。对于本申请实施例所提及的第一时间卷积网络和第二时间卷积网络,在训练过程中,可冻住预先训练好的上述进行目标检测和跟踪、以及关键点检测的网络结构的网络参数,仅对处于训练过程中的第一时间卷积网络和第二时间卷积网络的网络参数进行调整,来实现整个三维骨架生成模型的训练。具体地关于三维骨架生成模型的训练方式在后面的实施例中会详细进行说明。
在一个实施例中,计算机设备在对各视频帧中的关键点进行检测时,会存在某些关键点被遮挡的情况,这些被遮挡的关键点可以称作无效关键点,而未被遮挡的关键点则为有效关键点。在这种情况下,计算机设备可直接将被遮挡的无效关键点的原始位置信息置为原点坐标(0,0),而不采用检测出的位置坐标。其中,关于如何确定有效关键点的原始位置信息的具体方式在后面的实施例中会进行详细的描述。
上述实施例中,可从各视频帧所包括的候选对象中,准确地筛选出执行目标动作的目标对象,进而再进行后续三维骨架的提取,从而使得从各视频帧中提取出的三维骨架,按照各视频帧组成视频帧序列的时序,构成与目标动作对应的三维骨架。
S206,将视频帧序列中各视频帧对应的原始位置信息,分别输入至第一时间卷积网络,得到与各视频帧对应的、且经过修正后的二维位置信息。
其中,时间卷积网络(Temporal Convolutional Networks)是一种能够处理时间序列的输入数据的网络结构,可以根据一个已知序列出现的先后顺序去预测对应的输出。第一时间卷积网络是用于对各视频帧中目标对象的关键点对应的原始位置信息进行修正的时间卷积网络。第二时间卷积网络是用于将二维位置信息转换成三维位置信息的时间卷积网络。二维位置信息是关键点处于二维空间时的位置信息,具体可以是二维位置坐标。三维位置信息是关键点处于三维空间时的位置信息,具体可以是三维位置坐标。
需要说明的是,原始位置信息和二维位置信息均是处于二维空间中的位置信息,不同的是,原始位置信息是对目标对象的各关键点进行初步检测所确定的位置信息,可能存在检测误差。而二维位置信息是对原始位置进行修正后的位置信息,二维位置信息对于关键点的位置估计会更加的时序平滑与准确。三维位置信息是关键点处于三维空间中的位置信息,可以理解为将二维位置信息映射至三维空间所得到的三维位置信息。举例说明,计算机设备可对某一帧视频帧中目标对象进行关键点检测,得到关键点A对应的原始位置信息为(X1,Y1)。计算机设备将视频帧序列中各关键点对应的原始位置信息输入至第一时间卷积网络后,第一时间卷积网络可融合各个视频帧间的时序信息,输出经过修正后的该关键点A对应的二维位置信息为(X2,Y2)。计算机设备将视频帧序列中各关键点对应的二维位置信息输入至第二时间卷积网络后,输出该关键点A对应的三维位置信息为(X3,Y3,Z1)。
具体地,计算机设备可将各视频帧对应的原始位置信息,按照相应视频帧组成视频帧序列的时序,依次输入至预训练的第一时间卷积网络。通过第一时间卷积网络中多于一层的卷积层,对某帧视频预测对应的输出时,融合前若干帧视频帧和后若干帧视频帧的信息,得到该帧视频帧对应的预测输出,也就是本申请实施例所提及的经过修正后的二维位置信息。这样,通过第一时间卷积网络,可分别输出与视频帧序列中各视频帧分别对应的二维位置信息。可以理解,此处的二维位置信息是各视频帧中目标对象的各关键点对应的位置信息。
在一个实施例中,原始位置信息包括二维原始坐标;二维位置信息包括二维修正坐标;步骤S206,也就是将视频帧序列中各视频帧对应的原始位置信息,分别输入至预训练的第一时间卷积网络,得到与各视频帧对应的、且经过修正后的二维位置信息的步骤具体包括:对于每帧视频帧,拼接视频帧中的各关键点对应的二维原始坐标,得到对应的第一向量;按视频帧组成视频帧序列的时序,依次将各视频帧对应的第一向量输入至预训练的第一时间卷积网络;对于每帧视频帧,通过第一时间卷积网络中多于一层的卷积层,融合视频帧的前序视频帧和后序视频帧的信息,得到视频帧对应的、且经过修正后的第二向量;第二向量用于表示二维修正坐标。
在一个实施例中,对于每帧视频帧,计算机设备对接视频帧中的各关键点对应的二维原始坐标进行平展拼接,得到对应的第一向量。比如,当目标对象存在17个关键点时,各个关键点对应的二维原始坐标为:关键点1(x1,y1);关键点2(x2,y2)……关键点17(x17,y17)。计算机设备可将这17个关键点的二维原始坐标分别展平,并拼接得到一个34维的第一向量。第一向量可表示为H1(x1,y1,x2,y2,...,x17,y17)或H2(x1,x2,…x17,y1,y2,…,y17)。
进而,计算机设备可按照各视频帧组成视频帧序列的时序,依次将各视频帧对应的第一向量输入至预训练的第一时间卷积网络。对于每帧视频帧,通过第一时间卷积网络中多于一层的卷积层,融合视频帧的前序视频帧和后序视频帧的信息,得到与相应视频帧对应的、且经过修正后的第二向量。其中,第二向量可用于表示二维修正坐标。
在一个实施例中,这样在时间轴上,计算机设备可对一系列的第一向量进行一维卷积,通过若干卷积层后对于每帧视频帧均输出一个新的第二向量。其中,第二向量和第一向量的维度保持不变,但第二向量对于关键点的位置信息的估计会更加的时序平滑与准确。而对于前述实施例所提及的无效关键点对应的坐标,第一时间卷积网络并不会更新这些无效关键点的置零坐标。
上述实施例中,通过第一时间卷积网络中多于一层的卷积层,对视频帧序列中各视频帧对应的关键点的原始位置信息进行处理,可以融合视频帧的前序视频帧和后序视频帧的信息,得到各视频帧对应的关键点的二维修正坐标,该二维修正坐标更加时序平滑与准确。
S208,将视频帧序列中各视频帧对应的二维位置信息,分别输入至预训练的第二时间卷积网络,得到与各视频帧对应的三维位置信息。
具体地,计算机设备可将各视频帧对应的二维位置信息,按照相应视频帧组成视频帧序列的时序,依次输入至预训练的第二时间卷积网络。通过第二时间卷积网络中多于一层的卷积层,对某帧视频帧预测对应的输出时,融合前若干帧视频帧和后若干帧视频帧的信息,得到该帧视频帧对应的预测输出,也就是本申请实施例所提及三维位置信息。这样,通过第二时间卷积网络,可分别输出与视频帧序列中各视频帧分别对应的三维位置信息。可以理解,此处的三维位置信息是各视频帧中目标对象的各关键点对应的在三维空间中的位置信息。
在一个实施例中,三维位置信息包括三维位置坐标;步骤S208,也就是将视频帧序列中各视频帧对应的二维位置信息,分别输入至预训练的第二时间卷积网络,得到与各视频帧对应的三维位置信息的步骤具体包括:按视频帧组成视频帧序列的时序,依次将各视频帧对应的第二向量输入至预训练的第二时间卷积网络;对于每帧视频帧,通过第二时间卷积网络中多于一层的卷积层,融合视频帧的前序视频帧和后序视频帧的信息,得到视频帧对应的第三向量;第三向量用于表示三维位置坐标。
在一个实施例中,计算机设备可按照各视频帧组成视频帧序列的时序,依次将各视频帧对应的第二向量输入至预训练的第二时间卷积网络。对于每帧视频帧,通过第二时间卷积网络中多于一层的卷积层,融合视频帧的前序视频帧和后序视频帧的信息,得到与相应视频帧对应的第三向量。其中,第三向量可用于表示三维修正坐标。第二时间卷积网络在进行处理时,对于所有的关键点,无论可靠与否,都会给出最终的预测。
可以理解,第三向量可用于表示三维修正坐标,那相应的,第三向量所包括的元素,必然是第二向量所包括元素的数量的1.5倍。比如,当目标对象有17个关键点时,每帧视频帧对应的第二向量就是一个34维的向量,那么相应的,每帧视频帧对应的第三向量就是一个51维的向量。
在一个实施例中,第二时间卷积网络和第一时间卷积网络可以具有相同的网络结构,但最后一层的卷积层,第二时间卷积网络的卷积核(filter)的数量是第一时间卷积网络的卷积核的数量的1.5倍。比如,第一时间卷积网络的最后一层有34个filter,而第二时间卷积网络的最后一层有51个filter。当然,第一时间卷积网络和第二时间卷积网络的网络结构也可以存在差异,本申请实施例对此并不进行限定。
关于上述第一时间卷积网络和第二时间卷积网络,在使用前,会采用二维三维数据并用的半监督式学习方法进行训练,已得到具有良好效果的训练好的第一时间卷积网络和第二时间卷积网络。关于第一时间卷积网络和第二时间卷积网络的训练过程,在后面的实施例中会进行详细阐述。
上述实施例中,通过第二时间卷积网络中多于一层的卷积层,对视频帧序列中各视频帧对应的关键点的二维位置信息进行处理,可以融合视频帧的前序视频帧和后序视频帧的信息,得到各视频帧对应的关键点的三维位置信息。这样,通过第二时间卷积网络可以预测出各个关键点对应的三维坐标。
S210,根据三维位置信息,确定与目标对象对应的三维骨架。
具体地,计算机设备可确定视频帧序列中各视频帧中目标对象对应的关键点的三维位置信息,将各视频帧所对应的各关键点连接起来以生成与目标对象对应的三维骨架。将各关键点连接起来得到的三维骨架可以确定该目标对象在三维空间中的姿态。这样,按照各视频帧组成视频帧序列的时序,计算机设备可根据各视频帧对应的三维骨架,提取出执行目标动作的三维骨架。
在一个实施例中,计算机设备通过第二时间卷积网络的处理,得到与各视频帧对应的第三向量。按照预先对接视频帧中的各关键点对应的二维原始坐标进行平展拼接反向的方式,从第三向量中提取出各个关键点各自对应的三维坐标。并基于各关键点对应的三维坐标,在三维空间中连接各关键点,得到目标对象在三维空间中的三维骨架。
在一个实施例中,该三维骨架生成方法还包括实现虚拟对象执行目标动作的步骤,该步骤具体包括:获取预设定的虚拟对象;将虚拟对象的三维骨架,按照视频帧序列中各视频帧对应的三维骨架进行调整,以实现虚拟对象执行目标动作。
具体地,计算机设备可从视频数据中提取执行目标动作的三维骨架。计算机设备可获取预先设定的虚拟对象,该虚拟对象具体可以是虚拟人物,如游戏人物或动画人物等。计算机设备将该虚拟对象的三维骨架,按照提取出的三维骨架进行调整,以实现该虚拟对象执行对应的目标动作。这样,计算机设备可通过提取出的该三维骨架,还原各种现实场景下的动作。比如,对于游戏应用而言,计算机设备可通过网络上大量的视频进行动作的提取,并将提取出的动作运用与如街头篮球或者炫舞等游戏的动作设计中。这样,这样通过网络上大量的视频进行动作的提取,可以大幅降低成本,同时更真实的还原各种现实场景下的动作。
参考图3A和3B,图3A为一个实施例中,将通过上述三维骨架生成方法所提取出的三维骨架应用于如街头篮球游戏的设计中的界面展示图。参考图3A,在该游戏场景中,可使得虚拟对象301的三维骨架按照提取出的三维骨架进行调整,以实现该虚拟对象301执行相应的目标动作。比如,计算机设备可获取篮球运动员进行投篮动作的视频,对该视频执行本申请实施例所提及的三维骨架生成方法,得到该篮球运动员进行投篮动作时的人体三维骨架。进而将该人体三维骨架应用于该街头篮球的游戏设计中,使得街头篮球游戏的游戏角色根据该人体三维骨架执行相应的投篮动作。图3B为一个实施例中,将通过上述三维骨架生成方法所提取出的三维骨架应用于如炫舞游戏的设计中的界面展示图。参考图3B,在该游戏场景中,可使得虚拟对象302的三维骨架按照提取出的三维骨架进行调整,以实现该虚拟对象302执行相应的目标动作。比如,计算机设备可获取舞蹈演员进行跳舞的视频,对该视频执行本申请实施例所提及的三维骨架生成方法,得到该舞蹈演员进行跳舞时的人体三维骨架。进而将该人体三维骨架应用于该炫舞的游戏设计中,使得炫舞游戏的游戏角色根据该人体三维骨架执行相应的舞蹈动作。
上述三维骨架生成方法,通过对一组时序上连续的视频帧进行检测,以实现对目标对象的关键点进行初步预测,得到每一帧的关键点的原始位置信息。再将各关键点的原始位置信息输入到预训练的第一时间卷积网络中,以得到相对平滑稳定的二维位置信息。之后将二维位置信息进一步输入到预训练的第二时间卷积网络中,进行三维姿态的估计,从而从视频帧序列中提取出目标对象的三维骨架。这样,无需雇佣演员完成相应动作以采集三维坐标,即可从已有的视频数据中准确地提取出目标对象的三维骨架,提取出的三维骨架可辅助虚拟对象实现相应的动作,大大减少或消除对于雇佣演员进行动作捕捉的需求,使得三维骨架的提取不受场景条件的限制,大大提高了三维骨架提取的灵活性。
在一个实施例中,步骤S204,也就是对视频帧序列中的各视频帧,分别确定视频帧中目标对象的关键点的原始位置信息的步骤具体包括:
S402,从视频帧序列的各视频帧中,分别确定包括目标对象的标准图像。
其中,标准图像是具有预设尺寸的图像。具体地,计算机设备可对视频帧序列中的各视频帧分别进行目标检测,从各视频帧中划分出包括目标对象的区域,并将划分出的区域调整至标准尺寸,得到标准图像。
在一个实施例中,该步骤S402具体包括:对视频帧序列中的各视频帧分别进行目标检测,确定各视频帧中包括目标对象的矩形边界框;对于每帧视频帧,分别将对应的矩形边界框调整为以矩形边界框的长边为边长、且中心点不变的正方形边界框;对于每帧视频帧,分别对相应的正方形边界框所确定的区域进行归一化处理,得到包括有目标对象的标准图像。
具体地,计算机设备可对各视频帧分别进行目标检测,确定各视频帧中出现的不同对象,其中,视频帧中被检测出的对象会被相应大小的边界框标记出来。计算机设备可从标记不同对象的边界框中筛选出包括有目标对象的矩形边界框。进而,为避免目标对象的比例失真,计算机设备可将矩形边界框调整为以该矩形边界框的长边为边长、且中心点不变的正方形边界框。再对该正方形边界框所确定的区域进行归一化处理,比如,将正方形边界框所确定的区域缩放至预先设置的标准尺寸,比如256*256,从而得到包括有目标对象的标准图像。
上述实施例中,从各视频帧中提取出包括有目标对象的区域,并进行归一化处理,得到具有标准尺寸的标准图像,便于后续步骤中方便准确地对包括有目标对象的标准图像进行关键的检测。
S404,对每张标准图像分别进行关键点检测,得到各标准图像中不同关键点各自对应的热度图;热度图的值表示标准图像中相应位置被检测为关键点的确信度。
具体地,计算机设备可采用关键点检测算法,比如Stacked Hourglass算法,对每张标准图像进行关键点检测。也就是对目标对象进行关键的估计。计算机设备在进行关键点检测的过程中,会输出对各个关键点估计的热度图,分别对应不同关键点的分布概率。其中,每个热度图中的值,分别表示标准图像中相应位置被检测为关键点的确信度。
比如,当关键点有17个时,对于每张标准图像,计算机设备可分布输出17个热度图,分别对应17个关键点的分布概率。对于每个关键点对应的热度图,计算机设备可选取其中的最大值作为当前关键点的位置的估计。
S406,根据关键点对应的热度图的峰值,确定各视频帧中目标对象的关键点的原始位置信息。
具体地,对于每个关键点,计算机设备可选取其对应热度图的峰值所对应的位置坐标作为当前关键点的原始位置信息。
在一个实施例中,步骤S406,也就是根据关键点对应的热度图的峰值,确定各视频帧中目标对象的关键点的原始位置信息的步骤具体包括:对于每帧视频帧,当视频帧中的关键点对应的热度图的峰值大于或等于预设阈值时,将峰值对应位置的坐标作为相应关键点的原始位置信息;对于每帧视频帧,当视频帧中的关键点对应的热度图的峰值小于预设阈值时,将原点坐标作为相应关键点的原始位置信息。
在一个实施例中,热度图中的值本身代表了对关键点估计的确信度,热度图中的值越高,表示该位置被检测为关键点的可能性越大。当热度图的峰值大于或等于预设阈值,计算机设备可将该峰值对应位置的坐标作为相应关键点的原始位置信息。其中,该峰值对应位置的坐标(x,y)具体可以是以标准图像的左下角位置为原点所确定的坐标。当该峰值小于预设阈值,那么该关键点有可能由于被遮挡而导致检测的可靠性降低,不够准确,可确定该关键点为无效关键点。因而计算机设备可将该关键点的坐标抑制为零(0,0),也就是将原点坐标作为无效关键点的原始位置信息。这样,将不可靠的关键点的位置信息置零,在后续通过第一时间卷积网络和第二时间网络处理时,就可以通过其他的有效关键点的原始位置信息来估计整体序列的三维位置信息,大大提高了三维位置信息的准确性。
上述实施例中,对包括有目标对象的标准图像进行关键点检测,可快速准确地确定各个关键点对应的热度图,从而根据热度图可以直观准确的确定关键点的原始位置信息。
在一个具体的实施例中,该三维骨架生成方法具体包括以下步骤:
S502,获取包括目标对象的视频帧序列。
S504,对视频帧序列中的各视频帧,分别检测视频帧所包括的候选对象。
S506,从各视频帧所包括的候选对象中,筛选出执行目标动作的目标对象。
S508,对各视频帧分别进行目标检测,确定各视频帧中包括目标对象的矩形边界框。
S510,对于每帧视频帧,分别将对应的矩形边界框调整为以矩形边界框的长边为边长、且中心点不变的正方形边界框。
S512,对于每帧视频帧,分别对相应的正方形边界框所确定的区域进行归一化处理,得到包括有目标对象的标准图像。
S514,对每张标准图像分别进行关键点检测,得到各标准图像中不同关键点各自对应的热度图;热度图的值表示标准图像中相应位置被检测为关键点的确信度。
S516,对于每帧视频帧,当视频帧中的关键点对应的热度图的峰值大于或等于预设阈值时,将峰值对应位置的坐标作为相应关键点的二维原始坐标。
S518,对于每帧视频帧,当视频帧中的关键点对应的热度图的峰值小于预设阈值时,将原点坐标作为相应关键点的二维原始坐标。
S520,对于每帧视频帧,拼接视频帧中的各关键点对应的二维原始坐标,得到对应的第一向量。
S522,按视频帧组成视频帧序列的时序,依次将各视频帧对应的第一向量输入至预训练的第一时间卷积网络。
S524,对于每帧视频帧,通过第一时间卷积网络中多于一层的卷积层,融合视频帧的前序视频帧和后序视频帧的信息,得到视频帧对应的、且经过修正后的第二向量;第二向量用于表示二维修正坐标。
S526,按视频帧组成视频帧序列的时序,依次将各视频帧对应的第二向量输入至预训练的第二时间卷积网络。
S528,对于每帧视频帧,通过第二时间卷积网络中多于一层的卷积层,融合视频帧的前序视频帧和后序视频帧的信息,得到视频帧对应的第三向量;第三向量用于表示三维位置坐标。
S530,根据三维位置坐标,确定与目标对象对应的三维骨架。
S532,获取预设定的虚拟对象。
S534,将虚拟对象的三维骨架,按照视频帧序列中各视频帧对应的三维骨架进行调整,以实现虚拟对象执行目标动作。
上述三维骨架生成方法,通过对一组时序上连续的视频帧进行检测,以实现对目标对象的关键点进行初步预测,得到每一帧的关键点的原始位置信息。再将各关键点的原始位置信息输入到预训练的第一时间卷积网络中,以得到相对平滑稳定的二维位置信息。之后将二维位置信息进一步输入到预训练的第二时间卷积网络中,进行三维姿态的估计,从而从视频帧序列中提取出目标对象的三维骨架。这样,无需雇佣演员完成相应动作以采集三维坐标,即可从已有的视频数据中准确地提取出目标对象的三维骨架,提取出的三维骨架可辅助虚拟对象实现相应的动作,大大减少或消除对于雇佣演员进行动作捕捉的需求,使得三维骨架的提取不受场景条件的限制,大大提高了三维骨架提取的灵活性。
图5为一个实施例中三维骨架生成方法的流程示意图。应该理解的是,虽然图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,该三维骨架生成方法通过三维骨架生成模型执行,三维骨架生成模型包括第一时间卷积网络和第二时间卷积网络;三维骨架生成模型通过视频帧样本序列、以及视频帧样本序列中各视频帧所包括的样本对象的关键点对应的标注信息训练得到,其中,视频帧样本序列包括第一视频帧样本序列和第二视频帧样本序列,标注信息包括与第一视频帧样本序列中各第一视频帧对应的二维标注信息、以及与第二视频帧样本序列中各第二视频帧对应的二维标注信息和三维标注信息。
在一个实施例中,该三维骨架生成模型还包括用于执行目标检测和跟踪、以及关键点检测的网络结构,这部分网络结构可通过常规的训练方式提前训练好。在对三维骨架生成模型进行训练的过程中,可保持上述的网络结构的网络参数不变,只调整待训练的第一时间卷积网络和第二时间卷积网络的网络参数,这样,可以大大提高模型训练的效率。
在一个实施例中,该三维骨架生成模型的训练步骤包括以下步骤:
S602,获取视频帧样本序列、及视频帧样本序列中各视频帧对应的标注信息。
其中,视频帧样本序列、及视频帧样本序列中各视频帧对应的标注信息均为训练数据。视频帧样本序列包括有执行样本动作的样本对象,该视频帧样本序列包括第一视频帧样本序列和第二视频帧样本序列。第一视频帧样本序列中各第一视频帧对应的标注信息是对各第一视频帧所包括的样本对象的关键点进行二维标注的二维标注信息。第二视频帧样本序列中各第二视频帧对应的标注信息是对各第二视频帧所包括的样本对象的关键点进行二维标注的二维标注信息、以及进行三维标注的三维标注信息。
具体地,计算机设备可从网络上公开的数据集中获取本申请实施例所需的训练数据。或者,计算机设备可从本地或其他计算机设备处获取视频帧样本序列,并通过人工标注或机器标注的方式,对各视频帧中的样本对象的关键点进行标注,得到对应的标注信息。
在一个实施例中,步骤S602,也就是获取视频帧样本序列、及视频帧样本序列中各视频帧对应的标注信息的步骤具体包括步骤S702-S708,具体说明如下:
S702,获取第一视频帧样本序列、以及对第一视频帧样本序列中各第一视频帧所包括的样本对象的关键点进行二维标注的二维标注信息。
在一个实施例中,第一视频帧样本序列具体可以是从网络中获取的包括有样本对象的视频数据,或者是计算机设备通过摄像头采集的包括有样本对象的视频数据。通过人工标注或机器标注的方式,对每帧视频帧中的样本对象的有效关键点进行标注,得到该关键点的二维标注坐标,该二维标注坐标即二维标注信息。可以理解,此处的有效关键点是指第一视频帧中未被遮挡的、人眼可见的关键点。而对于第一视频帧中的无效关键点,也就是被遮挡的、人眼不可见的关键点的位置坐标置零。
S704,获取第二视频帧样本序列、以及通过三维传感器采集的第二视频帧序列中各第二视频帧所包括的样本对象的关键点对应的三维标注信息。
在一个实施例中,第二视频帧样本序列具体可以是对用户穿戴三维传感器在室内动作捕捉室里进行录制得到的,通过用户身上穿戴的三维传感器可直接获取关键点对应的三维标注坐标,该三维标注坐标即是三维标注信息。
S706,结合采集的三维标注信息和预设三维模型,确定第二视频帧序列中各第二视频帧对应的关键点中的无效关键点和有效关键点。
其中,预设三维模型具体可以是在三维空间中具有立体形态的生物模型。比如,当样本对象为人物时,该预设三维模型具体可以是人体圆柱模型,该人体圆柱模型可以用于模拟人体在三维空间中的形态,在三维空间中占据有一定的空间。在其他的实施例中,计算机设备对于人体的三维空间占据的估计可以采用除了圆柱模型以外的其他方法,例如SMPL(skinned multi-person linear model,皮肤多人线性模型,一种人体三维模型)等,本申请实施例在此不做限定。
具体地,计算机设备可通过预设三维模型,结合所采集的各关键点对应的三维标注信息,判断各关键点在预设三维模型中是否有被遮挡。其中,被遮挡的关键点即为无效关键点,未被遮挡的关键点即为有效关键点。被遮挡是指从给定视角处观察,该关键点被预设三维模型的其他部位所遮挡,从该视角处无法观察到该关键点。
参考图8A和图8B,图8A为一个实施例中人体圆柱模型的结构图。可用该人体圆柱模型对人体的不同部位进行近似,其目的在于判断在给定的一个三维骨架的情况下哪些关键点被遮挡。对于任意一个三维骨架,计算机设备可通过该圆柱模型来近似人体在三维空间中的占有部分。参考图8B,图8B为一个实施例中通过人体圆柱模型确定关键点是否被遮挡的参考示意图。如图8B所示,当给定一个视角时,对于任意一个关键点P,将该关键点与观测点通过线段连接,如果该线段穿过至少一个圆柱部分,则计算机设备可判定此关键点(比如图8B中的关键o)被遮挡。
S708,将坐标原点对应的位置信息作为无效关键点对应的二维标注信息,并根据三维标注信息确定关键点中有效关键点对应的二维标注信息。
具体地,计算机设备可将被遮挡的无效关键点置零,将坐标原点对应的位置信息作为无效关键点对应的二维标注信息。对于有效关键点,计算机设备可获取采集三维标注信息时所定义的摄像头的视角,确定对应的旋转平移矩阵。该旋转平移矩阵用于表示摄像头的视角方位。通过将关键点对应的三维坐标乘以该旋转平移矩阵,即可得到对应的二维标注坐标,该二维标注坐标即有效关键点对应的二维标注信息。
可以理解,在模型训练过程中,由于三维标注信息对应的训练数据数量很少,训练的时候往往需要大量的二维数据作为补充。传统方法在训练中无法在遮挡问题上在二维数据上进行数据的扩充。但本申请所提及的方式,通过预设三维模型判断哪些关键点被遮挡,从而可修正被遮挡的关键点的二维数据,抑制被遮挡的关键点二维标注信息为零,从而可以大大提高模型训练的准确性。
S604,将视频帧样本序列作为三维骨架生成模型的样本输入,并输入至三维骨架生成模型中进行训练。
具体地,计算机设备可将视频帧样本序列作为三维骨架生成模型的样本输入,在三维骨架生成模型的训练过程中,分别将第一视频帧样本序列和第二视频帧样本序列输入至待训练的三维骨架生成模型中进行训练。
S606,通过三维骨架生成模型中的第一时间卷积网络,确定与样本输入对应的预测二维位置信息,并通过三维骨架生成模型中的第二时间卷积网络确定与样本输入对应的预测三维位置信息。
具体地,计算机设备可通过三维骨架生成模型对输入的视频帧样本序列中的各视频帧进行处理,分别确定各视频帧中样本对象的关键点的原始位置信息。进而将与样本输入对应的原始位置信息输入至该三维骨架生成模型中的待训练的第一时间卷积网络,通过第一时间卷积网络的处理,得到与样本输入对应的预测二维位置信息。将该预测二维信息输入至该三维骨架生成模型的待训练的第二时间卷积网络中,通过三维骨架生成模型中的第二时间卷积网络确定与样本输入对应的预测三维位置信息。
S608,根据预测二维位置信息、预测三维位置信息和标注信息,分别构建与第一视频帧样本序列对应的第一损失函数、以及与第二视频帧样本序列对应的第二损失函数。
具体地,当样本输入为第一视频帧样本序列时,计算机设备可根据与该样本输入对应的预测二维位置信息、预测三维位置信息、以及二维标注信息,构建第一损失函数,并通过第一损失函数来训练第一时间卷积网络和第二时间卷积网络。当样本输入为第二视频帧样本序列时,计算机设备可根据与该样本输入对应的预测二维位置信息、预测三维位置信息、以及二维标注信息和三维标注信息,构建第二损失函数,并通过第二损失函数来训练第一时间卷积网络和第二时间卷积网络。
其中,该步骤在图6中未示出,图6中示出的是关于该步骤更细致的步骤S608A-S608C进行说明的。关于步骤S608A-S608C将会在下面的实施例中进行详细说明。
S610,对于不同的样本输入,分别执行相应的损失函数,并根据相应损失函数的执行结果调整第一时间卷积网络和第二时间卷积网络的网络参数并继续训练,直至满足训练停止条件时停止训练。
其中,训练停止条件是结束模型训练的条件。训练停止条件可以是达到预设的迭代次数,或者是调整网络参数后的三维骨架生成模型的性能指标达到预设指标。调整三维骨架生成模型的网络参数,是对三维骨架生成模型中的第一时间卷积网络和第二时间卷积网络的网络参数进行调整。
具体地,对于不同的样本输入,计算机设备可分别执行相应的损失函数,并根据相应损失函数的执行结果调整第一时间卷积网络和第二时间卷积网络的网络参数并继续训练,直至满足训练停止条件时停止训练。比如,在当前的样本输入为第一视频帧样本序列时,计算机设备可根据第一损失函数对第一时间卷积网络和第二时间卷积网络的网络参数进行调整。在当前的样本输入为第二视频帧样本序列时,计算机设备可根据第二损失函数对第一时间卷积网络和第二时间卷积网络的网络参数进行调整。
可以理解,在每次训练的过程中,对于每个损失函数,计算机设备可朝着减小相应的预测结果和标注信息之间的差异的方向,调整网络参数。这样,通过不断的输入视频帧样本序列,得到对应的预测二维位置信息和预测三维位置信息,根据上述的损失函数调整网络参数,以训练三维骨架生成模型,得到训练好的三维骨架生成模型。
继续参考图6,在一个实施例中,步骤S608,也就是根据预测二维位置信息、预测三维位置信息和标注信息,分别构建与第一视频帧样本序列对应的第一损失函数、以及与第二视频帧样本序列对应的第二损失函数的步骤,具体包括步骤S608A-S608C,详细如下:
S608A,根据与样本输入对应的二维标注信息和预测二维位置信息的差异,构建二维关键点损失函数。
具体地,对于样本输入中的每帧视频帧样本,计算机设备可分别根据与该帧视频帧样本对应的二维标注信息和预测二维位置信息的差异,构建二维关键点损失函数。其中,二维标注信息和预测二维位置信息的差异,具体可以是每个估计出的关键点的预测二维坐标与实际的二维标注坐标之间的相对距离。这里,计算机设备可仅对于可见部分的有效关键点进行损失函数的计算,不可见的无效关键点不列入计算。
在一个实施例中,各视频帧样本对应的二维关键点损失,可叠加各个关键点的预测二维坐标与实际的二维标注坐标的内积,其中,预测二维坐标与实际的二维标注坐标的内积可通过2范数的平方进行计算得到。该二维关键点损失函数可通过以下公式表示:
Figure BDA0002272816870000211
其中,
Figure BDA0002272816870000212
表示单帧视频帧样本对应的二维关键点损失;i表示第i个关键点,K表示共有K个关键点;Mi表示第i个关键点的二维标注坐标;
Figure BDA0002272816870000213
表示第i个关键点的预测二维坐标。
对于整个视频帧样本序列而言,其样本输入对应的二维关键点损失函数的计算方式,可叠加各个视频帧样本对应的二维关键点损失函数。其中,叠加的方式具体可采用直接将各个视频帧样本对应的二维关键点损失进行相加,或者按预设的加权系数进行加权求和等方式,本申请实施例在此不做限定。
S608B,当样本输入为第一视频帧样本序列时,将与样本输入对应的预测三维位置信息映射回二维空间,得到对应的映射二维位置信息,并根据与样本输入对应的二维标注信息和映射二维位置信息的差异,构建二维映射损失函数,并依据二维关键点损失函数和二维映射损失函数构建第一损失函数。
具体地,在对三维骨架生成模型的训练过程中,训练数据是一批一批输入到模型中并进行训练的。在当前的样本输入为第一视频帧样本序列时,很显然第一视频样本序列的标注信息仅有二维标注信息。此时,对于输入的每帧第一视频帧,计算机设备可将与当前的样本输入对应的预测三维位置信息映射回二维空间,得到对应的映射二维位置信息。比如,在当前的预测三维位置信息为预测三维坐标(x,y,z)时,计算机设备可去掉z,使用(x,y)作为映射二维坐标。
进而,计算机设备可并根据与当前的样本输入,也就是第一视频帧样本序列中各第一视频帧分别对应的二维标注信息和映射二维位置信息的差异,构建二维映射损失函数。其中,二维标注信息和映射二维位置信息的差异,具体可以是每个估计出的关键点的映射二维坐标与实际的二维标注坐标之间的相对距离。这里,计算机设备可仅对于可见部分的有效关键点进行二维映射损失函数的计算,不可见的无效关键点不列入计算。
在一个实施例中,各第一视频帧对应的二维映射损失,可叠加各个关键点的映射二维坐标与实际的二维标注坐标的内积,其中,映射二维坐标与实际的二维标注坐标的内积可通过2范数的平方进行计算得到。该二维映射损失函数可通过以下公式表示:
Figure BDA0002272816870000221
其中,Lproj表示单帧的第一视频帧对应的二维映射损失;i表示第i个关键点,K表示共有K个关键点;vi表示在进行数据标注时第i个关键点是否被遮挡,其中,当第i个关键点为有效关键点时,vi=1,当第i个关键点为无效关键点时,vi=0;Mi表示第i个关键点的二维标注坐标;
Figure BDA0002272816870000222
表示第i个关键点的映射二维坐标。
对于整个第一视频帧样本序列而言,其样本输入对应的二维映射损失的计算方式,可叠加各个第一视频帧对应的二维映射损失。其中,叠加的方式具体可采用直接将各个第一视频帧对应的二维映射损失进行相加,或者按预设的加权系数进行加权求和等方式,本申请实施例在此不做限定。
进一步地,计算机设备可依据二维关键点损失函数和二维映射损失函数构建第一损失函数,该第一损失函数即为第一视频帧样本序列对应的损失函数。
在一个实施例中,计算机设备可对二维关键点损失函数和二维映射损失函数进行加权求和处理,得到第一损失函数。该第一损失函数可通过以下公式表示:
Figure BDA0002272816870000231
其中,a1和b1是预设定的加权系数,可以均为常数1,或者分别为不同的常数。
在一个实施例中,在三维骨架生成模型的训练过程中,在当前的样本输入为第一视频帧样本序列时,计算机设备可根据第一损失函数对第一时间卷积网络和第二时间卷积网络的网络参数进行调整。比如,可将使得第一损失函数最小化时的网络参数作为当前训练过程中第一时间卷积网络和第二时间卷积网络的网络参数。接下来,计算机设备可输入下一批的样本输入并继续训练,直至满足训练停止条件时停止训练。
S608C,当样本输入为第二视频帧样本序列时,根据与样本输入对应的三维标注信息和预测三维位置信息的差异,构建三维关键点损失函数,并依据二维关键点损失函数和三维关键点损失函数构建第二损失函数。
具体地,在当前的样本输入为第二视频帧样本序列时,很显然第二视频样本序列的标注信息包括有二维标注信息和三维标注信息。此时,对于输入的每帧第二视频帧,计算机设备可将与当前输入的第二视频帧分别对应的三维标注信息和预测三维位置信息的差异,构建三维关键点损失函数。其中,三维标注信息和预测三维位置信息的差异,具体可以是每个估计出的关键点的预测三维坐标与实际的三维标注坐标之间的相对距离。
在一个实施例中,各第二视频帧对三维关键点损失,可叠加各个关键点的预测三维坐标与实际的三维标注坐标的内积,其中,预测三维坐标与实际的三维标注坐标的内积可通过2范数的平方进行计算得到。该三维关键点损失函数可通过以下公式表示:
Figure BDA0002272816870000232
其中,
Figure BDA0002272816870000233
表示单帧的第二视频帧对应的三维关键点损失;i表示第i个关键点,K表示共有K个关键点;Ni表示第i个关键点的三维标注坐标;
Figure BDA0002272816870000234
表示第i个关键点的预测三维坐标。
对于整个第二视频帧样本序列而言,其样本输入对应的三维关键点损失的计算方式,可叠加各个第二视频帧对应的三维关键点损失。其中,叠加的方式具体可采用直接将各个第二视频帧对应的三维关键点损失进行相加,或者按预设的加权系数进行加权求和等方式,本申请实施例在此不做限定。
进一步地,计算机设备可依据二维关键点损失函数和三维关键点损失函数构建第二损失函数,该第二损失函数即为第二视频帧样本序列对应的损失函数。
在一个实施例中,计算机设备可对二维关键点损失函数和三维关键点损失函数进行加权求和处理,得到第二损失函数。该第二损失函数可通过以下公式表示:
Figure BDA0002272816870000241
其中,a2和b2是预设定的加权系数,可以均为常数1,或者分别为不同的常数。
在一个实施例中,在三维骨架生成模型的训练过程中,在当前的样本输入为第二视频帧样本序列时,计算机设备可根据第二损失函数对第一时间卷积网络和第二时间卷积网络的网络参数进行调整。比如,可将使得第二损失函数最小化时的网络参数作为当前训练过程中第一时间卷积网络和第二时间卷积网络的网络参数。接下来,计算机设备可输入下一批的样本输入并继续训练,直至满足训练停止条件时停止训练。
上述实施例中,在模型训练过程中,采用了二维数据和三维数据并用的半监督式学习方法,当存在三维标注信息时对关键点的预测三维位置信息计算损失函数,当仅存在二维标注信息时,可将预测三维位置信息映射回二维空间进行损失函数计算,这样,在三维数据的数据量很少的情况下,仍然能够训练得到效果较好的三维骨架生成模型,使得训练后的三维骨架生成模型提取三维骨架的准确性。
在一个实施例中,处于训练阶段的三维骨架生成模型还包括对抗网络,该三维骨架生成模型的训练步骤还包括以下步骤:将样本输入中各视频帧对应的预测三维位置信息或三维标注信息,作为对抗网络的输入数据,并通过对抗网络对输入数据进行分类处理,得到输入数据的预测类别;依据预测类别及输入数据所对应的参考类别,构建对抗损失函数。其中,依据二维关键点损失函数和二维映射损失函数构建第一损失函数的步骤,包括:依据二维关键点损失函数、二维映射损失函数、以及对抗损失函数,构建第一损失函数。依据二维关键点损失函数和三维关键点损失函数构建第二损失函数的步骤具体包括:依据二维关键点损失函数、三维关键点损失函数、以及对抗损失函数,构建第二损失函数。
需要说明的是,处于训练阶段的三维骨架生成模型还包括对抗网络,该对抗网络协助训练第一时间卷积网络和第二时间卷积网络,在训练结束后可取消掉该对抗网络。该对抗网络用于判断一组三维的关键点的集合是否构成一个合理的运动姿态,比如人体运动姿态,而不会出现例如违反关节运动的情况。
在一个实施例中,计算机设备可将样本输入中各视频帧对应的预测三维位置信息或三维标注信息,分别作为对抗网络的输入数据。当将输入数据输入至对抗网络中时,可通过对抗网络对输入数据进行分类处理,得到输入数据的预测类别,进而计算机设备可依据预测类别及输入数据所对应的参考类别,构建对抗损失函数。
举例说明,当该对抗网络的输入数据是预测三维位置信息时,其对应的参考类别是网络生成姿态(可设置为0);当该对抗网络的输入数据是三维标注信息时,其对应的参考类别是真实姿态(可设置为1)。对应的,对抗网络会对输入的输入数据进行分类处理,得到输入数据对应的预测类别作为输出(该输出具体可以是姿态合理性的预测值,范围为[0,1]之间)。
在一个实施例中,计算机设备可通过以下公式表示对抗损失函数:Ldis=-∑j[ujlogqj+(1-uj)log(1-qj)];其中,qj为输入的第j个输入数据对应的预测类别,uj为第j个输入数据对应的参考类别。
进一步地,计算机设备在计算出对抗损失函数后,可结合对抗损失函数分别构建第一损失函数和第二损失函数。其中,二维关键点损失函数和二维映射损失函数构建第一损失函数的步骤具体包括:依据二维关键点损失函数、二维映射损失函数、以及对抗损失函数,构建第一损失函数。依据二维关键点损失函数和三维关键点损失函数构建第二损失函数的步骤具体包括:依据二维关键点损失函数、三维关键点损失函数、以及对抗损失函数,构建第二损失函数。
也就是说,计算机设备可对二维关键点损失函数、二维映射损失函数以及对抗损失函数进行加权求和处理,得到第一损失函数。该第一损失函数可通过以下公式表示:
Figure BDA0002272816870000261
其中,a1、b1和c1是预设定的加权系数,可以均为常数1,或者为不同的常数。
相应的,计算机设备可对二维关键点损失函数、三维关键点损失函数以及对抗损失函数进行加权求和处理,得到第二损失函数。该第二损失函数可通过以下公式表示:
Figure BDA0002272816870000262
其中,a2、b2和c2是预设定的加权系数,可以均为常数1,或者分别为不同的常数。
进而,在三维骨架生成模型的训练过程中,在当前的样本输入为第一视频帧样本序列时,计算机设备可根据上述第一损失函数对第一时间卷积网络和第二时间卷积网络的网络参数进行调整。在当前的样本输入为第二视频帧样本序列时,计算机设备可根据上述第二损失函数对第一时间卷积网络和第二时间卷积网络的网络参数进行调整。
上述实施例中,通过在损失函数中加入对抗损失函数,可使得模型在训练过程中习得将输出的三维骨架调整至合理姿态的能力,从而避免出现如违反关节运动的情况等,进一步提高了三维骨架提取的准确性。
在一个实施例中,该三维骨架生成模型的训练步骤还包括:对样本输入中各视频帧中的各关键点,从相应的预测二维位置信息中筛选出无效关键点对应的无效二维位置信息,并确定无效二维位置信息对应的预测三维位置信息;无效关键点为被遮挡的关键点;结合确定的预测三维位置信息和预设三维模型,确定无效关键点对应的预测遮挡类别;根据样本输入中各视频帧样本对应的预测遮挡类别,构建遮挡损失函数。依据二维关键点损失函数、二维映射损失函数、以及对抗损失函数,构建第一损失函数,包括:依据二维关键点损失函数、二维映射损失函数、对抗损失函数、以及遮挡损失函数,构建第一损失函数。依据二维关键点损失函数、三维关键点损失函数、以及对抗损失函数,构建第二损失函数,包括:依据二维关键点损失函数、三维关键点损失函数、对抗损失函数、以及遮挡损失函数,构建第二损失函数。
可以理解,在模型训练过程中,如果某个关键点的二维坐标置信度很低,也就是该关键点的原始位置信息和二维位置信息均被抑制为零,那么计算机设备将倾向于此关键点在预设三维模型中被遮挡。如果没有被遮挡,则说明该关键点的预测出现了偏差,在训练时需要加入一定的损失。
在一个实施例中,计算机设备还可构建遮挡损失函数。对样本输入中各视频帧中的各关键点,计算机设备可从相应的预测二维位置信息中筛选出无效关键点对应的无效二维位置信息,并确定无效二维位置信息对应的预测三维位置信息,也就是二维位置信息被抑制为零的无效关键点所对应的预测三维位置信息。计算机设备可结合确定的预测三维位置信息和预设三维模型,确定该无效关键点对应的预测遮挡类别。该预测遮挡类别包括被遮挡和未被遮挡,其中,被遮挡可用实数零表示,未被遮挡可用实数一表示。进而,计算机设备可根据样本输入中各视频帧样本对应的预测遮挡类别,构建遮挡损失函数。
在一个实施例中,计算机设备可通过以下公式表示对抗损失函数:
Figure BDA0002272816870000271
其中,
Figure BDA0002272816870000272
为对应的样本输入是否存在三维标注信息,当该样本输入存在三维标注信息时,
Figure BDA0002272816870000273
当该样本输入不存在三维标注信息时,
Figure BDA0002272816870000274
i表示第i个关键点,Occ表示预测二维位置信息被抑制为零的无效关键点的集合;
Figure BDA0002272816870000275
表示结合该无效关键点的预测三维位置信息和预设三维模型,确定该无效关键点是否被遮挡的预测遮挡类别,其中,当第i个无效关键点通过预设三维模型被判断为未被遮挡时,
Figure BDA0002272816870000276
当第i个无效关键点通过预设三维模型被判断为被遮挡时,
Figure BDA0002272816870000277
对于整个视频帧样本序列而言,其样本输入对应的遮挡损失的计算方式,可叠加各个视频帧样本对应的遮挡损失。其中,叠加的方式具体可采用直接将各个视频帧样本对应的遮挡损失进行相加,或者按预设的加权系数进行加权求和等方式,本申请实施例在此不做限定。
进一步地,计算机设备在计算出遮挡损失函数后,可结合遮挡损失函数分别构建第一损失函数和第二损失函数。其中,依据二维关键点损失函数、二维映射损失函数、以及对抗损失函数,构建第一损失函数,包括:依据二维关键点损失函数、二维映射损失函数、对抗损失函数、以及遮挡损失函数,构建第一损失函数。依据二维关键点损失函数、三维关键点损失函数、以及对抗损失函数,构建第二损失函数,包括:依据二维关键点损失函数、三维关键点损失函数、对抗损失函数、以及遮挡损失函数,构建第二损失函数。
也就是说,计算机设备可对二维关键点损失函数、二维映射损失函数、对抗损失函数、以及遮挡损失函数进行加权求和处理,得到第一损失函数。该第一损失函数可通过以下公式表示:
Figure BDA0002272816870000281
其中,a1、b1、c1和d1分别是预设定的加权系数,可以均为常数1,或者为不同的常数。
相应的,计算机设备可对二维关键点损失函数、三维关键点损失函数、对抗损失函数、以及遮挡损失函数进行加权求和处理,得到第二损失函数。该第二损失函数可通过以下公式表示:
Figure BDA0002272816870000282
其中,a2、b2、c2和d2分别是预设定的加权系数,可以均为常数1,或者为不同的常数。
进而,在三维骨架生成模型的训练过程中,在当前的样本输入为第一视频帧样本序列时,计算机设备可根据上述第一损失函数对第一时间卷积网络和第二时间卷积网络的网络参数进行调整。在当前的样本输入为第二视频帧样本序列时,计算机设备可根据上述第二损失函数对第一时间卷积网络和第二时间卷积网络的网络参数进行调整。
上述实施例中,通过在损失函数中加入遮挡损失函数,可使得模型在训练过程中可降低将关键点估计为被遮挡错误所带来的损失,通过上述损失函数训练得到的三维骨架生成模型的准确性会进一步提高。
参考图9,在一个具体的实施例中,该三维骨架生成模型的训练步骤包括:
S902,获取第一视频帧样本序列、以及对第一视频帧样本序列中各第一视频帧所包括的样本对象的关键点进行二维标注的二维标注信息。
S904,获取第二视频帧样本序列、以及通过三维传感器采集的第二视频帧序列中各第二视频帧所包括的样本对象的关键点对应的三维标注信息。
S906,结合采集的三维标注信息和预设三维模型,确定第二视频帧序列中各第二视频帧对应的关键点中的无效关键点和有效关键点。
S908,将坐标原点对应的位置信息作为无效关键点对应的二维标注信息,并根据三维标注信息确定关键点中有效关键点对应的二维标注信息。
S910,将视频帧样本序列作为三维骨架生成模型的样本输入,并输入至三维骨架生成模型中进行训练。
S912,通过三维骨架生成模型中的第一时间卷积网络,确定与样本输入对应的预测二维位置信息,并通过三维骨架生成模型中的第二时间卷积网络确定与样本输入对应的预测三维位置信息。
S914,根据与样本输入对应的二维标注信息和预测二维位置信息的差异,构建二维关键点损失函数。
S916,将样本输入中各视频帧对应的预测三维位置信息或三维标注信息,作为对抗网络的输入数据,并通过对抗网络对输入数据进行分类处理,得到输入数据的预测类别。
S918,依据预测类别及输入数据所对应的参考类别,构建对抗损失函数。
S920,对样本输入中各视频帧中的各关键点,从相应的预测二维位置信息中筛选出无效关键点对应的无效二维位置信息,并确定无效二维位置信息对应的预测三维位置信息;无效关键点为被遮挡的关键点。
S922,结合确定的预测三维位置信息和预设三维模型,确定无效关键点对应的预测遮挡类别。
S924,根据样本输入中各视频帧样本对应的预测遮挡类别,构建遮挡损失函数。
S926,当样本输入为第一视频帧样本序列时,将与样本输入对应的预测三维位置信息映射回二维空间,得到对应的映射二维位置信息,并根据与样本输入对应的二维标注信息和映射二维位置信息的差异,构建二维映射损失函数,并依据二维关键点损失函数、二维映射损失函数、对抗损失函数、以及遮挡损失函数,构建第一损失函数。
S928,当样本输入为第二视频帧样本序列时,根据与样本输入对应的三维标注信息和预测三维位置信息的差异,构建三维关键点损失函数,并依据二维关键点损失函数、三维关键点损失函数、对抗损失函数、以及遮挡损失函数,构建第二损失函数。
S930,对于不同的样本输入,分别执行相应的损失函数,并根据相应损失函数的执行结果调整第一时间卷积网络和第二时间卷积网络的网络参数并继续训练,直至满足训练停止条件时停止训练。
上述实施例中,在模型训练过程中,采用了二维数据和三维数据并用的半监督式学习方法,当存在三维标注信息时对关键点的预测三维位置信息计算损失函数,当仅存在二维标注信息时,可将预测三维位置信息映射回二维空间进行损失函数计算。并且,在损失函数中增加了遮挡损失函数和对抗损失函数。使得在三维数据的数据量很少的情况下,仍然能够训练得到效果较好的三维骨架生成模型,使得训练后的三维骨架生成模型提取三维骨架的准确性。
图9为一个实施例中三维骨架生成方法中的模型训练步骤的流程示意图。应该理解的是,虽然图9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图9中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个具体地实施例中,参考图10,图10为一个实施例中三维骨架生成方法的流程示意图。如图10所示,计算机设备可根据动作视频收集库中的视频,通过AI(ArtificialIntelligence,人工智能)模型训练模块训练三维骨架生成模型,得到训练好的三维骨架生成模型。另一方面,计算机设备可获取包括有目标动作的视频,通过训练好的三维骨架生成模型对该视频进行处理预测,获取执行目标动作的三维骨架。并将该三维骨架作用于游戏角色模型,可使得该游戏角色模型目标动作。
如图11所示,在一个实施例中,提供了三维骨架生成装置1100,包括获取模块1101、确定模块1102、修正模块1103和转换模块1104,其中:
获取模块1101,用于获取包括目标对象的视频帧序列。
确定模块1102,用于对视频帧序列中的各视频帧,分别确定视频帧中目标对象的关键点的原始位置信息。
修正模块1103,用于将视频帧序列中各视频帧对应的原始位置信息,分别输入至第一时间卷积网络,得到与各视频帧对应的、且经过修正后的二维位置信息。
转换模块1104,用于将视频帧序列中各视频帧对应的二维位置信息,分别输入至第二时间卷积网络,得到与各视频帧对应的三维位置信息。
确定模块1102,还用于根据三维位置信息,确定与目标对象对应的三维骨架。
在一个实施例中,确定模块1102还用于对视频帧序列中的各视频帧,分别检测视频帧所包括的候选对象;从各视频帧所包括的候选对象中,筛选出执行目标动作的目标对象;确定各视频帧中目标对象的各关键点的原始位置信息。
在一个实施例中,确定模块1102还用于从视频帧序列的各视频帧中,分别确定包括目标对象的标准图像;对每张标准图像分别进行关键点检测,得到各标准图像中不同关键点各自对应的热度图;热度图的值表示标准图像中相应位置被检测为关键点的确信度;根据关键点对应的热度图的峰值,确定各视频帧中目标对象的关键点的原始位置信息。
在一个实施例中,确定模块1102还用于对视频帧序列中的各视频帧分别进行目标检测,确定各视频帧中包括目标对象的矩形边界框;对于每帧视频帧,分别将对应的矩形边界框调整为以矩形边界框的长边为边长、且中心点不变的正方形边界框;对于每帧视频帧,分别对相应的正方形边界框所确定的区域进行归一化处理,得到包括有目标对象的标准图像。
在一个实施例中,确定模块1102还用于对于每帧视频帧,当视频帧中的关键点对应的热度图的峰值大于或等于预设阈值时,将峰值对应位置的坐标作为相应关键点的原始位置信息;对于每帧视频帧,当视频帧中的关键点对应的热度图的峰值小于预设阈值时,将原点坐标作为相应关键点的原始位置信息。
在一个实施例中,原始位置信息包括二维原始坐标;二维位置信息包括二维修正坐标;修正模块1103,还用于对于每帧视频帧,拼接视频帧中的各关键点对应的二维原始坐标,得到对应的第一向量;按视频帧组成视频帧序列的时序,依次将各视频帧对应的第一向量输入至预训练的第一时间卷积网络;对于每帧视频帧,通过第一时间卷积网络中多于一层的卷积层,融合视频帧的前序视频帧和后序视频帧的信息,得到视频帧对应的、且经过修正后的第二向量;第二向量用于表示二维修正坐标。
在一个实施例中,三维位置信息包括三维位置坐标;转换模块还用于按视频帧组成视频帧序列的时序,依次将各视频帧对应的第二向量输入至预训练的第二时间卷积网络;对于每帧视频帧,通过第二时间卷积网络中多于一层的卷积层,融合视频帧的前序视频帧和后序视频帧的信息,得到视频帧对应的第三向量;第三向量用于表示三维位置坐标。
在一个实施例中,该三维骨架生成1100还包括调整模块1105,其中,获取模块1101还用于获取预设定的虚拟对象;调整模块1105,用于将虚拟对象的三维骨架,按照视频帧序列中各视频帧对应的三维骨架进行调整,以实现虚拟对象执行目标动作。
参考图12,在一个实施例中,该三维骨架生成1100还包括模型训练模块1106,模型训练模块1106,用于获取视频帧样本序列、及视频帧样本序列中各视频帧对应的标注信息;将视频帧样本序列作为三维骨架生成模型的样本输入,并输入至三维骨架生成模型中进行训练;通过三维骨架生成模型中的第一时间卷积网络,确定与样本输入对应的预测二维位置信息,并通过三维骨架生成模型中的第二时间卷积网络确定与样本输入对应的预测三维位置信息;根据预测二维位置信息、预测三维位置信息和标注信息,分别构建与第一视频帧样本序列对应的第一损失函数、以及与第二视频帧样本序列对应的第二损失函数;对于不同的样本输入,分别执行相应的损失函数,并根据相应损失函数的执行结果调整第一时间卷积网络和第二时间卷积网络的网络参数并继续训练,直至满足训练停止条件时停止训练。
在一个实施例中,该模型训练模块1106,还用于根据与样本输入对应的二维标注信息和预测二维位置信息的差异,构建二维关键点损失函数;当样本输入为第一视频帧样本序列时,将与样本输入对应的预测三维位置信息映射回二维空间,得到对应的映射二维位置信息,并根据与样本输入对应的二维标注信息和映射二维位置信息的差异,构建二维映射损失函数,并依据二维关键点损失函数和二维映射损失函数构建第一损失函数;当样本输入为第二视频帧样本序列时,根据与样本输入对应的三维标注信息和预测三维位置信息的差异,构建三维关键点损失函数,并依据二维关键点损失函数和三维关键点损失函数构建第二损失函数。
在一个实施例中,处于训练阶段的三维骨架生成模型还包括对抗网络,模型训练模块1106,还用于将样本输入中各视频帧对应的预测三维位置信息或三维标注信息,作为对抗网络的输入数据,并通过对抗网络对输入数据进行分类处理,得到输入数据的预测类别;依据预测类别及输入数据所对应的参考类别,构建对抗损失函数;依据二维关键点损失函数、二维映射损失函数、以及对抗损失函数,构建第一损失函数;依据二维关键点损失函数、三维关键点损失函数、以及对抗损失函数,构建第二损失函数。
在一个实施例中,模型训练模块1106,还用于对样本输入中各视频帧中的各关键点,从相应的预测二维位置信息中筛选出无效关键点对应的无效二维位置信息,并确定无效二维位置信息对应的预测三维位置信息;无效关键点为被遮挡的关键点;结合确定的预测三维位置信息和预设三维模型,确定无效关键点对应的预测遮挡类别;根据样本输入中各视频帧样本对应的预测遮挡类别,构建遮挡损失函数;依据二维关键点损失函数、二维映射损失函数、对抗损失函数、以及遮挡损失函数,构建第一损失函数;依据二维关键点损失函数、三维关键点损失函数、对抗损失函数、以及遮挡损失函数,构建第二损失函数。
在一个实施例中,模型训练模块1106,还用于获取第一视频帧样本序列、以及对第一视频帧样本序列中各第一视频帧所包括的样本对象的关键点进行二维标注的二维标注信息;获取第二视频帧样本序列、以及通过三维传感器采集的第二视频帧序列中各第二视频帧所包括的样本对象的关键点对应的三维标注信息;结合采集的三维标注信息和预设三维模型,确定第二视频帧序列中各第二视频帧对应的关键点中的无效关键点和有效关键点;将坐标原点对应的位置信息作为无效关键点对应的二维标注信息,并根据三维标注信息确定关键点中有效关键点对应的二维标注信息。
上述三维骨架生成装置,通过对一组时序上连续的视频帧进行检测,以实现对目标对象的关键点进行初步预测,得到每一帧的关键点的原始位置信息。再将各关键点的原始位置信息输入到预训练的第一时间卷积网络中,以得到相对平滑稳定的二维位置信息。之后将二维位置信息进一步输入到预训练的第二时间卷积网络中,进行三维姿态的估计,从而从视频帧序列中提取出目标对象的三维骨架。这样,无需雇佣演员完成相应动作以采集三维坐标,即可从已有的视频数据中准确地提取出目标对象的三维骨架,提取出的三维骨架可辅助虚拟对象实现相应的动作,大大减少或消除对于雇佣演员进行动作捕捉的需求,使得三维骨架的提取不受场景条件的限制,大大提高了三维骨架提取的灵活性。
图13示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110或服务器120。如图13所示,该计算机设备包括该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作***,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现三维骨架生成方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行三维骨架生成方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的三维骨架生成装置可以实现为一种计算机程序的形式,计算机程序可在如图13所示的计算机设备上运行。计算机设备的存储器中可存储组成该三维骨架生成装置的各个程序模块,比如,图11所示的获取模块、确定模块、修正模块和转换模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的三维骨架生成方法中的步骤。
例如,图13所示的计算机设备可以通过如图11所示的三维骨架生成装置中的获取模块执行步骤S202。计算机设备可通过确定模块执行步骤S204和S210。计算机设备可通过修正模块执行步骤S206。计算机设备可通过转换模块执行步骤S208。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述XX方法的步骤。此处三维骨架生成方法的步骤可以是上述各个实施例的三维骨架生成方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述三维骨架生成方法的步骤。此处三维骨架生成方法的步骤可以是上述各个实施例的三维骨架生成方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种三维骨架生成方法,包括:
获取包括目标对象的视频帧序列;
对所述视频帧序列中的各视频帧,分别确定所述视频帧中所述目标对象的关键点的原始位置信息;
将所述视频帧序列中各视频帧对应的原始位置信息,分别输入至第一时间卷积网络,得到与各视频帧对应的、且经过修正后的二维位置信息;
将所述视频帧序列中各视频帧对应的二维位置信息,分别输入至第二时间卷积网络,得到与各视频帧对应的三维位置信息;
根据所述三维位置信息,确定与所述目标对象对应的三维骨架。
2.根据权利要求1所述的方法,其特征在于,所述对所述视频帧序列中的各视频帧,分别确定所述视频帧中所述目标对象的关键点的原始位置信息,包括:
对所述视频帧序列中的各视频帧,分别检测所述视频帧所包括的候选对象;
从各视频帧所包括的候选对象中,筛选出执行目标动作的目标对象;
确定各视频帧中所述目标对象的各关键点的原始位置信息。
3.根据权利要求1所述的方法,其特征在于,所述对所述视频帧序列中的各视频帧,分别确定所述视频帧中所述目标对象的关键点的原始位置信息,包括:
从所述视频帧序列的各视频帧中,分别确定包括所述目标对象的标准图像;
对每张标准图像分别进行关键点检测,得到各标准图像中不同关键点各自对应的热度图;所述热度图的值表示所述标准图像中相应位置被检测为关键点的确信度;
根据所述关键点对应的热度图的峰值,确定各视频帧中所述目标对象的关键点的原始位置信息。
4.根据权利要求3所述的方法,其特征在于,所述从所述视频帧序列的各视频帧中,分别确定包括所述目标对象的标准图像,包括:
对所述视频帧序列中的各视频帧分别进行目标检测,确定各所述视频帧中包括所述目标对象的矩形边界框;
对于每帧视频帧,分别将对应的矩形边界框调整为以所述矩形边界框的长边为边长、且中心点不变的正方形边界框;
对于每帧视频帧,分别对相应的正方形边界框所确定的区域进行归一化处理,得到包括有目标对象的标准图像。
5.根据权利要求3所述的方法,其特征在于,所述根据所述关键点对应的热度图的峰值,确定各视频帧中所述目标对象的关键点的原始位置信息,包括:
对于每帧视频帧,当所述视频帧中的关键点对应的热度图的峰值大于或等于预设阈值时,将所述峰值对应位置的坐标作为相应关键点的原始位置信息;
对于每帧视频帧,当所述视频帧中的关键点对应的热度图的峰值小于所述预设阈值时,将原点坐标作为相应关键点的原始位置信息。
6.根据权利要求1所述的方法,其特征在于,所述原始位置信息包括二维原始坐标;所述二维位置信息包括二维修正坐标;所述将所述视频帧序列中各视频帧对应的原始位置信息,分别输入至预训练的第一时间卷积网络,得到与各视频帧对应的、且经过修正后的二维位置信息,包括:
对于每帧视频帧,拼接所述视频帧中的各关键点对应的二维原始坐标,得到对应的第一向量;
按所述视频帧组成所述视频帧序列的时序,依次将各视频帧对应的第一向量输入至预训练的第一时间卷积网络;
对于每帧视频帧,通过所述第一时间卷积网络中多于一层的卷积层,融合所述视频帧的前序视频帧和后序视频帧的信息,得到所述视频帧对应的、且经过修正后的第二向量;所述第二向量用于表示所述二维修正坐标。
7.根据权利要求6所述的方法,其特征在于,所述三维位置信息包括三维位置坐标;所述将所述视频帧序列中各视频帧对应的二维位置信息,分别输入至预训练的第二时间卷积网络,得到与各视频帧对应的三维位置信息,包括:
按所述视频帧组成所述视频帧序列的时序,依次将各视频帧对应的第二向量输入至预训练的第二时间卷积网络;
对于每帧视频帧,通过所述第二时间卷积网络中多于一层的卷积层,融合所述视频帧的前序视频帧和后序视频帧的信息,得到所述视频帧对应的第三向量;所述第三向量用于表示所述三维位置坐标。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
获取预设定的虚拟对象;
将所述虚拟对象的三维骨架,按照所述视频帧序列中各视频帧对应的三维骨架进行调整,以实现所述虚拟对象执行所述目标动作。
9.根据权利要求1至7任一项所述的方法,其特征在于,所述方法通过三维骨架生成模型执行,所述三维骨架生成模型包括第一时间卷积网络和第二时间卷积网络;所述三维骨架生成模型通过视频帧样本序列、以及所述视频帧样本序列中各视频帧所包括的样本对象的关键点对应的标注信息训练得到,其中,所述视频帧样本序列包括第一视频帧样本序列和第二视频帧样本序列,所述标注信息包括与所述第一视频帧样本序列中各第一视频帧对应的二维标注信息、以及与所述第二视频帧样本序列中各第二视频帧对应的二维标注信息和三维标注信息。
10.根据权利要求9所述的方法,其特征在于,所述三维骨架生成模型的训练步骤包括:
获取视频帧样本序列、及所述视频帧样本序列中各视频帧对应的标注信息;
将所述视频帧样本序列作为三维骨架生成模型的样本输入,并输入至所述三维骨架生成模型中进行训练;
通过所述三维骨架生成模型中的第一时间卷积网络,确定与样本输入对应的预测二维位置信息,并通过所述三维骨架生成模型中的第二时间卷积网络确定与所述样本输入对应的预测三维位置信息;
根据所述预测二维位置信息、预测三维位置信息和所述标注信息,分别构建与所述第一视频帧样本序列对应的第一损失函数、以及与所述第二视频帧样本序列对应的第二损失函数;
对于不同的样本输入,分别执行相应的损失函数,并根据相应损失函数的执行结果调整第一时间卷积网络和第二时间卷积网络的网络参数并继续训练,直至满足训练停止条件时停止训练。
11.根据权利要求10所述的方法,其特征在于,所述根据所述预测二维位置信息、预测三维位置信息和所述标注信息,分别构建与所述第一视频帧样本序列对应的第一损失函数、以及与所述第二视频帧样本序列对应的第二损失函数,包括:
根据与所述样本输入对应的二维标注信息和预测二维位置信息的差异,构建二维关键点损失函数;
当所述样本输入为第一视频帧样本序列时,将与所述样本输入对应的预测三维位置信息映射回二维空间,得到对应的映射二维位置信息,并根据与所述样本输入对应的二维标注信息和映射二维位置信息的差异,构建二维映射损失函数,并依据所述二维关键点损失函数和二维映射损失函数构建第一损失函数;
当所述样本输入为第二视频帧样本序列时,根据与所述样本输入对应的三维标注信息和预测三维位置信息的差异,构建三维关键点损失函数,并依据所述二维关键点损失函数和三维关键点损失函数构建第二损失函数。
12.根据权利要求11所述的方法,其特征在于,处于训练阶段的所述三维骨架生成模型还包括对抗网络,所述三维骨架生成模型的训练步骤还包括:
将所述样本输入中各视频帧对应的预测三维位置信息或三维标注信息,作为所述对抗网络的输入数据,并通过所述对抗网络对所述输入数据进行分类处理,得到所述输入数据的预测类别;
依据所述预测类别及所述输入数据所对应的参考类别,构建对抗损失函数;
所述依据所述二维关键点损失函数和二维映射损失函数构建第一损失函数,包括:
依据所述二维关键点损失函数、二维映射损失函数、以及所述对抗损失函数,构建第一损失函数;
所述依据所述二维关键点损失函数和三维关键点损失函数构建第二损失函数,包括:
依据所述二维关键点损失函数、三维关键点损失函数、以及所述对抗损失函数,构建第二损失函数。
13.根据权利要求12所述的方法,其特征在于,所述三维骨架生成模型的训练步骤还包括:
对所述样本输入中各视频帧中的各关键点,从相应的预测二维位置信息中筛选出无效关键点对应的无效二维位置信息,并确定所述无效二维位置信息对应的预测三维位置信息;所述无效关键点为被遮挡的关键点;
结合确定的所述预测三维位置信息和预设三维模型,确定所述无效关键点对应的预测遮挡类别;
根据样本输入中各视频帧样本对应的预测遮挡类别,构建遮挡损失函数;
所述依据所述二维关键点损失函数、二维映射损失函数、以及所述对抗损失函数,构建第一损失函数,包括:
依据所述二维关键点损失函数、二维映射损失函数、对抗损失函数、以及所述遮挡损失函数,构建第一损失函数;
所述依据所述二维关键点损失函数、三维关键点损失函数、以及所述对抗损失函数,构建第二损失函数,包括:
依据所述二维关键点损失函数、三维关键点损失函数、对抗损失函数、以及所述遮挡损失函数,构建第二损失函数。
14.根据权利要求10所述的方法,其特征在于,所述获取视频帧样本序列、及所述视频帧样本序列中各视频帧对应的标注信息,包括:
获取第一视频帧样本序列、以及对所述第一视频帧样本序列中各第一视频帧所包括的样本对象的关键点进行二维标注的二维标注信息;
获取第二视频帧样本序列、以及通过三维传感器采集的所述第二视频帧序列中各第二视频帧所包括的样本对象的关键点对应的三维标注信息;
结合采集的所述三维标注信息和预设三维模型,确定所述第二视频帧序列中各第二视频帧对应的关键点中的无效关键点和有效关键点;
将坐标原点对应的位置信息作为所述无效关键点对应的二维标注信息,并根据所述三维标注信息确定所述关键点中有效关键点对应的二维标注信息。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至14中任一项所述方法的步骤。
CN201911111436.7A 2019-11-14 2019-11-14 三维骨架生成方法和计算机设备 Pending CN110874865A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911111436.7A CN110874865A (zh) 2019-11-14 2019-11-14 三维骨架生成方法和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911111436.7A CN110874865A (zh) 2019-11-14 2019-11-14 三维骨架生成方法和计算机设备

Publications (1)

Publication Number Publication Date
CN110874865A true CN110874865A (zh) 2020-03-10

Family

ID=69718330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911111436.7A Pending CN110874865A (zh) 2019-11-14 2019-11-14 三维骨架生成方法和计算机设备

Country Status (1)

Country Link
CN (1) CN110874865A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111753669A (zh) * 2020-05-29 2020-10-09 广州幻境科技有限公司 基于图卷积网络的手部数据识别方法、***和存储介质
CN111798486A (zh) * 2020-06-16 2020-10-20 浙江大学 基于人体运动预测的多视角人体运动捕捉方法
CN111832648A (zh) * 2020-07-10 2020-10-27 北京百度网讯科技有限公司 关键点标注方法、装置、电子设备及存储介质
CN112200041A (zh) * 2020-09-29 2021-01-08 Oppo(重庆)智能科技有限公司 视频动作识别方法、装置、存储介质与电子设备
CN112926475A (zh) * 2021-03-08 2021-06-08 电子科技大学 一种人体三维关键点提取方法
CN113033426A (zh) * 2021-03-30 2021-06-25 北京车和家信息技术有限公司 动态对象标注方法、装置、设备和存储介质
CN113205090A (zh) * 2021-04-29 2021-08-03 北京百度网讯科技有限公司 图片矫正方法、装置、电子设备及计算机可读存储介质
CN113420719A (zh) * 2021-07-20 2021-09-21 北京百度网讯科技有限公司 生成动作捕捉数据的方法、装置、电子设备以及存储介质
CN113556600A (zh) * 2021-07-13 2021-10-26 广州虎牙科技有限公司 基于时序信息的驱动控制方法、装置、电子设备和可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109410242A (zh) * 2018-09-05 2019-03-01 华南理工大学 基于双流卷积神经网络的目标跟踪方法、***、设备及介质
CN109919122A (zh) * 2019-03-18 2019-06-21 中国石油大学(华东) 一种基于3d人体关键点的时序行为检测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109410242A (zh) * 2018-09-05 2019-03-01 华南理工大学 基于双流卷积神经网络的目标跟踪方法、***、设备及介质
CN109919122A (zh) * 2019-03-18 2019-06-21 中国石油大学(华东) 一种基于3d人体关键点的时序行为检测方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021237875A1 (zh) * 2020-05-29 2021-12-02 广州幻境科技有限公司 基于图卷积网络的手部数据识别方法、***和存储介质
CN111753669A (zh) * 2020-05-29 2020-10-09 广州幻境科技有限公司 基于图卷积网络的手部数据识别方法、***和存储介质
CN111798486A (zh) * 2020-06-16 2020-10-20 浙江大学 基于人体运动预测的多视角人体运动捕捉方法
CN111798486B (zh) * 2020-06-16 2022-05-17 浙江大学 基于人体运动预测的多视角人体运动捕捉方法
CN111832648A (zh) * 2020-07-10 2020-10-27 北京百度网讯科技有限公司 关键点标注方法、装置、电子设备及存储介质
CN111832648B (zh) * 2020-07-10 2024-02-09 北京百度网讯科技有限公司 关键点标注方法、装置、电子设备及存储介质
CN112200041A (zh) * 2020-09-29 2021-01-08 Oppo(重庆)智能科技有限公司 视频动作识别方法、装置、存储介质与电子设备
CN112200041B (zh) * 2020-09-29 2022-08-02 Oppo(重庆)智能科技有限公司 视频动作识别方法、装置、存储介质与电子设备
CN112926475B (zh) * 2021-03-08 2022-10-21 电子科技大学 一种人体三维关键点提取方法
CN112926475A (zh) * 2021-03-08 2021-06-08 电子科技大学 一种人体三维关键点提取方法
CN113033426A (zh) * 2021-03-30 2021-06-25 北京车和家信息技术有限公司 动态对象标注方法、装置、设备和存储介质
CN113033426B (zh) * 2021-03-30 2024-03-01 北京车和家信息技术有限公司 动态对象标注方法、装置、设备和存储介质
CN113205090A (zh) * 2021-04-29 2021-08-03 北京百度网讯科技有限公司 图片矫正方法、装置、电子设备及计算机可读存储介质
CN113205090B (zh) * 2021-04-29 2023-10-24 北京百度网讯科技有限公司 图片矫正方法、装置、电子设备及计算机可读存储介质
CN113556600A (zh) * 2021-07-13 2021-10-26 广州虎牙科技有限公司 基于时序信息的驱动控制方法、装置、电子设备和可读存储介质
CN113420719A (zh) * 2021-07-20 2021-09-21 北京百度网讯科技有限公司 生成动作捕捉数据的方法、装置、电子设备以及存储介质

Similar Documents

Publication Publication Date Title
CN110874865A (zh) 三维骨架生成方法和计算机设备
Wang et al. Deep 3D human pose estimation: A review
CN110135375B (zh) 基于全局信息整合的多人姿态估计方法
Liu et al. Human pose estimation in video via structured space learning and halfway temporal evaluation
Shen et al. Exemplar-based human action pose correction and tagging
CN111191622A (zh) 基于热力图和偏移向量的姿态识别方法、***及存储介质
Ye et al. Faster voxelpose: Real-time 3d human pose estimation by orthographic projection
CN113255522B (zh) 基于时间一致性的个性化运动姿态估计与分析方法及***
CN111062263A (zh) 手部姿态估计的方法、设备、计算机设备和存储介质
CN111709296A (zh) 一种景别识别方法、装置、电子设备及可读存储介质
Raskin et al. Dimensionality reduction using a Gaussian process annealed particle filter for tracking and classification of articulated body motions
Gouidis et al. Accurate hand keypoint localization on mobile devices
Sharma et al. An end-to-end framework for unconstrained monocular 3D hand pose estimation
Dong et al. ADORE: An adaptive holons representation framework for human pose estimation
Yu et al. Multiview human body reconstruction from uncalibrated cameras
Nguyen et al. Combined YOLOv5 and HRNet for high accuracy 2D keypoint and human pose estimation
Lin et al. Overview of 3d human pose estimation
JP2012113438A (ja) 姿勢推定装置および姿勢推定プログラム
Ling et al. Human object inpainting using manifold learning-based posture sequence estimation
Mehta et al. Single-shot multi-person 3d body pose estimation from monocular rgb input
CN116958872A (zh) 一种羽毛球运动的智能化辅助训练方法及***
Barioni et al. Human pose tracking from rgb inputs
Le et al. Openpose’s evaluation in the video traditional martial arts presentation
Yang et al. [Retracted] Footballer Action Tracking and Intervention Using Deep Learning Algorithm
JP7396364B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40021993

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination