虚拟对象处理方法、电子设备及存储介质与流程

文档序号:29614974发布日期:2022-04-13 11:10阅读:106来源:国知局
虚拟对象处理方法、电子设备及存储介质与流程

1.本技术涉及视频图像处理技术领域,特别是涉及虚拟对象处理方法、电子设备及存储介质。


背景技术:

2.随着智能终端的普及以及通信技术的发展,越来越多的人们享受了智能终端畅游高速网络所带来的乐趣。智能终端硬件和软件上的不断迭代,网络带宽的不断升级,能够让人们在智能终端上观看高清图像和视频。
3.为了使得呈现内容的多元化,视频或者图像往往会经过相应的处理。在视频或者图像中呈现虚拟对象。常见的虚拟对象一般是通过设计以及3d建模创建虚拟对象,然后通过真人动作捕捉实现,虚拟对象的动作变化,或者设计好相应状态的虚拟对象,通过后期人工进行图像处理替换视频或者图像中的对象,或者利用ai技术对词汇、表情提取动作序列,以实现虚拟对象的动作变化。


技术实现要素:

4.本技术主要解决的技术问题是提供虚拟对象处理方法、电子设备及存储介质,能够调整提升处理的效率。
5.为解决上述技术问题,本技术采用的一个技术方案是:提供一种虚拟对象处理方法,该方法包括:获取对驱动对象进行编码处理得到的第一特征数据;获取所述第一特征数据相对于所述驱动对象的参考特征数据的变化数据;融合所述变化数据以及对虚拟对象进行编码处理得到的第二特征数据,得到更新数据;基于所述更新数据得到更新的所述虚拟对象。
6.为了解决上述技术问题,本技术采用的另一个技术方案是:提供一种电子设备,该电子设备包括处理器和存储器;存储器分别耦接处理器,存储器中存储有计算程序,处理器能够执行计算机程序以实现上述的虚拟对象处理方法。
7.为了解决上述技术问题,本技术采用的又一个技术方案是:提供一种计算机可读的存储介质,其存储有计算机程序,计算机程序能够被处理器执行以实现上述的虚拟对象处理方法。
8.本技术的有益效果是:区别于现有技术的情况,通过对驱动对象进行编码得到第一特征数据,获取第一特征数据相对于参考数据的变化数据,使得驱动对象不同的第一特征数据能够基于较为统一的标准获得变化数据,能够快捷地得出有效的变化数据,以更有效地表征驱动对象的特征变化,此种处理计算处理压力小,而且出错率低,而且由于变化数据获取简单且能够有效地展示特征变化,使得利用变化数据与虚拟对象的第二特征数据进行融合后得出更新数据的精确度也较高,进而能够更加快捷有效地得出更新后的虚拟对象,过程简单且错误率较低,可以无需利用复杂的动作捕获等方式获取动作变化,而且也比利用文字或者表情所提取的特征变化所得出的虚拟对象更为精确展示特征变化以及正确
率更高。
附图说明
9.图1是本技术实施例一示例性实施场景的系统组成示意图;
10.图2是本技术虚拟对象处理方法实施例的第一流程示意图;
11.图3是本技术虚拟对象处理方法实施例的第二流程示意图;
12.图4是本技术虚拟对象处理方法实施例的第三流程示意图;
13.图5是本技术电子设备实施例的一示例性电路结构示意图;
14.图6是本技术计算机可读的存储介质实施例的示例性电路结构示意图。
具体实施方式
15.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
16.本技术的发明人经过长期研究发现,目前制作虚拟形象,一般需要设计以及3d建模,然后在制作好的虚拟形象上利用动作捕获的方式映射到虚拟形象上,进而使得虚拟形象可以产生想要达到的相应表情、动作等变化,或者通过ai的方式输入对应某些表情、动作等的词语或者语音,使得模型能够做出与词语或者语音相对应的动作或者表情。需要建立3d模型的虚拟形象,利用动作捕捉的方式需要投入较多的人力,难度较高、而且制作程序复杂,虽然动作映射较为精确,但成本极大,效率较低。而通过词语或者语音所得出的动作,错误率较高,也间接导致效率低下,难以在虚拟形象上呈现较好的动作、表情变化。为此,本技术提出以下实施例。
17.本技术以下实施例可以应用于直播和视频处理等场景中。以直播场景为例,如图1所示,直播系统1可以包括服务器10、观众端20和主播端30。服务器10、观众端20和主播端30可以为电子设备,具体观众端20和主播端30可以是移动终端、计算机、服务器或者其他终端等,移动终端可以是手机、笔记本电脑、平板电脑、智能穿戴设备等,计算机可以是台式电脑等。服务器10可以从主播端30中进行对直播数据流拉流,并将获取的直播数据流推流到观众端20。观众端20获取到直播数据流后即可观看主播或者嘉宾的直播过程。直播数据流的混流可以发生在服务器10、主播端30和观众端20中的至少一方。主播端30和主播端30之间、主播端30和观众端20之间均可以进行视频连麦或者语音连麦。在视频连麦中,连麦方可以将包括视频流在内的直播数据流推送到服务器10。以视频处理为例,可以通过电子设备对普通视频文件的画面或对象等进行处理。
18.以下实施例可以对上述举例的视频文件或者直播视频流在内的视频数据进行相应的处理,当然以下实施例也可以对图像进行相应的处理。
19.如图2所示,本技术虚拟对象处理方法实施例可以包括如下步骤:
20.s100:获取对驱动对象进行编码处理得到的第一特征数据。
21.驱动对象可以是指用于产生相应变化的对象。虚拟对象可以是指将相应变化作用于其上的对象,使其也能具有相应的变化。换言之,驱动对象产生的相应变化是用于驱动虚
拟对象也对应产生相应的变化。上述变化可以是包括表情和姿态等在内的变化。例如,在视频数据的画面中可以显示驱动对象,利用驱动对象产生的相应变化驱动视频数据外的虚拟对象产生相应变化,进而可以便于将虚拟对象替换驱动对象呈现在视频数据对应的画面中。
22.虚拟对象可以至少包括脸部特征,例如人脸或者其他动物脸。同样地,驱动对象可以包括脸部特征,例如人脸或者其他动物脸。可选地,人脸可以是卡通人脸或者普通人脸。
23.对驱动对象进行编码处理得到的第一特征数据,可以是指用于表征驱动对象的特征的数据。以人脸为例,第一特征数据可以包括表征脸型、肤色、发型、发色、眼睛以及开闭状态、嘴巴及其开闭状态和头部姿态等特征的数据。当然,除了人脸对象外的其他对象,同样可以通过编码方式获取表征该对象的特征的第一特征数据。
24.如图3所示,以视频数据为例,第一特征数据具体可以通过步骤s100包括的如下方式获取:
25.s110:获取视频数据。
26.对于直播而言,服务器10或主播端30可以获取直播过程中产生的视频数据,即在直播过程中依次接收视频数据的视频帧。在直播过程中,例如可以以主播的脸部作为驱动对象。
27.s120:对视频数据中具有驱动对象的视频帧进行编码处理,以获得对应的视频帧的驱动对象的第一特征数据。
28.对于直播过程中出现驱动对象的视频帧,可以对该视频帧进行编码处理,进而获取到该视频帧的整体的特征数据,其中包括驱动对象的第一特征数据。在整个过程中,可以依次接收直播的视频帧,检测当前接收的视频帧是否存在驱动对象,若存在则对当前接收的视频帧进行编码处理。对于普通的视频文件,则同理对具有驱动对象的视频帧进行编码处理,以获取第一特征数据。
29.具体的检测驱动对象和编码方式,可以参照步骤s120包括的如下步骤:
30.s121:依次在视频数据的各视频帧中识别驱动对象。
31.对于驱动对象为人脸而言,可以依次在各视频帧中利用人脸识别技术识别驱动对象。人脸识别技术可以是现有的人脸识别技术。当然,如果驱动对象是其他对象,也可以通过深度学习等方式训练识别模型,利用该识别模型对驱动对象进行识别。当然,可以将人脸识别技术在生成对抗网络中实现,进而将各视频帧逐帧输入至生成对抗网络这个模型中实现识别驱动对象。
32.s122:利用生成对抗网络对识别出驱动对象的视频帧进行编码,以获得对应的以多维特征向量表达的第一特征数据。
33.生成对抗网络是一种深度学习模型,是一类用于无监督机器学习的人工智能算法。生成对抗网络一般包括两个部分:生成器和判别器,生成器和判别器通过拟合相应的生成和判别函数实现相应的功能。具体地,生成器可以为神经网络模型,判别器也可以为神经网络模型。
34.可选地,生成器可以具有编码网格和解码网格等,可以利用生成器的编码网格对识别出驱动对象的视频帧进行编码,得到一个多维特征向量,也即第一特征数据。第一特征数据例如可以包括脸型、肤色、发色、眼睛及其开闭状态、嘴巴及其开闭状态以及头部姿态
等维度的数据。具体地,在训练完成后,利用生成对抗网络对具有驱动对象的视频帧进行编码,可以得出该视频帧的特征数据,该特征数据包括第一特征数据。例如该视频帧的特征数据包括对应于画面背景的背景特征数据以及对应于驱动对象的第一特征数据。利用生成对抗网络对具有驱动对应的视频帧进行编码,所得出的第一特征数据各特征维度之间具有良好的解耦特性,能够减少各特征维度的数据之间的相互影响和干扰,便于减少其他数据对后续计算得出的变化数据的影响,更有利于后面进行的融合。可选地,生成对抗网络为stylegan2模型,还可以为stylegan模型或者其他生成对抗网络模型。
35.可选地,将各视频帧逐帧输入到生成对抗网络中进行处理,若当前帧没有识别出驱动对象,则直接输出。若当前帧识别出驱动对象,则对当前帧进行编码,得出该帧对应第一特征数据。
36.当然,实现将图像编码成向量的工具或模型,除了生成对抗网络外,还可以使用其他现有的深度学习算法、神经网络算法等。
37.s200:获取第一特征数据相对于驱动对象的参考特征数据的变化数据。
38.驱动对象的参考特征数据可以用作为基准,其用于表征驱动对象的一个基准状态。参考特征数据在特征维度或者结构可以跟第一特征数据一致或者大体一致。第一特征数据相对于参考数据的变化,可以认为是第一特征数据对应的状态和参考数据对应的状态之间的变化。以人脸为例,一般来说表情、姿态等容易发生变化,属于发生变化的状态。通过设置驱动对象的参考数据,进而计算第一特征数据相对于驱动对象和参考数据特征的变化数据,能够以较为统一的方式更为精准地得出变化数据,出错率低,更能够有效地表征驱动对象的状态、动作等变化。
39.在步骤s200之前,需要先获取驱动对象的参考特征数据。具体可以参见如下步骤:
40.s210:获取具有驱动对象的参考图像。
41.参考图像要包含有驱动对象,换言之,参考图像中显示有驱动对象。以参考图像中的驱动对象作为基准。参考图像可以是在视频数据中获取,也即在视频数据中截取其中一帧图像作为参考图像。参考图像也可以是在视频数据外获取,或者可以预先拍摄的。以直播为例,参考图像可以是在直播开始之前获取的,进而在直播的过程中可以和视频流的视频帧进行比较。可选地,参考图像和直播数据对应的场景相同,也即均是在同一场景下所拍摄的。
42.可选地,为了能够使得变化数据能够更好地体现到更新的虚拟对象中,参考图像可以借助虚拟对象进行选取或者取定。具体如步骤s210包括的如下步骤所示:
43.s211:获取具有驱动对象的待处理图像。
44.待处理图像例如可以由用户自己在相册、网络上选定的或利用摄像头自行拍摄的并输入至电子设备中。当然,待处理图像也可以是电子设备自动获取的,或者自行拍摄的。待处理图像的数量可以为多张,并在多张待处理图像中确定参考图像。待处理图像可以是在视频数据外获取的,也可以是在视频数据中截取的其中一帧。具体而言,可以通过步骤s211包括的如下步骤实现。
45.s2111:在视频数据外获取与视频数据处于同一场景的待处理图像;或者,在视频数据中获取待处理图像。
46.在视频数据外获取,例如是用户自行拍摄的,或者电子设备在视频数据外调用摄
像头自行拍摄的,或者自行从本地或网络上获取的。以直播为例,在直播之前可以自动或者手动拍摄一张主播在直播场景下的图像作为待处理图像。获取与视频数据处于同一场景的待处理图像,便于后续能更方便地计算第一特征数据和参考特征数据之间的变化,计算更简单,处理压力更小。当然,待处理图像也可以不与视频数据处于同一场景。
47.如图4所示,至于如何从待处理图像中确定参考图像,可以借助虚拟对象。具体地,本实施例可以包括如下步骤:
48.s010:获取具有虚拟对象的预设静态图像。
49.预设静态图像是普通的二维图像,图像上显示有虚拟对象。以人脸为例,虚拟对象可以是卡通人脸或者是普通人脸。在直播过程中,用户可以自行选择和确定预设静态图像,或者可以由电子设备自动生成、在相册中或者网络上自动获取。获取预设静态图像是为了获取其中的虚拟对象的相关数据,以便于后续与驱动对象的相关数据进行融合处理,进而可以进一步将虚拟对象呈现在视频数据中。
50.在获取预设静态图像后,可以利用预设静态图像中的虚拟对象来确定参考图像,具体可以参见如下步骤:
51.s212:计算待处理图像的驱动对象和预设静态图像的虚拟对象的相似度。
52.也即,以待处理图像的驱动对象和预设静态图像的虚拟对象是否相似来确定参考图像,以可以使得视频帧的驱动对象相对于待处理图像的驱动对象的动作变化能够近似或者等同于视频帧的驱动对象相对于虚拟对象的动作变化,进而使得该些动作变化能够在后续更好地融合到虚拟对象。
53.以人脸为例,若相似度大于或者等于预设阈值,则可以认为待处理图像中的驱动对象和预设静态图像中的虚拟对象在表情以及姿态等方面相似或者大体一致。比如,预设静态图像中的虚拟对象为正脸中性表情,则参考图像中的姿态和表情等也应为正脸中性表情。
54.计算图像之间的相似度具有多种方式,以下示例性介绍其中一种,具体可以如步骤s212包括的如下步骤所示:
55.s2121:在待处理图像中获取驱动对象的多个第一关键特征点,并生成表征多个第一关键特征点的第一关键特征向量。
56.在待处理图像中通过关键点检测和定位方法获取到多个第一关键特征点,多个第一关键特征点能够表征待处理图像中的驱动对象。
57.以人脸为例,利用人脸关键点检测算法对关键点进行定位,进而得到第一关键特征点。例如,第一关键特征点包括眼睛特征点、鼻子特征点、脸型轮廓特征点、嘴巴特征点以及额头特征点等。第一关键特征向量是用于表征多个第一关键特征点。将多个关键特征点进行数字化,进而通过向量的形式得出第一关键特征向量。例如,获取多个第一关键特征点各自的坐标等数据,进而将各第一关键特征点的坐标等数据归一化处理,将归一化后得到数据组成第一关键特征向量。
58.s2122:在预设静态图像中获取虚拟对象的多个第二关键特征点,并生成表征多个第二关键特征点的第二关键特征向量。
59.同理,在预设静态图像中通过关键点检测和定位方法获取到多个第二关键特征点,多个第二关键特征点能够表征待处理图像中的驱动对象。
60.以人脸为例,利用人脸关键点检测算法对关键点进行定位,进而得到第二关键特征点。例如,第二关键特征点包括眼睛特征点、鼻子特征点、脸型轮廓特征点、嘴巴特征点以及额头特征点等。第二关键特征向量是用于表征多个第二关键特征点。将多个关键特征点进行数字化,进而通过向量的形式得出第二关键特征向量。例如,获取多个第二关键特征点各自的坐标等数据,进而将各第二关键特征点的坐标等数据归一化处理,将归一化后得到数据组成第二关键特征向量。
61.s2123:计算第一关键特征向量和第二关键特征向量之间的距离,以作为相似度。
62.可选地,计算第一关键特征向量和第二关键特征向量之间的欧氏距离,以该欧氏距离作为相似度。判断相似度是否大于或者等于预设阈值,进而判断待处理图像的驱动对象和预设静态图像中的虚拟对象是否相似。若相似度大于或者等于预设阈值,则执行如下步骤s213。若相似度小于预设阈值,则执行如下步骤s214。
63.s213:若相似度大于或等于预设阈值,则将待处理图像确定为参考图像。
64.s214:若相似度小于预设阈值,则重新执行步骤s211。
65.通过选择其驱动对象与预设静态图像的虚拟对象相似的参考图像,一方面参考图像可以使得计算变化数据的标准统一,进而便于后续利用变化数据进行相应的计算,另一方面如此选择参考图像可以使得视频数据的视频帧相对于参考图像之间驱动对象的变化能够更好地“移植”到虚拟对象上,兼容性更好,进而使得更新后的虚拟对象更逼真,而且处理速度也更快。
66.在确定具有驱动对象的参考图像后,需要对参考图像进行编码,具体可以参见如下步骤:
67.s220:对参考图像进行编码,以获得驱动对象的参考特征数据。
68.对参考图像进行图像编码成数据,进而获取驱动对象的参考特征数据。利用对视频数据具有驱动对象的视频帧进行编码的同一编码方式对参考图像进行编码,参考特征数据在特征维度或者结构上与第一特征数据一致或者大体一致。
69.具体地,同样可以利用生成对抗网络对参考图像进行编码,具体如下步骤所示:
70.s221:利用生成对抗网络对参考图像进行编码,以获得以多维特征向量表达的参考特征数据。
71.在本实施例中,可以利用同一生成对抗网络进行编码和解码。也即,利用同一生成对抗网络的编码网格分别对参考图像和视频数据的视频帧进行编码,进而可以形成特征维度相同或者大致相同的第一特征数据和参考特征数据。如此,对参考图像进行编码可以得到多维特征向量,也即以多维特征向量表达的参考特征数据。参考特征数据例如也可以包括脸型、肤色、发色、眼睛及其开闭状态、嘴巴及其开闭状态以及头部姿态等维度的数据。
72.基于上述内容,第一特征数据和参考特征数据之间可以进行比较得到变化数据。也即,步骤s200可以包括如下步骤:
73.s230:将第一特征数据和参考特征数据比较,以得出变化数据。
74.具体地,将第一特征数据与参考特征数据在彼此相同的特征维度上进行比较,以获得发生变化的特征维度对应的变化数据。具有一致或者大体一致的数据结构的第一特征数据和参考特征数据比较,若部分特征维度的数据发生变化,如此就可获得对应到发生变化的特征维度的变化数据。
75.以人脸为例,驱动对象在说话、转头、低头和抬头等过程中,脸型、肤色、发型和发色等一般是不变的,变化的是头部的姿态、表情(嘴巴和/或眼睛),那么就可以将第一特征数据和参考数据在这些特征维度的数据差异作为变化数据,便于后续在这些维度上对虚拟人脸进行驱动。
76.以下以数学形式说明上述过程:
77.设t时刻的视频帧对应的第一特征数据为参考图像对应的参考特征数据为那么变化数据的表达式可以参照如下:
[0078][0079]
其中f(,)为运动变化函数,为变化数据。
[0080]
通过生成对抗网络进行编码得到以多维特征向量表达的第一特征数据和参考特征数据,正如上面所言,各特征维度之间的具有良好的解耦特性,特征维度之间的干扰和相互影响较小。对于某些特征维度一般是维持不变的,而某些特征维度会发生改变,则可以通过比较的方式得出发生变化的特征维度对应的变化数据。具体的运动变化函数可以设计如下:
[0081][0082]
这样的设计正如上面所言,同一个驱动对象在不同时刻的视频帧中的某些特征维度会维持不变,比如脸型、肤色、发型、发色等,而有些特征维度可能会改变,比如眼睛的闭合程度和嘴巴的以及头部姿态等。对第一特征数据和参考特征数据进行相减操作后,不变的属性差异为0,变化的属性差异非0,因此可较好地反映参考图像和视频帧之间的运动变化。如此,使得计算处理过程较为简单高效,有效地减少处理压力和提高处理速度。对于直播而言,可以减少直播迟延。
[0083]
在步骤s010获取了预设静态图像之后,执行下述步骤s300之前,需要计算第二特征数据,具体可以参照本实施例包括的如下步骤:
[0084]
s020:对预设静态图像进行编码处理,以获得虚拟对象的第二特征数据。
[0085]
在获取到预设静态图像后,对预设静态图像进行编码,以将图像编码成数据,以获得虚拟对象的第二特征数据。第二特征数据表征预设静态图像中虚拟对象的各特征。第二特征数据和第一特征数据可以在数据结构或者特征维度上一致或者大体一致,如此使得变化数据后续能够有效地和第二特征数据融合。
[0086]
对于预设静态图像进行编码处理,具体可以参照步骤s020包括的如下步骤:
[0087]
s021:利用生成对抗网络对预设静态图像进行编码,以获得以多维特征向量表达的第二特征数据。
[0088]
将预设静态图像输入到生成对抗网络中,利用生成对抗网络对预设静态图像进行编码。具体地,利用生成对抗网络的编码器对预设静态图像进行编码,以获得一多维特征向量,也即第二特征数据。以人脸为例,第二特征数据例如也可以包括脸型、肤色、发色、眼睛及其开闭状态、嘴巴及其开闭状态以及头部姿态等维度的数据。
[0089]
第二特征数据、参考特征数据以及第一特征数据均可以通过同一生成对抗网络编
码所获取的,也即将预设静态图像、参考图像以及视频数据的视频帧输入至同一生成对抗网络中进行编码获取。
[0090]
对于视频数据的处理而言,第二特征数据可以提前离计算生成,并预先存储,以便于在步骤s300的融合处理中重复使用。如此,可以重复将第二特征数据与视频数据中具有驱动对象的各视频帧对应的变化数据分别进行融合处理,以得到各视频帧各自对应的更新数据,有效地提高处理速度。
[0091]
在计算得到变化数据以及第二特征数据之后,可以对变化数据和第二特征数据进行如下处理:
[0092]
s300:融合变化数据以及对虚拟对象进行编码得到的第二特征数据,得到更新数据。
[0093]
变化数据以及第二特征数据进行融合处理,可以是指利用变化数据对第二特征数据中对应的数据进行更新、替换或叠加等处理,使得更新数据能够同时具备有变化数据以及第二特征数据对应的至少部分特征,可以使得在虚拟对象的基础上加入了变化数据所对应的特征变化,便于后续得到更新的虚拟对象。融合变化数据以及第二特征数据可以在神经网络模型中进行,例如生成对抗网络。
[0094]
融合处理的方式有多种,以下是其中一种示例性说明,具体可以参见步骤s300包括的如下步骤:
[0095]
s310:利用变化数据更新第二特征数据中对应于变化数据的特征维度的数据,得到更新数据。
[0096]
以人脸为例,如前面所言,眼睛开闭程度、嘴巴开闭程度以及头部姿态等特征维度容易发生改变,假设变化数据对应上述特征维度。利用变化数据更新第二特征数据中对应的特征维度的数据,也即更新第二特征数据中眼睛、嘴巴以及头部姿态等特征维度的数据,使得第二特征数据中眼睛、嘴巴以及头部姿态等特征维度的数据变成变化数据,进而得到更新数据,实现第二特征数据和变化数据的融合。那么更新数据就可以使得虚拟对象的其他特征维度保持不变,而改变的是眼睛的开闭程度和嘴巴的开闭程度发生改变,使得虚拟对象具有驱动对象的特征变化。
[0097]
具体地,利用生成对抗网络将变化数据更新第二特征数据中对应于变化数据的特征维度的数据,进而得到更新数据。
[0098]
基于上面所述,以下接着以数据形式说明上述过程,假设更新数据的数学形式为:
[0099][0100]
其中为虚拟对象的第二特征数据,为变化数据,h(,)为融合处理函数。
[0101]
通过生成对抗网络进行编码得到以多维特征向量表达的第二特征数据,各特征维度之间的具有良好的解耦特性,特征维度之间的干扰和相互影响较小。对于某些特征维度一般是维持不变的,而某些特征维度发生改变,进而可以将变化数据对第二特征数据中对应的特征维度进行更新。具体的融合处理函数可以设计如下:
[0102]
[0103]
以人脸为例,这样的设计合理性在于变化数据与人脸的身份特征无关,只与脸部的运动变化有关。因此,相加可以保持虚拟对象的身份特征,同时改变脸部的表情和动作。
[0104]
通过融合变化数据以及第二特征数据得到了更新数据,更新数据的目的在于将驱动对象的动作变化体现在虚拟对象上。具体可以参照下述步骤:
[0105]
s400:基于更新数据得到更新的虚拟对象。
[0106]
基于更新数据得到更新的虚拟对象,使得更新的虚拟对象具有与变化动作数据对应的变化。如此,得到的更新的虚拟对象,既可以保留原先虚拟对象的本身特征,又可以具有驱动对象的变化特征。
[0107]
对于视频数据而言,更新的虚拟对象需要体现各视频帧中,可以认为利用更新的虚拟对象“替换”原先的视频帧中的驱动对象。具体地可以参照步骤s400包括的如下步骤:
[0108]
s410:利用更新数据更新其所对应的视频帧的特征数据中的第一特征数据。
[0109]
具有驱动对象的每一视频帧都各自对应有其更新数据。该更新数据用于更新对应的视频帧的特征数据中的第一特征数据。可选地,利用更新数据替换掉其对应视频帧的特征数据中的第一特征数据,使得该视频帧更新后的特征数据中包含更新数据。
[0110]
例如,对第n帧视频帧进行编码,得到包含驱动对象的第一特征数据在内的特征数据。利用第一特征数据和参考特征数据,得出第n帧视频帧对应的变化数据。第n帧视频帧对应的变化数据和第二特征数据融合,得到第n帧视频帧对应的更新数据。利用第n帧视频帧对应的更新数据更新第n帧视频帧的特征数据中的第一特征数据,进而第n帧视频帧更新后的特征数据。
[0111]
s420:利用生成对抗网络将视频帧更新后的特征数据解码,得到具有更新的虚拟对象的视频帧。
[0112]
利用生成对抗网络的解码器将更新后的特征数据解码,进而得到相应的图像,也即具有更新的虚拟对象的视频帧。换言之,更新数据更新了对应于驱动对象的第一特征数据,而更新数据是携带有虚拟对象的身份特征,又携带有驱动对象的变化特征,进而使得最后得到的视频帧中显示虚拟对象,该虚拟对象是更新后的虚拟对象,也即具有虚拟对象的身份特征,又具有驱动对象的变化特征。最终实现了即保留了视频数据中驱动对象的动作,又将驱动对象换成了虚拟对象。
[0113]
通过利用生成对抗网络对视频帧更新后的特征数据进行解码,使得解码得到的图像在保真方面具有较好的效果,生成高清逼真的图像。
[0114]
可选地,生成对抗网络可以包括多个上采样操作子。例如,生成对抗网络可以采用stylegan2等生成对抗网络。stylegan2等生成对抗网络的解码结构由多个上采样操作子级联组成,并采用渐进的方式进行训练,如此可以进一步提高生成图像的保真效果,可以提高图像的分辨率,进而使得图像所呈现效果高清逼真。
[0115]
在处理过程中,获取视频数据后,逐帧输入进行虚拟对象处理。不具有驱动对象的视频帧不处理而直接输出,而具有驱动对象的视频帧在进行处理后输出更新的视频帧。最后逐帧输出,也即更新的视频帧和直接输出的视频帧按照先前的帧序列输出,以形成更新后的视频数据。
[0116]
可选地,本实施例具体可以在一个生成对抗网络中执行。具体地,将预设静态图像在该生成对抗网络中进行编码得到第二特征数据,并预先存储;获取到参考图像输入该生
成对抗网络中进行编码得到参考特征数据,并预先存储。接着,将视频数据逐帧输入到该生成对抗网络中计算变化数据以及融合处理,进而逐帧输出更新后的视频帧。
[0117]
综上所述,对驱动对象进行编码得到第一特征数据,获取第一特征数据相对于参考数据的变化数据,使得驱动对象不同的第一特征数据能够基于较为统一的标准获得变化数据,能够快捷地得出有效的变化数据,更有效地表征驱动对象的特征变化,计算处理压力小,而且出错率低,而且由于变化数据获取简单且能够有效地展示特征变化,使得利用变化数据与虚拟对象的第二特征数据进行融合后得出更新数据的精确度也较高,进而能够更加快捷有效地得出更新后的虚拟对象,过程简单且错误率较低,可以无需利用复杂的动作捕获等方式获取动作变化,而且也比利用文字或者表情所提取的特征变化所得出的虚拟对象更为精确展示特征变化以及正确率更高。
[0118]
本实施例可以应用在直播系统1中。在一些实施方式中,上述实施例的执行过程可以在主播端30完成,主播端30将完成虚拟对象处理后的视频流推送至服务器10,由服务器10将视频流推送至观众端20。在另一些实施方式中,本实施例的执行过程也可以在服务器10完成,主播端30将原始的视频流推送至服务器10,服务器10进行虚拟对象处理,生成更新的视频流,并将更新的视频流推送至主播端30和观众端20。在又一些实施方式中,本实施例的执行过程还可以在服务器10和主播端30中完成,主播端30进行部分步骤,而进行了部分步骤后将结果推送至服务器10,服务器10进行另一部分步骤,进而得到更新的视频流,推送至主播端30和观众端20。
[0119]
主播端30和服务器10均可以是电子设备。
[0120]
如图5所示,本技术电子设备实施例描述的电子设备100包括处理器110和存储器120。存储器120耦接处理器110。
[0121]
存储器120用于存储计算机程序,可以是ram,也是可以rom,或者其他类型的存储设备。具体地,存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器中的非暂态的计算机可读存储介质用于存储至少一条程序代码。
[0122]
处理器110用于控制电子设备100的操作,处理器110还可以称为cpu(central processing unit,中央处理单元)。处理器110可能是一种集成电路芯片,具有信号的处理能力。处理器110还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器110也可以是任何常规的处理器等。
[0123]
处理器110用于执行存储器120中存储的计算机程序以实现本技术虚拟对象处理方法实施例描述的虚拟对象处理方法。
[0124]
在一些实施方式中,电子设备100还可以包括:外围设备接口130和至少一个外围设备。处理器110、存储器120和外围设备接口130之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口130相连。具体地,外围设备包括:射频电路140、显示屏150、音频电路160和电源170中的至少一种。
[0125]
外围设备接口130可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器110和存储器120。在一些实施例中,处理器110、存储器120和外围设备
接口130被集成在同一芯片或电路板上;在一些其他实施方式中,处理器110、存储器120和外围设备接口130中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0126]
射频电路140用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路140通过电磁信号与通信网络以及其他通信设备进行通信。射频电路140将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路140包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路140可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路140还可以包括nfc(near field communication,近距离无线通信)有关的电路,本技术对此不加以限定。
[0127]
显示屏150用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏150是触摸显示屏时,显示屏150还具有采集在显示屏150的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器110进行处理。此时,显示屏150还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施方式中,显示屏150可以为一个,设置在电子设备100的前面板;在另一些实施方式中,显示屏150可以为至少两个,分别设置在电子设备100的不同表面或呈折叠设计;在另一些实施方式中,显示屏150可以是柔性显示屏,设置在电子设备100的弯曲表面上或折叠面上。甚至,显示屏150还可以设置成非矩形的不规则图形,也即异形屏。显示屏150可以采用lcd(liquid crystal display,液晶显示屏)、oled(organic light-emittingdiode,有机发光二极管)等材质制备。
[0128]
音频电路160可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器110进行处理,或者输入至射频电路140以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器110或射频电路140的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路160还可以包括耳机插孔。
[0129]
电源170用于为电子设备100中的各个组件进行供电。电源170可以是交流电、直流电、一次性电池或可充电电池。当电源170包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
[0130]
关于本技术电子设备实施例中各功能模块或者部件功能和执行过程的详细阐述,可以参照上述本技术虚拟对象处理方法实施例中的阐述,在此不再赘述。
[0131]
在本技术所提供的几个实施例中,应该理解到,所揭露的电子设备和虚拟对象处理方法,可以通过其它的方式实现。例如,以上所描述的电子设备各实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方
式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0132]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0133]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0134]
参阅图6,上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读的存储介质200中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令/计算机程序用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种介质以及具有上述存储介质的电脑、手机、笔记本电脑、平板电脑、相机等电子设备。
[0135]
关于计算机可读的存储介质中的程序数据的执行过程的阐述可以参照上述本技术虚拟对象处理方法实施例中阐述,在此不再赘述。
[0136]
以上所述仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1