CN110415322B - 虚拟对象模型的动作指令的生成方法和装置 - Google Patents

虚拟对象模型的动作指令的生成方法和装置 Download PDF

Info

Publication number
CN110415322B
CN110415322B CN201910690705.3A CN201910690705A CN110415322B CN 110415322 B CN110415322 B CN 110415322B CN 201910690705 A CN201910690705 A CN 201910690705A CN 110415322 B CN110415322 B CN 110415322B
Authority
CN
China
Prior art keywords
dimensional
frame
skeleton
motion image
dimensional motion
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.)
Active
Application number
CN201910690705.3A
Other languages
English (en)
Other versions
CN110415322A (zh
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201910690705.3A priority Critical patent/CN110415322B/zh
Publication of CN110415322A publication Critical patent/CN110415322A/zh
Application granted granted Critical
Publication of CN110415322B publication Critical patent/CN110415322B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供了虚拟对象模型的动作指令的生成方法、装置、电子设备和存储介质,涉及图像处理领域。本申请实施例提供的方法,在计算目标单位的骨骼的三维坐标时,采用了多帧二维动作图像的二维坐标进行协同计算的方式。由于计算的时候,考虑了拍摄时间相近的其他帧的情况(不同帧的二维坐标),因此,使得最终计算出的该帧图像三维坐标与相邻图像的三维坐标不容易发生坐标突变的情况,使得按照计算出的三维坐标来生成虚拟对象模型控制指令后,通过该控制指令驱动虚拟对象模型进行动作时,虚拟对象模型的动作更为平滑、自然。也就是,本申请所提供的方法能够更大程度的使虚拟对象模型的动作更接近实际的目标单位的动作,提高了动作还原精度。

Description

虚拟对象模型的动作指令的生成方法和装置
技术领域
本申请涉及图像处理领域,具体而言,涉及虚拟对象模型的动作指令的生成方法、装置、电子设备和存储介质。
背景技术
进行虚拟对象动作设计的初期,设计者通常采用三维动画软件进行虚拟对象动作(如动画中的人物动作、游戏中人物模型动作)的设计,设计者通过向软件中输入人物骨架、模型等相关数据来完成一个虚拟对象动作的设计。由于采用这种设计方式设计出的虚拟对象动作完全是由设计者所输入的参数所决定的,并不是依据实际会发生的动作来生成的动画,因此,采用这种方式设计出的虚拟对象动作在做出动作的时候通常较为僵硬、不自然。
进而,为了使设计出的虚拟对象动作更加自然,后续出现了基于动作迁移技术来生成虚拟对象动作的方案。
一般来说,动作迁移技术在使用的时候,是由游戏公司请专业的演员,利用专业的动作捕捉设备对演员的动作行为进行动作信息采集,再由专业的技术美术人员将采集到的动作信息写回游戏客户端,而后就可以驱动游戏模型做出舞蹈演员所做出的动作了。与单纯通过三维动画软件来设计虚拟对象动作的方式相比,采用动作迁移技术来设计虚拟对象动作的时候,参考了动作发出者(如舞蹈演员、武术演员)实际做出的动作,因此,设计出的虚拟对象动作会更加流畅、自然。
发明内容
本申请的目的在于提供虚拟对象模型的动作指令的生成方法、装置、电子设备和存储介质。
在一些实施例中,一种虚拟对象模型的动作指令的生成方法,包括:
获取对目标单位进行拍摄得到的连续的多帧二维动作图像;
针对每帧二维动作图像,根据该帧二维动作图像,和与该帧二维动作图像在拍摄时间上相近的其他二维动作图像,计算该帧二维动作图像中目标单位的骨骼的第一三维坐标;
根据每帧二维动作图像中目标单位的骨骼的第一三维坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在一些实施例中,根据每帧二维动作图像中目标单位的骨骼的第一三维坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令,包括:
针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一三维坐标、预设的第一投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一三维坐标按照第一投影相机参数值投影到第一二维坐标所使用的第一平移向量;
针对每帧二维动作图像,使用第一平移向量对该帧二维动作图像中目标单位的骨骼的第二三维坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第一世界坐标;第二三维坐标是对该帧二维动作图像进行单帧骨骼坐标计算后得到的;
根据每帧二维动作图像中目标单位的骨骼的第一世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在一些实施例中,根据每帧二维动作图像中目标单位的骨骼的第一世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令,包括:
针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一世界坐标、预设的第二投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一世界坐标按照第二投影相机参数值投影到第一二维坐标所使用的第二平移向量;
针对每帧二维动作图像,使用该帧二维动作图像的第二平移向量,对每帧二维动作图像中目标单位的骨骼在世界坐标系下的第一世界坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标;
根据每帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在一些实施例中,根据每帧二维动作图像中目标单位的骨骼的第一三维坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令,包括:
针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一三维坐标、预设的第一投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一三维坐标按照第一投影相机参数值投影到第一二维坐标所使用的第一平移向量;
针对每帧二维动作图像,使用第一平移向量对该帧二维动作图像中目标单位的骨骼的第一三维坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第三世界坐标;
根据每帧二维动作图像中目标单位的骨骼的第三世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在一些实施例中,根据每帧二维动作图像中目标单位的骨骼的第三世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令,包括:
针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第三世界坐标、预设的第二投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第三世界坐标按照第二投影相机参数值投影到第一二维坐标所使用的第二平移向量;
针对每帧二维动作图像,使用该帧二维动作图像的第二平移向量,对每帧二维动作图像中目标单位的骨骼在世界坐标系下的第三世界坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第四世界坐标;
根据每帧二维动作图像中目标单位的骨骼在世界坐标系下的第四世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在一些实施例中,第一平移向量是三维平移向量;第二平移向量是在成像平面下的平移向量。
在一些实施例中,在根据每帧二维动作图像中目标单位的骨骼的第一世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令之前,还包括:
针对每帧二维动作图像,根据虚拟对象模型中骨骼的长度,对该帧二维动作图像中目标单位的骨骼的第一世界坐标进行调整,以使调整后的该帧二维动作图像中目标单位的骨骼的长度与虚拟对象模型中骨骼的长度相适应。
在一些实施例中,根据每帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令,包括:
针对每个二维动作图像,根据虚拟对象在预设状态下的姿态信息和目标单位的骨骼的第二世界坐标,生成该帧二维动作图像的虚拟对象的骨骼旋转参数;
根据每个二维动作图像的虚拟对象的骨骼旋转参数,和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在一些实施例中,骨骼旋转参数为如下的任意类型的参数:欧拉角旋转参数、四元数旋转参数。
在一些实施例中,针对每帧二维动作图像,根据该帧二维动作图像,和与该帧二维动作图像在拍摄时间上相近的其他二维动作图像,计算该帧二维动作图像中目标单位的骨骼的第一三维坐标,包括:
针对每帧二维动作图像,将与该帧二维动作图像在拍摄时间上相近的其他二维动作图像中目标单位的骨骼的第一二维坐标和该帧二维动作图像中目标单位的骨骼的第一二维坐标输入到训练完成的第一特征提取模型中,以确定该帧二维动作图像的第一骨骼位置特征;
针对每帧二维动作图像,与该帧二维动作图像在拍摄时间上相近的其他二维动作图像的第一骨骼位置和该帧二维动作图像的第一骨骼位置输入到训练完成的第二特征提取模型中,以确定该帧二维动作图像的第二骨骼位置特征;
针对每帧二维动作图像,根据该帧二维动作图像的第二骨骼位置特征,确定该帧二维动作图像中目标单位的骨骼的第一三维坐标。
在一些实施例中,还包括按照如下方式确定每帧二维动作图像的第二三维坐标:
针对每帧二维动作图像,将该帧二维动作图像输入到二维骨骼坐标计算模型,以得到该帧二维动作图像中目标单位的第一二维坐标;
针对每帧二维动作图像,将该帧二维动作图像中目标单位的第一二维坐标输入到单帧骨骼三维坐标计算模型,以得到该帧二维动作图像中目标单位的第二三维坐标。
在一些实施例中,一种虚拟对象模型的动作指令的生成装置,包括:
第一获取模块,用于获取对目标单位进行拍摄得到的连续的多帧二维动作图像;
第一计算模块,用于针对每帧二维动作图像,根据该帧二维动作图像,和与该帧二维动作图像在拍摄时间上相近的其他二维动作图像,计算该帧二维动作图像中目标单位的骨骼的第一三维坐标;
第一生成模块,用于根据每帧二维动作图像中目标单位的骨骼的第一三维坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在一些实施例中,第一生成模块,包括:
第一计算单元,用于针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一三维坐标、预设的第一投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一三维坐标按照第一投影相机参数值投影到第一二维坐标所使用的第一平移向量;
第一平移单元,用于针对每帧二维动作图像,使用第一平移向量对该帧二维动作图像中目标单位的骨骼的第二三维坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第一世界坐标;第二三维坐标是对该帧二维动作图像进行单帧骨骼坐标计算后得到的;
第一生成单元,用于根据每帧二维动作图像中目标单位的骨骼的第一世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在一些实施例中,第一生成单元,包括:
第一计算子单元,用于针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一世界坐标、预设的第二投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一世界坐标按照第二投影相机参数值投影到第一二维坐标所使用的第二平移向量;
第一平移子单元,用于针对每帧二维动作图像,使用该帧二维动作图像的第二平移向量,对每帧二维动作图像中目标单位的骨骼在世界坐标系下的第一世界坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标;
第一生成子单元,用于根据每帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在一些实施例中,第一生成模块,,包括:
第二计算单元,用于针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一三维坐标、预设的第一投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一三维坐标按照第一投影相机参数值投影到第一二维坐标所使用的第一平移向量;
第二平移单元,用于针对每帧二维动作图像,使用第一平移向量对该帧二维动作图像中目标单位的骨骼的第一三维坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第三世界坐标;
第二生成单元,用于根据每帧二维动作图像中目标单位的骨骼的第三世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在一些实施例中,第二生成单元,包括:
第二计算子单元,用于针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第三世界坐标、预设的第二投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第三世界坐标按照第二投影相机参数值投影到第一二维坐标所使用的第二平移向量;
第二平移子单元,用于针对每帧二维动作图像,使用该帧二维动作图像的第二平移向量,对每帧二维动作图像中目标单位的骨骼在世界坐标系下的第三世界坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第四世界坐标;
第二生成子单元,用于根据每帧二维动作图像中目标单位的骨骼在世界坐标系下的第四世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在一些实施例中,第一平移向量是三维平移向量;第二平移向量是在成像平面下的平移向量。
在一些实施例中,一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如虚拟对象模型的动作指令的生成方法的步骤。
在一些实施例中,一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如虚拟对象模型的动作指令的生成方法的步骤。
本申请实施例提供的虚拟对象模型的动作指令的生成方法,首先获取了对目标单位进行拍摄得到的连续的多帧二维动作图像;而后,针对每帧二维动作图像,根据该帧二维动作图像,和与该帧二维动作图像在拍摄时间上相近的其他二维动作图像,计算出了该帧二维动作图像中目标单位的骨骼的第一三维坐标;最后,根据每帧二维动作图像中目标单位的骨骼的第一三维坐标和多帧二维动作图像之间的拍摄顺序,生成了虚拟对象模型的动作指令。也就是,本申请所提供的方法,在计算目标单位的骨骼的三维坐标时,采用了多帧二维动作图像的二维坐标进行协同计算的方式。由于计算的时候,考虑了拍摄时间相近的其他帧的情况(不同帧的二维坐标),因此,使得最终计算出的该帧图像三维坐标与相邻图像的三维坐标不容易发生坐标突变的情况,使得按照计算出的三维坐标来生成虚拟对象模型控制指令后,通过该控制指令驱动虚拟对象模型进行动作时,虚拟对象模型的动作更为平滑、自然。也就是,本申请所提供的方法能够更大程度的使虚拟对象模型的动作更接近实际的目标单位的动作,提高了动作还原精度。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的本申请提供了一种生成虚拟对象模型的动作指令的方法的基本流程图;
图2示出了本申请实施例所提供的检测网络的结构示意图;
图3示出了本申请实施例所提供的本申请提供了一种生成虚拟对象模型的动作指令的方法中,第一种具体生成虚拟对象模型的动作指令的流程示意图;
图4示出了本申请实施例所提供的本申请提供了一种生成虚拟对象模型的动作指令的方法中,第二种具体生成虚拟对象模型的动作指令的流程示意图;
图5示出了本申请实施例所提供的本申请提供了一种生成虚拟对象模型的动作指令的方法中,进行第一三维坐标生成的细节流程图;
图6示出了本申请实施例所提供的本申请提供了一种生成虚拟对象模型的动作指令的方法中,使用由2个特征提取模型所组成的多帧骨骼三维坐标计算模型进行第一三维坐标生成的过程示意图;
图7示出了本申请实施例所提供的电子设备的示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,为了保证虚拟对象动作所做出的动画更加自然、流畅,游戏设计者通常会采用动作迁移技术来设计虚拟对象动作。在使用动作迁移技术进行虚拟对象动作设计的初期,为了保证动作的优美,设计者通常会聘请专业的演员(如舞蹈演员或者是武术演员)帮助设计虚拟对象动作。具体实现时,通常会在演员身上的不同位置设置多个传感器,并通过传感器采集到演员所作出的各种动作,最后,利用传感器所采集到的数据来生成虚拟对象动作。这种利用传感器来辅助完成动作迁移的技术需要十分专业的设备,因此,只有大型的游戏公司才能使用这种动作迁移技术。
后来,随着摄像机技术的发展,出现了3D摄像头(三维摄像头),进而出现了利用3D摄像头所拍摄到的3D图像(3D图像中携带有景深信息)进行动作迁移的技术。但上述利用3D摄像头拍摄的3D图像进行动作迁移的技术和利用传感器进行动作迁移的技术过于专业,对于一般的用户并不友好,主要是因为一般的用户所能够使用的仅仅是2D摄像机,3D摄像机技术和传感器技术难以让一般的用户掌握。
进而,后续随着深度学习技术的发展,有技术人员在动作迁移技术中应用了深度学习技术,也就是对2D图像使用深度学习技术进行三维人体姿态计算,以提取到图像中人物的三维位置信息,进而利用提取到的三维位置信息来进行动作迁移。使用深度学习技术完成动作迁移时,不再需要在演员身上设置传感器来采集数据,只需要通过2D摄像机拍摄演员做出的一系列的动作,而后使用拍摄得到视频来进行动作迁移即可。
具体来说,三维人体姿态计算是指对视频图像中的人体进行各个关节点在三维空间中的位置预测,得到一副与图片中的人体动作相对应的三维骨架(人体各个骨骼的三维坐标)。常见的三维人体姿态计算主要分为两大类,分别是使用一阶段(one stage)模型进行计算和使用两阶段(two stages)模型进行计算。
其中,一阶段模型是通过设计一个整体的神经网络结构,进行端到端的三维人体姿态计算。
两阶段模型则首先进行二维人体姿态计算,再利用二维人体姿态(人体骨骼在2D坐标系中的位置)计算的结果回归出三维人体姿态(人体骨骼在3D坐标系中的位置),其中第一阶段的二维人体姿态计算一般通过神经网络来完成,第二阶段则通过概率模型或者小型回归网络来完成。相比一阶段模型,由于近些年二维姿态计算方法发展迅速,而二维姿态计算的结果是决定最后三维计算姿态准确性的关键因素之一,因此,目前,使用两阶段模型进行的三维人体姿态计算的结果会更加稳定。
在利用两阶段模型进行计算的时候,主要分成如下三个步骤:
步骤1:针对每一帧图像,向一阶段模型中输入该帧包含有人体的二维图像,以使一阶段模型输出该帧图像的人体骨骼的二维坐标(在该图像中的二维位置);
步骤2,针对每一帧图像,向二阶段模型中输入该帧图像的人体骨骼的二维坐标,以使二阶段模型输出人体骨骼的三维坐标(在物体坐标系中的位置)。
通过上述步骤1和2对每帧图像进行处理后,就可以得到每帧图像中人体骨骼的三维坐标。之后,根据每帧图像中人体骨骼的三维坐标和每帧图像的先后顺序,就可以生成虚拟对象模型的动作了。
本申请发明人在使用上述方法进行动作迁移的时候发现,采用上述方法得到的虚拟对象动作存在抖动和跳变的情况,经过发明人分析,认为造成这种情况的主要原因是:使用上述步骤1和2在计算人体骨骼的三维坐标的时候,只使用了单帧骨骼坐标计算的方式,也就是只使用了需要计算人体骨骼在三维空间中的位置的2D图像本身来计算该图像的三维坐标。由于被计算的图像本身是一个二维图像,因此,在计算人体骨骼在三维空间中的位置时,可能会有不准确的情况,进而,当连续的多帧图像中有一帧图像计算出的人体骨骼在三维空间中的位置出现偏差,就会导致虚拟对象在做出该帧图像的动作时出现抖动和跳变的情况。
针对上述情况,申请人认为,可以采用连续多帧图像协同计算的方式来为一帧图像生成人体骨骼在三维空间中的位置,由于时间上连续的图像中,人体的姿态必然是连续的,因此,采用拍摄时间相近的多帧图像来辅助一帧图像进行人体骨骼在3D坐标系中位置的计算,可以一定程度上解决计算三维坐标不准确的问题。
进而,如图1所示,本申请提供了一种生成虚拟对象模型的动作指令的方法,包括:
S101,获取对目标单位进行拍摄得到的连续的多帧二维动作图像;
S102,针对每帧二维动作图像,根据该帧二维动作图像,和与该帧二维动作图像在拍摄时间上相近的其他二维动作图像,计算该帧二维动作图像中目标单位的骨骼的第一三维坐标;
S103,根据每帧二维动作图像中目标单位的骨骼的第一三维坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
步骤S101中,二维动作图像通常是通过2D摄像机拍摄得到的,也可以是通过其他种类的相机拍摄得到的,但应当保证的是,摄像机在对目标单位进行拍摄进而生成二维动作图像的时候,除了生成记录有目标单位的二维照片,还应当记录有每个二维动作图像的生成时间(该生成时间也可以认为是拍摄时间)。通常情况下,步骤S101中的多帧二维动作图像应当能够反映出目标单位的连续动作。这多帧二维动作图像通常是使用同一个摄像机拍摄得到的;或者说,拍摄得到的多帧二维动作图像的摄像机的位置应当是保持不变的。并且,这多帧二维动作图像通常是在一个较短的时间内拍摄完成的,比如,步骤S101中,在对目标单位进行拍摄后所得到的多帧二维动作图像可以是一个视频中的多个图像(也可以是多个在帧数上相连续的图像)。
此处的目标单位可以是任意的一个可以活动的对象,比如目标单位可以是人,拍摄得到的多帧二维动作图像可以反映了人的跳舞动作,可以反映了人的跑步动作等。目标单位还可以是某种动物(如狗、猫等),进而拍摄得到的多帧二维动作图像可以是反映了该动物的跑步动作、攀爬动作等。
步骤S102中,需要针对每帧二维动作图像进行处理,以生成该帧二维动作图像中目标单位的骨骼的三维坐标。如前文中的说明,相关技术中,在生成二维动作图像中目标单位的骨骼的三维坐标时,只使用了该帧图像本身进行预估,而没有使用和该帧图像相近的其他图像参与预估,这就导致了预估三维坐标可能出现偏差。进而,步骤S102中,就采用了拍摄时间相近的多帧图像进行协同计算,以采用多帧计算的方式计算出每帧二维动作图像中目标单位的骨骼的第一三维坐标。
此处,需要对步骤S1022中所提及的相近进行说明。步骤S1022中,多帧二维动作图像必然是有拍摄的先后顺序的。比如共有5帧连续拍摄得到的二维动作图像A、B、C、D和E,在计算图像E的第一三维坐标时,可以使用图像A-D中的任意一个图像参与计算。比如,可以使用图像A和E来计算图像E中目标单位的骨骼的第一三维坐标;可以使用图像D和E来计算图像E中目标单位的骨骼的第一三维坐标;也可以使用图像A、D和E来计算图像E中目标单位的骨骼的第一三维坐标。也就是,计算图像E中目标单位的骨骼的第一三维坐标时,并不必然就使用和图像E在帧数上最邻近的图像D来参与计算,也可以使用图像A-C中的任意一个或多个来参与计算。只要参与计算的图像与图像E的拍摄时间足够接近(拍摄时间足够接近,意味着图像A对帮助分析图像E中的目标单位的骨骼位置有帮助)即可。
具体而言,步骤S102可以分成两个步骤,分别如下:
步骤1021,针对每一帧二维动作图像,将该帧二维动作图像输入到二维骨骼坐标计算模型(第一阶段模型)中,以使二维骨骼坐标计算模型输出该帧二维动作图像中目标单位的第一二维坐标;
步骤1022,针对每一帧二维动作图像,将与该帧二维动作图像在拍摄时间上相近的其他二维动作图像中目标单位的骨骼的第一二维坐标和该帧二维动作图像中目标单位的骨骼的第一二维坐标输入到训练完成的多帧骨骼三维坐标计算模型中,以确定该帧二维动作图像中目标单位的骨骼的第一三维坐标。
步骤1021中所提及的二维骨骼坐标计算模型(第一阶段模型)可以为根据预设的二维姿态数据集经过预设的训练周期进行训练得到的神经网络。该预设的二维姿态数据集例如可以为开源的人体二维姿态数据集,如公共对象(Common Objects in Context,简称COCO)的二维人体姿态数据集。该预设的训练周期例如可以为350个训练周期(epoch)。
通过步骤1021可以得到每帧二维动作图像在物体坐标系中的位置(即二维动作图像中目标单位的第一二维坐标)。
步骤1022中,则是使用了多帧预测的方式,将步骤1021中所得到的多个图像的第一二维坐标作为模型的输入,来计算每个二维动作模型的第一三维坐标。在计算某一帧二维动作图像中目标单位的第一二维坐标时,需要同时使用到该帧二维动作图像中目标单位的骨骼的第一二维坐标,和至少一个(为保证计算质量,可以使用至少两个)与该二维动作图像在拍摄时间上相近的其他二维动作图像中目标单位的骨骼的第一二维坐标。通常情况下,为了保证计算的质量,应当保证在计算某一帧二维动作图像的目标单位的骨骼的第一二维坐标时,使用的其他二维动作图像中应当有至少一帧拍摄时间早于该二维动作图像的图像,和至少一帧拍摄时间晚于该二维动作图像的图像。下面列举一个简单示例进行说明:
如存在有连续拍摄得到的9帧二维动作图像,分别为A、B、C、D、E、F、G、H和I;在计算图像C中目标单位的骨骼的第一三维坐标时,可以至少使用图像A和图像B中的一个,和使用到图像D-图像I中的一个。
也就是,为了保证计算质量,在针对每一帧二维动作图像,计算其目标单位的骨骼的第一三维坐标时,同时使用到了至少三帧图像,分别是:至少一帧拍摄时间早于该二维动作图像的动作图像、至少一帧拍摄时间晚于该二维动作图像的动作图像,和该帧二维动作图像本身。
步骤S103中,直接根据每帧二维动作图像中目标单位的骨骼的第一三维坐标和多帧二维动作图像之间的拍摄顺序,就可以确定出来在使用摄像机对目标单位进行拍摄的时候,目标单位在空间中所作出的动作的准确位置,进而,就可以知晓如何设置虚拟对象模型的动作指令,就可以使得虚拟对象模型做出和目标单位相同的动作了。最后,按照此种方式生成虚拟对象模型的动作指令即可,后续使用的时候,可以将该虚拟对象模型的动作指令输入到控制设备中,以使虚拟对象模型做出和目标单位相同的连续动作。进而,可以根据虚拟对象模型依据动作指令所作出的动作生成动画,或者是在游戏过程中,让虚拟对象模型作出和目标单位相同的动作(如用户按下攻击键后,让虚拟对象模型作出和目标单位相同的挥砍动作;或者是用户按下跳舞键之后,让虚拟对象模型作出和目标单位相同的舞蹈动作)。
一般情况下,步骤S101中直接通过摄像机所拍摄得到的照片中,目标单位并不必然是在图像中间的,因此,需要通过图像处理的方式,定位到目标单位所在的准确位置,提取出目标单位在中央的小图,并对小图进行二维坐标提取。
具体实现的时候,可以是首先,针对每帧二维动作图像,对该帧二维动作图像进行人体检测,得到至少一个包括该人体的图像块(二维动作图像的局部图像),以及每个图像块对应的检测得分(得分说明了该图像块中包含有目标单位的情况,也就是目标单位的面积越大,背景越小则得分越高;包含的目标单位的面积越大,则得分越高)。
该方法可根据预设的检测目标网络,对该二维动作图像进行人体检测,以得到至少一个包括该人体的图像块,和每个图像块对应的检测得分。具体地,可将该二维动作图像输入该检测网络,以通过该检测网络对该二维动作图像进行人体检测。
该检测网络可以为根据预设的目标检测数据集进行预设的训练周期进行训练得到的网络。该目标检测数据集可以为人体检测数据集,其例如可以为开源的人体检测数据集,如COCO的人体检测数据集。该预设的训练周期例如可以为50个训练周期(epoch)。
如图2所示,为检测网络的结构示意图。该检测网络可以为图2所示的一系列的卷积层和残差模块构成的深度神经网络。如图2所示,该检测网络中卷积(Convolutional)层可包括具有连续的多个卷积层及残差模块的卷积通道、池化(avgpool)函数、全连接(Connected)层及软最大(Softmax)函数。卷积层中依次包括:两个不同尺寸的卷积单元,以及残差(Residual)模块,该两个不同尺寸的卷积单元可包括:尺寸为1X1的卷积单元,和尺寸为3X3的卷积单元。
在确定了图像块的得分之后,就可以针对每帧二维动作图像,根据该帧二维动作图像所对应的图像块的得分确定目标图像块(一般来说,分数最高的应当作为目标图像块)。而后,该目标图像块就可以直接用于计算二维第一二维坐标了。
上述步骤S101-S103中,重点在于:在原有的生成虚拟对象模型的动作指令时,引入了多帧图像协同预测骨骼三维坐标的方式(步骤S102的处理方式),使得预测得到的结果更加准确。具体而言,由于采用了步骤S102中的处理方式,使得在预估二维动作图像中目标单位的骨骼的第一三维坐标时,考虑到了与该帧二维动作图像在拍摄时间上相近的其他二维动作图像,提高了计算该帧二维动作图像中目标单位的三维坐标的精准程度,使得计算出的相近的多帧二维动作图像中目标单位的骨骼的第一三维坐标会呈现出连续平滑变化的情况,而不是出现坐标跳变的情况,进而使得使用虚拟对象模型所做出的动作更为平滑、自然,不会出现跳变和抖动的情况。
步骤S102中所得到的第一三维坐标通常只是在物体坐标系(物体坐标系下,无法体现出)下的坐标,直接使用该第一三维坐标只能够确定出目标单位所作出的动作,但是无法确定出目标单位相对于地面或者其他参照物的动作。因此,在某些使用场景下,需要将第一三维坐标转换到世界坐标系下使用,也就是,在某些使用场景下,需要在生成虚拟对象模型的动作指令之前,将第一三维坐标转换到世界坐标系下。
也就是,步骤S103中,需要先进行世界坐标的转换,而后,再生成动作指令。
具体的,步骤S103在实现的时候,有两种实现方式,分别是:第一种,使用多帧计算的结果和单帧计算的结果相结合进行坐标转换;第二种,直接使用多帧计算的结果,即第一三维坐标进行转换。下面分别对这两种方式进行说明:
第一种实现方式,使用多帧计算的结果和单帧计算的结果相结合进行坐标转换。
经过发明人的多次实验,发现多帧预测的方式能够较为准确的确定出目标单位骨骼的长度,但在目标单位骨骼的角度预测方面就不如单帧预测的方式了。也就是,使用多帧预测的方式所得到的二维动作图像中目标单位的骨骼的第一三维坐标能够较为准确的反映出目标单位的骨骼长度,但无法准确的反映骨骼角度。或者说,使用单帧预测得到的三维坐标计算出的骨骼角度,要比使用多帧预测所得到的三维坐标计算出的骨骼角度更准确;并且,使用多帧预测得到的三维坐标计算出的骨骼长度,要比使用单帧预测所得到的三维坐标计算出的骨骼长度更准确。因此,本申请的发明人认为,可以将多帧预测和单帧预测的结果结合起来,以使整体方案的效果更佳。
进而,在将两种预测的方式结合起来之后,如图3所示,步骤S103可以按照如下方式实现:
S1031,针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一三维坐标、预设的第一投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一三维坐标按照第一投影相机参数值投影到第一二维坐标所使用的第一平移向量;
S1032,针对每帧二维动作图像,使用第一平移向量对该帧二维动作图像中目标单位的骨骼的第二三维坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第一世界坐标;第二三维坐标是分别对每帧二维动作图像进行单帧骨骼坐标计算后得到的;
S1033,根据每帧二维动作图像中目标单位的骨骼的第一世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
步骤S1031-S1032的目的是将在物体坐标系下的三维坐标转换到世界坐标系下,以确定每帧二维动作图像中目标单位的骨骼在世界坐标系下的第一世界坐标。如前文中的说明,由于多帧预测的结果(第一三维坐标)能够更好的反映出骨骼的长度,因此,在计算第一平移向量的时候,应当使用第一三维坐标进行计算。
下面,简单说明一下计算第一平移向量的原理。第一平移向量的主要作用是将物体坐标系下的坐标转换到世界坐标系(绝对坐标系)下,为了保证转换的准确,需要先将目标单位的骨骼的三维坐标按照既定的平移向量进行平移(将一帧图像中的目标单位的全部骨骼同时按照平移向量进行平移);在平移之后,按照预定的单孔相机模型(受投影相机参数值影响)进行投影,也就是将平移后的三维坐标投影到2D平面上(投影到第一二维坐标所在的平面上),如果投影到2D平面上的结果与二维动作图像中目标单位的骨骼的第一二维坐标重叠,则说明该平移向量是准确的,可以作为第一平移向量。实际上,可能投影的结果无法与第一二维坐标完全重叠(重叠程度通过第一投影误差值来表征),那只要取可以保证重叠率较高的平移向量作为第一平移向量即可;反之,如果当前的平移向量无法保证重叠率较高,则应当换一个平移向量(可以是调整平移向量的数值)重复进行上述计算,直至找到符合条件的平移向量作为第一平移向量。
进而,具体在实现的时候,可以按照如下的方式针对每帧动作图像计算第一平移向量:
S1,根据该帧二维动作图像中目标单位的骨骼的第一三维坐标、该帧二维动作图像中目标单位的第一二维坐标、预设的第一单孔相机投影矩阵(第一投影相机参数值)和设置好的第一待确认平移向量,计算第一投影误差值;
S2,如果第一投影误差值小于设定的数值,则确定该第一待确认平移向量为第一平移向量;
S3,如果第一投影误差值大于设定的数值,则重新设置第一待确认平移向量的数值,并执行步骤S1。
也就是,计算第一平移向量的过程是一个迭代计算的过程,在计算的过程中,如果第一待确认平移向量不满足预设的条件,则需要使用下一个第一待确认平移向量进行计算,或者是临时调整第一待确认平移向量的数值,并根据调整后的第一待确认平移向量的数值来计算第一投影误差值,以确定调整后的第一待确认平移向量是否可以作为第一平移向量。此处,使用第一三维坐标来计算第一平移向量的主要原因是使用第一平移向量计算第一投影误差值会更准确,这样相机投影后寻找平移向量也能更准确。
具体在计算的时候,可以使用levenberg-marquardt算法(莱文贝格-马夸特算法)进行上述步骤S1-S3的计算,还可以使用牛顿下降法、高斯法等方法完成计算。
在计算出了第一平移向量之后,步骤S1032中,可以直接使用第一平移向量对第二三维坐标进行平移,平移的方式可以是直接将第一平移向量和第二三维坐标求和,进而,就可以得到二维动作图像中目标单位的骨骼在世界坐标系下的第一世界坐标了。
此处,需要对第二三维坐标进行说明,该第二三维坐标是对该帧二维动作图像进行单帧骨骼坐标计算后得到的。此处的计算方式可以与前述方案中所介绍的单帧骨骼坐标计算的方式相同,其可以包括如下两个步骤:
步骤11,针对每帧二维动作图像,将该帧二维动作图像输入到二维骨骼坐标计算模型,以得到该帧二维动作图像中目标单位的第一二维坐标;
步骤12,针对每帧二维动作图像,将该帧二维动作图像中目标单位的第一二维坐标输入到单帧骨骼三维坐标计算模型,以得到该帧二维动作图像中目标单位的第二三维坐标。
可以看出,步骤11和步骤1021的实现方式是相同,实际上,在本申请所提供的方案在具体实现时,首先需要分别对每一帧二维动作图像进行二维坐标生成(使用步骤11或步骤1021),也就是,使用二维骨骼坐标计算模型(一阶段模型)生成每个二维动作图像的第一二维坐标。
与步骤1022不同的是,步骤12中,采用的单帧骨骼三维坐标计算模型来处理,该模型的输入是一帧二维动作图像中目标单位的第一二维坐标,而不是多帧二维动作图像中目标单位的第一二维坐标。
在步骤1032得到了第一世界坐标之后,可以直接使用该第一世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。生成动作指令的方式与前述步骤S103中生成动作指令的方式相同,此处不再重复说明。
进而,通过上述步骤S1031-S1033,将多帧骨骼坐标计算的优势(第一三维坐标能更好的反映骨骼长度)和单帧骨骼坐标计算的优势(第二三维坐标能更好的反映骨骼角度)进行了整合,使得虚拟对象模型按照步骤S1033生成的动作指令进行动作时,所做出的动作会更加符合实际情况。
如前文中的描述,步骤S1031在计算第一平移向量的时候,无法保证使用第一平移向量来移动第二三维坐标,而后再进行投影的结果与第一二维坐标完全重叠,也就是,只使用步骤S1031-S1032得到的第一世界坐标可能是有一定的误差的。由于该误差的存在,可能会导致虚拟对象模型的动作不够协调。进而,为了进一步消除该误差,发明人认为,可以在生成第一世界坐标之后,采用二次投影+移动的方式来减少该误差。具体在实现的时候,步骤S1033可以按照如下方式实现:
步骤10331,针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一世界坐标、预设的第二投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一世界坐标按照第二投影相机参数值投影到第一二维坐标所使用的第二平移向量;
步骤10332,针对每帧二维动作图像,使用该帧二维动作图像的第二平移向量,对每帧二维动作图像中目标单位的骨骼在世界坐标系下的第一世界坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标;
步骤10333,根据每帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
也就是,步骤10331中,依旧是采用迭代的方式计算第二平移向量,具体可以按照如下的方式计算第二平移向量:
S4,根据该帧二维动作图像中目标单位的骨骼的第一世界坐标、该帧二维动作图像中目标单位的第一二维坐标、预设的第二单孔相机投影矩阵(第二投影相机参数值)和设置好的第二待确认平移向量,计算第二投影误差值;
S5,如果第二投影误差值小于设定的数值,则确定该第二待确认平移向量为第二平移向量;
S6,如果第二投影误差值大于设定的数值,则重新设置第二待确认平移向量的数值,并执行步骤S4。
可见,计算第二平移向量的过程也是一个迭代计算的过程,在计算的过程中,如果第二待确认平移向量不满足预设的条件,则需要使用下一个第二待确认平移向量进行计算,或者是临时调整第二待确认平移向量的数值,并根据调整后的第二待确认平移向量的数值来计算第二投影误差值,以确定调整后的第二待确认平移向量是否可以作为第二平移向量。
具体在计算的时候,可以使用levenberg-marquardt算法(莱文贝格-马夸特算法)进行上述步骤S1-S3的计算,还可以使用牛顿下降法、高斯法等方法完成计算。
在确定了第二平移向量之后,直接使用该第二平移向量对目标单位的骨骼在世界坐标系下的第一世界坐标进行平移就可以了。平移的方式可以是直接将第二平移向量和第一世界坐标求和,进而,就可以得到二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标了。
最后,使用每帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令即可。
此处需要说明的是,不论是第一平移向量,还是第二平移向量,其作用都是针对一帧图像中目标单位的骨骼进行平移,也就是每一帧图像都应当计算一个第一平移向量和第二平移向量。
经过两次使用平移向量来调整坐标,使得最终调整后的第二世界坐标更加接近目标单位的实际动作,提高了准确性。
此处,需要对这两个平移向量(第一平移向量和第二平移向量)进行进一步的说明,在某些情况下,第一平移向量优选是三维平移向量;第二平移向量优选是在成像平面下的平移向量。
此处的成像平面指的是,使用预设的投影相机模型(使用投影相机参数值进行表征)进行投影后所在的平面,通常来说,成像平面指的是XY坐标系所在的平面。三维平移向量是在XYZ坐标系下的坐标,其中Z指的是高度,进而,XY坐标系就是在XTZ坐标系下,去掉了Z方向的维度进而形成的坐标系。先进行包含深度方向的调整(平移),而后再进行XY方向的平移,能够使得动作更为协调。
第二种实现方式,直接使用多帧计算的结果,即第一三维坐标进行转换。
使用第一种实现方式能够保证得到的计算结果是较为准确的,但需要单独进行单帧预测(计算第二三维坐标)。因此,在某些情况下,第一种实现方式的计算量相对较高,为了降低计算量,就可以采用第二种实现方式。
在第二种实现方式下,步骤S103在具体实现的时候,如图4所示可以按照如下方式实现:
步骤S1034,针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一三维坐标、预设的第一投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一三维坐标按照第一投影相机参数值投影到第一二维坐标所使用的第一平移向量;
步骤S1035,针对每帧二维动作图像,使用第一平移向量对该帧二维动作图像中目标单位的骨骼的第一三维坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第三世界坐标;
步骤S1036,根据每帧二维动作图像中目标单位的骨骼的第三世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
需要说明的是,步骤S1034的实现过程与步骤S1031的实现过程相同,步骤S1035与步骤S1032的实现原理相同,步骤S1036和步骤S1033的实现原理相同。下面仅对这些步骤之间的差别进行说明:
步骤S1035中,其进行平移的对象是第一三维坐标,而不是步骤S1032中的第二三维坐标。步骤S1036中生成虚拟对象模型的动作指令时,使用的是步骤S1035中所生成的第三世界坐标。
由于正是由于步骤S1034-S1036只使用了第一三维坐标,因此,确定出的世界坐标的准确程度相对于步骤S1031-S1033而言,相对低一些。
与前述步骤相似的,在具体实现时还可以在步骤S1034-S1036的基础上,进一步进行平移,也就是步骤S1036可以按照如下方式实现:
步骤10361,针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第三世界坐标、预设的第二投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第三世界坐标按照第二投影相机参数值投影到第一二维坐标所使用的第二平移向量;
步骤10362,针对每帧二维动作图像,使用该帧二维动作图像的第二平移向量,对每帧二维动作图像中目标单位的骨骼在世界坐标系下的第三世界坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第四世界坐标;
步骤10363,根据每帧二维动作图像中目标单位的骨骼在世界坐标系下的第四世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
类似的,优选第一平移向量是三维平移向量;第二平移向量是在成像平面下的平移向量。
上述两种步骤S103的实现方式相比,第一种实现方式的精度较高,第二种实现方式的计算效率较高,各有优势。在进行具体实现的时候,可以先行考察计算设备(执行步骤S101-S103的执行主体)的当前负载情况,如果计算设备的当前负载情况较高,则可以使用第二种实现方式;如果计算设备的当前负载情况较低,则可以使用第一种实现方式。
不论采用上述哪种实现方式,实际操作中,目标单位(被录制视频的对象)的身体比例和预设的虚拟对象模型的身体比例都很可能是不同的,主要是体现在各个骨骼的长度有差别(如虚拟对象模型的手臂长度和目标单位的手臂长度不同,或者是虚拟对象模型的手臂长度与身体长度的比值,和目标单位的手臂长度与身体长度的比值不同),因此,为了使生成的虚拟对象模型的动作更加贴合实际,在生成动作指令之前,还应当根据虚拟对象模型中骨骼的长度,对该帧二维动作图像中目标单位的骨骼的第一世界坐标进行调整,以使调整后的该帧二维动作图像中目标单位的骨骼的长度与虚拟对象模型中骨骼的长度相适应。此处的相适应主要是指相同部位的骨骼长度应当相同,或者是不同骨骼之间的比例应当一致。
也就是,在步骤S1033之前,还可以执行如下步骤:针对每帧二维动作图像,根据虚拟对象模型中骨骼的长度,对该帧二维动作图像中目标单位的骨骼的第一世界坐标进行调整,以使调整后的该帧二维动作图像中目标单位的骨骼的长度与虚拟对象模型中骨骼的长度相适应。
并且,在步骤S1036之前,还可以执行如下步骤:针对每帧二维动作图像,根据虚拟对象模型中骨骼的长度,对该帧二维动作图像中目标单位的骨骼的第三世界坐标进行调整,以使调整后的该帧二维动作图像中目标单位的骨骼的长度与虚拟对象模型中骨骼的长度相适应。
不论是采用上述第一种方式来生成动作指令,具体的动作指令应当是包含有骨骼旋转参数,也只有骨骼旋转参数才能够让计算机等智能设备识别。该骨骼旋转参数表征了每个图像中,目标单位中各个骨骼的动作行为。也就是,在生成世界坐标之后,需要进一步生成骨骼旋转参数,进而驱动虚拟对象模型做出需要的动作。
也就是,步骤10333可以按照如下方式实现:
针对每个二维动作图像,根据虚拟对象在预设状态下的姿态信息和目标单位的骨骼的第二世界坐标,生成该帧二维动作图像的虚拟对象的骨骼旋转参数;
根据每个二维动作图像的虚拟对象的骨骼旋转参数,和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
类似的,步骤10363可以按照如下方式实现:
针对每个二维动作图像,根据虚拟对象在预设状态下的姿态信息和目标单位的骨骼的第四世界坐标,生成该帧二维动作图像的虚拟对象的骨骼旋转参数;
根据每个二维动作图像的虚拟对象的骨骼旋转参数,和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
此处,旋转参数的形式有很多种,比如,旋转参数可以是欧拉角旋转参数、四元数旋转参数等。但经过发明人的具体实验,认为使用四元数旋转参数来实现方案会更有利。
如前文中的说明,本申请的重点是在生成虚拟对象模型的动作指令时,利用了多帧骨骼三维坐标计算模型,同时使用多帧图像来协同计算一帧图像的第一三维坐标,从而使得最终得到的虚拟对象模型按照根据第一三维坐标所生成的动作指令进行动作的时候,更为平滑,减少出现跳变和抖动的情况。
下面,对该多帧骨骼三维坐标计算模型的细节进行说明。该模型在实现的时候,可以是由嵌套的多层特征提取模型组成。下面,首先以多帧骨骼三维坐标计算模型是由基础的两个特征提取模型组成为例,来说明其实现过程,也就是,如图5所示,步骤S102可以通过如下三个步骤实现:
S1021,针对每帧二维动作图像,将与该帧二维动作图像在拍摄时间上相近的其他二维动作图像中目标单位的骨骼的第一二维坐标和该帧二维动作图像中目标单位的骨骼的第一二维坐标输入到训练完成的第一特征提取模型中,以确定该帧二维动作图像的第一骨骼位置特征;
S1022,针对每帧二维动作图像,与该帧二维动作图像在拍摄时间上相近的其他二维动作图像的第一骨骼位置和该帧二维动作图像的第一骨骼位置输入到训练完成的第二特征提取模型中,以确定该帧二维动作图像的第二骨骼位置特征;
S1023,针对每帧二维动作图像,根据该帧二维动作图像的第二骨骼位置特征确定该帧二维动作图像中目标单位的骨骼的第一三维坐标。
步骤S1021中,针对每帧二维动作图像,需要将该帧二维动作图像和与该帧二维动作图像在时间上相近的其他二维动作图像中的目标单位的骨骼的第一二维坐标输入到第一特征提取模型中,进而计算出该帧二维动作图像的第一骨骼位置特征。也就是,步骤S1021中可以计算出每帧二维动作图像的第一骨骼位置特征。
步骤S1022的实现方式与步骤S1021的实现方式相似,区别在于步骤S1021中输入的是第一二维坐标,步骤S1022中输入的是第一骨骼位置特征(步骤S1021的输出结果)。进而,步骤S1022中就可以得到每帧二维动作图像的第二骨骼位置特征了。
最后,在步骤S1023中,直接根据二维动作图像的第二骨骼位置特征,确定该帧二维动作图像中目标单位的骨骼的第一三维坐标即可。
需要说明的是,在实际实现的时候,特征提取模型的数量可以不只是两个,比如,可以是三个、四个或更多,但这些更多的特征提取模型的实现基础是两个特征提取模型,因此,不论实际实现的时候,使用了多少个特征提取模型,只要其原理与上述步骤S1021-S1023的原理相同,就应当将该实际实现的技术归属到本申请的保护范围之内。
不论使用多少个特征提取模型,这些特征提取模型都应当是顺序排列的,也就是首个特征提取模型的输入是二维动作图像中目标单位的骨骼的第一二维坐标;输出是骨骼位置特征;前一个特征提取模型输出的骨骼位置特征是下一个特征提取模型的输入;而后。收盘每个最后一个特征提取模型输出的最后一个骨骼位置特征就可以确定二维动作图像中目标单位的骨骼的第一三维坐标。
通常情况下,多帧骨骼三维坐标计算模型是整体同时进行训练的,也就是不论有多少个特征提取模型,都是同时训练完成的,并不是每个模型单独进行训练,比如第一骨骼位置特征、第二骨骼位置特征这些参数都是模型所输出的中间结果,其表征的物理含义应当是说明目标单位的骨骼的位置特征,在具体实现的时候可能无法通过某种具体的坐标形式的参数来表征。
一般来说,由多个特征提取模型所组成的多帧骨骼三维坐标计算模型中,最后一个特征提取模型的输出可以就是具体的骨骼的第一三维坐标,此时,直接将最后一个特征提取模型的输出作为第一三维坐标即可,不需要进行额外的计算。
下面,以一个具体的例子来说明步骤S1021-S1023的实现过程。如图6所示,示出了使用由2个特征提取模型所组成的多帧骨骼三维坐标计算模型进行第一三维坐标生成的过程示意图。从该图中可以看出,需要生成第一三维坐标的二维动作图像共有8个(由于连线过于复杂,为了避免混乱的情况,图中只绘出了图像D和E生成第一三维坐标的示意图),分别是A-H。在生成图像D的第一骨骼位置特征的时候,使用了图像C、D和E三个图像的第一二维坐标;类似的,生成图像B的第一骨骼位置特征的时候,使用了图像A、B和C三个图像的第一二维坐标;生成图像C的第一骨骼位置特征的时候,使用了图像B、C和D三个图像的第一二维坐标。也就是,步骤S1021在实现的时候,需要为每个图像生成第一骨骼位置特征,生成的基础就是与该图像相近的前后各一帧图像的第一二维坐标和自身的第一二维坐标。也就是,将该帧图像的前一帧图像的第一二维坐标、该帧图像的后一帧图像的第一二维坐标和该图像本身的第一二维坐标输入到第一特征提取模型中,来提取到该帧图像中目标单位的第一骨骼位置特征。
步骤S1022中,在生成第二骨骼位置特征的时候,也可以是直接使用图像自身的第一骨骼位置特征和前后各一帧图像的第一骨骼位置特征,但考虑到步骤S1021中,在生成第一骨骼位置特征的时候,前后相邻帧数的图像的第一二维坐标是已经考虑过的了。比如,生成图像D的第一骨骼位置特征和生成图像E的第一骨骼位置特征都是用到了图像D和E的第一二维坐标,这样就等于图像D在生成第一骨骼位置特征的时候,考虑了图像E的第一二维坐标,再在生成图像D的第二骨骼位置特征的时候使用图像E的第一骨骼位置特征的话,图像E的第一二维坐标就被二次使用了,这样不会提高计算精度,只会增加计算量。因此,在使用第二特征提取模型生成第二骨骼位置特征的时候,应当使用与该图像的第一骨骼位置特征无关的目标图像的第一骨骼位置特征作为输入。此处,与该图像的第一骨骼位置特征无关的图像的第一骨骼位置特征,指的是:生成该图像的第一骨骼位置特征时所使用的第一二维坐标没有被用于生成目标图像的第一骨骼位置特征。并且,更优选的情况下,生成不同的目标图像的第一骨骼位置特征所使用的第一二维坐标也应当是不同的,这样,能够保证计算第二骨骼位置特征的时候,能够参考更多的第一二维坐标,使得计算的结果更加准确。换句话来说,为了在计算量不变的情况下,提高计算准确度,应当是对于第一骨骼位置特征A和第一骨骼位置特征B而言(第一骨骼位置特征A和第一骨骼位置特征B是计算同一个第二骨骼位置特征的特征),计算第一骨骼位置特征A所使用到的第一二维坐标与第一骨骼位置特征B所使用到的第一二维坐标是不相同的。
如图中,图像A的第一骨骼位置特征是根据图像A和图像B的第一二维坐标生成的;图像D的第一骨骼位置特征是根据图像C、图像D和图像E的第一二维坐标生成的;图像G的第一骨骼位置特征是根据图像F、图像G和图像H的第一二维坐标生成的。可以看出,生成图像D的第一骨骼位置特征所使用的第一二维坐标与生成图像A所使用的第一骨骼位置特征的第一二维坐标不同,并且,生成图像D所使用的第一骨骼位置特征的第一二维坐标与生成图像G所使用的第一骨骼位置特征的第一二维坐标不同;生成图像A所使用的第一骨骼位置特征的第一二维坐标与生成图像G所使用的第一骨骼位置特征的第一二维坐标不同。因此,在生成图像D的第二骨骼位置特征的时候,就可以直接根据图像A的第一骨骼位置特征、图像G的第一骨骼位置特征和图像D的第一骨骼位置特征进行计算。进而,计算图像D的第二骨骼位置特征的时候,也就同时参考了图像A-图像G的第一二维坐标。
类似的,计算图像E的第二骨骼位置特征的时候,也就同时参考了图像B-图像H的第一二维坐标。
可以看出,在采用三个输入一个输出的计算方式下(如三个第一二维坐标计算一个第一骨骼位置特征;三个第一骨骼位置特征计算一个第二骨骼位置特征),如果使用两个特征提取模型进行计算,那么计算出的一个第一三维坐标就是同时考虑了9个第一二维坐标;如果使用三个特征提取模型进行计算,那么计算出的一个第一三维坐标就是同时考虑了27个第一二维坐标。也就是,使用的特征提取模型阅读,其计算效率越准确,但计算量也越来越大,因此,通常情况下,使用的特征提取模型的数量优选为2-3个。
本申请所提供的方法,在计算目标单位的骨骼的三维坐标时,采用了多帧二维动作图像的二维坐标进行协同计算的方式。由于计算的时候,考虑了拍摄时间相近的其他帧的情况(不同帧的二维坐标),因此,使得最终计算出的该帧图像三维坐标与相邻图像的三维坐标不容易发生坐标突变的情况,使得按照计算出的三维坐标来生成虚拟对象模型控制指令后,通过该控制指令驱动虚拟对象模型进行动作时,虚拟对象模型的动作更为平滑、自然。也就是,本申请所提供的方法能够更大程度的使虚拟对象模型的动作更接近实际的目标单位的动作,提高了动作还原精度。
与前述方法相对应的,本申请还提供了一种虚拟对象模型的动作指令的生成装置,包括:
第一获取模块,用于获取对目标单位进行拍摄得到的连续的多帧二维动作图像;
第一计算模块,用于针对每帧二维动作图像,根据该帧二维动作图像,和与该帧二维动作图像在拍摄时间上相近的其他二维动作图像,计算该帧二维动作图像中目标单位的骨骼的第一三维坐标;
第一生成模块,用于根据每帧二维动作图像中目标单位的骨骼的第一三维坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在某些实施例中,第一生成模块,包括:
第一计算单元,用于针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一三维坐标、预设的第一投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一三维坐标按照第一投影相机参数值投影到第一二维坐标所使用的第一平移向量;
第一平移单元,用于针对每帧二维动作图像,使用第一平移向量对该帧二维动作图像中目标单位的骨骼的第二三维坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第一世界坐标;第二三维坐标是对该帧二维动作图像进行单帧骨骼坐标计算后得到的;
第一生成单元,用于根据每帧二维动作图像中目标单位的骨骼的第一世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在某些实施例中,第一生成单元,包括:
第一计算子单元,用于针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一世界坐标、预设的第二投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一世界坐标按照第二投影相机参数值投影到第一二维坐标所使用的第二平移向量;
第一平移子单元,用于针对每帧二维动作图像,使用该帧二维动作图像的第二平移向量,对每帧二维动作图像中目标单位的骨骼在世界坐标系下的第一世界坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标;
第一生成子单元,用于根据每帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在某些实施例中,第一生成模块,,包括:
第二计算单元,用于针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一三维坐标、预设的第一投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一三维坐标按照第一投影相机参数值投影到第一二维坐标所使用的第一平移向量;
第二平移单元,用于针对每帧二维动作图像,使用第一平移向量对该帧二维动作图像中目标单位的骨骼的第一三维坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第三世界坐标;
第二生成单元,用于根据每帧二维动作图像中目标单位的骨骼的第三世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在某些实施例中,第二生成单元,包括:
第二计算子单元,用于针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第三世界坐标、预设的第二投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第三世界坐标按照第二投影相机参数值投影到第一二维坐标所使用的第二平移向量;
第二平移子单元,用于针对每帧二维动作图像,使用该帧二维动作图像的第二平移向量,对每帧二维动作图像中目标单位的骨骼在世界坐标系下的第三世界坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第四世界坐标;
第二生成子单元,用于根据每帧二维动作图像中目标单位的骨骼在世界坐标系下的第四世界坐标和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在某些实施例中,第一平移向量是三维平移向量;第二平移向量是在成像平面下的平移向量。
在某些实施例中,该装置还包括:在第一生成单元工作前,先工作的调整模块;
调整模块,用于针对每帧二维动作图像,根据虚拟对象模型中骨骼的长度,对该帧二维动作图像中目标单位的骨骼的第一世界坐标进行调整,以使调整后的该帧二维动作图像中目标单位的骨骼的长度与虚拟对象模型中骨骼的长度相适应。
在某些实施例中,第一生成子单元,包括:
第三生成子单元,用于针对每个二维动作图像,根据虚拟对象在预设状态下的姿态信息和目标单位的骨骼的第二世界坐标,生成该帧二维动作图像的虚拟对象的骨骼旋转参数;
第四生成子单元,用于根据每个二维动作图像的虚拟对象的骨骼旋转参数,和多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
在某些实施例中,骨骼旋转参数为如下的任意类型的参数:欧拉角旋转参数、四元数旋转参数。
在某些实施例中,第一计算模块,包括:
第一确定单元,用于针对每帧二维动作图像,将与该帧二维动作图像在拍摄时间上相近的其他二维动作图像中目标单位的骨骼的第一二维坐标和该帧二维动作图像中目标单位的骨骼的第一二维坐标输入到训练完成的第一特征提取模型中,以确定该帧二维动作图像的第一骨骼位置特征;
第二确定单元,用于针对每帧二维动作图像,与该帧二维动作图像在拍摄时间上相近的其他二维动作图像的第一骨骼位置和该帧二维动作图像的第一骨骼位置输入到训练完成的第二特征提取模型中,以确定该帧二维动作图像的第二骨骼位置特征;
第三确定单元,用于针对每帧二维动作图像,根据该帧二维动作图像的第二骨骼位置特征,确定该帧二维动作图像中目标单位的骨骼的第一三维坐标。
在某些实施例中,还包括:
第二计算模块,用于针对每帧二维动作图像,将该帧二维动作图像输入到二维骨骼坐标计算模型,以得到该帧二维动作图像中目标单位的第一二维坐标;
第三计算模块,用于针对每帧二维动作图像,将该帧二维动作图像中目标单位的第一二维坐标输入到单帧骨骼三维坐标计算模型,以得到该帧二维动作图像中目标单位的第二三维坐标。
与上述方法相对应的,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如虚拟对象模型的动作指令的生成方法的步骤。
如图7所示,为本申请实施例所提供的电子设备示意图,该电子设备1000包括:处理器1001、存储器1002和总线1003,存储器1002存储有执行指令,当电子设备运行时,处理器1001与存储器1002之间通过总线1003通信,处理器1001执行存储器1002中存储的虚拟对象模型的动作指令的生成方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (13)

1.一种虚拟对象模型的动作指令的生成方法,其特征在于,包括:
获取对目标单位进行拍摄得到的连续的多帧二维动作图像;
针对每帧二维动作图像,根据该帧二维动作图像,和与该帧二维动作图像在拍摄时间上相近的其他二维动作图像,计算该帧二维动作图像中目标单位的骨骼的第一三维坐标;
根据每帧二维动作图像中目标单位的骨骼的第一三维坐标和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令;
针对每帧二维动作图像,根据该帧二维动作图像,和与该帧二维动作图像在拍摄时间上相近的其他二维动作图像,计算该帧二维动作图像中目标单位的骨骼的第一三维坐标,包括:
针对每帧二维动作图像,将与该帧二维动作图像在拍摄时间上相近的其他二维动作图像中目标单位的骨骼的第一二维坐标和该帧二维动作图像中目标单位的骨骼的第一二维坐标输入到训练完成的第一特征提取模型中,以确定该帧二维动作图像的第一骨骼位置特征;
针对每帧二维动作图像,与该帧二维动作图像在拍摄时间上相近的其他二维动作图像的第一骨骼位置和该帧二维动作图像的第一骨骼位置输入到训练完成的第二特征提取模型中,以确定该帧二维动作图像的第二骨骼位置特征;
针对每帧二维动作图像,根据该帧二维动作图像的第二骨骼位置特征,确定该帧二维动作图像中目标单位的骨骼的第一三维坐标。
2.根据权利要求1所述的方法,其特征在于,根据每帧二维动作图像中目标单位的骨骼的第一三维坐标和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令,包括:
针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一三维坐标、预设的第一投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一三维坐标按照第一投影相机参数值投影到第一二维坐标所使用的第一平移向量;
针对每帧二维动作图像,使用第一平移向量对该帧二维动作图像中目标单位的骨骼的第二三维坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第一世界坐标;所述第二三维坐标是对该帧二维动作图像进行单帧骨骼坐标计算后得到的;
根据每帧二维动作图像中目标单位的骨骼的第一世界坐标和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
3.根据权利要求2所述的方法,其特征在于,根据每帧二维动作图像中目标单位的骨骼的第一世界坐标和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令,包括:
针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一世界坐标、预设的第二投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一世界坐标按照第二投影相机参数值投影到第一二维坐标所使用的第二平移向量;
针对每帧二维动作图像,使用该帧二维动作图像的第二平移向量,对每帧二维动作图像中目标单位的骨骼在世界坐标系下的第一世界坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标;
根据每帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
4.根据权利要求1所述的方法,其特征在于,根据每帧二维动作图像中目标单位的骨骼的第一三维坐标和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令,包括:
针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第一三维坐标、预设的第一投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第一三维坐标按照第一投影相机参数值投影到第一二维坐标所使用的第一平移向量;
针对每帧二维动作图像,使用第一平移向量对该帧二维动作图像中目标单位的骨骼的第一三维坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第三世界坐标;
根据每帧二维动作图像中目标单位的骨骼的第三世界坐标和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
5.根据权利要求4所述的方法,其特征在于,根据每帧二维动作图像中目标单位的骨骼的第三世界坐标和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令,包括:
针对每帧二维动作图像,根据该帧二维动作图像中目标单位的骨骼的第三世界坐标、预设的第二投影相机参数值和该帧二维动作图像中目标单位的骨骼的第一二维坐标,计算将第三世界坐标按照第二投影相机参数值投影到第一二维坐标所使用的第二平移向量;
针对每帧二维动作图像,使用该帧二维动作图像的第二平移向量,对每帧二维动作图像中目标单位的骨骼在世界坐标系下的第三世界坐标进行平移,以生成该帧二维动作图像中目标单位的骨骼在世界坐标系下的第四世界坐标;
根据每帧二维动作图像中目标单位的骨骼在世界坐标系下的第四世界坐标和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
6.根据权利要求3或5任一项所述的方法,其特征在于,所述第一平移向量是三维平移向量;第二平移向量是在成像平面下的平移向量。
7.根据权利要求2所述的方法,其特征在于,在根据每帧二维动作图像中目标单位的骨骼的第一世界坐标和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令之前,还包括:
针对每帧二维动作图像,根据虚拟对象模型中骨骼的长度,对该帧二维动作图像中目标单位的骨骼的第一世界坐标进行调整,以使调整后的该帧二维动作图像中目标单位的骨骼的长度与虚拟对象模型中骨骼的长度相适应。
8.根据权利要求3所述的方法,其特征在于,根据每帧二维动作图像中目标单位的骨骼在世界坐标系下的第二世界坐标和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令,包括:
针对每个二维动作图像,根据虚拟对象在预设状态下的姿态信息和目标单位的骨骼的第二世界坐标,生成该帧二维动作图像的虚拟对象的骨骼旋转参数;
根据每个二维动作图像的虚拟对象的骨骼旋转参数,和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令。
9.根据权利要求6所述的方法,其特征在于,骨骼旋转参数为如下的任意类型的参数:欧拉角旋转参数、四元数旋转参数。
10.根据权利要求2所述的方法,其特征在于,还包括按照如下方式确定每帧二维动作图像的第二三维坐标:
针对每帧二维动作图像,将该帧二维动作图像输入到二维骨骼坐标计算模型,以得到该帧二维动作图像中目标单位的第一二维坐标;
针对每帧二维动作图像,将该帧二维动作图像中目标单位的第一二维坐标输入到单帧骨骼三维坐标计算模型,以得到该帧二维动作图像中目标单位的第二三维坐标。
11.一种虚拟对象模型的动作指令的生成装置,其特征在于,包括:
第一获取模块,用于获取对目标单位进行拍摄得到的连续的多帧二维动作图像;
第一计算模块,用于针对每帧二维动作图像,根据该帧二维动作图像,和与该帧二维动作图像在拍摄时间上相近的其他二维动作图像,计算该帧二维动作图像中目标单位的骨骼的第一三维坐标;
第一生成模块,用于根据每帧二维动作图像中目标单位的骨骼的第一三维坐标和所述多帧二维动作图像之间的拍摄顺序,生成虚拟对象模型的动作指令;
所述第一计算模块,包括:
第一确定单元,用于针对每帧二维动作图像,将与该帧二维动作图像在拍摄时间上相近的其他二维动作图像中目标单位的骨骼的第一二维坐标和该帧二维动作图像中目标单位的骨骼的第一二维坐标输入到训练完成的第一特征提取模型中,以确定该帧二维动作图像的第一骨骼位置特征;
第二确定单元,用于针对每帧二维动作图像,与该帧二维动作图像在拍摄时间上相近的其他二维动作图像的第一骨骼位置和该帧二维动作图像的第一骨骼位置输入到训练完成的第二特征提取模型中,以确定该帧二维动作图像的第二骨骼位置特征;
第三确定单元,用于针对每帧二维动作图像,根据该帧二维动作图像的第二骨骼位置特征,确定该帧二维动作图像中目标单位的骨骼的第一三维坐标。
12.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如权利要求1至10任一所述的虚拟对象模型的动作指令的生成方法的步骤。
13.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至10任一所述的虚拟对象模型的动作指令的生成方法的步骤。
CN201910690705.3A 2019-07-29 2019-07-29 虚拟对象模型的动作指令的生成方法和装置 Active CN110415322B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910690705.3A CN110415322B (zh) 2019-07-29 2019-07-29 虚拟对象模型的动作指令的生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910690705.3A CN110415322B (zh) 2019-07-29 2019-07-29 虚拟对象模型的动作指令的生成方法和装置

Publications (2)

Publication Number Publication Date
CN110415322A CN110415322A (zh) 2019-11-05
CN110415322B true CN110415322B (zh) 2023-03-10

Family

ID=68363895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910690705.3A Active CN110415322B (zh) 2019-07-29 2019-07-29 虚拟对象模型的动作指令的生成方法和装置

Country Status (1)

Country Link
CN (1) CN110415322B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110942007B (zh) * 2019-11-21 2024-03-05 北京达佳互联信息技术有限公司 手部骨骼参数确定方法、装置、电子设备和存储介质
CN111063024A (zh) * 2019-12-11 2020-04-24 腾讯科技(深圳)有限公司 三维虚拟人驱动方法、装置、电子设备及存储介质
CN111208783B (zh) * 2019-12-30 2021-09-17 深圳市优必选科技股份有限公司 一种动作模仿方法、装置、终端及计算机存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109448090B (zh) * 2018-11-01 2023-06-16 北京旷视科技有限公司 图像处理方法、装置、电子设备及存储介质
CN109859237B (zh) * 2019-01-25 2023-05-26 湖南大学 一种基于红外扫描的人体骨骼运动分析方法
CN109821239B (zh) * 2019-02-20 2024-05-28 网易(杭州)网络有限公司 体感游戏的实现方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN110415322A (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
CN109636831B (zh) 一种估计三维人体姿态及手部信息的方法
CN110532984B (zh) 关键点检测方法、手势识别方法、装置及系统
CN109271933B (zh) 基于视频流进行三维人体姿态估计的方法
Zhao et al. Combining marker-based mocap and rgb-d camera for acquiring high-fidelity hand motion data
CN110415322B (zh) 虚拟对象模型的动作指令的生成方法和装置
CN113706699B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
EP3341919A1 (en) Image regularization and retargeting system
JP2021144679A (ja) 視覚ベースの関節動作と姿勢運動の予想のためのシステム、コンピュータ実施方法、及びプログラム
CN110637323A (zh) 通过使用基于部分的关键帧和先验模型进行鲁棒网格跟踪和融合
KR20180057096A (ko) 표정 인식과 트레이닝을 수행하는 방법 및 장치
CN110660017A (zh) 一种基于三维姿态识别的舞谱记录与演示方法
CN112434679B (zh) 康复运动的评估方法及装置、设备、存储介质
CN112037310A (zh) 基于神经网络的游戏人物动作识别生成方法
JP5893166B2 (ja) 3dモデル・モーフィングのための方法および装置
CN113989928B (zh) 一种动作捕捉和重定向方法
CN114926530A (zh) 用于生成三维姿态估计数据的计算机实现的方法、数据处理装置和计算机程序
CN112164091A (zh) 基于三维骨架提取的移动设备人体位姿估计方法
CN114967937B (zh) 一种虚拟人运动生成方法与系统
CN112419419A (zh) 用于人体姿势和形状估计的系统和方法
CN115346262A (zh) 一种表情驱动参数的确定方法、装置、设备及存储介质
Lifkooee et al. Real-time avatar pose transfer and motion generation using locally encoded laplacian offsets
JP2019016164A (ja) 学習データ生成装置、推定装置、推定方法及びコンピュータプログラム
JP2009015558A (ja) 姿勢推定装置および姿勢推定方法
CN112199994B (zh) 一种实时检测rgb视频中的3d手与未知物体交互的方法和装置
KR20230093191A (ko) 오차 종류별 관절 인식 방법, 서버

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
GR01 Patent grant
GR01 Patent grant