一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种特效处理方法、装置及电子设备与流程

2021-10-24 04:53:00 来源:中国专利 TAG:人工智能 电子设备 深度 装置 特效


1.本公开涉及增强现实、计算机视觉、深度学习等人工智能技术领域,具体涉及一种特效处理方法、装置及电子设备。


背景技术:

2.ar(augmented reality,增强现实),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3d模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。针对业务方的需要可以对ar资源进行特效处理,例如人脸特效、美化特效、人体特效及环境特效等,ar特效广泛应用于视频拍摄场景,为视频拍摄用户提供了非常便捷的创作工具。


技术实现要素:

3.本公开提供了一种特效处理方法、装置及电子设备。
4.本公开第一方面实施例提出了一种特效处理方法,包括:
5.响应于业务端发送的初始化指令,初始化增强现实ar场景;
6.在所述ar场景中导入待特效处理的目标对象;
7.将业务端设定的输入纹理,确定为所述目标对象的源纹理;
8.根据业务端设定的特效,对所述ar场景中所述目标对象的所述源纹理进行特效处理,得到所述目标对象的输出纹理;
9.向所述业务端返回所述输出纹理。
10.为达上述目的,本公开第二方面实施例提出了一种特效处理装置,包括:
11.初始化模块,用于响应于业务端发送的初始化指令,初始化增强现实ar场景;
12.导入模块,用于在所述ar场景中导入待特效处理的目标对象;
13.输入模块,用于将业务端设定的输入纹理,确定为所述目标对象的源纹理;
14.输出模块,用于根据业务端设定的特效,对所述ar场景中所述目标对象的所述源纹理进行特效处理,得到所述目标对象的输出纹理;
15.反馈模块,用于向所述业务端返回所述输出纹理。
16.为达上述目的,本公开第三方面实施例提出了一种电子设备,包括:
17.至少一个处理器;以及
18.与所述至少一个处理器通信连接的存储器;其中,
19.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。
20.为达上述目的,本公开第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如第一方面所述的方法。
21.为达上述目的,本公开第五方面实施例提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如第一方面所述的方法。
22.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
23.附图用于更好地理解本方案,不构成对本公开的限定。其中:
24.图1为本公开实施例提供的一种特效处理方法的流程示意图;
25.图2为本公开实施例特效sdk后处理方案的技术实现框图;
26.图3为本公开实施例提供的另一种特效处理方法的流程示意图;
27.图4为本公开一具体实施例所提供的人脸特效处理方法流程示意图;
28.图5为人脸图片的大小和格式在显存和内存中的转化和处理流程图;
29.图6为本公开实施例提供的一种特效处理装置的结构示意图;
30.图7为本公开实施例提供的示例电子设备700的示意性框图。
具体实施方式
31.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
32.下面参考附图描述本公开实施例的特效处理方法、装置及电子设备。
33.图1为本公开实施例提供的一种特效处理方法的流程示意图。
34.如图1所示,该特效处理方法可以包括以下步骤:
35.步骤101,响应于业务端发送的初始化指令,初始化增强现实ar场景。
36.这里,初始化ar场景,是将opengl系统中ar渲染模块以及上下文设置为初始状态,上下文是在渲染模块中的某个线程中建立的。opengl,英文全称为open graphics library,中译名为开放式图形库,是用于渲染2d、3d矢量图形的跨语言、跨平台的应用程序编程接口,这个接口由近350个不同的函数调用组成,用来绘制从简单的图形比特到复杂的三维景象。
37.步骤102,在ar场景中导入待特效处理的目标对象。
38.可选地,作为一种可能的实现方式,可以接收业务端发送的共享上下文的标识,根据共享上下文的标识,在增强现实ar场景的前景中导入共享上下文,以得到增强现实ar场景中作为前景的目标对象。
39.该实施例中,共享上下文(shared context)可以是通过调用eglcreatecontext函数传入开放图形库opengl渲染组件中某一线程中已经建立好的上下文(eglcontext)而获得的,eglcontext包含了源视频资源的大小、结构、纹理(texture)等内容,与之对应的视频资源会由opengl系统分配一个唯一的资源id(资源编号),也即所述标识。在对视频资源进行处理时,业务端只需提供资源id,就可以指定共享上下文。
40.将共享上下文导入增强现实ar场景的前景中,就可以获得视频资源对应的虚拟影像,也即前景的目标对象,该前景的目标对象可以呈现在屏幕上,通过裸眼既可观察到。
41.可以理解的是,如果业务端提供的视频资源质量不佳,则可能存在丢帧的问题。针
对上述问题,在本公开实施例的一种可能的实现方式中,在对视频资源进行处理之前,还可以对视频资源进行插帧处理,其实现方式如下:从业务端获取资源视频;在资源视频的帧率低于设定阈值的情况下,对资源视频进行插帧处理;在增强现实ar场景的背景中导入处理后的资源视频,以得到增强现实ar场景中作为背景的目标对象。由此,在视频资源的帧率较低的情况下,对视频资源进行插帧处理,可以提升视频资源质量。
42.这里,设定阈值是相对于未丢帧的视频资源而言的,在具体应用时应根据具体情况做判断。
43.可选地,作为一种可能的实现方式,在从业务端获取资源视频之后,还可以根据设定的目标尺寸、目标播放方向和/或目标格式,对业务端发送的资源视频进行尺寸、播放方向和格式调整中的至少一种,以满足实际需求。
44.这里,需要对业务端提供的资源视频进行尺寸、播放方向和格式进行调整的目的是考虑到业务端提供的资源视频的规格可能存在不符合特效sdk处理模块的要求,因此需要将待处理的资源视频的上述规格参数调整为标准格式,以适配特效渲染模块的要求。
45.步骤103,将业务端设定的输入纹理,确定为目标对象的源纹理。
46.该实施例中,源纹理,即为目标对象对应的共享上下文中所包含的纹理数据,并将纹理数据作为渲染模块的输入纹理。这里,输入纹理可以为业务方选定的初始纹理,或者上一次特效处理之后生成的特效纹理。
47.步骤104,根据业务端设定的特效,对ar场景中目标对象的源纹理进行特效处理,得到目标对象的输出纹理。
48.可选地,作为一种可能的实现方式,可以调用设定的特效对应的纹理渲染函数,对增强现实ar场景中目标对象的源纹理进行纹理渲染,得到目标对象的输出纹理。
49.该实施例中,特效是渲染模块中预置的,包含在特效sdk(software development kit,软件开发工具包)中,在进行相应特效的渲染时,只需要根据业务端的要求在特效sdk中选择相应的特效即可。特效sdk中还包含有特效渲染函数,通过特效渲染函数对源纹理进行特效渲染处理,从而生成特效纹理数据。值得注意的是,特效纹理数据是以纹理id(textureid)的形式输出,作为输出纹理。以纹理id的形式输出纹理至少具备以下优点:1、方便业务方根据纹理id进行二次处理,例如美颜等;2、能够适配更多云厂商视频通话方案,方便对ar特效结果进行推拉流操作。
50.步骤105,向业务端返回输出纹理。
51.可选地,作为一种可能的实现方式,在得到输出纹理之后,可以根据输出纹理,对增强现实ar场景中的目标对象进行绘制,得到增强现实ar场景的特效图像信息;向业务端返回特效图像信息。
52.可选地,作为一种可能的实现方式,在目标对象未处于加锁状态下,可以调度线程池中的第一线程执行对增强现实ar场景中目标对象的源纹理进行处理的步骤,并对目标对象加锁直至第一线程执行完毕。
53.可选地,作为另一种可能的实现方式,在目标对象未处于加锁状态下,可以调度线程池中的第二线程执行对增强现实ar场景中的目标对象进行绘制的步骤并对目标对象进行加锁直至第二线程执行完毕。
54.这里,在opengl系统中调用纹理id时,为了防止程序崩溃,可以在不同的线程中独
立进行,并且每个线程都要在加锁的状态下工作,以起到保护隔离的作用。
55.该实施例中,在获得输出纹理之后,为了获得经过特效渲染后的ar视频,还可以对输出纹理进行进一步的处理,其中包含两个线程,第一个线程用于加载输出纹理,第二个线程用于绘图,绘图后的输出结果即为目标对象对应的特效ar视频。
56.作为一种示例,图2为本公开实施例特效sdk后处理方案的技术实现框图。如图2所示,特效sdk后处理模块,可以包括接口层、ar开发和调试平台的控制器(controller)、渲染器(render)和ar核心渲染组件。其中,接口层用于与业务方后处理模块进行交互,控制器用于执行本实施例提供的方法,渲染器用于在控制器的控制下调用ar核心渲染组件进行渲染操作。
57.如图2所示的交互过程中,业务方后处理模块发送指令以初始化特效sdk后处理模块的环境之后,将共享上下文和输入纹理提供至特效sdk后处理模块,特效sdk后处理模块中的控制器在初始化的增强现实ar场景中导入共享上下文得到目标对象,并控制渲染器调用ar核心渲染组件基于目标对象的输入纹理,渲染设定的特效,得到输出纹理,并返回给业务方后处理模块。业务方后处理模块的视图(view)组件根据输出纹理进行后续处理。
58.综上,本公开实施例在对目标对象进行渲染时以纹理数据的形式进行输入输出处理,并将目标对象转换成共享上下文的形式进行多次调用,从而实现了ar视频资源处理过程更加灵活且通用。在ar视频的初始处理阶段,通过对视频进行插帧处理,解决了视频可能存在的丢帧问题。此外,输出纹理是以纹理id的形式,从而方便业务方对特效sdk处理的结果可以进行二次处理,以及能够适配更多云厂商视频通话方案,方便对ar特效结果进行推拉流操作。
59.本公开实施例的特效处理方法,响应于业务端发送的初始化指令,初始化增强现实ar场景;在ar场景中导入待特效处理的目标对象;将业务端设定的输入纹理,确定为目标对象的源纹理;根据业务端设定的特效,对ar场景中目标对象的源纹理进行特效处理,得到目标对象的输出纹理;向业务端返回输出纹理。通过将业务端待处理的ar资源转化成纹理数据的格式进行处理,从而实现了业务端可以对处理后的ar资源进行二次处理,以及可以适配更多云厂商视频通话方案,并且解决了处理后的ar视频资源可能存在丢帧的问题,除此以外,由于在处理过程中应用了共享上下文,使得该处理过程更加灵活且通用。
60.基于上一实施例,本实施例提供了另一种特效处理方法的可能的实现方式,图3为本公开实施例提供的另一种特效处理方法的流程示意图。
61.如图3所示,该特效处理方法可以包括以下步骤:
62.步骤301,响应于业务端发送的初始化指令,初始化增强现实ar场景。
63.该步骤的实施例,可以参见上一实施例中的步骤101,原理相同,在此不再赘述。
64.步骤302,从业务端获取资源视频,在资源视频的帧率低于设定阈值的情况下,对资源视频进行插帧处理。
65.该实施例中,考虑到业务方提供的视频资源可能存在丢帧的问题,为了提高视频输出质量,在对视频资源进行处理之前,可以应用sdk中相应的功能对视频资源进行插帧处理。例如,在视频资源的帧率低于设定的标准帧率的情况下,可以将视频资源的帧率恢复到标准帧率,然后再对恢复后的视频资源进行进一步的处理。
66.步骤303,在ar场景的背景中导入处理后的资源视频,以得到ar场景中作为背景的
目标对象。
67.该实施例中,背景的目标对象为未包含上下文信息的目标对象,只是一种可以包含视频资源信息的模型而已。
68.步骤304,接收业务端发送的共享上下文的标识,根据共享上下文的标识,在ar场景的前景中导入共享上下文,以得到ar场景中作为前景的目标对象。
69.该实施例中,通过接受业务端发送的共享上下文,根据包含有视频资源信息的共享上下文标识,将其导入上一步骤303中的模型中,进而得到增强现实ar场景中作为前景的目标对象。前景的目标对象可以呈现在屏幕上,为可以通过裸眼观察到的虚拟影像。共享上下文的获取方式已在上一实施例中的步骤102中给出,原理相同,在此不再赘述。
70.步骤305,调用设定的特效对应的纹理渲染函数,对ar场景中目标对象的源纹理进行纹理渲染,得到目标对象的输出纹理。
71.步骤306,向业务端返回输出纹理。
72.上述步骤305及步骤306中的具体实现方式可以参见上一实施例中的步骤104及步骤105,原理相同,在此不再赘述。
73.本公开实施例的特效处理方法,响应于业务端发送的初始化指令,初始化增强现实ar场景;从业务端获取资源视频,在资源视频的帧率低于设定阈值的情况下,对资源视频进行插帧处理;在ar场景的背景中导入处理后的资源视频,以得到ar场景中作为背景的目标对象;接收业务端发送的共享上下文的标识,根据共享上下文的标识,在ar场景的前景中导入共享上下文,以得到ar场景中作为前景的目标对象;调用设定的特效对应的纹理渲染函数,对ar场景中目标对象的源纹理进行纹理渲染,得到目标对象的输出纹理;向业务端返回输出纹理。通过将业务端待处理的ar资源转化成纹理数据的格式进行处理,从而实现了业务端可以对处理后的ar资源进行二次处理,以及可以适配更多云厂商视频通话方案,并且解决了处理后的ar视频资源可能存在丢帧的问题,除此以外,由于在处理过程中应用了共享上下文,使得该处理过程更加灵活且通用。
74.作为一种示例,以特效为人脸特效进行示例性说明,如图4所示,为本公开一具体实施例所提供的人脸特效处理方法流程示意图。
75.该实施例中,首先将相机拍摄到人脸图片转换成相机纹理数据,然后将此相机纹理数据存入到缓存纹理模块,以及加载到显存gpu(graphics processing unit,图形处理器)的处理算法模块中,在该模块中将会对人脸图像进行大小与格式转换的操作,其中,模块中各组件执行的功能可以如表1所示。
76.表1处理算法模块所包含的算法组件
77.算法组件数据大小数据格式图像跟踪组件640*360yuvslam组件1280*720yuv人脸识别跟踪组件320*180bgr人体识别跟踪组件320*180bgr背景分割组件192*192bgr
78.进一步地,可以将处理算法模块的处理结果回读到内存cpu(center processing unit,中央处理器)中,并提供给人脸算法计算模块,随后将人脸算法计算模块的处理结果
反馈给背景纹理渲染模块,然后将获得的渲染纹理数据导入到人脸模型中,进一步地与ar特效进行融合输出,业务方负责上屏。
79.作为一种示例,人脸图片的大小和格式在显存和内存中的转化和处理流程可以如图5所示,显存gpu存储即将提取的渲染数据,内存暂时存储处理器cpu中的运算数据。在显存部分,色彩空间rgba中分辨率为1280*720的人脸图片,需要调整到人脸识别跟踪组件能够处理的分辨率为320*180,数据格式为bgr的形式,然后将转换后的结果回读到内存中。通过对图像大小和格式的转换,可以有效降低算法耗时与整体功耗。
80.需要说明的是,本公开的技术方案中,所涉及的人脸图片的采集、用户个人信息的获取、存储、应用和分析等,均符合相关法律法规的规定,且不违背公序良俗。
81.为了实现上述实施例,本公开还提供一种特效处理装置。
82.图6为本公开实施例提供的一种特效处理装置的结构示意图。
83.如图6所示,该特效处理装置600可以包括:初始化模块610、导入模块620、输入模块630、输出模块640、反馈模块650。
84.初始化模块610,用于响应于业务端发送的初始化指令,初始化增强现实ar场景。
85.导入模块620,用于在ar场景中导入待特效处理的目标对象。
86.输入模块630,用于将业务端设定的输入纹理,确定为目标对象的源纹理。
87.输出模块640,用于根据业务端设定的特效,对ar场景中目标对象的源纹理进行特效处理,得到目标对象的输出纹理。
88.反馈模块650,用于向业务端返回输出纹理。
89.进一步地,作为一种可能的实现方式,上述输出模块640,可以包括:
90.渲染单元,用于调用设定的特效对应的纹理渲染函数,对ar场景中目标对象的源纹理进行纹理渲染,得到目标对象的输出纹理。
91.绘制单元,用于根据输出纹理,对ar场景中的目标对象进行绘制,得到ar场景的特效图像信息。
92.反馈单元,用于向业务端返回特效图像信息。
93.执行单元,用于在目标对象未处于加锁状态下,调度线程池中的第一线程执行对ar场景中目标对象的源纹理进行处理的步骤,并对目标对象加锁直至第一线程执行完毕;以及在目标对象未处于加锁状态下,调度线程池中的第二线程执行对ar场景中的目标对象进行绘制的步骤并对目标对象进行加锁直至第二线程执行完毕。
94.作为一种可能的实现方式,上述导入模块620,用于:接收业务端发送的共享上下文的标识;根据共享上下文的标识,在ar场景的前景中导入共享上下文,以得到ar场景中作为前景的目标对象。
95.作为一种可能的实现方式,上述初始化模块610,用于:从业务端获取资源视频;在资源视频的帧率低于设定阈值的情况下,对资源视频进行插帧处理;在ar场景的背景中导入处理后的资源视频,以得到ar场景中作为背景的目标对象。
96.作为一种可能的实现方式,上述初始化模块610,还用于:根据设定的目标尺寸、目标播放方向和/或目标格式,对业务端发送的资源视频进行尺寸、播放方向和格式调整中的至少一种。
97.本实施例的特效处理装置,响应于业务端发送的初始化指令,初始化增强现实ar
programmable logic device,复杂可编程逻辑设备)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
105.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
106.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、ram、rom、eprom(electrically programmable read

only

memory,可擦除可编程只读存储器)或快闪存储器、光纤、cd

rom(compact disc read

only memory,便捷式紧凑盘只读存储器)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
107.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(cathode

ray tube,阴极射线管)或者lcd(liquid crystal display,液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
108.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:lan(local area network,局域网)、wan(wide area network,广域网)、互联网和区块链网络。
109.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtual private server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
110.其中,需要说明的是,人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
111.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
112.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜