CN116664733A - 虚拟服装预测方法、装置、设备及计算机可读存储介质 - Google Patents
虚拟服装预测方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116664733A CN116664733A CN202310936331.5A CN202310936331A CN116664733A CN 116664733 A CN116664733 A CN 116664733A CN 202310936331 A CN202310936331 A CN 202310936331A CN 116664733 A CN116664733 A CN 116664733A
- Authority
- CN
- China
- Prior art keywords
- vertex
- training
- virtual
- garment
- clothing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 111
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 238000012549 training Methods 0.000 claims abstract description 331
- 230000009471 action Effects 0.000 claims abstract description 70
- 230000033001 locomotion Effects 0.000 claims abstract description 66
- 239000004744 fabric Substances 0.000 claims abstract description 62
- 238000004364 calculation method Methods 0.000 claims abstract description 50
- 238000009877 rendering Methods 0.000 claims abstract description 46
- 238000006073 displacement reaction Methods 0.000 claims description 67
- 210000000988 bone and bone Anatomy 0.000 claims description 47
- 239000002775 capsule Substances 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 23
- 238000012937 correction Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 abstract description 31
- 230000008569 process Effects 0.000 description 30
- 238000013136 deep learning model Methods 0.000 description 25
- 238000005516 engineering process Methods 0.000 description 23
- 239000010410 layer Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 19
- 238000013473 artificial intelligence Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- 238000013135 deep learning Methods 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 8
- 238000004088 simulation Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 239000000463 material Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 125000004122 cyclic group Chemical group 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 238000000354 decomposition reaction Methods 0.000 description 4
- 230000000149 penetrating effect Effects 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000009499 grossing Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000011478 gradient descent method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/822—Strategy games; Role-playing games
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/02—Non-photorealistic rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/807—Role playing or strategy games
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种虚拟服装预测方法、装置、设备及计算机可读存储介质;方法包括:获取虚拟对象的动作数据和针对服装预测模型的配置信息;获取配置信息对应的训练好的服装预测模型,训练好的服装预测模型是利用虚拟对象的训练动作数据和虚拟服装的训练点云数据训练得到的,训练动作数据和训练点云数据是通过对训练动画数据进行离线布料解算得到的;利用训练好的服装预测模型对动作数据进行预测处理,得到虚拟服装中各个服装顶点的顶点位置信息;基于虚拟服装中各个服装顶点的顶点位置信息和虚拟服装的属性信息,渲染出虚拟对象在执行动作数据时穿着的虚拟服装。通过本申请,能够提高服装运动姿态的预测效果。
Description
技术领域
本申请涉及数据处理技术,尤其涉及一种虚拟服装预测方法、装置、设备及计算机可读存储介质。
背景技术
布料解算是指在制作好虚拟对象模型以后,通过自动计算为虚拟对象添加服装布料动画。布料解算可以应用于虚拟数字人直播、离线视频生成制作、游戏等多种场景。目前布料解算的主流方案,分为离线布料解算和实时布料解算两大类,离线布料解算一般是在houdini,MD软件中进行,算力占用高,人工成本高,耗时长,解算时间随服装的复杂程度增加,但解算精细,效果较好。实时布料解算算法一般只能解算出简单的服装模型,在解算复杂的服装模型时,解算效果差。
发明内容
本申请实施例提供一种虚拟服装预测方法、装置、设备及计算机可读存储介质,能够提高服装运动姿态的预测效果。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种虚拟服装预测方法,所述方法包括:
获取虚拟对象的动作数据和针对服装预测模型的配置信息;
获取所述配置信息对应的训练好的服装预测模型,所述训练好的服装预测模型是利用虚拟对象的训练动作数据和虚拟服装的训练点云数据训练得到的,所述训练动作数据和训练点云数据是通过对训练动画数据进行离线布料解算得到的;
利用所述训练好的服装预测模型对所述动作数据进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息;
基于所述虚拟服装中各个服装顶点的顶点位置信息和所述虚拟服装的属性信息,渲染出所述虚拟对象在执行所述动作数据时穿着的虚拟服装。
本申请实施例提供一种虚拟服装预测装置,包括:
第一获取模块,用于获取虚拟对象的动作数据和针对服装预测模型的配置信息;
第二获取模块,用于获取所述配置信息对应的训练好的服装预测模型,所述训练好的服装预测模型是利用虚拟对象的训练动作数据和虚拟服装的训练点云数据训练得到的,所述训练动作数据和训练点云数据是通过对训练动画数据进行离线布料解算得到的;
预测模块,用于利用所述训练好的服装预测模型对所述动作数据进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息;
渲染模块,用于基于所述虚拟服装中各个服装顶点的顶点位置信息和所述虚拟服装的属性信息,渲染出所述虚拟对象在执行所述动作数据时穿着的虚拟服装。
本申请实施例提供一种电子设备,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本申请实施例提供的方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机程序或计算机可执行指令,用于被处理器执行时实现本申请实施例提供的虚拟服装预测方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,述计算机程序或计算机可执行指令被处理器执行时,实现本申请实施例提供的虚拟服装预测方法。
本申请实施例具有以下有益效果:
在获取到虚拟对象的动作数据和针对服装预测模型的配置信息之后,首先获取所述配置信息对应的训练好的服装预测模型,其中,训练好的服装预测模型是利用虚拟对象的训练动作数据和虚拟服装的训练点云数据训练得到的,所述训练动作数据和训练点云数据是通过对训练动画数据进行离线布料解算得到的,由于训练动作数据和训练点云数据是通过离线布料解算得到的,因此在利用训练好的服装预测模型对所述动作数据进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息,并基于虚拟服装中各个服装顶点的顶点位置信息和所述虚拟服装的属性信息,渲染出所述虚拟服装时,能够使得虚拟服装的运动能够符合虚拟对象的动作,提高虚拟服装的运动姿态的预测效果以及动画播放的真实性。
附图说明
图1本申请实施例提供的直播系统100的网络架构示意图;
图2是本申请实施例提供的主播终端400的结构示意图;
图3是本申请实施例提供的虚拟服装预测方法的一种实现流程示意图;
图4是本申请实施例提供的确定虚拟服装中各个服装顶点的顶点位置信息的实现流程示意图;
图5是本申请实施例提供的利用训练好的服装预测模型确定虚拟服装中各个服装顶点的顶点位置信息的实现流程示意图;
图6是本申请实施例提供的渲染虚拟服装的实现流程示意图;
图7是本申请实施例提供的对虚拟服装的服装顶点进行碰撞修正的实现流程示意图;
图8是本申请实施例提供的确定执行虚拟服装预测的处理器的实现流程示意图;
图9是本申请实施例提供的训练服装预测模型的一种实现流程示意图;
图10是本申请实施例提供的训练服装预测模型的另一种实现流程示意图;
图11是本申请实施例提供的训练低频预测模块的实现流程示意图;
图12是本申请实施例提供的训练高频预测模块的实现流程示意图;
图13A为单件裙子通过离线解算渲染出的某一帧效果示意图;
图13B为利用本申请实施例提供的训练好的服装预测模型对裙子进行实时预测的效果图;
图13C是利用本申请实施例提供的训练好的服装预测模型在UE引擎中进行实时预测一个效果图;
图13D是利用本申请实施例提供的训练好的服装预测模型在UE引擎中进行实时预测的另一个效果图;
图14是本申请实施例提供的虚拟服装的渲染方法的另一种实现流程示意图;
图15为一段旋转动画旋转完毕后的200帧阶段位置的服装渲染效果图;
图16是本申请实施例提供的UE引擎的架构图;
图17是本申请实施例提供的在引擎端进行布料模拟的实现流程示意图;
图18是本申请实施例提供的布料渲染流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解, “一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本申请实施例所使用的所有的技术和科学术语与所属技术领域的技术人员通常理解的含义相同。本申请实施例中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)UE引擎(Unreal Engine):由Epic Games开发的商业游戏引擎,该引擎被应用在开发潜行类游戏,角色扮演游戏等多种不同类型的游戏。除了开发游戏,也被用于电脑虚拟制片,虚拟人开发等场景中。
2)布料模拟:一种用于对于布料模型进行物理模拟的方法,在本申请实施例中指模拟布料随人物运动而运动的各种状态。
3)深度学习(Deep Learning,DL),用于教计算机以一种类人脑神经元传导的方式处理数据。
4)深度学习模型,使用深度学习方法来建立的模型,可以处理不同的数据,并用于识别图片,文本,声音或者其他复杂的模式去完成指定的任务。
5)开放神经网络交换(Open Neural Network Exchange,ONNX),微软和Facebook提出的用来表示深度学习模型的开放格式,它定义了一组和环境平台均无关的标准格式,来增强各种AI模型的可交互性。
6)Eigen,是语言里的开源模板库,支持线性代数运算,矩阵及矢量运算,数值分析及相关算法。
7)统一计算设备架构(Compute Unified Device Architecture,CUDA),是一个并行计算的编程接口,它允许程序使用某些类型的图形处理单元(GPU,Graphics ProcessingUnit)来进行通用的处理。
8)Houdini,是一款用于3d动画的软件,由加拿大Side Effects Software Inc.公司开发。
9)动画重定向,一种允许在拥有类似的骨架资源的不同角色之间进行动画复用的方法。使得同一段动画数据可以驱动不同的角色运动。
10)循环神经网络,是一种使用序列数据或者时序数据的深度学习神经网络,常用于顺序及时间问题。
11)门控循环单元(Gated Recurrent Unit,GRU),是循环神经网络的一种,是一种结构简单训练简单的循环单元。
12)隐层,把输入数据的特征抽象到另外一个维度空间来展现更加抽象化的特征。
13)时间性抗锯齿(Temporal Anti-Aliasing,TAA),是一种抗锯齿方法,也称为一种抗空域走样的技术,是一种常用的图像增强算法。
14)时间超分辨率(Temporal Super Resolution,TSR),是一种UE5上发布的抗锯齿技术,将低分辨率帧放大至正常尺寸显示的技术,实时开销和带宽开销较高。
为了更好地理解本申请实施例提供的虚拟服装预测方法,首先对相关技术中的用于进行虚拟服装预测的布料解算算法及存在的缺点进行说明。
目前用于虚拟服装预测的布料解算方案,分为离线布料解算和实时布料解算两大类,离线布料解算一般是在houdini,MD软件中进行,对处理器的占用率高,人工成本高,耗时长,解算时间随服装的复杂程度增加,但解算精细,效果较好。
现有的实时布料解算的方法大都基于物理进行解算,解算数据量大,消耗的硬件资源多,实时布料解算目前主要有以下几种:
1、UE自带的布料解算系统,它属于物理解算方法。
2、Udrapper布料解算,它属于物理解算,采用GPU加速,效果介于离线与实时解算之间。
3、UE ML Deformed,是UE自带的基于深度学习的解算方法,常用来模拟肌肉,也可应用于服装,它仅需1000帧离线解算数据进行训练。
相关技术中的几种实时布料解算方法存在的缺点如下:
1、UE自带的布料解算系统,只能解算比较简单的效果与比较简单的模型,如:飘带,旗帜,复杂模型(包括单层复杂模型及多层模型)布料细节不足,直播中效果不稳定。
2、Udrapper布料解算,针对简单的服装模型可以实现实时解算,无法支持通用模型,需要使用Udrapepr专属模型格式,且对服装模型精度有限制。复杂模型(包括单层复杂模型及多层模型)可能存在穿模问题,不能实时解算。
3、UE ML Deformed一般只针对紧身布料产生褶皱,用来细化解算效果,但无法用于宽松布料,没有惯性动态。
4、基于物理的解算方案,当服装越复杂,对算力的占用将急剧上升,从而导致服装渲染效率低下。
基于此,本申请实施例提供一种虚拟服装预测方法、装置、设备、计算机可读存储介质和计算机程序产品,能够实现列存储的存储优化,提高查询效率,下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为笔记本电脑、平板电脑,台式计算机、机顶盒、移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)、智能手机、智能音箱、智能手表、智能电视、车载终端等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为服务器时示例性应用。
参见图1,图1是本申请实施例提供的直播系统100的网络架构示意图,如图1所示,该网络架构包括服务器200、网络300、主播终端400和观众终端500,其中,主播终端400和观众终端500分别通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
主播终端400可以通过直播App或者即时通讯App、购物App等预约直播,并且在完成直播预约后直播服务器会为该直播分配直播标识以及该直播标识对应的推流地址、拉流地址。主播终端400在直播开始之前可以获取用于进行虚拟数字人直播的配置信息,其中,配置信息包括本次直播的虚拟数字人标识,在直播过程中虚拟数字人所穿着服装的服装标识。主播终端400基于服装标识确定用于虚拟服装预测的训练好的服装预测模型。在直播开始时,主播终端400中的游戏引擎接收动作捕捉设备实时采集到的直播动画数据,然后在游戏引擎中调用动画蓝图获取动作数据,利用训练好的服装预测模型以及动作数据、虚拟服装的属性信息等,确定出虚拟数字人在执行动作数据时的虚拟服装的运动姿态。其中训练好的服装预测模型是利用虚拟对象的训练动作数据和虚拟服装的训练点云数据训练得到的,所述训练动作数据和训练点云数据是通过对训练动画数据进行离线布料解算得到的,由于训练动作数据和训练点云数据是通过离线布料解算得到的,从而能够保证利用训练好的服装预测模型预测出的各个服装顶点的位置信息的准确性,从而提高虚拟数字人直播的真实性,主播终端400将虚拟对象穿着虚拟服装执行动作的直播数据流发送至服务器200,服务器200通过网络300将直播数据发送至观众终端500,以在观众终端500的显示屏上呈现直播数据。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。主播终端400、观众终端500可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图2,图2是本申请实施例提供的主播终端400的结构示意图,图2所示的主播终端400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。主播终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(Digital Signal Processor,DSP),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器 410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(Random Access Memory,RAM)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(Universal Serial Bus,USB)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的虚拟服装预测装置455,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块4551、第二获取模块4552、预测模块4553、渲染模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的虚拟服装预测方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、可编程逻辑器件(Programmable Logic Device,PLD)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或其他电子元件。
为了更好地理解本申请实施例提供的虚拟服装预测方法,首先对人工智能、人工智能的各个分支,以及本申请实施例提供的虚拟服装预测方法所涉及的应用领域进行说明。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。本申请实施例提供的虚拟服装预测方法主要涉及机器学习方向,下面分别进行说明。
语音技术(Speech Technology)的关键技术有自动语音识别技术(ASR,AutomaticSpeech Recognition)和TTS技术以及声纹识别技术。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式之一。
机器学习(ML,Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
将结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的虚拟服装预测方法。
下面,说明本申请实施例提供的虚拟服装预测方法,如前所述,实现本申请实施例的虚拟服装预测方法的电子设备可以是终端、服务器,又或者是二者的结合。因此下文中不再重复说明各个步骤的执行主体。
参见图3,图3是本申请实施例提供的虚拟服装预测方法的一种实现流程示意图,将结合图3示出的步骤进行说明,图3步骤的主体是终端。
在步骤101中,获取虚拟对象的动作数据和针对服装预测模型的配置信息。
在一些实施例中,动作数据可以从实时采集到的直播动画数据中获取的,还可以从预先生成的动画数据中获取的。动作数据包括虚拟对象的关键骨骼在动画数据中各个动画帧中的旋转角及根骨骼的位移。
步骤101在实现时,首先获取待处理的动画数据,所述动画数据为实时采集的直播动画数据,该直播动画数据可以是利用动作捕捉设实时采集到的,动画数据还可以是预先生成的动画数据;然后利用游戏引擎对所述动画数据进行处理,获取所述虚拟对象在动画数据的各个动画帧中预设的关键骨骼的旋转角和所述虚拟对象的根骨骼的位移。
在一些实施例中,游戏引擎可以是UE引擎,还可以是Unity引擎,也可以是其他类型的游戏引擎。在将待处理的动画数据导入到游戏引擎后,可以调用动画蓝图获取虚拟对象在动画数据的各个动画帧中预设的关键骨骼的旋转角和所述虚拟对象的根骨骼的位移。其中,虚拟对象的关键骨骼是从构成虚拟对象的多个骨骼中预先筛选出的,在虚拟对象运动过程中位置变化程度较大的骨骼。示例性地,虚拟对象可以有22个关键骨骼。
在一些实施例中,服装预测模型的配置信息包括:服装预测模型的种类、虚拟服装的服装标识,虚拟对象的对象标识。
在步骤102中,获取配置信息对应的训练好的服装预测模型。
在一些实施例中,当虚拟对象穿着不同样式或不同材质的虚拟服装时,即便执行相同的动作,虚拟服装的运动幅度及形变有可能也是不同的。例如,当虚拟对象穿着牛仔材质的虚拟服装执行转圈动作时与虚拟对象穿着真丝材质的虚拟服装执行转圈动作时,虚拟服装的运动幅度是有很大差别的。因此,为了保证虚拟服装预测的准确性,可以利用虚拟对象穿着相同材质相同样式的虚拟服装的动画数据作为训练数据,对服装预测模型进行训练,得到训练好的服装预测模型。也即,不同的虚拟服装对应有不同的训练好的服装预测模型。另外为了适应不同的渲染质量要求,还可以利用相同材质相同样的虚拟服装的动画数据,对不同类型或不同模型结构的服装预测模型进行训练。
基于此,步骤102在实现时,基于配置信息中的服装预测模型的种类、虚拟服装的服装标识,获取对应的训练好的服装预测模型。
训练好的服装预测模型是利用虚拟对象的训练动作数据和虚拟服装的训练点云数据训练得到的,所述训练动作数据和训练点云数据是通过对训练动画数据进行离线布料解算得到的。由于离线布料解算得到的训练动作数据和训练点云数据中保留有完好的动作细节和服装细节,因此能够保证在利用训练好的服装预测模型对动作数据进行预测处理时,得到服装顶点的顶点位置信息的准确性。
在步骤103中,利用训练好的服装预测模型对动作数据进行预测处理,得到虚拟服装中各个服装顶点的顶点位置信息。
在一些实施例中,参见图4,步骤103可以通过下述步骤1031至步骤1033实现,下面具体说明。
在步骤1031中,对虚拟对象在各个动画帧中关键骨骼的旋转角和根骨骼的位移分别进行归一化,得到虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的归一化位移。
在一些实施例中,在对关键骨骼的旋转角进行归一化处理时,首先将关键骨骼的旋转角转换为旋转弧度,旋转弧度的取值范围为,然后再将关键骨骼的旋转弧度转换至/>的取值范围,得到关键骨骼的归一化旋转角。
在一些实施例中,对根骨骼的位移进行归一化时,可以首先获取根骨骼位移的均值和方差,然后将按照(根骨骼的位移-均值)/方差的方式,对根骨骼的位移进行归一化,得到根骨骼的归一化位移。
在步骤1032中,基于虚拟对象在各个动画帧中的根骨骼的归一化位移确定虚拟对象在各个动画帧中根骨骼的速度。
在一些实施例中,首先将虚拟对象在当前动画帧的前一个动画帧中根骨骼的归一化位移减去虚拟对象在当前动画帧中根骨骼的归一化位移,得到位移差,然后再将位移差除以两个动画帧之间的时间差,得到虚拟对象在当前动画帧中根骨骼的速度。
在步骤1033中,利用训练好的服装预测模型对虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的速度进行预测处理,得到虚拟服装中各个服装顶点的顶点位置信息。
在一些实施例中,训练好的服装预测模型至少包括训练好的低频预测模块和训练好的高频预测模块,步骤1033可以通过图5所示的步骤331至步骤334实现,下面具体说明。
在步骤331中,利用训练好的低频预测模块对虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的速度进行预测处理,得到虚拟服装在各个动画帧中虚拟骨骼的第一预测旋转角度和第一预测位置。
在一些实施例中,低频预测模块可以为循环神经网络模型,以GRU为循环单元,利用训练好的低频预测模块对虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的速度进行预测处理时,训练好的低频预测模块的输入数据包括两部分,一部分为前一帧的隐层数据,另一部分为虚拟对象在当前动画帧中关键骨骼的归一化旋转角和根骨骼的速度,输出为虚拟对象在当前动画帧中虚拟骨骼的第一预测旋转角度和第一预测位置。其中,对于第一个动画帧来说,前一帧的隐层数据为预设值。
在步骤332中,根据虚拟服装在各个动画帧中虚拟骨骼的第一预测旋转角度、第一预测位置和蒙皮权重,确定虚拟服装在各个动画帧中各个服装顶点的第一参考位置。
在一些实施例中,可以将虚拟服装在各个动画帧中虚拟骨骼的第一预测旋转角度、第一预测位置和蒙皮权重输入基于位置的服务模型,从而确定出虚拟服装在各个动画帧中各个服装顶点的第一参考位置。
基于位置的服务模型在确定虚拟服装在各个动画帧中各个服装顶点的第一参考位置时,首先基于虚拟服装在各个动画帧中虚拟骨骼的第一预测旋转角度、第一预测位置确定出虚拟服装在各个动画帧中的旋转矩阵和平移矩阵,然后通过求解蒙皮计算公式,确定出虚拟服装在各个动画帧中各个服装顶点的第一参考位置。
在步骤333中,利用训练好的高频预测模块对虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的速度分别进行预测处理,得到虚拟服装在各个动画帧中的各个服装顶点的顶点偏移信息。
在一些实施例中,高频预测模块可以为循环神经网络模型,以GRU为循环单元,训练好的高频预测模块的输入数据与低频预测模块类似,包括两个部分,一部分为前一帧的隐层数据,其中,对于第一个动画帧来说,前一帧的隐层数据为预设值。另一部分为虚拟对象在当前动画帧中关键骨骼的归一化旋转角和根骨骼的速度,输出为虚拟服装在各个动画帧中的各个服装顶点的顶点偏移信息。
在步骤334中,将虚拟服装在各个动画帧中各个服装顶点的第一参考位置叠加对应的顶点偏移信息,得到将虚拟服装在各个动画帧中各个服装顶点的顶点位置信息。
在一些实施例中,服装顶点的第一参考位置包括顶点的x参考坐标和y参考坐标;顶点偏移信息包括x坐标偏移量和y坐标偏移量,步骤334在实现时,将顶点的x参考坐标与x坐标偏移量相加,得到最终预测出的x坐标;类似地,将顶点的y参考坐标与y坐标偏移量相加,得到最终预测出的y坐标。
在上述步骤1031至步骤1033中,利用训练好的低频预测模块对虚拟服装中各个虚拟骨骼的位置进行粗略预测,然后再将虚拟服装中各个虚拟骨骼的位置转换至虚拟服装中各个服装顶点的粗略顶点位置信息,再利用高频预测模块对虚拟服装的各个服装顶点的精确顶点位置与粗略顶点位置信息的偏移量进行预测,从而基于各个服装顶点的粗略顶点位置信息和偏移量,确定出各个服务顶点最终的顶点位置信息,相较于相关技术中通过将不同参数下的动作网络进行加权求和,能够降低硬件的消耗,并且处理效率高,能够满足强实时的要求。
下面继续参见图3,接续步骤103进行说明。
在步骤104中,基于虚拟服装中各个服装顶点的顶点位置信息和虚拟服装的属性信息,渲染出虚拟对象在执行动作数据时穿着的虚拟服装。
在一些实施例中,虚拟服装的属性信息至少包括所述各个服装顶点的纹理坐标,参见图6,步骤104可以通过下述的步骤1041至步骤1044实现,下面具体说明。
在步骤1041中,获取虚拟对象对应的胶囊体模型。
在一些实施例中,将虚拟对象的两个胳膊、两条腿、身体躯干、头部分别视为一个胶囊体,也即将虚拟对象的对应的胶囊体模型视为多个胶囊体的组合。每个胶囊体又可以视为是两个半球体和一个圆柱体的组合。
在步骤1042中,基于虚拟服装中各个服装顶点的顶点位置信息和胶囊体模型,对虚拟服装中各个服装顶点进行碰撞检测修正,得到各个服装顶点修正后的顶点位置信息。
在一些实施例中,参见图7,步骤1042可以通过下述步骤421至步骤424实现,下面具体说明。
在步骤421中,确定胶囊体模型的中线,基于各个服装顶点的顶点位置信息确定各个服装顶点与所述中线的垂直距离。
在一些实施例中,确定胶囊体模型的中线是分别确定组成胶囊体模型的各个胶囊体的中线,各个胶囊体的中线可以是连接胶囊体两端的半球体的球心,然后再向外沿伸至胶囊体上的顶点得到的连线。在已知胶囊体两端的两个半球体的球心坐标后,可以确定出过两个球心的直线的函数表达式,如此,在已知一条直线的函数表达式和服装顶点的顶点位置信息,即可确定出各个服装顶点与中线的垂直距离。
在步骤422中,将垂直距离小于参考距离的服装顶点确定为发生碰撞的待修正顶点。
其中,参考距离是服装顶点到胶囊体中线的垂线与胶囊体之间的交点,到胶囊体中线的距离。当服装顶点位于胶囊体外部,也即服装顶点与虚拟对象没有发生碰撞时,该交点位于服装顶点与胶囊体中线之间,此时参考距离大于该垂直距离;当服装顶点位于胶囊体内部,也即服装顶点与虚拟对象发生碰撞时,该交点到胶囊体中线的距离是大于服装顶点到胶囊体中线的距离的,因此在该步骤中,将垂直距离小于参考距离的服装顶点确定为发生碰撞的待修正顶点。
在步骤423中,将参考距离与垂直距离的差值,确定为待修正顶点的偏移距离。
在一些实施例中,由于待修正顶点对应的参考距离是大于垂直距离的,因此将参考距离减去垂直距离,得到待修正顶点的偏移距离。
在步骤424中,将待修正顶点的顶点位置信息,沿待修正顶点到中线的垂线的反方向移动所述偏移距离,得到待修正顶点的修正后的顶点位置信息。
在一些实施例中,在已知胶囊体中线的函数表达式以及待修正顶点的顶点位置信息的前提下,可以确定出待修正顶点到中线的垂线的函数表达式,进而可以基于垂线的函数表达式确定出垂线的斜率,那么就可以通过偏移距离和垂线的斜率确定出待修正顶点在x方向上的第一偏移值以及在y方向上的第二偏移值,最后,将待修正顶点的x坐标加上第一偏移值,得到待修正顶点的修正后x坐标,同样地,将待修正顶点的y坐标加上第二偏移值,得到待修正顶点的修正后y坐标。
下面继续参见图6,接续步骤1042进行说明。
在步骤1043中,获取所述各个服装顶点的顶点法线。
三维平面的法线是垂直于该平面的三维向量,曲面在某点P处的法线为垂直于该点切平面的向量。在一些实施例中,步骤1043在实现时,首先确定所述各个服装顶点所在的三角面片;当服装顶点仅存在于一个三角面片中,基于所述三角面片的三个服装顶点的修正后的顶点位置信息,确定所述服装顶点的顶点法线;当服装顶点存在与至少两个三角面片中时,那么服装顶点在每个三角面片中均有一个顶点法线,此时确定所述服装顶点在每个三角面片的顶点法线;并对所述服装顶点在每个三角面片的顶点法线进行加权计算,得到所述服装顶点的顶点法线。
在一些实施例中,对服装顶点在每个三角面片的顶点法线进行加权计算时,可以设定各个三角面片的权重是相同的,也即将服装顶点的至少两个三角面片的顶点法线进行平均计算,得到该服装顶点最终的顶点法线;另外还可以基于各个三角面片的面积确定对应的权重,然后按照各个三角面片对应的权重,将服装顶点的至少两个三角面片进行加权计算,得到服装顶点最终的顶点法线。
在一些实施例中,基于各个三角面片的面积确定对应的权重时,确定各三角面片的面积总和,然后将各个三角面片的面积与面积总和的比值确定为各个三角面片对应的权重。
在步骤1044中,基于各个服装顶点修正后的顶点位置信息、顶点法线和纹理坐标,渲染出虚拟对象执行动作数据时穿着的虚拟服装。
在一些实施例中,虚拟服装的属性信息还包括材质信息、颜色信息或贴图信息,然后基于服装顶点修正后的位置信息、顶点法线、纹理坐标及材质信息、颜色信息、贴图数据利用渲染工具,渲染出虚拟对象执行动作数据时穿着的虚拟服装。
在上述步骤1041至步骤1044中,在基于虚拟服装中各个服装顶点的顶点位置信息和虚拟服装的属性信息,渲染出虚拟对象在执行动作数据时穿着的虚拟服装时,会先对虚拟服装上各个服装顶点进行碰撞修正检测,从而将位于虚拟对象内部的服装顶点移动至虚拟对象外部,实现服装顶点的位置纠正,之后获取各个服装顶点的法线,最后基于各个服装顶点修正后的顶点位置信息、顶点法线和纹理坐标,渲染出虚拟对象执行动作数据时穿着的虚拟服装;并且如果纹理坐标的第一个数大于各个服装顶点的顶点位置信息的第二个数时,还可以通过预先计算好的映射表,将第二个数的顶点位置信息映射为第一个数的顶点位置信息,实现渲染数据补充,保证纹理坐标个数与顶点位置信息个数的一致性,从而提高渲染结果的准确性和真实性。
在获取到虚拟对象的动作数据和针对服装预测模型的配置信息之后,首先获取所述配置信息对应的训练好的服装预测模型,其中,训练好的服装预测模型是利用训练动画数据和训练服装数据训练得到的,训练动画数据和训练服装数据是通过对训练动画数据进行离线布料解算得到的,由于训练动画数据和训练服装数据是通过离线布料解算得到的,因此在利用训练好的服装预测模型对所述动作数据进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息,并基于虚拟服装中各个服装顶点的顶点位置信息和所述虚拟服装的属性信息,渲染出所述虚拟服装时,能够使得虚拟服装的运动能够符合虚拟对象的动作,提高虚拟服装的渲染效果以及动画播放的真实性。
在一些实施例中,在利用所述训练好的服装预测模型对所述动作数据进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息之前,还可以通过图8所示的步骤201至步骤209进行处理器选择,下面具体说明。
在步骤201中,获取当前的CPU使用率和GPU使用率。
在一些实施例中,CPU使用率为0到1之间的实数,例如CPU使用率为,同样地,GPU使用率也为0到1之间的实数,例如GPU使用率为/>。
在步骤202中,判断CPU使用率是否小于第一使用阈值,且GPU使用率是否小于第二使用率阈值。
其中,第一使用率阈值和第二使用率阈值是预先设置好的,第一使用率阈值和第二使用率阈值可以是相同的,也可以是不同的。示例性地,第一使用率阈值为,第二使用率阈值为/>。如果CPU使用率小于第一使用率阈值,且GPU使用率小于第二使用率阈值,进入步骤203;如果不满足CPU使用率小于第一使用率阈值,且GPU使用率小于第二使用率阈值,进入步骤205。
在步骤203中,获取处理器选择信息。
在一些实施例中,如果CPU使用率小于第一使用率阈值,且GPU使用率小于第二使用率阈值,说明CPU和GPU均不是处在高负荷工作的状态,此时可以获取处理器选择信息,其中处理器选择信息中包括本次用于进行虚拟服装预测处理的处理器。处理器选择信息具有默认值,例如默认值为CPU,处理器选择信息也可以是基于用户针对处理器的选择操作确定的,例如,用户可以设置在CPU和GPU均未处于高负荷工作状态时,利用GPU执行虚拟服装的渲染,此时处理器选择信息为GPU。
在步骤204中,将处理器选择信息对应的处理器确定为目标处理器。
其中,目标处理器用于执行利用训练好的服装预测模型对所述动作数据进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息以及基于虚拟服装中各个服装顶点的顶点位置信息和虚拟服装的属性信息,渲染出虚拟对象在执行所述动作数据时穿着的虚拟服装。
在步骤205中,判断GPU使用率是否小于第二使用率阈值。
由于是在不满足CPU使用率小于第一使用率阈值,且GPU使用率小于第二使用率阈值的前提下,进入到步骤205的,那么如果GPU使用率小于第二使用率阈值,说明CPU使用率大于或者等于第一使用率阈值,此时进入步骤206;如果GPU使用率大于或者等于第二使用率阈值,此时不能确定CPU使用率是否小于第一使用率阈值,此时进入步骤207。
在步骤206中,将GPU确定为目标处理器。
在一些实施例中,当GPU使用率小于第二使用率阈值,且CPU使用率大于或者等于第一使用率阈值时,说明CPU处于高负荷工作状态,GPU未处于高负荷工作状态,此时将GPU确定为目标处理器,并通过GPU实现虚拟服装的渲染过程。
在步骤207中,判断CPU使用率是否小于第一使用率阈值。
其中,如果所述CPU使用率小于第一使用率阈值,此时进入步骤208;如果CPU使用率大于或者等于第一使用率阈值,进入步骤209。
在步骤208中,将CPU确定为目标处理器。
由于步骤208是在CPU使用率小于第一使用率阈值,且GPU使用率大于或者等于第二使用率阈值的前提下执行的,也即此时GPU处于高负荷工作状态,CPU未处于高负荷工作状态,那么通过CPU实现虚拟服装的渲染过程。
在步骤209中,将GPU和CPU中使用率低的处理器确定为目标处理器。
在一些实施例中,步骤209是在CPU使用率大于或者等于第一使用率阈值,且GPU使用率大于或者等于第二使用率阈值的前提下执行的,也即此时GPU处于高负荷工作状态,CPU也处于高负荷工作状态,那么在步骤209中,将GPU和CPU中使用率低的处理器来执行虚拟服装的渲染过程。
在上述步骤201至步骤209中,可以基于CPU使用率和GPU使用率,确定执行虚拟服装的渲染过程的目标处理器,从而实现基于硬件设备的负载动态调整使用CPU或是GPU,能够保证虚拟服装的渲染过程的实现效率。
在一些实施例中,在执行上述虚拟服装预测方法之前,还可以通过图9示出的步骤301至步骤305对服装预测模型进行训练,得到训练好的服装预测模型,下面结合图9进行说明。
在步骤301中,获取训练动画数据和服装预测模型。
在一些实施例中,服装预测模型可以是深度学习神经网络模型,例如可以是循环神经网络模型,服装预测模型至少包括低频预测模块和高频预测模块。低频预测模块用于进行粗略预测,高频预测模块用于进行精确预测。
训练动画数据可以是采集的由真人执行常见动作时的动画数据,还可以是对一段直播数据进行动作捕捉,然后让捕捉到的动作数据重定向至虚拟对象得到的动画数据。
在步骤302中,对训练动画数据进行离线布料解算,得到训练动作数据和虚拟服装的训练点云数据。
在一些实施例中,将训练动画数据输入到离线布料解算工具中,以对训练动画数据进行离线布料解算,从而得到训练动作数据和虚拟服装的训练点云数据。其中,训练动作数据包括虚拟对象的关键骨骼在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移。虚拟服装的训练点云数据包括虚拟对象在执行动作的过程中各个服装顶点的顶点位置和顶点法线。
在一些实施例中,通过对训练动画数据进行离线布料解算还可以得到虚拟对象的训练点云数据,虚拟对象中的多个三角面片信息、虚拟服装的多个三角面片信息。虚拟对象的训练点云数据包括虚拟对象在执行动作的过程中各个对象顶点的顶点位置和顶点法线。
在步骤303中,从训练动作数据中提取虚拟对象在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移。
在一些实施例中,将训练动作数据输入到三维动画软件(例如maya)中,从而提出去虚拟对象在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移。
在步骤304中,从虚拟服装的训练点云数据中提取虚拟服装在各个训练动画帧中服装顶点的顶点标签位置。
在步骤305中,利用虚拟对象在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移,以及虚拟服装在各个训练动画帧中服装顶点的顶点标签位置,对服装预测模型进行训练,得到训练好的服装预测模型。
在一些实施例中,参见图10,步骤305可以通过下述步骤3051至步骤3053实现,下面具体说明。
在步骤3051中,利用虚拟对象在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移,以及虚拟服装的服装顶点在所述各个训练动画帧中的顶点标签位置,对低频预测模块进行训练,得到训练好的低频预测模块。
在一些实施例中,参见图11,步骤3051可以通过下述步骤511至步骤515实现,下面结合图11进行说明。
在步骤511中,基于虚拟服装在各个训练动画帧中服装顶点的顶点标签位置,确定虚拟服装的虚拟骨骼在各个训练动画帧中的骨骼标签旋转角度、骨骼标签位置和蒙皮权重。
在一些实施例中,首先对虚拟服装在各个训练动画帧中各个服装顶点的顶点标签位置进行拉普拉斯平滑处理,得到各个服装顶点平滑后的顶点标签位置,然后基于各个服装顶点平滑后的顶点标签位置进行蒙皮分解,得到分解结果,再将分解结果导入maya,提取出虚拟服装的虚拟骨骼在各个训练动画帧中的骨骼标签旋转角度、骨骼标签位置和蒙皮权重。
在步骤512中,将训练动画数据中的多个训练动画帧划分为多个训练动画分段。
其中,相邻的两个训练动画分段中包括预设个数的重叠训练动画帧。示例性地,假设每个训练动画分段中有200个训练动画帧,那么将第1到第200个训练动画帧确定为第一个训练动画分段,将第101到第300个训练动画帧确定为第二个训练动画分段,将第201至第400个训练动画帧为第三个训练动画分段,以此类推。
在一些实施例中,如果虚拟对象在前一个训练动画分段的最后一帧到后一个训练动画分段中的第一帧的动作幅度很大,实际上虚拟服装的运动幅度也应该很大,当相邻训练动画分段中不存在重叠的训练动画帧,那么在预测后一个训练动画分段的第一帧时将会失去前一个训练动画分段的累计隐层权重值,基于此得到的训练好的服装预测模型在预测时,是逐帧输入各个动画帧的训练数据,那么在预测到后一个动画分段的第一帧时,会多出前一个训练动画分段的多个动画帧的累计隐层权重值,网络将学到动作的惯性,导致后一个动画分段的第一帧原本应当极大幅度的裙摆由于隐层累计的限制而导致无法摆动到那么大的幅度,从而降低了预测准确度。而在本申请实施例中,划分出的相邻两个训练动画分段中包括多个重叠的训练动画帧,如此,能够保证训练好的服装预测模型能够区分是动作惯性还是本身就存在较大幅度的运动,从而提高预测准确性。
在步骤513中,利用低频预测模块对所述虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移进行预测处理,得到虚拟服装的虚拟骨骼在各个训练动画帧中的第二预测旋转角度和第二预测位置。
在一些实施例中,首先需要基于虚拟对象在每个训练动画分段的各个训练动画帧中根骨骼的训练位移,确定出虚拟对象在各个训练动画帧中根骨骼的训练速度,然后将虚拟对象在各个训练动画帧中的关键骨骼的训练旋转角和根骨骼的训练速度逐帧输入到低频预测模块,从而得到虚拟服装的虚拟骨骼在各个训练动画帧中的第二预测旋转角度和第二预测位置。
在步骤514中,根据虚拟服装的虚拟骨骼在各个训练动画帧中的第二预测旋转角度、第二预测位置和蒙皮权重,确定虚拟服装的各个服装顶点在各个训练动画帧中的第三参考位置。
步骤514的实现过程与步骤332的实现过程是类似的,可以参考步骤332的实现过程。
在步骤515中,利用虚拟服装的各个服装顶点在各个训练动画帧中的第三参考位置和顶点标签位置,对低频预测模块进行训练,得到训练好的低频预测模块。
在一些实施例中,确定虚拟服装的各个服装顶点在各个训练动画帧中的第三参考位置和顶点标签位置的第一差值,然后对虚拟服装的各个服装顶点在各个训练动画帧中的第三参考位置和顶点标签位置分别进行平滑处理,得到平滑后的第三参考位置和平滑后的顶点标签位置,进而确定出虚拟服装的各个服装顶点在各个训练动画帧中的平滑后的第三参考位置和平滑后的顶点标签位置的第二差值,将第一差值和第二差值的和确为低频预测模块的损失值,将该损失值反向传播至低频预测模块,采用梯度下降法对低频预测模型的参数进行调整,直至达到训练结束条件,得到训练好的低频预测模块。
在步骤3052中,利用训练好的低频预测模块、虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移,确定虚拟服装的各个服装顶点在各个训练动画帧中的第二参考位置。
在一些实施例中,在完成对低频预测模块的训练之后,利用训练好的低频预测模块确定出虚拟服装的各个服装顶点在各个训练动画帧中的第二参考位置。在实现时,基于虚拟对象在每个训练动画分段的各个训练动画帧中根骨骼的训练位移,确定出虚拟对象在各个训练动画帧中根骨骼的训练速度,然后将虚拟对象在各个训练动画帧中的关键骨骼的训练旋转角和根骨骼的训练速度逐帧输入到训练好的低频预测模块,从而得到虚拟服装的虚拟骨骼在各个训练动画帧中的第三预测旋转角度和第三预测位置,然后利用虚拟服装的虚拟骨骼在各个训练动画帧中的第三预测旋转角度和第三预测位置以及蒙皮权重,确定出虚拟服装的各个服装顶点在各个训练动画帧中的第二参考位置。
在步骤3053中,利用虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移、虚拟服装的服装顶点在所述各个训练动画帧中的顶点标签位置和第二参考位置,对高频预测模块进行训练,得到训练好的高频预测模块。
在一些实施例中,参见图12,步骤3053可以通过下述步骤531至533实现,下面具体说明。
在步骤531中,利用高频预测模块对虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移进行预测处理,得到虚拟服装的各个服装顶点在各个训练动画帧中的预测偏移信息。
在一些实施例中,基于虚拟对象在每个训练动画分段的各个训练动画帧中根骨骼的训练位移,确定出虚拟对象在各个训练动画帧中根骨骼的训练速度,然后将虚拟对象在各个训练动画帧中的关键骨骼的训练旋转角和根骨骼的训练速度逐帧输入到高频预测模块,得到虚拟服装的各个服装顶点在各个训练动画帧中的预测偏移信息。
在步骤532中,利用虚拟服装的各个服装顶点在各个训练动画帧中的第二参考位置和对应的预测偏移信息,确定虚拟服装的各个服装顶点在各个训练动画帧中的第二预测位置。
在一些实施例中,步骤532的实现过程与步骤334的实现过程是类似的,步骤532可以参考步骤334的实现过程实现。
在步骤533中,利用虚拟服装的各个服装顶点在各个训练动画帧中的第二预测位置和对应的顶点标签位置,对高频预测模块进行训练,得到训练好的高频预测模块。
在一些实施例中,高频预测模块在训练过程中使用的损失值是虚拟服装的各个服装顶点的第二预测位置和通过离线物理布料解算确定出的虚拟服装上各个服装顶点的顶点标签位置的第三差值与碰撞项之和。在确定碰撞项时,首先基于虚拟服装的各个服装顶点的第二预测位置确定虚拟服装上与虚拟对象存在碰撞的目标点,目标点也即位于虚拟对象内部的点,然后确定目标点到虚拟对象的距离,将多个目标点到虚拟对象的距离之和确定为碰撞项。将高频预测模块的损失值反向传播至高频预测模块,采用梯度下降法对高频预测模型的参数进行调整,直至达到训练结束条件,得到训练好的高频预测模块。
在上述步骤301至步骤305中,在对服装预测模型进行训练时,采用的训练数据是通过离线布料解算得到的,如此能够保证在利用训练数据得到的训练好的服装预测模型的普适性,对于宽松性服装、复杂服装均有较好的预测结果,对服装运动预测质量将高于目前实时物理解算的效果,另外,目前纯物理解算模型复杂度上升时对计算机的算力要求要高,而在本申请实施例中,是利用深度学习的模型进行服装预测,因此实现方案更加轻量化,并且本申请实施例中的服装预测模型是包括高频预测模块和低频预测模块,相较于相关技术中通过将不同参数下的动作网络进行加权求和,能够降低硬件的消耗,并且处理效率高,能够满足强实时的要求。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供的一种虚拟服装预测方法,可以应用于多种需要呈现虚拟对象穿着虚拟服装的直播场景,还可以应用于离线视频生成场景,也可以应用于游戏场景、虚拟现实场景、增强现实场景等。在本申请实施例中,以虚拟服装预测方法应用于直播场景为例进行说明。主播终端接收针对虚拟数字人直播的配置信息,其中,配置信息包括本次直播的虚拟数字人标识,在直播过程中虚拟数字人所穿着服装的服装标识等。主播终端在接收到配置信息后,基于服装标识确定进行虚拟服装预测的服装预测模型。在直播过程中,主播终端接收动作捕捉设备采集到的直播动画数据,并将直播动画数据传入主播终端中的游戏引擎,游戏引擎调用动画蓝图从直播动画数据中获取动作数据,并基于服装预测模型以及动作数据、虚拟服装的属性信息等,准确预测出虚拟数字人在执行动作数据时虚拟服装的运动状态,提高虚拟数字人直播的真实性,主播终端将虚拟对象穿着虚拟服装执行动作的直播数据流发送至服务器,服务器将直播数据发送至观众终端,从而通过观众终端播放直播动画数据。并且使用本申请实施例提供的虚拟服装预测方法,能够在直播中迅速预测出虚拟服装的动画,质量接近离线解算的效果,并且能够避免直播中物理解算可能产生的解算错误而无法恢复的情况。
本申请实施例提供的虚拟服装预测方法,也可应用于离线视频快速产出,终端中的游戏引擎在获取到虚拟对象的动画数据后,可以对虚拟对象穿着的虚拟服装的服装标识、虚拟对象标识进行配置,在完成配置后,利用配置信息确定训练好的服装预测模型,其中,服装预测模型为进行服装运动状态预测的神经网络模型(也可以为深度学习模型),从而利用训练好的服装预测模型基于虚拟对象的动画数据预测并渲染出虚拟服装,以在虚拟对象执行动画数据对应动作的过程中能够呈现出与动作匹配的虚拟服装的动画效果,从而能够跳过离线布料解算的过程,快速生成视频,加速视频上线。
图13A为单件裙子通过离线解算渲染出的某一帧效果示意图;图13B为利用本申请实施例提供的训练好的服装预测模型对裙子进行实时预测的效果图,通过对比图13A和图13B可以看出,利用本申请实施例提供的训练好的服装预测模型对虚拟服装进行渲染的效果接近于离线解算的效果;图13C和图13D是利用本申请实施例提供的训练好的服装预测模型在UE引擎中进行实时预测另外两个效果图。
利用本申请实施例提供的虚拟服装的渲染方法,在获取到虚拟对象的动画数据之后,根据动画数据进行布料模拟,得出结果后实时渲染在屏幕上。本申请实施例提供的虚拟服装预测方法可部署于游戏引擎中,例如可以部署于UE引擎、Unity引擎或其他同类游戏引擎。通过本申请实施例提供的虚拟服装预测方法能够提高实时布料模拟的效果质量,或作为离线视频布料模拟的替代方案,还能够降低设备的性能开销,并提高直播场景下的鲁棒性,避免不可接受的错误产生。
图14是本申请实施例提供的虚拟服装的渲染方法的另一种实现流程示意图,下面结合图14进行说明。
在步骤401中,美术侧终端进行数据准备。
在一些实施例中,美术侧终端进行数据准备包括:美术人员通过美术终端进行虚拟对象模型的建模、服装模型的建模、虚拟对象模型中骨骼的建立与绑定,以及对获取的动画数据进行修复。美术侧终端获取本次业务场景中的虚拟对象模型及服装模型,并获取动画数据,该动画数据可以是使用动作捕捉设备录制直播场景下真实人物动画数据,还可以是对已有动画数据进行动画重定向至业务所需人物模型上得到的动画数据。美术侧终端根据服装模型与动画数据进行离线布料解算,得到离线布料解算结果。
示例性地,在某一业务场景,采集20分钟36000帧的数据,包含直播场景中常见动作,经离线布料解算,得到的离线布料解算结果中至少包括虚拟对象的动作数据,虚拟对象的模型数据、服装模型的模型数据、虚拟对象在各个动画帧中的点云数据以及服装模型在各个动画帧中的点云数据。
其中,虚拟对象的动作数据是指虚拟对象在执行动作时各个关键骨骼的旋转角和根骨骼的位移,虚拟对象的模型数据是构成虚拟对象的多个三角面片的顶点信息。服装模型的模型数据是指构成虚拟服装的多个三角面片的顶点信息。虚拟对象的点云数据是指虚拟对象在执行动作时各个三角面片上的顶点的位置信息以及顶点的法线信息,服装模型的点云数据是指虚拟对象在执行动作时虚拟服装的各个三角面片上顶点的位置信息以及顶点的法线信息。
在步骤402中,自动化数据预处理。
在一些实施例中,数据预处理过程包括利用三维动画软件(maya)提取从动作数据中提取52个关键骨骼(除手指脚趾以外的身体关键骨骼)的旋转欧拉角(欧拉角将会转换为四元数,旋转向量,旋转矩阵供后续算法测试)以及根骨骼的位移;从虚拟对象的动画数据中提取出虚拟对象在执行动作时虚拟对象的各个顶点的顶点位置和顶点法线值;从服装模型的动画数据中提取服务模型中各个顶点的顶点位置,利用各个顶点在两帧之间的位移差作为各个顶点的速度向量。在数据预处理过程中,还需要确定上述各个数据的均值,标准差,归一化值等,并打包数据。
对服装模型的各个顶点的顶点位置进行拉普拉斯平滑并进行蒙皮分解,以提取出服装模型的各个虚拟骨骼的位置及其蒙皮权重。
在本申请实施例中,对BDMN算法中数据预处理进行了改进,由于BDMN使用了循环神经网络,每一帧训练时将保留前面帧的信息,在实际模型训练中,若直接按照每段动画200帧进行切片,并在不足200帧时进行0补足,但在实际训练中,举个例子:一段为400帧的动画,若第200帧到201帧动作幅度很大,裙摆幅度很大,在201帧时将会失去前200帧的累计隐层权重值,而在预测整段400帧的动画时,在201帧,多了前200帧的累计隐层权重值,网络将学到动作的惯性,导致201帧原本应当极大幅度的裙摆由于隐层累计的限制而导致无法摆动到那么大的幅度。
为解决这个问题,在本申请实施例中更换了动画切片的方法,每段动画还是200帧的长度,但是每段动画之间加入了100帧的重叠图像帧。
图15为一段旋转动画旋转完毕后的200帧阶段位置的服装渲染效果图,左侧1501为改进前的效果,右侧1502为改进后的效果,此时将一定程度避免模型由于数据截断而产生的隐层累计问题。
在步骤403中,模型训练。
在一些实施例中,深度学习模型(对应其他实施例中的服装预测模型)包括低频预测模块和高频预测模块,在对深度学习模型进行训练时,先对低频预测模块进行训练,然后再对高频预测模块进行训练,最终得到训练好的深度学习模型。
在对低频预测模块进行训练时,以虚拟对象的二十二个关键骨骼的旋转数据及根骨骼的位移值作为输入数据,并按照BDMN算法,以GRU作为循环单元,逐帧输入虚拟对象的关键骨骼的旋转数据和根骨骼的位移,从而预测出服装模型中各个虚拟骨骼的位移及旋转角,之后根据基于位置的服务(Location Based Services,LBS)模型,根据服装模型中各个虚拟骨骼的位移及旋转角确定出服装模型上各个顶点的预测位置。再利用LBS生成的服装模型上各个顶点的预测位置和通过离线物理布料解算确定出的服装模型上各个顶点的标签位置以及预设的损失函数,确定出损失值,将损失值反向传播至低频预测模块,以对低频预测模块的参数进行调整,最终得到训练好的低频预测模块。
低频预测模块在训练过程中使用的损失函数是通过低频模型预测出来的顶点位置与实际物理解算出的顶点位置的差加上低频预测模型预测出来的顶点位置的拉普拉斯项与实际物理结算出的顶点的拉普拉斯项的差。
在高频预测模块中,并不是使用图神经网络来处理低频预测模块得到的服装模型的网格,而仅使用GRU来处理低频预测模块得到的服装模型的网格。高频预测模块的输入为虚拟对象的二十二个关键骨骼的旋转数据及根骨骼的位移值,通过高频预测模块预测出服装模型中各个顶点的偏移值,将通过低频预测模块得到的服装模型各个顶点的预测位置和高频预测模块预测出服装模型中各个顶点的偏移值进行拼接,并通过一个多层感知机(MLP)来获得服装模型各个顶点的最终预测位置。
高频预测模块在训练过程中使用的损失函数是服装模型各个顶点的最终预测位置和通过离线物理布料解算确定出的服装模型上各个顶点的标签位置的第三差值与碰撞项之和。在确定碰撞项时,首先基于服装模型各个顶点的最终预测位置确定服装模型上与虚拟对象存在碰撞的目标点,目标点也即位于虚拟对象内部的点,然后确定目标点到虚拟对象的距离,将多个目标点到虚拟对象的距离之和确定为碰撞项。
在本申请实施例中,使用一个高频预测模块加低频预测模块的深度学习网络模型来作为服装预测模型,能够满足实际项目中对硬件的低消耗及强实时的要求。
其单机预测性能数据如下:
机器:3080ti;
模型顶点数:6788;
虚拟骨骼数80;
推理时间:GPU空闲,CPU空闲:CPU:8毫秒,个别抖动20~30毫秒;GPU:6毫秒,个别抖动7~8毫秒。
在步骤404中,在游戏引擎端开发插件,接收训练好的深度学习模型作为输入,利用训练好的深度学习模型对游戏引擎端输入的动画数据进行实时预测,并进行穿模纠正,接入游戏引擎的材质系统,实时渲染出服装。
在一些实施例中,游戏引擎可以是UE引擎,还可以是Unity引擎等,在本申请实施例中以游戏引擎为UE引擎为例进行说明。UE引擎端的架构图16所示,包括数据处理层1601、预测层1602、渲染层1603。
图17是本申请实施例提供的在引擎端进行布料模拟的实现流程示意图,在一些实施例中,步骤404可以通过图17示出的各个步骤实现,下面具体说明。
在步骤4041中,获取动作数据。
在一些实施例中,动作数据可以是从实时采集到的直播数据中获取的,还可以是从离线动画数据中获取的。
当动作数据是从直播数据中获取时,直播数据可以由动捕设备直接传入UE引擎中,在UE引擎中调用动画蓝图获取虚拟对象的关键骨骼在各个动画帧中的旋转角及根骨骼的世界位移。
当动作数据是从离线动画数据中获取时,可以将离线动画数据导入到UE引擎中,在UE引擎中同样调用动画蓝图获取虚拟对象的关键骨骼在各个动画帧中的旋转角及根骨骼的世界位移。
在步骤4042中,读取预测相关数据。
为保证深度学习模型的预测正确性,需要读取针对深度学习模型的配置信息,配置信息包括深度学习模型的种类、服装模型的种类ID,虚拟对象的种类ID,从而基于配置信息获取对应的深度学习模型。除此之外,还需获取数据预处理阶段得到的服装模型的虚拟骨骼的蒙皮权重及位移、服装模型的种类ID相对应的服装模型面片信息。
在步骤4043中,硬件占用率监测。
在实施本申请实施例提供的虚拟服装的渲染方法的过程中,将对当前设备的硬件占用率进行监测,读取当前CPU及GPU的占用率,默认分配任务于CPU上,若CPU及GPU的占用率都在可接受范围,则根据用户的选择分配任务,若GPU的占用率较少,CPU占用率远大于GPU,则分配于GPU上。
在步骤4044中,处理动作数据。
步骤4041中获取到的动作数据无法直接输入到深度学习模型中,需要将其转化为训练深度学习模型时的右手坐标系下,并将获取到的动作数据中虚拟对象在各个动画帧中关键骨骼的旋转角及根骨骼位移进行归一化,然后基于虚拟对象在各个动画帧中的根骨骼位移确定根骨骼的速度,根骨骼的速度的计算方式为前一帧的根骨骼位移减去后一帧的根骨骼位移。
在步骤4045中,预测虚拟骨骼数据。
在本申请实施例中,将深度学习模型集成入UE引擎采用了本地部署的方式,采取的方案是逐帧读取数据,并将训练好的深度学习模型导出为onnx格式,使用了Unreal版本的OnnxRuntime插件来将训练好的模型导入进UE中。导出的深度学习模型是训练好的循环神经网络,该训练好的深度学习模型接收两个输入,一个为上一帧的隐层数据,一个为当前帧的关键骨骼的旋转角及根骨骼的速度,此处的隐层数据的维度需要与训练时保持一致。
在步骤4046中,虚拟骨骼转为模型顶点数据。
通过训练好的深度学习模型中的低频预测模块预测出来的是服装模型中虚拟骨骼的旋转角和位置,还需利用LBS模块,将服装模型中虚拟骨骼的旋转角和位置转化为服装模型中各个顶点相应的坐标。在一些实施例中,将会根据硬件监测的监测结果来调用确定调用CPU的LBS模型还是调用GPU中的LBS模型来完成虚拟骨骼到模型顶点的转换。
在步骤4047中,碰撞检测修正。
这里的碰撞检测修正主要是修正虚拟对象与服装模型的穿模问题,在本申请实施例中,将虚拟对象的碰撞体积视为多个胶囊体的组合,将服装模型的每一个顶点与每个胶囊体做碰撞检测。先把胶囊体视为圆锥体,判断圆锥体与顶点间的碰撞,若顶点当前位置在圆锥体内,将顶点推出圆锥体,推出方向为过顶点做垂直于圆锥体的边的连线的方向,推出位置为顶点垂直于圆锥体边的连线与边的交点处,即圆锥体的表面上。再判断胶囊体的顶端两个球体与顶点的碰撞,若顶点在球内,将其推出球体,推出方向为过球心连接顶点的方向,推出位置为过秋心连接顶点方向的直线与球的交点上,即属于球的表面上。
在步骤4048中,引擎渲染布料。
由于动画数据是实时传入UE引擎的,所以要求深度学习模型能够做到实时预测,实时渲染,此时则需要在运行时动态生成面片,在一些实施例中使用程序化面片生成组件(Procedural Mesh Component,PMC)来进行动态面片的生成,但使用PMC时,此机制无法在顶点处分割法线,UV或其他属性。而对于一个模型而言,其包含的顶点数目,法线数目,及顶点上的UV坐标的数目可能是不相等的。简而言之就是一个顶点可能参与多个面片的渲染,可能具有多个法线,同一个位置的顶点在多个面片渲染时的UV坐标也可能不同。在本申请实施例中,法线数据依旧记录各个顶点的顶点法线,而对于UV坐标而言,一个顶点若拥有两个UV坐标,则将其视为两个顶点送入PMC,并通过图18所示的处理流程完成布料渲染流程,下面具体说明。
如图18所示,将虚拟对象的骨骼数据输入到深度学习模型,假设最终得到6788个顶点坐标数据,但送入PMC的顶点数据由UV坐标的个数来决定,当有6864个UV坐标时,则输入到PMC的顶点坐标数据也应该为6864个,此时可以预先计算好一个6788个顶点到6864个UV数据的映射表,按照UV数据的索引对顶点进行映射,将6788个顶点映射为6864个顶点,并将其顶点法线数据一并送入PMC进行渲染。
为避免渲染时,渲染的面片与面片之间有明显的分界线,整体模型看起来比较粗糙的问题,在本申请实施例中,需要重新计算顶点法线。当一个顶点分属不同的面片时,该顶点可能会拥有不同的法线值,在本申请实施例中,将这个顶点的不同的法线值重新加权计算作为这个顶点的顶点法线。加权方法有许多种,如根据角度,面片面积的大小或者进行哈希聚簇等方法来进行加权。由于每帧都需要重新计算法线,所以可以使用对性能消耗较少的平均加权法,即将这个顶点的所有法线值进行算术平均计算,得到作为这个顶点的法线。
在一些实施例中,在步骤4048之后,还可以进行抗锯齿处理。对于逐帧变化的高速运动面片而言,在本申请实施例中采用了TAA来处理锯齿问题,而并非UE引擎常用的TSR的抗锯齿方案,从而能够避免高速运动时,渲染出的布料出现类似噪点的残影留存。
在本申请实施例提供的虚拟服装的渲染方法中,根据直播的业务场景进行真实数据的采集,对真实数据进行数据集的离线数据解算,并对其进行一系列数据处理,提取出深度学习模型所需要的模拟数据进行训练,得到训练好的深度学习模型,将训练好的深度学习模型集成入UE引擎中,在UE引擎中对预测流程进行加速,并把预测结果进行实时渲染,并且可以根据硬件设备的负载动态调整使用CPU或是GPU进行实时渲染。在预测完毕后,由于模型预测的精确性可能不足,可能会产生穿模问题,为解决穿模问题,引擎端将在拿到模型预测结果后进行碰撞检测,并通过碰撞检测把穿模的顶点推至模型外,一定程度解决穿模。如此方案整套插件化,可以实现即插即用,提高了方案的可迁移性,并且能够在UE引擎内进行实时解算,可以接受现有动画数据及直播数据,并能够实时渲染出效果。由于对离线数据集的学习,服装运动预测质量将高于目前实时物理解算的效果,并且整套方案更加轻量化,对硬件资源的消耗将低于目前实时解算效果。由于数据驱动方法对比物理解算方法天然的优势,因此本申请实施例提供的虚拟服装的渲染方法将比目前实时解算方案拥有更高的鲁棒性。
可以理解的是,在本申请实施例中,涉及到虚拟对象的动作数据、直播数据等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面继续说明本申请实施例提供的虚拟服装预测装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的虚拟服装预测装置455中的软件模块可以包括:
第一获取模块4551,用于获取虚拟对象的动作数据和针对服装预测模型的配置信息;
第二获取模块4552,用于获取所述配置信息对应的训练好的服装预测模型,所述训练好的服装预测模型是利用训练动画数据和训练服装数据训练得到的,所述训练动画数据和训练服装数据是通过对训练动画数据进行离线布料解算得到的;
预测模块4553,用于利用所述训练好的服装预测模型对所述动作数据进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息;
渲染模块4554,用于基于所述虚拟服装中各个服装顶点的顶点位置信息和所述虚拟服装的属性信息,渲染出所述虚拟对象在执行所述动作数据时穿着的虚拟服装。
在一些实施例中,第一获取模块4551还用于:
获取待处理的动画数据,所述动画数据为实时采集的直播数据或者预先生成的动画数据;
利用游戏引擎对所述动画数据进行处理,获取所述动画数据的各个动画帧中虚拟对象预设的关键骨骼的旋转角和所述虚拟对象的根骨骼的位移。
在一些实施例中,该装置还包括:
第三获取模块,用于获取当前的CPU使用率和GPU使用率;
第四获取模块,用于如果所述CPU使用率小于第一使用率阈值,且所述GPU使用率小于第二使用率阈值,获取处理器选择信息;
第一确定模块,用于将所述处理器选择信息对应的处理器确定为目标处理器。
在一些实施例中,该装置还包括:
第二确定模块,用于如果所述CPU使用率大于或者等于第一使用率阈值,且所述GPU使用率小于所述第二使用率阈值,将GPU确定为目标处理器;
第三确定模块,用于如果所述CPU使用率小于第一使用率阈值,且所述GPU使用率大于或者等于所述第二使用率阈值,将CPU执确定为目标处理器;
第四确定模块,用于如果所述CPU使用率大于或者等于第一使用率阈值,且所述GPU使用率大于所述等于所述第二使用率阈值,将GPU和CPU中使用率低的处理器确定为目标处理器。
在一些实施例中,预测模块4553还用于:
对所述各个动画帧中虚拟对象预设的关键骨骼的旋转角和所述虚拟对象的根骨骼的位移分别进行归一化,得到所述虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的归一化位移;
基于所述虚拟对象在各个动画帧中的根骨骼的归一化位移确定所述虚拟对象在各个动画帧中根骨骼的速度;
利用所述训练好的服装预测模型对所述虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的速度进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息。
在一些实施例中,所述训练好的服装预测模型包括训练好的低频预测模块和训练好的高频预测模块,预测模块4553还用于:
利用所述训练好的低频预测模块对所述虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的速度进行预测处理,得到所述虚拟服装在各个动画帧中虚拟骨骼的第一预测旋转角度和第一预测位置;
利用训练好的基于位置的服务模型,根据所述虚拟服装在各个动画帧中虚拟骨骼的第一预测旋转角度、第一预测位置和蒙皮权重,确定所述虚拟服装在各个动画帧中各个服装顶点的第一参考位置;
利用所述训练好的高频预测模块对所述虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的速度分别进行预测处理,得到所述虚拟服装在各个动画帧中各个服装顶点的顶点偏移信息;
将所述虚拟服装在各个动画帧中各个服装顶点的第一参考位置叠加对应的顶点偏移信息,得到将所述虚拟服装在各个动画帧中各个服装顶点的顶点位置信息。
在一些实施例中,渲染模块4554还用于:
获取所述虚拟对象对应的胶囊体模型;
基于所述虚拟服装中各个服装顶点的顶点位置信息和所述胶囊体模型,对所述虚拟服装中各个服装顶点进行碰撞检测修正,得到各个服装顶点修正后的顶点位置信息;
获取所述各个服装顶点的顶点法线;
基于所述各个服装顶点修正后的顶点位置信息、所述顶点法线和所述纹理坐标,渲染出所述虚拟服装。
在一些实施例中,渲染模块4554还用于:
确定所述胶囊体的中线,基于所述各个服装顶点的顶点位置信息确定所述中确定所述各个服装顶点与所述中线的垂直距离;
将垂直距离小于参考距离的服装顶点确定为发生碰撞的待修正顶点;
将所述参考距离与所述垂直距离的差值,确定为所述待修正顶点的偏移距离;
将所述待修正顶点的顶点位置信息,沿所述待修正顶点到所述中线的垂线的反方向移动所述偏移距离,得到所述待修正顶点的修正后的顶点位置信息。
在一些实施例中,渲染模块4554还用于:
确定所述各个服装顶点所在的三角面片;
当服装顶点仅存在于一个三角面片中,基于所述三角面片的三个服装顶点的修正后的顶点位置信息,确定所述服装顶点的顶点法线;
当服装顶点存在与至少两个三角面片中时,确定所述服装顶点在每个三角面片的顶点法线;
对所述服装顶点在每个三角面片的顶点法线进行加权计算,得到所述服装顶点的顶点法线。
在一些实施例中,该装置还包括:
第五获取模块,用于获取训练动画数据和服装预测模型;
布料解算模块,用于对所述训练动画数据进行离线布料解算,得到训练动作数据和虚拟服装的训练点云数据;
第一提取模块,用于从所述训练动作数据中提取所述虚拟对象在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移;
第二提取模块,用于从所述虚拟服装的训练点云数据中提取所述虚拟服装在所述各个训练动画帧中服装顶点的顶点标签位置;
第一训练模块,用于利用所述虚拟对象在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移,以及所述虚拟服装在所述各个训练动画帧中服装顶点的顶点标签位置,对所述服装预测模型进行训练,得到训练好的服装预测模型。
在一些实施例中,所述服装预测模型至少包括低频预测模块和高频预测模块,第一训练模块,还用于:
利用所述虚拟对象在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移,以及所述虚拟服装的服装顶点在所述各个训练动画帧中的顶点标签位置,对所述低频预测模块进行训练,得到训练好的低频预测模块;
利用所述训练好的低频预测模块、所述虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移,确定所述虚拟服装的各个服装顶点在各个训练动画帧中的第二参考位置;
利用所述虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移、所述虚拟服装的服装顶点在所述各个训练动画帧中的顶点标签位置和第二参考位置,对高频预测模块进行训练,得到训练好的高频预测模块。
在一些实施例中,第一训练模块,还用于:
基于所述虚拟服装在所述各个训练动画帧中服装顶点的顶点标签位置,确定所述虚拟服装的虚拟骨骼在所述各个训练动画帧中的骨骼标签旋转角度、骨骼标签位置和蒙皮权重;
将所述训练动画数据中的多个训练动画帧划分为多个训练动画分段,相邻的两个训练动画分段中包括预设个数的重叠训练动画帧;
利用所述低频预测模块对所述虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移进行预测处理,得到所述虚拟服装的虚拟骨骼在所述各个训练动画帧中的第二预测旋转角度和第二预测位置;
根据所述虚拟服装的虚拟骨骼在各个训练动画帧中的第二预测旋转角度、第二预测位置和蒙皮权重,确定所述虚拟服装的各个服装顶点在各个训练动画帧中的第三参考位置;
利用所述虚拟服装的各个服装顶点在各个训练动画帧中的第三参考位置和顶点标签位置,对所述低频预测模块进行训练,得到训练好的低频预测模块。
在一些实施例中,第一训练模块,还用于:
利用所述高频预测模块对所述虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移进行预测处理,得到所述虚拟服装的各个服装顶点在各个训练动画帧中的预测偏移信息;
利用所述虚拟服装的各个服装顶点在各个训练动画帧中的第二参考位置和对应的预测偏移信息,确定所述虚拟服装的各个服装顶点在各个训练动画帧中的第二预测位置;
利用所述虚拟服装的各个服装顶点在各个训练动画帧中的第二预测位置和对应的顶点标签位置,对所述高频预测模块进行训练,得到训练好的高频预测模块。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的虚拟服装预测方法。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令或者计算机程序,当计算机可执行指令或者计算机程序被处理器执行时,将引起处理器执行本申请实施例提供的虚拟服装预测方法,例如,如图3、图14示出的虚拟服装预测方法。
在一些实施例中,计算机可读存储介质可以是RAM、ROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(Hyper TextMarkup Language,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (17)
1.一种虚拟服装预测方法,其特征在于,所述方法包括:
获取虚拟对象的动作数据和针对服装预测模型的配置信息;
获取所述配置信息对应的训练好的服装预测模型,所述训练好的服装预测模型是利用虚拟对象的训练动作数据和虚拟服装的训练点云数据训练得到的,所述训练动作数据和训练点云数据是通过对训练动画数据进行离线布料解算得到的;
利用所述训练好的服装预测模型对所述动作数据进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息;
基于所述虚拟服装中各个服装顶点的顶点位置信息和所述虚拟服装的属性信息,渲染出所述虚拟对象在执行所述动作数据时穿着的虚拟服装。
2.根据权利要求1中所述的方法,其特征在于,所述获取虚拟对象的动作数据,包括:
获取待处理的动画数据,所述动画数据为实时采集的直播动画数据或者预先生成的动画数据;
利用游戏引擎对所述动画数据进行处理,获取所述动画数据的各个动画帧中虚拟对象预设的关键骨骼的旋转角和所述虚拟对象的根骨骼的位移。
3.根据权利要求1中所述的方法,其特征在于,在所述利用所述训练好的服装预测模型对所述动作数据进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息之前,所述方法还包括:
获取当前的中央处理器CPU使用率和图形处理器GPU使用率;
如果所述CPU使用率小于第一使用率阈值,且所述GPU使用率小于第二使用率阈值,获取处理器选择信息;
将所述处理器选择信息对应的处理器确定为目标处理器,其中,所述目标处理器用于执行利用所述训练好的服装预测模型对所述动作数据进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息。
4.根据权利要求3中所述的方法,其特征在于,所述方法还包括:
如果所述CPU使用率大于或者等于第一使用率阈值,且所述GPU使用率小于所述第二使用率阈值,将GPU确定为目标处理器;
如果所述CPU使用率小于第一使用率阈值,且所述GPU使用率大于或者等于所述第二使用率阈值,将CPU确定为目标处理器;
如果所述CPU使用率大于或者等于第一使用率阈值,且所述GPU使用率大于所述等于所述第二使用率阈值,将GPU和CPU中使用率低的处理器确定为目标处理器。
5.根据权利要求2中所述的方法,其特征在于,所述利用所述训练好的服装预测模型对所述动作数据进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息,包括:
对所述各个动画帧中虚拟对象预设的关键骨骼的旋转角和所述虚拟对象的根骨骼的位移分别进行归一化,得到所述虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的归一化位移;
基于所述虚拟对象在各个动画帧中的根骨骼的归一化位移确定所述虚拟对象在各个动画帧中根骨骼的速度;
利用所述训练好的服装预测模型对所述虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的速度进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息。
6.根据权利要求5中所述的方法,其特征在于,所述训练好的服装预测模型包括训练好的低频预测模块和训练好的高频预测模块,所述利用所述训练好的服装预测模型对所述虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的速度进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息,包括:
利用所述训练好的低频预测模块对所述虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的速度进行预测处理,得到所述虚拟服装在各个动画帧中虚拟骨骼的第一预测旋转角度和第一预测位置;
根据所述虚拟服装在各个动画帧中虚拟骨骼的第一预测旋转角度、第一预测位置和蒙皮权重,确定所述虚拟服装在各个动画帧中各个服装顶点的第一参考位置;
利用所述训练好的高频预测模块对所述虚拟对象在各个动画帧中关键骨骼的归一化旋转角和根骨骼的速度分别进行预测处理,得到所述虚拟服装在各个动画帧中各个服装顶点的顶点偏移信息;
将所述虚拟服装在各个动画帧中各个服装顶点的第一参考位置叠加对应的顶点偏移信息,得到将所述虚拟服装在各个动画帧中各个服装顶点的顶点位置信息。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述虚拟服装的属性信息至少包括所述各个服装顶点的纹理坐标,所述基于所述虚拟服装中各个服装顶点的顶点位置信息和所述虚拟服装的属性信息,渲染出所述虚拟对象在执行所述动作数据时穿着的虚拟服装,包括:
获取所述虚拟对象对应的胶囊体模型;
基于所述虚拟服装中各个服装顶点的顶点位置信息和所述胶囊体模型,对所述虚拟服装中各个服装顶点进行碰撞检测修正,得到各个服装顶点修正后的顶点位置信息;
获取所述各个服装顶点的顶点法线;
基于所述各个服装顶点修正后的顶点位置信息、所述顶点法线和所述纹理坐标,渲染出所述虚拟对象在执行所述动作数据时穿着的虚拟服装。
8.根据权利要求7中所述的方法,其特征在于,所述基于所述虚拟服装中各个服装顶点的顶点位置信息和所述胶囊体模型,对所述虚拟服装中各个服装顶点进行碰撞检测修正,得到各个服装顶点修正后的顶点位置信息,包括:
确定所述胶囊体的中线,基于所述各个服装顶点的顶点位置信息确定所述各个服装顶点与所述中线的垂直距离;
将垂直距离小于参考距离的服装顶点确定为发生碰撞的待修正顶点;
将所述参考距离与所述垂直距离的差值,确定为所述待修正顶点的偏移距离;
将所述待修正顶点的顶点位置信息,沿所述待修正顶点到所述中线的垂线的反方向移动所述偏移距离,得到所述待修正顶点的修正后的顶点位置信息。
9.根据权利要求7中所述的方法,特征在于,所述获取所述各个服装顶点的顶点法线,包括:
确定所述各个服装顶点所在的三角面片;
当服装顶点仅存在于一个三角面片中,基于所述三角面片的三个服装顶点的修正后的顶点位置信息,确定所述服装顶点的顶点法线;
当服装顶点存在于至少两个三角面片中时,确定所述服装顶点在每个三角面片的顶点法线;
对所述服装顶点在每个三角面片的顶点法线进行加权计算,得到所述服装顶点的顶点法线。
10.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
获取训练动画数据和服装预测模型;
对所述训练动画数据进行离线布料解算,得到训练动作数据和虚拟服装的训练点云数据;
从所述训练动作数据中提取所述虚拟对象在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移;
从所述虚拟服装的训练点云数据中提取所述虚拟服装在所述各个训练动画帧中服装顶点的顶点标签位置;
利用所述虚拟对象在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移,以及所述虚拟服装在所述各个训练动画帧中服装顶点的顶点标签位置,对所述服装预测模型进行训练,得到训练好的服装预测模型。
11.根据权利要求10中所述的方法,其特征在于,所述服装预测模型至少包括低频预测模块和高频预测模块,
所述利用所述虚拟对象在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移,以及所述虚拟服装的服装顶点在所述各个训练动画帧中的顶点标签位置,对所述服装预测模型进行训练,得到训练好的服装预测模型,包括:
利用所述虚拟对象在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移,以及所述虚拟服装的服装顶点在所述各个训练动画帧中的顶点标签位置,对所述低频预测模块进行训练,得到训练好的低频预测模块;
利用所述训练好的低频预测模块、所述虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移,确定所述虚拟服装的各个服装顶点在各个训练动画帧中的第二参考位置;
利用所述虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移、所述虚拟服装的服装顶点在所述各个训练动画帧中的顶点标签位置和第二参考位置,对高频预测模块进行训练,得到训练好的高频预测模块。
12.根据权利要求11中所述的方法,其特征在于,所述利用所述虚拟对象在各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移,以及所述虚拟服装的服装顶点在所述各个训练动画帧中的顶点标签位置,对所述低频预测模块进行训练,得到训练好的低频预测模块,包括:
基于所述虚拟服装在所述各个训练动画帧中服装顶点的顶点标签位置,确定所述虚拟服装的虚拟骨骼在所述各个训练动画帧中的骨骼标签旋转角度、骨骼标签位置和蒙皮权重;
将所述训练动画数据中的多个训练动画帧划分为多个训练动画分段,相邻的两个训练动画分段中包括预设个数的重叠训练动画帧;
利用所述低频预测模块对所述虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移进行预测处理,得到所述虚拟服装的虚拟骨骼在所述各个训练动画帧中的第二预测旋转角度和第二预测位置;
根据所述虚拟服装的虚拟骨骼在各个训练动画帧中的第二预测旋转角度、第二预测位置和蒙皮权重,确定所述虚拟服装的各个服装顶点在各个训练动画帧中的第三参考位置;
利用所述虚拟服装的各个服装顶点在各个训练动画帧中的第三参考位置和顶点标签位置,对所述低频预测模块进行训练,得到训练好的低频预测模块。
13.根据权利要求11中所述的方法,其特征在于,所述利用所述虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移、所述虚拟服装的服装顶点在所述各个训练动画帧中的顶点标签位置和第二参考位置,对高频预测模块进行训练,得到训练好的高频预测模块,包括:
利用所述高频预测模块对所述虚拟对象在每个训练动画分段的各个训练动画帧中关键骨骼的训练旋转角和根骨骼的训练位移进行预测处理,得到所述虚拟服装的各个服装顶点在各个训练动画帧中的预测偏移信息;
利用所述虚拟服装的各个服装顶点在各个训练动画帧中的第二参考位置和对应的预测偏移信息,确定所述虚拟服装的各个服装顶点在各个训练动画帧中的第二预测位置;
利用所述虚拟服装的各个服装顶点在各个训练动画帧中的第二预测位置和对应的顶点标签位置,对所述高频预测模块进行训练,得到训练好的高频预测模块。
14.一种虚拟服装预测装置,其特征在于,所述装置包括:
第一获取模块,用于获取虚拟对象的动作数据和针对服装预测模型的配置信息;
第二获取模块,用于获取所述配置信息对应的训练好的服装预测模型,所述训练好的服装预测模型是利用虚拟对象的训练动作数据和虚拟服装的训练点云数据训练得到的,所述训练动作数据和训练点云数据是通过对训练动画数据进行离线布料解算得到的;
预测模块,用于利用所述训练好的服装预测模型对所述动作数据进行预测处理,得到所述虚拟服装中各个服装顶点的顶点位置信息;
渲染模块,用于基于所述虚拟服装中各个服装顶点的顶点位置信息和所述虚拟服装的属性信息,渲染出所述虚拟对象在执行所述动作数据时穿着的虚拟服装。
15.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现权利要求1至13任一项所述的方法。
16.一种计算机可读存储介质,存储有计算机可执行指令或者计算机程序,其特征在于,所述计算机可执行指令或者计算机程序被处理器执行时实现权利要求1至13任一项所述的方法。
17.一种计算机程序产品,包括计算机可执行指令或计算机程序,其特征在于,所述计算机可执行指令或计算机程序被处理器执行时实现权利要求1至13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310936331.5A CN116664733B (zh) | 2023-07-28 | 2023-07-28 | 虚拟服装预测方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310936331.5A CN116664733B (zh) | 2023-07-28 | 2023-07-28 | 虚拟服装预测方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116664733A true CN116664733A (zh) | 2023-08-29 |
CN116664733B CN116664733B (zh) | 2024-01-30 |
Family
ID=87720966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310936331.5A Active CN116664733B (zh) | 2023-07-28 | 2023-07-28 | 虚拟服装预测方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116664733B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117152327A (zh) * | 2023-10-31 | 2023-12-01 | 腾讯科技(深圳)有限公司 | 一种参数调节方法和相关装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190228449A1 (en) * | 2016-10-12 | 2019-07-25 | Spiber Inc. | Garment production management apparatus, garment production management method, and garment made-to-order system |
CN114663199A (zh) * | 2022-05-17 | 2022-06-24 | 武汉纺织大学 | 一种动态展示的实时三维虚拟试衣系统及方法 |
CN114662172A (zh) * | 2022-05-19 | 2022-06-24 | 武汉纺织大学 | 一种基于神经网络的服装布料动态仿真模拟方法 |
CN114758213A (zh) * | 2020-12-28 | 2022-07-15 | 北京陌陌信息技术有限公司 | 一种服装模型的布料解算方法、设备和存储介质 |
CN115115752A (zh) * | 2022-04-29 | 2022-09-27 | 腾讯科技(上海)有限公司 | 虚拟服装的形变预测方法和装置、存储介质及电子设备 |
CN115272539A (zh) * | 2022-07-19 | 2022-11-01 | 网易(杭州)网络有限公司 | 基于虚拟场景的服饰数据处理方法、存储介质及相关设备 |
CN116091676A (zh) * | 2023-04-13 | 2023-05-09 | 腾讯科技(深圳)有限公司 | 虚拟对象的面部渲染方法及点云特征提取模型的训练方法 |
-
2023
- 2023-07-28 CN CN202310936331.5A patent/CN116664733B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190228449A1 (en) * | 2016-10-12 | 2019-07-25 | Spiber Inc. | Garment production management apparatus, garment production management method, and garment made-to-order system |
CN114758213A (zh) * | 2020-12-28 | 2022-07-15 | 北京陌陌信息技术有限公司 | 一种服装模型的布料解算方法、设备和存储介质 |
CN115115752A (zh) * | 2022-04-29 | 2022-09-27 | 腾讯科技(上海)有限公司 | 虚拟服装的形变预测方法和装置、存储介质及电子设备 |
CN114663199A (zh) * | 2022-05-17 | 2022-06-24 | 武汉纺织大学 | 一种动态展示的实时三维虚拟试衣系统及方法 |
CN114662172A (zh) * | 2022-05-19 | 2022-06-24 | 武汉纺织大学 | 一种基于神经网络的服装布料动态仿真模拟方法 |
CN115272539A (zh) * | 2022-07-19 | 2022-11-01 | 网易(杭州)网络有限公司 | 基于虚拟场景的服饰数据处理方法、存储介质及相关设备 |
CN116091676A (zh) * | 2023-04-13 | 2023-05-09 | 腾讯科技(深圳)有限公司 | 虚拟对象的面部渲染方法及点云特征提取模型的训练方法 |
Non-Patent Citations (1)
Title |
---|
刘正东: ""通用三维服装模型的强约束动态仿真方法"", 《计算机工程与科学》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117152327A (zh) * | 2023-10-31 | 2023-12-01 | 腾讯科技(深圳)有限公司 | 一种参数调节方法和相关装置 |
CN117152327B (zh) * | 2023-10-31 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 一种参数调节方法和相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116664733B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11508076B2 (en) | Learning rigidity of dynamic scenes for three-dimensional scene flow estimation | |
US11775829B2 (en) | Generative adversarial neural network assisted video reconstruction | |
EP4002198A1 (en) | Posture acquisition method and device, and key point coordinate positioning model training method and device | |
CN110227266B (zh) | 使用真实世界虚拟现实地图来构建虚拟现实游戏玩耍环境 | |
US20220036050A1 (en) | Real-time gesture recognition method and apparatus | |
US20190147296A1 (en) | Creating an image utilizing a map representing different classes of pixels | |
US20170069124A1 (en) | Avatar generation and animations | |
CN108734300A (zh) | 使用自主机器的识别、再标识和安全性增强 | |
EP4235491A1 (en) | Method and apparatus for obtaining virtual image, computer device, computer-readable storage medium, and computer program product | |
CN116664733B (zh) | 虚拟服装预测方法、装置、设备及计算机可读存储介质 | |
US20220222832A1 (en) | Machine learning framework applied in a semi-supervised setting to perform instance tracking in a sequence of image frames | |
EP4187492A1 (en) | Image generation method and apparatus, and computer device and computer-readable storage medium | |
US11954862B2 (en) | Joint estimation of heart rate and respiratory rate using neural networks | |
CN113762461A (zh) | 使用可逆增强算子采用有限数据训练神经网络 | |
CN116097316A (zh) | 用于非模态中心预测的对象识别神经网络 | |
Li et al. | Digital animation multimedia information synthesis based on mixed reality framework with specialized analysis on speech data | |
US20230298243A1 (en) | 3d digital avatar generation from a single or few portrait images | |
CN116958344A (zh) | 虚拟形象的动画生成方法、装置、计算机设备及存储介质 | |
US20230252692A1 (en) | Learning dense correspondences for images | |
CN110047118B (zh) | 视频生成方法、装置、计算机设备及存储介质 | |
CN113408694A (zh) | 用于生成式神经网络的权重解调 | |
CN113840169A (zh) | 一种视频处理方法、装置、计算设备和存储介质 | |
CN116091675B (zh) | 一种图像处理方法、装置、设备及存储介质 | |
US20240160888A1 (en) | Realistic, controllable agent simulation using guided trajectories and diffusion models | |
Marnik et al. | Using computer graphics, vision and gesture recognition tools for building interactive systems supporting therapy of children |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40092252 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |