CN117097919A - 虚拟角色渲染方法、装置、设备、存储介质和程序产品 - Google Patents
虚拟角色渲染方法、装置、设备、存储介质和程序产品 Download PDFInfo
- Publication number
- CN117097919A CN117097919A CN202210513721.7A CN202210513721A CN117097919A CN 117097919 A CN117097919 A CN 117097919A CN 202210513721 A CN202210513721 A CN 202210513721A CN 117097919 A CN117097919 A CN 117097919A
- Authority
- CN
- China
- Prior art keywords
- video
- real
- virtual character
- target object
- time
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 100
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000001514 detection method Methods 0.000 claims abstract description 153
- 238000004590 computer program Methods 0.000 claims abstract description 26
- 230000008921 facial expression Effects 0.000 claims abstract description 23
- 230000008859 change Effects 0.000 claims abstract description 22
- 230000001815 facial effect Effects 0.000 claims abstract description 9
- 210000000988 bone and bone Anatomy 0.000 claims description 32
- 238000006243 chemical reaction Methods 0.000 claims description 26
- 238000006073 displacement reaction Methods 0.000 claims description 10
- 238000004898 kneading Methods 0.000 claims description 2
- 230000033001 locomotion Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 230000009471 action Effects 0.000 description 14
- 230000000694 effects Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 210000000887 face Anatomy 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011897 real-time detection Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 210000001508 eye Anatomy 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 210000004709 eyebrow Anatomy 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 210000004209 hair Anatomy 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000000214 mouth Anatomy 0.000 description 1
- 210000001331 nose Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000000697 sensory organ Anatomy 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23412—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/242—Synchronization processes, e.g. processing of PCR [Program Clock References]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43072—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请涉及一种虚拟角色渲染方法、装置、计算机设备、存储介质和计算机程序产品。该方法可以应用于实时驱动及动画渲染场景,该方法包括:获取包括目标对象的实时视频画面;在虚幻引擎中调用视频检测插件对该实时视频画面进行视频检测,得到目标对象的实时骨骼节点数据与目标对象的面部捏脸数据;将虚拟角色模型与目标对象的骨骼节点绑定,根据骨骼节点的实时骨骼节点数据实时驱动虚拟角色模型对应的虚拟角色运动,根据面部捏脸数据实时控制虚拟角色的面部表情变化,并对虚拟角色进行渲染显示。能够提升目标对象的虚拟体验,打通在虚幻引擎中获取拍摄目标对象的实时视频画面实时驱动虚拟角色以及对虚拟角色进行渲染的链路。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种虚拟角色方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术与互联网技术的快速发展,形式各异的虚拟角色可以为人们带来各式各样的虚拟体验。通常虚拟角色由骨骼动画驱动,骨骼动画是由美术人员进行制作设计的,制作好骨骼动画的关键帧数据后,可以驱动虚拟角色按照预设的行为轨迹进行运动,这是一种离线驱动方式。近年来还出现了让用户佩戴动作捕捉设备,捕捉用户动作以实时驱动虚拟角色的方式,其使用门槛高、价格昂贵、使用场景有限,而且佩戴的大型动作捕捉设备通常难以让用户展示剧烈动作,导致用户体验较差,此外由于驱动的虚拟角色模型是事先设定好的,其外形与表情较为单一导致各个用户所体验的虚拟角色较为单一,虚拟体验较差。
发明内容
基于此,有必要针对上述技术问题,提供一种既能够降低实时驱动虚拟角色的成本又能够提升用户的虚拟角色体验的虚拟角色渲染方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种虚拟角色渲染方法。所述方法包括:
获取包括目标对象的实时视频画面;
在所述虚幻引擎中调用视频检测插件对所述实时视频画面进行视频检测,得到所述目标对象的骨骼节点的实时骨骼节点数据,以及所述目标对象对应的面部捏脸数据;
获取虚拟角色模型,将所述虚拟角色模型与所述目标对象的骨骼节点绑定,根据所述骨骼节点的实时骨骼节点数据,实时驱动所述虚拟角色模型对应的虚拟角色运动,根据所述面部捏脸数据,实时控制所述虚拟角色的面部表情变化,并对所述虚拟角色进行渲染显示。
第二方面,本申请还提供了一种虚拟角色渲染装置。所述装置包括:
获取模块,用于获取包括目标对象的实时视频画;
检测模块,用于在所述虚幻引擎中调用视频检测插件对所述实时视频画面进行视频检测,得到所述目标对象的骨骼节点的实时骨骼节点数据,以及所述目标对象对应的面部捏脸数据;
渲染模块,用于获取虚拟角色模型,将所述虚拟角色模型与所述目标对象的骨骼节点绑定,根据所述骨骼节点的实时骨骼节点数据,实时驱动所述虚拟角色模型对应的虚拟角色运动,根据所述面部捏脸数据,实时控制所述虚拟角色的面部表情变化,并对所述虚拟角色进行渲染显示。
在一个实施例中,所述获取模块,还用于在所述虚幻引擎中调用视频采集插件,通过所述视频采集插件中与当前操作系统匹配的摄像头调用逻辑,请求获取调用摄像头的权限,在获取到调用摄像头的权限后,获取摄像头捕获的包括目标对象的实时视频画面,所述视频采集插件集成了各类操作系统的摄像头调用逻辑。
在一个实施例中,所述检测模块,还用于确定所述实时视频画面对应的视频数据的原始编码格式;当所述原始编码格式为视频检测插件所处理的目标编码格式时,则通过所述视频检测插件对所述实时视频画面对应的视频数据进行视频检测;当所述原始编码格式不为所述视频检测插件所处理的目标编码格式时,则对所述原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据,通过所述视频检测插件对所述目标编码格式的视频数据进行视频检测。
在一个实施例中,所述检测模块,还用于对所述原始编码格式的视频数据进行解码,得到解码视频数据;按所述目标编码格式对所述解码视频数据进行重新编码,得到目标编码格式的视频数据。
在一个实施例中,所述检测模块,还用于在所述虚幻引擎中启动子线程,所述子线程是在主线程创建的子线程,所述主线程是用于获取实时视频画面以及对虚拟角色进行渲染显示的线程;采用所述子线程对所述原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据。
在一个实施例中,所述检测模块,还用于调用与当前操作系统匹配的图形绘制接口,将所述原始编码格式的视频数据输入至图形处理器中,在所述图形处理器中对所述原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据;将存放于显存中的所述目标编码格式的视频数据读取到内存后,通过所述视频检测插件对所述目标编码格式的视频数据进行视频检测。
在一个实施例中,所述检测模块,还用于在所述虚幻引擎中调用视频检测插件,从所述实时视频画面中分割出目标对象区域,在所述目标对象区域中确定所述目标对象各骨骼节点的位置;依据相邻实时视频画面中相同骨骼节点的位置,输出各骨骼节点的位移信息与旋转角度信息。
在一个实施例中,所述渲染模块,还用于获取所述虚幻引擎中各个预设的虚拟角色模型各自对应的角色特征;获取当前登录对象的对象特征,作为所述目标对象的对象特征;基于所述角色特征与所述对象特征之间的匹配度,从所述各个预设的虚拟角色模型中确定与所述目标对象匹配的虚拟角色模型。
在一个实施例中,所述渲染模块,还用于将所述虚拟角色模型的顶点与所述目标对象的至少一个骨骼节点绑定;根据所述顶点所绑定的骨骼节点的权重,对所绑定的骨骼节点各自对应的实时骨骼节点数据进行加权求和,得到实时更新的所述顶点的驱动数据;基于所述驱动数据,实时驱动所述虚拟角色模型对应的虚拟角色运动。
在一个实施例中,所述装置还包括面部数据获取模块,所述检测模块用于当启动视频检测插件时,通过调用视频检测插件对所述实时视频画面进行视频检测,得到所述目标对象对应的面部捏脸数据;当未启动视频检测插件时,获取在面部编辑界面中编辑的关于所述目标对象的面部捏脸数据。
在一个实施例中,所述实时视频画面是所述目标对象的原始直播画面;所述装置还包括:直播数据传输模块,用于获取所述原始直播画面中所述目标对象所在的现实场景;将渲染显示的所述虚拟角色与所述现实场景融合,生成虚拟角色直播画面;将所述虚拟角色直播画面上传至服务器后进行视频推送。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取包括目标对象的实时视频画面;
在所述虚幻引擎中调用视频检测插件对所述实时视频画面进行视频检测,得到所述目标对象的骨骼节点的实时骨骼节点数据,以及所述目标对象对应的面部捏脸数据;
获取虚拟角色模型,将所述虚拟角色模型与所述目标对象的骨骼节点绑定,根据所述骨骼节点的实时骨骼节点数据,实时驱动所述虚拟角色模型对应的虚拟角色运动,根据所述面部捏脸数据,实时控制所述虚拟角色的面部表情变化,并对所述虚拟角色进行渲染显示。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取包括目标对象的实时视频画面;
在所述虚幻引擎中调用视频检测插件对所述实时视频画面进行视频检测,得到所述目标对象的骨骼节点的实时骨骼节点数据,以及所述目标对象对应的面部捏脸数据;
获取虚拟角色模型,将所述虚拟角色模型与所述目标对象的骨骼节点绑定,根据所述骨骼节点的实时骨骼节点数据,实时驱动所述虚拟角色模型对应的虚拟角色运动,根据所述面部捏脸数据,实时控制所述虚拟角色的面部表情变化,并对所述虚拟角色进行渲染显示。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取包括目标对象的实时视频画面;
在所述虚幻引擎中调用视频检测插件对所述实时视频画面进行视频检测,得到所述目标对象的骨骼节点的实时骨骼节点数据,以及所述目标对象对应的面部捏脸数据;
获取虚拟角色模型,将所述虚拟角色模型与所述目标对象的骨骼节点绑定,根据所述骨骼节点的实时骨骼节点数据,实时驱动所述虚拟角色模型对应的虚拟角色运动,根据所述面部捏脸数据,实时控制所述虚拟角色的面部表情变化,并对所述虚拟角色进行渲染显示。
上述虚拟角色渲染方法、装置、计算机设备、存储介质和计算机程序产品,虚幻引擎可以提供高质量渲染效果,通过虚幻引擎获取到包括目标对象的实时视频画面,并在虚幻引擎中直接调用视频检测插件对实时视频画面进行视频检测,可以得到目标对象的骨骼节点的实时骨骼节点数据与目标对象对应的面部捏脸数据。这样,通过在虚幻引擎中将获取的虚拟角色模型绑定了目标对象的骨骼节点之后,就可以根据骨骼节点的实时骨骼节点数据,实时驱动虚拟角色模型对应的虚拟角色进行运动,根据实时变化的面部捏脸数据,实时控制虚拟角色的面部表情变化,据此基于虚幻引擎高质量实时渲染显示的虚拟角色,不仅渲染质量高,无需目标对象佩戴额外动作捕捉设备,而且渲染显示的虚拟角色的动作、面部表情变化均与实时视频画面中目标对象保持同步,提升了目标对象的虚拟体验,还打通了在虚幻引擎中获取拍摄目标对象的实时视频画面、输出实时骨骼节点数据来实时驱动虚拟角色以及对虚拟角色进行高质量渲染的链路。
附图说明
图1为一个实施例中虚拟角色渲染方法的应用环境图;
图2为一个实施例中虚拟角色渲染的整体框架;
图3为一个实施例中虚拟角色渲染的流程示意图;
图4为一个实施例中获取虚拟角色的驱动数据的框架图;
图5为一个实施例中视频检测的框架示意图;
图6为一个实施例中对编码格式各异的视频数据进行数据预处理的示意图;
图7为一个实施例中骨骼节点示意图;
图8为一个实施例中将虚拟角色模型绑定骨骼的示意图;
图9为一个实施例中虚拟角色驱动的示意图;
图10为一个实施例中虚拟角色渲染装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面对本申请涉及的一些概念进行说明:
虚幻引擎:一种具备高质量渲染能力的引擎,例如UE4,是一种游戏引擎。
虚幻引擎中的插件:例如在UE4中,插件是开发者可在编辑器中逐项目启用或禁用的代码和数据集合。插件可添加运行时游戏功能,修改内置引擎功能、新建文件类型、使用新菜单、工具栏命令和子模式扩展编辑器的功能。使用插件可扩展许多UE4子系统。
编辑器(Editor):是UE4可视化操作工具,将UE4功能集成到可视化界面上方便用户快速编辑,并集成了各种工具,是开发者或用户使用引擎的桥梁。
单目相机:具备一个摄像头的相机。
Mesh:模型的网格。通常3D模型是由多边形拼接而成的,一个复杂的多边形实际上是由多个三角面拼接而成的,一个3D模型的表面是由多个彼此相连的三角面构成的,三维空间中构成这些三角面的顶点、边的集合就是Mesh。
骨骼:一种动画算法抽象出的概念,物理意义类比骨骼,模仿人体骨骼来控制虚拟模型驱动。
骨骼动画:美术人员事先制作好的动画资源,用来控制骨骼的位置变换,间接驱动其绑定的Mesh顶点的位置变换,通常用于驱动较多较复杂的动画,如人物的跑动,跳跃等。
骨骼蒙皮:选定一个骨骼后,指定Mesh的哪些顶点受它驱动以及相应的驱动权重。
相关技术中的人体驱动虚拟角色,要么是通过离线数据进行驱动的,无法实现实时驱动,要么是通过用户佩戴大型动作捕捉设备进行驱动的,捕捉用户动作以实时驱动虚拟角色的方式,其使用门槛高、价格昂贵、使用场景有限,而且佩戴的大型动作捕捉设备通常难以让用户展示剧烈动作,导致用户体验较差。此外,传统游戏应用中的虚拟角色,是通过美术人员制作好骨骼动画控制虚拟角色按照预设的轨迹、行为运动,制作成本高昂,其本质也是一种离线驱动方式,无法做到实时控制虚拟角色的行为。本申请提供了一种虚拟角色驱动方法,打通了在虚幻引擎中获取拍摄目标对象的实时视频画面、输出实时骨骼节点数据来实时驱动虚拟角色以及对虚拟角色进行高质量渲染的链路。
本申请实施例提供的虚拟角色渲染方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。
在一个实施例中,终端102可以通过虚幻引擎直接获取包括目标对象的实时视频画面,在虚幻引擎中调用视频检测插件对实时视频画面进行视频检测,得到目标对象的骨骼节点的实时骨骼节点数据,以及目标对象对应的面部捏脸数据;获取该虚幻引擎提供的虚拟角色模型,将虚拟角色模型与目标对象的骨骼节点绑定,根据骨骼节点的实时骨骼节点数据,实时驱动虚拟角色模型对应的虚拟角色运动,根据面部捏脸数据,实时控制虚拟角色的面部表情变化,并对虚拟角色进行渲染显示。
在一个实施例中,终端102上配置有摄像头,该摄像头可以是单目摄像头或双目摄像头,终端102可以在虚幻引擎中调用摄像头拍摄目标对象,得到目标对象的实时视频画面。在一个实施例中,终端120上运行有目标应用,为获得高质量渲染效果,目标应用中部分或全部的图形绘制可基于虚幻引擎实现,该虚幻引擎例如可以是UE4或其它高质量游戏引擎,该目标应用例如可以是游戏应用、直播应用、短视频应用、社交应用等等。终端102在运行目标应用后,在目标应用需要实现基于目标对象驱动虚拟角色的功能时,可通过虚幻引擎直接调用摄像头拍摄目标对象,得到目标对象的实时视频画面,在虚幻引擎中调用视频检测插件对实时视频画面进行视频检测,得到目标对象的骨骼节点的实时骨骼节点数据,以及目标对象对应的面部捏脸数据,基于实时骨骼节点数据与实时面部捏脸数据进行实时虚拟角色驱动。
在一个实施例中,目标应用还可以将实时渲染显示的虚拟角色画面上传至服务器104。例如,在游戏场景中,用户A与用户B通过游戏应用进行游戏互动,用户A使用的终端就可以将用户A实时驱动的虚拟角色画面上传至服务器104,由服务器104将虚拟角色画面下发至用户B使用的终端,或是,由服务器104根据用户A对应的实时虚拟角色画面更新游戏场景画面,并将更新的游戏场景画面下发至用户A与用户B各自使用的终端。又例如,在直播场景中,用户通过直播应用进行视频直播,用户C使用的终端采集用户C的原始直播画面,获取原始直播画面中用户C所在现实场景,并将用户C实时驱动的虚拟角色画面与该现实场景融合,生成虚拟角色直播画面,将虚拟角色直播画面上传至服务器104后进行直播视频推流。
其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,为一个实施例中虚拟角色渲染的整体框架。参照图2,首先需要获取实时视频画面对应的视频数据,对于编码格式各异的视频数据,则需要对视频数据进行预处理得到与视频检测算法适配的编码格式的视频数据,再进行视频检测以驱动虚拟角色,最后对驱动的虚拟角色进行渲染显示。
在一个实施例中,如图3所示,提供了一种虚拟角色渲染方法,该方法可以由终端102或服务器104单独执行,也可以由终端102与服务器104协同执行,例如,可由服务器104向终端提供虚拟角色模型。下面主要以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
步骤302,获取包括目标对象的实时视频画面。
其中,目标对象通常是指用户,下文所提到的虚拟角色可以是虚拟人物、虚拟动物或虚拟动画角色等虚拟形象,实时视频画面是实时采集的包括目标对象的视频画面,该目标对象作出的动作与表情通过实时视频画面呈现。
在一个实施例中,获取包括目标对象的实时视频画面,包括:在虚幻引擎中调用视频采集插件,通过视频采集插件中与当前操作系统匹配的摄像头调用逻辑,请求获取调用摄像头的权限,在获取到调用摄像头的权限后,获取摄像头捕获的包括目标对象的实时视频画面,视频采集插件集成了各类操作系统的摄像头调用逻辑。
本实施例中,为了在获得高质量渲染效果的同时,实现虚拟角色的实时驱动,开发人员可以在虚幻引擎中集成视频采集插件,通过该视频采集插件调用摄像头,获取摄像头捕获的包括目标对象的实时视频画面。其中,摄像头可以是终端上的单目摄像头或电脑眼。该视频采集插件集成了各类操作系统的摄像头调用逻辑,可支持各类操作系统。终端可以通过视频采集插件中与当前操作系统匹配的摄像头调用逻辑,请求获取调用摄像头的权限,在获取到调用摄像头的权限后,获取摄像头捕获的包括目标对象的实时视频画面。
本实施例中,终端采集的实时视频画面,通过虚幻引擎中统一的视频采集插件发起系统权限获取,该插件封装不同操作系统的摄像头、麦克风的调用逻辑,用户对底层实现无感知,只需要简单调用插件,即可完成权限获取,在虚幻引擎中接收本地音视频设备捕获的数据。
在一个具体的应用场景中,用户位于终端摄像头前方,终端上安装了基于虚幻引擎实现的目标应用,目标应用启动后,通过虚幻引擎中的视频采集插件调用摄像头采集摄像头的拍摄范围内的实时画面。用户对着终端的摄像头做出的动作与表情就会被实时采集到,从而获取到实时采集的包括目标对象的实时视频画面。其中,该摄像头可以是前置摄像头或后置摄像头。
在一个实施例中,终端还可以通过网络接收其它计算机设备采集并传输的包括目标对象的实时视频画面。可选地,当虚幻引擎中的该视频采集插件被启动时,可以通过该视频采集插件直接捕获包括目标对象的实时视频画面,当该视频采集插件未被启动时,终端可以通过网络接收其它计算机设备采集并传输的包括目标对象的实时视频画面。
步骤304,在虚幻引擎中调用视频检测插件对实时视频画面进行视频检测,得到目标对象的骨骼节点的实时骨骼节点数据,以及目标对象对应的面部捏脸数据。
本申请实施例中,不需要通过骨骼动画或离线数据驱动虚拟角色,为了在获得高质量渲染效果的同时,实现虚拟角色的实时驱动,开发人员可以在虚幻引擎中集成视频检测插件,终端通过调用虚幻引擎的视频检测插件对实时视频画面进行视频检测,得到目标对象的骨骼节点的实时骨骼节点数据。此外,本申请实施例中,为了提升渲染显示的虚拟角色与目标对象的匹配度,提高渲染显示的真实感,避免捏脸数据是为虚拟角色模型事先设定的带来虚拟体验十分呆滞、单一的问题,终端还可以通过利用虚幻引擎的视频检测插件进行视频检测获取目标对象的实时面部捏脸数据,在虚幻引擎中基于实时骨骼节点数据与实时面部捏脸数据共同驱动、渲染虚拟角色。此外,在虚幻引擎中直接集成视频检测插件,可供不同平台、不同操作系统的终端或应用使用,无需兼容平台。
其中,目标对象的骨骼节点,可以是通过视频检测所确定的与目标对象的运动关联程度较高的关节点,可以理解,目标对象的运动可以通过骨骼节点的位移与旋转角度确定,那么实时骨骼节点数据指的就是通过视频检测所确定的各个骨骼节点的位移与旋转角度信息。类似地,目标对象的面部外形以及面部表情的变化,也可以通过虚拟角色反映出来。
步骤306,获取虚拟角色模型,将虚拟角色模型与目标对象的骨骼节点绑定,根据骨骼节点的实时骨骼节点数据,实时驱动虚拟角色模型对应的虚拟角色运动,根据面部捏脸数据,实时控制虚拟角色的面部表情变化,并对虚拟角色进行渲染显示。
其中,虚拟角色模型是虚拟角色对应的模型,也称虚拟角色三维网格模型,模型的表面是由多个彼此相连的三角面构成的,构成这些三角面的顶点以及三角面的边的集合可以表征该模型。该虚拟角色模型可以是用于模拟人物的虚拟人物模型、模拟动物的虚拟动物模型或虚拟动画角色模型等待。
此外,该虚拟角色模型的外形可以是预设的,例如虚拟角色模型的头发、服饰、配饰可以是事先设置的,该虚拟角色模型的五官也可以是事先设置好的,而在渲染显示时则通过上述面部捏脸数据进行更新渲染。该虚拟角色模型还可以是具有角色特征的模型,终端所获取的虚拟角色模型的角色特征是与目标对象的对象特征匹配的。需要说明的是,终端可以在执行视频检测之前,执行获取虚拟角色模型,将虚拟角色模型与目标对象的骨骼节点绑定的步骤。
终端将虚拟角色模型与目标对象的骨骼节点绑定,即记录虚拟角色模型中的各个顶点分别受到哪些骨骼节点的影响以及相应的影响权重,从而建立了虚拟角色与目标对象之间的联动,使得根据骨骼节点数据驱动虚拟角色模型对应的虚拟角色进行运动。
终端在将虚拟角色模型绑定目标对象的骨骼节点之后,就可以根据骨骼节点的实时骨骼节点数据,实时驱动虚拟角色模型对应的虚拟角色运动,同时根据面部捏脸数据,实时控制虚拟角色的面部表情变化,直接利用虚幻引擎的高质量渲染能力对虚拟角色进行渲染显示,可呈现与目标对象的运动方式一致且表情变化相同的虚拟角色。
可以理解,由于开发人员在虚幻引擎中集成了视频检测插件,那么对于任意一个应用,均可以在虚幻引擎中实现从获取拍摄目标对象的实时视频画面、输出实时骨骼节点数据来实时驱动虚拟角色以及对虚拟角色进行高质量渲染的链路。
上述虚拟角色渲染方法中,虚幻引擎可以提供高质量渲染效果,通过虚幻引擎获取到包括目标对象的实时视频画面,并在虚幻引擎中直接调用视频检测插件对实时视频画面进行视频检测,可以得到目标对象的骨骼节点的实时骨骼节点数据与目标对象对应的面部捏脸数据。这样,通过在虚幻引擎中将获取的虚拟角色模型绑定了目标对象的骨骼节点之后,就可以根据骨骼节点的实时骨骼节点数据,实时驱动虚拟角色模型对应的虚拟角色进行运动,根据实时变化的面部捏脸数据,实时控制虚拟角色的面部表情变化,据此基于虚幻引擎高质量渲染显示的虚拟角色,不仅渲染质量高,无需目标对象佩戴额外动作捕捉设备,而且渲染显示的虚拟角色的动作、面部表情变化均与实时视频画面中目标对象保持同步,提升了目标对象的虚拟体验,还打通了在虚幻引擎中获取拍摄目标对象的实时视频画面、输出实时骨骼节点数据来实时驱动虚拟角色以及对虚拟角色进行高质量渲染的链路。
在一个实施例中,在虚幻引擎中调用视频检测插件对实时视频画面进行视频检测,包括:确定实时视频画面对应的视频数据的原始编码格式;当原始编码格式为视频检测插件所处理的目标编码格式时,则通过视频检测插件对实时视频画面对应的视频数据进行视频检测;当原始编码格式不为视频检测插件所处理的目标编码格式时,则对原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据,通过视频检测插件对目标编码格式的视频数据进行视频检测。
其中,原始编码格式是终端获取的实时视频画面所得到的视频数据的编码格式,可见,操作系统不同,获取的视频数据的编码方式不统一。当实时视频画面是在虚幻引擎中调用视频采集插件获得终端的摄像头权限,在获得摄像头权限后通过摄像头采集的情况下,此时的原始编码格式是与当前终端操作系统匹配的。当实时视频画面是终端接收其它计算机设备传输的情况下,则实时视频画面对应的视频文件可能是与该计算机设备的操作系统统一的。有的视频数据采用YUV编码方式(一种视频数据存储格式,其中Y表示一个点的颜色的明亮度,UV表示一个点的颜色的亮度,U是蓝色分量,V是红色分量,YUV共同描述一个点的颜色),有的视频数据是采用RGB编码方式(一种视频数据存储格式,R表示红色分量、G表示绿色分量、B表示蓝色分量),而进行视频检测所输入的视频数据通常是统一的目标编码格式,例如是RGB编码方式,那么为了实现跨平台的视频检测,各个平台均能够利用该视频检测插件进行视频检测,就需要在一些情况下对视频数据进行预处理,也就是进行解码后再重新编码,进行视频编码格式的转换,转换为视频检测插件能够统一处理的目标编码格式,通过视频检测插件对目标编码格式的视频数据进行视频检测。
如图4所示,为一个实施例中获取虚拟角色的驱动数据的框架图。参照图4,不同操作系统平台例如iOS、Android、Windows等捕捉的实时视频画面所对应的视频数据,其编码格式是各异的,或者其它计算机设备实时传输的视频文件的格式是各异的,视频文件的格式例如MP4文件、WMV文件或AVI文件,等等。对于不同平台采集的实时视频画面对应的视频数据或接收的不同格式的视频文件,进行视频编码格式的转换,转换为视频检测插件能够统一处理的目标编码格式,再进行视频检测,得到实时骨骼节点数据与面部捏脸数据。
图5所示,为一个实施例中优化视频检测得到驱动数据的框架示意图。参照图5,输入的原始编码格式的视频数据,经过预处理,预处理过程中经过加速提升检测性能,得到视频检测所需要的目标编码格式的视频数据,再经过视频检测,输出实时检测结果,下游的虚拟角色驱动模块异步读取该实时检测结果进行虚拟角色驱动。
在一个实施例中,对原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据,包括:对原始编码格式的视频数据进行解码,得到解码视频数据;按目标编码格式对解码视频数据进行重新编码,得到目标编码格式的视频数据。
在需要进行格式转换的情况下,终端需要先对原编码格式的视频数据进行预处理,预处理包括先进行解码,得到解码视频数据,再按目标编码格式重新编码,得到目标编码格式的视频数据。
通常,解码与重新编码会影响其它进程,例如影响视频采集、虚拟角色渲染显示的流畅度,例如,通常在将YUV编码格式的视频数据转换成RGB编码格式时,是通过在CPU逻辑层访问数据源,逐个像素读取,通过转换函数输入源编码格式像素,输出目标编码格式的视频数据,此方式在转换过程中,会阻塞当前逻辑线程,直到转换完成后,才会执行后续逻辑,影响其它进程。
为此,本申请还提出了加速格式转换的方式,提升格式转换性能。如图6所示,为一个实施例中对编码格式各异的视频数据进行数据预处理,预处理过程中进行格式转换的提速,得到目标编码格式的视频数据。
在一个实施例中,对原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据,包括:在虚幻引擎中启动子线程,子线程是在主线程中创建的子线程,主线程是用于获取实时视频画面以及对虚拟角色进行渲染显示的线程;采用子线程对原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据。
本实施例中,在需要启动格式转换时,启动格式转换子线程,例如可以通过NEON指令在格式转换启动时,启动子线程,子线程独立于获取实时视频画面以及对虚拟角色进行渲染显示所在的主线程运行,那么这些主线程不会被格式转换所在的子线程阻塞,当子线程完成后通知主线程,完成视频数据的格式转换。
在一个实施例中,对原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据,包括:调用与当前操作系统匹配的图形绘制接口,将原始编码格式的视频数据输入至图形处理器中,在图形处理器中对原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据;通过视频检测插件对目标编码格式的视频数据进行视频检测,包括:将存放于显存中的目标编码格式的视频数据读取到内存后,通过视频检测插件对目标编码格式的视频数据进行视频检测。
本实施例中,终端还包括图形处理器,终端通过图形处理器即GPU来进行格式转换,对于不同操作系统的终端,都可以相应操作系统支持的图形绘制接口即图形API(Application Programming Interface,应用程序接口),调用绘制函数,例如,主流的图形API有:DirectX、OpenGL和OpenGL ES,DirectX被Windows系统支持,OpenGL被Windows、Linux、Mac(Unix)系统支持,OpenGL ES被iOS、Android系统支持。调用图形API将原始编码格式的视频数据输入到GPU中,通过着色器来在GPU中进行格式转换,再通过读取GPU纹理(能够被GPU识别的像素格式)将转换完成的显存中的数据传回内存,进行后续的视频检测,可以实现大批量并行化计算,极大增加视频数据格式转换效率。
在一个实施例中,在虚幻引擎中调用视频检测插件对实时视频画面进行视频检测,得到目标对象的骨骼节点的实时骨骼节点数据,包括:在虚幻引擎中调用视频检测插件,从实时视频画面中分割出目标对象区域,在目标对象区域中确定目标对象各骨骼节点的位置;依据相邻实时视频画面中相同骨骼节点的位置,输出各骨骼节点的位移信息与旋转角度信息。
本申请实施例中,视频检测可以基于神经网络的视频检测算法实现,视频检测插件包括两个部分的功能,一部分是对目标对象的动作进行检测,另一部分是对目标对象的面部表情进行检测。可选地,视频检测插件可集成基于神经网络的动作捕捉模型,对目标对象的动作进行检测,确定目标对象的每个骨骼节点在实时视频画面中的位置信息,包括位移信息与旋转角度信息,进而可以依据相邻两帧视频画面中相同骨骼节点的位置,输出各个骨骼节点的位移信息与旋转角度信息。
如图7所示,为一个实施例中骨骼节点示意图。参照图7,各个骨骼节点用小圆圈表示,各个骨骼节点的位置变化与角度变化,能够反映目标对象的运动动作。
在一个实施例中,视频检测插件还用于提取实时视频画面的图像特征,将当前实时视频画面的图像特征与前一帧的图像特征或在前相邻的多帧视频画面的图像特征进行比较,确定比较的图像特征之间的差异,若差异大于预设阈值,则说明目标对象的动作可能发生了大幅变化,此时需要依据相邻两帧视频画面中相同骨骼节点的位置,计算并更新当前实时视频画面中各个骨骼节点的位移信息与旋转角度信息;若差异小于预设阈值,则说明目标对象的动作可能未发生太大变化,为了避免频繁计算并更新骨骼节点的位置信息所带来的渲染性能下降的问题,检测视频插件可以直接将前次或在前相邻的多帧视频画面对应的位置信息,作为当前实时视频画面中各个骨骼节点的位置信息。
此外,视频检测插件还可集成基于神经网络的面部表情识别模型,从实时视频画面中检测出目标对象的人脸区域,对目标对象的人脸面部关键点进行识别,确定人脸面部关键点所在位置,包括眉毛、眼睛、鼻子、嘴、脸部轮廓等,作为实时面部捏脸数据,提高渲染显示的真实感,避免捏脸数据是为虚拟角色模型事先设定的带来虚拟体验十分呆滞、单一的问题。
在一个实施例中,获取虚拟角色模型,包括:获取虚幻引擎中各个预设的虚拟角色模型各自对应的角色特征;获取当前登录对象的对象特征,作为目标对象的对象特征;基于角色特征与对象特征之间的匹配度,从各个预设的虚拟角色模型中确定与目标对象匹配的虚拟角色模型。
本实施例中,虚拟角色模型对应的虚拟角色具有相应的角色特征,例如:性别、身高、体重、年龄、身型、发型、性格、声音、风格、服饰、配饰等。在一个实施例中,用户可以使用终端在目标应用中注册用户标识,登录了该目标应用之后,终端可以在大量预设的或推荐的虚拟角色模型中确定一种与当前登录用户匹配度较高的虚拟角色模型,作为用于模拟目标对象的虚拟角色模型。这样使得所获取的虚拟角色模型与当前目标对象更为匹配,避免各个用户使用相同、单一的虚拟角色模型存在的虚幻体验较差的问题。当然,终端也可以展示虚拟角色设置界面,用户可以在该设置界面中按自己的偏好选取虚拟角色模型。
在一个实施例中,将虚拟角色模型与目标对象的骨骼节点绑定,根据骨骼节点的实时骨骼节点数据,实时驱动虚拟角色模型对应的虚拟角色运动,包括:将虚拟角色模型的顶点与目标对象的至少一个骨骼节点绑定;根据顶点所绑定的骨骼节点的权重,对所绑定的骨骼节点各自对应的实时骨骼节点数据进行加权求和,得到实时更新的顶点的驱动数据;基于驱动数据,实时驱动虚拟角色模型对应的虚拟角色运动。
具体地,终端通过虚幻引擎,将虚拟角色模型的顶点与骨骼节点绑定,即为每个顶点记录受到哪些骨骼节点的影响,以及相应的影响权重。例如,虚拟角色模型中某个顶点V受到骨骼节点1、骨骼节点2以及骨骼节点3的影响,那么就将该顶点V按各自的影响权重绑定至骨骼节点1、骨骼节点2以及骨骼节点3,这个过程称为骨骼蒙皮,并基于骨骼节点1、骨骼节点2以及骨骼节点3的实时骨骼节点数据,按相应的影响权重a、b、c进行加权求和,更新顶点V的位置信息,从而驱动述虚拟角色模型对应的虚拟角色运动,其中权重a、b、c之和应当为1。
图8所示,为一个实施例中将虚拟角色模型绑定骨骼的示意图。参照图8,获取到虚拟角色模型与目标对象的骨骼节点后,进行骨骼蒙皮,参照图8,例如,顶点V1绑定至骨骼节点1、骨骼节点2,权重分别为a、b;顶点V2绑定至骨骼节点1、骨骼节点3,权重分别为c、d;顶点V3绑定至骨骼节点4、5、6,权重分别为e、f、g。照此类推,将虚拟角色模型中的各个顶点分别绑定骨骼节点。
如图9所示,为一个实施例中虚拟角色驱动的示意图。参照图9,在虚幻引擎中将虚拟角色模型绑定至骨骼后,将驱动数据输入虚幻引擎的虚拟角色动画系统,驱动数据包括骨骼节点数据与面部捏脸数据,用于计算虚拟角色模型的顶点驱动后的位置信息,从而更新虚拟角色模型的顶点位置,再对驱动后的虚拟角色渲染显示。
在一个实施例中,上述方法还包括:当启动视频检测插件时,通过执行所述调用视频检测插件对实时视频画面进行视频检测的步骤,得到目标对象对应的面部捏脸数据;当未启动视频检测插件时,获取在面部编辑界面中编辑的关于目标对象的面部捏脸数据。
本申请实施例中,当在虚幻引擎中启动了视频检测插件时,可以调用该视频检测插件对实时视频画面中的目标对象进行面部关键点识别,得到目标对象的面部捏脸数据,当在虚幻引擎中停用该视频检测插件时,那么可以提供用户自行编辑捏脸数据的方式,获得关于目标对象的面部捏脸数据,用于渲染显示,这样也能够在减轻虚幻引擎计算压力的情况下,避免捏脸数据是为虚拟角色模型事先设定的带来虚拟体验十分呆滞、单一的问题。
在一个实施例中,实时视频画面是目标对象的原始直播画面;上述方法还包括:获取原始直播画面中目标对象所在的现实场景;将渲染显示的虚拟角色与现实场景融合,生成虚拟角色直播画面;将虚拟角色直播画面上传至服务器后进行视频推送。
本实施例中,原始直播画面是采集的关于目标对象的直播画面,在不想要真人直播出境或为增加直播趣味性时,可以利用本申请实施例提供的虚拟角色渲染方法,基于该原始直播画面中目标对象的动作驱动虚拟角色,并将渲染显示的虚拟角色与目标对象所在的现实场景融合,生成实时更新的虚拟角色直播画面,上传至视频直播服务器后进行视频推送,这样用虚拟角色替换目标对象进行视频直播,其动作与表情均与目标对象一致,一方面可以减少真人出境、一方面又可以提供一种虚实结合的直播方式,丰富了直播形式。
在一个实施例中,实时视频画面是目标对象的原始动作画面,上述方法还包括:获取虚拟游戏场景;将渲染显示的虚拟角色与虚拟游戏场景融合,生成更新的虚拟游戏场景画面;将虚拟游戏场景画面上传至服务器后进行发送中游戏参与方所使用的设备。
具体而言,目标对象可通过比划动作进行游戏交互,目标对象在比划游戏动作时的画面被采集到形成实时视频画面,通过本申请实施例提供的虚拟角色渲染方法,渲染出与目标对象比划动作一致的虚拟角色,将该虚拟角色与虚拟游戏场景融合,形成实时更新的虚拟游戏场景画面,将虚拟游戏场景画面上传至服务器后进行发送中游戏参与方所使用的终端。该虚拟角色可以是游戏提供的某个虚拟人物。这样,目标对象控制虚拟角色参与游戏,提供了一种虚实结合的游戏方式,用户沉浸式游戏体验更好,并且虚拟角色参与到游戏过程中时的动作与神态基于目标对象实时驱动,不失个人特色,为参与游戏各方的用户提供更为真实的游戏体验。
在一个具体的实施例中,虚拟角色的渲染显示方法可由终端执行,包括以下步骤:
1、在虚幻引擎中调用视频采集插件,视频采集插件集成了各类操作系统的摄像头调用逻辑;
2、通过视频采集插件中与当前操作系统匹配的摄像头调用逻辑,请求获取调用摄像头的权限,在获取到调用摄像头的权限后,获取摄像头捕获的包括目标对象的实时视频画面;
3、确定实时视频画面对应的视频数据的原始编码格式;当原始编码格式为视频检测插件所处理的目标编码格式时,则通过视频检测插件对实时视频画面对应的视频数据进行视频检测;
4、当原始编码格式不为视频检测插件所处理的目标编码格式时,则对原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据;
5、在虚幻引擎中调用视频检测插件,从实时视频画面中分割出目标对象区域,在目标对象区域中确定目标对象各骨骼节点的位置,依据相邻实时视频画面中相同骨骼节点的位置,输出各骨骼节点的位移信息与旋转角度信息,以及在虚幻引擎中调用视频检测插件,识别目标对象的人脸关键点位置,得到目标对象对应的面部捏脸数据;
6、获取虚幻引擎中各个预设的虚拟角色模型各自对应的角色特征;获取当前登录对象的对象特征,作为目标对象的对象特征;基于角色特征与对象特征之间的匹配度,从各个预设的虚拟角色模型中确定与目标对象匹配的虚拟角色模型;
7、将虚拟角色模型的顶点与目标对象的至少一个骨骼节点绑定;根据顶点所绑定的骨骼节点的权重,对所绑定的骨骼节点各自对应的实时骨骼节点数据进行加权求和,得到实时更新的顶点的驱动数据;基于驱动数据,实时驱动虚拟角色模型对应的虚拟角色运动;
8、根据面部捏脸数据,实时控制虚拟角色的面部表情变化,并对虚拟角色进行渲染显示;
9、获取实时视频画面中目标对象所在的现实直播场景;将渲染显示的虚拟角色与现实直播场景融合,生成虚拟角色直播画面;将虚拟角色直播画面上传至服务器后进行视频推送。
本实施例中,在虚幻引擎中集成视频采集插件,通过该视频采集插件调用摄像头,获取摄像头捕获的包括目标对象的实时视频画面,可以在获得高质量渲染效果的同时,实现虚拟角色的实时驱动。在虚幻引擎中直接调用视频检测插件对实时视频画面进行视频检测,可以得到目标对象的骨骼节点的实时骨骼节点数据与目标对象对应的面部捏脸数据,无需目标对象佩戴额外动作捕捉设备,不需要通过骨骼动画或离线数据驱动虚拟角色,在获得高质量渲染效果的同时,实现虚拟角色的实时驱动,还提升渲染显示的虚拟角色与目标对象的匹配度,提高渲染显示的真实感,避免捏脸数据是为虚拟角色模型事先设定的带来虚拟体验十分呆滞、单一的问题。此外,通过格式转换可以实现跨平台的视频检测,各个平台均能够利用该视频检测插件进行视频检测。渲染显示的虚拟角色的动作、面部表情变化均与实时视频画面中目标对象保持同步,提升了目标对象的虚拟体验,还打通了在虚幻引擎中获取拍摄目标对象的实时视频画面、输出实时骨骼节点数据来实时驱动虚拟角色以及对虚拟角色进行高质量渲染的链路。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的虚拟角色渲染方法的虚拟角色渲染装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个虚拟角色渲染装置实施例中的具体限定可以参见上文中对于虚拟角色渲染方法的限定,在此不再赘述。
在一个实施例中,如图10所示,提供了一种虚拟角色渲染装置1000,包括:获取模块1002、检测模块1004和渲染模块1006,其中:
获取模块1002,用于获取包括目标对象的实时视频画;
检测模块1004,用于在虚幻引擎中调用视频检测插件对实时视频画面进行视频检测,得到目标对象的骨骼节点的实时骨骼节点数据,以及目标对象对应的面部捏脸数据;
渲染模块1006,用于获取虚拟角色模型,将虚拟角色模型与目标对象的骨骼节点绑定,根据骨骼节点的实时骨骼节点数据,实时驱动虚拟角色模型对应的虚拟角色运动,根据面部捏脸数据,实时控制虚拟角色的面部表情变化,并对虚拟角色进行渲染显示。
在一个实施例中,获取模块1002,还用于在虚幻引擎中调用视频采集插件,视频采集插件集成了各类操作系统的摄像头调用逻辑;通过视频采集插件中与当前操作系统匹配的摄像头调用逻辑,请求获取调用摄像头的权限,在获取到调用摄像头的权限后,获取摄像头捕获的包括目标对象的实时视频画面。
在一个实施例中,检测模块1004,还用于确定实时视频画面对应的视频数据的原始编码格式;当原始编码格式为视频检测插件所处理的目标编码格式时,则通过视频检测插件对实时视频画面对应的视频数据进行视频检测;当原始编码格式不为视频检测插件所处理的目标编码格式时,则对原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据,通过视频检测插件对目标编码格式的视频数据进行视频检测。
在一个实施例中,检测模块1004,还用于对原始编码格式的视频数据进行解码,得到解码视频数据;按目标编码格式对解码视频数据进行重新编码,得到目标编码格式的视频数据。
在一个实施例中,检测模块1004,还用于在虚幻引擎中启动子线程,子线程是在主线程中创建的子线程,主线程是用于获取实时视频画面以及对虚拟角色进行渲染显示的线程;采用子线程对原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据。
在一个实施例中,检测模块1004,还用于调用与当前操作系统匹配的图形绘制接口,将原始编码格式的视频数据输入至图形处理器中,在图形处理器中对原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据;将存放于显存中的目标编码格式的视频数据读取到内存后,通过视频检测插件对目标编码格式的视频数据进行视频检测。
在一个实施例中,检测模块1004,还用于在虚幻引擎中调用视频检测插件,从实时视频画面中分割出目标对象区域,在目标对象区域中确定目标对象各骨骼节点的位置;依据相邻实时视频画面中相同骨骼节点的位置,输出各骨骼节点的位移信息与旋转角度信息。
在一个实施例中,渲染模块1006,还用于获取虚幻引擎中各个预设的虚拟角色模型各自对应的角色特征;获取当前登录对象的对象特征,作为目标对象的对象特征;基于角色特征与对象特征之间的匹配度,从各个预设的虚拟角色模型中确定与目标对象匹配的虚拟角色模型。
在一个实施例中,渲染模块1006,还用于将虚拟角色模型的顶点与目标对象的至少一个骨骼节点绑定;根据顶点所绑定的骨骼节点的权重,对所绑定的骨骼节点各自对应的实时骨骼节点数据进行加权求和,得到实时更新的顶点的驱动数据;基于驱动数据,实时驱动虚拟角色模型对应的虚拟角色运动。
在一个实施例中,装置1000还包括面部数据获取模块,检测模块1004用于当启动视频检测插件时,通过调用视频检测插件对实时视频画面进行视频检测,得到目标对象对应的面部捏脸数据;当未启动视频检测插件时,获取在面部编辑界面中编辑的关于目标对象的面部捏脸数据。
在一个实施例中,实时视频画面是目标对象的原始直播画面;装置还包括:直播数据传输模块,用于获取原始直播画面中目标对象所在的现实场景;将渲染显示的虚拟角色与现实场景融合,生成虚拟角色直播画面;将虚拟角色直播画面上传至服务器后进行视频推送。
上述虚拟角色渲染装置1000,虚幻引擎可以提供高质量渲染效果,通过虚幻引擎获取到包括目标对象的实时视频画面,并在虚幻引擎中直接调用视频检测插件对实时视频画面进行视频检测,可以得到目标对象的骨骼节点的实时骨骼节点数据与目标对象对应的面部捏脸数据。这样,通过在虚幻引擎中将获取的虚拟角色模型绑定了目标对象的骨骼节点之后,就可以根据骨骼节点的实时骨骼节点数据,实时驱动虚拟角色模型对应的虚拟角色进行运动,根据实时变化的面部捏脸数据,实时控制虚拟角色的面部表情变化,据此基于虚幻引擎高质量渲染显示的虚拟角色,不仅渲染质量高,无需目标对象佩戴额外动作捕捉设备,而且渲染显示的虚拟角色的动作、面部表情变化均与实时视频画面中目标对象保持同步,提升了目标对象的虚拟体验,还打通了在虚幻引擎中获取拍摄目标对象的实时视频画面、输出实时骨骼节点数据来实时驱动虚拟角色以及对虚拟角色进行高质量渲染的链路。
上述虚拟角色渲染装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端或服务器,本实施例以该计算机设备为终端进行说明,其内部结构图可以如图11所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元、摄像头和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种虚拟角色渲染方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。该计算机设备的摄像头可以是单目摄像头、双目摄像头等,可以是终端摄像头、电脑摄像头、安防摄像头或智能网联摄像头等等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一实施例所述的虚拟角色渲染方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例所述的虚拟角色渲染方法。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述的虚拟角色渲染方法。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (15)
1.一种虚拟角色渲染方法,其特征在于,应用于虚幻引擎,所述方法包括:
获取包括目标对象的实时视频画面;
在所述虚幻引擎中调用视频检测插件对所述实时视频画面进行视频检测,得到所述目标对象的骨骼节点的实时骨骼节点数据,以及所述目标对象对应的面部捏脸数据;
获取虚拟角色模型,将所述虚拟角色模型与所述目标对象的骨骼节点绑定,根据所述骨骼节点的实时骨骼节点数据,实时驱动所述虚拟角色模型对应的虚拟角色运动,根据所述面部捏脸数据,实时控制所述虚拟角色的面部表情变化,并对所述虚拟角色进行渲染显示。
2.根据权利要求1所述的方法,其特征在于,所述获取包括目标对象的实时视频画面,包括:
在所述虚幻引擎中调用视频采集插件,通过所述视频采集插件中与当前操作系统匹配的摄像头调用逻辑,请求获取调用摄像头的权限,在获取到调用摄像头的权限后,获取摄像头捕获的包括目标对象的实时视频画面,所述视频采集插件集成了各类操作系统的摄像头调用逻辑。
3.根据权利要求1所述的方法,其特征在于,所述在所述虚幻引擎中调用视频检测插件对所述实时视频画面进行视频检测,包括:
确定所述实时视频画面对应的视频数据的原始编码格式;
当所述原始编码格式为视频检测插件所处理的目标编码格式时,则通过所述视频检测插件对所述实时视频画面对应的视频数据进行视频检测;
当所述原始编码格式不为所述视频检测插件所处理的目标编码格式时,则对所述原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据,通过所述视频检测插件对所述目标编码格式的视频数据进行视频检测。
4.根据权利要求3所述的方法,其特征在于,所述对所述原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据,包括:
对所述原始编码格式的视频数据进行解码,得到解码视频数据;
按所述目标编码格式对所述解码视频数据进行重新编码,得到目标编码格式的视频数据。
5.根据权利要求3所述的方法,其特征在于,所述对所述原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据,包括:
在所述虚幻引擎中启动子线程,所述子线程是在主线程中创建的子线程,所述主线程是用于获取实时视频画面以及对虚拟角色进行渲染显示的线程;
采用所述子线程对所述原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据。
6.根据权利要求3所述的方法,其特征在于,所述对所述原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据,包括:
调用与当前操作系统匹配的图形绘制接口,将所述原始编码格式的视频数据输入至图形处理器中,在所述图形处理器中对所述原始编码格式的视频数据进行格式转换得到目标编码格式的视频数据;
所述通过所述视频检测插件对所述目标编码格式的视频数据进行视频检测,包括:
将存放于显存中的所述目标编码格式的视频数据读取到内存后,通过所述视频检测插件对所述目标编码格式的视频数据进行视频检测。
7.根据权利要求1所述的方法,其特征在于,所述在所述虚幻引擎中调用视频检测插件对所述实时视频画面进行视频检测,得到所述目标对象的骨骼节点的实时骨骼节点数据,包括:
在所述虚幻引擎中调用视频检测插件,从所述实时视频画面中分割出目标对象区域,在所述目标对象区域中确定所述目标对象各骨骼节点的位置;
依据相邻实时视频画面中相同骨骼节点的位置,输出各骨骼节点的位移信息与旋转角度信息。
8.根据权利要求1所述的方法,其特征在于,所述获取虚拟角色模型,包括:
获取所述虚幻引擎中各个预设的虚拟角色模型各自对应的角色特征;
获取当前登录对象的对象特征,作为所述目标对象的对象特征;
基于所述角色特征与所述对象特征之间的匹配度,从所述各个预设的虚拟角色模型中确定与所述目标对象匹配的虚拟角色模型。
9.根据权利要求1所述的方法,其特征在于,所述将所述虚拟角色模型与所述目标对象的骨骼节点绑定,根据所述骨骼节点的实时骨骼节点数据,实时驱动所述虚拟角色模型对应的虚拟角色运动,包括:
将所述虚拟角色模型的顶点与所述目标对象的至少一个骨骼节点绑定;
根据所述顶点所绑定的骨骼节点的权重,对所绑定的骨骼节点各自对应的实时骨骼节点数据进行加权求和,得到实时更新的所述顶点的驱动数据;
基于所述驱动数据,实时驱动所述虚拟角色模型对应的虚拟角色运动。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当启动视频检测插件时,通过执行所述调用视频检测插件对所述实时视频画面进行视频检测的步骤,得到所述目标对象对应的面部捏脸数据;
当未启动视频检测插件时,获取在面部编辑界面中编辑的关于所述目标对象的面部捏脸数据。
11.根据权利要求1至10任一项所述的方法,其特征在于,所述实时视频画面是所述目标对象的原始直播画面;所述方法还包括:
获取所述原始直播画面中所述目标对象所在的现实场景;
将渲染显示的所述虚拟角色与所述现实场景融合,生成虚拟角色直播画面;
将所述虚拟角色直播画面上传至服务器后进行视频推送。
12.一种虚拟角色渲染装置,其特征在于,所述装置包括:
获取模块,用于获取包括目标对象的实时视频画;
检测模块,用于在所述虚幻引擎中调用视频检测插件对所述实时视频画面进行视频检测,得到所述目标对象的骨骼节点的实时骨骼节点数据,以及所述目标对象对应的面部捏脸数据;
渲染模块,用于获取虚拟角色模型,将所述虚拟角色模型与所述目标对象的骨骼节点绑定,根据所述骨骼节点的实时骨骼节点数据,实时驱动所述虚拟角色模型对应的虚拟角色运动,根据所述面部捏脸数据,实时控制所述虚拟角色的面部表情变化,并对所述虚拟角色进行渲染显示。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210513721.7A CN117097919A (zh) | 2022-05-12 | 2022-05-12 | 虚拟角色渲染方法、装置、设备、存储介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210513721.7A CN117097919A (zh) | 2022-05-12 | 2022-05-12 | 虚拟角色渲染方法、装置、设备、存储介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117097919A true CN117097919A (zh) | 2023-11-21 |
Family
ID=88782274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210513721.7A Pending CN117097919A (zh) | 2022-05-12 | 2022-05-12 | 虚拟角色渲染方法、装置、设备、存储介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117097919A (zh) |
-
2022
- 2022-05-12 CN CN202210513721.7A patent/CN117097919A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102658960B1 (ko) | 얼굴 재연을 위한 시스템 및 방법 | |
US11521362B2 (en) | Messaging system with neural hair rendering | |
CN114730483A (zh) | 在消息传送系统中生成3d数据 | |
US11645805B2 (en) | Animated faces using texture manipulation | |
CN116958344A (zh) | 虚拟形象的动画生成方法、装置、计算机设备及存储介质 | |
KR20240125621A (ko) | 실시간 모션 및 외관 전달 | |
KR20240128015A (ko) | 실시간 의복 교환 | |
CN117097919A (zh) | 虚拟角色渲染方法、装置、设备、存储介质和程序产品 | |
US12051155B2 (en) | Methods and systems for 3D modeling of a human subject having hair based on 2D imagery | |
US11983819B2 (en) | Methods and systems for deforming a 3D body model based on a 2D image of an adorned subject | |
US20240265658A1 (en) | Fingernail segmentation and tracking | |
US20240233249A1 (en) | Natural hand rendering in xr systems | |
US20240303926A1 (en) | Hand surface normal estimation | |
TW202420232A (zh) | 虛擬內容的分散式產生 | |
TW202433242A (zh) | 用於虛擬表示呼叫的通信框架 | |
WO2024155397A1 (en) | Communication framework for virtual representation calls | |
EP4342174A1 (en) | Hardware encoder for stereo stitching | |
WO2022246373A1 (en) | Hardware encoder for stereo stitching | |
CN116645461A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40098428 Country of ref document: HK |