CN115578494A - 中间帧的生成方法、装置、设备及存储介质 - Google Patents

中间帧的生成方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115578494A
CN115578494A CN202211570047.2A CN202211570047A CN115578494A CN 115578494 A CN115578494 A CN 115578494A CN 202211570047 A CN202211570047 A CN 202211570047A CN 115578494 A CN115578494 A CN 115578494A
Authority
CN
China
Prior art keywords
frame
attitude
posture
target
previous frame
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.)
Granted
Application number
CN202211570047.2A
Other languages
English (en)
Other versions
CN115578494B (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.)
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 CN202211570047.2A priority Critical patent/CN115578494B/zh
Publication of CN115578494A publication Critical patent/CN115578494A/zh
Application granted granted Critical
Publication of CN115578494B publication Critical patent/CN115578494B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites

Abstract

本申请公开了一种中间帧的生成方法、装置、设备及存储介质,涉及计算机图形学领域。该方法包括:根据处理对象的前一帧姿态与目标姿态的姿态差异,计算当前帧姿态对应的第一中间帧帧数,所述第一中间帧帧数是从所述前一帧姿态过渡至所述目标姿态中间所需生成的姿态帧数,所述前一帧姿态为所述当前帧姿态之前一帧所述处理对象的姿态;根据所述第一中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态;在所述第一中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。该方法可以根据前一帧姿态与目标姿态动态调整中间帧帧数,保证中间帧的动作质量。

Description

中间帧的生成方法、装置、设备及存储介质
技术领域
本申请涉及计算机图形学领域,特别涉及一种中间帧的生成方法、装置、设备及存储介质。
背景技术
角色中间帧动画生成是动画生成技术中的一种,给定若干历史时间动画帧(≥1帧)和若干未来时间动画帧(≥1帧),生成二者中间的若干动画帧。角色中间帧动画生成技术可以帮助动画师快速生成动画内容,提高内容生产效率。此外,该技术还可以被用在游戏引擎中,用来自然的衔接两端动画序列,让游戏中的动画过渡部分更真实、自然。
对于时长较长的动作过渡,相关技术方案皆采用深度学习的方法来生成中间帧,使用若干历史时间帧、若干未来时间帧和生成帧数作为输入,并使用适用于生成任务的深度学习模型来实现中间帧的动作生成。
相关技术中的方法需要人工指定生成帧数。生成帧数对最终的效果有很大影响:如果生成帧数被设置的过小,则生成的动作显得急促、不自然、有滑步;如果生成帧数被设置的过大,则生成的动作迟缓、冗余、有抖动。
发明内容
本申请实施例提供了一种中间帧的生成方法、装置、设备及存储介质,可以根据前一帧姿态与目标姿态动态调整中间帧帧数,保证中间帧的动作质量。所述技术方案如下。
根据本申请的一方面,提供了一种中间帧的生成方法,所述方法包括:
根据处理对象的前一帧姿态与目标姿态的姿态差异,计算当前帧姿态对应的第一中间帧帧数,所述第一中间帧帧数是从所述前一帧姿态过渡至所述目标姿态中间所需生成的姿态帧数,所述前一帧姿态为所述当前帧姿态之前一帧所述处理对象的姿态;
根据所述第一中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态;
在所述第一中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
根据本申请的另一方面,提供了一种中间帧的生成装置,所述装置包括:
帧数模块,用于根据处理对象的前一帧姿态与目标姿态的姿态差异,计算当前帧姿态对应的第一中间帧帧数,所述第一中间帧帧数是从所述前一帧姿态过渡至所述目标姿态中间所需生成的姿态帧数,所述前一帧姿态为所述当前帧姿态之前一帧所述处理对象的姿态;
生成模块,用于根据所述第一中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态;
判断模块,用于在所述第一中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
根据本申请的另一方面,提供了一种计算机设备,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的中间帧的生成方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上方面所述的中间帧的生成方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
在生成当前帧姿态之前,根据前一帧姿态以及目标姿态的差异,计算前一帧姿态与目标姿态之间的中间帧帧数,使中间帧帧数与前一帧姿态和目标帧姿态的姿态差异相匹配。根据该中间帧帧数生成当前帧姿态,可以避免由于中间帧帧数不准确引起的中间帧动作质量低的问题。并且,在生成每一帧中间帧之前,都会根据该中间帧之前的一帧姿态以及目标姿态之间的姿态差距,来计算中间帧帧数,并根据实时计算得到的中间帧帧数来生成每一帧中间帧,提高中间帧姿态的动作质量,避免动作急促、滑步、冗余、抖动等问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的计算机设备的框图;
图2是本申请一个示例性实施例提供的中间帧的生成方法的方法流程图;
图3是本申请一个示例性实施例提供的姿态的示意图;
图4是本申请另一个示例性实施例提供的姿态的示意图;
图5是本申请一个示例性实施例提供的关节点的示意图;
图6是本申请一个示例性实施例提供的姿态过渡的示意图;
图7是本申请另一个示例性实施例提供的中间帧的生成方法的示意图;
图8是本申请一个示例性实施例提供的神经网络模型的示意图;
图9是本申请一个示例性实施例提供的神经网络模型的训练过程的示意图;
图10是本申请一个示例性实施例提供的中间帧的生成装置的框图;
图11是本申请一个示例性实施例提供的服务器的结构示意图;
图12是本申请一个示例性实施例提供的终端的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
计算机视觉技术(Computer Vision,CV)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括中间帧的生成、图像识别、图像语义理解、图像检索、OCR(Optical Character Recognition,光学字符识别)、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步位置与地图构建等技术,还包括常见的中间帧的生成等生物特征识别技术。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。
计算机图形学(Computer Graphics,CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。本申请实施例提供的方法与计算机图形学中的动画生成技术相关。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
图1示出了本申请一个示例性实施例提供的计算机设备101的示意图,该计算机设备101可以是终端或服务器。
终端可以包括智能手机、笔记本电脑、台式电脑、平板电脑、智能机器人中的至少一种。在一种可选的实现方式中,本申请提供的中间帧的生成方法可以应用于具有动画生成功能的应用程序中,该具有动画生成功能的应用程序支持中间帧生成功能,该应用程序可以是:动画制作程序、动画编辑程序、游戏引擎、游戏制作程序、游戏程序、视频制作程序、视频编辑应用程序、图片发布应用程序、视频发布应用程序、社交应用程序、购物应用程序、直播应用程序、论坛应用程序、资讯应用程序、生活类应用程序、办公应用程序等。可选地,终端上安装有该应用程序的客户端。
示例性的,终端上存储有中间帧生成算法102,当客户端需要使用中间帧生成功能时,客户端可以调用中间帧生成算法完成对中间帧的生成。
终端与服务器之间通过有线或者无线网络相互连接。
终端包括第一存储器和第一处理器。第一存储器中存储有中间帧生成算法;上述中间帧生成算法被第一处理器调用执行以实现本申请提供的中间帧的生成方法。第一存储器可以包括但不限于以下几种:随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM)、以及电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)。
第一处理器可以是一个或者多个集成电路芯片组成。可选地,第一处理器可以是通用处理器,比如,中央处理器(Central Processing Unit,CPU)或者网络处理器(NetworkProcessor,NP)。可选地,第一处理器可以通过运行程序或代码来实现本申请提供的中间帧的生成方法。
服务器用于为终端中的应用程序的客户端提供后台服务。例如,服务器可以是上述应用程序的后台服务器。服务器可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
示例性的,服务器上存储有中间帧生成算法102,当服务器需要使用中间帧生成功能时,服务器可以调用中间帧生成算法完成对中间帧的生成。可选的,服务器生成中间帧后,可以将包含中间帧的动画发送给客户端进行显示。
服务器包括第二存储器和第二处理器。第二存储器中存储有中间帧生成算法;上述中间帧生成算法被第二处理器调用来实现本申请提供的中间帧的生成方法。可选地,第二存储器可以包括但不限于以下几种:RAM、ROM、PROM、EPROM、EEPROM。可选地,第二处理器可以是通用处理器,比如,CPU或者NP。
如图1所示,计算机设备101调用中间帧生成算法102基于前一帧姿态与目标姿态的差异,计算得到第一中间帧帧数;基于目标姿态、前一帧姿态、第一中间帧帧数生成当前帧姿态。即,计算机设备在生成当前帧姿态之前,先利用当前帧姿态的前一帧姿态与目标姿态的差异,计算前一帧姿态与目标姿态之间还有多少帧中间帧需要生成,然后将中间帧帧数、前一帧姿态、目标姿态输入中间帧生成个,来生成当前帧姿态。中间帧生成模型可以包括第一网络模型和第二网络模型。采用该方法生成的中间帧姿态,可以保证动作质量,避免动作抖动、滑步等问题。
图2示出了本申请一个示例性实施例提供的中间帧的生成方法的流程图。该方法可以由计算机设备来执行,例如,如图1所示的终端或服务器来执行。方法包括如下步骤。
步骤210,根据处理对象的前一帧姿态与目标姿态的姿态差异,计算当前帧姿态对应的第一中间帧帧数,第一中间帧帧数是从前一帧姿态过渡至目标姿态中间所需生成的姿态帧数,前一帧姿态为当前帧姿态之前一帧处理对象的姿态。
示例性的,本申请实施例提供的方法,用于根据生物体运动时的姿态规律,依据给定的两帧生物体姿态,来推断生成生物体在这两帧之间的过渡姿态。因此,处理对象是用于模拟生物体,或,用于模拟在运动时具有姿态规律的物体的对象。
前一帧姿态、目标姿态、当前帧姿态都是处理对象在某一时刻的身体姿态。该身体姿态包括处理对象一部分身体的姿态,或者,包括处理对象全部身体的姿态。例如,当需要生成的动画是人物在桌子上书写的画面时,身体姿态可以只包括人物上半身的姿态。当需要生成的动画是人物跑步时,身体姿态包括人物全身的姿态。
可选的,采用任意方式来表征处理对象的姿态。例如,上述姿态可以是生物体的二维图像、生物体的三维虚拟模型、用于表征生物体动作的线条图、用于表征生物体动作的二维虚拟模型、人体二维图像、人体关节点连线图、人体二维模型、人体三维虚拟模型中的至少一种。
示例性的,姿态用于表征处理对象至少一个关节点的位置、关节点之间的连接关系。或者,姿态用于表征处理对象关键部位的位置、关键部位之间的连接关系。通过观看姿态,可以获知处理对象的身体动作。
例如,如图3所示,使用处理对象的三维虚拟模型301来表征处理对象的姿态。或者,如图4所示,使用处理对象的关节点302以及关节点之间的连接关系来表征处理对象的姿态。
在一种可选的实现方式中,处理对象的姿态(包括前一帧姿态、下一帧姿态、目标姿态、当前帧姿态等)包括:至少一个关节点的位置、旋转、速度,关节点之间的连接关系。
可选的,将处理对象的关节点分为上肢关节、髋关节和下肢关节,其中,上肢关节包括处理对象上肢的至少一个关节点,髋关节包括处理对象髋部的至少一个关节点,下肢关节包括处理对象下肢的至少一个关节点。例如,如图5所示,姿态包括:九个上肢关节303(图中的圆圈即为关节点)的位置、旋转、速度;一个髋关节304的位置、旋转、速度;八个下肢关节305的位置、旋转、速度;以及这些关节点的连接关系。
示例性的,当前帧姿态是当前需要生成的姿态。当前帧姿态是需要生成的中间帧姿态。前一帧姿态是当前帧姿态的前一帧的姿态。目标姿态是最终需要过渡到的姿态。当前帧姿态是使用算法/模型自动生成的姿态。前一帧姿态可以是预先给定的姿态,也可以是由算法/模型自动生成的姿态。目标姿态是预先给定的姿态。
例如,如图6所示,包括处理对象的9帧姿态,姿态1和姿态9是预先给定的姿态,姿态1是处理对象的起始姿态,姿态9是处理对象的目标姿态,动画需要从姿态1过渡至姿态9,即,根据姿态1和姿态9来生成中间帧姿态。姿态2、姿态3、姿态4、姿态5、姿态6、姿态7、姿态8是需要使用算法/模型来自动生成的中间帧姿态。则,在生成姿态2时,姿态2即为当前帧姿态,姿态1即为前一帧姿态,姿态9为目标姿态。在生成姿态4时,姿态3为前一帧姿态、姿态9为目标姿态。在生成姿态8时,姿态8为当前帧姿态,姿态7为前一帧姿态,姿态9为目标姿态。
可选的,处理对象在目标姿态时是静止状态,即,目标状态中各个关节点的速度为0。本申请实施例提供的方法,适用于目标帧姿态为静态的场景。
可选的,本申请实施例提供的方法,在生成当前帧姿态之前,先计算当前帧姿态对应的第一中间帧帧数,第一中间帧帧数是指包含当前帧姿态在内,过渡至目标姿态还需要生成多少帧中间帧姿态。可选的,每当生成一个中间帧姿态之前,都需要计算该中间帧姿态对应的中间帧帧数,以便于根据计算得到的中间帧帧数生成该中间帧姿态。
例如,在生成第一帧中间帧姿态时,根据给定的起始姿态、目标姿态,计算得到起始姿态和目标姿态之间有8帧中间帧姿态,则根据8、起始姿态、目标姿态来生成第一帧中间帧姿态。在生成第二帧中间帧姿态时,则根据第一帧中间帧姿态、目标姿态,计算第一帧中间帧姿态和目标姿态之间有6帧(每一帧中间帧姿态对应的中间帧帧数都是实时计算得到的,相邻两帧中间帧姿态所对应的中间帧帧数没有直接关系,或者,中间帧姿态对应的中间帧帧数呈递减趋势),则根据6、第一帧中间帧姿态、目标姿态生成第二帧中间帧姿态。
姿态差异包括前一帧姿态与目标姿态的动作差异、位置差异、速度差异中的至少一种。可选的,姿态差异包括处理对象的每个关节点的位置差异、旋转差异、速度差异中的至少一种。
第一中间帧帧数与姿态差异呈正相关关系。若前一帧姿态与目标姿态的姿态差异过大,则第一中间帧帧数较多,即,生成更多的中间帧姿态来更好地完成前一帧姿态与目标姿态之间的过渡。若前一帧姿态与目标姿态的姿态差异较小,则第一中间帧帧数较少,即,生成少量的中间帧姿态就可以很好地完成前一帧姿态到目标姿态的过渡。
第一中间帧帧数是当前帧姿态对应的中间帧帧数,即,前一帧姿态与目标姿态之间有多少帧中间帧姿态。可选的,第一中间帧帧数是包含当前帧姿态在内的,若前一帧姿态与目标姿态之间只有当前帧姿态一帧中间帧,则当前帧姿态对应的第一中间帧帧数为1。即,第一中间帧帧数是正整数。
示例性的,第一中间帧帧数的计算公式为:
Figure 994539DEST_PATH_IMAGE001
其中,
Figure 967934DEST_PATH_IMAGE002
为第t帧姿态(当前帧姿态)对应的TTA(Time To Arrive,到达时间)(也可以称为第一中间帧帧数);f()为计算中间帧帧数的函数,可以有多种实现方式;
Figure 536319DEST_PATH_IMAGE003
为第t-1帧姿态(前一帧姿态)对应的TTA(第二中间帧帧数);
Figure 893482DEST_PATH_IMAGE004
为前一帧姿态;
Figure 307146DEST_PATH_IMAGE005
为目标姿态。
步骤220,根据第一中间帧帧数,生成用于从前一帧姿态过渡至目标姿态所需的当前帧姿态。
在生成当前帧姿态时,除了参照前一帧姿态和目标姿态,还会根据前一帧姿态与目标姿态之间中间帧姿态的帧数。计算机设备根据第一中间帧帧数、前一帧姿态、目标姿态来生成当前帧姿态,例如,将第一中间帧帧数、前一帧姿态、目标姿态作为输入数据,输入神经网络模型,来预测得到当前帧姿态。
步骤230,在第一中间帧帧数满足执行条件的情况下,将下一帧姿态更新为当前帧姿态,重复执行上述步骤生成下一帧姿态。
可选的,每当生成一帧中间帧姿态之后,都会根据该中间帧姿态对应的中间帧帧数来进行判定,判定是否需要继续生成下一帧中间帧姿态,或者,判定采用何种方式生成下一帧中间帧姿态。
当当前帧姿态对应的第一中间帧帧数满足执行条件时,则继续执行步骤210至步骤220生成下一帧姿态。并在生成下一帧姿态之后,继续根据下一帧姿态对应的中间帧帧数进行判定。
示例性的,在重复执行步骤210和步骤220时,是将下一帧姿态作为当前帧姿态去生成的,则此时的前一帧姿态为刚刚生成的当前帧姿态。例如,在第一次执行步骤210和步骤220生成第一帧中间帧姿态(当前帧姿态)后,重复执行步骤210和步骤220时,将第二帧中间帧姿态作为步骤210和步骤220中的当前帧姿态,将第一帧中间帧姿态作为前一帧姿态,进而生成第二帧中间帧姿态。
可选的,执行条件用于判定是否生成下一帧姿态和或用于判定采用何种方式生成下一帧姿态。执行条件可以根据需要任意设置。例如,可以设置为,当第一中间帧帧数不为1时,将下一帧姿态更新为当前帧姿态,重复执行上述步骤生成下一帧姿态。再如,当第一中间帧帧数减1不为0时,将下一帧姿态更新为当前帧姿态,重复执行上述步骤生成下一帧姿态。再如,当第一中间帧帧数大于阈值时,将下一帧姿态更新为当前帧姿态,重复执行上述步骤生成下一帧姿态。
综上所述,本实施例提供的方法,在生成当前帧姿态之前,根据前一帧姿态以及目标姿态的差异,计算前一帧姿态与目标姿态之间的中间帧帧数,使中间帧帧数与前一帧姿态和目标帧姿态的姿态差异相匹配。根据该中间帧帧数生成当前帧姿态,可以避免由于中间帧帧数不准确引起的中间帧动作质量低的问题。并且,在生成每一帧中间帧之前,都会根据该中间帧之前的一帧姿态以及目标姿态之间的姿态差距,来计算中间帧帧数,并根据实时计算得到的中间帧帧数来生成每一帧中间帧,提高中间帧姿态的动作质量,避免动作急促、滑步、冗余、抖动等问题。
示例性的,经实验验证,相邻两个中间帧所对应的中间帧帧数若呈递增趋势,则会导致中间帧动作抖动,因此,在计算中间帧帧数时,还会参考前一帧姿态所对应的中间帧帧数。
示例性的,给出一种利用神经网络模型生成中间帧姿态的实施例。
图7示出了本申请一个示例性实施例提供的中间帧的生成方法的流程图。该方法可以由计算机设备来执行,例如,如图1所示的终端或服务器来执行。该方法包括以下步骤。
步骤211,获取前一帧姿态对应的第二中间帧帧数。
可选的,当前一帧姿态是人工预设的姿态时,前一帧姿态对应的第二中间帧帧数可以是预设帧数。当前一帧姿态是计算机设备自动生成的姿态时,前一帧姿态是计算机设备根据再前一帧姿态与目标姿态的姿态差异计算得到的。
第二中间帧帧数是包含前一帧姿态在内到目标姿态的中间帧姿态的帧数。即,再前一帧姿态到目标姿态之间中间帧姿态的帧数。
步骤212,将第二中间帧帧数和第三中间帧帧数中的较小值确定为第一中间帧帧数,第三中间帧帧数是根据前一帧姿态与目标姿态的姿态差异确定的。
示例性的,为了保证相邻两帧中间帧姿态所对应的中间帧帧数呈递减趋势,在计算当前帧姿态对应的第一中间帧帧数时,要保证第一中间帧帧数小于第二中间帧帧数,因此,当计算得到的第一中间帧帧数大于第二中间帧帧数时,第一中间帧帧数会取第二中间帧帧数的数值。
例如,第一帧中间帧姿态对应的中间帧帧数是8,第二帧中间帧姿态计算得到的中间帧帧数(第三中间帧帧数)是10,则第二帧中间帧姿态对应的中间帧帧数取8。
示例性的,本申请实施例还提供了一种基于前一帧姿态与目标姿态的位置差异和旋转差异,计算第三中间帧帧数的示例性实施例。
示例性的,从前一帧姿态与目标姿态的位置、旋转两方面的差异,分别计算一个中间帧帧数(位置差异帧数值和旋转差异帧数值),然后基于这两方面差异所对应的中间帧帧数来计算第三中间帧帧数。
第三中间帧帧数的计算公式为:
Figure 66154DEST_PATH_IMAGE006
其中,
Figure 539861DEST_PATH_IMAGE002
为第t帧姿态(当前帧姿态)对应的第一中间帧帧数;min(a,b)为取a和b中的较小值;max(a,b)为取a和b中的较大值;
Figure 384320DEST_PATH_IMAGE003
为第t-1帧姿态(前一帧姿态)对应的TTA(第二中间帧帧数);
Figure 601675DEST_PATH_IMAGE007
为由位置差异得到的TTA值(位置差异越大,该TTA值越大);
Figure 543086DEST_PATH_IMAGE008
为由旋转差异得到的TTA值(旋转差异越大该TTA值越大)。
基于位置差异获取位置差异帧数值;基于旋转差异获取旋转差异帧数值;将位置差异帧数值与旋转差异帧数值中的较大值确定为第三中间帧帧数。
位置差异帧数值的计算公式为:
Figure 561595DEST_PATH_IMAGE009
其中,p表示位置,t-1表示前一帧姿态,
Figure 17984DEST_PATH_IMAGE010
为位置差异帧数值,min(a,b)为取a和b中的较小值,
Figure 914396DEST_PATH_IMAGE011
为位置差异帧数最大值,
Figure 772631DEST_PATH_IMAGE012
为前一帧姿态的髋关节位置,
Figure 197927DEST_PATH_IMAGE013
为目标姿态的髋关节位置,
Figure 141612DEST_PATH_IMAGE014
为前一帧位置信息与目标位置信息的二范数,
Figure 904032DEST_PATH_IMAGE015
Figure 492139DEST_PATH_IMAGE016
是经验性参数。可选的,
Figure 478550DEST_PATH_IMAGE015
可以取3.352,γ可以取0.465。
即,前一帧姿态包括处理对象根关节(如,髋关节)的前一帧位置信息,目标姿态包括处理对象根关节的目标位置信息;计算前一帧位置信息与目标位置信息的二范数,得到第一数值;计算第一数值的γ次方与α的第一乘积,γ、α为预设参数;将第一乘积与位置差异帧数最大值中的较小值确定为位置差异帧数值,位置差异帧数最大值是位置差异带来的中间帧帧数的最大值。
位置差异帧数最大值是位置差异所能够带来的最大的中间帧帧数。可选的,位置差异帧数最大值可以取50。
旋转差异帧数值的计算公式为:
Figure 814591DEST_PATH_IMAGE017
其中,r表示旋转;t-1表示前一帧姿态;
Figure 115122DEST_PATH_IMAGE018
为旋转差异帧数值;
Figure 823315DEST_PATH_IMAGE019
是旋转差异帧数最大值;
Figure 980627DEST_PATH_IMAGE020
是处理对象的关节总数;
Figure 508692DEST_PATH_IMAGE021
是计算第j个关节前一帧旋转信息与目标旋转信息的旋转角,旋转角的单位为弧度(Radian);
Figure 409652DEST_PATH_IMAGE022
是第j个关节的前一帧旋转信息;
Figure 972351DEST_PATH_IMAGE023
是第j个关节的目标旋转信息。
即,前一帧姿态包括处理对象J个关节的前一帧旋转信息,目标姿态包括处理对象J个关节的目标旋转信息,J为正整数;计算每个关节前一帧旋转信息与目标旋转信息的旋转角;计算J个关节的旋转角之和;将旋转角之和除以J除以π乘以旋转差异帧数最大值,得到旋转差异帧数值,旋转差异帧数最大值是旋转差异带来的中间帧帧数的最大值。
旋转差异帧数最大值是旋转差异所能够该带来的最大的中间帧帧数。可选的,旋转差异帧数最大值可以取30。
在一种可选的实施例中,也可以将上述计算得到的第三中间帧帧数直接作为第一中间帧帧数。
步骤220,根据第一中间帧帧数,生成用于从前一帧姿态过渡至目标姿态所需的当前帧姿态。
示例性的,给出一种使用神经网络生成当前帧姿态的方法。
获取输入数据,输入数据包括前一帧姿态、目标姿态和第一中间帧帧数;调用第一网络模型基于输入数据输出姿态特征、髋关节当前帧姿态数据、上肢当前帧姿态数据;调用第二网络模型基于姿态特征、前一帧姿态、髋关节当前帧姿态数据输出下肢当前帧姿态数据;基于前一帧姿态、髋关节当前帧姿态数据、上肢当前帧姿态数据和下肢当前帧姿态数据得到当前帧姿态。
示例性的,第一网络模型用于基于前一帧姿态、目标姿态和第一中间帧帧数预测当前帧姿态的髋关节数据、上肢数据以及姿态特征;第二网络模型用于基于姿态特征、前一帧姿态、当前帧姿态的髋关节数据预测当前帧姿态的下肢数据。结合髋关节数据、上肢数据、下肢数据,就可以得到从前一帧姿态过渡的当前帧姿态。
其中,第一网络模型和第二网络模型的模型结构可以是任意的。
在一种可选的实施例中,如图8所示,第一网络模型包括LSTM(Long Short-TermMemory,长短期记忆网络)和解析解码器组成的采样网络601;第二网络模型是CVAE(Conditional Variational Auto-Encoder,条件变分自动编码器)解码器602。
示例性的,前一帧姿态包括髋关节前一帧速度
Figure 300564DEST_PATH_IMAGE024
、下肢前一帧速度
Figure 814460DEST_PATH_IMAGE025
、髋关节前一帧旋转
Figure 519111DEST_PATH_IMAGE026
、下肢前一帧旋转
Figure 936317DEST_PATH_IMAGE027
、上肢前一帧旋转
Figure 435431DEST_PATH_IMAGE028
、下肢前一帧位置
Figure 938088DEST_PATH_IMAGE029
、髋关节前一帧位置
Figure 384113DEST_PATH_IMAGE030
;目标姿态包括髋关节目标位置
Figure 780459DEST_PATH_IMAGE031
、下肢目标位置
Figure 325841DEST_PATH_IMAGE032
、上肢目标旋转
Figure 706007DEST_PATH_IMAGE033
其中,v表示速度、r表示旋转、p表示位置、h表示髋关节、L表示下肢关节、U表示上肢关节、i表示前一帧姿态、t表示目标姿态、i+1表示当前帧姿态。
如图8所示,将髋关节前一帧速度
Figure 126361DEST_PATH_IMAGE024
、下肢前一帧速度
Figure 377214DEST_PATH_IMAGE025
、上肢前一帧旋转
Figure 93497DEST_PATH_IMAGE028
与第一中间帧帧数拼接得到第一数据;示例性的,也可以将髋关节前一帧速度
Figure 898642DEST_PATH_IMAGE024
、下肢前一帧速度
Figure 483207DEST_PATH_IMAGE025
、上肢前一帧旋转
Figure 729512DEST_PATH_IMAGE028
拼接后输入状态编码器得到第一编码后,将第一编码与第一中间帧帧数拼接得到第一数据;
拼接上肢目标旋转
Figure 741331DEST_PATH_IMAGE033
与上肢前一帧旋转
Figure 705875DEST_PATH_IMAGE028
之差、下肢目标位置
Figure 94131DEST_PATH_IMAGE032
与下肢前一帧位置
Figure 693478DEST_PATH_IMAGE029
之差、髋关节目标位置
Figure 141777DEST_PATH_IMAGE031
与髋关节前一帧位置
Figure 328039DEST_PATH_IMAGE030
之差,得到第二数据;拼接第二数据与髋关节目标位置
Figure 254406DEST_PATH_IMAGE031
、下肢目标位置
Figure 803199DEST_PATH_IMAGE032
、上肢目标旋转
Figure 32186DEST_PATH_IMAGE033
得到第三数据;拼接第一数据与第三数据得到输入数据;
调用LSTM网络和解析解码器基于输入数据,输出姿态特征z、髋关节当前帧速度
Figure 830378DEST_PATH_IMAGE034
、上肢当前帧角速度
Figure 701382DEST_PATH_IMAGE035
、髋关节当前帧角速度
Figure 901419DEST_PATH_IMAGE036
调用CVAE的解码器基于姿态特征z、髋关节当前帧速度
Figure 799843DEST_PATH_IMAGE034
、髋关节前一帧速度
Figure 85331DEST_PATH_IMAGE024
、下肢前一帧速度
Figure 228867DEST_PATH_IMAGE025
、下肢前一帧旋转
Figure 486673DEST_PATH_IMAGE027
、髋关节前一帧旋转
Figure 447676DEST_PATH_IMAGE026
,输出下肢当前帧速度
Figure 95826DEST_PATH_IMAGE037
、下肢当前帧角速度
Figure 167687DEST_PATH_IMAGE038
;基于前一帧姿态、髋关节当前帧速度
Figure 952104DEST_PATH_IMAGE034
、上肢当前帧角速度
Figure 84008DEST_PATH_IMAGE035
、髋关节当前帧角速度
Figure 717989DEST_PATH_IMAGE036
、下肢当前帧速度
Figure 327962DEST_PATH_IMAGE037
、下肢当前帧角速度
Figure 560360DEST_PATH_IMAGE038
,生成当前帧姿态。
示例性的,髋关节前一帧位置
Figure 738532DEST_PATH_IMAGE030
加上髋关节当前帧速度
Figure 220329DEST_PATH_IMAGE034
即可得到髋关节当前帧位置
Figure 509359DEST_PATH_IMAGE039
,上肢前一帧旋转
Figure 658580DEST_PATH_IMAGE028
加上上肢当前帧角速度
Figure 7653DEST_PATH_IMAGE035
即可得到上肢当前帧旋转
Figure 976746DEST_PATH_IMAGE040
,髋关节前一帧旋转
Figure 302423DEST_PATH_IMAGE041
加上髋关节当前帧角速度
Figure 306151DEST_PATH_IMAGE036
即可得到髋关节当前帧旋转
Figure 154022DEST_PATH_IMAGE042
,下肢前一帧位置
Figure 485777DEST_PATH_IMAGE029
加下肢当前帧速度
Figure 241243DEST_PATH_IMAGE037
即可得到下肢当前帧位置
Figure 974844DEST_PATH_IMAGE043
,下肢前一帧旋转
Figure 790353DEST_PATH_IMAGE027
加上下肢当前帧角速度
Figure 609405DEST_PATH_IMAGE038
即可得到下肢当前帧旋转
Figure 371825DEST_PATH_IMAGE044
根据髋关节当前帧位置
Figure 84566DEST_PATH_IMAGE039
、下肢当前帧位置
Figure 179298DEST_PATH_IMAGE043
、髋关节当前帧旋转
Figure 875859DEST_PATH_IMAGE042
、上肢当前帧旋转
Figure 848494DEST_PATH_IMAGE040
、下肢当前帧旋转
Figure 681321DEST_PATH_IMAGE044
,即可得到当前帧姿态的上肢当前帧位置
Figure 448420DEST_PATH_IMAGE045
如此,便可以得到完整的当前帧姿态:髋关节当前帧位置
Figure 569959DEST_PATH_IMAGE039
、下肢当前帧位置
Figure 470919DEST_PATH_IMAGE043
、上肢当前帧位置
Figure 768040DEST_PATH_IMAGE046
、髋关节当前帧旋转
Figure 96253DEST_PATH_IMAGE042
、上肢当前帧旋转
Figure 610148DEST_PATH_IMAGE040
、下肢当前帧旋转
Figure 580379DEST_PATH_IMAGE044
步骤231,判断第一中间帧帧数是否等于1,若等于1则执行步骤232;否则执行步骤233。
在生成当前帧姿态后,判断当前帧姿态对应的第一中间帧帧数是否为1,若为1,则表示当前帧姿态是目标姿态之前的最后一帧姿态,不需要再生成中间帧姿态,因此,停止生成中间帧姿态。
当第一中间帧帧数不为1,则表示在目标姿态之前还需要生成其他中间帧姿态,则继续执行步骤233判断采用何种方式生成下一个中间帧姿态。
步骤232,停止生成中间帧姿态。
在第一中间帧帧数等于一的情况下,停止生成中间帧。
示例性的,当给定起始姿态、目标姿态,采用本申请实施例提供的方法生成其中的中间帧姿态时,若某个中间帧姿态对应的中间帧帧数等于1,则表示中间帧姿态生成结束,则将生成的若干个中间帧姿态,与起始姿态、目标姿态顺序连接生成动画。
步骤233,判断第一中间帧帧数是否小于阈值,若小于阈值则执行步骤235;否则执行步骤234。
示例性的,阈值为预设值,例如,阈值为5。当第一中间帧帧数大于5时,继续采用步骤210和步骤220(或者步骤211、步骤212、步骤220)的方法自动计算每一帧中间帧姿态对应的中间帧帧数。当第一中间帧帧数小于5时,则采用步骤235的方法,将第一中间帧帧数减1作为生成下一帧中间帧姿态的中间帧帧数。
采用该方法可以解决在生成最后几帧中间帧姿态时,计算机设备计算出的中间帧帧数总不为1,使生成的中间帧姿态动作抖动的问题。
步骤234,在第一中间帧帧数大于或等于阈值的情况下,将下一帧姿态更新为当前帧姿态,重复执行上述步骤生成下一帧姿态。
示例性的,重复执行步骤221、步骤212、步骤220生成下一帧姿态,并继续执行步骤231和步骤233的判定。
步骤235,在第一中间帧帧数小于阈值的情况下,将下一帧姿态更新为当前帧姿态,将第一中间帧帧数更新为第一中间帧帧数减一;根据第一中间帧帧数、前一帧姿态、目标姿态生成当前帧姿态;重复执行上述两步骤。
示例性的,若第一中间帧帧数小于阈值,则下面生成的每一帧中间帧姿态所对应的中间帧帧数依次减1。例如,阈值6,第一帧中间帧姿态的中间帧帧数为5,则第二帧中间帧姿态对应的中间帧帧数为5-1=4,第三帧中间帧姿态对应的中间帧帧数为4-1=3,第四帧中间帧姿态对应的中间帧帧数为3-1=2,第五帧中间帧姿态对应的中间帧帧数为2-1=1,由于到第五帧中间帧姿态其对应的中间帧帧数为1,则第五帧中间帧姿态即为最后一帧中间帧姿态,此时,停止生成中间帧姿态。
综上所述,本实施例提供的方法,在计算当前帧姿态对应的中间帧帧数时,还会参考前一帧姿态对应的中间帧帧数,使相邻两帧姿态对应的中间帧帧数呈递减趋势,避免中间帧姿态的动作抖动,提高中间帧姿态的动作质量。
本实施例提供的方法,在计算中间帧姿态时,充分考虑前一帧姿态与目标姿态的位置差异和旋转差异,采用位置差异和旋转差异中差异较大者,计算中间帧帧数,使中间帧帧数与两帧姿态的姿态差异相匹配,提高中间帧姿态的动作质量。
本申请实施例提供的方法,以根节点(髋关节)作为参考点来计算前一帧姿态和目标姿态的位置差异,由于根节点的位置通常可以表征处理对象的实际位移,采用根节点来计算位置差异可以提高位置差异的准确度,进而准确计算中间帧帧数。
本申请实施例提供的方法,通过计算前一帧姿态与目标姿态每个关节点的旋转角之和,来体现整体姿态的旋转差异,量化了姿态旋转差异,进而可以准确计算旋转差异所带来的中间帧帧数,当处理对象的旋转姿态较大时,可以准确计算中间帧帧数,提高中间帧姿态的动作质量。
本申请实施例提供的方法,当中间帧帧数大于阈值时,实时计算下一帧中间帧姿态对应的中间帧帧数,提高中间帧帧数的准确度。当中间帧帧数小于阈值时,不再实时计算下一帧中间帧姿态的中间帧帧数,而是将上一帧中间帧姿态的中间帧帧数减一作为下一帧中间帧姿态的中间帧帧数,从而避免在最后几帧中间帧姿态生成时,中间帧帧数始终不为1引起的中间帧动作抖动的问题。
本申请实施例提供的方法,采用神经网络来生成中间帧姿态,使神经网络充分学习处理对象的姿态过渡特征,进而可以根据前一帧姿态、目标姿态、中间帧帧数来自动生成当前帧姿态,提高中间帧姿态生成的准确度,提高姿态过渡的平滑性,保证中间帧姿态的动作质量。
本申请实施例提供的方法,对于动作幅度较大的腿部姿态,采用CAVE网络来进行生成,CAVE网络可以将高维的输入编码到特征空间。由于在损失函数中对特征在特征空间的分布做了限制,所以特征在特征空间的分布非常紧凑。在这样紧凑的分布中做特征采样,得到的特征再经过解码器解码,解码器的输出就会和输入数据的相似度更高。在本申请实施例提供的方法中,输入是动态捕捉的腿部动作,经过CVAE网络处理后,最终模型输出的腿部动作也会与动态捕捉数据更接近,生成更高质量的中间动作,并减少中间动作的滑步、抖动等问题。
本申请实施例提供的方法,提供了一种中间帧生成模型,可以根据给定的起始帧、目标帧、中间帧帧数实时生成高质量的中间帧。该模型从表示自然运动流形开始,在马尔科夫假设下建模运动过渡的多模态。为了结合目标帧和中间帧帧数,采用了一种采样网络,在起始帧、目标帧和中间帧帧数的约束下,从学习到的运动流形中进行采样。该运动流形采用了条件变分子动编码器(CVAE)体系结构,使之学习帧间转换的条件分布,并通过利用潜在空间和解码阶段,明确地将过渡模糊性建模为帧之间的多模态映射,因此,该方法提取到的运动流形可以作为一个高质量的表示,为在线运动合成提供依靠。
示例性的,针对图8所示的神经网络模型,本申请实施例还提供了一种训练方法。如图9所示。
在模型训练阶段,首先使用前一帧姿态和当前帧姿态作为输入,训练CVAE网络(包括CVAE编码器603和CVAE解码器602),使CVAE网络预输出当前帧姿态。
例如,将髋关节前一帧速度
Figure 997585DEST_PATH_IMAGE024
、下肢前一帧速度
Figure 496699DEST_PATH_IMAGE025
、上肢前一帧旋转
Figure 999356DEST_PATH_IMAGE028
、髋关节前一帧旋转
Figure 445380DEST_PATH_IMAGE041
、髋关节当前帧速度
Figure 841727DEST_PATH_IMAGE034
、下肢当前帧速度
Figure 387109DEST_PATH_IMAGE037
、上肢当前帧旋转
Figure 501695DEST_PATH_IMAGE040
、髋关节当前帧旋转
Figure 656471DEST_PATH_IMAGE042
拼接得到第一输入数据,将第一输入数据输入CVAE编码器得到处理对象姿态的正态分布的期望μ和方差σ,基于处理对象姿态的正态分布采样得到姿态特征z。将姿态特征z、髋关节前一帧速度
Figure 845007DEST_PATH_IMAGE024
、下肢前一帧速度
Figure 826869DEST_PATH_IMAGE025
、上肢前一帧旋转
Figure 694331DEST_PATH_IMAGE028
、髋关节前一帧旋转
Figure 154262DEST_PATH_IMAGE026
、髋关节当前帧速度
Figure 525201DEST_PATH_IMAGE034
拼接得到第二输入数据,将第二输入数据输入CVAE解码器得到下肢当前帧速度
Figure 740281DEST_PATH_IMAGE037
、下肢当前帧角速度
Figure 937782DEST_PATH_IMAGE038
使用CVAE解码器预测得到的下肢当前帧速度
Figure 326038DEST_PATH_IMAGE037
、下肢当前帧角速度
Figure 426850DEST_PATH_IMAGE038
与样本当前帧姿态对应的真实的下肢当前帧速度
Figure 875148DEST_PATH_IMAGE037
、下肢当前帧角速度
Figure 326989DEST_PATH_IMAGE038
计算损失,并根据损失训练CVAE编码器和CVAE解码器。
示例性的,CVAE解码器包括Gate(栅栏)网络和Multiple Experts(多重专家)网络。
在训练好CVAE网络后,使用CVAE编码器输出的姿态特征z作为真实标签,训练采样网络601输出的姿态特征z。
将髋关节前一帧速度
Figure 253357DEST_PATH_IMAGE024
、下肢前一帧速度
Figure 208675DEST_PATH_IMAGE025
、上肢前一帧旋转
Figure 31137DEST_PATH_IMAGE028
拼接后输入状态编码器得到第一编码后,将第一编码与第一中间帧帧数拼接得到第一数据;
拼接上肢目标旋转
Figure 829329DEST_PATH_IMAGE033
与上肢前一帧旋转
Figure 933289DEST_PATH_IMAGE028
之差、下肢目标位置
Figure 133326DEST_PATH_IMAGE032
与下肢前一帧位置
Figure 798794DEST_PATH_IMAGE029
之差、髋关节目标位置
Figure 84282DEST_PATH_IMAGE031
与髋关节前一帧位置
Figure 227818DEST_PATH_IMAGE030
之差,得到偏移数据,将偏移数据输入偏移编码器输出第二数据;将髋关节目标位置
Figure 282362DEST_PATH_IMAGE031
、下肢目标位置
Figure 446627DEST_PATH_IMAGE032
、上肢目标旋转
Figure 829198DEST_PATH_IMAGE047
拼接输入目标编码器得到目标数据,拼接第二数据和目标数据得到第三数据;示例性的,也可以拼接第二数据、目标数据和噪声数据得到第三数据。
拼接第一数据与第三数据得到输入数据;
调用LSTM网络和解析解码器基于输入数据,输出姿态特征z、髋关节当前帧速度
Figure 901059DEST_PATH_IMAGE034
、上肢当前帧角速度
Figure 449590DEST_PATH_IMAGE035
、髋关节当前帧角速度
Figure 581494DEST_PATH_IMAGE036
将CVAE编码器输出的姿态特征z作为真实标签,计算与解析解码器预测的姿态特征z的损失;计算解析解码器预测的髋关节当前帧速度
Figure 716940DEST_PATH_IMAGE034
、上肢当前帧角速度
Figure 326913DEST_PATH_IMAGE035
、髋关节当前帧角速度
Figure 559311DEST_PATH_IMAGE036
分别与样本当前帧姿态的真实的髋关节当前帧速度
Figure 471904DEST_PATH_IMAGE034
、上肢当前帧角速度
Figure 219280DEST_PATH_IMAGE035
、髋关节当前帧角速度
Figure 508310DEST_PATH_IMAGE036
的损失;基于上述损失训练状态编码器、目标编码器、偏移编码器、LSTM网络、解析解码器。
如此,便可以训练得到一个用于生成中间帧姿态的神经网络,该神经网络包括:采样网络和CVAE解码器,其中,采样网络包括状态编码器、目标编码器、偏移编码器、LSTM网络和解析解码器。
综上所述,本实施例提供的方法,提供了一种训练神经网络使之生成中间帧姿态的方法。先训练CVAE网络,使之准确学习处理对象的姿态分布特征,并可以根据姿态分布特征准确还原当前帧姿态。然后CVAE网络提取的姿态分布特征训练采样网络输出姿态分布特征,同时输出当前帧姿态的部分数据。之后,在应用阶段就可以直接使用采样网络和CVAE解码器来生成中间帧姿态,提高中间帧姿态生成的准确度,提高姿态过渡的平滑性,保证中间帧姿态的动作质量。
本申请实施例提供的方法可以被用于例如Maya、MotionBuilder(运动生成器)等角色动画相关的内容生产工具(Digital Content Creation,DCC)中,也可以被用于例如Unreal(UNREAL ENGINE,虚幻引擎)、Unity等游戏引擎中。
在DCC中,本申请实施例设计的中间帧生成方法可以帮助动画师快速生成角色动画资源,或者修改现有角色动画资源中的问题。动画师需要提供若(≥1)干历史帧和若干(≥1)未来帧(目标姿态),这些历史帧和未来帧可以从已有动画资源中提取,也可以由动画师直接创作。该方法会根据这些历史帧和未来帧动态确定需要生成的帧数,并使用基线方法完成中间帧动画的生成。
在游戏引擎中,本申请实施例提供的方法可以被用来做动画衔接。比如,游戏中经常需要从位置动画(Localmotion)切换到一段交互动画,而这段交互动画的起始位置通常是预设好的。使用当前Localmotion动画帧以及该交互动画的首帧(或首几帧)作为该方法的输入,就可以自动生成中间的过渡帧,且生成的帧数会随着需要衔接的两个姿态的距离远近、朝向差异等因素,由算法自适应确定。
与相关技术中的方法相比,在静态目标帧的情况下,本申请实施例提供的方法可以显著提升动作质量,解决了基线方法生成动作急促、抖动等问题。
以下为本申请的装置实施例,对于装置实施例中未详细描述的细节,可以结合参考上述方法实施例中相应的记载,本文不再赘述。
图10示出了本申请的一个示例性实施例提供的中间帧的生成装置的结构示意图。该装置可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或一部分,该装置包括:
帧数模块701,用于根据处理对象的前一帧姿态与目标姿态的姿态差异,计算当前帧姿态对应的第一中间帧帧数,所述第一中间帧帧数是从所述前一帧姿态过渡至所述目标姿态中间所需生成的姿态帧数,所述前一帧姿态为所述当前帧姿态之前一帧所述处理对象的姿态;
生成模块702,用于根据所述第一中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态;
判断模块703,用于在所述第一中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
在一个可选的实施例中,所述帧数模块701,用于获取所述前一帧姿态对应的第二中间帧帧数;
所述帧数模块701,用于将所述第二中间帧帧数和第三中间帧帧数中的较小值确定为所述第一中间帧帧数;
其中,所述第三中间帧帧数是根据所述前一帧姿态与所述目标姿态的姿态差异确定的。
在一个可选的实施例中,所述姿态差异包括位置差异和旋转差异;
所述帧数模块701,用于基于所述位置差异获取位置差异帧数值;
所述帧数模块701,用于基于所述旋转差异获取旋转差异帧数值;
所述帧数模块701,用于将所述位置差异帧数值与所述旋转差异帧数值中的较大值确定为所述第三中间帧帧数。
在一个可选的实施例中,所述前一帧姿态包括所述处理对象根关节的前一帧位置信息,所述目标姿态包括所述处理对象根关节的目标位置信息;
所述帧数模块701,用于计算所述前一帧位置信息与所述目标位置信息的二范数,得到第一数值;
所述帧数模块701,用于计算所述第一数值的γ次方与α的第一乘积,γ、α为预设参数;
所述帧数模块701,用于将所述第一乘积与位置差异帧数最大值中的较小值确定为所述位置差异帧数值,所述位置差异帧数最大值是位置差异带来的中间帧帧数的最大值。
在一个可选的实施例中,所述前一帧姿态包括所述处理对象J个关节的前一帧旋转信息,所述目标姿态包括所述处理对象J个关节的目标旋转信息,J为正整数;
所述帧数模块701,用于计算每个关节所述前一帧旋转信息与所述目标旋转信息的旋转角;
所述帧数模块701,用于计算所述J个关节的旋转角之和;
所述帧数模块701,用于将所述旋转角之和除以J除以π乘以旋转差异帧数最大值,得到所述旋转差异帧数值,所述旋转差异帧数最大值是旋转差异带来的中间帧帧数的最大值。
在一个可选的实施例中,所述判断模块703,用于在所述第一中间帧帧数大于或等于阈值的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
在一个可选的实施例中,所述判断模块703,用于在所述第一中间帧帧数小于所述阈值的情况下,将所述下一帧姿态更新为所述当前帧姿态,将所述第一中间帧帧数更新为所述第一中间帧帧数减一;
所述生成模块702,用于根据所述第一中间帧帧数、所述前一帧姿态、所述目标姿态生成所述当前帧姿态;重复执行上述两步骤。
在一个可选的实施例中,所述装置还包括:
在所述第一中间帧帧数等于一的情况下,停止生成中间帧。
在一个可选的实施例中,所述生成模块702,用于获取输入数据,所述输入数据包括所述前一帧姿态、所述目标姿态和所述第一中间帧帧数;
所述生成模块702,用于调用第一网络模型基于所述输入数据输出姿态特征、髋关节当前帧姿态数据、上肢当前帧姿态数据;
所述生成模块702,用于调用第二网络模型基于所述姿态特征、所述前一帧姿态、所述髋关节当前帧姿态数据输出下肢当前帧姿态数据;
所述生成模块702,用于基于所述前一帧姿态、所述髋关节当前帧姿态数据、所述上肢当前帧姿态数据和所述下肢当前帧姿态数据得到所述当前帧姿态。
在一个可选的实施例中,所述前一帧姿态包括髋关节前一帧速度、下肢前一帧速度、髋关节前一帧旋转、下肢前一帧旋转、上肢前一帧旋转、下肢前一帧位置、髋关节前一帧位置;
所述目标姿态包括髋关节目标位置、下肢目标位置、上肢目标旋转;
所述生成模块702,用于将所述髋关节前一帧速度、所述下肢前一帧速度、所述上肢前一帧旋转与所述第一中间帧帧数拼接得到第一数据;
所述生成模块702,用于拼接所述上肢目标旋转与所述上肢前一帧旋转之差、所述下肢目标位置与所述下肢前一帧位置之差、所述髋关节目标位置与所述髋关节前一帧位置之差,得到第二数据;
所述生成模块702,用于拼接所述第二数据与所述髋关节目标位置、下肢目标位置、上肢目标旋转得到第三数据;
所述生成模块702,用于拼接所述第一数据与所述第三数据得到输入数据;
所述生成模块702,用于调用长短期记忆LSTM网络和解析解码器基于所述输入数据,输出姿态特征、髋关节当前帧速度、上肢当前帧角速度、髋关节当前帧角速度;
所述生成模块702,用于调用条件变分子动编码器CVAE的解码器基于所述姿态特征、所述髋关节当前帧速度、所述髋关节前一帧速度、所述下肢前一帧速度、所述下肢前一帧旋转、所述髋关节前一帧旋转,输出下肢当前帧速度、下肢当前帧角速度;
所述生成模块702,用于基于所述前一帧姿态、所述髋关节当前帧速度、所述上肢当前帧角速度、所述髋关节当前帧角速度、下肢当前帧速度、下肢当前帧角速度,生成所述当前帧姿态。
图11是本申请一个实施例提供的服务器的结构示意图。具体来讲:服务器800包括中央处理单元(英文:Central Processing Unit,简称:CPU)801、包括随机存取存储器(英文:Random Access Memory,简称:RAM)802和只读存储器(英文:Read-Only Memory,简称:ROM)803的系统存储器804,以及连接系统存储器804和中央处理单元801的系统总线805。服务器800还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)806,和用于存储操作系统813、应用程序814和其他程序模块815的大容量存储设备807。
基本输入/输出系统806包括有用于显示信息的显示器808和用于用户帐号输入信息的诸如鼠标、键盘之类的输入设备809。其中显示器808和输入设备809都通过连接到系统总线805的输入/输出控制器810连接到中央处理单元801。基本输入/输出系统806还可以包括输入/输出控制器810以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器810还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备807通过连接到系统总线805的大容量存储控制器(未示出)连接到中央处理单元801。大容量存储设备807及其相关联的计算机可读介质为服务器800提供非易失性存储。也就是说,大容量存储设备807可以包括诸如硬盘或者只读光盘(英文:Compact Disc Read-Only Memory,简称:CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(英文:Erasable Programmable Read-Only Memory,简称:EPROM)、电可擦除可编程只读存储器(英文:Electrically Erasable Programmable Read-Only Memory,简称:EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字通用光盘(英文:Digital Versatile Disc,简称:DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备807可以统称为存储器。
根据本申请的各种实施例,服务器800还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器800可以通过连接在系统总线805上的网络接口单元811连接到网络812,或者说,也可以使用网络接口单元811来连接到其他类型的网络或远程计算机系统(未示出)。
本申请还提供了一种终端,该终端包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的中间帧的生成方法。需要说明的是,该终端可以是如图12所提供的终端。
图12示出了本申请一个示例性实施例提供的终端900的结构框图。该终端900可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio LayerIV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端900还可能被称为用户帐号设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有GPU(Graphics Processing Unit,中间帧的生成器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请中方法实施例提供的中间帧的生成方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907、和电源909中的至少一种。
外围设备接口903可被用于将I/O(Input /Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。示例性的,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户帐号身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。示例性的,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户帐号及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、光学传感器915以及接近传感器916。
加速度传感器911可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户帐号的运动数据的采集。
陀螺仪传感器912可以检测终端900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户帐号对终端900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户帐号的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在终端900的侧边框和/或显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户帐号对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在显示屏905的下层时,由处理器901根据用户帐号对显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制显示屏905的显示亮度。具体地,当环境光强度较高时,调高显示屏905的显示亮度;当环境光强度较低时,调低显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在终端900的前面板。接近传感器916用于采集用户帐号与终端900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户帐号与终端900的正面之间的距离逐渐变小时,由处理器901控制显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户帐号与终端900的正面之间的距离逐渐变大时,由处理器901控制显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图12中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的中间帧的生成方法。
本申请还提供一种计算机设备,该计算机设备包括:处理器和存储器,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的中间帧的生成方法。
本申请还提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的中间帧的生成方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
需要进行说明的是,本申请在收集用户的相关数据之前以及在收集用户的相关数据的过程中,都可以显示提示界面、弹窗或输出语音提示信息,该提示界面、弹窗或语音提示信息用于提示用户当前正在搜集其相关数据,使得本申请仅仅在获取到用户对该提示界面或者弹窗发出的确认操作后,才开始执行获取用户相关数据的相关步骤,否则(即未获取到用户对该提示界面或者弹窗发出的确认操作时),结束获取用户相关数据的相关步骤,即不获取用户的相关数据。换句话说,本申请所采集的所有用户数据都是在用户同意并授权的情况下进行采集的,且相关用户数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

Claims (13)

1.一种中间帧的生成方法,其特征在于,所述方法包括:
根据处理对象的前一帧姿态与目标姿态的姿态差异,计算当前帧姿态对应的第一中间帧帧数,所述第一中间帧帧数是从所述前一帧姿态过渡至所述目标姿态中间所需生成的姿态帧数,所述前一帧姿态为所述当前帧姿态之前一帧所述处理对象的姿态;
根据所述第一中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态;
在所述第一中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
2.根据权利要求1所述的方法,其特征在于,所述根据处理对象的前一帧姿态与目标姿态的姿态差异,计算当前帧姿态对应的第一中间帧帧数,包括:
获取所述前一帧姿态对应的第二中间帧帧数;
将所述第二中间帧帧数和第三中间帧帧数中的较小值确定为所述第一中间帧帧数;
其中,所述第三中间帧帧数是根据所述前一帧姿态与所述目标姿态的姿态差异确定的。
3.根据权利要求2所述的方法,其特征在于,所述姿态差异包括位置差异和旋转差异;所述方法还包括:
基于所述位置差异获取位置差异帧数值;
基于所述旋转差异获取旋转差异帧数值;
将所述位置差异帧数值与所述旋转差异帧数值中的较大值确定为所述第三中间帧帧数。
4.根据权利要求3所述的方法,其特征在于,所述前一帧姿态包括所述处理对象根关节的前一帧位置信息,所述目标姿态包括所述处理对象根关节的目标位置信息;
所述基于所述位置差异获取位置差异帧数值,包括:
计算所述前一帧位置信息与所述目标位置信息的二范数,得到第一数值;
计算所述第一数值的γ次方与α的第一乘积,γ、α为预设参数;
将所述第一乘积与位置差异帧数最大值中的较小值确定为所述位置差异帧数值,所述位置差异帧数最大值是位置差异带来的中间帧帧数的最大值。
5.根据权利要求3所述的方法,其特征在于,所述前一帧姿态包括所述处理对象J个关节的前一帧旋转信息,所述目标姿态包括所述处理对象J个关节的目标旋转信息,J为正整数;
所述基于所述旋转差异获取旋转差异帧数值,包括:
计算每个关节所述前一帧旋转信息与所述目标旋转信息的旋转角;
计算所述J个关节的旋转角之和;
将所述旋转角之和除以J除以π乘以旋转差异帧数最大值,得到所述旋转差异帧数值,所述旋转差异帧数最大值是旋转差异带来的中间帧帧数的最大值。
6.根据权利要求1至5任一所述的方法,其特征在于,所述在所述第一中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态,包括:
在所述第一中间帧帧数大于或等于阈值的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在所述第一中间帧帧数小于所述阈值的情况下,将所述下一帧姿态更新为所述当前帧姿态,将所述第一中间帧帧数更新为所述第一中间帧帧数减一;
根据所述第一中间帧帧数、所述前一帧姿态、所述目标姿态生成所述当前帧姿态;
重复执行上述两步骤。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在所述第一中间帧帧数等于一的情况下,停止生成中间帧。
9.根据权利要求1至5任一所述的方法,其特征在于,所述根据所述第一中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态,包括:
获取输入数据,所述输入数据包括所述前一帧姿态、所述目标姿态和所述第一中间帧帧数;
调用第一网络模型基于所述输入数据输出姿态特征、髋关节当前帧姿态数据、上肢当前帧姿态数据;
调用第二网络模型基于所述姿态特征、所述前一帧姿态、所述髋关节当前帧姿态数据输出下肢当前帧姿态数据;
基于所述前一帧姿态、所述髋关节当前帧姿态数据、所述上肢当前帧姿态数据和所述下肢当前帧姿态数据得到所述当前帧姿态。
10.根据权利要求1至5任一所述的方法,其特征在于,所述前一帧姿态包括髋关节前一帧速度、下肢前一帧速度、髋关节前一帧旋转、下肢前一帧旋转、上肢前一帧旋转、下肢前一帧位置、髋关节前一帧位置;
所述目标姿态包括髋关节目标位置、下肢目标位置、上肢目标旋转;
所述根据所述第一中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态,包括:
将所述髋关节前一帧速度、所述下肢前一帧速度、所述上肢前一帧旋转与所述第一中间帧帧数拼接得到第一数据;
拼接所述上肢目标旋转与所述上肢前一帧旋转之差、所述下肢目标位置与所述下肢前一帧位置之差、所述髋关节目标位置与所述髋关节前一帧位置之差,得到第二数据;
拼接所述第二数据与所述髋关节目标位置、下肢目标位置、上肢目标旋转得到第三数据;
拼接所述第一数据与所述第三数据得到输入数据;
调用长短期记忆LSTM网络和解析解码器基于所述输入数据,输出姿态特征、髋关节当前帧速度、上肢当前帧角速度、髋关节当前帧角速度;
调用条件变分子动编码器CVAE的解码器基于所述姿态特征、所述髋关节当前帧速度、所述髋关节前一帧速度、所述下肢前一帧速度、所述下肢前一帧旋转、所述髋关节前一帧旋转,输出下肢当前帧速度、下肢当前帧角速度;
基于所述前一帧姿态、所述髋关节当前帧速度、所述上肢当前帧角速度、所述髋关节当前帧角速度、下肢当前帧速度、下肢当前帧角速度,生成所述当前帧姿态。
11.一种中间帧的生成装置,其特征在于,所述装置包括:
帧数模块,用于根据处理对象的前一帧姿态与目标姿态的姿态差异,计算当前帧姿态对应的第一中间帧帧数,所述第一中间帧帧数是从所述前一帧姿态过渡至所述目标姿态中间所需生成的姿态帧数,所述前一帧姿态为所述当前帧姿态之前一帧所述处理对象的姿态;
生成模块,用于根据所述第一中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态;
判断模块,用于在所述第一中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
12.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行,以实现如权利要求1至10任一项所述的中间帧的生成方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行,以实现如权利要求1至10任一项所述的中间帧的生成方法。
CN202211570047.2A 2022-12-08 2022-12-08 中间帧的生成方法、装置、设备及存储介质 Active CN115578494B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211570047.2A CN115578494B (zh) 2022-12-08 2022-12-08 中间帧的生成方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211570047.2A CN115578494B (zh) 2022-12-08 2022-12-08 中间帧的生成方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115578494A true CN115578494A (zh) 2023-01-06
CN115578494B CN115578494B (zh) 2023-04-18

Family

ID=84590315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211570047.2A Active CN115578494B (zh) 2022-12-08 2022-12-08 中间帧的生成方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115578494B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116030168A (zh) * 2023-03-29 2023-04-28 腾讯科技(深圳)有限公司 中间帧的生成方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110075027A1 (en) * 2009-06-29 2011-03-31 Hung Wei Wu Apparatus and method of frame rate up-conversion with dynamic quality control
US20110187712A1 (en) * 2010-02-01 2011-08-04 Samsung Electronics Co., Ltd. Parallel operation processing apparatus and method
US8184200B1 (en) * 2008-04-22 2012-05-22 Marvell International Ltd. Picture rate conversion system for high definition video
JP2015084022A (ja) * 2013-10-25 2015-04-30 セイコーエプソン株式会社 電気光学装置、電子機器及び画像処理装置
CN115131475A (zh) * 2022-04-28 2022-09-30 腾讯科技(深圳)有限公司 过渡帧生成方法、装置、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8184200B1 (en) * 2008-04-22 2012-05-22 Marvell International Ltd. Picture rate conversion system for high definition video
US20110075027A1 (en) * 2009-06-29 2011-03-31 Hung Wei Wu Apparatus and method of frame rate up-conversion with dynamic quality control
US20110187712A1 (en) * 2010-02-01 2011-08-04 Samsung Electronics Co., Ltd. Parallel operation processing apparatus and method
JP2015084022A (ja) * 2013-10-25 2015-04-30 セイコーエプソン株式会社 電気光学装置、電子機器及び画像処理装置
CN115131475A (zh) * 2022-04-28 2022-09-30 腾讯科技(深圳)有限公司 过渡帧生成方法、装置、设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MINHO PARK 等: "Robust Video Frame Interpolation With Exceptional Motion Map", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 *
关东东;关华勇;傅颖;: "一种3维动画中间帧非线性插值算法" *
王文中等: "基于局部先验模型的单目视频人体运动跟踪", 《计算机辅助设计与图形学学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116030168A (zh) * 2023-03-29 2023-04-28 腾讯科技(深圳)有限公司 中间帧的生成方法、装置、设备及存储介质
CN116030168B (zh) * 2023-03-29 2023-06-09 腾讯科技(深圳)有限公司 中间帧的生成方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN115578494B (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
US20200387698A1 (en) Hand key point recognition model training method, hand key point recognition method and device
CN111738220B (zh) 三维人体姿态估计方法、装置、设备及介质
CN110544272B (zh) 脸部跟踪方法、装置、计算机设备及存储介质
CN111476783B (zh) 基于人工智能的图像处理方法、装置、设备及存储介质
CN110135336B (zh) 行人生成模型的训练方法、装置及存储介质
CN110263131B (zh) 回复信息生成方法、装置及存储介质
CN112598780B (zh) 实例对象模型构建方法及装置、可读介质和电子设备
CN113289327A (zh) 移动终端的显示控制方法及装置、存储介质及电子设备
WO2020151685A1 (zh) 编码方法、装置、设备及存储介质
CN113706678A (zh) 获取虚拟形象的方法、装置、设备及计算机可读存储介质
CN111753498A (zh) 文本处理方法、装置、设备及存储介质
CN115578494B (zh) 中间帧的生成方法、装置、设备及存储介质
CN113750523A (zh) 三维虚拟对象的动作生成方法、装置、设备及存储介质
CN111589138B (zh) 动作预测方法、装置、设备及存储介质
CN113744286A (zh) 虚拟头发生成方法及装置、计算机可读介质和电子设备
CN113705302A (zh) 图像生成模型的训练方法、装置、计算机设备及存储介质
CN115131475A (zh) 过渡帧生成方法、装置、设备及存储介质
CN113821658A (zh) 对编码器进行训练的方法、装置、设备及存储介质
CN117058284A (zh) 图像生成方法、装置和计算机可读存储介质
CN111447379B (zh) 生成信息的方法和装置
CN110990549A (zh) 获取答案的方法、装置、电子设备及存储介质
CN116188742A (zh) 虚拟对象的控制方法、装置、设备及存储介质
CN115223248A (zh) 手部姿态识别方法、手部姿态识别模型的训练方法及装置
CN112711335B (zh) 虚拟环境画面的显示方法、装置、设备及存储介质
CN116863042A (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
GR01 Patent grant
GR01 Patent grant