CN116030168A - 中间帧的生成方法、装置、设备及存储介质 - Google Patents
中间帧的生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116030168A CN116030168A CN202310322250.6A CN202310322250A CN116030168A CN 116030168 A CN116030168 A CN 116030168A CN 202310322250 A CN202310322250 A CN 202310322250A CN 116030168 A CN116030168 A CN 116030168A
- Authority
- CN
- China
- Prior art keywords
- frame
- posture
- target
- pose
- gesture
- 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
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种中间帧的生成方法、装置、设备及存储介质,涉及计算机图形学领域。该方法包括:根据处理对象的前一帧姿态与目标姿态的姿态差异,以及前一帧姿态与目标姿态的速度差异,计算当前帧姿态对应的中间帧帧数;中间帧帧数是从前一帧姿态过渡至目标姿态所需生成的中间帧姿态的帧数,前一帧姿态为当前帧姿态之前一帧处理对象的姿态;根据中间帧帧数,生成用于从前一帧姿态过渡至目标姿态所需的当前帧姿态;在中间帧帧数满足执行条件的情况下,将下一帧姿态更新为当前帧姿态,重复执行上述步骤生成下一帧姿态。该方法可以根据前一帧姿态与目标姿态动态调整中间帧帧数,保证中间帧的动作质量。
Description
技术领域
本申请涉及计算机图形学领域,特别涉及一种中间帧的生成方法、装置、设备及存储介质。
背景技术
角色中间帧动画生成是动画生成技术中的一种,给定若干历史时间动画帧(≥1帧)和若干未来时间动画帧(≥1帧),生成二者中间的若干动画帧。角色中间帧动画生成技术可以帮助动画师快速生成动画内容,提高内容生产效率。此外,该技术还可以被用在游戏引擎中,用来自然的衔接两端动画序列,让游戏中的动画过渡部分更真实、自然。
对于时长较长的动作过渡,相关技术方案皆采用深度学习的方法来生成中间帧,使用若干历史时间帧、若干未来时间帧和生成帧数作为输入,并使用适用于生成任务的深度学习模型来实现中间帧的动作生成。
相关技术中的方法需要人工指定生成帧数。生成帧数对最终的效果有很大影响:如果生成帧数被设置的过小,则生成的动作显得急促、不自然、有滑步;如果生成帧数被设置的过大,则生成的动作迟缓、冗余、有抖动。
发明内容
本申请实施例提供了一种中间帧的生成方法、装置、设备及存储介质,可以根据前一帧姿态与目标姿态动态调整中间帧帧数,保证中间帧的动作质量。所述技术方案如下。
根据本申请的一方面,提供了一种中间帧的生成方法,所述方法包括:
根据处理对象的前一帧姿态与目标姿态的姿态差异,以及所述前一帧姿态与所述目标姿态的速度差异,计算当前帧姿态对应的中间帧帧数;所述中间帧帧数是从所述前一帧姿态过渡至所述目标姿态所需生成的中间帧姿态的帧数,所述前一帧姿态为所述当前帧姿态之前一帧所述处理对象的姿态;
根据所述中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态;
在所述中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
在一个可选的实施例中,所述方法还包括:
步骤一:将所述高帧率动画中的第一帧姿态确定为所述前一帧姿态,将所述高帧率动画的最后一帧姿态确定为所述目标姿态;所述高帧率动画的帧率高于帧率阈值;
步骤二:将所述前一帧姿态与所述目标姿态输入帧数预测模型,得到所述中间帧帧数;
步骤三:获取所述前一帧姿态在所述高帧率动画中对应的第一时间点,以及,获取所述目标姿态在所述高帧率动画中对应的第二时间点;
步骤四:根据所述中间帧帧数等分所述第一时间点至所述第二时间点,确定第一帧中间帧所在的第三时间点;
步骤五:将所述高帧率动画中与所述第三时间点最近的姿态帧确定为关键帧;
步骤六:将所述关键帧确定为所述前一帧姿态,将所述高帧率动画的最后一帧姿态确定为所述目标姿态;
重复执行所述步骤二至所述步骤六,获取所述高帧率动画中的至少一帧所述关键帧;
根据至少一帧所述关键帧、所述第一帧姿态、所述最后一帧姿态,生成所述高帧率动画的压缩动画。
在一个可选的实施例中,所述将所述前一帧姿态与所述目标姿态输入帧数预测模型,得到所述中间帧帧数,包括:
将所述前一帧姿态、所述目标姿态以及场景标签输入所述帧数预测模型,得到所述中间帧帧数,所述场景标签包括:白天、黑夜、远景对象、近景对象中的至少一个;
所述根据所述中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态,包括:
将所述中间帧帧数、所述前一帧姿态以及所述目标姿态,输入所述场景标签对应的中间帧生成模型,生成所述当前帧姿态。
在一个可选的实施例中,所述方法还包括:
获取所述目标姿态对应的动作描述,所述动作描述是用于指示过渡动作的文本信息;
调用语义识别模型对所述动作描述进行语义识别,得到语义特征;
所述将所述前一帧姿态与所述目标姿态输入帧数预测模型,得到所述中间帧帧数,包括:
将所述前一帧姿态、所述目标姿态以及所述语义特征输入所述帧数预测模型,得到所述中间帧帧数;
所述根据所述中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态,包括:
将所述中间帧帧数、所述语义特征、所述前一帧姿态以及所述目标姿态,输入所述中间帧生成模型,生成所述当前帧姿态,所述当前帧姿态为所述过渡动作对应的一帧姿态。
在一个可选的实施例中,所述方法还包括:
获取伴奏音频;
调用编码器对所述伴奏音频进行特征提取,得到音频特征;
所述将所述前一帧姿态与所述目标姿态输入帧数预测模型,得到所述中间帧帧数,包括:
将所述前一帧姿态、所述目标姿态以及所述音频特征输入所述帧数预测模型,得到所述中间帧帧数;
所述根据所述中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态,包括:
将所述中间帧帧数、所述音频特征、所述前一帧姿态以及所述目标姿态,输入所述中间帧生成模型,生成所述当前帧姿态。
根据本申请的另一方面,提供了一种中间帧的生成装置,所述装置包括:
帧数模块,用于根据处理对象的前一帧姿态与目标姿态的姿态差异,以及所述前一帧姿态与所述目标姿态的速度差异,计算当前帧姿态对应的中间帧帧数;所述中间帧帧数是从所述前一帧姿态过渡至所述目标姿态所需生成的中间帧姿态的帧数,所述前一帧姿态为所述当前帧姿态之前一帧所述处理对象的姿态;
生成模块,用于根据所述中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态;
判断模块,用于在所述中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
根据本申请的另一方面,提供了一种计算机设备,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的中间帧的生成方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上方面所述的中间帧的生成方法。
根据本申请的另一方面,提供了一种计算机程序产品,所述计算机程序产品中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上方面所述的中间帧的生成方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
在基于历史帧和未来帧来生成中间帧时,中间帧的帧数不仅与姿态变化有关,还与历史帧和未来帧中处理对象的速度有关。例如,当历史帧中处理对象的速度不为0,未来帧中处理对象的速度为0时,所生成的中间帧需要逐渐降低速度至处理对象静止;而当未来帧中处理对象的速度不为0时,所生成的中间帧则无需减速至静止;显然上述两种移动过程所对应的中间帧不同。因此,在生成当前帧姿态之前,根据前一帧姿态以及目标姿态的姿态差异和速度差异,计算前一帧姿态与目标姿态之间的中间帧帧数,使中间帧帧数与前一帧姿态和目标姿态的姿态差异、速度差异相匹配。根据该中间帧帧数生成当前帧姿态,可以避免由于中间帧帧数不准确引起的中间帧动作质量低的问题。并且,在生成每一帧中间帧之前,都会根据该中间帧之前的一帧姿态以及目标姿态之间的姿态差距,来计算中间帧帧数,并根据实时计算得到的中间帧帧数来生成每一帧中间帧,提高中间帧姿态的动作质量,避免动作急促、滑步、冗余、抖动等问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的计算机设备的框图;
图2是本申请一个示例性实施例提供的中间帧的生成方法的方法流程图;
图3是本申请一个示例性实施例提供的姿态的示意图;
图4是本申请另一个示例性实施例提供的姿态的示意图;
图5是本申请一个示例性实施例提供的关节点的示意图;
图6是本申请一个示例性实施例提供的姿态过渡的示意图;
图7是本申请另一个示例性实施例提供的中间帧的生成方法的示意图;
图8是本申请一个示例性实施例提供的帧数预测模型的示意图;
图9是本申请另一个示例性实施例提供的中间帧的生成方法的方法流程图;
图10是本申请又一个示例性实施例提供的中间帧的生成方法的方法流程图;
图11是本申请一个示例性实施例提供的中间帧生成模型的示意图;
图12是本申请又一个示例性实施例提供的中间帧的生成方法的示意图;
图13是本申请再一个示例性实施例提供的中间帧的生成方法的方法流程图;
图14是本申请一个示例性实施例提供的中间帧生成模型的训练过程的示意图;
图15是本申请一个示例性实施例提供的中间帧的生成装置的框图;
图16是本申请一个示例性实施例提供的服务器的结构示意图;
图17是本申请一个示例性实施例提供的终端的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
人工智能(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。可选的,处理对象在前一帧姿态时是运动状态,即,前一帧姿态中存在至少一个关节点的速度不为0。本申请实施例提供的方法,适用于前一帧姿态和目标姿态均为动态的场景。
可选的,本申请实施例提供的方法,在生成当前帧姿态之前,先计算当前帧姿态对应的中间帧帧数,中间帧帧数是指包含当前帧姿态在内,过渡至目标姿态还需要生成多少帧中间帧姿态。可选的,每当生成一个中间帧姿态之前,都需要计算该中间帧姿态对应的中间帧帧数,以便于根据计算得到的中间帧帧数生成该中间帧姿态。
例如,在生成第一帧中间帧姿态时,根据给定的起始姿态(前一帧姿态)、目标姿态,计算得到起始姿态和目标姿态之间有8帧中间帧姿态,则根据8、起始姿态、目标姿态来生成第一帧中间帧姿态。在生成第二帧中间帧姿态时,则根据第一帧中间帧姿态、目标姿态,计算第一帧中间帧姿态和目标姿态之间有6帧(每一帧中间帧姿态对应的中间帧帧数都是实时计算得到的,相邻两帧中间帧姿态所对应的中间帧帧数没有直接关系,或者,中间帧姿态对应的中间帧帧数呈递减趋势),则根据6、第一帧中间帧姿态、目标姿态生成第二帧中间帧姿态。
姿态差异包括前一帧姿态与目标姿态的动作差异、位置差异中的至少一种。可选的,姿态差异包括处理对象的每个关节点的位置差异、旋转差异中的至少一种。
中间帧帧数与姿态差异呈正相关关系。若前一帧姿态与目标姿态的姿态差异过大,则中间帧帧数较多,即,生成更多的中间帧姿态来更好地完成前一帧姿态与目标姿态之间的过渡。若前一帧姿态与目标姿态的姿态差异较小,则中间帧帧数较少,即,生成少量的中间帧姿态就可以很好地完成前一帧姿态到目标姿态的过渡。
速度差异包括前一帧姿态与目标姿态中相同位置的关节点的速度差,速度差可以是速度数值的差值(无方向),或者是速度向量之差(有方向)。例如,处理对象包括髋关节、上肢关节和下肢关节。则速度差异包括前一帧姿态与目标姿态的髋关节速度差、上肢关节速度差、下肢关节速度差中的至少个。
或者,速度差异可以是前一帧姿态与目标姿态中相同位置的关节点的速度差之和。例如,处理对象包括髋关节、上肢关节和下肢关节。则速度差异包括前一帧姿态与目标姿态的髋关节速度差、上肢关节速度差、下肢关节速度差之和。
中间帧帧数与速度差异呈正相关关系。若前一帧姿态与目标姿态的速度差异较大,则中间帧帧数较多。若前一帧姿态与目标姿态的速度差异较小,则中间帧帧数较少。
中间帧帧数是当前帧姿态对应的中间帧帧数,即,前一帧姿态与目标姿态之间有多少帧中间帧姿态。可选的,中间帧帧数是包含当前帧姿态在内的,若前一帧姿态与目标姿态之间只有当前帧姿态一帧中间帧,则当前帧姿态对应的中间帧帧数为1。即,中间帧帧数是正整数。
在一种可选的实施例中,使用神经网络模型来学习前一帧姿态和目标姿态的姿态差异和速度差异,并基于学习到的姿态差异和速度差异输出中间帧帧数。
在另一种可选的实施例中,利用动作捕捉得到的处理对象的姿态变化数据集,来拟合得到姿态差异与中间帧帧数的关系曲线、速度差异与中间帧帧数的关系曲线,根据两个关系曲线分别获取到姿态差异对应的中间帧帧数,以及速度差异对应的中间帧帧数,取两个中间帧帧数的较大值作为最终的中间帧帧数。
在又一种可选的实施例中,每单位姿态差异对应第一中间帧帧数,每单位速度差异对应第二中间帧帧数,计算姿态差异与单位姿态差异的第一比值,计算速度差异与单位速度差异的第二比值,中间帧帧数等于第一比值乘以第一中间帧帧数加第二比值乘以第二中间帧帧数。
步骤220,根据中间帧帧数,生成用于从前一帧姿态过渡至目标姿态所需的当前帧姿态。
在生成当前帧姿态时,除了参照前一帧姿态和目标姿态,还会根据前一帧姿态与目标姿态之间中间帧姿态的帧数。计算机设备根据中间帧帧数、前一帧姿态、目标姿态来生成当前帧姿态,例如,将中间帧帧数、前一帧姿态、目标姿态作为输入数据,输入神经网络模型,来预测得到当前帧姿态。
步骤230,在中间帧帧数满足执行条件的情况下,将下一帧姿态更新为当前帧姿态,重复执行上述步骤生成下一帧姿态。
可选的,每当生成一帧中间帧姿态之后,都会根据该中间帧姿态对应的中间帧帧数来进行判定,判定是否需要继续生成下一帧中间帧姿态,或者,判定采用何种方式生成下一帧中间帧姿态。
当当前帧姿态对应的中间帧帧数满足执行条件时,则继续执行步骤210至步骤220生成下一帧姿态。并在生成下一帧姿态之后,继续根据下一帧姿态对应的中间帧帧数进行判定。
示例性的,在重复执行步骤210和步骤220时,是将下一帧姿态作为当前帧姿态去生成的,则此时的前一帧姿态为刚刚生成的当前帧姿态。例如,在第一次执行步骤210和步骤220生成第一帧中间帧姿态(当前帧姿态)后,重复执行步骤210和步骤220时,将第二帧中间帧姿态作为步骤210和步骤220中的当前帧姿态,将第一帧中间帧姿态作为前一帧姿态,进而生成第二帧中间帧姿态。
可选的,执行条件用于判定是否生成下一帧姿态和或用于判定采用何种方式生成下一帧姿态。执行条件可以根据需要任意设置。例如,可以设置为,当中间帧帧数不为1时,将下一帧姿态更新为当前帧姿态,重复执行上述步骤生成下一帧姿态。再如,当中间帧帧数减1不为0时,将下一帧姿态更新为当前帧姿态,重复执行上述步骤生成下一帧姿态。再如,当中间帧帧数大于阈值时,将下一帧姿态更新为当前帧姿态,重复执行上述步骤生成下一帧姿态。
综上所述,本实施例提供的方法,在基于历史帧和未来帧来生成中间帧时,中间帧的帧数不仅与姿态变化有关,还与历史帧和未来帧中处理对象的速度有关。例如,当历史帧中处理对象的速度不为0,未来帧中处理对象的速度为0时,所生成的中间帧需要逐渐降低速度至处理对象静止;而当未来帧中处理对象的速度不为0时,所生成的中间帧则无需减速至静止;显然上述两种移动过程所对应的中间帧不同。因此,在生成当前帧姿态之前,根据前一帧姿态以及目标姿态的姿态差异和速度差异,计算前一帧姿态与目标姿态之间的中间帧帧数,使中间帧帧数与前一帧姿态和目标姿态的姿态差异、速度差异相匹配。根据该中间帧帧数生成当前帧姿态,可以避免由于中间帧帧数不准确引起的中间帧动作质量低的问题。并且,在生成每一帧中间帧之前,都会根据该中间帧之前的一帧姿态以及目标姿态之间的姿态差距,来计算中间帧帧数,并根据实时计算得到的中间帧帧数来生成每一帧中间帧,提高中间帧姿态的动作质量,避免动作急促、滑步、冗余、抖动等问题。
示例性的,给出一种利用帧数预测模型来预测中间帧帧数的示例性实施例。
图7示出了本申请一个示例性实施例提供的中间帧的生成方法的流程图。该方法可以由计算机设备来执行,例如,如图1所示的终端或服务器来执行。基于图2所示实施例,步骤210包括步骤211。
步骤211,将前一帧姿态与目标姿态输入帧数预测模型,得到中间帧帧数,前一帧姿态和目标姿态包括处理对象的关节点的位置信息和速度信息。
示例性的,前一帧姿态包括处理对象在前一帧的关节点的位置信息、速度信息。目标姿态包括处理对象在目标帧的关节点的位置信息、速度信息。上述位置信息和速度信息是在三维空间中的三维坐标信息。
前一帧姿态包括处理对象的髋关节前一帧位置、上肢前一帧位置、下肢前一帧位置、髋关节前一帧速度、上肢前一帧速度、下肢前一帧速度;目标姿态包括处理对象的髋关节目标位置、上肢目标位置、下肢目标位置、髋关节目标速度、上肢目标速度、下肢目标速度。
例如,帧数预测模型的输入数据为60维数据,其中包括一帧前一帧姿态、一帧目标姿态,每帧包括髋关节、左手、右手、左脚、右脚五个关节,每个关节包括三维位置信息以及三维速度信息,则输入数据的维度=2(帧数)×5(关节数)×(3+3)(三维位置坐标和三维速度坐标)=60维。
以上仅为一种举例,在另一种可选的实施例中,输入数据可以是至少两帧历史帧姿态、至少两帧未来帧姿态。历史帧姿态是位于当前帧姿态之前的至少一帧姿态(包括前一帧姿态),未来帧姿态是位于当前帧姿态之后的至少一帧姿态(包括目标姿态)。则输入数据维度还可以更大。
帧数预测模型是一种神经网络模型,帧数预测模型的结构可以有多种实现方式。例如,帧数预测模型包括级联的至少两个线性激活模块;线性激活模块包括以下至少一种结构:至少一个线性层、至少一个激活层、至少一个归一化层。
则,步骤211包括:将前一帧姿态中处理对象的髋关节前一帧位置、上肢前一帧位置、下肢前一帧位置、髋关节前一帧速度、上肢前一帧速度、下肢前一帧速度,目标姿态中处理对象的髋关节目标位置、上肢目标位置、下肢目标位置、髋关节目标速度、上肢目标速度、下肢目标速度,输入级联的第一个线性激活模块;将级联的前一个线性激活模块的输出,作为后一个线性激活模块的输入,在最后一个线性激活模块输出中间帧帧数。
例如,帧数预测模型包括级联的第一线性激活模块、第二线性激活模块、第三线性激活模块。其中,第一线性激活模块包括级联的第一线性层和第一激活层,第二线性激活模块包括级联的第二线性层和第二激活层,第三线性激活包括级联的第三线性层和归一化层。
则,步骤211包括:将前一帧姿态中处理对象的髋关节前一帧位置、上肢前一帧位置、下肢前一帧位置、髋关节前一帧速度、上肢前一帧速度、下肢前一帧速度,目标姿态中处理对象的髋关节目标位置、上肢目标位置、下肢目标位置、髋关节目标速度、上肢目标速度、下肢目标速度,输入第一线性层,得到第一线性特征;调用第一激活层的激活函数,激活第一线性特征得到第一激活特征;将第一激活特征输入第二线性层,得到第二线性特征;调用第二激活层的激活函数,激活第二线性特征得到第二激活特征;将第二激活特征输入第三线性层,得到第三线型特征;调用归一化层对第三线性特征进行归一化,得到归一化结果;将归一化结果乘以100得到中间帧帧数。
例如,如图8所示,将60维的前一帧姿态和目标姿态输入第一线性层401,得到32维的第一线性特征,调用第一激活层402的激活函数对32维的第一线性特征进行激活,得到32维的第一激活特征;将32的第一激活特征输入第二线性层403,得到32维的第二线性特征,调用第二激活层404的激活函数对32维的第二线性特征进行激活,得到32维的第二激活特征;将32的第二激活特征输入第三线性层405,得到1维的第一结果,将1维的第一结果进行归一化,得到归一化结果,将归一化结果乘以100得到中间帧帧数。
即,第一线性层的输入为60维数据,输出为32维数据;第二线性层的输入为32维数据,输出为32维数据;第三线性层的输入为32维数据,输出为1维数据。
线性层(第一线性层、第二线性层、第三线性层)可以包括至少一个线性计算单元,该线性计算单元用于执行以下至少一种运算:加、减、乘、除、矩阵乘、卷积。例如,第一线性层包括第一层线性计算单元和第二层线性计算单元,第一层线性计算单元的线性计算单元数量为64个,第二层线性计算单元的线性计算单元数量为32个,第一层线性计算单元与第二层线性计算单元全连接。再如,第二线性层包括第三层线性计算单元和第四层线性计算单元,第三层线性计算单元的线性计算单元数量为32个,第四层线性计算单元的线性计算单元数量为32个,第三层线性计算单元与第四层线性计算单元全连接。再如,第三线性层包括第五层线性计算单元和第六层线性计算单元,第五层线性计算单元的线性计算单元数量为32个,第六层线性计算单元的线性计算单元数量为1个,第五层线性计算单元与第六层线性计算单元全连接。
示例性的,激活层(第一激活层、第二激活层)可以采用Sigmoid激活函数、ReLU激活函数、LeakyReLU激活函数、PReLU激活函数、ELU激活函数中的至少一种。例如,第一激活层和第二激活层可以采用ELU激活函数,ELU激活函数为:
归一化层用于将输入数据归一化至0到1的范围内。例如,采用Sigmoid函数对第一结果进行归一化。
在另一种可选的实施例中,还可以将需要预测的姿态进行分类,将处理对象原地做动作的姿态归为原地动作,将处理对象移动做动作的姿态归为位移动作。由于处理对象在原地做动作和位移做动作时,其姿态特征不同,因此,还可以将动作类型作为输入数据,输入帧数预测模型中,使帧数预测模型基于动作类型来预测中间帧帧数。
例如,将前一帧姿态和目标姿态输入动作类型预测模型,得到动作分类结果,动作分类结果包括位移动作和原地动作;将前一帧姿态、目标姿态和动作分类结果输入帧数预测模型,得到中间帧帧数。
动作类型预测模型是预先训练好的神经网络模型。动作类型预测模型可以根据输入的姿态来预测处理对象的动作类型,例如,可以将下肢关节移动较少的动作归为原地动作,将下肢关节移动较多的动作归为位移动作;或者,将移动距离较少的动作归为原地动作,将移动距离较多的动作归为位移动作;然后根据标注好的训练样本,来训练动作类型预测模型,使之能够区分输入的姿态的动作类型。
在得到前一帧姿态和目标姿态的动作类型后,可以将动作类型、前一帧姿态、目标姿态输入帧数预测模型中,使帧数预测模型根据动作类型、前一帧姿态、目标姿态来预测得到中间帧帧数。
或者,可以计算前一帧姿态和目标姿态的关节距离之和,得到差异和。当差异和小于第二阈值时,确定动作类型为原地动作,在差异和大于第二阈值时,确定动作类型为位移动作。
差异和的计算公式可以是:
其中,d为差异和;a为目标姿态,b为前一帧姿态;J为处理对象的关节点索引,j为处理对象的第j个关节点;为目标姿态中第j个关节点的位置信息;为前一帧姿态中第j个关节点的位置信息。代表欧几里得范数,二范数。
步骤220,根据中间帧帧数,生成用于从前一帧姿态过渡至目标姿态所需的当前帧姿态。
步骤230,在中间帧帧数满足执行条件的情况下,将下一帧姿态更新为当前帧姿态,重复执行上述步骤生成下一帧姿态。
综上所述,本实施例提供的方法,使用了帧数预测模型,基于前一帧姿态和目标姿态的姿态差异、速度差异,预测前一帧姿态和目标姿态之间的中间帧帧数,进而根据中间帧帧数、前一帧姿态、目标姿态来预测当前帧姿态。根据中间帧帧数生成当前帧姿态,可以避免由于中间帧帧数不准确引起的中间帧动作质量低的问题。并且,在生成每一帧中间帧之前,都会根据该中间帧之前的一帧姿态以及目标姿态之间的姿态差距,来计算中间帧帧数,并根据实时计算得到的中间帧帧数来生成每一帧中间帧,提高中间帧姿态的动作质量,避免动作急促、滑步、冗余、抖动等问题。
使用上述方案实现的帧数预测模型,预测范围在100帧以内时预测误差为6帧左右,CPU(Central Processing Unit,中央处理器)上运行速度为每帧纳秒级别,模型尺寸不到20KB。效果和复杂度都满足应用场景要求。与固定中间帧帧数来预测中间帧的方法相比,使用帧数预测模型预测中间帧帧数,使得生成的动作速度更均匀、滑步少、没有摆pose(姿势)、没有小碎步的动作。
示例性的,基于图7所示实施例,为了提高帧数预测模型的准确率,还会对输入数据进行规范化。将输入数据从原始三维空间中,移动到规范三维空间中,使前一帧姿态位于规范三维空间中的坐标原点上,并对应地将目标姿态也移动至规范三维空间中。从而规范模型的输入数据,将所有输入数据的初始姿态(前一帧姿态)位置都放置在坐标原点上,将初始姿态朝向同一到一个方向(目标方向)上,如此,帧数预测模型可以更好地提取姿态特征,便于帧数预测模型准确预测中间帧帧数。
处理对象在原始三维空间中移动,在生成中间帧,需要根据处理对象在原始三维空间中的已知姿态(目标姿态和前一帧姿态),来预测其中间帧的姿态。而已知姿态可能位于原始三维空间中的任意位置,例如,前一帧姿态可能位于(1,1,1)点,也可能位于(1,2,3)点。当前一帧姿态位于(1,1,1)点,目标姿态位于(2,2,2)点;以及,前一帧姿态位于(1,2,3)点,目标姿态位于(2,3,4)点,这两种输入数据可能对应的是同一种运动姿态(移动方向和距离相同,姿态也相同),但由于处理对象在三维空间中的位置差异,导致输入数据不同,帧数预测模型就需要理解这两种输入数据虽然不同,但对应的是同一种运动趋势,才能够准确对这两种输入数据都准确预测出中间帧帧数。显然,这大大提高了帧数预测模型的计算复杂度。帧数预测模型既需要学习姿态差异和速度差异,又需要考虑起始位置差异带来的影响,帧数预测模型很难准确预测出中间帧帧数。即,帧数预测模型需要先理解前一帧姿态当前所处位置为起始点,然后基于该起始点来对应理解目标姿态所处位置,进而预测中间帧帧数,这样帧数预测模型很难准确学习到与中间帧帧数相关的特征。
因此,本申请实施例提供了一种方法,将前一帧姿态统一移动到坐标原点上,并使其统一朝向目标方向;目标姿态也根据前一帧姿态的位置偏移和旋转对应调整;将输入数据统一到同一个起始位置上,便于帧数预测模型专注于姿态差异和速度差异,避免起始位置差异对预测结果的影响。
示例性的,输入帧数预测模型的前一帧姿态和目标姿态包括:在规范三维空间中的位置信息和速度信息,即,输入帧数预测模型的前一帧姿态和目标姿态是调整了坐标位置和朝向之后的位置信息和速度信息。计算机设备获取前一帧姿态和目标姿态在原始三维空间中的原始位置信息和原始速度信息;将前一帧姿态从原始三维空间移动至规范三维空间中的坐标原点;将位于坐标原点的前一帧姿态的朝向旋转至目标方向,得到规范后的前一帧姿态;根据前一帧姿态在原始三维空间中的原始位置信息,以及规范后的前一帧姿态在规范三维空间中的位置信息,确定位移向量和旋转向量;根据位移向量将目标姿态从原始三维空间移动至规范三维空间,根据旋转向量旋转规范三维空间中的目标姿态,得到规范后的目标姿态。
示例性的,将前一帧姿态移动至坐标原点可以是:将前一帧姿态的根节点移动到坐标原点上,则其他关节点会随着根节点一起移动,该根节点可以是髋关节。
例如,前一帧姿态的髋关节在原始三维空间中的位置是(1,1,1)、上肢关节在原始三维空间中的位置是(2,2,2);则将髋关节移动到规范三维空间的坐标原点(0,0,0)后,上肢关节对应移动到规范三维空间中的(1,1,1)点,该移动过程中的位移向量是(-1,-1,-1)。则目标姿态也可以按照该位移向量对应移动。例如,目标姿态的髋关节在原始三维空间中的位置是(3,3,3),则将目标姿态移动到规范三维空间后,髋关节的位置是(2,2,2)。
示例性的,调整前一帧姿态的朝向是指,以根节点所在垂直线为中心轴,水平旋转前一帧姿态,使前一帧姿态的正面朝向目标方向。前一帧姿态可以对应有正面朝向,正面朝向可以是垂直于处理对象的肩线(两个肩膀关节点的连线)且与水平面平行的方向;调整前一帧姿态的朝向就可以是:调整前一帧姿态使其正面朝向等于目标方向。
示例性的,旋转时,姿态的根节点的位置不变,其他关节点根据旋转角度进行旋转位移到达新的位置。旋转角度是前一帧姿态旋转前的正面朝向与目标方向的夹角。由于是以中心轴为中心的中心旋转,姿态中不同关节点的旋转向量不同,在根据旋转向量旋转目标姿态时,可以根据前一帧姿态中相同关节点的旋转向量,来对应旋转目标姿态中该关节点。例如,前一帧姿态中上肢节点的旋转向量是(1,1,1),下肢节点的旋转向量是(0,1,0);则目标姿态的上肢节点从(1,0,1)点旋转至(2,1,2)点,目标姿态的下肢节点从(0,0,0)点旋转至(0,1,0)点。
目标方向可以是预设的方向,例如,目标方向可以是规范三维空间中x轴的正方向。
示例性的,将规范后的前一帧姿态和目标姿态输入帧数预测模型,则步骤211可以包括:将规范后的前一帧姿态,与规范后的目标姿态,输入帧数预测模型,得到中间帧帧数。
综上所述,本实施例提供的方法,在将前一帧姿态、目标姿态输入帧数预测模型之前,还会对前一帧姿态和目标姿态执行规范化过程。将前一帧姿态移动至规范三维空间中的坐标原点,将前一帧姿态的朝向旋转至统一的目标朝向;并根据前一帧姿态的位移向量和旋转向量,对应地调整目标姿态的位置和朝向,进而得到规范后的前一帧姿态和目标姿态。将规范后的前一帧姿态和目标姿态输入帧数预测模型,可以使帧数预测模型更准确地提取姿态差异和速度差异,提高中间帧帧数预测的准确性。根据准确的中间帧帧数来生成中间帧,提高中间帧姿态的动作质量,避免动作急促、滑步、冗余、抖动等问题。
示例性的,给出一种训练帧数预测模型的示例性实施例。
图9示出了本申请一个示例性实施例提供的中间帧的生成方法的流程图。该方法可以由计算机设备来执行,例如,如图1所示的终端或服务器来执行。该方法包括以下步骤。
步骤310,将训练样本输入教师模型,得到教师预测结果;训练样本包括样本前一帧姿态和样本目标姿态;教师预测模型的线性激活模块数量大于帧数预测模型,教师预测模型是使用训练样本集预先训练得到中间帧帧数的预测模型。
示例性的,对于帧数预测模型,采用预先训练出的教师模型来指导训练帧数预测模型。先用训练样本集训练得到一个大规模模型(教师模型),该大规模模型的结构更为复杂,计算量较大,结果较为准确。而在实际应用中,采用小规模模型可以减少计算量,提高模型输出效率。因此,采用大规模模型来指导小规模模型的训练,可以使小规模模型加速收敛,且使小规模模型收敛至更优结果。
其中,帧数预测模型为小规模模型,教师模型为大规模模型。帧数预测模型的模型结构相较于教师模型更为简单,帧数预测模型的计算量比教师模型更少。例如,帧数预测模型的线性激活模块的数量少于教师模型。或者,帧数预测模型的线性激活模块中的线性计算单元的数量少于教师模型。
例如,帧数预测模型包括三个级联的线性激活模块,教师模型包括六个级联的线性激活模块。和/或,帧数预测模型中位于中间的线性激活模块输出的通道数为32(输出数据为32维),而教师模型中位于中间的线性激活模块输出的通道数为128(输出数据为128维)。可见教师模型的结构更为复杂,运算量更大,数据更多。
帧数预测模型和教师模型的功能相同,都是基于前一帧姿态和目标姿态来预测中间帧帧数。教师模型是采用同样的训练样本集,用真实标签(真实的中间帧帧数)来计算损失,进行训练得到的。
训练样本包括样本前一帧姿态和样本目标姿态,训练样本对应的真实标签为样本前一帧姿态和样本目标姿态之间中间帧姿态的数量。训练样本的获取方式将在后续实施例中进行说明。可选的,训练样本采用上述规范化过程,统一规范至规范三维空间中。
示例性的,在训练帧数预测模型时,将同一个训练样本同时输入教师模型和帧数预测模型,得到教师模型输出的教师预测结果,以及帧数预测模型输出的学生预测结果。使用教师预测结果以及真实标签,双重引导帧数预测模型的收敛。
教师预测结果是教师模型基于样本前一帧姿态、样本目标姿态输出的中间帧帧数。
步骤320,将训练样本输入帧数预测模型,得到学生预测结果。
示例性的,步骤310和步骤320的执行顺序可以是任意的。
学生预测结果是帧数预测模型基于样本前一帧姿态、样本目标姿态输出的中间帧帧数。
步骤330,根据学生预测结果与训练样本的真实标签的损失、学生预测结果与教师预测结果的损失,训练帧数预测模型。
示例性的,将学生预测结果与真是标签计算损失,学生预测结果与教师预测结果计算损失,用两个损失来训练帧数预测模型收敛。
示例性的,为了加快帧数预测模型的收敛速度,在训练前期优先参考教室预测结果对应的损失;为了提高帧数预测模型的预测准确度,在训练后期优先参考真实标签对应的损失。
计算机设备计算真实标签与学生预测结果的第一差值;以及,计算教室预测结果与学生预测结果的第二差值;将第一差值的一范数,乘以第一系数,得到第一损失值;以及,将第二差值的一范数,乘以第二系数,得到第二损失值,第二系数等于1减第一系数;计算第一损失值和第二损失值之和,得到第三损失值;根据第三损失值训练帧数预测模型;其中,第一系数为当前训练进程与训练进程最大值的比值。
即,训练帧数预测模型的损失函数为:
其中,S为训练样本集,s为训练样本集中的第s个训练样本;w为第一系数,为真实标签,为学生预测结果,为教师预测结果,代表一范数,为训练样本集当前训练的次数,为训练样本集训练的总次数;
其中,一个训练样本集训练帧数预测模型一次,等于1,一个训练样本集训练帧数预测模型n次,等于n。
综上所述,本实施例提供的方法,使用预先训练好的教师模型,来指导训练帧数预测模型。在训练前期,着重参考教师模型输出的教师预测结果对应的损失,来训练帧数预测模型,加速帧数预测模型的收敛;在训练后期,着重参考真实标签对应的损失,来训练帧数预测模型,提高帧数预测模型的准确度。如此,既可以降低简化模型结构,降低模型计算量,提高模型输出效率,又可以使帧数预测模型更准确地提取姿态差异和速度差异,提高中间帧帧数预测的准确性。根据准确的中间帧帧数来生成中间帧,提高中间帧姿态的动作质量,避免动作急促、滑步、冗余、抖动等问题。
示例性的,基于图9所示实施例,本申请还给出了一种获取训练样本集的方法。
考虑到当前一帧姿态或目标姿态为静态姿态时,帧数预测模型无法准确预测出中间帧帧数,因此,采用动态姿态来作为训练样本组成训练样本集。
当前一帧姿态为静态姿态(例如,至少一个关节点的速度为0)时,处理对象可能维持在静态很多帧。例如,从第0帧到第5帧处理对象都在原地不动,目标姿态是第10帧,则采用第0帧作为前一帧姿态,以及采用第5帧作为前一帧姿态,其对应的中间帧帧数不同(分别为9和4)。因此,采用静态姿态来作为训练样本,其所对应的中间帧帧数不准确,无法引导帧数预测模型准确预测出其对应的中间帧帧数,反而会误导帧数预测模型。
综上,本申请实施例在训练帧数预测模型时,所采用的训练样本均为动态姿态(例如,至少一个关节点的速度不为0),针对动态姿态,帧数预测模型可以准确预测得到中间帧帧数。
示例性的,获取训练样本集的方法可以是:在动作捕捉数据中截取候选片段,动作捕捉数据包括处理对象的连续的姿态变化数据,候选片段包括动作捕捉数据中连续的至少两帧姿态;计算候选片段中,相邻两帧姿态的关节距离之和,得到差异和;在候选片段中,不存在差异和小于第一阈值的情况下,将候选片段确定为动态片段;在动态片段中选取训练样本;重复上述步骤,选取至少两个训练样本,得到训练样本集;其中,在动态片段中,样本前一帧姿态位于样本目标姿态之前;训练样本的真实标签为样本中间帧帧数,样本中间帧帧数等于动态片段中样本前一帧姿态与样本目标姿态中间的姿态帧数。
示例性的,在候选片段中,存在差异和小于第一阈值的情况下,将候选片段确定为静态片段。
其中,动作捕捉数据可以是对处理对象进行动作捕捉,获取到的连贯的至少两帧姿态数据。例如,从处理对象的三维动画中,截取一段连续的动作,一段连续的动作中包括处理对象的至少两帧姿态。可选的,从处理对象的三维动画中,截取若干段连续的动作,每段连续的动作中包括处理对象的至少两帧姿态。该若干段连续动作可以组成动作捕捉数据。
示例性的,计算机设备从动作捕捉数据中,一段连续动作里截取一段候选片段。或者,计算机设备可以将一段连续动作切割为多段候选片段。然后分别判断每个候选片段中是否包含静态姿态,若包含,则该候选片段为静态片段,舍弃该候选片段。若该候选片段中不包含静态姿态,则该候选片段为动态片段,从动态片段中选取前一帧姿态和目标姿态作为训练样本。
示例性的,可以根据如下公式判断候选片段中是否包含静态姿态:
其中,为候选片段中差异和的最小值;t为候选片段中的帧索引,即第t帧姿态;J为处理对象的关节点索引,j为处理对象的第j个关节点;为第t帧姿态中第j个关节点的位置信息;为第t-1帧姿态中第j个关节点的位置信息。代表欧几里得范数,二范数。
当小于预设阈值(第一阈值)时,可以判断动作序列(候选片段)中包含了静态内容,因此这段截取出的数据不能被添加到训练样本集中。
例如,某个动态片段包括100帧姿态,则可以从该动态片段中任意选取一个在前的姿态作为样本前一帧姿态,选取任意一个在后的姿态作为样本目标姿态,该样本前一帧姿态和样本目标姿态组成一个训练样本,该训练样本对应的真实标签即为这两帧姿态之间的中间帧帧数。例如,选取第1帧姿态作为样本前一帧姿态,选取第20帧姿态作为样本目标姿态,则其对应的真实标签为18。
可选的,当帧数预测模块输出的数据范围为0到100时,在选取样本前一帧姿态和样本目标姿态时,样本前一帧姿态和样本目标姿态之间的中间帧帧数不能大于100。
综上所述,本实施例提供的方法,从处理对象的动态捕捉数据中选取动态片段来获取训练样本,避免采用静态姿态作为训练样本,可以提高训练得到的帧数预测模型的预测准确度,使帧数预测模型更准确地提取姿态差异和速度差异,提高中间帧帧数预测的准确性。根据准确的中间帧帧数来生成中间帧,提高中间帧姿态的动作质量,避免动作急促、滑步、冗余、抖动等问题。
示例性的,给出一种利用中间帧生成模型生成中间帧姿态的实施例。
图10示出了本申请一个示例性实施例提供的中间帧的生成方法的流程图。该方法可以由计算机设备来执行,例如,如图1所示的终端或服务器来执行。基于图2所示实施例,步骤230包括步骤231至步骤235。
步骤210,根据处理对象的前一帧姿态与目标姿态的姿态差异,以及前一帧姿态与目标姿态的速度差异,计算当前帧姿态对应的中间帧帧数;中间帧帧数是从前一帧姿态过渡至目标姿态所需生成的中间帧姿态的帧数,前一帧姿态为当前帧姿态之前一帧处理对象的姿态。
示例性的,步骤210可以参照上述任一实施例中的相关说明。
步骤220,根据中间帧帧数,生成用于从前一帧姿态过渡至目标姿态所需的当前帧姿态。
示例性的,给出一种使用神经网络模型生成当前帧姿态的方法。示例性的,该神经网络模型可以是中间帧生成模型,中间帧生成模型包括第一网络模型和第二网络模型。
计算机设备获取输入数据,输入数据包括前一帧姿态、目标姿态和中间帧帧数;调用第一网络模型基于输入数据输出姿态特征、髋关节当前帧姿态数据、上肢当前帧姿态数据;调用第二网络模型基于姿态特征、前一帧姿态、髋关节当前帧姿态数据输出下肢当前帧姿态数据;基于前一帧姿态、髋关节当前帧姿态数据、上肢当前帧姿态数据和下肢当前帧姿态数据得到当前帧姿态。
示例性的,第一网络模型用于基于前一帧姿态、目标姿态和中间帧帧数预测当前帧姿态的髋关节数据、上肢数据以及姿态特征;第二网络模型用于基于姿态特征、前一帧姿态、当前帧姿态的髋关节数据预测当前帧姿态的下肢数据。结合髋关节数据、上肢数据、下肢数据,就可以得到从前一帧姿态过渡的当前帧姿态。
其中,第一网络模型和第二网络模型的模型结构可以是任意的。
在一种可选的实施例中,如图11所示,第一网络模型包括LSTM(Long Short-TermMemory,长短期记忆网络)和解析解码器组成的采样网络601;第二网络模型是CVAE(Conditional Variational Auto-Encoder,条件变分自动编码器)解码器602。
示例性的,前一帧姿态包括髋关节前一帧速度、下肢前一帧速度、髋关节前一帧旋转、下肢前一帧旋转、上肢前一帧旋转、下肢前一帧位置、髋关节前一帧位置;目标姿态包括髋关节目标位置、下肢目标位置、上肢目标旋转。
其中,v表示速度、r表示旋转、p表示位置、h表示髋关节、L表示下肢关节、U表示上肢关节、i表示前一帧姿态、t表示目标姿态、i+1表示当前帧姿态。
如图11所示,将髋关节前一帧速度、下肢前一帧速度、上肢前一帧旋转与中间帧帧数拼接得到第一数据;示例性的,也可以将髋关节前一帧速度、下肢前一帧速度、上肢前一帧旋转拼接后输入状态编码器得到第一编码后,将第一编码与中间帧帧数拼接得到第一数据;
拼接上肢目标旋转与上肢前一帧旋转之差、下肢目标位置与下肢前一帧位置之差、髋关节目标位置与髋关节前一帧位置之差,得到第二数据;拼接第二数据与髋关节目标位置、下肢目标位置、上肢目标旋转得到第三数据;拼接第一数据与第三数据得到输入数据;
调用LSTM网络和解析解码器基于输入数据,输出姿态特征z、髋关节当前帧速度、上肢当前帧角速度、髋关节当前帧角速度;
调用CVAE的解码器基于姿态特征z、髋关节当前帧速度、髋关节前一帧速度、下肢前一帧速度、下肢前一帧旋转、髋关节前一帧旋转,输出下肢当前帧速度、下肢当前帧角速度;基于前一帧姿态、髋关节当前帧速度、上肢当前帧角速度、髋关节当前帧角速度、下肢当前帧速度、下肢当前帧角速度,生成当前帧姿态。
示例性的,髋关节前一帧位置加上髋关节当前帧速度即可得到髋关节当前帧位置,上肢前一帧旋转加上上肢当前帧角速度即可得到上肢当前帧旋转,髋关节前一帧旋转加上髋关节当前帧角速度即可得到髋关节当前帧旋转,下肢前一帧位置加下肢当前帧速度即可得到下肢当前帧位置,下肢前一帧旋转加上下肢当前帧角速度即可得到下肢当前帧旋转。
根据髋关节当前帧位置、下肢当前帧位置、髋关节当前帧旋转、上肢当前帧旋转、下肢当前帧旋转,即可得到当前帧姿态的上肢当前帧位置。
如此,便可以得到完整的当前帧姿态:髋关节当前帧位置、下肢当前帧位置、上肢当前帧位置、髋关节当前帧旋转、上肢当前帧旋转、下肢当前帧旋转。
步骤231,判断中间帧帧数是否等于1,若等于1则执行步骤232;否则执行步骤233。
在生成当前帧姿态后,判断当前帧姿态对应的中间帧帧数是否为1,若为1,则表示当前帧姿态是目标姿态之前的最后一帧姿态,不需要再生成中间帧姿态,因此,停止生成中间帧姿态。
当中间帧帧数不为1,则表示在目标姿态之前还需要生成其他中间帧姿态,则继续执行步骤233判断采用何种方式生成下一个中间帧姿态。
步骤232,停止生成中间帧姿态。
在中间帧帧数等于一的情况下,停止生成中间帧。
示例性的,当给定起始姿态、目标姿态,采用本申请实施例提供的方法生成其中的中间帧姿态时,若某个中间帧姿态对应的中间帧帧数等于1,则表示中间帧姿态生成结束,则将生成的若干个中间帧姿态,与起始姿态、目标姿态顺序连接生成动画。
步骤233,判断中间帧帧数是否小于阈值,若小于阈值则执行步骤235;否则执行步骤234。
示例性的,阈值为预设值,例如,阈值为5。当中间帧帧数大于5时,继续采用步骤210和步骤220(或者步骤211、步骤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,则第五帧中间帧姿态即为最后一帧中间帧姿态,此时,停止生成中间帧姿态。
示例性的,如图12所示,本申请实施例提供的方法,采用了帧数预测模型501和中间帧生成模型502来生成中间帧。先采用帧数预测模型501,根据前一帧姿态、目标姿态的姿态差异和速度差异,预测得到中间帧帧数;然后调用中间帧生成模型502,根据中间帧帧数、目标姿态、前一帧姿态来生成当前帧姿态。
综上所述,本实施例提供的方法,在计算当前帧姿态对应的中间帧帧数时,还会参考前一帧姿态对应的中间帧帧数,使相邻两帧姿态对应的中间帧帧数呈递减趋势,避免中间帧姿态的动作抖动,提高中间帧姿态的动作质量。
本申请实施例提供的方法,当中间帧帧数大于阈值时,实时计算下一帧中间帧姿态对应的中间帧帧数,提高中间帧帧数的准确度。当中间帧帧数小于阈值时,不再实时计算下一帧中间帧姿态的中间帧帧数,而是将上一帧中间帧姿态的中间帧帧数减一作为下一帧中间帧姿态的中间帧帧数,从而避免在最后几帧中间帧姿态生成时,中间帧帧数始终不为1引起的中间帧动作抖动的问题。
本申请实施例提供的方法,采用神经网络来生成中间帧姿态,使神经网络充分学习处理对象的姿态过渡特征,进而可以根据前一帧姿态、目标姿态、中间帧帧数来自动生成当前帧姿态,提高中间帧姿态生成的准确度,提高姿态过渡的平滑性,保证中间帧姿态的动作质量。
本申请实施例提供的方法,对于动作幅度较大的腿部姿态,采用CAVE网络来进行生成,CAVE网络可以将高维的输入编码到特征空间。由于在损失函数中对特征在特征空间的分布做了限制,所以特征在特征空间的分布非常紧凑。在这样紧凑的分布中做特征采样,得到的特征再经过解码器解码,解码器的输出就会和输入数据的相似度更高。在本申请实施例提供的方法中,输入是动态捕捉的腿部动作,经过CVAE网络处理后,最终模型输出的腿部动作也会与动态捕捉数据更接近,生成更高质量的中间动作,并减少中间动作的滑步、抖动等问题。
本申请实施例提供的方法,提供了一种中间帧生成模型,可以根据给定的起始帧、目标帧、中间帧帧数实时生成高质量的中间帧。该模型从表示自然运动流形开始,在马尔科夫假设下建模运动过渡的多模态。为了结合目标帧和中间帧帧数,采用了一种采样网络,在起始帧、目标帧和中间帧帧数的约束下,从学习到的运动流形中进行采样。该运动流形采用了条件变分子动编码器(CVAE)体系结构,使之学习帧间转换的条件分布,并通过利用潜在空间和解码阶段,明确地将过渡模糊性建模为帧之间的多模态映射,因此,该方法提取到的运动流形可以作为一个高质量的表示,为在线运动合成提供依靠。
示例性的,还给出另一种利用中间帧生成模型生成中间帧姿态的实施例。
图13示出了本申请一个示例性实施例提供的中间帧的生成方法的流程图。该方法可以由计算机设备来执行,例如,如图1所示的终端或服务器来执行。基于图2所示实施例,步骤230包括步骤231、步骤232和步骤236。
步骤210,根据处理对象的前一帧姿态与目标姿态的姿态差异,以及前一帧姿态与目标姿态的速度差异,计算当前帧姿态对应的中间帧帧数;中间帧帧数是从前一帧姿态过渡至目标姿态所需生成的中间帧姿态的帧数,前一帧姿态为当前帧姿态之前一帧处理对象的姿态。
示例性的,步骤210可以参照上述任一实施例中的相关说明。
步骤220,根据中间帧帧数,生成用于从前一帧姿态过渡至目标姿态所需的当前帧姿态。
示例性的,步骤220可以参照上述任一实施例中对步骤220的说明。
步骤231,判断中间帧帧数是否等于1,若等于1则执行步骤232;否则执行步骤236。
在生成当前帧姿态后,判断当前帧姿态对应的中间帧帧数是否为1,若为1,则表示当前帧姿态是目标姿态之前的最后一帧姿态,不需要再生成中间帧姿态,因此,停止生成中间帧姿态。
当中间帧帧数不为1,则表示在目标姿态之前还需要生成其他中间帧姿态,则继续执行步骤236将当前得到的中间帧帧数减1,继续根据新的中间帧帧数生成下一帧中间帧。
步骤232,停止生成中间帧姿态。
在中间帧帧数等于一的情况下,停止生成中间帧姿态。
示例性的,当给定起始姿态、目标姿态,采用本申请实施例提供的方法生成其中的中间帧姿态时,若某个中间帧姿态对应的中间帧帧数等于1,则表示中间帧姿态生成结束,则将生成的若干个中间帧姿态,与起始姿态、目标姿态顺序连接生成动画。
步骤236,将下一帧姿态更新为当前帧姿态,将中间帧帧数更新为中间帧帧数减一;重复执行上述步骤220、步骤231。
示例性的,计算机设备可以将下一帧姿态更新为当前帧姿态,将中间帧帧数更新为中间帧帧数减一;重复执行步骤220。直至中间帧帧数变为1则不再重复执行。
示例性的,将下面生成的每一帧中间帧姿态所对应的中间帧帧数依次减1。例如,第一帧中间帧姿态的中间帧帧数为5,则第二帧中间帧姿态对应的中间帧帧数为5-1=4,第三帧中间帧姿态对应的中间帧帧数为4-1=3,第四帧中间帧姿态对应的中间帧帧数为3-1=2,第五帧中间帧姿态对应的中间帧帧数为2-1=1,由于到第五帧中间帧姿态其对应的中间帧帧数为1,则第五帧中间帧姿态即为最后一帧中间帧姿态,此时,停止生成中间帧姿态。
示例性的,将下一帧姿态更新为当前帧姿态后,前一帧姿态即为步骤220中生成的当前帧姿态,目标姿态依旧为步骤210和步骤220中的目标姿态。即,在生成下一帧姿态时,是根据步骤220中生成的当前帧姿态(作为前一帧姿态)、目标姿态、步骤210中计算得到的中间帧帧数减1,来输入中间帧生成模型,生成得到下一帧姿态。
综上所述,本实施例提供的方法,在根据前一帧姿态、目标姿态、中间帧帧数生成中间帧姿态时,可以只调用帧数预测模型计算一次中间帧帧数,生成后续的中间帧姿态时,可以直接将前一个中间帧姿态对应的中间帧帧数减1,作为后一个中间帧姿态对应的中间帧帧数。该方法可以降低中间帧生成过程的计算量,提高中间帧姿态的生成效率。
示例性的,针对图11所示的中间帧生成模型,本申请实施例还提供了一种模型训练方法。如图14所示。
在模型训练阶段,首先使用前一帧姿态和当前帧姿态作为输入,训练CVAE网络(包括CVAE编码器603和CVAE解码器602),使CVAE网络预输出当前帧姿态。
例如,将髋关节前一帧速度、下肢前一帧速度、上肢前一帧旋转、髋关节前一帧旋转、髋关节当前帧速度、下肢当前帧速度、上肢当前帧旋转、髋关节当前帧旋转拼接得到第一输入数据,将第一输入数据输入CVAE编码器得到处理对象姿态的正态分布的期望μ和方差σ,基于处理对象姿态的正态分布采样得到姿态特征z。将姿态特征z、髋关节前一帧速度、下肢前一帧速度、上肢前一帧旋转、髋关节前一帧旋转、髋关节当前帧速度拼接得到第二输入数据,将第二输入数据输入CVAE解码器得到下肢当前帧速度、下肢当前帧角速度。
使用CVAE解码器预测得到的下肢当前帧速度、下肢当前帧角速度与样本当前帧姿态对应的真实的下肢当前帧速度、下肢当前帧角速度计算损失,并根据损失训练CVAE编码器和CVAE解码器。
示例性的,CVAE解码器包括Gate(栅栏)网络和Multiple Experts(多重专家)网络。
在训练好CVAE网络后,使用CVAE编码器输出的姿态特征z作为真实标签,训练采样网络601输出的姿态特征z。
将髋关节前一帧速度、下肢前一帧速度、上肢前一帧旋转拼接后输入状态编码器得到第一编码后,将第一编码与中间帧帧数拼接得到第一数据;
拼接上肢目标旋转与上肢前一帧旋转之差、下肢目标位置与下肢前一帧位置之差、髋关节目标位置与髋关节前一帧位置之差,得到偏移数据,将偏移数据输入偏移编码器输出第二数据;将髋关节目标位置、下肢目标位置、上肢目标旋转拼接输入目标编码器得到目标数据,拼接第二数据和目标数据得到第三数据;示例性的,也可以拼接第二数据、目标数据和噪声数据得到第三数据。
拼接第一数据与第三数据得到输入数据;
调用LSTM网络和解析解码器基于输入数据,输出姿态特征z、髋关节当前帧速度、上肢当前帧角速度、髋关节当前帧角速度;
将CVAE编码器输出的姿态特征z作为真实标签,计算与解析解码器预测的姿态特征z的损失;计算解析解码器预测的髋关节当前帧速度、上肢当前帧角速度、髋关节当前帧角速度分别与样本当前帧姿态的真实的髋关节当前帧速度、上肢当前帧角速度、髋关节当前帧角速度的损失;基于上述损失训练状态编码器、目标编码器、偏移编码器、LSTM网络、解析解码器。
如此,便可以训练得到一个用于生成中间帧姿态的神经网络,该神经网络包括:采样网络和CVAE解码器,其中,采样网络包括状态编码器、目标编码器、偏移编码器、LSTM网络和解析解码器。
综上所述,本实施例提供的方法,提供了一种训练神经网络使之生成中间帧姿态的方法。先训练CVAE网络,使之准确学习处理对象的姿态分布特征,并可以根据姿态分布特征准确还原当前帧姿态。然后CVAE网络提取的姿态分布特征训练采样网络输出姿态分布特征,同时输出当前帧姿态的部分数据。之后,在应用阶段就可以直接使用采样网络和CVAE解码器来生成中间帧姿态,提高中间帧姿态生成的准确度,提高姿态过渡的平滑性,保证中间帧姿态的动作质量。
本申请实施例提供的方法可以被用于例如Maya、MotionBuilder(运动生成器)等角色动画相关的内容生产工具(Digital Content Creation,DCC)中,也可以被用于例如Unreal(UNREAL ENGINE,虚幻引擎)、Unity等游戏引擎中。
在DCC中,本申请实施例设计的中间帧生成方法可以帮助动画师快速生成角色动画资源,或者修改现有角色动画资源中的问题。动画师需要提供若(≥1)干历史帧和若干(≥1)未来帧(目标姿态),这些历史帧和未来帧可以从已有动画资源中提取,也可以由动画师直接创作。该方法会根据这些历史帧和未来帧动态确定需要生成的帧数,并使用基线方法完成中间帧动画的生成。
在游戏引擎中,本申请实施例提供的方法可以被用来做动画衔接。比如,游戏中经常需要从位置动画(Localmotion)切换到一段交互动画,而这段交互动画的起始位置通常是预设好的。使用当前Localmotion动画帧以及该交互动画的首帧(或首几帧)作为该方法的输入,就可以自动生成中间的过渡帧,且生成的帧数会随着需要衔接的两个姿态的距离远近、朝向差异等因素,由算法自适应确定。
在一种可选的实施例中,还可以采用本申请实施例提供的中间帧帧数的确定方法,从处理对象的高帧率动画中抽帧,获得压缩后的压缩动画。
采用该方法抽帧得到的压缩动画,既可以保证处理对象在视觉上的动作姿态连贯,又可以减少动画的数据量,便于数据传输、数据存储。
例如,在终端的网络卡顿的情况下,服务器可以采用本实施例提供的方法,从已经生成的高帧率动画中抽帧获得压缩动画,将压缩动画传输给终端进行播放。
示例性的,该方法包括以下步骤,该方法由计算机设备执行。
步骤一:将高帧率动画中的第一帧姿态确定为前一帧姿态,将高帧率动画的最后一帧姿态确定为目标姿态;高帧率动画的帧率高于帧率阈值。
示例性的,高帧率动画中包括处理对象的至少一帧姿态,每帧姿态包括处理对象的至少一个关节点的位置信息和速度信息。帧率阈值可以任意设置,例如,帧率阈值可以是360帧/秒。
示例性的,当原始的高帧率动画的总帧数高于帧数阈值时,可以将原始的高帧率动画分段,得到至少一段高帧率动画,然后对每一段高帧率动画执行本实施例提供的方法,压缩这一段高帧率动画的帧数,最后再将至少一段高帧率动画的压缩动画按顺序拼接起来,即可得到原始的高帧率动画的压缩动画。
例如,帧数阈值可以是100帧,当原始的高帧率动画总帧数为1000帧时,可以将原始的高帧率动画分割为100帧一段,得到10段高帧率动画。对这10段高帧率动画分别执行本实施例提供的方法,得到10段压缩动画,将10段压缩动画顺序拼接,即可得到原始的高帧率动画的压缩动画。
步骤二:将前一帧姿态与目标姿态输入帧数预测模型,得到中间帧帧数。
基于上述任一实施例所提供的中间帧帧数的预测方法,根据前一帧姿态和目标姿态,来预测得到中间帧帧数。
步骤三:获取前一帧姿态在高帧率动画中对应的第一时间点,以及,获取目标姿态在高帧率动画中对应的第二时间点。
例如,高帧率动画总时长为10s,在第一次执行时,前一帧姿态是高帧率动画的第一帧姿态,则第一时间点为0s,目标姿态是高帧率动画的最后一帧姿态,则第二时间点为10s。
例如,高帧率动画总时长为10s,在第n次执行时,前一帧姿态是第n-1次抽帧得到的关键帧,例如,该关节帧在高帧率动画中的第3s,则第一时间点为3s,目标姿态是高帧率动画的最后一帧姿态,则第二时间点为10s。
步骤四:根据中间帧帧数等分第一时间点至第二时间点,确定第一帧中间帧所在的第三时间点。
计算方法可以是:第二时间点减去第一时间点得到第一时长;中间帧帧数加1得到第一数值;第一时长除以第一数值得到第二数值;第一时间点加上第二数值得到第三时间点。
例如,第一时间点是0s,第二时间点是10s,中间帧帧数是4,则4帧中间帧将第一时间点到第二时间点5等分。即,前一帧姿态在0s、第一帧中间帧在2s、第二帧中间帧在4s、第三帧中间帧在6s、第四帧中间帧在8s、目标姿态在10s。则第一帧中间帧所在的时间点是2s,第三时间点是2s。
步骤五:将高帧率动画中与第三时间点最近的姿态帧确定为关键帧。
例如,第三时间点是10s,则如果10s刚好对应有一帧姿态帧,则将这一帧姿态帧确定为关键帧。如果10s没有刚好对应的姿态帧,而高帧率动画中在9.99s有一帧姿态帧,在10.03s有一帧姿态帧,则将9.99s的姿态帧确定为关键帧。
步骤六:将关键帧确定为前一帧姿态,将高帧率动画的最后一帧姿态确定为目标姿态。
重新将刚刚确定出来的关键帧作为前一帧姿态,将最后一帧姿态确定为目标姿态,继续计算该关键帧和最后一帧姿态之间的中间帧帧数,继续根据中间帧帧数从关键帧和最后一帧姿态之间抽帧。如此重复执行上述的抽帧步骤。
步骤七:重复执行步骤二至步骤六,获取高帧率动画中的至少一帧关键帧。
示例性的,在中间帧帧数小于阈值时,停止重复,例如阈值为1、2、5等任意数值;或者,在关键帧与最后一帧姿态之间的中间帧帧数小于阈值时,停止重复;或者,在无法再确定出关键帧时,停止重复。
步骤八:根据至少一帧关键帧、第一帧姿态、最后一帧姿态,生成高帧率动画的压缩动画。
采用上述方法可以从高帧率动画中抽取得到至少一帧关键帧,将抽取到的关键帧以及第一帧姿态、最后一帧姿态,合成即可得到压缩动画。
在另一种可选的实施例中,步骤四至步骤八还可以替换为:根据中间帧帧数等分第一时间点至第二时间点,确定等分时间点,该等分时间点的数量等于中间帧帧数。将高帧率动画中与每个等分时间点最近的姿态帧确定为关键帧,关键帧的数量等于中间帧帧数。根据关键帧、第一帧姿态、最后一帧姿态,生成高帧率动画的压缩动画。
综上所述,本实施例提供的方法,根据帧数预测模型输出的中间帧帧数,对高帧率动画进行抽帧,从而降低高帧率动画的总帧数。同时可以保证抽帧后的到的压缩动画中,处理对象的姿态动作连贯。采用该方法,在传输高帧率动画时,可以降低数据量,提高传输效率,降低对传输速率的需求。在存储高帧率动画时,可以减少存储空间。
在另一种可选的实施例中,还提供了一种根据处理对象所处场景生成中间帧姿态的方法。该方法由计算机设备执行,该方法包括以下步骤。
步骤一:将前一帧姿态、目标姿态以及场景标签输入帧数预测模型,得到中间帧帧数,场景标签包括:白天、黑夜、远景对象、近景对象中的至少一个。
示例性的,前一帧姿态或目标姿态标注有场景标签,场景标签用于指示处理对象的姿态的生成场景。例如,该姿态是在晚上生成的,或者,是在白天生成的。再如,使用该姿态生成画面时,处理对象位于画面的前景部分,或者,处理对象位于画面的背景部分。
示例性的,在白天生成处理对象的姿态时,场景亮度较高,用户观察视野较佳,在生成处理对象的过渡姿态时,需要生成较多的中间帧,以使处理对象的过渡动作更加平滑,使用户的视觉效果更加流畅。在晚上(黑夜)生成处理对象的姿态时,场景亮度较暗,用户观察视野较为模糊,在生成处理对象的过渡姿态时,可以生成少量的中间帧,使用较少的中间帧就可以使用户观察到的过渡动作比较流畅。
示例性的,本申请实施例中的姿态(前一帧姿态、当前帧姿态、目标姿态、中间帧姿态等)指的是处理对象在三维空间中的三维姿态,在生成若干帧中间帧姿态后,可以确定处理对象在三维空间内的连贯动作帧。采用本申请实施例中的方法,可以生成三维空间中任意个处理对象的连贯动作帧。基于这些处理对象生成二维画面(二维画面的视频)时,有的处理对象可能位于二维画面的前景部分,在二维画面上占据较大画面,有的处理对象可能位于二维画面的背景部分。对于前景部分的处理对象,用户会更关注,需要显示更多的细节。对于背景部分的处理对象,用户的关注度不会很多,可以粗略显示。因此,可以针对前景部分的处理对象生成较多中间帧,对于背景部分的处理对象生成较少的中间帧。
远景对象或近景对象的场景标签,可以通过以下方法确定:使用生成二维画面时所使用的摄像机,沿二维画面的拍摄方向拍摄位于前一帧姿态的处理对象,获得前一阵姿态对应的第一二维画面;使用生成二维画面时所使用的摄像机,沿二维画面的拍摄方向拍摄位于目标姿态的处理对象,获得目标姿态对应的第二二维画面;计算第一二维画面中处理对象所占据的像素点数量除以像素点总数量,得到第一比值;计算第二二维画面中处理对象所占据的像素点数量除以像素点总数量,得到第二比值;将第一比值与第二比值相加得到第三比值,在第三比值小于第四阈值的情况下,将场景标签确定为远景对象;在第三比值大于或等于第四阈值的情况下,将场景标签确定为近景对象。
示例性的,在训练帧数预测模型时,所采用的训练样本中也包括了场景标签,即,帧数预测模型可以根据前一帧姿态、目标姿态、场景标签来确定所需生成的中间帧帧数。
步骤二:将中间帧帧数、前一帧姿态以及目标姿态,输入场景标签对应的中间帧生成模型,生成当前帧姿态。
示例性的,可以使用不同场景标签的训练样本,训练得到不同的中间帧生成模型。例如,使用白天的训练样本,训练得到用于生成白天场景下的中间帧的中间帧生成模型;使用夜晚的训练样本,训练得到用于生成夜晚场景下的中间帧的中间帧生成模型。
因此,在预测不同场景下的中间帧时,调用不同场景对应的中间帧生成模型,来生成更适应当前场景的中间帧姿态。
综上所述,本实施例提供的方法,通过识别生成二维画面时处理对象所处的场景,来预测所需要生成的中间帧帧数,针对需要细节显示的场景,多生成一些中间帧,对于可以模糊显示的场景,少生成一些中间帧,以此来适应性地确定中间帧帧数。并且,针对不同场景,训练得到不同的中间帧生成模型,在不同场景下生成中间帧时,采用场景对应的中间帧生成模型来执行,使生成的中间帧姿态适应场景要求,提高中间帧生成效果,并且可以在部分场景下减少中间帧生辰给的数据量。
在另一种可选的实施例中,还提供了一种根据用户所描述的动作来生成中间帧姿态的方法。该方法由计算机设备执行,该方法包括以下步骤。
步骤一:获取目标姿态对应的动作描述,动作描述是用于指示过渡动作的文本信息。
示例性的,计算机设备可以接收用户输入动作描述的操作,获取目标姿态对应的动作描述。
或者,在直播场景中,本申请实施例提供的方法可以用于根据用户弹幕控制直播画面中的处理对象移动。计算机设备获取直播弹幕中第一用户帐号发送的动作描述。例如,每一个用户帐号发送的一个直播弹幕可以控制处理对象向前移动第一距离,则前一帧姿态是处理对象当前的姿态,目标姿态位于向前移动第一距离后的位置上,目标姿态是从处理对象的姿态数据库中随机得到的一个姿态。则计算机设备可以根据前一帧姿态、目标姿态、动作描述来生成中间帧姿态。
步骤二:调用语义识别模型对动作描述进行语义识别,得到语义特征。
语义识别模型可以采用隐马尔可夫模型(Hidden Markov Model,HMM),也可以采用其他用于进行语义识别的神经网络模型。示例性的,可以采用训练好的语义识别模型来识别动作描述。或者,该语义识别模型可以与帧数预测模型/中间帧生成模型联合训练得到。
步骤三:将前一帧姿态、目标姿态以及语义特征输入帧数预测模型,得到中间帧帧数。
在一种可选的实施例中,语义识别模型可以与帧数预测模型级联,将动作描述输入语义识别模型,得到语义特征,然后将语义特征、前一帧姿态、目标姿态一起输入帧数预测模型,得到中间帧帧数。
示例性的,在模型训练过程中,可以人工标注训练样本对应的动作描述。也可以通过视频评论、视频弹幕等途径来获取训练样本对应的动作描述。
帧数预测模型可以根据语义识别模型输出的语义特征,来确定需要生成的动作,并根据动作特点来确定出需要生成中间帧帧数。
步骤四:将中间帧帧数、语义特征、前一帧姿态以及目标姿态,输入中间帧生成模型,生成当前帧姿态,当前帧姿态为过渡动作对应的一帧姿态。
中间帧生成模型可以根据动作描述对应的语义特征,来控制处理对象按照动作描述所对应的动作,从前一帧姿态过渡到目标姿态,得到过渡过程中的中间帧姿态。
综上所述,本实施例提供的方法,动作描述来指示需要执行的动作,使用语义识别模型来解析动作描述所表达的语义特征,并根据语义特征确定中间帧帧数,以及,根据语义特征来生成中间帧姿态。使计算机设备可以根据用户指示的动作,来控制处理对象的运动过程,使生成的中间帧姿态更贴近用户需求。
在另一种可选的实施例中,还提供了一种控制处理对象随伴奏舞蹈的方法。该方法由计算机设备执行,该方法包括以下步骤。
步骤一:获取伴奏音频。
伴奏音频可以是任意文件格式的音频文件。
示例性的,伴奏音频的时长可以是任意的。由于处理对象从前一帧姿态过渡到目标姿态的时间可能很短,而对短时间的音频进行特征提取可能无法准确获取到该音频的音律特点,因此,可以采用较长的一段伴奏音频,来生成中间帧姿态。
伴奏音频用于向帧数预测模型和中间帧生成模型指示音频特征,使帧数预测模型根据音频的音律来预测处理对象的动作,并确定所需生成的中间帧帧数。使中间帧生成模型根据音频的音律来生成处理对象的中间帧姿态,以使处理对象随着伴奏音频的音律特点舞动。
步骤二:调用编码器对所述伴奏音频进行特征提取,得到音频特征。
示例性的,对伴奏音频的特征提取,可以通过神经网络模型(编码器)来执行,调用编码器来对伴奏音频进行特征提取,获取得到伴奏音频的音频特征。
或者,该步骤二还可以替换为对伴奏音频进行傅里叶变换,得到该伴奏音频的频域数据。或者,对伴奏音频进行短时傅里叶变换,得到该伴奏音频的至少一帧频域数据。例如,以60ms为一帧对伴奏音频进行短时傅里叶变换,每60ms就可以得到一帧频域数据,将得到的频域数据确定为音频特征。
步骤三:将所述前一帧姿态、所述目标姿态以及所述音频特征输入所述帧数预测模型,得到所述中间帧帧数。
帧数预测模型可以根据音频特征输出中间帧帧数。例如,当伴奏音频较为舒缓时,处理对象的动作也较为舒缓,较少的中间帧就可以实现动作的平滑过渡。当伴奏音频较为激烈时,处理对象的动作变化也较大,则需要生成更多的中间帧来连贯地呈现动作变化。
步骤四:将所述中间帧帧数、所述音频特征、所述前一帧姿态以及所述目标姿态,输入所述中间帧生成模型,生成所述当前帧姿态。
示例性的,中间帧生成模型可以根据音频特征来生成处理对象随伴奏音频舞动的中间帧姿态,根据音频特征来确定从前一帧姿态过渡至目标姿态所需生成的过渡动作,进而确定出中间帧姿态。
示例性的,本实施例中用于训练帧数预测模型以及中间帧生成模型的训练样本,可以通过动态捕捉的方式获取。例如,在舞蹈演员的身上安装动作捕捉设备,并使舞蹈演员随着伴奏音频舞动,捕捉舞动过程中动作捕捉设备捕捉到的姿态数据,并将这些姿态数据与该伴奏音频相关联,得到训练样本。
示例性的,本实施例中用于训练帧数预测模型以及中间帧生成模型的训练样本,可以从舞蹈视频中获取。例如,使用图像识别模型来识别舞蹈视频中,舞蹈演员各个关节点的位置变化,根据其位置映射得到三维位置,进而得到处理对象的至少一个姿态;对舞蹈视频进行音频提取得到伴奏音频,将该舞蹈视频对应的姿态以及伴奏音频相关联得到训练样本。
综上所述,本实施例提供的方法,通过输入伴奏音频,使计算机设备根据伴奏音频控制处理对象的姿态过渡,使处理对象随着伴奏音频的音律特点进行舞动,提高中间帧姿态生成效果。
以下为本申请的装置实施例,对于装置实施例中未详细描述的细节,可以结合参考上述方法实施例中相应的记载,本文不再赘述。
图15示出了本申请的一个示例性实施例提供的中间帧的生成装置的结构示意图。该装置可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或一部分,该装置包括:
帧数模块701,用于根据处理对象的前一帧姿态与目标姿态的姿态差异,以及所述前一帧姿态与所述目标姿态的速度差异,计算当前帧姿态对应的中间帧帧数;所述中间帧帧数是从所述前一帧姿态过渡至所述目标姿态所需生成的中间帧姿态的帧数,所述前一帧姿态为所述当前帧姿态之前一帧所述处理对象的姿态;
生成模块702,用于根据所述中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态;
判断模块703,用于在所述中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
在一个可选的实施例中,所述帧数模块701,用于将所述前一帧姿态与所述目标姿态输入帧数预测模型,得到所述中间帧帧数;
其中,所述前一帧姿态和所述目标姿态包括所述处理对象的关节点的位置信息和速度信息。
在一个可选的实施例中,所述帧数预测模型包括级联的至少两个线性激活模块;所述线性激活模块包括以下至少一种结构:至少一个线性层、至少一个激活层、至少一个归一化层;
所述帧数模块701,用于将所述前一帧姿态中所述处理对象的髋关节前一帧位置、上肢前一帧位置、下肢前一帧位置、髋关节前一帧速度、上肢前一帧速度、下肢前一帧速度,所述目标姿态中所述处理对象的髋关节目标位置、上肢目标位置、下肢目标位置、髋关节目标速度、上肢目标速度、下肢目标速度,输入级联的第一个所述线性激活模块;
所述帧数模块701,用于将级联的前一个所述线性激活模块的输出,作为后一个所述线性激活模块的输入,在最后一个所述线性激活模块输出所述中间帧帧数。
在一个可选的实施例中,所述前一帧姿态和所述目标姿态包括在规范三维空间中的位置信息和速度信息;
所述帧数模块701,用于获取所述前一帧姿态和所述目标姿态在原始三维空间中的原始位置信息和原始速度信息;
所述帧数模块701,用于将所述前一帧姿态从所述原始三维空间移动至所述规范三维空间中的坐标原点;
所述帧数模块701,用于将位于所述坐标原点的所述前一帧姿态的朝向旋转至目标方向,得到规范后的所述前一帧姿态;
所述帧数模块701,用于根据所述前一帧姿态在所述原始三维空间中的原始位置信息,以及规范后的所述前一帧姿态在所述规范三维空间中的位置信息,确定位移向量和旋转向量;
所述帧数模块701,用于根据所述位移向量将所述目标姿态从所述原始三维空间移动至所述规范三维空间,根据所述旋转向量旋转所述规范三维空间中的所述目标姿态,得到规范后的所述目标姿态;
所述帧数模块701,用于将规范后的所述前一帧姿态,与规范后的所述目标姿态,输入所述帧数预测模型,得到所述中间帧帧数。
在一个可选的实施例中,所述装置还包括:
训练模块704,用于将训练样本输入教师模型,得到教师预测结果;所述训练样本包括样本前一帧姿态和样本目标姿态;所述教师预测模型的线性激活模块数量大于所述帧数预测模型,所述教师预测模型是使用训练样本集预先训练得到中间帧帧数的预测模型;
所述训练模块704,用于将所述训练样本输入所述帧数预测模型,得到学生预测结果;
所述训练模块704,用于根据所述学生预测结果与所述训练样本的真实标签的损失、所述学生预测结果与所述教师预测结果的损失,训练所述帧数预测模型。
在一个可选的实施例中,所述训练模块704,用于计算所述真实标签与所述学生预测结果的第一差值;以及,计算所述教室预测结果与所述学生预测结果的第二差值;
所述训练模块704,用于将所述第一差值的一范数,乘以第一系数,得到第一损失值;以及,将所述第二差值的一范数,乘以第二系数,得到第二损失值,所述第二系数等于1减所述第一系数;
所述训练模块704,用于计算所述第一损失值和所述第二损失值之和,得到第三损失值;
所述训练模块704,用于根据所述第三损失值训练所述帧数预测模型;
其中,所述第一系数为当前训练进程与训练进程最大值的比值。
在一个可选的实施例中,所述前一帧姿态中存在至少一个关节点的速度不为零,所述目标姿态中存在至少一个关节点的速度不为零;所述装置还包括:
所述训练模块704,用于在动作捕捉数据中截取候选片段,所述动作捕捉数据包括所述处理对象的连续的姿态变化数据,所述候选片段包括所述动作捕捉数据中连续的至少两帧姿态;
所述训练模块704,用于计算所述候选片段中,相邻两帧姿态的关节距离之和,得到差异和;
所述训练模块704,用于在所述候选片段中,不存在所述差异和小于所述第一阈值的情况下,将所述候选片段确定为动态片段;
所述训练模块704,用于在所述动态片段中选取所述训练样本;
所述训练模块704,用于重复上述步骤,选取至少两个所述训练样本,得到所述训练样本集;
其中,在所述动态片段中,所述样本前一帧姿态位于所述样本目标姿态之前;所述训练样本的所述真实标签为样本中间帧帧数,所述样本中间帧帧数等于所述动态片段中所述样本前一帧姿态与所述样本目标姿态中间的姿态帧数。
在一个可选的实施例中,所述判断模块703,用于在所述中间帧帧数大于或等于阈值的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
在一个可选的实施例中,所述判断模块703,用于在所述中间帧帧数小于所述阈值的情况下,将所述下一帧姿态更新为所述当前帧姿态,将所述中间帧帧数更新为所述中间帧帧数减一;
所述生成模块702,用于根据所述中间帧帧数、所述前一帧姿态、所述目标姿态生成所述当前帧姿态;
所述判断模块703,用于重复执行上述两步骤。
在一个可选的实施例中,所述装置还包括:
所述判断模块703,用于在所述中间帧帧数等于一的情况下,停止生成中间帧。
在一个可选的实施例中,所述生成模块702,用于获取输入数据,所述输入数据包括所述前一帧姿态、所述目标姿态和所述中间帧帧数;
所述生成模块702,用于调用第一网络模型基于所述输入数据输出姿态特征、髋关节当前帧姿态数据、上肢当前帧姿态数据;
所述生成模块702,用于调用第二网络模型基于所述姿态特征、所述前一帧姿态、所述髋关节当前帧姿态数据输出下肢当前帧姿态数据;
所述生成模块702,用于基于所述前一帧姿态、所述髋关节当前帧姿态数据、所述上肢当前帧姿态数据和所述下肢当前帧姿态数据得到所述当前帧姿态。
在一个可选的实施例中,所述前一帧姿态包括髋关节前一帧速度、下肢前一帧速度、髋关节前一帧旋转、下肢前一帧旋转、上肢前一帧旋转、下肢前一帧位置、髋关节前一帧位置;
所述目标姿态包括髋关节目标位置、下肢目标位置、上肢目标旋转;
所述生成模块702,用于将所述髋关节前一帧速度、所述下肢前一帧速度、所述上肢前一帧旋转与所述中间帧帧数拼接得到第一数据;
所述生成模块702,用于拼接所述上肢目标旋转与所述上肢前一帧旋转之差、所述下肢目标位置与所述下肢前一帧位置之差、所述髋关节目标位置与所述髋关节前一帧位置之差,得到第二数据;
所述生成模块702,用于拼接所述第二数据与所述髋关节目标位置、下肢目标位置、上肢目标旋转得到第三数据;
所述生成模块702,用于拼接所述第一数据与所述第三数据得到输入数据;
所述生成模块702,用于调用长短期记忆LSTM网络和解析解码器基于所述输入数据,输出姿态特征、髋关节当前帧速度、上肢当前帧角速度、髋关节当前帧角速度;
所述生成模块702,用于调用条件变分子动编码器CVAE的解码器基于所述姿态特征、所述髋关节当前帧速度、所述髋关节前一帧速度、所述下肢前一帧速度、所述下肢前一帧旋转、所述髋关节前一帧旋转,输出下肢当前帧速度、下肢当前帧角速度;
所述生成模块702,用于基于所述前一帧姿态、所述髋关节当前帧速度、所述上肢当前帧角速度、所述髋关节当前帧角速度、下肢当前帧速度、下肢当前帧角速度,生成所述当前帧姿态。
在一个可选的实施例中,所述帧数模块701,用于将所述前一帧姿态和所述目标姿态输入动作类型预测模型,得到动作分类结果,所述动作分类结果包括位移动作和原地动作;
所述帧数模块701,用于将所述前一帧姿态、所述目标姿态和所述动作分类结果输入所述帧数预测模型,得到所述中间帧帧数。
在一个可选的实施例中,所述装置还包括:
抽帧模块,用于执行步骤一:将所述高帧率动画中的第一帧姿态确定为所述前一帧姿态,将所述高帧率动画的最后一帧姿态确定为所述目标姿态;所述高帧率动画的帧率高于帧率阈值;
抽帧模块,用于执行步骤二:将所述前一帧姿态与所述目标姿态输入帧数预测模型,得到所述中间帧帧数;
抽帧模块,用于执行步骤三:获取所述前一帧姿态在所述高帧率动画中对应的第一时间点,以及,获取所述目标姿态在所述高帧率动画中对应的第二时间点;
抽帧模块,用于执行步骤四:根据所述中间帧帧数等分所述第一时间点至所述第二时间点,确定第一帧中间帧所在的第三时间点;
抽帧模块,用于执行步骤五:将所述高帧率动画中与所述第三时间点最近的姿态帧确定为关键帧;
抽帧模块,用于执行步骤六:将所述关键帧确定为所述前一帧姿态,将所述高帧率动画的最后一帧姿态确定为所述目标姿态;
抽帧模块,用于重复执行所述步骤二至所述步骤六,获取所述高帧率动画中的至少一帧所述关键帧;
抽帧模块,用于根据至少一帧所述关键帧、所述第一帧姿态、所述最后一帧姿态,生成所述高帧率动画的压缩动画。
在一个可选的实施例中,所述帧数模块701,用于将所述前一帧姿态、所述目标姿态以及场景标签输入所述帧数预测模型,得到所述中间帧帧数,所述场景标签包括:白天、黑夜、远景对象、近景对象中的至少一个;
所述生成模块702,用于将所述中间帧帧数、所述前一帧姿态以及所述目标姿态,输入所述场景标签对应的中间帧生成模型,生成所述当前帧姿态。
在一个可选的实施例中,所述装置还包括:
获取模块,用于获取所述目标姿态对应的动作描述,所述动作描述是用于指示过渡动作的文本信息;
所述获取模块,用于调用语义识别模型对所述动作描述进行语义识别,得到语义特征;
所述帧数模块701,用于将所述前一帧姿态、所述目标姿态以及所述语义特征输入所述帧数预测模型,得到所述中间帧帧数;
所述生成模块702,用于将所述中间帧帧数、所述语义特征、所述前一帧姿态以及所述目标姿态,输入所述中间帧生成模型,生成所述当前帧姿态,所述当前帧姿态为所述过渡动作对应的一帧姿态。
在一个可选的实施例中,所述装置还包括:
获取模块,用于获取伴奏音频;
所述获取模块,用于调用编码器对所述伴奏音频进行特征提取,得到音频特征;
所述帧数模块701,用于将所述前一帧姿态、所述目标姿态以及所述音频特征输入所述帧数预测模型,得到所述中间帧帧数;
所述生成模块702,用于将所述中间帧帧数、所述音频特征、所述前一帧姿态以及所述目标姿态,输入所述中间帧生成模型,生成所述当前帧姿态。
图16是本申请一个实施例提供的服务器的结构示意图。具体来讲:服务器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来连接到其他类型的网络或远程计算机系统(未示出)。
本申请还提供了一种终端,该终端包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的中间帧的生成方法。需要说明的是,该终端可以是如图17所提供的终端。
图17示出了本申请一个示例性实施例提供的终端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从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图17中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的中间帧的生成方法。
本申请还提供一种计算机设备,该计算机设备包括:处理器和存储器,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的中间帧的生成方法。
本申请还提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的中间帧的生成方法。
本申请还提供一种计算机程序产品,所述计算机程序产品中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上方面所述的中间帧的生成方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
需要进行说明的是,本申请在收集用户的相关数据之前以及在收集用户的相关数据的过程中,都可以显示提示界面、弹窗或输出语音提示信息,该提示界面、弹窗或语音提示信息用于提示用户当前正在搜集其相关数据,使得本申请仅仅在获取到用户对该提示界面或者弹窗发出的确认操作后,才开始执行获取用户相关数据的相关步骤,否则(即未获取到用户对该提示界面或者弹窗发出的确认操作时),结束获取用户相关数据的相关步骤,即不获取用户的相关数据。换句话说,本申请所采集的所有用户数据都是在用户同意并授权的情况下进行采集的,且相关用户数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
Claims (16)
1.一种中间帧的生成方法,其特征在于,所述方法包括以下步骤:
根据处理对象的前一帧姿态与目标姿态的姿态差异,以及所述前一帧姿态与所述目标姿态的速度差异,计算当前帧姿态对应的中间帧帧数;所述中间帧帧数是从所述前一帧姿态过渡至所述目标姿态所需生成的中间帧姿态的帧数,所述前一帧姿态为所述当前帧姿态之前一帧所述处理对象的姿态;
根据所述中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态;
在所述中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
2.根据权利要求1所述的方法,其特征在于,所述根据处理对象的前一帧姿态与目标姿态的姿态差异,以及所述前一帧姿态与所述目标姿态的速度差异,计算当前帧姿态对应的中间帧帧数,包括:
将所述前一帧姿态与所述目标姿态输入帧数预测模型,得到所述中间帧帧数;
其中,所述前一帧姿态和所述目标姿态包括所述处理对象的关节点的位置信息和速度信息。
3.根据权利要求2所述的方法,其特征在于,所述帧数预测模型包括级联的至少两个线性激活模块;所述线性激活模块包括以下至少一种结构:至少一个线性层、至少一个激活层、至少一个归一化层;
所述将所述前一帧姿态与所述目标姿态输入帧数预测模型,得到所述中间帧帧数,包括:
将所述前一帧姿态中所述处理对象的髋关节前一帧位置、上肢前一帧位置、下肢前一帧位置、髋关节前一帧速度、上肢前一帧速度、下肢前一帧速度,所述目标姿态中所述处理对象的髋关节目标位置、上肢目标位置、下肢目标位置、髋关节目标速度、上肢目标速度、下肢目标速度,输入级联的第一个所述线性激活模块;
将级联的前一个所述线性激活模块的输出,作为后一个所述线性激活模块的输入,在最后一个所述线性激活模块输出所述中间帧帧数。
4.根据权利要求2所述的方法,其特征在于,所述前一帧姿态和所述目标姿态包括在规范三维空间中的位置信息和速度信息;所述方法还包括:
获取所述前一帧姿态和所述目标姿态在原始三维空间中的原始位置信息和原始速度信息;
将所述前一帧姿态从所述原始三维空间移动至所述规范三维空间中的坐标原点;
将位于所述坐标原点的所述前一帧姿态的朝向旋转至目标方向,得到规范后的所述前一帧姿态;
根据所述前一帧姿态在所述原始三维空间中的原始位置信息,以及规范后的所述前一帧姿态在所述规范三维空间中的位置信息,确定位移向量和旋转向量;
根据所述位移向量将所述目标姿态从所述原始三维空间移动至所述规范三维空间,根据所述旋转向量旋转所述规范三维空间中的所述目标姿态,得到规范后的所述目标姿态;
所述将所述前一帧姿态与所述目标姿态输入帧数预测模型,得到所述中间帧帧数,包括:
将规范后的所述前一帧姿态,与规范后的所述目标姿态,输入所述帧数预测模型,得到所述中间帧帧数。
5.根据权利要求2至4任一所述的方法,其特征在于,所述方法还包括:
将训练样本输入教师模型,得到教师预测结果;所述训练样本包括样本前一帧姿态和样本目标姿态;教师预测模型的线性激活模块数量大于所述帧数预测模型,所述教师预测模型是使用训练样本集预先训练得到中间帧帧数的预测模型;
将所述训练样本输入所述帧数预测模型,得到学生预测结果;
根据所述学生预测结果与所述训练样本的真实标签的损失、所述学生预测结果与所述教师预测结果的损失,训练所述帧数预测模型。
6.根据权利要求5所述的方法,其特征在于,所述根据所述学生预测结果与所述训练样本的真实标签的损失、所述学生预测结果与所述教师预测结果的损失,训练所述帧数预测模型,包括:
计算所述真实标签与所述学生预测结果的第一差值;以及,计算所述教师预测结果与所述学生预测结果的第二差值;
将所述第一差值的一范数,乘以第一系数,得到第一损失值;以及,将所述第二差值的一范数,乘以第二系数,得到第二损失值,所述第二系数等于1减所述第一系数;
计算所述第一损失值和所述第二损失值之和,得到第三损失值;
根据所述第三损失值训练所述帧数预测模型;
其中,所述第一系数为当前训练进程与训练进程最大值的比值。
7.根据权利要求5所述的方法,其特征在于,所述前一帧姿态中存在至少一个关节点的速度不为零,所述目标姿态中存在至少一个关节点的速度不为零,所述方法还包括:
在动作捕捉数据中截取候选片段,所述动作捕捉数据包括所述处理对象的连续的姿态变化数据,所述候选片段包括所述动作捕捉数据中连续的至少两帧姿态;
计算所述候选片段中,相邻两帧姿态的关节距离之和,得到差异和;
在所述候选片段中,不存在所述差异和小于第一阈值的情况下,将所述候选片段确定为动态片段;
在所述动态片段中选取所述训练样本;
重复上述步骤,选取至少两个所述训练样本,得到所述训练样本集;
其中,在所述动态片段中,所述样本前一帧姿态位于所述样本目标姿态之前;所述训练样本的所述真实标签为样本中间帧帧数,所述样本中间帧帧数等于所述动态片段中所述样本前一帧姿态与所述样本目标姿态中间的姿态帧数。
8.根据权利要求1至4任一所述的方法,其特征在于,所述在所述中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态,包括:
在所述中间帧帧数大于或等于阈值的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行上述步骤生成所述下一帧姿态。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括以下两步骤:
在所述中间帧帧数小于所述阈值的情况下,将所述下一帧姿态更新为所述当前帧姿态,将所述中间帧帧数更新为所述中间帧帧数减一;
根据所述中间帧帧数、所述前一帧姿态、所述目标姿态生成所述当前帧姿态;
重复执行上述两步骤。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在所述中间帧帧数等于一的情况下,停止生成中间帧。
11.根据权利要求1至4任一所述的方法,其特征在于,所述根据所述中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态,包括:
获取输入数据,所述输入数据包括所述前一帧姿态、所述目标姿态和所述中间帧帧数;
调用第一网络模型基于所述输入数据输出姿态特征、髋关节当前帧姿态数据、上肢当前帧姿态数据;
调用第二网络模型基于所述姿态特征、所述前一帧姿态、所述髋关节当前帧姿态数据输出下肢当前帧姿态数据;
基于所述前一帧姿态、所述髋关节当前帧姿态数据、所述上肢当前帧姿态数据和所述下肢当前帧姿态数据得到所述当前帧姿态。
12.根据权利要求1至4任一所述的方法,其特征在于,所述前一帧姿态包括髋关节前一帧速度、下肢前一帧速度、髋关节前一帧旋转、下肢前一帧旋转、上肢前一帧旋转、下肢前一帧位置、髋关节前一帧位置;
所述目标姿态包括髋关节目标位置、下肢目标位置、上肢目标旋转;
所述根据所述中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态,包括:
将所述髋关节前一帧速度、所述下肢前一帧速度、所述上肢前一帧旋转与所述中间帧帧数拼接得到第一数据;
拼接所述上肢目标旋转与所述上肢前一帧旋转之差、所述下肢目标位置与所述下肢前一帧位置之差、所述髋关节目标位置与所述髋关节前一帧位置之差,得到第二数据;
拼接所述第二数据与所述髋关节目标位置、下肢目标位置、上肢目标旋转得到第三数据;
拼接所述第一数据与所述第三数据得到输入数据;
调用长短期记忆LSTM网络和解析解码器基于所述输入数据,输出姿态特征、髋关节当前帧速度、上肢当前帧角速度、髋关节当前帧角速度;
调用条件变分子动编码器CVAE的解码器基于所述姿态特征、所述髋关节当前帧速度、所述髋关节前一帧速度、所述下肢前一帧速度、所述下肢前一帧旋转、所述髋关节前一帧旋转,输出下肢当前帧速度、下肢当前帧角速度;
基于所述前一帧姿态、所述髋关节当前帧速度、所述上肢当前帧角速度、所述髋关节当前帧角速度、下肢当前帧速度、下肢当前帧角速度,生成所述当前帧姿态。
13.根据权利要求2至4任一所述的方法,其特征在于,所述方法还包括:
将所述前一帧姿态和所述目标姿态输入动作类型预测模型,得到动作分类结果,所述动作分类结果包括位移动作和原地动作;
所述将所述前一帧姿态与所述目标姿态输入帧数预测模型,得到所述中间帧帧数,包括:
将所述前一帧姿态、所述目标姿态和所述动作分类结果输入所述帧数预测模型,得到所述中间帧帧数。
14.一种中间帧的生成装置,其特征在于,所述装置包括:
帧数模块,用于执行第一个步骤,所述第一个步骤包括:根据处理对象的前一帧姿态与目标姿态的姿态差异,以及所述前一帧姿态与所述目标姿态的速度差异,计算当前帧姿态对应的中间帧帧数;所述中间帧帧数是从所述前一帧姿态过渡至所述目标姿态所需生成的中间帧姿态的帧数,所述前一帧姿态为所述当前帧姿态之前一帧所述处理对象的姿态;
生成模块,用于执行第二个步骤,所述第二个步骤包括:根据所述中间帧帧数,生成用于从所述前一帧姿态过渡至所述目标姿态所需的所述当前帧姿态;
判断模块,用于执行第三个步骤,所述第三个步骤包括:在所述中间帧帧数满足执行条件的情况下,将下一帧姿态更新为所述当前帧姿态,重复执行所述第一个步骤、所述第二个步骤和所述第三个步骤生成所述下一帧姿态。
15.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行,以实现如权利要求1至13任一项所述的中间帧的生成方法。
16.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行,以实现如权利要求1至13任一项所述的中间帧的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310322250.6A CN116030168B (zh) | 2023-03-29 | 2023-03-29 | 中间帧的生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310322250.6A CN116030168B (zh) | 2023-03-29 | 2023-03-29 | 中间帧的生成方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116030168A true CN116030168A (zh) | 2023-04-28 |
CN116030168B CN116030168B (zh) | 2023-06-09 |
Family
ID=86074490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310322250.6A Active CN116030168B (zh) | 2023-03-29 | 2023-03-29 | 中间帧的生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116030168B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111260762A (zh) * | 2020-01-19 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 一种动画实现方法、装置、电子设备和存储介质 |
CN111741329A (zh) * | 2020-07-01 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 一种视频处理方法、装置、设备及存储介质 |
US20210158593A1 (en) * | 2019-11-22 | 2021-05-27 | Adobe Inc. | Pose selection and animation of characters using video data and training techniques |
US20220129731A1 (en) * | 2021-05-27 | 2022-04-28 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method and apparatus for training image recognition model, and method and apparatus for recognizing image |
CN115131475A (zh) * | 2022-04-28 | 2022-09-30 | 腾讯科技(深圳)有限公司 | 过渡帧生成方法、装置、设备及存储介质 |
CN115578494A (zh) * | 2022-12-08 | 2023-01-06 | 腾讯科技(深圳)有限公司 | 中间帧的生成方法、装置、设备及存储介质 |
-
2023
- 2023-03-29 CN CN202310322250.6A patent/CN116030168B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210158593A1 (en) * | 2019-11-22 | 2021-05-27 | Adobe Inc. | Pose selection and animation of characters using video data and training techniques |
CN111260762A (zh) * | 2020-01-19 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 一种动画实现方法、装置、电子设备和存储介质 |
CN111741329A (zh) * | 2020-07-01 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 一种视频处理方法、装置、设备及存储介质 |
US20220129731A1 (en) * | 2021-05-27 | 2022-04-28 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method and apparatus for training image recognition model, and method and apparatus for recognizing image |
CN115131475A (zh) * | 2022-04-28 | 2022-09-30 | 腾讯科技(深圳)有限公司 | 过渡帧生成方法、装置、设备及存储介质 |
CN115578494A (zh) * | 2022-12-08 | 2023-01-06 | 腾讯科技(深圳)有限公司 | 中间帧的生成方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
葛涵;褚丹;: "基于数字媒体的视频关键帧丢失同步还原仿真", 计算机仿真, no. 05, pages 1 - 3 * |
Also Published As
Publication number | Publication date |
---|---|
CN116030168B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111738220B (zh) | 三维人体姿态估计方法、装置、设备及介质 | |
CN111652121B (zh) | 一种表情迁移模型的训练方法、表情迁移的方法及装置 | |
CN110544272B (zh) | 脸部跟踪方法、装置、计算机设备及存储介质 | |
WO2020224479A1 (zh) | 目标的位置获取方法、装置、计算机设备及存储介质 | |
CN111476783B (zh) | 基于人工智能的图像处理方法、装置、设备及存储介质 | |
CN111541907B (zh) | 物品显示方法、装置、设备及存储介质 | |
RU2708027C1 (ru) | Способ передачи движения субъекта из видео на анимированного персонажа | |
CN110135336B (zh) | 行人生成模型的训练方法、装置及存储介质 | |
CN111860485B (zh) | 图像识别模型的训练方法、图像的识别方法、装置、设备 | |
CN111491187B (zh) | 视频的推荐方法、装置、设备及存储介质 | |
CN111091166A (zh) | 图像处理模型训练方法、图像处理方法、设备及存储介质 | |
CN111414506A (zh) | 基于人工智能情绪处理方法、装置、电子设备及存储介质 | |
CN113289327A (zh) | 移动终端的显示控制方法及装置、存储介质及电子设备 | |
CN111589138B (zh) | 动作预测方法、装置、设备及存储介质 | |
CN113763532A (zh) | 基于三维虚拟对象的人机交互方法、装置、设备及介质 | |
CN115131475A (zh) | 过渡帧生成方法、装置、设备及存储介质 | |
Gupta et al. | Deep learning model based multimedia retrieval and its optimization in augmented reality applications | |
CN115578494B (zh) | 中间帧的生成方法、装置、设备及存储介质 | |
CN113821658A (zh) | 对编码器进行训练的方法、装置、设备及存储介质 | |
CN111447379B (zh) | 生成信息的方法和装置 | |
CN116030168B (zh) | 中间帧的生成方法、装置、设备及存储介质 | |
CN110990549A (zh) | 获取答案的方法、装置、电子设备及存储介质 | |
CN116863042A (zh) | 虚拟对象的动作生成方法及动作生成模型的训练方法 | |
CN115223248A (zh) | 手部姿态识别方法、手部姿态识别模型的训练方法及装置 | |
CN112528760B (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 |