CN117392301B - 图形渲染方法、系统、装置、电子设备及计算机存储介质 - Google Patents
图形渲染方法、系统、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN117392301B CN117392301B CN202311582163.0A CN202311582163A CN117392301B CN 117392301 B CN117392301 B CN 117392301B CN 202311582163 A CN202311582163 A CN 202311582163A CN 117392301 B CN117392301 B CN 117392301B
- Authority
- CN
- China
- Prior art keywords
- rendering
- deep learning
- learning model
- rendered
- file
- 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.)
- Active
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 384
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 238000013136 deep learning model Methods 0.000 claims abstract description 162
- 238000012545 processing Methods 0.000 claims abstract description 49
- 238000013135 deep learning Methods 0.000 claims description 37
- 238000001514 detection method Methods 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 14
- 230000006835 compression Effects 0.000 claims description 14
- 238000007906 compression Methods 0.000 claims description 14
- 238000005457 optimization Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 7
- 230000002452 interceptive effect Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 abstract description 31
- 230000008569 process Effects 0.000 description 17
- 239000011159 matrix material Substances 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 9
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 210000000988 bone and bone Anatomy 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 239000002184 metal Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 101000648554 Mus musculus Sushi domain-containing protein 6 Proteins 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- KAATUXNTWXVJKI-UHFFFAOYSA-N cypermethrin Chemical compound CC1(C)C(C=C(Cl)Cl)C1C(=O)OC(C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 KAATUXNTWXVJKI-UHFFFAOYSA-N 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本申请提供图形渲染方法、系统、装置、电子设备以及计算机存储介质,由于在该图形渲染方法中,将图形渲染所需的数据处理逻辑表示为在终端设备上运行的深度学习模型,采用渲染图表示图形渲染接口的调用逻辑,通过将渲染所需的数据处理逻辑与图形接口的调用逻辑转换成深度学习模型和渲染图,最后将其打包为一个待渲染文件;运行时可以直接对待渲染文件加载与运行,进而实现了终端设备上安装的图形渲染引擎具有程序体积小、迭代快、高性能的特点。
Description
技术领域
本申请涉及计算机技术领域,具体涉及图形渲染方法、图形渲染系统、图形渲染装置、电子设备以及计算机存储介质。
背景技术
随着当前时代AI(Artificial Intelligence,即:人工智能)技术和XR(ExtendedReality,扩展现实,是指通过计算机将真实与虚拟相结合,打造一个可人机交互的虚拟环境)技术不断发展,一些应用程序中使用AI技术和3D(3 Dimensions,三维技术)的场景逐步增多。与此同时,应用程序中的包大小限制越来越严格,传统的3D引擎架构在图形渲染过程中无法同时实现高性能、轻量化和功能完备的要求。
在现有的图形渲染架构中,可能开发成本高,针对各平台需要进行适配与优化,并且迭代更新慢、对应的包体积大;或者,一些图形渲染架构虽然开发成本低、迭代较快,但是性能差,无法处理数据计算繁重的场景,功能较弱。因此,如何提供能同时满足高性能、轻量化和功能完备的图形渲染方法成为当前急需解决的技术问题。
发明内容
本申请提供图形渲染方法,以实现图形渲染系统能同时满足高性能、轻量化和功能完备,本申请还提供图形渲染系统、图形渲染装置、电子设备以及计算机存储介质。
本申请提供一种图形渲染方法,包括:获得待渲染的待处理图像;根据所述待处理图像,获得运行数据与渲染图,所述渲染图用于表示渲染流程;所述运行数据是运行深度学习模型所产生的数据,所述深度学习模型是用于表示图形渲染所需的数据处理逻辑对应的学习模型;所述渲染图用于表示图形渲染接口的调用逻辑;根据所述运行数据与所述渲染图,获得待渲染文件;加载运行所述待渲染文件。
可选的,还包括:获得优化后的深度学习模型和优化后的渲染图;所述根据所述运行数据与所述渲染图,获得待渲染文件,包括:根据所述优化后的深度学习模型运行所产生的运行数据和所述优化后的渲染图,获得待渲染文件。
可选的,所述待渲染文件包括所述深度学习模型、与所述深度学习模型关联的第一参数、所述渲染图、与所述渲染图关联的第二参数以及用于描述所述第一参数与所述第二参数的关联关系;其中,所述第一参数用于表示运行所述深度学习模型的输入参数与输出参数;所述第二参数用于描述图形渲染所对应的内存对象。
本申请提供一种图形渲染系统,包括:深度学习模型编译器、深度学习引擎、图形渲染引擎;所述深度学习模型编译器,部署在服务器上,用于将图形渲染所需的数据处理逻辑编译为在终端设备上运行的深度学习模型,以及将图形渲染接口的调用逻辑编译为渲染图;所述渲染图用于表示渲染流程;所述图形渲染引擎,用于根据所述深度学习模型运行所产生的运行数据与所述渲染图,获得待渲染文件;加载运行所述待渲染文件;所述深度学习引擎,部署在终端设备上,用于运行所述深度学习模型,获得所述深度学习模型运行所产生的运行数据。
可选的,所述深度学习模型编译器,还用于根据所述深度学习模型,生成与所述深度学习模型对应的深度学习引擎。
可选的,还包括:优化模块;所述优化模块,用于对所述深度学习模型和所述渲染图进行优化,获得优化后的深度学习模型和优化后的渲染图;所述图形渲染引擎,具体用于根据所述优化后的深度学习模型运行所产生的运行数据和所述优化后的渲染图,获得待渲染文件;加载运行所述待渲染文件。
可选的,所述待渲染文件包括所述深度学习模型、与所述深度学习模型关联的第一参数、所述渲染图、与所述渲染图关联的第二参数以及用于描述所述第一参数与所述第二参数的关联关系;其中,所述第一参数用于表示运行所述深度学习模型的输入参数与输出参数;所述第二参数用于描述图形渲染所对应的内存对象。
可选的,如果所述待渲染文件的数量为多个,所述图形渲染引擎,具体用于根据所述待渲染文件的渲染标识,加载运行所述待渲染文件。
可选的,所述图形渲染引擎还用于:确定加载运行所述待渲染文件所产生的文件对象;对加载运行所述待渲染文件所产生的文件对象进行删除处理,加载运行下一个待渲染文件。
可选的,所述图形渲染引擎还用于:确定用户针对所述待渲染文件进行的交互操作;基于所述交互操作,对所述待渲染文件进行变更,获得变更后的待渲染文件;加载运行所述变更后的待渲染文件。
可选的,所述图形渲染引擎包括:调度器与渲染后端;所述调度器,用于基于所述深度学习模型,对多个深度学习模型的运行情况进行分配调度;所述渲染后端,用于加载所述待渲染文件、执行渲染指令和同步数据;所述同步数据用于同步第一数据与第二数据,所述第一数据为所述深度学习引擎运行所述深度学习模型所产生的运行数据,所述第二数据为加载运行所述待渲染文件时调用图形渲染接口进行渲染产生的数据。
可选的,所述深度学习模型编译器包括第一编译器、第二编译器;所述第一编译器包括:实体、组件与系统三部分;所述第二编译器,用于将图形渲染所需的数据处理逻辑对应的虚拟渲染效果与真实场景进行融合,获得融合后的数据处理逻辑;所述深度学习模型编译器,具体用于将所述融合后的数据处理逻辑编译为在终端设备上运行的深度学习模型。
可选的,所述优化模块包括模型优化器;所述模型优化器,用于使用深度学习引擎的模型压缩工具和图形资产压缩工具,对所述优化后的深度学习模型运行所产生的运行数据进行压缩。
可选的,所述将图形渲染所需的数据处理逻辑编译为在终端设备上运行的深度学习模型,包括:将图形渲染所需的数据处理逻辑编译为在终端设备上运行的深度学习模型对应的代码。
本申请提供一种图形渲染方法,包括:获得待渲染的待处理图像;根据所述待处理图像,获得运行数据与渲染图,所述渲染图用于表示渲染流程;所述运行数据是运行深度学习模型所产生的数据,所述深度学习模型是用于表示图形渲染所需的数据处理逻辑对应的学习模型;所述渲染图用于表示图形渲染接口的调用逻辑;其中,用于获得所述运行数据的图形渲染引擎的渲染管线嵌入有预设深度学习算法,所述深度学习算法与所述深度学习模型共同运行获得所述运行数据;根据所述运行数据与所述渲染图,获得待渲染文件;加载运行所述待渲染文件。
本申请提供一种图形渲染方法,包括:获得待渲染的待处理图像;将所述待处理图像作为目标对象检测模型的输入数据,获得所述目标对象在所述待处理图像中的位置信息;获得用于表示所述目标对象的三维模型;基于所述目标对象检测模型与所述三维模型,获得图形渲染模型;将所述待处理图像作为所述图形渲染模型的输入数据,获得所述图形渲染模型输出的运行数据与渲染图,所述渲染图用于表示渲染流程;所述运行数据是运行深度学习模型所产生的数据,所述深度学习模型是用于表示图形渲染所需的数据处理逻辑对应的学习模型;所述渲染图用于表示图形渲染接口的调用逻辑;根据所述位置信息、所述运行数据与所述渲染图,获得目标待渲染文件;加载运行所述目标待渲染文件。
本申请提供一种电子设备,包括:处理器;存储器,用于存储计算机程序,该计算机程序被处理器运行,执行上述图形渲染方法。
本申请提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,该计算机程序被处理器运行,执行上述图形渲染方法。
与现有技术相比,本申请实施例具有以下优点:
本申请提供一种图形渲染方法,包括:获得待渲染的待处理图像;根据待处理图像,获得运行数据与渲染图,渲染图用于表示渲染流程;运行数据是运行深度学习模型所产生的数据,深度学习模型是用于表示图形渲染所需的数据处理逻辑对应的学习模型;渲染图用于表示图形渲染接口的调用逻辑;根据运行数据与渲染图,获得待渲染文件;加载运行待渲染文件。由于在该图形渲染方法中,将图形渲染所需的数据处理逻辑表示为在终端设备上运行的深度学习模型,采用渲染图表示图形渲染接口的调用逻辑,通过将渲染所需的数据处理逻辑与图形接口的调用逻辑转换成深度学习模型和渲染图,最后将其打包为一个待渲染文件;运行时可以直接对待渲染文件加载与运行,进而实现了终端设备上安装的图形渲染引擎具有程序体积小、迭代快、高性能的特点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的图形渲染系统的示意图。
图2为本申请第一实施例提供的图形渲染系统的第一场景示意图。
图3为本申请第一实施例提供的图形渲染系统的第二场景示意图。
图4为本申请第一实施例提供的图形渲染系统的第三场景示意图。
图5为本申请第一实施例提供的图形渲染系统的第四场景示意图。
图6为本申请第二实施例提供的图形渲染方法的流程图。
图7为本申请第三实施例提供的图形渲染装置的示意图。
图8为本申请第五实施例提供的图形渲染方法的流程图。
图9为本申请第五实施例提供的图形渲染方法的场景示意图。
图10为本申请第六实施例提供的电子设备的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。
本申请提供图形渲染方法、图形渲染系统、图形渲染装置、电子设备及计算机存储介质。以下通过具体的实施例分别介绍图形渲染方法、图形渲染系统、图形渲染装置、电子设备及计算机存储介质。为了便于理解,先对图形渲染系统进行介绍。
第一实施例
本实施例提供一种图形渲染系统,具体请参照图1,其为本申请实施例提供的图形渲染系统的示意图。
本申请的图形渲染系统,包括:深度学习模型编译器101、深度学习引擎102、图形渲染引擎103。
在本实施例中,深度学习模型编译器,部署在服务器上,用于将图形渲染所需的数据处理逻辑编译为在终端设备上运行的深度学习模型,以及将图形渲染接口的调用逻辑编译为渲染图;渲染图用于表示渲染流程。具体地,作为将图形渲染所需的数据处理逻辑编译为在终端设备上运行的深度学习模型的一种方式,可以是指:将图形渲染所需的数据处理逻辑编译为在终端设备上运行的深度学习模型对应的代码。
图形渲染引擎,用于根据深度学习模型运行所产生的运行数据与渲染图,获得待渲染文件;加载运行待渲染文件。
深度学习引擎,部署在终端设备上,用于运行深度学习模型,获得深度学习模型运行所产生的运行数据。
在本申请中,实际上是用深度学习模型编译器把图形渲染引擎对应的大部分代码(图形渲染所需的数据处理逻辑对应的代码)转换为深度学习模型,再使用基于深度学习引擎实现的渲染运行过程进而实现图形渲染引擎的功能。
为了便于理解上述图形渲染系统中的组成部分,对以上出现的术语或者后续用到的术语进行如下解释。
张量(Tensor):可以指代维度不定的数组。
深度学习(Deep Learning):机器学习的一个分支,使用一系列算子构建复杂的图状网络去描述一个算法,基于算子梯度进行参数的更新和学习。
深度学习模型(Deep Learning Model):深度学习训练后产出的模型。
推理引擎(Inference Engine,对应上述的深度学习引擎):集成于设备上的代码库,可以用于加速运行深度学习模型,实现深度学习模型在指定设备上的高效运行。
深度学习模型编译器(Model Compiler):集成于服务器上的代码库,用于把深度学习模型编译为能在指定设备上高效运行的代码库,深度学习模型编译器的目标与推理引擎的目标一致,但实现路径不同。
图形渲染引擎(Render Engine):应用于视频制作,决定画面的真实感、流畅度、吸引力,用户所看到的画面、场景、色彩效果等内容都是由引擎直接控制的。
渲染图(Render Graph):为了灵活扩展图形渲染引擎的功能,把渲染流程抽象为一个有向无环图。
着色器(Shader):GPU厂商依据DirectX/OpenGL/Vulkan/Metal等标准,提供给用户进行编程的部分。
处理器(CPU,Central Processing Unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
图形处理器(GPU,Graphics Processing Unit),又称显示核心、视觉处理器、显示芯片,是一种在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
由于终端的普遍应用,在终端的应用中集成深度学习引擎(MNN,Mobile NeuralNetwork),可以解决深度学习模型的跨平台与高性能问题。图形渲染引擎中的各类依赖高性能计算实现的算法,如骨骼动画、表情、物理模拟等,涉及的计算问题可以表示矩阵运算或卷积以便于使用深度学习引擎优化。进而本申请基于深度学习引擎MNN实现的图形渲染系统,能够实现终端设备上安装的图形渲染引擎具有程序体积小、迭代快、高性能的特点。
本申请基于深度学习引擎/深度学习模型编译器的高性能、跨平台、轻量性的能力,来解决图形渲染引擎中性能/开发效率/体积/功能不可调和的矛盾,基于此设计了神经渲染引擎(后简称NNR引擎(Neural Network Rendering Engine,即:神经网络渲染引擎,简称神经渲染引擎))。NNR(Neural Network Rendering,即:神经网络渲染)将传统渲染引擎的结构划分为编译器与运行时两部分:编译器用于将渲染所需的数据处理逻辑与图形接口的调用逻辑转换成深度学习模型和渲染图,之后,将其打包为一个复合模型(后称NNR文件,即:待渲染文件);运行时则将NNR文件进行加载与运行,解决深度学习模型推理与图形渲染的数据交互。
具体地,为了便于理解上述NNR的流程图、架构图以及NNR文件的格式,请参见图2至图4,其分别为本申请第一实施例提供的图形渲染系统的第一场景示意图、第二场景示意图、第三场景示意图。
具体地,请参见图2,在第一场景图中,左侧对应的是编译过程,通过2D(2Dimensions,二维技术)编译器、3D编译器以及AR编译器生成NNR文件,之后经模型优化工具(对应后续的模型优化器)改变NNR文件的大小,进而可以提高系统运行性能。在图2中,模型描述对应的是图2中的模型文件(即NNR文件)的格式。
之后,参照该图右侧的运行过程,Render Engine(图形渲染引擎)与MNN通过调用OpenGL/Vulkan/Metal/CPU提供的API(Application Programming Interface,即应用程序编程接口),图形渲染引擎调用这些接口进而实现渲染。
请参见图3,在第二场景图中,基于图形渲染引擎与深度学习算法生成NNR文件,并进行数据同步与计算调度。图形渲染引擎(即:图3中的图形引擎)中调用图形接口之外的逻辑(包括图3中的固定部分、AI算法以及渲染管线编排)统称为数据处理,用于给图形接口提供渲染所需的数据。
渲染过程存在两个独立的过程:调用MNN进行推理(计算),调用图形接口进行渲染,这两个过程存在数据依赖关系,需要做数据的交互,称为数据同步,通过编译器中生成的数据同步关系进行数据同步实现图3中的输入输出关联。
NNR模型中含有多个MNN模型,模型之间也存在数据依赖关系,需要计算出执行先后顺序,把MNN模型分配到各个计算单元(CPU/GPU/NPU)上,这个过程称为计算调度。
在本实施例中,待渲染文件包括深度学习模型、与深度学习模型关联的第一参数、渲染图、与渲染图关联的第二参数以及用于描述第一参数与第二参数的关联关系;其中,第一参数用于表示运行深度学习模型的输入参数与输出参数;第二参数用于描述图形渲染所对应的内存对象。
具体地,NNR文件描述了渲染与数据处理的流程图,在端上的运行时可以较少的逻辑去解析执行,NNR文件由以下要素构成。
Tensor张量(上述的第一参数):深度学习模型的输入输出单。
Model:深度学习模型。
Render Memory:渲染内存(上述的第二参数),描述图形渲染所需要的内存对象;内存对象如:Texture:(纹理)、VBO:(顶点缓冲数据)、UBO(常量缓冲数据)与IBO(索引缓冲数据)。
Render Graph:渲染图,描述进行渲染的逻辑,由一系列Pass(渲染通道)组成,每个Pass包含一个 Target(渲染目标)与若干个Drawable(渲染操作)和 Shader(GPU 着色器)。
Sync(数据同步,即:用于描述第一参数与第二参数的关联关系):描述渲染内存与张量之间的数据同步关系,分以下两类。
Tensor to Render Memory:由Tensor输出到Render Memory。
Render Memory to Tensor:由Render Memory到Tensor。
NNR文件格式使用Flatbuffer(Flatbuffer是一种用于自定义数据文件格式的开源软件,用户编写Flatbuffer的描述文件,由Flatbuffer生成相应的数据文件格式的读取与存储代码)生成,进而运行时无需解析NNR文件的模块。
请参见图4,在第三场景图中,详细描述了NNR文件格式。在上述NNR文件构成要素中详细介绍了图4中的各个模块,在图4中的渲染项目,即待渲染文件是由3D编译器生成的。图4中的渲染内存内联函数,如RenderMem Ref,用于在渲染函数中访问DOM元素或子组件实例。图4中的模型即为深度学习模型,渲染数据包括第一参数、第二参数。
在本实施例中,深度学习模型编译器,还用于根据深度学习模型,生成与深度学习模型对应的深度学习引擎。
在本实施例的图形渲染系统中,还包括:优化模块;优化模块,用于对深度学习模型和渲染图进行优化,获得优化后的深度学习模型和优化后的渲染图;图形渲染引擎,具体用于根据优化后的深度学习模型运行所产生的运行数据和优化后的渲染图,获得待渲染文件;加载运行待渲染文件。
具体地,优化模块包括模型优化器;模型优化器,用于使用深度学习引擎的模型压缩工具和图形资产压缩工具,对优化后的深度学习模型运行所产生的运行数据进行压缩。
模型优化器运用深度学习引擎的模型压缩工具和图形资产压缩工具,对NNR文件进行压缩。
对深度学习模型的压缩方式可以参见以下几种。
剪枝:裁剪矩阵乘/卷积中的通道数,或构建稀疏矩阵乘/稀疏卷积运算。
量化:使用int8(int8是一种数据类型,也称为8位有符号整数,能够存储取值范围在-128至127之间的整数)或fp16(是指采用2字节(16位)进行编码存储的一种数据类型)替代原先的fp32(是指采用4字节(32位)进行编码存储的一种数据类型)数据类型进行计算。
对图形资产的压缩方式可以参见以下几种。
利用Draco(开源3D图形压缩库)对Mesh(网络)进行压缩。
利用纹理压缩工具对Texture(纹理)进行压缩。
由于NNR文件将图形渲染引擎中数据处理部分转换成了深度学习模型,因此可以利用深度学习模型压缩工具去优化这部分代码。
在本实施例中,图形渲染引擎还用于:确定加载运行待渲染文件所产生的文件对象;对加载运行待渲染文件所产生的文件对象进行删除处理,加载运行下一个待渲染文件。该过程对应后续的创建与销毁。
在本实施例中,图形渲染引擎还用于:确定用户针对待渲染文件进行的交互操作;基于交互操作,对待渲染文件进行变更,获得变更后的待渲染文件;加载运行变更后的待渲染文件;该过程对应后续的用户交互。
NNR运行时,其API设计包括:创建与销毁、执行渲染、用户交互。
在创建与销毁过程中,创建就是加载NNR文件,产生一个NNR对象(NNRScene),NNRScene可以执行渲染。销毁就是把这个对象删除,释放相关的内存;NNRScene的创建依赖图形上下文环境,这个上下文环境即NNRContext需要创建与销毁,NNRScene渲染需要指定目标,这个目标即NNRTarget,也需要创建与销毁。
在用户交互过程中,通过修改NNR文件中Tensor的数值,用户可以完成任意的图形渲染引擎所需交互能力,比如:移动物体:修改物体的模型矩阵对应的Tensor;播放动画:修改对应动画的时间对应的Tensor;漫游:修改视图矩阵对应的Tensor。
在本实施例中,如果待渲染文件的数量为多个,图形渲染引擎,具体用于根据待渲染文件的渲染标识,加载运行待渲染文件。
具体地,NNR的渲染除了图形渲染之外,也包括深度学习模型的运行,按如下策略排序执行。
以渲染顺序为第一主序,即按NNR文件中的Pass先后顺序执行。
每个Model预先分配一个Pass标识,表示在这个Pass完成之后执行,无标识的,在所有Pass执行之前执行。
每个Sync预先分配一个Pass标识,表示在这个Pass执行过程中执行。
对每个Pass执行渲染:执行该Pass中Tensor到Render Memory的同步;对Pass中的多个Drawable执行渲染(不分先后,可以并行执行);执行该Pass中Render Memory到Tensor的同步;执行该Pass中的所有Model,按照数据依赖关系,可以部分并行执行。
在本实施例中,图形渲染引擎包括:调度器与渲染后端。
调度器,用于基于深度学习模型,对多个深度学习模型的运行情况进行分配调度。
渲染后端,用于加载待渲染文件、执行渲染指令和同步数据;同步数据用于同步第一数据与第二数据,第一数据为深度学习引擎运行深度学习模型所产生的运行数据,第二数据为加载运行待渲染文件时调用图形渲染接口进行渲染产生的数据。
NNR运行时主要分为Schedule(调度器)与Render Backend(渲染后端,图3中已展示)两部分,其中Schedule 负责处理NNR模型中的数据计算部分,深度模型推理运算;Render Backend需要根据各类GPU API(OpenGL\Metal\Vulkan\DirectX)分别实现,且对模型场景进行渲染;渲染所需的渲染资源的构建、渲染图的构建、各资源数据间的依赖关系的构建等操作均由NNR基础编译器离线处理;NNR运行时仅需要加载解析深度模型/张量数据、渲染资源(包括Shader源码、Program信息(Pipeline Layout(程序输入描述集)、PipelineState(程序运行状态)等渲染所需数据、结构描述)、渲染图)、各Tensor\Render Memory间数据同步、模型推理、渲染执行等操作。
在本实施例中,深度学习模型编译器包括第一编译器、第二编译器。
第一编译器包括:实体、组件与系统三部分。
为实现3D引擎的功能,对应实现3D引擎编译器,它采用类似传统3D引擎的ECS(即:Entity/Component/System,对应为:实体/组件/系统)架构。不同点在于传统3D引擎是在设备上运行,而3D引擎编译器是在服务器上运行,编译出的产物送到NNR运行时在设备上运行。为了便于理解3D引擎编译器的架构,请参见图5,其为本申请第一实施例提供的图形渲染系统的第四场景示意图。
ECS架构由三部分组成。
Entity(实体):指在世界中的一个物体或者基本单元,是一系列组件(Component)的集合。在代码中用一个ID来进行表示,用于区分不同的实体。所有组成这个实体的组件(Component)将会被这个ID标记,确定哪些组件属于该实体。
Component(组件):指所需数据的集合,代码实现中没有方法,即不存在任何的行为,只用来存储状态或者特定数据。例如:物体移动相关的组件Move Component包含速度、位置、朝向等属性。
System(系统):用来处理逻辑部分,一个系统是对拥有一个或多个相同组件的实体集合进行操作的工具,只有行为,没有状态或者数据,即不会存放任何数据。例如处理移动的系统仅仅关心拥有移动能力的实体,它会遍历所有拥有Move Component组件的实体,并根据相关的数据(速度、位置、朝向等),更新实体的位置。
在图5中,NNR场景构建接口,功能上与3D引擎的场景构建接口类似,可以用于设置参数,如设置相机位置、添加物体(例如桌子、猫、人、灯)、添加动画、设置光照参数、设置天气效果等。在图5中的Json可以是指可读的数据格式。
与在设备上运行的引擎架构相比,3D引擎编译器的主要区别在于各类System的实现。传统引擎架构中,System是立即执行,产生Component的变更。而在3D引擎编译器中System是做指令编排,编写NNR文件中的渲染图或产生深度学习模型。例如:渲染系统:构建Render Graph,产出各类Pass和Shader。继承系统:基于物体的父子节点数,构建矩阵相乘的树状深度学习模型。动画系统包括:插帧:基于动画关键帧数据构建Embedding层,表述为输入时间t,输出矩阵的深度学习模型;表情(捏脸):基于Mesh数组构建矩阵乘算子,输入权重向量,输出Mesh;骨骼:基于Mesh与骨骼的权重矩阵,构建稀疏矩阵乘算子,输入骨骼的模型矩阵,输出Mesh;插帧+骨骼即实现骨骼动画;插帧+表情即实现表情动画。视窗裁剪系统:收集所有物体的包围盒信息;对所有包围盒乘上投影矩阵和视图矩阵,得到新的包围盒信息;批量判断包围盒是否有效。
第二编译器,用于将图形渲染所需的数据处理逻辑对应的虚拟渲染效果与真实场景进行融合,获得融合后的数据处理逻辑。
深度学习模型编译器,具体用于将融合后的数据处理逻辑编译为在终端设备上运行的深度学习模型。
第二编译器可以为AR编译器,AR需要将试戴相关模型的渲染结果与原始图像背景做融合处理,可以调整NNR中的渲染图结构(Render Graph),例如在渲染图最后增加一个渲染Pass来处理渲染结果与原始图像背景的融合;AR是真实场景叠加虚拟场景,真实场景即原始图像,虚拟场景是渲染产生。原始图像即为需要渲染的图像,和后续的待处理图像一致,待处理图像可以是指静态图像,可以基于视频获得,如将视频帧作为待处理图像,还可以将相机拍摄的图像作为待处理图像。
AR试戴相关场景需要处理摄像头帧数据,以识别人脸关键点、手部关键点、脚部关键点等求得RT位姿数据,并将RT位姿数据传递给NNR引擎对需要渲染的模型进行位姿变换;或者获取分割等深度模型推理数据;此时需要深度模型推理和渲染作为一个整体管线;部分AR试戴相关场景,例如试鞋,深度模型推理包括脚部关键点识别并求得双脚RT数据、脚部遮挡所需的分割mask推理计算,并将上述推理运算结果送入渲染管线进行鞋模渲染,且上述推理部分基本需要前处理、推理运算、后处理(例如光流跟踪、平滑关键帧等)三个阶段,整体流程复杂,此时NNR引擎可以自定义整体AR场景管线,且不影响整体性能,灵活处理此类AR场景需求。
本申请提供一种图形渲染系统,包括:深度学习模型编译器、深度学习引擎、图形渲染引擎;所述深度学习模型编译器,部署在服务器上,用于将图形渲染所需的数据处理逻辑编译为在终端设备上运行的深度学习模型,以及将图形渲染接口的调用逻辑编译为渲染图;所述渲染图用于表示渲染流程;所述图形渲染引擎,用于根据所述深度学习模型运行所产生的运行数据与所述渲染图,获得待渲染文件;加载运行所述待渲染文件;所述深度学习引擎,部署在终端设备上,用于运行所述深度学习模型,获得所述深度学习模型运行所产生的运行数据。由于在该图形渲染系统中,基于深度学习引擎与深度学习模型编译器的高性能、跨平台、轻量性的能力,来解决图形渲染引擎中性能、开发效率、包体积以及功能不可调和的矛盾,将现有的图形渲染引擎的结构划分为深度学习模型编译器与运行时两部分,深度学习模型编译器通过将渲染所需的数据处理逻辑与图形接口的调用逻辑转换成深度学习模型和渲染图,最后将其打包为一个待渲染文件;运行时可以直接对待渲染文件加载与运行,进而实现了终端设备上安装的图形渲染引擎具有程序体积小、迭代快、高性能的特点。
第二实施例
与第一实施例对应地,本申请第二实施例提供一种图形渲染方法。第二实施例中与第一实施例相同的部分不再介绍,具体请参见第一实施例的相关部分。
请参照图6,其为本申请第二实施例提供的图形渲染方法的流程图。
本申请实施例的图形渲染方法,包括如下步骤。
步骤S601:获得待渲染的待处理图像。
步骤S602:根据待处理图像,获得运行数据与渲染图。
图形渲染引擎包含深度学习模型编码器与深度学习引擎,将待处理图像通过使用图形渲染引擎处理,可以获得运行数据与渲染图。
在本实施例中,渲染图用于表示渲染流程;运行数据是运行深度学习模型所产生的数据,深度学习模型是用于表示图形渲染所需的数据处理逻辑对应的学习模型;渲染图用于表示图形渲染接口的调用逻辑。
步骤S603:根据运行数据与渲染图,获得待渲染文件;加载运行待渲染文件。
在本实施例中,还包括:获得优化后的深度学习模型和优化后的渲染图;
根据运行数据与渲染图,获得待渲染文件,包括:根据优化后的深度学习模型运行所产生的运行数据和优化后的渲染图,获得待渲染文件。
在本实施例中,待渲染文件包括深度学习模型、与深度学习模型关联的第一参数、渲染图、与渲染图关联的第二参数以及用于描述第一参数与第二参数的关联关系;其中,第一参数用于表示运行深度学习模型的输入参数与输出参数;第二参数用于描述图形渲染所对应的内存对象。
由于在该图形渲染方法中,将图形渲染所需的数据处理逻辑表示为在终端设备上运行的深度学习模型,采用渲染图表示图形渲染接口的调用逻辑,通过将渲染所需的数据处理逻辑与图形接口的调用逻辑转换成深度学习模型和渲染图,最后将其打包为一个待渲染文件;运行时可以直接对待渲染文件加载与运行,进而实现了终端设备上安装的图形渲染引擎具有程序体积小、迭代快、高性能的特点。
第三实施例
与本申请第二实施例提供的图形渲染方法相对应的,本申请第三实施例还提供一种图形渲染装置。由于装置实施例基本相似于第二实施例,所以描述得比较简单,相关之处参见第二实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
请参照图7,其为本申请第三实施例提供的图形渲染装置的示意图。
该图形渲染装置700,所述装置包括:待处理图像获得单元701,用于获得待渲染的待处理图像;运行数据与渲染图获得单元702,用于根据所述待处理图像,获得运行数据与渲染图,所述渲染图用于表示渲染流程;所述运行数据是运行深度学习模型所产生的数据,所述深度学习模型是用于表示图形渲染所需的数据处理逻辑对应的学习模型;所述渲染图用于表示图形渲染接口的调用逻辑;渲染单元703,用于根据所述运行数据与所述渲染图,获得待渲染文件;加载运行所述待渲染文件。
可选的,还包括:优化单元,用于获得优化后的深度学习模型和优化后的渲染图;所述渲染单元,具体用于:根据所述优化后的深度学习模型运行所产生的运行数据和所述优化后的渲染图,获得待渲染文件。
可选的,所述待渲染文件包括所述深度学习模型、与所述深度学习模型关联的第一参数、所述渲染图、与所述渲染图关联的第二参数以及用于描述所述第一参数与所述第二参数的关联关系;其中,所述第一参数用于表示运行所述深度学习模型的输入参数与输出参数;所述第二参数用于描述图形渲染所对应的内存对象。
第四实施例
与第一实施例对应地,本申请第四实施例提供一种图形渲染方法。第四实施例中与第一实施例相同的部分不再介绍,具体请参见第一实施例的相关部分。
本实施例的图形渲染方法,包括如下步骤。
首先,获得待渲染的待处理图像。
之后,根据待处理图像,获得运行数据与渲染图。
在本实施例中,渲染图用于表示渲染流程;运行数据是运行深度学习模型所产生的数据,深度学习模型是用于表示图形渲染所需的数据处理逻辑对应的学习模型;渲染图用于表示图形渲染接口的调用逻辑。
本实施例与第二实施例大致类似,区别在于图形渲染引擎的渲染管线嵌入有预设深度学习算法,深度学习算法与深度学习模型共同运行获得运行数据;深度学习算法如AI算法。AI算法具体可以参加第一实施例中图3的相关描述部分:人脸识别、姿态估计、美颜等算法,此处不再赘述。
最终,根据运行数据与渲染图,获得待渲染文件;加载运行待渲染文件。
第五实施例
与第一实施例对应地,本申请第五实施例提供一种图形渲染方法。第五实施例中与第一实施例相同的部分不再介绍,具体请参见第一实施例的相关部分。
请参照图8,其为本申请第五实施例提供的图形渲染方法的流程图。
本实施例的图形渲染方法,包括如下步骤。
步骤S801:获得待渲染的待处理图像。
步骤S802:将待处理图像作为目标对象检测模型的输入数据,获得目标对象在待处理图像中的位置信息。
步骤S803:获得用于表示目标对象的三维模型。
步骤S804:基于目标对象检测模型与三维模型,获得图形渲染模型。
步骤S805:将待处理图像作为图形渲染模型的输入数据,获得图形渲染模型输出的运行数据与渲染图。
渲染图用于表示渲染流程;运行数据是运行深度学习模型所产生的数据,深度学习模型是用于表示图形渲染所需的数据处理逻辑对应的学习模型;渲染图用于表示图形渲染接口的调用逻辑。
步骤S806:根据位置信息、运行数据与渲染图,获得目标待渲染文件;加载运行目标待渲染文件。
本实施例是以虚拟场景试穿或者试戴物品为例,以试穿鞋子或者试戴手表为例,首先以试穿鞋子为例进行说明。
在该场景中,目标对象为鞋子,通过训练目标对象检测模型,进而使得待处理图像为包含鞋子的待处理图像时,当将待处理图像输入目标对象检测模型时,能够确定鞋子在待处理图像中的位置。
与此同时,还可以训练遮挡模型,进而将待处理图像对应的深度图输入遮挡模型,确定待处理图像中的鞋子是否被遮挡的掩码。如,在某个人试穿鞋子后,鞋子的各个部位是否被遮挡。
在本实施例中,获得用于表示目标对象的三维模型如:开发人员使用三维动画软件工具搭建的鞋子的3D模型。
之后,可以编写NNR构建的代码,该代码对应的流程具体为:基于目标对象检测模型计算目标对象在待处理图像中的位置,基于该位置渲染深度图,将深度图输入遮挡模型计算掩码,基于位置和掩码渲染目标对象。
在构建代码后,调用构建代码,实际上是将目标对象检测模型、遮挡模型与三维模型合并,获得图形渲染模型。如:将鞋子检测模型、遮挡模型和鞋子的3D模型合并为NNR模型。该部分实际上对应的是第一实施例中提及的NNR模型中含有多个MNN模型。在获得NNR模型之后,可以在终端设备对应的端上加载NNR模型,将待处理图像作为图形渲染模型的输入数据,获得图形渲染模型输出的运行数据与渲染图,后续根据位置信息、运行数据与渲染图,获得目标待渲染文件;加载运行目标待渲染文件。
为了便于理解,请参见图9,其为本申请第五实施例提供的图形渲染方法的场景示意图。在渲染的图中,可以渲染试穿鞋子的图形。
以试戴手表为例进行说明。
在该场景中,目标对象为手表,通过训练目标对象检测模型,进而使得待处理图像为包含手表的待处理图像时,当将待处理图像输入目标对象检测模型时,能够确定手表在待处理图像中的位置。
之后,获得开发人员使用三维动画软件工具搭建的手表的3D模型。
之后,可以编写NNR构建的代码,该代码对应的流程具体为:基于目标对象检测模型计算目标对象在待处理图像中的位置,基于位置渲染目标对象。
在构建代码后,调用构建代码,实际上是将目标对象检测模型、三维模型合并,获得图形渲染模型。如:将手表检测模型、手表的3D模型合并为NNR模型。在获得NNR模型之后,可以在终端设备对应的端上加载NNR模型,将待处理图像作为图形渲染模型的输入数据,获得图形渲染模型输出的运行数据与渲染图,后续根据手表在待处理图像中的位置信息、运行数据与渲染图,获得目标待渲染文件;加载运行目标待渲染文件。
第六实施例
与本申请第二实施例、第四实施例与第五实施例的方法相对应的,本申请第六实施例还提供一种电子设备。
如图10所示,图10为本申请第六实施例提供的电子设备的示意图。
在本实施例中,该电子设备1000的一种可选硬件结构可如图10所示,包括:至少一个处理器1001,至少一个存储器1002和至少一个通信总线1005;存储器1002中包含有程序1003与数据1004。
总线1005可以是在电子设备1000内部的组件之间传输数据的通信设备,诸如内部总线(例如,CPU-存储器总线,处理器即为central processing unit,简称CPU)、外部总线(例如,通用串行总线端口、外围组件互连快速端口)等。
另外,电子设备中还包括:至少一个网络接口1006,至少一个外设接口1007。网络接口1006以提供与外部网络1008(例如,因特网、内联网、局域网、移动通信网络等)相关的有线或无线通信;在一些实施例中,网络接口1006可以包括任意数量的网络接口控制器(英文:network interface controller,简称NIC)、射频(英文:Radio Frequency,简称RF)模块、转发器、收发器、调制解调器、路由器、网关、有线网络适配器的任意组合、无线网络适配器、蓝牙适配器、红外适配器、近场通信(英文:Near Field Communication,简称NFC)适配器、蜂窝网络芯片等。
外设接口1007用于与外设连接,外设可以如图中的外设1(图10中的1009)、外设2(图10中的1010)以及外设3(图10中的1011)。外设即外围设备,外围设备可以包括但不限于光标控制设备(例如鼠标、触摸板或触摸屏)、键盘、显示器(例如阴极射线管显示器、液晶显示器)。显示器或发光二极管显示器、视频输入设备(例如,摄像机或通信耦合到视频档案的输入接口)等。
处理器1001可能是CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
存储器1002可能包含高速RAM(全称:Random Access Memory,即随机存取存储器)存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
其中,处理器1001调用存储器1002所存储的程序与数据,以执行本申请第二实施例、第四实施例与第五实施例的方法。
第七实施例
与本申请第二实施例、第四实施例与第五实施例的方法相对应的,本申请第七实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,该计算机程序被处理器运行,以执行本申请第二实施例、第四实施例与第五实施例的方法。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、 输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM) 和/或非易失性内存等形式,如只读存储器 (英文:Read-Only Memory,简称ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、 程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (英文:phase change memory;简称PRAM)、静态随机存取存储器 (英文:Static Random Access Memory;简称SRAM)、动态随机存取存储器 (英文:Dynamic Random Access Memory;简称DRAM)、 其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (英文:Electrically-Erasable Programmable Read-Only Memory;简称EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (英文:Compact Disc Read-Only Memory;简称CD-ROM)、数字多功能光盘 (英文:Digital versatile disc;简称DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读存储媒体(non-transitorycomputer readable storage media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
Claims (18)
1.一种图形渲染方法,其特征在于,包括:
获得待渲染的待处理图像;
根据所述待处理图像,获得运行数据与渲染图,所述渲染图用于表示渲染流程;所述运行数据是运行深度学习模型所产生的数据,所述深度学习模型是用于表示图形渲染所需的数据处理逻辑对应的学习模型;所述渲染图用于表示图形渲染接口的调用逻辑;
根据所述运行数据与所述渲染图,获得待渲染文件;加载运行所述待渲染文件。
2.根据权利要求1所述的方法,其特征在于,还包括:获得优化后的深度学习模型和优化后的渲染图;
所述根据所述运行数据与所述渲染图,获得待渲染文件,包括:根据所述优化后的深度学习模型运行所产生的运行数据和所述优化后的渲染图,获得待渲染文件。
3.根据权利要求1所述的方法,其特征在于,所述待渲染文件包括所述深度学习模型、与所述深度学习模型关联的第一参数、所述渲染图、与所述渲染图关联的第二参数以及用于描述所述第一参数与所述第二参数的关联关系;
其中,所述第一参数用于表示运行所述深度学习模型的输入参数与输出参数;所述第二参数用于描述图形渲染所对应的内存对象。
4.一种图形渲染系统,其特征在于,包括:深度学习模型编译器、深度学习引擎、图形渲染引擎;
所述深度学习模型编译器,部署在服务器上,用于将图形渲染所需的数据处理逻辑编译为在终端设备上运行的深度学习模型,以及将图形渲染接口的调用逻辑编译为渲染图;所述渲染图用于表示渲染流程;
所述图形渲染引擎,用于根据所述深度学习模型运行所产生的运行数据与所述渲染图,获得待渲染文件;加载运行所述待渲染文件;
所述深度学习引擎,部署在终端设备上,用于运行所述深度学习模型,获得所述深度学习模型运行所产生的运行数据。
5.根据权利要求4所述的系统,其特征在于,所述深度学习模型编译器,还用于根据所述深度学习模型,生成与所述深度学习模型对应的深度学习引擎。
6.根据权利要求4所述的系统,其特征在于,还包括:优化模块;
所述优化模块,用于对所述深度学习模型和所述渲染图进行优化,获得优化后的深度学习模型和优化后的渲染图;
所述图形渲染引擎,具体用于根据所述优化后的深度学习模型运行所产生的运行数据和所述优化后的渲染图,获得待渲染文件;加载运行所述待渲染文件。
7.根据权利要求4所述的系统,其特征在于,所述待渲染文件包括所述深度学习模型、与所述深度学习模型关联的第一参数、所述渲染图、与所述渲染图关联的第二参数以及用于描述所述第一参数与所述第二参数的关联关系;
其中,所述第一参数用于表示运行所述深度学习模型的输入参数与输出参数;所述第二参数用于描述图形渲染所对应的内存对象。
8.根据权利要求4所述的系统,其特征在于,如果所述待渲染文件的数量为多个,所述图形渲染引擎,具体用于根据所述待渲染文件的渲染标识,加载运行所述待渲染文件。
9.根据权利要求4所述的系统,其特征在于,所述图形渲染引擎还用于:
确定加载运行所述待渲染文件所产生的文件对象;
对加载运行所述待渲染文件所产生的文件对象进行删除处理,加载运行下一个待渲染文件。
10.根据权利要求4所述的系统,其特征在于,所述图形渲染引擎还用于:
确定用户针对所述待渲染文件进行的交互操作;
基于所述交互操作,对所述待渲染文件进行变更,获得变更后的待渲染文件;
加载运行所述变更后的待渲染文件。
11.根据权利要求4所述的系统,其特征在于,所述图形渲染引擎包括:调度器与渲染后端;
所述调度器,用于基于所述深度学习模型,对多个深度学习模型的运行情况进行分配调度;
所述渲染后端,用于加载所述待渲染文件、执行渲染指令和同步数据;所述同步数据用于同步第一数据与第二数据,所述第一数据为所述深度学习引擎运行所述深度学习模型所产生的运行数据,所述第二数据为加载运行所述待渲染文件时调用图形渲染接口进行渲染产生的数据。
12.根据权利要求4所述的系统,其特征在于,所述深度学习模型编译器包括第一编译器、第二编译器;
所述第一编译器包括:实体、组件与系统三部分;
所述第二编译器,用于将图形渲染所需的数据处理逻辑对应的虚拟渲染效果与真实场景进行融合,获得融合后的数据处理逻辑;
所述深度学习模型编译器,具体用于将所述融合后的数据处理逻辑编译为在终端设备上运行的深度学习模型。
13.根据权利要求6所述的系统,其特征在于,所述优化模块包括模型优化器;
所述模型优化器,用于使用深度学习引擎的模型压缩工具和图形资产压缩工具,对所述优化后的深度学习模型运行所产生的运行数据进行压缩。
14.根据权利要求4所述的系统,其特征在于,所述将图形渲染所需的数据处理逻辑编译为在终端设备上运行的深度学习模型,包括:
将图形渲染所需的数据处理逻辑编译为在终端设备上运行的深度学习模型对应的代码。
15.一种图形渲染方法,其特征在于,包括:
获得待渲染的待处理图像;
根据所述待处理图像,获得运行数据与渲染图,所述渲染图用于表示渲染流程;所述运行数据是运行深度学习模型所产生的数据,所述深度学习模型是用于表示图形渲染所需的数据处理逻辑对应的学习模型;所述渲染图用于表示图形渲染接口的调用逻辑;其中,用于获得所述运行数据的图形渲染引擎的渲染管线嵌入有预设深度学习算法,所述深度学习算法与所述深度学习模型共同运行获得所述运行数据;
根据所述运行数据与所述渲染图,获得待渲染文件;加载运行所述待渲染文件。
16.一种图形渲染方法,其特征在于,包括:
获得待渲染的待处理图像;
将所述待处理图像作为目标对象检测模型的输入数据,获得所述目标对象在所述待处理图像中的位置信息;
获得用于表示所述目标对象的三维模型;
基于所述目标对象检测模型与所述三维模型,获得图形渲染模型;
将所述待处理图像作为所述图形渲染模型的输入数据,获得所述图形渲染模型输出的运行数据与渲染图,所述渲染图用于表示渲染流程;所述运行数据是运行深度学习模型所产生的数据,所述深度学习模型是用于表示图形渲染所需的数据处理逻辑对应的学习模型;所述渲染图用于表示图形渲染接口的调用逻辑;
根据所述位置信息、所述运行数据与所述渲染图,获得目标待渲染文件;加载运行所述目标待渲染文件。
17.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储计算机程序,该计算机程序被处理器运行,执行权利要求1-3、15-16所述的方法。
18.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,该计算机程序被处理器运行,执行权利要求1-3、15-16所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311582163.0A CN117392301B (zh) | 2023-11-24 | 2023-11-24 | 图形渲染方法、系统、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311582163.0A CN117392301B (zh) | 2023-11-24 | 2023-11-24 | 图形渲染方法、系统、装置、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117392301A CN117392301A (zh) | 2024-01-12 |
CN117392301B true CN117392301B (zh) | 2024-03-01 |
Family
ID=89468475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311582163.0A Active CN117392301B (zh) | 2023-11-24 | 2023-11-24 | 图形渲染方法、系统、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117392301B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717963A (zh) * | 2019-08-30 | 2020-01-21 | 杭州群核信息技术有限公司 | 一种基于WebGL的可替换模型的混合渲染展示方法、系统及存储介质 |
WO2020047338A1 (en) * | 2018-08-29 | 2020-03-05 | Movidius Ltd. | Computer vision system |
CN112015424A (zh) * | 2019-05-31 | 2020-12-01 | 苹果公司 | 编译用于机器学习模型的代码以用于在专用处理器上执行 |
CN112465938A (zh) * | 2019-09-09 | 2021-03-09 | 三星电子株式会社 | 三维3d渲染方法和装置 |
WO2021081568A2 (en) * | 2021-02-23 | 2021-04-29 | Innopeak Technology, Inc. | Advanced stereoscopic rendering |
CN112950738A (zh) * | 2021-03-30 | 2021-06-11 | 杭州群核信息技术有限公司 | 渲染引擎的处理方法及装置、存储介质和电子设备 |
CN113989098A (zh) * | 2020-07-27 | 2022-01-28 | 英特尔公司 | 用于增强图形渲染真实感的设备和方法 |
WO2023160513A1 (zh) * | 2022-02-25 | 2023-08-31 | 北京字跳网络技术有限公司 | 3d素材的渲染方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11087430B2 (en) * | 2018-09-28 | 2021-08-10 | Apple Inc. | Customizable render pipelines using render graphs |
US20190392296A1 (en) * | 2019-06-28 | 2019-12-26 | John Brady | Hardware agnostic deep neural network compiler |
-
2023
- 2023-11-24 CN CN202311582163.0A patent/CN117392301B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020047338A1 (en) * | 2018-08-29 | 2020-03-05 | Movidius Ltd. | Computer vision system |
CN112015424A (zh) * | 2019-05-31 | 2020-12-01 | 苹果公司 | 编译用于机器学习模型的代码以用于在专用处理器上执行 |
CN110717963A (zh) * | 2019-08-30 | 2020-01-21 | 杭州群核信息技术有限公司 | 一种基于WebGL的可替换模型的混合渲染展示方法、系统及存储介质 |
CN112465938A (zh) * | 2019-09-09 | 2021-03-09 | 三星电子株式会社 | 三维3d渲染方法和装置 |
CN113989098A (zh) * | 2020-07-27 | 2022-01-28 | 英特尔公司 | 用于增强图形渲染真实感的设备和方法 |
WO2021081568A2 (en) * | 2021-02-23 | 2021-04-29 | Innopeak Technology, Inc. | Advanced stereoscopic rendering |
CN112950738A (zh) * | 2021-03-30 | 2021-06-11 | 杭州群核信息技术有限公司 | 渲染引擎的处理方法及装置、存储介质和电子设备 |
WO2023160513A1 (zh) * | 2022-02-25 | 2023-08-31 | 北京字跳网络技术有限公司 | 3d素材的渲染方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
xiaotang jiang等.MNN: A UNIVERSAL AND EFFICIENT INFERENCE ENGINE.arxiv.2020,全文. * |
Yiwu Yao等.INT8 Winograd Acceleration for Conv1D Equipped ASR Models Deployed on Mobile Devices.arxiv.2020,全文. * |
张忆楠 ; 严正 ; 姚莉 ; .实时渲染引擎架构.中兴通讯技术.2013,(第03期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN117392301A (zh) | 2024-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10592238B2 (en) | Application system that enables a plurality of runtime versions of an application | |
US11087430B2 (en) | Customizable render pipelines using render graphs | |
US11803404B2 (en) | Deep learning algorithm compiling method, device, and related product | |
US11094036B2 (en) | Task execution on a graphics processor using indirect argument buffers | |
US20220114429A1 (en) | Method and device for generating operation data and related product | |
EP3012737A1 (en) | Devices and methods for generating elementary geometries | |
CN116302366B (zh) | 面向终端开发的xr应用开发系统与方法、设备及介质 | |
KR101670958B1 (ko) | 이기종 멀티코어 환경에서의 데이터 처리 방법 및 장치 | |
CN112423111A (zh) | 图形引擎和适用于播放器的图形处理方法 | |
US20160093112A1 (en) | Deep image identifiers | |
US11625900B2 (en) | Broker for instancing | |
CN112099882B (zh) | 一种业务处理方法、装置及设备 | |
CN116339737B (zh) | Xr应用编辑方法、设备及存储介质 | |
CN117392301B (zh) | 图形渲染方法、系统、装置、电子设备及计算机存储介质 | |
CN117009029A (zh) | Xr应用与内容运行方法、设备及存储介质 | |
US20220414984A1 (en) | Volumetric data processing using a flat file format | |
CN115688917A (zh) | 神经网络模型的训练方法、装置、电子设备及存储介质 | |
US9582247B1 (en) | Preserving data correlation in asynchronous collaborative authoring systems | |
CN110554900B (zh) | 基于gpu呈现人机界面效果的方法、系统、设备及介质 | |
US10643395B2 (en) | Real-time spatial authoring in augmented reality using additive and subtractive modeling | |
Stein et al. | hare3d-rendering large models in the browser | |
CN117369820B (zh) | 渲染流程图的生成方法、装置及设备 | |
US20230205584A1 (en) | Control flow invariant resource identification | |
CN114169525A (zh) | 推理框架的调用方法和调用装置 | |
CN116521165A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |