CN117957577A - 用于神经渲染的多核系统 - Google Patents
用于神经渲染的多核系统 Download PDFInfo
- Publication number
- CN117957577A CN117957577A CN202180102463.7A CN202180102463A CN117957577A CN 117957577 A CN117957577 A CN 117957577A CN 202180102463 A CN202180102463 A CN 202180102463A CN 117957577 A CN117957577 A CN 117957577A
- Authority
- CN
- China
- Prior art keywords
- image
- machine learning
- learning model
- computing system
- rendering
- 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 119
- 230000001537 neural effect Effects 0.000 title description 45
- 238000010801 machine learning Methods 0.000 claims abstract description 50
- 239000013598 vector Substances 0.000 claims abstract description 39
- 238000007781 pre-processing Methods 0.000 claims abstract description 27
- 238000005070 sampling Methods 0.000 claims abstract description 21
- 238000000605 extraction Methods 0.000 claims abstract description 11
- 238000013527 convolutional neural network Methods 0.000 claims description 78
- 239000011159 matrix material Substances 0.000 claims description 18
- 238000003491 array Methods 0.000 claims description 14
- 238000009825 accumulation Methods 0.000 claims description 13
- 238000000034 method Methods 0.000 description 25
- 230000005855 radiation Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000003384 imaging method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 244000025254 Cannabis sativa Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本发明描述了一种图像渲染系统,其包括通过数据总线耦合到特征提取单元和颜色渲染单元的预处理单元。预处理单元生成沿着与待渲染图像的像素相对应的相机光线的采样点的空间坐标的向量表示。特征提取单元通过第一机器学习模型基于采样点的向量表示、颜色值和强度值生成图像的特征图。颜色渲染单元通过第二机器学习模型基于特征图来渲染图像。第一机器学习模型不同于第二机器学习模型。
Description
技术领域
本发明总体上涉及用于图像渲染的计算系统。更具体地,本发明涉及一种用于执行基于神经网络的图像渲染的多核计算系统。
背景技术
机器学习模型(诸如神经网络)在推进成像应用方面取得了令人印象深刻的进展。例如,已经开发的各种机器学习模型用来改进图像分类、物体检测/识别、图像分割等。最近,人们开发了基于神经辐射场(NeRF)的图像渲染技术,可以从新颖的视点渲染照片般真实的图像。例如,神经辐射场可以被编码到诸如神经网络的机器学习模型中。这个机器学习模型可以用包括图像的训练数据集来训练,编码神经辐射场中点的密度和颜色值。一旦被训练(即,编码),机器学习模型就可以基于沿着输入到机器学习模型中的相机光线的点的空间坐标来输出点的密度和颜色值。基于密度和颜色值,可以确定像素的颜色值(即,RGB值),并且可以渲染图像。通常,基于神经辐射场渲染图像在计算上是繁重的。尽管存在专注于加速神经网络计算的硬件加速器或处理器,但是这些解决方案主要用于加速卷积神经网络。因此,这些解决方案不适合于加速用神经辐射场编码的神经网络。因此,当前的硬件解决方案不适合实时或接近实时的基于神经辐射场的图像渲染应用。需要更好的解决方案。
发明内容
本发明描述了一种图像渲染系统,其包括通过数据总线耦合到特征提取单元和颜色渲染单元的预处理单元。预处理单元可产生沿着与待渲染图像的像素相对应的相机光线的采样点的空间坐标的向量表示。特征提取单元可以通过第一机器学习模型基于点的向量表示、颜色值和强度值生成图像的特征图。颜色渲染单元可以通过第二机器学习模型基于特征图来渲染图像。第一机器学习模型不同于第二机器学习模型。
在一些实施例中,特征图的第一信噪比(SNR)低于渲染图像的第二信噪比(SNR)。
在一些实施例中,特征图包括粗糙图像,并且粗糙图像的第一信噪比(SNR)低于渲染图像的第二信噪比(SNR)。
在一些实施例中,渲染图像包括粗糙图像中不存在的高频特征。
在一些实施例中,其中,第一机器学习模型为多层感知机。
在一些实施例中,第二机器学习模型可以为卷积神经网络。
在一些实施例中,特征提取单元可以包括多个第一处理器。
在一些实施例中,多个第一处理器中的每一个可以包括耦合到两个存储模块和参数存储模块的第一处理器核。第一处理器核可以执行与第一机器学习模型相关联的矩阵运算。两个存储模块可以存储与第一机器学习模型相关联的输入数据和输出数据。参数存储模块可以存储与第一机器学习模型相关联的参数。
在一些实施例中,两个存储模块可以交替存储与第一机器学习模型的层相关联的输入数据和输出数据。
在一些实施例中,第一处理器核可以包括乘法阵列、一个或多个累加阵列和本地高速缓存。乘法阵列和一个或多个累加阵列可以执行与第一机器学习模型的层相关联的矩阵乘法运算。本地高速缓存可以存储与矩阵乘法运算相关联的部分和。
在一些实施例中,第一处理器核可以为与中央处理器、图形处理器或现场可编程门阵列中的至少一个相关联的计算单元。
在一些实施例中,颜色渲染单元可以包括多个第二处理器。
在一些实施例中,多个第二处理器中的每一个可以包括耦合到存储模块和参数存储模块的第二处理器核。第二处理器核可以执行与第二机器学习模型相关联的矩阵运算。存储模块可以存储与第二机器学习模型相关联的输入数据和输出数据。参数存储模块可以存储与第二机器学习模型相关联的参数。
在一些实施例中,存储模块可以存储与第二机器学习模型的层相关联的输入数据和输出数据。
在一些实施例中,第二处理器核可以包括乘法阵列和一个或多个累加阵列。乘法阵列和一个或多个累加阵列可以执行与第二机器学习模型的层相关联的矩阵乘法运算。与矩阵乘法运算相关联的部分和存储在存储模块中。
在一些实施例中,第二主处理器可以为与中央处理器、图形处理器或现场可编程门阵列中的至少一个相关联的计算单元。
在参考附图考虑以下说明书和所附权利要求时,本文公开的装置、系统、方法和非暂时性计算机可读介质的这些和其他特征,以及结构的相关元件的运算方法和功能以及部件的组合和制造的经济性将变得更加明显,所有附图形成本说明书的一部分,其中相同的附图标记表示各个附图中的对应部分。然而,应当清楚地理解,附图仅用于说明和描述目的,并不旨在限定本发明的范围。
附图说明
在所附权利要求中具体阐述了本发明的各种实施例的某些特征。通过参考阐述了利用本发明原理的说明性实施例的以下详细说明书以及附图,将获得对本发明的特征和优点的更好理解,在附图中:
图1A示出了根据本发明公开的各种实施例的被配置为渲染物体的图像的图像渲染流水线。
图1B示出了根据本发明公开的各种实施例的用于渲染具有模糊物体的图像的改进的图像渲染流水线。
图2示出了根据本发明公开的各种实施例的图像渲染系统。
图3A示出了根据本发明公开的各种实施例的多层感知机处理器的图。
图3B示出了根据本发明公开的各种实施例的卷积神经网络处理器的图。
图4A示出了根据本发明公开的各种实施例的多层感知机处理器的主处理器核的计算流程。
图4B示出了根据本发明公开的各种实施例的卷积神经网络处理器的主处理器核的计算流程。
图4C示出了根据本发明公开的各种实施例的计算组件,该计算组件包括一个或多个硬件处理器和存储一组机器可读/机器可执行指令的机器可读存储介质,该组机器可读/机器可执行指令在被执行时使(一个或多个)硬件处理器执行方法。
图5是示出可以在其上实现本发明描述的各种实施例中的任何一个的计算系统的框图。
附图仅出于说明的目的描绘了所公开的技术的各种实施例,其中附图使用相同的附图标记来标识相同的元件。本领域技术人员将从以下讨论中容易地认识到,在不脱离本文描述的所公开技术的原理的情况下,可以采用附图中所示的结构和方法的替代实施例。
具体实施方式
本发明描述了一种基于前述技术的解决方案,其解决了上述问题。在各种实施例中,计算系统可以被配置为实时或接近实时地渲染图像。在一些实施例中,计算系统可以为多核计算系统。多核计算系统可以至少包括多层感知机渲染单元和卷积神经网络渲染单元。多层感知机渲染单元可以包括被配置用于执行与用神经辐射场编码的多层感知机相关联的计算的多个多层感知机处理器。卷积神经网络渲染单元可以包括被配置用于执行与卷积神经网络相关联的计算的多个卷积神经网络处理器。本文更详细地描述了计算系统的这些其他特征。
在各种实施例中,神经辐射场可以使用机器学习模型对场景和/或物体进行编码。例如,可以使用多层感知机(MLP)对场景的神经辐射场进行编码。在这样的实施例中,可以通过用一组沿着相机光线的采样点来查询机器学习模型以获得这些点的颜色值和强度值来合成图像。基于这些点的颜色值和强度值,可以确定图像的像素颜色,并渲染图像。例如,考虑图1A。图1A示出了根据本公开的各种实施例的被配置为渲染物体的图像的图像渲染流水线100。如图1A所示,图像渲染流水线100可以包括光线采样阶段102、位置编码阶段104、多层感知机渲染阶段106和体渲染阶段108。下面将更详细地讨论这些阶段中的每一个。
在一些实施例中,光线采样阶段102可以被配置为基于待渲染图像的像素的坐标来确定在神经辐射场中沿着相机光线进行采样的点。通常,神经辐射场是三维成像空间,其中三维成像空间的点(即,体素或体积单位)用反映场景和/或物体的颜色值和强度值编码。光线采样阶段102可基于像素的坐标确定与图像的像素相关联的相机光线的空间坐标和沿着每个相机光线的点的空间坐标。例如,假设待渲染图像的帧包括宽度上的两个像素和长度上的两个像素,总共四个像素。在此实例中,光线采样阶段102可基于四个像素的坐标确定与四个像素相关联的相机光线的空间坐标和沿着每个相机光线的点的空间坐标。在各种实施例中,点的空间坐标可表示为三维向量,相机光线的空间坐标可以表示为二维向量。例如,点的空间坐标可以表示为(x,y,z),相机光线的空间坐标可以表示为(θ,ε)。在一些实施例中,光线采样阶段102可将点的空间坐标和相机光线的空间坐标连接成向量表示。例如,从上面的示例继续,光线采样阶段102可以将(x,y,z)和(θ,ε)连接成向量表示(x,y,z,θ,ε)。光线采样阶段102可以将连接向量表示提供给位置编码阶段104以进行进一步处理。
在一些实施例中,位置编码阶段104可以被配置为将点和相机光线的连接向量表示从其原始维度映射到更高维度空间。以这种方式,可以以更高的保真度渲染图像。例如,在一些实施例中,位置编码阶段104可以将点和相机光线的连接表示从五维(即3+2)映射到十维。可以存在许多变体。在一些实施例中,位置编码阶段104可以使用傅里叶特征映射技术来将连接向量表示映射到更高维度空间。可以使用许多其他技术。一旦位置编码阶段104将连接向量表示映射到更高维度空间,位置编码阶段104就可以将更高维度的向量表示提供给多层感知机渲染阶段106,以生成(即,查询或获得)沿着相机光线的点的颜色值和强度值。
在一些实施例中,多层感知机渲染阶段106可以被配置为基于该组点和相机光线的更高维度表示来输出沿着相机光线的该组点的颜色值和强度值。在一些实施例中,多层感知机渲染阶段106可以基于多层感知机。多层感知机可以用神经辐射场编码。在这样的实施例中,可以用更高维度的向量表示查询多层感知机以输出该组点的颜色值和强度值。一旦获得颜色值和强度值,多层感知机渲染阶段106就可以将这些值提供给体渲染阶段108以供图像渲染。在一些实施例中,多层感知机渲染阶段106可以输出图像(例如,“粗糙”图像)的特征图。在一些情况下,特征图可以包括排列成二维网格的多个单元(即,图像的像素)。每个单元(即,像素)可以与沿着相机光线的点的颜色值和强度值相关联。
在一些实施例中,体渲染阶段108可以被配置为基于包括沿着相机光线的点的颜色值和强度值的图像的特征图来渲染图像。如上所述,相机光线可以与图像的像素相关联。像素可以对应于特征图的单元。这样,体渲染阶段108可以基于沿着与特征图的单元相关联的相机光线的一组点的颜色值和强度值来确定像素的颜色值。在一些实施例中,可以通过合成该组点的颜色值和强度值来确定像素的颜色值。在其他实施例中,可以通过对与表面相关联的一部分点的颜色值和强度值进行积分来确定像素的颜色值。可以存在许多变体。体渲染阶段108可以基于图像的像素的颜色值来渲染图像。
尽管通过图像渲染流水线100渲染的图像已经在一系列挑战性场景上展示了先前未实现的图像保真度水平,但是这种图像渲染技术在渲染具有高频表面的场景和/或物体方面存在问题,例如毛发、皮毛、草地等。本发明描述的计算系统通过修改图像渲染流水线100以用卷积神经网络代替体渲染阶段108来解决上述问题。已经确定,图像渲染流水线的这种实施方式可以渲染模糊物体的高质量图像。
图1B示出了根据本发明公开的各种实施例的用于渲染具有模糊物体的图像的改进的图像渲染流水线150。图1B的改进的渲染流水线150描绘了渲染具有高频表面(例如,高频特征)的物体的图像的计算过程。例如,修改后的图像渲染流水线150可用于渲染毛茸茸的物体或高度纹理化的物体的图像。与图1A的图像渲染流水线100不同,改进的图像渲染流水线150可以利用至少两个机器学习模型来渲染高频图像。例如,改进的图像渲染流水线150可以包括用耦合到卷积神经网络的神经辐射场编码的多层感知机。在该示例中,多层感知机可以被配置为生成渲染正常图像(即,非高频图像)所需的点的颜色值和强度值,而卷积神经网络可以被配置为增强多层感知机并生成渲染高频图像所需的点的详细颜色值和强度值。如图1B所示,在一些实施例中,改进的图像渲染流水线150可以包括光线采样阶段152、位置编码阶段154、多层感知机渲染阶段156和卷积神经网络渲染阶段158。上面已经参考图1A的光线采样阶段102、位置编码阶段104和多层感知机渲染阶段106讨论了光线采样阶段152、位置编码阶段154和多层感知机渲染阶段156的各种功能。例如,光线采样阶段152可以被配置为基于待渲染图像的像素的坐标来确定在神经辐射场中沿着相机光线进行采样的点。光线采样阶段152可以将点的空间坐标和相机光线的空间坐标连接成向量表示。位置编码阶段154可以被配置为将点和相机光线的连接向量表示从其原始维度映射到更高维度空间。多层感知机渲染阶段156可以被配置为基于更高维度的向量表示输出沿着相机光线的点的颜色值和强度值。因此,这里将不再重复关于这些阶段的讨论。下面将更详细地讨论卷积神经网络渲染阶段158。
卷积神经网络渲染阶段158可以被配置为基于由多层感知机渲染阶段156提供的图像的特征图的颜色值和密度值来生成沿着相机光线的点的详细颜色值和密度值。这里使用的点的详细颜色值和密度值可以指沿着与高频图像的像素相对应的相机光线的点的颜色值和密度值。在一些实施例中,卷积神经网络渲染阶段158可以基于卷积神经网络。卷积神经网络被训练以基于由多层感知机渲染阶段156提供的特征图的颜色值和密度值来输出点的详细颜色值和密度值。基于点的详细颜色值和密度值,卷积神经网络208可以渲染高频图像。通常,卷积神经网络可以使用任何合适的方式来实现。例如,卷积神经网络可以使用任何合适的技术和任何合适的层数来实现。在一些实施例中,通过卷积神经网络渲染阶段158渲染的图像具有比通过多层感知机渲染阶段156渲染的图像更高的信噪比。因此,通常,通过卷积神经网络渲染阶段158渲染的图像将能够显示在通过多层感知机渲染阶段156渲染的图像中不可见的高频特征。换句话说,通过卷积神经网络渲染阶段158渲染将改善图像的质量。
图2示出了根据本发明公开的各种实施例的图像渲染系统200。在一些实施例中,图像渲染系统200可以被配置为实现图1B的改进的图像渲染流水线150。例如,图像渲染系统200可以被编程或配置为通过改进的图像渲染流水线150渲染模糊物体或高度纹理化的物体。在各种实施例中,可以使用一个或多个计算系统来实现图像渲染系统200。例如,在一些实施例中,可以使用基于中央处理器和/或基于图形处理器的计算系统来实现图像渲染系统200。在其他实施例中,可以使用基于现场可编程门阵列的计算系统来实现图像渲染系统200。可以存在和设想许多变体。如图2所示,在一些实施例中,图像渲染系统200可以包括通过数据总线212彼此连接或耦合的预处理单元202、多层感知机(MLP)渲染单元204和卷积神经网络(CNN)渲染单元208。通过数据总线212,预处理单元202、MLP渲染单元204和CNN渲染单元208可以彼此发送/接收数据或以其他方式通信。在各种实施例中,数据总线212可以使用任何合适的数据总线或传输协议来实现。例如,在一些实施例中,数据总线212可以为外围组件快速互连(PCIe)总线。在其他实施例中,数据总线212可以为基于以太网的连接。下面将更详细地讨论预处理单元202、MLP渲染单元204和CNN渲染单元208。
在一些实施例中,预处理单元202可以基于待渲染图像的像素的坐标来生成在神经辐射场中沿着相机光线进行采样的点的空间坐标。基于像素的坐标,预处理单元202可以确定点的空间坐标和相机光线的空间坐标。然后,预处理单元202可以将点的空间坐标和相机光线的空间坐标连接成向量表示。这些连接向量表示可以由预处理单元202映射到更高维度的空间。换句话说,预处理单元202可以被配置或编程为执行图1B的光线采样阶段152和位置编码阶段154的功能。在一些实施例中,预处理单元202可以与图像渲染系统200外部的数据路径214接口。通过数据路径214,预处理单元202可以接收与待渲染图像相关的指令(即,数据)。例如,预处理单元202可以通过数据路径214接收与图像的视点或视角(即,像素的坐标)有关的数据。在这种实施例中,预处理单元202可以顺序地读取指令,并基于指令生成在神经辐射场中沿着相机光线进行采样的点的空间坐标。在一些实施例中,与图像有关的指令可以存储在片外动态随机存取存储器(DRAM)或可由图像渲染系统200访问的其他合适的片外存储器存储设备中。如所讨论的,在进一步处理之前,点的空间坐标和相机光线的空间坐标被连接并映射到更高维度的空间。
在一些实施例中,MLP渲染单元204可以基于神经辐射场生成图像的特征图,该特征图包括沿着与待渲染图像的像素相关联的相机光线的点的颜色值和强度值。换句话说,MLP渲染单元204可以被配置或编程为执行图1B的多层感知机渲染阶段156的功能。在一些实施例中,MLP渲染单元204可以基于包括图像的训练数据集将神经辐射场编码到多层感知机中。一旦神经辐射场被编码,MLP渲染单元204就可以基于由预处理单元202通过数据总线212提供的高维向量表示来输出特征图。在这种实施例中,MLP渲染单元204可以查询神经辐射场以生成点的颜色值和强度值,并将点作为特征图提供给CNN渲染单元208。如图2所示,在一些实施例中,MLP渲染单元204可以包括多个MLP处理器206a-206n。多个MLP处理器206a-206n可以专用于通过多层感知机的神经层处理高维向量表示,以输出点的颜色值和强度值。在这种实施例中,多个MLP处理器206a-206n中的每一个可以通过多层感知机执行高维向量表示的计算。通常,因为每个高维向量表示是独立向量,所以多个MLP处理器206a-206n可以被配置为并行处理高维向量表示以输出特征图的点的颜色值和密度值。作为一般规则,MLP渲染单元204具有的MLP处理器越多,MLP渲染单元204可以越快地输出点的颜色值和密度值。在各种实施例中,由MLP渲染单元204生成的特征图可以具有低信噪比(SNR)。在这方面,低SNR意味着图像的视觉质量较低。这里将参考图3A更详细地讨论多个MLP处理器206a-206n。
在一些实施例中,CNN渲染单元208可以生成沿着与待渲染图像的像素相关联的相机光线的点的详细颜色值和强度值。换句话说,CNN渲染单元208可以被配置或编程为执行图1B的卷积神经网络渲染阶段158的功能。在一些实施例中,CNN渲染单元208可以基于卷积神经网络生成点的详细颜色值和强度值。可以训练卷积神经网络以基于由MLP渲染单元204输出的特征图的点的“粗略”颜色值和强度值来输出点的详细颜色值和强度值。CNN渲染单元258可以通过数据总线212访问“粗略”颜色值和强度值。如图2所示,在一些实施例中,CNN渲染单元208可以包括多个CNN处理器210a-210n。多个CNN处理器210a-210n可以专用于通过卷积神经网络的神经层处理点的“粗略”颜色值和强度值,以输出点的详细颜色值和强度值。在这种实施例中,多个CNN处理器210a-210n中的每一个可以通过卷积神经网络处理点的“粗略”颜色值和强度值。通常,多个CNN处理器210a-210n可以对点的多个“粗略”颜色值和强度值进行运算。因此,在各种实施例中,CNN处理器的数量可以小于MLP处理器的数量。在各种实施例中,由CNN渲染单元208生成的图像可以具有高信噪比(SNR)。在这方面,高SNR意味着图像的视觉质量高。这里将参考图3B更详细地讨论多个CNN处理器210a-210n。
图3A示出了根据本发明公开的各种实施例的MLP处理器300的图。在一些实施例中,图2的多个MLP处理器206a-206n中的每一个可以使用MLP处理器300来实现。如图3A所示,在一些实施例中,MLP处理器300可以包括连接或耦合到两个存储模块310、312和参数存储模块314的主处理器核302。主处理器核302还可以连接或耦合到图像渲染系统(例如,图2的图像渲染系统200)的数据总线316(例如,图2的数据总线212)。通过数据总线316,主处理器核302可以向和从连接或耦合到数据总线316的其他处理器或处理单元(例如,图2的预处理单元202)读取和写入各种数据。例如,主处理器核302可以通过数据总线316从预处理单元接收高维向量表示。主处理器核302可以通过用神经辐射场编码的多层感知机来计算(或生成)图像的特征图。在该示例中,主处理器核302可以将图像的特征图写入数据总线316,使得CNN处理器可以进一步处理特征图以生成图像。在一些实施例中,由多层感知机生成的特征图可以为较低质量或没有高频特征的粗糙图像,而由CNN处理器生成的最终图像为高质量或包含高频特征的图像。
通常,与用神经辐射场编码的多层感知机相关联的参数可以包括大约600,000个参数(例如,多层感知机的权重)。因为与多层感知机相关联的参数的数量可能相当大,所以将参数存储在主处理器核302中是低效的。相反,可以将参数存储到参数存储模块314以提高主处理器核302的计算效率。在一些实施例中,主处理器核302可以被配置为在处理由预处理单元提供的高维向量表示之前加载多层感知机的参数。这种结构减轻了主处理器核302必须永久存储多层感知机参数的负担。在一些实施例中,存储模块310、312可以被配置为通过多层感知机存储与计算相关联的数据。存储模块310、312可以以乒乓结构(ping-pong configuration)存储数据。在乒乓结构下,作为示例,存储模块310可以被配置为存储将由主处理器核302通过多层感知机的第一神经层处理的数据,存储模块312可以被配置为存储多层感知机的第一神经层的输出数据。对于多层感知机的第二神经层,存储模块312存储将由主处理器核302处理的第二神经层的输入数据(例如,第一神经层的输出数据),而存储模块310则被配置为存储第二神经层的输出数据。这种在存储模块310、312之间存储数据的乒乓操作(ping-ponging)一直持续到多层感知机的所有神经层都被主处理器核302处理为止。
在一些实施例中,主处理器核302可以包括乘法阵列304、一个或多个累加阵列306和本地高速缓存308。乘法阵列304和一个或多个累加阵列306可以被配置用于执行与MLP的神经层相关联的矩阵乘法运算(例如,通过MLP的神经层处理向量表示)。本地高速缓存308可以被配置为存储与乘法阵列304及一或多个累加阵列306执行的矩阵乘法运算相关联的部分和。通常,主处理器核302可以用于运算与矩阵计算相关联的激活函数和量化函数。在一些实施例中,主处理器核302可以被实现为中央处理器(CPU)及其相关联的存储器或高速缓存中的计算单元,例如算术逻辑单元。在一些实施例中,主处理器核302可以被实现为图形处理器(GPU)及其相关联的存储器或高速缓存中的计算单元,例如纹理映射单元。在一些实施例中,可以使用被编程到现场可编程门阵列(FPGA)或专用集成电路(ASIC)中的自定义逻辑来实现主处理器核302。可以存在许多变体。本文将参考图4A更详细地讨论由MLP处理器300的主处理器核302执行的计算步骤。
图3B示出了根据本发明公开的各种实施例的CNN处理器350的图。在一些实施例中,可以使用CNN处理器350来实现图2的多个CNN处理器210a-210n中的每一个。如图3B所示,在一些实施例中,CNN处理器350可以包括连接或耦合到存储模块358和参数存储模块360的主处理器核352。主处理器核352还可以连接或耦合到图像渲染系统(例如,图2的图像渲染系统200)的数据总线362(例如,图2的数据总线212)。通过数据总线362,主处理器核352可以向和从连接或耦合到数据总线362的其他处理器(例如,图2的多个MLP处理器206a-206n)读取和写入各种数据。例如,主处理器核352可以通过数据总线362接收由MLP处理器(例如,图3A的MLP处理器300)输出的点的颜色数据和强度数据。主处理器核352可以通过卷积神经网络计算(或生成)点的详细颜色值和密度值。在该示例中,主处理器核302可以将点的详细颜色值和密度值写入数据总线362,因此其他处理器可以进一步处理详细颜色值和密度值以渲染高频图像。
通常,卷积神经网络可以被配置为并行处理颜色值和密度值。例如,卷积神经网络可以同时处理多个点的颜色值和密度值。因此,处理数据所需的CNN处理器的数量可以小于MLP处理器的数量。然而,与多层感知机不同,与卷积神经网络相关联的参数(即,卷积神经网络的权重)可以大于与多层感知机相关联的参数(即,多层感知机的权重)。此外,通过卷积神经网络生成点的详细颜色值和密度值所需的神经运算比通过多层感知机生成点的颜色值和密度值所需的神经运算需要更多的计算资源。因此,与MLP处理器不同,CNN处理器350通过数据总线362从外部存储设备读取卷积神经网络的参数。此外,将与卷积神经网络相关联的参数存储在主处理器核352中是低效的,这减慢了由主处理器核352执行的计算。相反,卷积神经网络的参数存储在参数存储模块360中,以提高主处理器核352的计算效率。在一些实施例中,主处理器核352可以被配置为在处理之前加载参数。存储模块358被配置为存储与卷积神经网络的神经层相关联的输出数据(例如,详细的颜色值和强度值)。如图3B所示,在一些实施例中,存储模块358和参数存储模块360还可以连接或耦合到片外存储器设备以用于进一步存储。
在一些实施例中,主处理器核352可以包括乘法阵列354和一个或多个累加阵列356。乘法阵列354和一个或多个累加阵列356可以被配置用于执行与卷积神经网络的神经层相关联的矩阵计算运算。由矩阵计算运算产生的值可以存储在存储模块358中。通常,主处理器核352可以用于运算与矩阵计算相关联的激活函数和量化函数。在一些实施例中,主处理器核352可以被实现为中央处理器(CPU)及其相关联的存储器或高速缓存中的计算单元,例如算术逻辑单元。在一些实施例中,主处理器352可以被实现为图形处理器(GPU)及其相关联的存储器或高速缓存中的计算单元,例如纹理映射单元。在一些实施例中,主处理器352可以使用被编程到现场可编程门阵列(FPGA)或专用集成电路(ASIC)中的自定义逻辑来实现。可以存在许多变体。可以存在许多变体。将在本文中参考图4B更详细地讨论由CNN处理单元350的主处理器核352执行的计算步骤。
图4A示出了根据本发明的各种实施例的MLP处理器的主处理器核的计算流程400。在一些实施例中,计算流程400可以与由图3A的主处理器302执行的计算步骤相关联。如图4A所示,计算流程400可以从框402开始。在框402处,主处理器核将机器学习模型的网络参数(例如,与用神经辐射场编码的多层感知机相关联的权重)加载到参数存储模块(例如,图3A的参数存储模块314)中。然后,主处理器核等待渲染控制信号以开始处理点和相机光线的高维向量表示,以生成(或计算)沿着相机光线的点的颜色值和密度值。在框404处,主处理器核等待预处理组件(例如,图2B的预处理组件202)提供高维向量表示。在接收到高维向量表示后,主处理器核在框406处读取高维向量表示并将高维向量表示存储到第一存储模块(例如,图3A的存储模块310)。在框408处,主处理器核通过机器学习模型的层(例如,多层感知机的神经层)进行运算,以计算点的颜色值和密度值。在该过程期间,主处理器核在第一存储模块和第二存储模块(例如,图3A的存储模块312)之间以乒乓方式交替访问和存储与机器学习模型的层相关联的输入数据和输出数据。在框410处,在计算点的颜色值和密度值后,主处理器核将颜色值和密度值发送到卷积神经网络渲染器(例如,图3B的CNN处理器350)以进行进一步处理。在框412处,主处理器核确定是否已经计算了与图像相关联的每个点的颜色值和密度值。如果主处理器核确定已经计算了与图像相关联的每个点的颜色值和密度值,则主处理器核结束计算流程400并等待下一个渲染控制信号(即,“是”分支)。如果主处理器核确定尚未计算与图像相关联的每个点的颜色值和密度值,则主处理器核继续计算点的颜色值和密度值(即,“否”分支)。也就是说,重复框404-410的步骤,直到计算出每个点的颜色值和密度值。
图4B示出了根据本发明公开的各种实施例的CNN处理器的主处理器核的计算流程430。在一些实施例中,计算流程430可以与由图3B的主处理器核350执行的计算步骤相关联。如图4B所示,计算流程430可以从框432处开始。在框432处,主处理器核从数据总线(例如,图3B的数据总线362)接收沿着与待渲染图像的像素相关联的相机光线的点的颜色值和密度值。点的颜色值和密度值可以由耦合到数据总线的MLP处理器(例如,图3A的MLP处理器300)提供。在框434处,主处理器核可以将卷积神经网络的参数从片外存储器加载到参数存储模块(例如,图3B的参数存储模块360)。在框436处,主处理器核从参数存储模块加载卷积神经网络的参数。在框438处,主处理器核基于卷积神经网络的参数,使用由MLP处理器通过卷积神经网络的神经层提供的点的颜色值和密度值来计算点的详细颜色值和密度值。在框440处,主处理器核将通过神经层生成的点的详细颜色值和密度值输出到存储模块(例如,图3B的存储模块358)中。在框442处,主处理器核确定是否已经通过卷积神经网络的神经层完全处理点的颜色值和密度值。在框444处,当主处理器核确定已经通过卷积神经网络的神经层处理了点的颜色值和密度值时,主处理器核在框446处加载卷积神经网络的下一层的参数,并继续确定点的颜色值和密度值。当主处理器核确定已经通过CNN的所有神经层处理了点的颜色值和密度值时,在框448处(即,“是”分支),计算流程430结束。
图4C示出了根据本发明公开的各种实施例的计算组件460,其包括一个或多个硬件处理器462和存储一组机器可读/机器可执行指令的机器可读存储介质464,该组机器可读/机器可执行指令在被执行时使(一个或多个)硬件处理器462执行方法。计算组件460可以是例如图5的计算系统500。硬件处理器462可以包括例如图5的(一个或多个)处理器504或本文描述的任何其他处理单元。机器可读存储介质464可以包括图5的主存储器506、只读存储器(ROM)508、存储装置510和/或本文描述的任何其他合适的机器可读存储介质。
在框466处,处理器462可以生成沿着与待渲染图像的像素相对应的相机光线的点的空间坐标的向量表示。
在框468处,处理器462可以基于向量表示通过第一机器学习模型生成点的颜色值和强度值。
在框470处,处理器462可以基于点的颜色值和强度值通过第二机器学习模型生成点的详细颜色值和强度值。
在框472处,处理器462可以基于详细颜色值和强度值来渲染图像。
本发明描述的技术例如由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行这些技术,或者可以包括电路或数字电子设备,诸如被持久编程以执行这些技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA),或者可以包括被编程为根据固件、存储器、其他存储装置或组合中的程序指令来执行这些技术的一个或多个硬件处理器。
图5是示出计算系统500的框图,在该计算系统500上可以实现本文描述的各种实施例中的任何一个。计算系统500包括总线502或用于传送信息的其他通信机制、与总线502耦合以用于处理信息的一个或多个硬件处理器504。对设备执行任务的描述旨在表示硬件处理器504中的一个或多个执行。
计算系统500还包括耦合到总线502的主存储器506,诸如随机存取存储器(RAM)、高速缓存和/或其他动态存储设备,用于存储要由处理器504执行的信息和指令。主存储器506还可以用于在执行要由处理器504执行的指令期间存储临时变量或其他中间信息。当存储在处理器504可访问的存储介质中时,这样的指令使计算系统500成为被定制为执行指令中指定的操作的专用机器。
计算系统500还包括耦合到总线502的只读存储器(ROM)508或其他静态存储设备,用于存储用于处理器504的静态信息和指令。还提供了诸如磁盘、光盘或USB拇指驱动器(闪存驱动器)的存储设备510,存储设备510耦合到总线502以用于存储信息和指令。
计算系统500可以经由总线502耦合到(一个或多个)输出设备512,诸如阴极射线管(CRT)或LCD显示器(或触摸屏),用于向计算机用户显示信息。包括字母数字键和其他键的(一个或多个)输入设备514耦合到总线502,用于向处理器504传送信息和命令选择。另一种类型的用户输入设备是光标控件516。计算系统500还包括耦合到总线502的通信接口518。
除非上下文另有要求,否则在整个本说明书和权利要求书中,词语“包括(comprise)”及其变体,例如“包括(comprises)”和“包括(comprising)”应被解释为开放的、包含性的含义,即“包括但不限于”。在整个说明书中数值范围的引用旨在作为单独提及落入包括定义该范围的值在内的范围内的每个单独值的简写符号,并且每个单独值如其在本文中被单独引用一样被并入说明书中。另外,单数形式“一”、“一个”和“该”包括复数指代物,除非上下文另有明确规定。短语“……中的至少一个”、“选自……的组中的至少一个”或“选自由……组成的组中的至少一个”等应以析取词解释(例如,不应解释为A中的至少一个和B中的至少一个)。
贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语“在一个实施例中”或“在实施例中”不一定都指代相同的实施例,而是可以在一些情况下指代相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
被实现为另一组件的组件可以被解释为以与另一组件相同或相似的方式操作的组件,和/或包括与另一组件相同或相似的特征、特性和参数。
Claims (20)
1.一种用于渲染图像的计算系统,其特征在于,包括:
预处理单元,所述预处理单元通过数据总线耦合到特征提取单元和颜色渲染单元,其中:
所述预处理单元被配置为生成沿着与待渲染图像的像素相对应的相机光线的采样点的空间坐标的向量表示;
所述特征提取单元被配置为通过第一机器学习模型基于所述采样点的所述向量表示、颜色值和强度值产生所述图像的特征图;并且
所述颜色渲染单元被配置为通过第二机器学习模型基于所述特征图渲染所述图像,其中,所述第一机器学习模型不同于所述第二机器学习模型。
2.根据权利要求1所述的计算系统,其特征在于,所述特征图的第一信噪比(SNR)低于所述渲染图像的第二信噪比(SNR)。
3.根据权利要求1所述的计算系统,其特征在于,所述特征图包括粗糙图像,并且所述粗糙图像的第一信噪比(SNR)低于所述渲染图像的第二信噪比(SNR)。
4.根据权利要求3所述的计算系统,其特征在于,所述渲染图像包括所述粗糙图像中不存在的高频特征。
5.根据权利要求1所述的计算系统,其特征在于,所述第一机器学习模型为多层感知机。
6.根据权利要求1所述的计算系统,其特征在于,所述第二机器学习模型为卷积神经网络。
7.根据权利要求1所述的计算系统,其特征在于,所述特征提取单元包括多个第一处理器。
8.根据权利要求7所述的计算系统,其特征在于,所述多个第一处理器中的每一个包括:
第一处理器核,所述第一处理器核耦合到两个存储模块和参数存储模块,其中:
所述第一处理器核执行与所述第一机器学习模型相关联的矩阵运算;
所述两个存储模块存储与所述第一机器学习模型相关联的输入数据和输出数据;
所述参数存储模块存储与所述第一机器学习模型相关联的参数。
9.根据权利要求8所述的计算系统,其特征在于,所述两个存储模块交替存储与所述第一机器学习模型的层相关联的输入数据和输出数据。
10.根据权利要求9所述的计算系统,其特征在于,所述第一处理器核包括乘法阵列、一个或多个累加阵列及本地高速缓存,其中:
所述乘法阵列和所述一个或多个累加阵列执行与所述第一机器学习模型的所述层相关联的矩阵乘法运算;并且
所述本地高速缓存存储与所述矩阵乘法运算相关联的部分和。
11.根据权利要求8所述的计算系统,其特征在于,所述第一处理器核为与中央处理器、图形处理器或现场可编程门阵列中的至少一个相关联的计算单元。
12.根据权利要求1所述的计算系统,其特征在于,所述颜色渲染单元包括多个第二处理器。
13.根据权利要求12所述的计算系统,其特征在于,所述多个第二处理器中的每一个包括:
第二处理器核,所述第二处理器核耦合到存储模块和参数存储模块,其中:所述第二处理器核执行与所述第二机器学习模型相关联的矩阵运算;
所述存储模块存储与所述第二机器学习模型相关联的输入数据和输出数据;并且
所述参数存储模块存储与所述第二机器学习模型相关联的参数。
14.根据权利要求13所述的计算系统,其特征在于,所述存储模块存储与所述第二机器学习模型的层相关联的输入数据和输出数据。
15.根据权利要求14所述的计算系统,其特征在于,所述第二处理器核包括乘法阵列和一个或多个累加阵列,其中,所述乘法阵列和所述一个或多个累加阵列执行与所述第二机器学习模型的所述层相关联的矩阵乘法运算;并且其中,与所述矩阵乘法运算相关联的部分和存储在所述存储模块中。
16.根据权利要求13所述的计算系统,其特征在于,所述第二处理器核为与中央处理器、图形处理器或现场可编程门阵列中的至少一个相关联的计算单元。
17.一种图像渲染系统,其特征在于,包括:
预处理单元、特征提取单元和颜色渲染单元,所述预处理单元、所述特征提取单元和所述颜色渲染单元通过数据总线耦合,其中:
所述预处理单元被配置为生成沿着与待渲染图像的像素相对应的相机光线的采样点的空间坐标的向量表示;
所述特征提取单元被配置为通过多层感知机基于所述采样点的所述向量表示、颜色值和强度值来生成所述图像的特征图;并且
所述颜色渲染单元被配置为通过卷积神经网络基于所述特征图来渲染所述图像。
18.根据权利要求17所述的图像渲染系统,其特征在于,所述特征图的第一信噪比(SNR)低于所述渲染图像的第二信噪比(SNR)。
19.根据权利要求17所述的图像渲染系统,其特征在于,所述特征图包括粗糙图像,并且所述粗糙图像的第一信噪比(SNR)低于所述渲染图像的第二信噪比(SNR)。
20.根据权利要求19所述的图像渲染系统,其特征在于,所述渲染图像包括所述粗糙图像中不存在的高频特征。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/130765 WO2023082285A1 (en) | 2021-11-15 | 2021-11-15 | Multicore system for neural rendering |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117957577A true CN117957577A (zh) | 2024-04-30 |
Family
ID=86334987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180102463.7A Pending CN117957577A (zh) | 2021-11-15 | 2021-11-15 | 用于神经渲染的多核系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240104822A1 (zh) |
CN (1) | CN117957577A (zh) |
WO (1) | WO2023082285A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109191364A (zh) * | 2018-08-01 | 2019-01-11 | 南京天数智芯科技有限公司 | 加速人工智能处理器的硬件架构 |
CN112116084A (zh) * | 2020-09-15 | 2020-12-22 | 中国科学技术大学 | 可重构平台上固化全网络层的卷积神经网络硬件加速器 |
-
2021
- 2021-11-15 CN CN202180102463.7A patent/CN117957577A/zh active Pending
- 2021-11-15 WO PCT/CN2021/130765 patent/WO2023082285A1/en active Application Filing
-
2023
- 2023-12-07 US US18/531,755 patent/US20240104822A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240104822A1 (en) | 2024-03-28 |
WO2023082285A1 (en) | 2023-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11847550B2 (en) | Sparse convolutional neural network accelerator | |
US9984498B2 (en) | Sparse GPU voxelization for 3D surface reconstruction | |
CN110689599B (zh) | 基于非局部增强的生成对抗网络的3d视觉显著性预测方法 | |
CN112396645B (zh) | 一种基于卷积残差学习的单目图像深度估计方法和系统 | |
US11496773B2 (en) | Using residual video data resulting from a compression of original video data to improve a decompression of the original video data | |
CN110443842A (zh) | 基于视角融合的深度图预测方法 | |
CN112017228B (zh) | 一种对物体三维重建的方法及相关设备 | |
CN111695494A (zh) | 一种基于多视角卷积池化的三维点云数据分类方法 | |
CN112884668A (zh) | 基于多尺度的轻量级低光图像增强方法 | |
CN113850900A (zh) | 三维重建中基于图像和几何线索恢复深度图的方法及系统 | |
CN116863194A (zh) | 一种足溃疡图像分类方法、系统、设备及介质 | |
CN109741358A (zh) | 基于自适应超图学习的超像素分割方法 | |
CN117274446A (zh) | 一种场景视频处理方法、装置、设备及存储介质 | |
Dinesh et al. | Point cloud video super-resolution via partial point coupling and graph smoothness | |
CN114118367B (zh) | 增量式神经辐射场构建的方法及设备 | |
CN117957577A (zh) | 用于神经渲染的多核系统 | |
WO2023070291A1 (en) | Systems and methods for image rendering | |
US20240281256A1 (en) | Multi-core Acceleration of Neural Rendering | |
CN116740201B (zh) | 基于ldr图像的hdr场强计算方法、装置和存储介质 | |
CN115984583B (zh) | 数据处理方法、装置、计算机设备、存储介质和程序产品 | |
CN118351228A (zh) | 一种基于空间编码的网络渲染引擎 | |
CN117851630A (zh) | 具有神经场景表示数据的方法和装置 | |
CN118314299A (zh) | 基于分离模型的快速神经辐射场三维重建方法、系统 | |
CN116051746A (zh) | 一种三维重建和神经渲染网络的改进方法 | |
CN116777968A (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 |