CN115131475A - 过渡帧生成方法、装置、设备及存储介质 - Google Patents
过渡帧生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115131475A CN115131475A CN202210461991.8A CN202210461991A CN115131475A CN 115131475 A CN115131475 A CN 115131475A CN 202210461991 A CN202210461991 A CN 202210461991A CN 115131475 A CN115131475 A CN 115131475A
- Authority
- CN
- China
- Prior art keywords
- frame
- target
- motion
- target object
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种过渡帧生成方法、装置、设备及存储介质,应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。在生成起始帧和目标帧之间的过渡帧时,根据起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,获取目标对象的动作变化特征和预测目标关节速度,来对目标对象在起始帧与目标帧之间的过渡动作进行预测,以生成过渡帧。在这一过程中,由于不同关节在动作生成中具有不同的重要性,而目标关节速度则很大程度决定了目标对象在下一帧中的位置,因此通过获取预测目标关节速度来进一步预测目标对象的过渡动作,能够得到更加准确的动作信息,从而生成平滑、自然的过渡帧序列,有效提高了过渡帧质量。
Description
技术领域
本申请涉及人工智能技术领域,特别涉及一种过渡帧生成方法、装置、设备及存储介质。
背景技术
随着互联网技术的快速发展,电影、游戏等产业对高质量角色动画的需求日益增长。目前,在制作角色动画时,角色动作越密集,生成的角色动画越流畅,因此,在根据角色运动或变化过程中的关键动作生成关键帧之后,往往会对相邻关键帧之间的过渡动作进行预测,从而生成指定数目的过渡帧。
相关技术中,采用在相邻两个关键帧之间进行线性插值的方式,来预测目标对象的过渡动作,从而生成两个关键帧之间的过渡帧。然而,这种方法仅适用于过渡时间短、过渡帧数目少以及动作简单的动作预测,缺少泛用性,在关键帧数量较少或者动作较为复杂的情况下,容易生成不自然、不合理的过渡帧。
因此,亟需一种能够有效提升过渡帧质量的过渡帧生成方法。
发明内容
本申请实施例提供了一种过渡帧生成方法、装置、设备及存储介质,能够得到平滑、自然的过渡帧序列,有效提高过渡帧质量。该技术方案如下:
一方面,提供了一种过渡帧生成方法,该方法包括:
获取起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,该目标帧数指示该起始帧与该目标帧之间的过渡帧数目;
基于该起始帧中目标对象的动作信息、该目标帧中目标对象的动作信息以及该目标帧数,获取该目标对象的动作变化特征和预测目标关节速度,该动作变化特征指示该目标对象在该起始帧与该目标帧之间的过渡动作相对于该起始帧中动作的变化;
基于该起始帧中目标对象的动作信息、该目标对象的动作变化特征和预测目标关节速度,对该过渡动作进行预测,以生成过渡帧。
另一方面,提供了一种过渡帧生成装置,该装置包括:
第一获取模块,用于获取起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,该目标帧数指示该起始帧与该目标帧之间的过渡帧数目;
第二获取模块,用于基于该起始帧中目标对象的动作信息、该目标帧中目标对象的动作信息以及该目标帧数,获取该目标对象的动作变化特征和预测目标关节速度,该动作变化特征指示该目标对象在该起始帧与该目标帧之间的过渡动作相对于该起始帧中动作的变化;
过渡帧生成模块,用于基于该起始帧中目标对象的动作信息、该目标对象的动作变化特征和预测目标关节速度,对该过渡动作进行预测,以生成过渡帧。
在一些实施例中,该过渡帧生成模块,用于:
将该起始帧中目标对象的动作信息、该目标对象的动作变化特征和预测目标关节速度,输入动作预测模型的第二子模型,得到该目标对象的多个子动作信息,该子动作信息为基于该目标对象所处的运动阶段预测得到的动作信息;
基于多个目标权重,对该多个子动作信息进行加权求和,得到该目标对象基于该过渡动作的动作信息,以生成该过渡帧。
在一些实施例中,该过渡帧生成模块,用于:
将该起始帧中目标对象的动作信息、该目标对象的动作变化特征和预测目标关节速度,输入该第二子模型,基于该第二子模型中动作流形空间与对象动作信息之间的映射关系,将该动作变化特征映射为对应的动作信息,得到该目标对象的预测关节位置和预测关节速度,该动作流形空间指示对象在连续两个动作对应的帧中的动作变化;
基于该起始帧中目标对象的动作信息、该目标对象的预测关节位置、预测关节速度以及该预测目标关节速度,得到该多个子动作信息。
在一些实施例中,该装置还包括:
第一训练模块,用于基于样本数据集和标签信息,对动作预测模型中的第二子模型进行训练,得到训练后的该第二子模型,该样本数据集包括样本对象基于多个连续动作的样本帧,该标签信息指示样本帧中样本对象的样本目标关节速度;
第二训练模块,用于基于该样本数据集和训练后的该第二子模型,对该动作预测模型中的第一子模型进行训练,得到训练后的该第一子模型。
在一些实施例中,该第一训练模块,包括:
第一训练单元,用于基于该样本数据集、该标签信息以及第一损失函数,对向量编码模型和该第二子模型的模型参数进行更新,直至满足第一训练条件,得到中间向量编码模型和中间第二子模型,该向量编码模型用于基于第m个样本帧和第m+1个样本帧,输出该第m+1个样本帧的预测动作变化特征,m为正整数;
第二训练单元,用于基于该样本数据集、该标签信息以及第二损失函数,对该中间向量编码模型和该中间第二子模型的模型参数进行更新,直至满足第二训练条件,得到训练后的该向量编码模型和训练后的该第二子模型;
其中,该第一损失函数指示样本帧的动作重构损失和信息散度,该第二损失函数指示样本帧的动作重构损失、信息散度、脚步滑动损失以及骨骼长度损失。
在一些实施例中,该第一训练单元,用于:
基于第m个样本帧、第m+1个样本帧、该标签信息、该向量编码模型以及该第二子模型,获取该第m+1个样本帧的动作重构损失值;
基于第m个样本帧、第m+1个样本帧以及该向量编码模型,获取该第m+1个样本帧的信息散度;
基于该动作重构损失值和该信息散度,对该向量编码模型和该第二子模型的模型参数进行更新,直至满足该第一训练条件,得到该中间向量编码模型和该中间第二子模型。
在一些实施例中,该第二训练单元,用于:
基于第m个样本帧、第m+1个样本帧、该标签信息、该中间向量编码模型以及该中间第二子模型,获取该第m+1个样本帧的动作重构损失值、脚步滑动损失值以及骨骼长度损失值;
基于第m个样本帧、第m+1个样本帧以及该向量编码模型,获取该第m+1个样本帧的信息散度;
基于该动作重构损失值、该脚步滑动损失值、该骨骼长度损失值以及该信息散度,对该中间向量编码模型和该中间第二子模型的模型参数进行更新,直至满足该第二训练条件,得到训练后的该向量编码模型和训练后的该第二子模型。
在一些实施例中,该第二训练模块,用于:
基于样本起始帧、样本目标帧、样本目标帧数、该第一子模型以及训练后的该第二子模型,获取样本起始帧和样本目标帧之间的样本过渡帧的关节旋转损失值、关节位置损失值以及骨骼旋转损失值,该样本目标帧数指示该样本起始帧和该样本目标帧之间的样本过渡帧数目;
基于该关节旋转损失值、该关节位置损失值以及该骨骼旋转损失值,对该第一子模型的模型参数进行更新,直至满足训练结束条件,得到训练后的该第一子模型。
另一方面,提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器用于存储至少一条计算机程序,该至少一段计算机程序由该处理器加载并执行以实现本申请实施例中的过渡帧生成方法。
另一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现本申请实施例中的过渡帧生成方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,使得该计算机设备执行以实现本申请实施例中的过渡帧生成方法。
在本申请实施例中,在生成起始帧和目标帧之间的过渡帧时,根据起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,获取目标对象的动作变化特征和预测目标关节速度,来对目标对象在起始帧与目标帧之间的过渡动作进行预测,以生成过渡帧。在这一过程中,由于不同关节在动作生成中具有不同的重要性,而目标关节速度则很大程度决定了目标对象在下一帧中的位置,因此通过获取预测目标关节速度来进一步预测目标对象的过渡动作,能够得到更加准确的动作信息,从而生成平滑、自然的过渡帧序列,有效提高了过渡帧质量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例提供的过渡帧生成方法的实施环境示意图;
图2是根据本申请实施例提供的一种过渡帧生成方法的流程图;
图3是根据本申请实施例提供的一种过渡帧生成方法的流程图;
图4是本申请实施例提供的一种第一子模型的示意图;
图5是本申请实施例提供的一种第二子模型的示意图;
图6是本申请实施例提供的一种动作预测模型的训练方法的流程图;
图7是本申请实施例提供的一种关节表示示意图;
图8是本申请实施例提供的一种向量编码模型和第二子模型的示意图;
图9是本申请实施例提供的一种过渡帧序列的示意图;
图10是根据本申请实施例提供的一种过渡帧生成装置的结构示意图;
图11是根据本申请实施例提供的一种终端的结构示意图;
图12是根据本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。
这些术语只是用于将一个元素与另一个元素区别开。例如,在不脱离各种示例的范围的情况下,第一动作能够被称为第二动作,并且类似地,第二动作也能够被称为第一动作。第一动作和第二动作都可以是动作,并且在某些情况下,可以是单独且不同的动作。
其中,至少一个是指一个或一个以上,例如,至少一个动作可以是一个动作、两个动作、三个动作等任意大于等于一的整数个动作。而多个是指两个或者两个以上,例如,多个动作可以是两个动作、三个动作等任意大于等于二的整数个动作。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的动作信息等都是在充分授权的情况下获取的。在一些实施例中,本公开实施例提供有权限询问页面,该权限询问页面用于询问是否授予上述信息的获取权限,在该权限询问页面中,显示同意授权控件和拒绝授权控件,在检测到对该同意授权控件的触发操作的情况下,利用本申请实施例所提供的过渡帧生成方法来获取上述信息,从而实现对对象动作的预测。
下面对本申请实施例提供的过渡帧生成方案可能用到的技术进行介绍。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。
下面对本申请实施例提供的过渡帧生成方案可能用到的关键术语或缩略语进行介绍。
帧(Frame),是一种时间单位,用于表示特定时刻。
变分自编码器(Variational Auto-Encoder,VAE),是一种无监督/半监督的神经网络架构,通过编码器(Encoder)将输入信息压缩到一个紧凑的多元潜在分布上,解码器(Decoder)从分布中尽可能准确地恢复输入信息。
条件变分自编码器(Conditional Variational Auto-Encoder,CVAE),是一种在VAE的基础上引入了条件,能够在不同的给定条件下生成不同的结果。
流形学习(Manifold Learning),是一种机器学习方法。示意性地,假设数据在高维空间中的分布相似于某个低维的流形,流形学习的目的是通过找到这一低维流形来进行数据的降维。
正向运动学(Forward Kinematics,FK),是指在运行学中,给定父骨骼位置以及它的变换来得出子骨骼的位置以及变换。例如,人体在运动手臂时,可以带动手肘,进而带动手掌运动。
混合专家系统(Mixture of Experts,MOE),是一种机器学习模型,该模型的思想是训练多个神经网络(也就是多个专家),每个神经网络(专家)适用于数据的不同特征。
在介绍本申请实施例提供的过渡帧生成方案之前,为便于理解,下面先对本申请实施例的应用场景进行介绍。
示意性地,本申请实施例可应用于各种场景,包括但不限于动画制作、云技术、人工智能、智慧交通、辅助驾驶等。
例如,在动画制作场景中,目标对象的动作越密集,生成的动画越流畅,因此,在根据目标对象运动或变化过程中的关键动作生成一些稀疏的关键帧之后,往往会通过这些关键帧生成关键帧之间的缺失动作,得到自然、流畅、平滑的动画。这一过程也可以理解为,给定目标对象的起始动作对应的起始帧、目标对象的目标动作对应的目标帧以及目标帧数(即起始帧与目标帧之间的过渡帧数目),对目标对象按照目标帧数如何从起始动作运动到目标动作的过程进行预测,从而生成相应的过渡帧(In-betweening,也称为间补帧或中间帧,在此不作限定,为便于描述,在下述实施例中统一称为过渡帧),将这些过渡帧补充到起始帧和目标帧中间,得到自然、流畅、平滑的动画。
应理解,上述动画制作场景仅为示意性说明,在其他电影制作、视频处理等场景中,生成过渡帧的过程与上述过程同理,在此不再赘述。
基于此,本申请实施例提供了一种过渡帧生成方法,能够在给定目标对象的起始动作对应的起始帧、目标对象的目标动作对应的目标帧以及目标帧数的情况下,实时预测目标对象的过渡动作,以生成相应的过渡帧,得到自然、流畅、平滑的过渡帧序列,提高过渡帧质量。
下面对本申请实施例提供的过渡帧生成方案的实施环境进行介绍。
图1是根据本申请实施例提供的过渡帧生成方法的实施环境示意图。该实施环境包括:终端101和服务器102。终端101和服务器102能够通过有线网络或无线网络进行直接或间接地连接,本申请在此不作限制。
终端101包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。示意性地,终端101能够安装和运行有应用程序,该应用程序用于提供过渡帧生成功能,如动画制作类应用程序等,对此不作限定。在一些实施例中,在过渡帧生成过程中,利用动作预测模型来预测过渡帧中目标对象的动作,终端101能够向服务器102提供该动作预测模型的训练方法所需的信息,如训练参数、样本帧以及初始AI模型等。
在一些实施例中,终端101泛指多个终端中的一个,本实施例仅以终端101来举例说明。本领域技术人员能够知晓,上述终端101的数量能够更多。比如上述终端101为几十个或几百个,或者更多数量,此时上述过渡帧生成方法的实施环境还包括其他终端。本申请实施例对终端的数量和设备类型不加以限定。
服务器102能够是独立的物理服务器,也能够是多个物理服务器构成的服务器集群或者分布式系统,还能够是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。上述服务器102的数量可以更多或更少,本申请实施例对此不加以限定。当然,服务器102还可以包括其他功能服务器,以便提供更全面且多样化的服务。在一些实施例中,服务器102用于执行本申请实施例提供的动作预测模型的训练方法,基于终端101提供的信息进行动作预测模型的训练。
在一些实施例中,在过渡帧生成过程中,服务器102承担主要计算工作,终端101承担次要计算工作;或者,服务器102承担次要计算工作,终端101承担主要计算工作;或者,服务器102或终端101分别能够单独承担计算工作。
需要说明的是,终端101和服务器102均能够利用本申请实施例提供的方法来生成过渡帧。在一些实施例中,终端101将目标对象的起始动作对应的起始帧、目标动作对应的目标帧以及目标帧数发送给服务器102,由服务器102基于动作预测模型进行动作预测,以生成起始帧和目标帧之间的过渡帧,将过渡帧发送至终端101。当然,终端101也能够直接利用动作预测模型进行动作预测以生成过渡帧。需要说明的是,上述动作预测模型既能够通过终端101训练得到,也能够通过服务器102训练得到,本申请实施例对此不加以限定。
在一些实施例中,上述的有线网络或无线网络使用标准通信技术和/或协议。网络通常为因特网、但也能够是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超级文本标记语言(Hyper Text Markup Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还能够使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还能够使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
下面通过几个方法实施例,对本申请实施例提供的过渡帧生成方法以及该过渡帧生成方法所涉及到的动作预测模型的训练过程进行介绍。
图2是根据本申请实施例提供的一种过渡帧生成方法的流程图。如图2所示,该方法由计算机设备执行,该计算机设备可提供为上述图1所示出的终端或服务器,示意性地,该方法包括下述步骤201至步骤203。
201、计算机设备获取起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数。
在本申请实施例中,起始帧是指目标对象的起始动作所对应的帧,目标帧是指目标对象的目标动作所对应的帧,目标帧数指示该起始帧与该目标帧之间的过渡帧数目。示意性地,该目标帧数也可以理解为目标对象从起始动作运动到目标动作的过程中,计算机设备所需预测的过渡动作数目。该目标对象为具有关节的人物或动物(包括虚拟人物或虚拟动物),对此不作限定。目标对象的动作信息指示目标对象在帧中的动作姿态。在一些实施例中,该动作信息包括目标对象的关节位置、关节旋转以及关节速度等。
202、计算机设备基于该起始帧中目标对象的动作信息、该目标帧中目标对象的动作信息以及该目标帧数,获取该目标对象的动作变化特征和预测目标关节速度。
在本申请实施例中,该动作变化特征指示该目标对象在该起始帧与该目标帧之间的过渡动作相对于该起始帧中动作的变化。在一些实施例中,该过渡动作是指目标对象从起始动作运动到目标动作的过程中,该起始动作的下一个动作。在一些实施例中,该目标关节为髋关节,示意性地,该目标对象的预测目标关节速度是指目标对象从起始动作运动到该过渡动作的过程中髋关节的预测速度。
应理解,由于目标对象的不同关节在动作生成中具有不同的重要性,而髋关节速度则很大程度决定了下一帧的位置,因此通过预测髋关节速度能够提高动作信息预测结果的准确度,得到更加准确的动作信息,以提高过渡帧质量。
203、计算机设备基于该起始帧中目标对象的动作信息、该目标对象的动作变化特征和预测目标关节速度,对该过渡动作进行预测,以生成过渡帧。
在本申请实施例中,计算机设备对该过渡动作进行预测,得到该目标对象基于该过渡动作的动作信息,从而生成相应的过渡帧。
需要说明的是,在上述步骤201至步骤203中,计算机设备基于起始帧、目标帧和目标帧数,生成了一个过渡帧,该过渡帧为起始帧的下一帧。在一些实施例中,在计算机设备生成该过渡帧后,按照与上述步骤201至步骤203同理的过程,将该过渡帧作为新的起始帧,基于该新的起始帧、该目标帧以及新的目标帧数(即原目标帧数-1),对目标对象的过渡动作进行预测,以生成相应的过渡帧,直至新的起始帧与目标帧之间所需补充的过渡帧数目为零,得到一组自然、平滑的过渡帧序列。例如,以目标对象为人物为例,起始帧中目标对象的动作为半蹲,目标帧中目标对象的动作为站立,目标帧数为10帧,则计算机设备重复执行上述步骤201至步骤203,对目标对象从“半蹲”运动到“站立”的过渡动作进行预测,以生成10个过渡帧,从而得到一组平滑、自然的过渡帧序列,该过渡帧序列能够指示目标对象从半蹲到站立的运动过程。也即是,上述过程可以理解为是一种实时生成过渡帧的过程。在另一些实施例中,计算机设备基于该起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,生成与该目标帧数对应的过渡帧,这一过程可以理解为是一种离线生成过渡帧的过程,应理解,这一过程的原理与上述步骤201至步骤203同理,故在此不再赘述。
综上,本申请实施例提供了一种过渡帧生成方法,在生成起始帧和目标帧之间的过渡帧时,根据起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,获取目标对象的动作变化特征和预测目标关节速度,来对目标对象在起始帧与目标帧之间的过渡动作进行预测,以生成过渡帧。在这一过程中,由于不同关节在动作生成中具有不同的重要性,而目标关节速度则很大程度决定了目标对象在下一帧中的位置,因此通过获取预测目标关节速度来进一步预测目标对象的过渡动作,能够得到更加准确的动作信息,从而生成平滑、自然的过渡帧序列,有效提高了过渡帧质量。
根据上述图2所示的实施例,对本申请提供的过渡帧生成方法进行了简要说明。下面基于图3对本申请提供的过渡帧生成方法进行详细说明。
图3是根据本申请实施例提供的一种过渡帧生成方法的流程图。如图3所示,该方法由计算机设备执行,该计算机设备可提供为上述图1所示出的终端或服务器,示意性地,该方法包括下述步骤301至步骤306。
301、计算机设备获取起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数。
在本申请实施例中,目标帧数指示该起始帧与该目标帧之间的过渡帧数目。示意性地,计算机设备为终端,终端上运行有动画制作类应用程序,计算机设备响应于针对起始帧和目标帧的选中操作,获取该起始帧中目标对象的动作信息和该目标帧中目标对象的动作信息,本申请实施例对此不作限定。在一些实施例中,该目标帧数是默认设置的,或者是根据实际需求而设置的,对此不作限定。另外,目标对象的动作信息的具体内容与上述图2所示实施例中步骤201同理,在此不再赘述。
计算机设备在获取到起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数之后,基于下述步骤302至步骤306,对该目标对象的过渡动作进行预测,以生成相应的过渡帧。
302、计算机设备将该起始帧中目标对象的动作信息、该目标帧中目标对象的动作信息以及该目标帧数,输入动作预测模型的第一子模型,得到该起始帧和该目标帧之间的偏移量嵌入向量、该起始帧的嵌入向量以及该目标帧的嵌入向量。
在本申请实施例中,动作预测模型包括第一子模型和第二子模型,其中,第一子模型用于根据当前帧、目标帧以及当前帧与目标帧之间的过渡帧数目,预测对象在下一帧(当前帧的下一帧)中的目标关节速度和动作变化特征;第二子模型用于根据当前帧、对象在下一帧中的预测目标关节速度和动作变化特征,预测对象在下一帧中的动作信息。
在一些实施例中,计算机设备将起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,输入该第一子模型,通过该第一子模型对该起始帧的动作信息进行编码,得到该起始帧的嵌入向量;对该目标帧的动作信息进行编码,得到该目标帧的嵌入向量;对起始帧和目标帧的动作信息之间的偏移量进行编码,得到偏移量嵌入向量。
在一些实施例中,计算机设备将起始帧中目标对象的部分动作信息、目标帧中目标对象的部分动作信息以及该目标帧数,输入该第一子模型,得到相应的嵌入向量。其中,该部分动作信息指示对象的下半身动作信息和髋关节动作信息。例如,该部分动作信息包括下半身关节位置、髋关节位置、上半身旋转、下半身关节速度以及髋关节速度等。应理解,由于不同关节在动作生成中具有不同的重要性,髋关节速度很大程度决定了目标对象在下一帧中的位置(例如区分高速运动和低速运动),且下半身关节对视觉质量影响较大,相比之下,上半身关节对视觉质量影响较小。因此,通过将部分动作信息输入第一子模型来得到相应的预测结果,能够在确保模型预测结果准确性的基础上,减少数据处理量,提高过渡帧生成效率。
303、计算机设备基于该偏移量嵌入向量、该起始帧的嵌入向量、该目标帧的嵌入向量以及该目标帧数,对目标对象的过渡动作相对于起始帧中动作的变化和该目标对象的目标关节速度进行预测,得到动作变化特征和预测目标关节速度。
在本申请实施例中,该动作变化特征指示该目标对象在该起始帧与该目标帧之间的过渡动作相对于该起始帧中动作的变化。示意性地,该动作变化特征为N维特征向量(N为正整数)。在一些实施例中,该第一子模型还用于根据当前帧、目标帧以及当前帧与目标帧之间的过渡帧数目,预测对象在下一帧中的旋转信息。示意性地,计算机设备通过该第一子模型,对该目标对象的关节旋转进行预测,得到该目标对象的旋转信息,如上半身关节旋转和髋关节旋转等,对此不作限定。
在一些实施例中,该第一子模型为基于递归神经网络(Recurrent NeuralNetwork,RNN)构建的模型。下面参考图4,以目标关节为髋关节为例,对计算机设备通过该第一子模型获取目标对象的动作变化特征和预测目标关节速度的过程(也即上述步骤302和步骤303)进行介绍。
图4是本申请实施例提供的一种第一子模型的示意图。如图4所示,该第一子模型包括编码层401、预测层402以及解码层403。
编码层401用于根据起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数进行编码,得到目标嵌入向量,将目标嵌入向量输入预测层402。示意性地,编码层401包括状态编码器(State Encoder)、目标编码器(Target Encoder)以及偏移量编码器(Offset Encoder),例如,这三个编码器均包括两个隐藏层,第一层包括512个单位,第二层包括256个单位,激活函数采用PLU激活函数,对此不作限定。其中,状态编码器用于对起始帧中目标对象的动作信息(如)进行编码;目标编码器用于对目标帧中目标对象的动作信息(如t表示目标帧)进行编码;偏移量编码器用于对起始帧和目标帧的动作信息之间的偏移量(如)进行编码。
预测层402用于根据目标嵌入向量,预测目标对象的髋关节速度和动作变化特征。例如,该预测层402为基于长短期记忆网络(Long Short-Term Memory,LSTM)的网络层。
解码层403用于对预测层402输出的数据进行解码,以得到最终的预测结果。例如,该解码层403包括Parse解码器,该Parse解码器包括三个隐藏层,采用ELU激活函数,对此不作限定。
在一些实施例中,计算机设备将目标帧数编码为时间嵌入向量,将该时间嵌入向量添加到目标嵌入向量中。示意性地,该时间嵌入向量与位置编码同理,其原理参考下述公式(1)和公式(2):
式中,zdt表示时间嵌入向量,dt表示目标帧数,D表示向量维度,k表示向量维度索引。
在一些实施例中,计算机设备还将时变高斯噪声添加到目标嵌入向量中。示意性地,时变高斯噪声表示为ztarget,其方差等于0.5。该时变高斯噪声的幅度按照下述公式(3)递减,通过将时变高斯噪声添加到目标嵌入向量中,使得第一子模型的注意力仅在靠近目标帧时集中在目标帧上,能够提高第一子模型的鲁棒性。
式中,dt表示目标帧数,tzero表示在接近目标帧的情况下,没有噪声的间隔帧数,tperiod表示噪声线性下降的间隔帧数。例如,将tzero设置成5帧,将tperiod设置为30帧,在实际应用中能够根据需求进行设置,本申请实施例对此不作限定。
在一些实施例中,计算机设备通过第一子模型中的解码层203,采用双曲正切Tanh激活函数,输出该目标对象的动作变化特征。通过这种方式,能够将输出结果转化为标准正态分布的采样值(例如,通过Tanh函数将输出结果扩大4.5倍),从而确保动作变化特征能够覆盖正态分布范围,提高对象动作信息预测结果的准确度。
在一些实施例中,计算机设备通过该第一子模型,对目标对象的关节旋转进行预测,得到目标对象的上半身关节旋转偏移和髋关节旋转偏移等,从而计算机设备能够结合起始帧中目标对象的上半身关节旋转和髋关节旋转,得到目标对象基于过渡动作的上半身关节旋转和髋关节旋转,本申请实施例对此不作限定。
需要说明的是,上述图4所示的第一子模型的结构仅为示意性地,在一些实施例中,第一子模型也可以是具有其他结构的模型,本申请实施例对于第一子模型的结构不作限定。
经过上述步骤302和步骤303,计算机设备通过将起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数输入第一子模型,得到了目标对象的动作变化特征和预测目标关节速度。
下面通过步骤304和步骤305,对计算机设备通过第二子模型进一步预测过渡动作的动作信息的过程进行介绍。
304、计算机设备将该起始帧中目标对象的动作信息、该目标对象的动作变化特征和预测目标关节速度输入动作预测模型的第二子模型,得到该目标对象的多个子动作信息。
在本申请实施例中,该子动作信息为基于该目标对象所处的运动阶段预测得到的动作信息。示意性地,运动阶段是指对象的动作姿态所对应的运动阶段,例如,以对象的一个步行动作为例,该步行动作所对应的运动阶段包括向前迈右腿、左腿蹬地以及右膝弯曲等。在一些实施例中,目标对象所处的运动阶段包括多个,计算机设备通过该第二子模型,基于目标对象所处的第一运动阶段预测得到该目标对象的第一子动作信息,基于目标对象所处的第二运动阶段预测得到该目标对象的第二子动作信息,等等,本申请实施例对于子动作信息的具体预测过程不作限定。
在一些实施例中,本步骤304包括下述步骤A和步骤B:
步骤A、将该起始帧中目标对象的动作信息、该目标对象的动作变化特征和预测目标关节速度,输入第二子模型,基于第二子模型中动作流形空间与对象动作信息之间的映射关系,将该动作变化特征映射为对应的动作信息,得到该目标对象的预测关节位置和预测关节速度。
其中,该动作流形空间指示对象在连续两个动作对应的帧中的动作变化。该动作变化特征也即是该动作流形空间中一个数据点,该第二子模型能够基于动作流形空间与对象动作信息之间的映射关系,将该动作变化特征映射为相应的动作信息,以得到该目标对象的预测关节位置和预测关节速度。换言之,该第二子模型能够将动作流形空间中的数据点映射为对象的动作姿态。示意性地,计算机设备基于流形学习的方式,对第二子模型进行训练,使其学习到上述动作流形空间(这一训练过程会在后续图6所示实施例中进行详细介绍,在此不再赘述)。
在一些实施例中,该第二子模型为基于CVAE的解码器构建得到的模型。应理解,在相关技术中,CVAE包括编码器和解码器,其中,编码器用于对样本X进行编码,输出正态分布的均值和方差的log值,然后从正态分布中采样得到变量z,由解码器根据控制条件和变量z进行解码,重构样本X。在本申请实施例中,计算机设备基于流形学习的方式,对CVAE进行训练,使其学习到上述动作流行空间,在训练结束后,将CVAE中的解码器作为上述第二子模型,参与到过渡帧生成过程中。通过该第二子模型,根据目标对象的动作变化特征(即变量z)和预测目标关节速度(即控制条件),来对目标对象的过渡动作进行预测。
下面基于公式(4)至公式(7),对上述动作流形空间的原理进行介绍。
示意性地,以对象的任一帧序列为例,起始帧表示为S0,目标帧表示为St,起始帧S0和目标帧St之间的过渡帧集合表示为M={S1,...,St-1},目标关节为髋关节。其中,对于该帧序列中的第i帧(i为正整数),该第i帧的动作信息表示为基于此,M的联合概率如下述公式(4)所示:
P(M)=∫∫∫P(M|S0,St,zdt)P(S0,St,zdt)dS0dStdzdt (4)
式中,zdt表示对目标帧数进行编码后得到的时间嵌入向量。基于马尔可夫假设对上述公式(4)进行分解,得到下述公式(5):
进一步地,由于不同的关节在动作生成中具有不同的重要性,髋关节速度很大程度决定了目标对象在下一帧中的位置,下半身关节对视觉质量影响较大,相比之下,上半身关节对视觉质量影响较小。因此,通过着重学习动作信息中下半身关节和髋关节对应的动作信息,对上述公式(6)进行转换,得到下述公式(7):
通过对CVAE进行训练,以使CVAE的解码器学习到上述公式(7),也即学习到上述动作流形空间。计算机设备在预测对象动作的过程中,将训练好的CVAE的解码器作为第二子模型来获取目标对象的预测关节位置和预测关节速度。
步骤B、基于该起始帧中目标对象的动作信息、该目标对象的预测关节位置、预测关节速度以及该预测目标关节速度,得到该多个子动作信息。
其中,第二子模型包括混合专家网络,计算机设备通过该混合专家网络,基于该起始帧中目标对象的动作信息、该目标对象的预测关节位置、预测关节速度、该预测目标关节速度以及目标对象所处的运动阶段,对目标对象的过渡动作进行预测,得到多个子动作信息。这一过程也可以理解为,利用混合专家网络中的多个专家网络,基于该目标对象的动作所对应的多个运动阶段(如某一专家网络专注学习左脚在前的运动阶段,又如某一专家网络专注学习右脚在后的运动阶段等,对此不作限定),对目标对象的过渡动作进行预测,从而得到多个子动作信息。通过这种方式,将连续两帧中目标对象的动作变化建模为帧之间的多模式映射,提高了动作信息预测结果的准确度。
在一些实施例中,计算机设备通过该第二子模型,对目标对象的关节旋转进行预测,得到目标对象的旋转信息,如下半身关节旋转,对此不作限定。
305、计算机设备基于多个目标权重,对该多个子动作信息进行加权求和,得到该目标对象基于该过渡动作的动作信息。
在本申请实施例中,第二子模型还包括多个门控网络,该门控网络用于输出目标权重,该目标权重指示不同运动阶段对动作预测的重要程度。计算机设备通过第二子模型中的混合专家网络,基于该多个目标权重,对该多个子动作信息进行加权求和,得到该目标对象基于该过渡动作的动作信息。示意性地,计算机设备通过该第二子模型得到的动作信息包括目标对象的下半身关节速度和下半身关节旋转。
下面参考图5,以目标关节为髋关节为例,对计算机设备通过该第二子模型获取目标对象的动作信息的过程(也即是上述步骤304和步骤305)进行介绍。
图5是本申请实施例提供的一种第二子模型的示意图。如图5所示,该第二子模型包括输入层501、门控层502、混合专家层503以及输出层504。其中,输出层501用于输入起始帧中目标对象的动作信息(如)、该目标对象的动作变化特征(即变量z)和预测髋关节速度(即)。门控层502用于输出每个专家网络对应的目标权重,例如,门控层采用Softmax激活函数,对此不限定。混合专家层503用于基于目标对象所处的运动阶段对目标对象的动作进行预测,得到多个子动作信息,并基于多个目标权重对该多个子动作信息进行加权求和,得到目标对象的动作信息。例如,每个专家网络都是三层256个单元的前馈网络,采用ELU激活函数,对此不作限定。输出层504用于输出目标对象的动作信息(如)。
需要说明的是,上述图5所示的第二子模型的结构仅为示意性地,在一些实施例中,第二子模型也可以是具有其他结构的模型,本申请实施例对于第二子模型的结构不作限定。
经过上述步骤304和步骤305,计算机设备通过将起始帧中目标对象的动作信息、目标对象的动作变化特征和预测目标关节速度输入第二子模型,得到了目标对象基于过渡动作的动作信息。
306、计算机设备基于该目标对象的动作信息,生成过渡帧。
在本申请实施例中,计算机设备生成该过渡帧的过程与上述图2所示实施例中步骤203同理,故在此不再赘述。
经过上述步骤301至步骤306,以起始帧为例,对计算机设备生成过渡帧(该起始帧的下一帧)的过程进行了介绍,在计算机设备生成该过渡帧后,按照与上述步骤301至步骤306同理的过程,将该过渡帧作为新的起始帧,重复执行上述步骤301至步骤306,直至起始帧与目标帧之间所需补充的过渡帧数目为零,得到一组自然、平滑的过渡帧序列。
综上,本申请实施例提供了一种过渡帧生成方法,在生成起始帧和目标帧之间的过渡帧时,根据起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,获取目标对象的动作变化特征和预测目标关节速度,来对目标对象在起始帧与目标帧之间的过渡动作进行预测,以生成过渡帧。在这一过程中,由于不同关节在动作生成中具有不同的重要性,而目标关节速度则很大程度决定了目标对象在下一帧中的位置,因此通过获取预测目标关节速度来进一步预测目标对象的过渡动作,能够得到更加准确的动作信息,从而生成平滑、自然的过渡帧序列,有效提高了过渡帧质量。
基于上述图2至图5所示实施例,对本申请实施例提供的过渡帧生成方法进行了介绍,下面结合图6,对上述方法中涉及的动作预测模型的训练过程进行介绍。
图6是本申请实施例提供的一种动作预测模型的训练方法的流程图。如图6所示,该方法由计算机设备执行,该计算机设备可提供为上述图1所示出的终端或服务器,示意性地,该方法包括下述步骤601至步骤604。
601、计算机设备获取样本数据集和标签信息。
在本申请实施例中,该样本数据集包括样本对象基于多个连续动作的样本帧,该标签信息指示样本帧中样本对象的样本目标关节速度。在一些实施例中,该样本数据集包括一个动作对应的多个连续的样本帧。在另一些实施例中,该样本数据集包括多个动作,每个动作包括多个连续的样本帧,对此不作限定。例如,该样本数据集包括开源数据集Lafan1数据集和/或Human3.6M数据集。
在一些实施例中,计算机设备基于样本数据集,对于不同关节采用不同的表示法。示意性地,参考图7,图7是本申请实施例提供的一种关节表示示意图。如图7中(a)图所示,Human3.6M数据集中的样本对象具有21个关节;如图7中(b)图所示,Lafan1数据集中的样本对象具有22个关节。其中,对于8个下半身关节使用基于位置的表示法,对上半身关节使用基于旋转的表示法。所有下半身关节连接的其他关节不到两个,以确定其方向。另外,使用2轴旋转矩阵表示法来表示关节旋转,包含一个3维上向量和一个前向量。为了便于表示关节位置向关节旋转的转换,除了使用一个3维向量表示关节速度外,还使用一个向量来表示关节的上方向。在一些实施例中,使用2轴旋转矩阵表示法来替代上向量,以达到表示的统一。
需要说明的是,在本申请实施例中,动作预测模型包括第一子模型和第二子模型,计算机设备在训练动作预测模型的过程中,先训练第二子模型,再基于训练后的第二子模型,对第一子模型进行训练。其中,在训练第二子模型的过程中,采用了两阶段训练方式,在第一训练阶段,基于样本数据集、该标签信息以及第一损失函数,对向量编码模型和第二子模型(也即是CVAE的编码器和解码器)的模型参数进行更新,以得到中间向量编码模型和中间第二子模型;在第二训练阶段,基于样本数据集、标签信息以及第二损失函数,对中间向量编码模型和中间第二子模型的模型参数进行更新,以得到训练后的向量编码模型和训练后的第二子模型。通过这种两阶段训练方式,能够在确保模型预测到近似动作的情况下,进一步提高动作信息预测结果的准确度。
下面基于步骤602和步骤603,对上述这种两阶段训练方式进行介绍。
602、计算机设备基于该样本数据集、该标签信息以及第一损失函数,对向量编码模型和该第二子模型的模型参数进行更新,直至满足第一训练条件,得到中间向量编码模型和中间第二子模型。
在本申请实施例中,该向量编码模型用于基于第m个样本帧和第m+1个样本帧,输出该第m+1个样本帧的预测动作变化特征,m为正整数。该第一损失函数指示该样本帧的动作重构损失和信息散度。示意性地,该向量编码模型是基于CVAE的编码器构建得到的模型。
例如,参考图8,图8是本申请实施例提供的一种向量编码模型和第二子模型的示意图,如图8所示,以目标关节为髋关节为例,向量编码模型801为基于CVAE的编码器构建得到的模型,第二子模型802为基于CVAE的解码器构建得到的模型。其中,向量编码模型801用于根据两个连续样本帧(如第m个样本帧和第m+1个样本帧,m为正整数)进行编码,得到正态分布的均值和方差,并从正态分布中采样得到变量z(也即第m+1个样本帧的预测动作变化特征);第二子模型802用于根据第m个样本帧的动作信息、变量z和第m+1个样本帧的样本髋关节速度进行解码,得到第m+1个样本帧的动作信息。
下面以训练过程中第e次(e为正整数)迭代为例,对上述训练过程进行介绍。示意性地,该训练过程包括下述步骤A至步骤C:
步骤A、基于第m个样本帧、第m+1个样本帧、该标签信息、该向量编码模型以及该第二子模型,获取该第m+1个样本帧的动作重构损失值。
其中,计算机设备基于第m+1个样本帧的预测动作信息和真实动作信息的均方误差,计算得到该第m+1个样本帧的动作重构损失值。示意性地,该动作重构损失值通过下述公式(8)计算得到:
步骤B、基于第m个样本帧、第m+1个样本帧以及该向量编码模型,获取该第m+1个样本帧的信息散度。
其中,该信息散度也即是KL散度(Kullback-Leibler散度),用于约束向量编码模型输出的第m+1个样本帧的预测动作变化特征,使其分布接近高斯分布。示意性地,该信息散度通过下述公式(9)计算得到:
Lkl=-0.5(1+σ-μ2-eσ) (9)
式中,μ和σ为均值和方差取log。
步骤C、基于该动作重构损失值和该信息散度,对该向量编码模型和该第二子模型的模型参数进行更新,直至满足该第一训练条件,得到该中间向量编码模型和该中间第二子模型。
其中,计算机设备根据第一损失函数,基于该动作重构损失值和该信息散度,计算损失值,在损失值满足第一训练条件的情况下,输出中间向量编码模型和中间第二子模型,在不满足的情况下,调整向量编码模型和第二子模型的模型参数,基于调整后的向量编码模型和第二子模型,进行第e+1次迭代,直至满足第一训练条件。在一些实施例中,该第一训练条件是指迭代次数达到目标次数或者损失值小于设定阈值等,对此不作限定。示意性地,该第一损失函数如下述公式(10)所示:
Lloss1=Lrec+Lkl (10)
式中,Lrec为动作重构损失值,Lkl为模型的信息散度。
在一些实施例中,在任一次迭代过程中,计算机设备以多个样本帧作为输入,得到该多个样本帧对应的总损失值,基于该总损失值,对向量编码模型和第二子模型的模型参数进行更新,直至满足第一训练条件,本申请实施例对此不作限定。
经过上述步骤602,实现了对向量编码模型和第二子模型的第一阶段训练,这一过程也可以理解为训练模型预测近似动作,即确保模型的预测结果与真实结果之间的相似度满足一定条件。
603、计算机设备基于该样本数据集、该标签信息以及第二损失函数,对该中间向量编码模型和该中间第二子模型的模型参数进行更新,直至满足第二训练条件,得到训练后的该向量编码模型和训练后的该第二子模型。
在本申请实施例中,该第二损失函数指示该样本帧的动作重构损失、信息散度、脚步滑动损失以及骨骼长度损失。
下面以训练过程中第f次(f为正整数)迭代为例,对上述训练过程进行介绍。示意性地,该训练过程包括下述步骤A至步骤C:
步骤A、基于第m个样本帧、第m+1个样本帧、该标签信息、该中间向量编码模型以及该中间第二子模型,获取该第m+1个样本帧的动作重构损失值、脚步滑动损失值以及骨骼长度损失值。
其中,动作重构损失值的计算方式与上述步骤602同理。
计算机设备基于第m+1个样本帧的预测相对髋关节速度和真实髋关节速度,计算得到该第m+1个样本帧的脚步滑动损失值。示意性地,该脚步滑动损失值通过下述公式(11)计算得到:
计算机设备基于第m+1个样本帧的预测关节位置和真实关节位置,计算得到该第m+1个样本帧的骨骼长度损失值。示意性地,该骨骼长度损失值通过下述公式(12)计算得到:
式中,pj,pk表示样本对象的下半身关节中任意两个相邻的关节。
步骤B、基于第m个样本帧、第m+1个样本帧以及该向量编码模型,获取该第m+1个样本帧的信息散度。
其中,计算机设备获取信息散度的过程与上述步骤602同理,故在此不再赘述。
步骤C、基于该动作重构损失值、该脚步滑动损失值、该骨骼长度损失值以及该信息散度,对该中间向量编码模型和该中间第二子模型的模型参数进行更新,直至满足该第二训练条件,得到训练后的该向量编码模型和训练后的该第二子模型。
其中,计算机设备根据第二损失函数,基于该动作重构损失值、该脚步滑动损失值、该骨骼长度损失值以及该信息散度,计算损失值,在损失值满足第二训练条件的情况下,输出训练后的向量编码模型和第二子模型,在不满足的情况下,调整中间向量编码模型和中间第二子模型的模型参数,基于调整后的中间向量编码模型和中间第二子模型,进行第f+1次迭代,直至满足第二训练条件。在一些实施例中,该第二训练条件是指迭代次数达到目标次数或者损失值小于设定阈值等,对此不作限定。示意性地,该第二损失函数如下述公式(13)所示:
Lloss2=Lrec+Lkl+Lfoot+Lbone (13)
式中,Lfoot为脚步滑动损失,Lbone为骨骼长度损失,Lrec为动作重构损失,预测姿态与实际姿态的均方误差,Lkl为信息散度。
经过上述步骤603,实现了对向量编码模型和第二子模型的第二阶段训练,由于骨骼长度损失会将关节的速度限制为零,从而生成奇怪的运动序列。因此通过第二阶段训练,能够避免这种情况,从而提高模型预测结果的准确度。
另外,在上述步骤602和步骤603所示的训练过程中,计算机设备将样本数据集分割成多个50帧的窗口,并对每个50帧的窗口平均分割为两个25帧的窗口,以25个样本帧为一组进行训练,从而提高模型的收敛效率。
在一些实施例中,在上述训练过程中,计算机设备将通过模型预测得到的m+1个样本帧的动作信息作为输入,来预测第m+2个样本帧的动作信息。在一些实施例中,计算机设备在上述训练过程中,基于样本数据集进行训练,即每次输入都是样本帧的真实动作信息。在另一些实施例中,计算机设备采用抽样策略,基于样本数据集进行训练,以增加模型的鲁棒性。例如,基于目标概率从样本数据集中进行抽样,在开始训练时,将目标概率设置为1,表示全部由样本数据集提供,在经历了y(y为正整数)个时期(Epochs)之后,基于线性函数调整该目标概率,直到目标概率为0。例如,对于Lafan1数据集,将y设置为5,对于Human3.6M数据集,将y设置为20,本申请实施例对此不作限定。
在一些实施例中,在上述训练过程中,计算机设备采用AMSgrad优化器,在第一训练阶段,将学习率初始化为1e-4,通过5万次迭代线性减小到1e-5;在第二训练阶段,将学习率初始化为0,从0开始增加,经过10个epochs后增加到1e-4,确保新添加的损失不会显著改变模型参数,之后学习率保持和第一训练阶段相同的下降比例进行减小。例如,AMSgrad优化器中β1=0.5,β2=0.9,本申请实施例对此不作限定。
在一些实施例中,在上述训练过程中,计算机设备对各项损失值的权重比例进行调整,以提高模型预测结果的准确度。例如,将各项损失值的权重比例调整为1(或者约等于1),本申请实施例对此不作限定。
经过上述步骤602和步骤603,计算机设备基于流形学习,训练得到训练后的向量编码模型和第二子模型,也即是计算机设备通过对CVAE进行训练,使其学习到动作流行空间。应理解,虽然CVAE学习到动作流形空间,但它只能执行不受控制的生成过程。因此,通过训练下述第一子模型,使其学习到如何从动作流形空间中采样帧,使得该第一子模型能够在给定第i帧时,在目标帧和目标帧数的约束下生成第i+1帧。即,该第一子模型相当于一种采样器,为了给定第i帧,该第一子模型在目标帧和目标帧数的约束下生成第i+1帧,需要该第一子模型从动作流形空间中采样动作变化特征(变量z),预测第i+1帧中对象的目标关节速度(如髋关节速度)。
下面基于步骤604,对于第一子模型的训练过程进行介绍。
604、计算机设备基于该样本数据集和训练后的第二子模型,对动作预测模型中的第一子模型进行训练,得到训练后的第一子模型。
在本申请实施例中,计算机设备将第一子模型的输出层连接到训练后的第二子模型的输入层,基于该样本数据集,对第一子模型进行训练,在这一过程中,仅更新第一子模型的模型参数,直至满足训练结束条件,得到训练后的第一子模型。
下面以训练过程中第g次(g为正整数)迭代为例,对上述训练过程进行介绍。示意性地,该训练过程包括下述步骤A和步骤B:
步骤A、基于样本起始帧、样本目标帧、样本目标帧数、该第一子模型以及训练后的第二子模型,获取样本起始帧和样本目标帧之间的样本过渡帧的关节旋转损失值、关节位置损失值以及骨骼旋转损失值。
其中,该样本目标帧数指示样本起始帧和样本目标帧之间的样本过渡帧数目。计算机设备基于样本过渡帧中样本对象下半身关节的预测关节旋转、上半身关节的预测关节旋转、下半身关节的真实关节旋转以及上半身关节的真实旋转,计算得到样本过渡帧的关节旋转损失值。例如,该关节旋转损失值定义为旋转空间的所有关节损失的L1范数,通过下述公式(14)计算得到:
在一些实施例中,该关节位置损失值基于样本过渡帧中样本对象的全部关节位置计算得到。在另一些实施例中,该关节位置损失值基于样本过渡帧中样本对象下半身关节位置计算得到,本申请实施例对此不作限定。示意性地,以该关节位置损失值基于下半身关节位置计算得到为例,计算机设备基于样本过渡帧中样本对象下半身关节的预测关节位置和真实关节位置,计算得到样本过渡帧的关节位置损失值。例如,该关节位置损失值通过下述公式(15)计算得到:
计算机设备基于FK算法,将所有关节的旋转空间转换到位置空间,通过下述公式(16),计算得到样本过渡帧的骨骼旋转损失值。
步骤B、基于该关节旋转损失值、该关节位置损失值以及该骨骼旋转损失值,对该第一子模型的模型参数进行更新,直至满足训练结束条件,得到训练后的该第一子模型。
其中,计算机设备根据第三损失函数,基于该关节旋转损失值、该关节位置损失值以及该骨骼旋转损失值,计算损失值,在损失值满足训练结束条件的情况下,输出训练后的第一子模型,在不满足的情况下,调整第一子模型的模型参数,基于调整后第一子模型,进行第g+1次迭代,直至满足训练结束条件。在一些实施例中,该训练结束条件是指迭代次数达到目标次数,如300万次,对此不作限定。示意性地,以关节位置损失值基于下半身关节位置计算得到为例,上述第三损失函数如下述公式(17)所示:
Lloss3=Lrot+Lleg+Lpos,rot (17)
式中,Lrot为关节旋转损失值,Lleg为关节位置损失值,Lpos,rot为骨骼旋转损失值。
在一些实施例中,上述第三损失函数还指示脚步滑动损失和骨骼长度损失,从而进一步提高模型预测结果的准确度。需要说明的是,脚步滑动损失和骨骼长度损失的计算方式与上述步骤603同理,故在此不再赘述。
另外,在上述步骤604所示的训练过程中,计算机设备将样本数据集分割成多个50帧的窗口,基于不同的样本目标帧数(如5帧-30帧不等),从窗口中进行采样,以便模型能够基于不同的过渡长度和目标帧进行训练,提高动作信息预测结果的准确度。
在一些实施例中,在上述训练过程中,计算机设备采用AMSgrad优化器,将学习率初始化为1e-3,对此不作限定。
通过上述步骤601至步骤604所示的训练方法,计算机设备基于流形学习,采用两阶段训练方式,对向量编码模型和动作预测模型的第二子模型进行了训练,使其学习到动作流行空间,从而在确保第二子模型能够预测到近似动作的情况下,提高后续动作信息预测结果的准确度。进一步地,基于训练后的第二子模型对动作预测模型的第一子模型进行训练,使其学习到如何从动作流形空间中采样帧,从而提高动作信息预测结果的准确性,为生成自然、平滑的过渡帧序列提供技术支撑。
下面以上述图2至图5所示的对象动作方法以及上述图6所示的训练方法为例,基于本申请实施例与相关方案的实验结果,对本申请实施例带来的有益效果进行说明。
示意性地,与本申请进行对比的相关方案包括:标准的线性插值方案、RTN(RobustMotion In-betweening,一种过渡帧生成方案)、添加了脚步滑动损失的RTN(+skatingloss,简称SL)、将本申请实施例涉及的CVAE替换为AE(自编码器)得到的方案以及将本申请实施例涉及的CVAE替换为VAE得到的方案。通过下述三个指标来体现各方案的效果:关节全局位置的L2范数、归一化功率谱相似(Normalized Power Spectrum Similarity,NPSS)以及脚步滑动指标。
本申请基于Lafan1数据集对本申请实施例提供的方案及相关方案进行了测试。示意性地,Lafan1数据集包含了5个样本对象,77个动作序列,共496672个动作帧,使用第5个样本对象作为测试集进行测试。
本申请基于不同目标帧数(也即过渡帧数目)进行了测试。示意性地,将目标帧数分别设置为5帧、15帧和30帧。表1至表3为本申请实施例提供的方案和相关方案基于上述三种指标的测试结果。其中,表1为不同目标帧数下关节全局位置的L2范数,表2为不同目标帧数下的NPSS指标,表3为不同目标帧数下的脚步滑动指标。基于下述表1至表3得出,本申请实施例提供的过渡帧生成方法能够在不同目标帧数下均生成高质量的过渡帧序列。
表1
目标帧数 | 5 | 15 | 30 |
插值 | 0.37 | 1.24 | 2.31 |
RTN | 0.22 | 0.59 | 1.16 |
RTN(+SL) | 0.28 | 0.68 | 1.27 |
AE | 0.28 | 0.63 | 1.16 |
VAE | 0.20 | 0.56 | 1.11 |
本申请 | 0.20 | 0.56 | 1.12 |
表2
表3
目标帧数 | 5 | 15 | 30 |
插值 | 1.708 | 2.081 | 2.144 |
RTN | 0.483 | 0.698 | 0.930 |
RTN(+SL) | 0.249 | 0.349 | 0.455 |
AE | 0.294 | 0.485 | 0.649 |
VAE | 0.255 | 0.353 | 0.502 |
本申请 | 0.244 | 0.343 | 0.469 |
另外,本申请基于不同类型的动作序列进行了测试。示意性地,将Lafan1数据集中的跑步动作和行走动作归类为步行序列,将舞蹈动作、搏击动作和体育动作归类为跳舞序列,将所有跳跃动作归类为跳跃序列,将所有角色避开障碍物的动作归类为障碍序列等。以目标帧数为30帧为例,各指标如下述表4至表6所示,其中,表4为不同动作序列下关节全局位置的L2范数,表5为不同动作序列下的NPSS指标,表6为不同动作序列下的脚步滑动指标。基于下述表4至表6得出,本申请实施例提供的过渡帧生成方法能够在不同动作序列下均生成高质量的过渡帧序列。
表4
动作 | 步行 | 跳舞 | 跳跃 |
插值 | 2.76 | 2.40 | 1.89 |
RTN | 0.99 | 1.51 | 1.21 |
本申请 | 0.95 | 1.48 | 1.18 |
表5
动作 | 步行 | 跳舞 | 跳跃 |
插值 | 0.6430 | 0.6405 | 0.4000 |
RTN | 0.3380 | 0.5197 | 0.3123 |
本申请 | 0.3306 | 0.5141 | 0.3205 |
表6
动作 | 步行 | 跳舞 | 跳跃 |
插值 | 2.743 | 1.844 | 1.381 |
RTN | 1.187 | 1.103 | 0.640 |
本申请 | 0.589 | 0.571 | 0.326 |
进一步地,本申请基于不同时间长度进行了测试。示意性地,通过丢弃每个样本的30帧长的序列,要求网络分别用8帧、15帧、60帧以及100帧的时间恢复出来,并衡量不同方法的脚步滑动指标。测试结果如下述表7所示。可见,在100帧时间的条件下,由于两帧间隔非常短,所以对于插值方法来说,两帧之间的脚步差值减小了100倍,所以指标上最好。对于其他所有时间长度,本申请都显著好于RTN。在时间非常短的情况下,很难生成合理的动作,但本申请仍能得到高质量的过渡帧序列。在视觉上,当起始帧和目标帧在一个步行周期的同一个运动阶段(比如都是左脚在前),RTN就有可能生成滑动的动作,而本申请能够快速生成一小步,使其行走到目标帧对应的位置。
表7
时间 | 8 | 15 | 60 | 100 |
插值 | 7.302 | 3.917 | 1.075 | 0.004 |
RTN | 4.050 | 2.087 | 0.814 | 0.522 |
本申请 | 3.363 | 1.350 | 0.438 | 0.110 |
本申请还基于不同目标位置进行了测试。示意性地,本申请基于下述两种情况进行了测试:一是将目标位置向前移动到两倍远于初始目标位置的地方,二是将目标位置向前移动到初始位置的反方向。
其中,在向前测试中,本申请倾向于生成几个大步伐或者更多的步伐来弥补多出来的距离,RTN总是生成和数据集类似的相同的步长,通过滑动来弥补距离。在向后测试中,RTN总是生成可辨认的滑动而本申请不会。这是由于本申请实施例涉及的动作流形空间能够成功捕捉数据集中速度向后的动作。
另外,本申请还测试了一个极端例子,设置目标帧在起始帧的10m远,并让样本对象以60帧的时间移动过去。在数据集中,最远距离只有5.79m,最长的时间长度只有30帧。具体测试结果如图9所示,图9是本申请实施例提供的一种过渡帧序列的示意图。如图9所示,由于距离过远,RTN(第一行)生成了滑动的动作,VAE(第二行)生成的结果混合了爬行和跑步的动作,而本申请(第三行)由于将髋关节速度作为控制条件,因此能够生成快速奔跑的过渡帧序列,过渡帧序列质量较高。
可见,本申请实施例提供的过渡帧生成方法,能够在输入条件改变,甚至变得不太合理的时候(例如非常长或者非常短的时间间隔,目标在初始的反方向或者距离初始非常远),生成合理自然的结果。而且,生成的过渡帧相较其他方法基本没有脚步滑动等错误。
综上,本申请实施例提供了一种过渡帧生成方法,在生成起始帧和目标帧之间的过渡帧时,根据起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,获取目标对象的动作变化特征和预测目标关节速度,来对目标对象在起始帧与目标帧之间的过渡动作进行预测,以生成过渡帧。在这一过程中,由于不同关节在动作生成中具有不同的重要性,而目标关节速度则很大程度决定了目标对象在下一帧中的位置,因此通过获取预测目标关节速度来进一步预测目标对象的过渡动作,能够得到更加准确的动作信息,从而生成平滑、自然的过渡帧序列,有效提高了过渡帧质量。
图10是根据本申请实施例提供的一种过渡帧生成装置的结构示意图。该装置用于执行上述过渡帧生成方法执行时的步骤,参见图10,该过渡帧生成装置包括:第一获取模块1001、第二获取模块1002以及过渡帧生成模块1003。
第一获取模块1001,用于获取起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,该目标帧数指示该起始帧与该目标帧之间的过渡帧数目;
第二获取模块1002,用于基于该起始帧中目标对象的动作信息、该目标帧中目标对象的动作信息以及该目标帧数,获取该目标对象的动作变化特征和预测目标关节速度,该动作变化特征指示该目标对象在该起始帧与该目标帧之间的过渡动作相对于该起始帧中动作的变化;
过渡帧生成模块1003,用于基于该起始帧中目标对象的动作信息、该目标对象的动作变化特征和预测目标关节速度,对该过渡动作进行预测,以生成过渡帧。
在一些实施例中,该第二获取模块1002,用于:
将该起始帧中目标对象的动作信息、该目标帧中目标对象的动作信息以及该目标帧数,输入动作预测模型的第一子模型,得到该起始帧和该目标帧之间的偏移量嵌入向量、该起始帧的嵌入向量以及该目标帧的嵌入向量;
基于该偏移量嵌入向量、该起始帧的嵌入向量、该目标帧的嵌入向量以及该目标帧数,对该目标对象的过渡动作相对于该起始帧中动作的变化和该目标对象的髋关节速度进行预测,得到该动作变化特征和该预测目标关节速度。
在一些实施例中,该过渡帧生成模块1003,用于:
将该起始帧中目标对象的动作信息、该目标对象的动作变化特征和预测目标关节速度,输入动作预测模型的第二子模型,得到该目标对象的多个子动作信息,该子动作信息为基于该目标对象所处的运动阶段预测得到的动作信息;
基于多个目标权重,对该多个子动作信息进行加权求和,得到该目标对象基于该过渡动作的动作信息,以生成该过渡帧。
在一些实施例中,该过渡帧生成模块1003,用于:
将该起始帧中目标对象的动作信息、该目标对象的动作变化特征和预测目标关节速度,输入该第二子模型,基于该第二子模型中动作流形空间与对象动作信息之间的映射关系,将该动作变化特征映射为对应的动作信息,得到该目标对象的预测关节位置和预测关节速度,该动作流形空间指示对象在连续两个动作对应的帧中的动作变化;
基于该起始帧中目标对象的动作信息、该目标对象的预测关节位置、预测关节速度以及该预测目标关节速度,得到该多个子动作信息。
在一些实施例中,该装置还包括:
第一训练模块,用于基于样本数据集和标签信息,对动作预测模型中的第二子模型进行训练,得到训练后的该第二子模型,该样本数据集包括样本对象基于多个连续动作的样本帧,该标签信息指示样本帧中样本对象的样本目标关节速度;
第二训练模块,用于基于该样本数据集和训练后的该第二子模型,对该动作预测模型中的第一子模型进行训练,得到训练后的该第一子模型。
在一些实施例中,该第一训练模块,包括:
第一训练单元,用于基于该样本数据集、该标签信息以及第一损失函数,对向量编码模型和该第二子模型的模型参数进行更新,直至满足第一训练条件,得到中间向量编码模型和中间第二子模型,该向量编码模型用于基于第m个样本帧和第m+1个样本帧,输出该第m+1个样本帧的预测动作变化特征,m为正整数;
第二训练单元,用于基于该样本数据集、该标签信息以及第二损失函数,对该中间向量编码模型和该中间第二子模型的模型参数进行更新,直至满足第二训练条件,得到训练后的该向量编码模型和训练后的该第二子模型;
其中,该第一损失函数指示样本帧的动作重构损失和信息散度,该第二损失函数指示样本帧的动作重构损失、信息散度、脚步滑动损失以及骨骼长度损失。
在一些实施例中,该第一训练单元,用于:
基于第m个样本帧、第m+1个样本帧、该标签信息、该向量编码模型以及该第二子模型,获取该第m+1个样本帧的动作重构损失值;
基于第m个样本帧、第m+1个样本帧以及该向量编码模型,获取该第m+1个样本帧的信息散度;
基于该动作重构损失值和该信息散度,对该向量编码模型和该第二子模型的模型参数进行更新,直至满足该第一训练条件,得到该中间向量编码模型和该中间第二子模型。
在一些实施例中,该第二训练单元,用于:
基于第m个样本帧、第m+1个样本帧、该标签信息、该中间向量编码模型以及该中间第二子模型,获取该第m+1个样本帧的动作重构损失值、脚步滑动损失值以及骨骼长度损失值;
基于第m个样本帧、第m+1个样本帧以及该向量编码模型,获取该第m+1个样本帧的信息散度;
基于该动作重构损失值、该脚步滑动损失值、该骨骼长度损失值以及该信息散度,对该中间向量编码模型和该中间第二子模型的模型参数进行更新,直至满足该第二训练条件,得到训练后的该向量编码模型和训练后的该第二子模型。
在一些实施例中,该第二训练模块,用于:
基于样本起始帧、样本目标帧、样本目标帧数、该第一子模型以及训练后的该第二子模型,获取样本起始帧和样本目标帧之间的样本过渡帧的关节旋转损失值、关节位置损失值以及骨骼旋转损失值,该样本目标帧数指示该样本起始帧和该样本目标帧之间的样本过渡帧数目;
基于该关节旋转损失值、该关节位置损失值以及该骨骼旋转损失值,对该第一子模型的模型参数进行更新,直至满足训练结束条件,得到训练后的该第一子模型。
在本申请实施例中,提供了一种过渡帧生成装置,在生成起始帧和目标帧之间的过渡帧时,根据起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,获取目标对象的动作变化特征和预测目标关节速度,来对目标对象在起始帧与目标帧之间的过渡动作进行预测,以生成过渡帧。在这一过程中,由于不同关节在动作生成中具有不同的重要性,而目标关节速度则很大程度决定了目标对象在下一帧中的位置,因此通过获取预测目标关节速度来进一步预测目标对象的过渡动作,能够得到更加准确的动作信息,从而生成平滑、自然的过渡帧序列,有效提高了过渡帧质量。
需要说明的是:上述实施例提供的过渡帧生成装置在生成过渡帧时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的过渡帧生成装置与过渡帧生成方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在示例性实施例中,还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器用于存储至少一条计算机程序,该至少一段计算机程序由该处理器加载并执行以实现本申请实施例中的过渡帧生成方法。
以计算机设备为终端为例,图11是根据本申请实施例提供的一种终端的结构示意图。该终端1100可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1100包括有:处理器1101和存储器1102。
处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器1101所执行以实现本申请中方法实施例提供的过渡帧生成方法。
在一些实施例中,终端1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:射频电路1104、显示屏1105、摄像头组件1106、音频电路1107、定位组件1108和电源1109中的至少一种。
外围设备接口1103可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其他实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1104用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1104包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1104还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1105用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置在终端1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在终端1100的不同表面或呈折叠设计;在另一些实施例中,显示屏1105可以是柔性显示屏,设置在终端1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。
摄像头组件1106用于采集图像或视频。可选地,摄像头组件1106包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1107还可以包括耳机插孔。
定位组件1108用于定位终端1100的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。
电源1109用于为终端1100中的各个组件进行供电。电源1109可以是交流电、直流电、一次性电池或可充电电池。当电源1109包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1100还包括有一个或多个传感器1110。该一个或多个传感器1110包括但不限于:加速度传感器1111、陀螺仪传感器1112、压力传感器1113、光学传感器1114以及接近传感器1115。
加速度传感器1111可以检测以终端1100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1111可以用于检测重力加速度在三个坐标轴上的分量。处理器1101可以根据加速度传感器1111采集的重力加速度信号,控制显示屏1105以横向视图或纵向视图进行用户界面的显示。加速度传感器1111还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1112可以检测终端1100的机体方向及转动角度,陀螺仪传感器1112可以与加速度传感器1111协同采集用户对终端1100的3D动作。处理器1101根据陀螺仪传感器1112采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1113可以设置在终端1100的侧边框和/或显示屏1105的下层。当压力传感器1113设置在终端1100的侧边框时,可以检测用户对终端1100的握持信号,由处理器1101根据压力传感器1113采集的握持信号进行左右手识别或快捷操作。当压力传感器1113设置在显示屏1105的下层时,由处理器1101根据用户对显示屏1105的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器1114用于采集环境光强度。在一个实施例中,处理器1101可以根据光学传感器1114采集的环境光强度,控制显示屏1105的显示亮度。具体地,当环境光强度较高时,调高显示屏1105的显示亮度;当环境光强度较低时,调低显示屏1105的显示亮度。在另一个实施例中,处理器1101还可以根据光学传感器1114采集的环境光强度,动态调整摄像头组件1106的拍摄参数。
接近传感器1115,也称距离传感器,通常设置在终端1100的前面板。接近传感器1115用于采集用户与终端1100的正面之间的距离。在一个实施例中,当接近传感器1115检测到用户与终端1100的正面之间的距离逐渐变小时,由处理器1101控制显示屏1105从亮屏状态切换为息屏状态;当接近传感器1115检测到用户与终端1100的正面之间的距离逐渐变大时,由处理器1101控制显示屏1105从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图11中示出的结构并不构成对终端1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
以计算机设备为服务器为例,图12是根据本申请实施例提供的一种服务器的结构示意图。该服务器1200可因配置或性能不同而产生比较大的差异,能够包括一个或一个以上处理器(Central Processing Units,CPU)1201和一个或一个以上的存储器1202,其中,该存储器1202中存储有至少一条计算机程序,该至少一条计算机程序由处理器1201加载并执行以实现上述各个方法实施例提供的过渡帧生成方法。当然,该服务器还能够具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还能够包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质应用于计算机设备,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现上述实施例中的过渡帧生成方法。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,使得该计算机设备执行以实现上述实施例中的过渡帧生成方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种过渡帧生成方法,其特征在于,所述方法包括:
获取起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,所述目标帧数指示所述起始帧与所述目标帧之间的过渡帧数目;
基于所述起始帧中目标对象的动作信息、所述目标帧中目标对象的动作信息以及所述目标帧数,获取所述目标对象的动作变化特征和预测目标关节速度,所述动作变化特征指示所述目标对象在所述起始帧与所述目标帧之间的过渡动作相对于所述起始帧中动作的变化;
基于所述起始帧中目标对象的动作信息、所述目标对象的动作变化特征和预测目标关节速度,对所述过渡动作进行预测,以生成过渡帧。
2.根据权利要求1所述的方法,其特征在于,所述基于所述起始帧中目标对象的动作信息、所述目标帧中目标对象的动作信息以及所述目标帧数,获取所述目标对象的动作变化特征和预测目标关节速度,包括:
将所述起始帧中目标对象的动作信息、所述目标帧中目标对象的动作信息以及所述目标帧数,输入动作预测模型的第一子模型,得到所述起始帧和所述目标帧之间的偏移量嵌入向量、所述起始帧的嵌入向量以及所述目标帧的嵌入向量;
基于所述偏移量嵌入向量、所述起始帧的嵌入向量、所述目标帧的嵌入向量以及所述目标帧数,对所述目标对象的过渡动作相对于所述起始帧中动作的变化和所述目标对象的髋关节速度进行预测,得到所述动作变化特征和所述预测目标关节速度。
3.根据权利要求1所述的方法,其特征在于,所述基于所述起始帧中目标对象的动作信息、所述目标对象的动作变化特征和预测目标关节速度,对所述过渡动作进行预测,以生成过渡帧,包括:
将所述起始帧中目标对象的动作信息、所述目标对象的动作变化特征和预测目标关节速度,输入动作预测模型的第二子模型,得到所述目标对象的多个子动作信息,所述子动作信息为基于所述目标对象所处的运动阶段预测得到的动作信息;
基于多个目标权重,对所述多个子动作信息进行加权求和,得到所述目标对象基于所述过渡动作的动作信息,以生成所述过渡帧。
4.根据权利要求3所述的方法,其特征在于,所述将所述起始帧中目标对象的动作信息、所述目标对象的动作变化特征和预测目标关节速度,输入动作预测模型的第二子模型,得到所述目标对象的多个子动作信息,包括:
将所述起始帧中目标对象的动作信息、所述目标对象的动作变化特征和预测目标关节速度,输入所述第二子模型,基于所述第二子模型中动作流形空间与对象动作信息之间的映射关系,将所述动作变化特征映射为对应的动作信息,得到所述目标对象的预测关节位置和预测关节速度,所述动作流形空间指示对象在连续两个动作对应的帧中的动作变化;
基于所述起始帧中目标对象的动作信息、所述目标对象的预测关节位置、预测关节速度以及所述预测目标关节速度,得到所述多个子动作信息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于样本数据集和标签信息,对动作预测模型中的第二子模型进行训练,得到训练后的所述第二子模型,所述样本数据集包括样本对象基于多个连续动作的样本帧,所述标签信息指示样本帧中样本对象的样本目标关节速度;
基于所述样本数据集和训练后的所述第二子模型,对所述动作预测模型中的第一子模型进行训练,得到训练后的所述第一子模型。
6.根据权利要求5所述的方法,其特征在于,所述基于样本数据集和标签信息,对动作预测模型中的第二子模型进行训练,得到训练后的所述第二子模型,包括:
基于所述样本数据集、所述标签信息以及第一损失函数,对向量编码模型和所述第二子模型的模型参数进行更新,直至满足第一训练条件,得到中间向量编码模型和中间第二子模型,所述向量编码模型用于基于第m个样本帧和第m+1个样本帧,输出所述第m+1个样本帧的预测动作变化特征,m为正整数;
基于所述样本数据集、所述标签信息以及第二损失函数,对所述中间向量编码模型和所述中间第二子模型的模型参数进行更新,直至满足第二训练条件,得到训练后的所述向量编码模型和训练后的所述第二子模型;
其中,所述第一损失函数指示样本帧的动作重构损失和信息散度,所述第二损失函数指示样本帧的动作重构损失、信息散度、脚步滑动损失以及骨骼长度损失。
7.根据权利要求6所述的方法,其特征在于,所述基于所述样本数据集、所述标签信息以及第一损失函数,对向量编码模型和所述第二子模型的模型参数进行更新,直至满足第一训练条件,得到中间向量编码模型和中间第二子模型,包括:
基于第m个样本帧、第m+1个样本帧、所述标签信息、所述向量编码模型以及所述第二子模型,获取所述第m+1个样本帧的动作重构损失值;
基于第m个样本帧、第m+1个样本帧以及所述向量编码模型,获取所述第m+1个样本帧的信息散度;
基于所述动作重构损失值和所述信息散度,对所述向量编码模型和所述第二子模型的模型参数进行更新,直至满足所述第一训练条件,得到所述中间向量编码模型和所述中间第二子模型。
8.根据权利要求6所述的方法,其特征在于,所述基于所述样本数据集、所述标签信息以及第二损失函数,对所述中间向量编码模型和所述中间第二子模型的模型参数进行更新,直至满足第二训练条件,得到训练后的所述向量编码模型和训练后的所述第二子模型,包括:
基于第m个样本帧、第m+1个样本帧、所述标签信息、所述中间向量编码模型以及所述中间第二子模型,获取所述第m+1个样本帧的动作重构损失值、脚步滑动损失值以及骨骼长度损失值;
基于第m个样本帧、第m+1个样本帧以及所述向量编码模型,获取所述第m+1个样本帧的信息散度;
基于所述动作重构损失值、所述脚步滑动损失值、所述骨骼长度损失值以及所述信息散度,对所述中间向量编码模型和所述中间第二子模型的模型参数进行更新,直至满足所述第二训练条件,得到训练后的所述向量编码模型和训练后的所述第二子模型。
9.根据权利要求5所述的方法,其特征在于,所述基于所述样本数据集和训练后的所述第二子模型,对所述动作预测模型中的第一子模型进行训练,得到训练后的所述第一子模型,包括:
基于样本起始帧、样本目标帧、样本目标帧数、所述第一子模型以及训练后的所述第二子模型,获取样本起始帧和样本目标帧之间的样本过渡帧的关节旋转损失值、关节位置损失值以及骨骼旋转损失值,所述样本目标帧数指示所述样本起始帧和所述样本目标帧之间的样本过渡帧数目;
基于所述关节旋转损失值、所述关节位置损失值以及所述骨骼旋转损失值,对所述第一子模型的模型参数进行更新,直至满足训练结束条件,得到训练后的所述第一子模型。
10.一种过渡帧生成装置,其特征在于,所述装置包括:
第一获取模块,用于获取起始帧中目标对象的动作信息、目标帧中目标对象的动作信息以及目标帧数,所述目标帧数指示所述起始帧与所述目标帧之间的过渡帧数目;
第二获取模块,用于基于所述起始帧中目标对象的动作信息、所述目标帧中目标对象的动作信息以及所述目标帧数,获取所述目标对象的动作变化特征和预测目标关节速度,所述动作变化特征指示所述目标对象在所述起始帧与所述目标帧之间的过渡动作相对于所述起始帧中动作的变化;
过渡帧生成模块,用于基于所述起始帧中目标对象的动作信息、所述目标对象的动作变化特征和预测目标关节速度,对所述过渡动作进行预测,以生成过渡帧。
11.根据权利要求10所述的装置,其特征在于,所述第二获取模块,用于:
将所述起始帧中目标对象的动作信息、所述目标帧中目标对象的动作信息以及所述目标帧数,输入动作预测模型的第一子模型,得到所述起始帧和所述目标帧之间的偏移量嵌入向量、所述起始帧的嵌入向量以及所述目标帧的嵌入向量;
基于所述偏移量嵌入向量、所述起始帧的嵌入向量、所述目标帧的嵌入向量以及所述目标帧数,对所述目标对象的过渡动作相对于所述起始帧中动作的变化和所述目标对象的髋关节速度进行预测,得到所述动作变化特征和所述预测目标关节速度。
12.根据权利要求10所述的装置,其特征在于,所述过渡帧生成模块,用于:
将所述起始帧中目标对象的动作信息、所述目标对象的动作变化特征和预测目标关节速度,输入动作预测模型的第二子模型,得到所述目标对象的多个子动作信息,所述子动作信息为基于所述目标对象所处的运动阶段预测得到的动作信息;
基于多个目标权重,对所述多个子动作信息进行加权求和,得到所述目标对象基于所述过渡动作的动作信息,以生成所述过渡帧。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行如权利要求1至权利要求9中任一项所述的过渡帧生成方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现如权利要求1至权利要求9中任一项所述的过渡帧生成方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现如权利要求1至权利要求9中任一项所述的过渡帧生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210461991.8A CN115131475A (zh) | 2022-04-28 | 2022-04-28 | 过渡帧生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210461991.8A CN115131475A (zh) | 2022-04-28 | 2022-04-28 | 过渡帧生成方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115131475A true CN115131475A (zh) | 2022-09-30 |
Family
ID=83376708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210461991.8A Pending CN115131475A (zh) | 2022-04-28 | 2022-04-28 | 过渡帧生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115131475A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115578494A (zh) * | 2022-12-08 | 2023-01-06 | 腾讯科技(深圳)有限公司 | 中间帧的生成方法、装置、设备及存储介质 |
CN116030168A (zh) * | 2023-03-29 | 2023-04-28 | 腾讯科技(深圳)有限公司 | 中间帧的生成方法、装置、设备及存储介质 |
CN118678102A (zh) * | 2024-08-22 | 2024-09-20 | 宁波康达凯能医疗科技有限公司 | 基于变分自动编码器的帧间错误隐藏方法、装置及介质 |
-
2022
- 2022-04-28 CN CN202210461991.8A patent/CN115131475A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115578494A (zh) * | 2022-12-08 | 2023-01-06 | 腾讯科技(深圳)有限公司 | 中间帧的生成方法、装置、设备及存储介质 |
CN115578494B (zh) * | 2022-12-08 | 2023-04-18 | 腾讯科技(深圳)有限公司 | 中间帧的生成方法、装置、设备及存储介质 |
CN116030168A (zh) * | 2023-03-29 | 2023-04-28 | 腾讯科技(深圳)有限公司 | 中间帧的生成方法、装置、设备及存储介质 |
CN118678102A (zh) * | 2024-08-22 | 2024-09-20 | 宁波康达凯能医疗科技有限公司 | 基于变分自动编码器的帧间错误隐藏方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111738220B (zh) | 三维人体姿态估计方法、装置、设备及介质 | |
CN109543824A (zh) | 一种序列模型的处理方法和装置 | |
CN115131475A (zh) | 过渡帧生成方法、装置、设备及存储介质 | |
CN111680123B (zh) | 对话模型的训练方法、装置、计算机设备及存储介质 | |
CN111860485B (zh) | 图像识别模型的训练方法、图像的识别方法、装置、设备 | |
CN110147533B (zh) | 编码方法、装置、设备及存储介质 | |
CN110147532B (zh) | 编码方法、装置、设备及存储介质 | |
US11335023B2 (en) | Human pose estimation using neural networks and kinematic structure | |
CN113763532B (zh) | 基于三维虚拟对象的人机交互方法、装置、设备及介质 | |
CN112115900B (zh) | 图像处理方法、装置、设备及存储介质 | |
CN113750523A (zh) | 三维虚拟对象的动作生成方法、装置、设备及存储介质 | |
CN111589138B (zh) | 动作预测方法、装置、设备及存储介质 | |
CN113705302A (zh) | 图像生成模型的训练方法、装置、计算机设备及存储介质 | |
CN114281956A (zh) | 文本处理方法、装置、计算机设备及存储介质 | |
CN111753498A (zh) | 文本处理方法、装置、设备及存储介质 | |
CN116863042A (zh) | 虚拟对象的动作生成方法及动作生成模型的训练方法 | |
CN115223248A (zh) | 手部姿态识别方法、手部姿态识别模型的训练方法及装置 | |
CN113763931B (zh) | 波形特征提取方法、装置、计算机设备及存储介质 | |
CN114328815A (zh) | 文本映射模型的处理方法、装置、计算机设备及存储介质 | |
Hieu et al. | Reconstructing Human Pose from Inertial Measurements: A Generative Model-based Compressive Sensing Approach | |
CN115578494B (zh) | 中间帧的生成方法、装置、设备及存储介质 | |
CN110990549A (zh) | 获取答案的方法、装置、电子设备及存储介质 | |
CN116993949A (zh) | 虚拟环境的显示方法、装置、可穿戴电子设备及存储介质 | |
CN111310701B (zh) | 手势识别方法、装置、设备及存储介质 | |
CN114511082A (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 |