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

图像渲染方法、装置、设备和介质与流程

2022-12-13 22:11:29 来源:中国专利 TAG:


1.本公开的示例实施例总体涉及计算机领域,特别地涉及图像渲染方法、装置、设备和计算机可读存储介质。


背景技术:

2.图像渲染是图像处理领域中非常重要的一个环节。通过渲染技术,可以使得图像具有更好的视觉体验效果。因此,渲染技术在近年来得到了广泛的应用。在传统的渲染技术中,软件工程师以编写代码的方式静态地生成渲染任务处理过程,以对待处理图像进行处理。每当需求发生变化时,软件工程师需要重新编写或修改代码以生成新的渲染处理过程。因此,在传统的渲染技术中,渲染任务处理过程的生成需要具有一定的专业技能的专业人员且生成的渲染任务处理过程缺乏灵活性。


技术实现要素:

3.根据本公开的示例实施例,提供了一种图像渲染的方案。
4.在本公开的第一方面,提供了一种图像渲染方法。该方法包括获得用户针对图像处理节点的输入指令,该图像处理节点是预先封装的且与给定的图像处理功能相关联。该方法还包括根据该输入指令,生成包括多个所述图像处理节点的渲染任务处理过程。该方法进一步包括通过执行所述渲染任务处理过程来渲染所述用户的待处理图像。
5.在本公开的第二方面,提供了一种图像渲染装置。该装置包括输入指令获取模块,被配置为获得用户针对图像处理节点的输入指令,所述图像处理节点是预先封装的且与给定的图像处理功能相关联。该装置还包括渲染任务生成模块,被配置为根据所述输入指令,生成包括多个所述图像处理节点的渲染任务处理过程。该装置进一步包括渲染任务执行模块,被配置为通过执行所述渲染任务处理过程来渲染所述用户的待处理图像。
6.在本公开的第三方面,提供了一种电子设备。该设备包括至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。指令在由至少一个处理单元执行时使设备执行第一方面的方法。
7.在本公开的第四方面,提供了一种计算机可读存储介质。介质上存储有计算机程序,计算机程序被处理器执行以实现第一方面的方法。
8.应当理解,本发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键特征或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。
附图说明
9.结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
10.图1示出了本公开的实施例能够在其中应用的示例环境的示意图;
11.图2示出根据本公开的一些实施例的图像渲染过程的流程图;
12.图3示出了根据本公开的一些实施例的渲染任务处理过程的示意框图;
13.图4示出根据本公开的一些实施例的图像处理节点间的交互流程图;
14.图5示出了根据本公开的一些实施例的图像渲染装置的框图;以及
15.图6示出了能够实施本公开的多个实施例的设备的框图。
具体实施方式
16.下面将参照附图更详细地描述本公开的实施例。虽然附图中示出了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
17.在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“一些实施例”应当理解为“至少一些实施例”。下文还可能包括其他明确的和隐含的定义。
18.可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
19.可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当根据相关法律法规通过适当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
20.例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
21.作为一种可选的但非限制性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式,例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或“不同意”向电子设备提供个人信息的选择控件。
22.可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其他满足相关法律法规的方式也可应用于本公开的实现方式中。
23.本公开所使用的术语“图像”包括但不限于,图片、视频、多媒体等形式的数据。
24.如本公开所讨论的,在传统的渲染技术中,在生成渲染任务处理过程时,需要软件工程师以编写代码的方式静态地生成渲染任务处理过程,以对待处理图像进行处理。具体而言,针对一特定的图像渲染过程,软件工程师需要编写渲染主程序,在渲染主程序中实现待处理图像的读取、调用相关渲染算法和/渲染引擎,并输出渲染结果。
25.可见,在传统的渲染技术中,渲染任务处理过程的生成需要具有一定专业技能的专业技术人员才能完成,这使得不具备软件编程背景的技术人员以及有渲染需求的用户无法自己生成渲染任务处理过程。
26.进一步地,随着云端渲染技术的发展,渲染任务的复杂程度越来越高,这导致完整
图像渲染任务往往需要组合多种计算机视觉算法和多个不同的渲染引擎。例如,针对虚拟直播场景,渲染任务至少会涉及人像分割的人工智能算法、人脸关键点识别算法、美颜效果处理、风格化人像处理以及三维背景渲染等。进一步地,这些计算机视觉算法和渲染引擎彼此依赖。换句话说,下一个处理过程需要上一个处理过程的输出作为输入,例如,美颜效果处理需要人脸关键点识别的结果作为输入,这无疑进一步增加了生成渲染任务处理过程的复杂度。
27.除此之外,在传统的渲染技术中,渲染任务被编写为渲染主程序,这导致渲染任务的处理逻辑依赖于渲染主程序的代码逻辑。通常而言,一套代码逻辑仅能对应一特定的渲染任务处理过程,这使得每当需求发生变化时,都需要重新编写或修改代码以生成新的渲染任务处理过程。可见,传统的生成渲染任务处理过程的操作缺乏灵活性。
28.因此需要提出一种高效灵活的图像渲染方法以改进传统的图像渲染过程,尤其是,改进传统的生成渲染任务处理过程。
29.根据本公开的一些实现,提供了一种图像渲染方案。根据本公开的方案,将图像处理过程中涉及的图像处理功能预先封装成多个图像处理节点,用户通过指令将预先封装的图像处理节点编辑成渲染任务处理过程。以此方式,用户可以根据相应的渲染任务灵活地选取并组织图像处理节点,从而大大降低了生成渲染任务处理过程的复杂度,且提高了渲染任务处理过程生成的灵活性。
30.示例环境
31.图1示出了本公开的实施例能够在其中实现的示例环境100的示意图。环境100涉及图像处理环境,其中包括计算设备110。在一些实施例中,计算设备110既可以是服务器侧的设备/装置/模块,也可以是终端侧的设备/装置/模块。附加地,在一些实施例中,计算设备110为云渲染系统或云端渲染平台。备选地或附加地,计算设备110为渲染系统或本地渲染平台。应当理解,在本公开中,计算设备110可以为任何能够执行渲染任务的设备/装置/模块。本公开的实施例在此方面不受限制。
32.如图1所示,计算设备110与节点系统120之间可以进行交互。在图1的特定实施例中,节点系统120包括l个图像处理节点125-1
……
125-k、
……
125-l,其中n为大于1的整数,k=1、2、
……
l。为便于讨论,图像处理节点125-1
……
125-k、
……
125-l可以被统称为或单独称为图像处理节点125。
33.在一些实施中,计算设备110可以接收输入指令,如图1所示的输入指令130-1
……
130-k、
……
130-m,其中m为大于1的整数,k=1、2、
……
m,并生成渲染任务处理过程140。为便于讨论,输入指令130-1
……
130-k、
……
130-m可以被统称为或单独称为输入指令130。
34.在一些实施例中,输入指令130是针对图像处理节点125的输入指令,并且渲染任务处理过程140包括多个图像处理节点125。
35.在一些实施例中,输入指令130可以通过有线通信或无线通信的方式而被传输到计算设备110。在一些示例实施例中,计算设备110也可以通过与计算设备110相耦合的输入设备(包括但不限于,例如,鼠标、键盘、触摸笔、触摸屏,等等)来接收用户所输入的输入指令130。
36.进一步地,如图1所示,渲染任务处理过程140可以的输入可以为待处理图像,如图1所示的待处理图像150-1
……
150-k、
……
150-p,其中p为大于1的整数,k=1、2、
……
p,并
输出渲染结果,如图1所示的渲染结果160-1
……
160-k、
……
160-n,其中n为大于1的整数,k=1、2、
……
n。为便于讨论,待处理图像150-1
……
150-k、
……
150-p可以被统称为或单独称为待处理图像150,渲染结果160-1
……
160-k、
……
160-n可以被统称为或单独称为渲染结果160。
37.在一些示例实施例中,计算设备110可以在位于计算设备110内的数据库/存储器或者位于计算设备110外的数据库/存储器中获取待处理图像150和/或存储渲染结果160。本公开的实施例在此方面不受限制。
38.进一步地,虽然在计算设备110和节点系统120被作为独立的模块被示出,但在真实的图像处理场景中,计算设备110和节点系统120既可以位于彼此分离的物理实体中也可以位于相同的物理实体中。本公开的实施例在此方面不受限制。
39.在一些实施例中,渲染任务处理过程140与虚拟对象的渲染相关联。作为一特定实施例,用户设备110可以生成虚拟人物形象,并生成针对该虚拟人物形象的渲染任务处理过程140,诸如,对虚拟人物的背景渲染、设置虚拟人物的脸型、发型、服饰等。
40.作为又一特定实施例,用户设备110可以对虚拟人物进行动漫化、复古化的处理。作为又一特定实施例,用户设备110将虚拟人物的环境渲染为田园风、复古风等不同的显示风格。作为又一特定实施例,用户设备110可以为虚拟任务添加虚拟道具等。
41.应当理解,上述特定场景仅用于说明的目的,其不应理解为对本公开保护范围的限定。
42.此外,还应当理解,图1仅示出了示例的图像处理环境。根据实际的应用需要,具体的实施环境可以不同。例如,图1中所示的输入指令130、图像处理节点125、节点系统120、待处理图像150、渲染结果160、计算设备110、渲染任务处理过程140的数目和连接关系仅处于说明和示意的目的而被示出。在其他实施例中,输入指令130、图像处理节点125、节点系统120、待处理图像150、渲染结果160、计算设备110、渲染任务处理过程140的数目和连接关系可以被改变。进一步地,在其他实施例中,图像处理环境还可以包括其他节点/模块/设备。本公开的范围在此方面不受限制。
43.示例过程
44.以下将继续参考附图描述本公开的一些示例实施例。
45.图2示出根据本公开的一些实施例的图像处理过程200的流程图。为便于讨论,参考图1的环境100进行讨论。图像处理过程200可以被实现在计算设备110处。
46.在框210,计算设备110获得用户针对图像处理节点125的输入指令130。在一些实施例中,图像处理节点125是预先封装的且与给定的图像处理功能相关联。
47.在一些实施例中,图像处理节点125被封装成插件。以此方式,图像处理节点125将具有更好的通用性。进一步地,图像处理节点125被封装成动态链接库(dynamic link library,dll)的形式。以此方式,图像处理节点125可以动态地被调用,由此进一步优化了系统的资源利用率。
48.应当理解,上述图像处理节点125的示例封装方式仅用于说明的目的,在其他实施例中,图像处理节点125也可以被封装成其他形式。本公开的范围在此方面不受限制。
49.附加地,在一些实施例中,图像处理节点125可以基于接口规范来被封装。具体而言,接口规范可以定义与图像处理节点125封装相关的参数。以此方式,图像处理节点125的
封装过程可以被更规范地定义。
50.附加地,在一些实施例中,接口规范可以定义至少一个图像处理节点的类型。图像处理节点的类型的一个示例是计算机视觉处理节点。在一个特定实施中,计算机视觉处理节点为实现计算机视觉相关的人工智能算法的节点,人工智能算法包括人脸关键点识别、背景/人物/物体分割、增强显示识别算法、背景填充等。
51.图像处理节点的类型的另一示例是渲染器节点。在一特定实施中,渲染器节点可以实现一特定的图像渲染过程,诸如二维渲染、三维渲染、商用渲染引擎、定制渲染引擎、以及实现特定的图像处理功能的程序/代码。
52.图像处理节点的类型的其他类型包括图像输入节点和图像输出节点。以此方式,图像渲染过程中所涉及的操作和/或过程可以被合理地划分。
53.应当理解,上述示例仅仅是说明和示意性的,在其他实施例中,图像处理节点的类型可以被定义为其他类型,诸如,图像处理过程所涉及的其他数据处理过程。本公开的实施例在此方面不受限制。
54.备选地或附加地,在一些实施例中,接口规范还可以定义与图像处理节点的类型相对应的图像处理节点125的输入参数。备选地或附加地,在一些实施例中,接口规范可以定义与图像处理节点的类型相对应的图像处理节点125的输出参数。
55.在一些实施例中。接口规范可以按照java脚本对象简谱(javascript object notation,json)的形式为图像处理节点的类型义输入参数和/输出参数。
56.在一些实施例中,根据图像处理节点的类型的不同,输入参数和/输出参数可以被定义为数值类型、图像的二进制数据以及其他适当的数据类型,例如,计算机视觉算法或渲染引擎的输出结果等。
57.如上所讨论的,图像处理节点125可以与给定的图像处理功能相关联。在一特定实施例中,当图像处理节点125为计算机视觉处理节点时,给定的图像处理功能可以为特征识别,诸如,人脸关键点识别等。在另一特定实施例中,当图像处理节点125为计算机视觉处理节点时,给定的图像处理功能可以为对象分割,诸如,背景分割、人物分割和物体分割等。当图像处理节点125为计算机视觉处理节点时,其他的给定的图像处理功能包括增强现实识别、风格化渲染以及背景填充等,其中风格化渲染可以为动漫化、复古化等。
58.应当理解,上述示例的图像处理功能仅是用于说明的目的。在其他实施例中,计算机视觉处理节点可以与任何其他的图像处理功能相关联。本公开的实施例在此方面不受限制。
59.在一特定实施例中,当图像处理节点125为图像输入节点时,其输入参数可以被定义为:包括图片/视频的图像数据,输出参数可以被定义为图像数据,功能可以被描述为读取及解析用户输入的图像数据,例如图片和视频的编解码。
60.在另一特定实施例中,当图像处理节点125为计算机视觉处理节点是,其输入参数可以被定义为:图像数据和特效渲染资源,输出参数可以被定义为图像数据,功能可以被描述为对输入的图像数据执行计算机视觉算法,诸如,绿幕抠图需要输入原始图像并输出分割后的图像,风格化渲染需要对输入的图像数据执行计算机视觉算法以输出风格化处理的图像,人脸关键点算法需要对输入的图像数据执行计算机视觉算法以输出人脸相关的点位信息。
61.在又一特定实施例中,当图像处理节点125为图像输入节点时,其输入参数可以被定义为:包括图片/视频的图像数据,输出参数可以被定义为图像数据,功能可以被描述为读取及解析用户输入的图像数据,例如,图片和视频的编解码。
62.在又一特定实施例中,当图像处理节点125为渲染器节点时,其输入参数可以被定义为:图像数据和效果渲染资源,输出参数可以被定义为图像数据,功能可以被描述为将输入的图像数据通过诸如共享内存和/或消息交互的方式发送给不同的渲染引擎,然后接收渲染引擎处理后的图像数据。
63.在又一特定实施例中,当图像处理节点125为图像输出节点时,其输入参数可以被定义为:图像数据,即,其他图像处理节点125的输出图像数据,输出参数可以被定义为图像数据,功能可以被描述为获取单帧的图像数据,进行图片和/或视频编码,并将编码结果作为输出。
64.应当理解,上述特定的实施例仅作为示例而被示出。在其他实施例中,图像处理节点的类型可以通过其他的方式被定义。此外,还可以定义更多或更少的图像处理节点的类型。本公开的实施例在此方面不受限制。
65.以此方式,渲染过程所涉及的算法、渲染引擎等均可以被封装成图像处理节点125,并且用户可以根据接口规范所定义的参数来将特定的图像处理功能封装成相应的图像处理节点125。进一步地,当有新的算法和/或渲染引擎可以被用于渲染任务处理过程140时,可以基于该接口规范,将对该新的算法和/或渲染引擎封装成相应的图像处理节点125,而无需对系统进行其他的适应性升级,由此实现了良好的可扩展性。
66.在一些实施例中,每个图像处理节点125具有相应的配置参数,诸如,包括相应的配置参数的配置文件。配置参数的一个示例是图像处理节点125的存储信息。配置参数的另一示例是图像处理节点125的输入参数的格式和大小中的至少一项。配置参数的又一示例是图像处理节点125的输出参数的格式和大小中的至少一项。
67.在一特定实施中,图像处理节点125的配置参数可以被定义为配置文件,其中定义图像处理节点125的相关参数,例如,图像处理节点125对应的动态链接库的文件路径,输入参数和/或输入参数的格式、大小、渲染资源的路径,其中渲染资源的路径可以为渲染引擎的资源包路径,配置文件可以为json的形式。作为一特定实施例,定义输入的图像大小为1920*1080、输入参数为人脸关键点数据的格式、输入的图像大小为1920*1080、输出的图像为png格式。
68.应当理解,上述示例的配置参数仅是用于说明的目的。在其他实施例中,配置参数可以是任何与创建/调用/初始化/运行/卸载/销毁该图像处理节点125相关联的参数。本公开的实施例在此方面不受限制。
69.以此方式,每个图像处理节点125可以根据其自身的特定功能,定义相应的配置参数。当该图像处理节点125被调用时,计算设备110可以获得与该图像处理节点125相关联的所有相应参数。
70.在框220,计算节点110根据所述输入指令130,生成包括多个所述图像处理节点125的渲染任务处理过程140。
71.在一特定实施例中,输入指令130为从用户编辑的配置文件中解析获得输入指令130。例如,用户通过编辑配置文件,确定多个需要的图像处理节点125并确定其依赖关系,
有时也被称为连接关系或关联关系。计算设备110读取并解析配置文件,从而生成渲染任务处理过程140。
72.备选地,在另一特定实施中,计算设备110通过向用户呈现图像处理节点125来接收用户的输入指令130。例如,计算设备110向用户呈现交互界面。作为示例,该交互界面可以包括多个图像处理节点125的选择区域和/或渲染任务处理过程140的编辑区域。用户可以通过点击、拖拽、插入等方式选择图像处理节点125和/或编辑渲染任务处理过程140。进一步地,在交互的过程中,计算设备110可以进一步地以临时菜单、弹出窗口、下拉菜单、悬浮框等方式向用户呈现交互选项和操作说明等。
73.应当理解,上述特定的获得用户输入指令130和/或编辑渲染任务处理过程140的示例仅仅是用于说明的目的。在其他实施例中,用户可以采用任何现有的或未来实现的交互方式来选择图像处理节点125和/或编辑渲染任务处理过程140。本公开的实施例在此方面不受限制。
74.图3示出了根据本公开的一些实施例的渲染任务处理过程140的示意框图。为便于讨论,参考图1的环境100进行讨论。
75.如图3所示,渲染任务处理过程140由图像处理节点125-1至125-6组成。在图3的特定实施例中,图像处理节点125-1可以为图像输入节点,图像处理节点125-6可以为图像输出节点,图像处理节点125-2至125-5可以为计算机视觉处理节点/渲染器节点。
76.以此方式,通过将具有特定图像处理功能的多个图像处理节点125组织成节点图的形式,进一步简化了渲染任务处理过程140的生成过程。
77.应当理解,图3仅示出了示例的渲染任务处理过程140。根据实际的应用需要,生成的渲染任务处理过程140可以不同。例如,图3中所示的图像处理节点125的数目和连接关系仅仅是说明和示意的目的。在其他实施例中,渲染任务处理过程140包括图像处理节点125的数目和连接关系可以被改变。本公开的范围在此方面不受限制。
78.继续参考图2,在框230,计算设备110通过执行渲染任务处理过程140来渲染用户的待处理图像150。
79.如上所讨论的,每个图像处理节点125可以具有相应的配置参数。附加地,在一些实施例中,在执行所述渲染任务处理过程140之前,计算节点110根据图像处理过程140所包括的多个所述图像处理节点125的配置参数,初始化相应的图像处理节点125。
80.在初始化操作期间,计算节点110可以针对不同类型的图像处理节点125执行不同的操作。当相应图像处理节点125为计算机视觉处理节点时,示例的初始化操作可以为初始化与该计算机视觉处理节点相关联的推理引擎。备选地或附加地,当相应图像处理节点为计算机视觉处理节点时,示例的初始化操作还可以为加载与该计算机视觉处理节点相关联的推理模型。备选地或附加地,当相应图像处理节点125为计算机视觉处理节点时且被封装成插件的形式时,示例的初始化操作还可以为加载该图像处理节点125的动态链接库dll,并初始化运行插件所需的操作。
81.备选地或附加地,当相应图像处理节点125为渲染器节点,示例的初始化操作可以包括初始化与该渲染器节点相关联的渲染环境。备选地或附加地,当相应图像处理节点125为渲染器节点,示例的初始化操作还可以包括启动与该渲染器节点相关联的渲染引擎。备选地或附加地,当相应图像处理节点125为渲染器节点,示例的初始化操作还可以包括加载
待渲染的图像。
82.应当理解,上述初始化操作的示例仅被用于说明的目的。在其他实施例中,初始化操作可以包括运行图像处理节点125之前所需要的任意适当操作。本公开的实施例在此方面不受限制。
83.在一些实施例中,在所述渲染任务处理过程140完成之后,计算节点110还可以卸载相应图像处理节点125,有时也被称为销毁图像处理节点125。
84.在卸载操作期间,计算节点110可以针对不同类型的图像处理节点125执行不同的卸载操作。当相应图像处理节点125为计算机视觉处理节点时,示例的卸载操作可以为卸载与该计算机视觉处理节点相关联的推理引擎。备选地或附加地,当相应图像处理节点125为计算机视觉处理节点时,示例的卸载操作还可以为卸载与该计算机视觉处理节点相关联的推理模型。
85.备选地或附加地,当相应图像处理节点125为渲染器节点,示例的卸载操作可以包括退出与该渲染器节点相关联的渲染引擎。备选地或附加地,当相应图像处理节点125为渲染器节点,示例的卸载操作还可以包括卸载渲染数据等。
86.以此方式,系统资源可以被及时地回收,由此提高了系统资源的利用率。
87.将结合图4所示出的图像处理节点125间的交互流程图400来进一步描述图像处理节点125的生命周期。为便于讨论,参考图3的渲染任务处理过程140进行讨论。
88.在框410,图像处理节点125-2被封装。诸如,图像处理节点125-2为与人脸关键点识别相对应的计算机视觉处理节点。基于接口协议对于计算机视觉处理节点类型的定义和规定,可以为图像处理节点125-2定义特定的配置参数。以此方式,图像处理节点125可以被差异化地定义,使得即使对于相同的功能图像处理节点125,也可以由于配置参数的不同而实现不同的功能。
89.在框420,图像处理节点125-2被初始化。例如,加载与人脸关键点识别相关联的推理引擎和/或推理模型。附加地,在一些实施例中,可以在驱动渲染任务处理过程140之前/开始阶段触发图像处理节点125-2的初始化。以此方式,系统的资源将以按需的方式被调用,从而提高了系统资源的利用率。
90.在框430,图像处理节点125-2将接收输入并输出结果。具体而言,如图4所示,在框432,图像处理节点125-2完成设置输入,例如,按照诸如输入参数的大小和格式的配置等的具体的配置参数来接收输入的待处理数据150。如本公开之前所讨论的,图像处理节点125的输入参数可以为图像数据或者计算机视觉算法或渲染引擎的输出结果等。在一些实施例中,不同的输入参数可以通过键值映射关系来定义。附加地,在一些实施例中,图像处理节点125-2的输入参数可以在图像处理节点125-2的配置参数中被定义,并且配置参数的解析可以由图像处理节点125-2来实现。
91.在框434,图像处理节点125-2动态地更新图像。例如,当图像处理节点125-2被实现为插件的形式时,图像处理节点125-2被驱动运行。当输入参数为多帧视频数据时,图像处理节点125-2需要在每帧更新输入图像,并传入每帧的更新间隔时间,例如,当每秒传输帧数(frames per second,fps)为60时,每帧的更新间隔时间为16.67ms。
92.在框436,图像处理节点125-2输出结果至图像处理节点125-3。在图4的特定实施例中,图像处理节点125-2可以为计算机视觉处理节点,图像处理节点125-3可以为渲染器
节点。
93.图像处理节点125-2周期性地执行框432-1至342-6直至渲染任务处理过程140被完成。在一些实施例中,当渲染任务处理过程140被设计为节点图时,计算设备110驱动节点图,输入待处理图像150,调用节点图中的每一个节点的接口,使输入待处理图像150经过每一个节点的处理,并将上一个节点的结果输入到下一个节点。以此方式,依次处理完成所有节点后,形成最终的渲染结果160。如果渲染任务处理过程140被完成,图像处理节点125-2将被卸载。
94.进一步地,如图4所示,图像处理节点125-3同样需要进行与图像处理节点125-2类似的操作,诸如,封装、初始化、设置输入、更新图像、输出结果以及卸载等。处于简要的目的,本文不再重复讨论。
95.以此方式,用户可以根据特定渲染任务的需求,灵活便捷地生成渲染任务处理过程140。
96.近一步地,根据本公开的各种实现,可以将渲染任务涉及的处理流程、计算机视觉算法以及渲染引擎封装为图像处理节点125,并可以将图像处理节点125灵活地组织成多种功能的图像处理处理过程140。以此方式,渲染任务处理过程140的生成可以不依赖代码编写,降低了渲染任务处理过程140生成的难度,以便没有编程基础的人员以及具有渲染需求的企业和个人用户均可以根据各自的需求生成/设计相应的渲染任务处理过程140。
97.示例装置和设备
98.图5示出了根据本公开的一些实施例的处理离线渲染任务的装置500的框图。装置500可以被实现为或者被包括在计算设备110。装置500中的各个模块/组件可以由硬件、软件、固件或者它们的任意组合来实现。
99.如图所示,装置500包括输入指令获取模块510,被配置为获得用户针对图像处理节点125的输入指令130,图像处理节点125是预先封装的且与给定的图像处理功能相关联。装置500还包括渲染任务生成模块520,被配置为根据输入指令130,生成包括多个图像处理节点125的渲染任务处理过程140。装置500进一步包括渲染任务执行模块530,被配置为通过执行所述渲染任务处理过程140来渲染所述用户的待处理图像150。
100.在一些实施例中,装置500还包括:封装模块,被配置为根据接口规范,封装特定的图像处理功能以生成所述图像处理节点125。在一些实施例中,接口规范定义至少一个图像处理节点125的类型。备选地或附加地,在一些实施例中,接口规范定义与图像处理节点125的类型相对应的图像处理节点125的输入参数。备选地或附加地,在一些实施例中,接口规范定义与图像处理节点125的类型相对应的图像处理节点125的输出参数。
101.在一些实施例中,至少一个图像处理节点125的类型包括图像输入节点。备选地或附加地,在一些实施例中,至少一个图像处理节点125的类型包括图像输出节点。备选地或附加地,在一些实施例中,至少一个图像处理节点125的类型包括计算机视觉处理节点。备选地或附加地,在一些实施例中,至少一个图像处理节点125的类型包括渲染器节点。
102.在一些实施例中,计算机视觉处理节点与特征识别相关联。
103.备选地或附加地,在一些实施例中,计算机视觉处理节点与特征识别相关联。
104.备选地或附加地,在一些实施例中,计算机视觉处理节点与对象分割相关联。
105.备选地或附加地,在一些实施例中,计算机视觉处理节点与增强现实识别相关联。
106.备选地或附加地,在一些实施例中,计算机视觉处理节点与风格化渲染相关联。
107.备选地或附加地,在一些实施例中,计算机视觉处理节点与背景填充相关联。
108.在一些实施例中,多个所述图像处理节点125中的图像处理节点125具有相应的配置参数。在一些实施例中,所述相应的配置参数指示所述图像处理节点125的存储信息,诸如,存储路径。备选地或附加地,在一些实施例中,所述相应的配置参数指示所述图像处理节点125的输入参数的格式和大小中的至少一项。备选地或附加地,在一些实施例中,所述相应的配置参数指示所述图像处理节点125的输出参数的格式和大小中的至少一项。
109.在一些实施例中,装置500还包括:初始化模块,被配置为在执行所述渲染任务处理过程140之前,根据所述图像处理过程所包括的所述多个所述图像处理节点125的配置参数,初始化所述多个所述图像处理节点125中的相应图像处理节点125。
110.在一些实施例中,相应图像处理节点125为计算机视觉处理节点,并且其中初始化所述相应图像处理节点125包括初始化与所述计算机视觉处理节点相关联的推理引擎。
111.备选地或附加地,在一些实施例中,相应图像处理节点125为计算机视觉处理节点,并且其中初始化所述相应图像处理节点125包括加载与所述计算机视觉处理节点相关联的推理模型。
112.在一些实施例中,所述相应图像处理节点125为渲染器节点,并且其中初始化所述相应图像处理节点125包括初始化与所述渲染器节点相关联的渲染环境。
113.备选地或附加地,在一些实施例中,所述相应图像处理节点125为渲染器节点,并且其中初始化所述相应图像处理节点125包括启动与所述渲染器节点相关联的渲染引擎。
114.在一些实施例中,装置500还包括:卸载模块,被配置为在所述渲染任务处理过程140完成之后,卸载所述多个所述图像处理节点125中的相应图像处理节点125。
115.在一些实施例中,指令获取模块510还被配置为从所述用户编辑的配置文件中解析获得所述输入指令130。
116.备选地或附加地,在一些实施例中,指令获取模块510还被配置为通过向所述用户呈现所述图像处理节点125来接收所述用户对所述图像处理节点125的选择。
117.在一些实施中,渲染任务处理过程与虚拟对象的渲染相关联。
118.在一些实施中,虚拟对象为虚拟人物。
119.图6示出了其中可以实施本公开的一个或多个实施例的计算设备/系统600的框图。应当理解,图6所示出的计算设备/系统600仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。图6所示出的计算设备/系统600可以用于实现图1的计算节点110。
120.如图6所示,计算设备/系统600是通用计算设备的形式。计算设备/系统600的组件可以包括但不限于一个或多个处理器或处理单元610、存储器620、存储设备630、一个或多个通信单元640、一个或多个输入设备650以及一个或多个输出设备660。处理单元610可以是实际或虚拟处理器并且能够根据存储器620中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备/系统600的并行处理能力。
121.计算设备/系统600通常包括多个计算机存储介质。这样的介质可以是计算设备/系统600可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不
可拆卸介质。存储器620可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(ram))、非易失性存储器(例如,只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存)或它们的某种组合。存储设备630可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在计算设备/系统600内被访问。
122.计算设备/系统600可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图6中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器620可以包括计算机程序产品625,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实施例的各种方法或动作。
123.通信单元640实现通过通信介质与其他计算设备进行通信。附加地,计算设备/系统600的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备/系统600可以使用与一个或多个其他服务器、网络个人计算机(pc)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
124.输入设备650可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备660可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备/系统600还可以根据需要通过通信单元640与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备/系统600交互的设备进行通信,或者与使得计算设备/系统600与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(i/o)接口(未示出)来执行。
125.根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有计算机可执行指令或计算机程序,其中计算机可执行指令或计算机程序被处理器执行以实现上文描述的方法。
126.根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,而计算机可执行指令被处理器执行以实现上文描述的方法。
127.在本文中参照根据本公开实现的方法、装置、设备和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
128.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
129.可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生
计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
130.附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
131.以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献