首页 / 实时体积渲染

实时体积渲染实质审查 发明

技术领域

[0001] 本发明一般涉及图像渲染。更特别地,本发明涉及用于进行基于神经网络的图像渲染的计算系统。

相关背景技术

[0002] 利用诸如神经网络的机器学习模型的图像渲染技术已被开发用于渲染高质量图像。例如,最近开发了基于多层感知器(MLP)的神经辐射场(NeRF)技术以从新的视点(即,视角)渲染真实感图像。比如,三维成像空间中身体组织的NeRF可以利用含有从多种视点描绘身体组织的医学图像(例如,CT扫描或MRI图像)的训练数据集进行训练。一旦NeRF被训练,就可以获得新视点的身体组织图像且可以渲染该身体组织图像。总体上,传统的图像渲染方法会有很大的缺点。首先,需要存储被渲染图像的计算资源与图像的分辨率成正比。例如,作为一个经验法则,被渲染图像的分辨率越高,被渲染图像的文件尺寸越大。其次,很多时候,取自患者的医学图像中会嵌入患者的个人识别信息。因此,由于医学图像被显式存储,患者隐私无法得到保护。因此,需要有更好的解决方案。

具体实施方式

[0022] 下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
[0023] 本发明提供了解决由上述传统的图像渲染方法产生的问题的技术发明。各实施例中,隐式神经表示可以用于表示多个与图像渲染关联的信号。与图像渲染的离散表示法相比,隐式神经表示可以通过表示图像空间分辨率的连续和独立的信号表示。连续和独立的信号可以参数化为将图像的空间坐标映射到连续和独立信号的响应的连续函数。这样,连续和独立函数可以用于估算表示编码神经辐射场的全连接神经网络(即,多层感知器)的函数。这样,全连接神经网络可以表示为输入信号的隐式神经表示用于图像渲染。本文论述了本技术发明的这些和其他特征。
[0024] 图1示出了根据本发明各实施例的实时神经渲染系统102的计算环境100。如图1所示,某些实施例中,计算环境100可以包括三维成像空间104。某些实施例中,三维成像空间104可以为诸如器官或身体组织等物体的神经辐射场(NeRF)。基于三维成像空间104,实时神经渲染系统102可以以新的视点渲染二维图像。如图1所示,某些实施例中,实时神经渲染系统102可以包括参数表示模块106、成像空间旋转模块108和图像渲染模块110。每个模块将在下面进行更详细地说明。
[0025] 某些实施例中,参数表示模块106可以用于基于诸如多层感知器模型的深度学习模型编码三维成像空间104。参数表示模块106可以将三维成像空间104编码至深度学习模型中。参数表示模型中,三维图像104可以表示为三维成像坐标空间的连续和独立函数(即,隐式表示)。这样,参数表示模块106可以将三维图像104编码至深度学习模型中。参数表示模型的尺寸基本小于三维图像的尺寸,且参数表示可以用于以高压缩率自然压缩待渲染图像。而且,此压缩可以是无损的。某些实施例中,参数表示模块106还可以用于保护通过实时神经渲染系统102渲染的图像上的患者私人信息。在这种情况下,保护图像上的私人信息是指将图像编码至多个参数中,从而图像上的识别患者的私人信息不渲染就不可读。一旦参数表示模块106编码三维成像空间104,可以基于体素坐标查询参数表示模块106以输出三维成像空间104的体素的多通道强度值。例如,具有三个体素长度,三个体素宽度和三个体素高度的三维成像空间可以由参数表示模块106编码至多层感知器中。此示例中,基于(1,1,1)的体素坐标作为输入以查询多层感知器,参数表示模块106可以输出三维成像空间的位置(1,1,1)处的体素的多通道强度值。参数表示模块106将结合本发明图2A和图2B进行更详细地说明。
[0026] 某些实施例中,成像空间旋转模块108可以用于旋转三维成像空间104到用户定义角度所指定的方向。成像空间旋转模块108可以基于用户定义角度生成旋转(或变换)矩阵以在自由空间(即,计算空间或向量空间)中旋转三维成像空间104。某些实施例中,旋转或变换矩阵可以按照旋转矩阵在自由空间中三维成像空间104的体素上逐个体素操作。成像空间旋转模块108将结合本文图2B进行更详细地说明。
[0027] 某些实施例中,图像渲染模块110可以用于生成源于待渲染二维图像的投影线(例如,投影)。这些投影线可以投影(或注入)到旋转后的三维成像空间104中。基于沿每条投影线的体素的多通道强度值,图像渲染模块110可以生成二维图像。成像空间旋转模块108将结合本发明图2B进行更详细地说明。
[0028] 图2A示出了根据本发明各实施例的参数表示模块200。各实施例中,图1的参数表示模块106可以实施为参数表示模块200。如上所述,参数表示模块200可以用于基于机器学习模型编码三维成像空间(例如,图1的三维成像空间104)。还如上所述,某些实施例中,参数表示模块200可以包括参数表示模型(即,隐式表示)用于编码三维成像空间。这些实施例中,参数表示模型可以由如下连续隐式体素函数表示:
[0029]
[0030] 其中,表示三维成像空间的三维体素坐标, 表示图像I中位置 处的体素的多通道强度值。某些实施例中,体素坐标可以在笛卡尔坐标中表示。例如,连续隐式体素函数中的 可以表示为 其中x,y和z分别表示三维成像空间的x轴,y轴和z轴坐标。某些实施例中,连续隐式体素函数F可以用傅里叶特征映射函数由神经网络进行估算。这种对连续隐式体素函数的估算是可行的,原因是:(1)神经网络的尺寸一般小于图像I,以及(2)图像I由神经网络隐式表示。因此,为连续隐式体素函数建模,参数表示模块200可以包括耦合于隐式表示模块204的空间编码模块202。空间编码模块202可以用于执行傅里叶特征映射函数的功能。隐式表示模块204可以用于执行神经网络的功能。各实施例中,空间编码模块202和隐式表示模块204可以在计算系统上或作为计算系统的一部分实施。例如,空间编码模块202和隐式表示模块204可以在专用计算硬件(例如,具有专用集成电路或现场可编程门阵列的计算系统)上实施。作为另一示例,空间编码模块202和隐式表示模块204可以用运行在通用计算硬件的专用指令或程序在通用计算硬件(例如,具有中央处理器或图形处理器的计算系统)上实施。可能有许多变形。包括空间编码模块202和隐式表示模块204的参数表示模块200的一种特定的硬件实施方式将结合本发明图3进行说明。
[0031] 某些实施例中,空间编码模块202可以用于将低维输入映射到高维空间。这样,隐式表示模块204可以训练诸如多层感知器或深度学习模型的机器学习模型以学习图像的高频特征。一般来说,图像的高频特征是图像中描绘的物体的细节。这些细节可以包括,例如,物体的毛发或皮毛,或传统成像渲染方法在渲染时会有困难的任何其他细节。某些实施例中,空间编码模块202可以被实施以执行与傅里叶特征映射函数关联的计算。各实施例中,傅里叶特征映射函数可以如下表示:
[0032]
[0033] 其中,x表示三维成像空间的体素坐标, 为包括取样自三维成像空间的体素的高斯矩阵。高斯矩阵的每个元素可以取样自高斯分布 L为三维成像空间编码至机器学习模型中后的体素坐标的维度。
[0034] 某些实施例中,隐式表示模块204可以用于将三维成像空间编码至机器学习模型中。某些实施例中,机器学习模型可以是包括十五个全连接神经层的全连接神经网络(例如,多层感知器)。十五个全连接神经层的每一个都可以后跟线性整流函数(ReLU)。一般来说,ReLU可以用于为神经网络的神经层的输入提供斜坡函数。例如,考虑图2A所示的隐式表示模块204的全连接神经网络。此示例中,全连接神经网络的第一神经层206可以后跟第一ReLU208。此示例中,第一ReLU208可以用于使第一神经层206的输出斜坡式达到零或线性斜坡输出,提供输出之前作为输入提供给全连接神经网络的第二神经层210。一般来说,耦合于十五个全连接神经层的ReLU可以作为激活函数以加速全连接神经网络的训练而将三维成像空间编码至全连接神经网络。全连接神经网络的一个具体实施方式中,如图2A所示,全连接神经网络的第六神经层和第十一神经层可包括512个神经元(即,感知器),而全连接神经网络的其他神经层可包括256个神经元。其他实施方式也是可能的。例如,另一实施方式中,全连接神经网络的所有神经层可包括256个神经元或者512个神经元。某些实施例中,为了便于全连接神经网络的训练(即,编码),全连接神经网络还可包括至少两个密集连接。一般来说,神经网络的密集连接是一种利用线性运算的神经层。此运算中,神经层的每一输入连接到前一神经层的每一输出。全连接神经网络的一个具体实施方式中,如图2A所示,第一密集连接212可以将输入连接到全连接神经网络的第六神经层,且第二密集连接214可以将输入连接到全连接神经网络的第十一神经层。
[0035] 图2B示出了根据本发明各实施例的与实时神经渲染系统关联的数据管道220。各实施例中,图1的实时神经渲染系统102可以用于执行数据管道220。如上所述,实时神经渲染系统可以用于将三维成像空间(例如,图1的三维成像空间104)编码至机器学习模型中。一旦编码,可以基于体素坐标查询机器学习模型以输出三维成像空间的多通道强度值。还如上所述,实时神经渲染系统还可以用于在自由空间(即,计算空间或向量空间)中旋转三维成像空间到用户定义角度所指定方向。一旦旋转,实时神经渲染系统可以在旋转后的三维成像空间中生成投影以生成该方向的的二维图像。如图2B所示,数据管道220可包括图像重建步骤222、图像旋转步骤224和图像投影步骤226。将在下面更详细地说明每个步骤。
[0036] 图像重建步骤222中,实时神经渲染系统的参数表示模块(例如,图1的参数表示模块106)可以基于用三维成像空间(例如,NeRF)编码的隐式表示模型重建三维图像228。参数表示模块可以基于三维成像空间的体素的多通道强度值重建三维图像228。通过机器学习模型查询体素坐标可以获得体素的多通道强度值。一旦获得体素的多通道强度值,参数表示模块可以重建三维图像228。
[0037] 图像旋转步骤224中,实时神经渲染系统的成像空间旋转模块(例如,图1的成像空间旋转模块108)可以在自由空间中旋转三维图像228到某一特定方向。成像空间旋转模块可以基于用户定义角度旋转三维图像228到该特定方向。基于用户定义角度,成像空间旋转模块可以生成旋转(或变换)矩阵以利用其在自由空间中旋转三维图像228。例如,使ψ,θ,和φ表示用户定义角度。进一步地,此示例中,c表示三维图像228的体素坐标。基于用户定义角度,成像空间旋转模块可以为三维图像228的每个轴生成三个旋转矩阵或一个旋转矩阵,如下所示:
[0038]
[0039] 其中,Rx(ψ)为x轴的旋转矩阵,Ry(θ)为y轴的旋转矩阵,Rz(φ)为z轴的旋转矩阵。这些旋转矩阵可以在三维图像228的每个体素上操作以按照嵌入旋转矩阵的用户定义角度旋转自由空间中的每个体素。这样,三维图像228可以从其原始方向旋转到用户定义角度所定义的特定方向。因此,接下来,用户定义角度所定义的特定方向的三维图像228的体素坐标可以定义如下:
[0040] c′=c·Rx(ψ)Ry(θ)Rz(φ)
[0041] 其中,c′表示用户定义角度所定义的特定方向的三维图像228的体素坐标。
[0042] 图像投影步骤226中,实时神经渲染系统的图像渲染模块(例如,图1的图像渲染模块110)可以生成源于待渲染二维图像的投影线(例如,投影)。这些投影线可以投影(或注入)旋转后的三维图像228中以及二维图像平面230上。基于沿着通过旋转后的三维图像228投影的每条投影线的体素的多通道强度值,图像渲染模块可以生成二维图像。某些实施例中,图像渲染模块可以基于最大强度投影(MIP)技术生成二维图像。MIP技术是一种用于通过选取沿源于待渲染二维图像的像素的投影线具有最大强度值的体素从三维图像(或成像空间)生成二维图像的方法。例如,考虑图2C。图2C示出了根据本发明各实施例的与源自待渲染二维图像的像素的投影线282相交的三维成像空间的一行体素280。如图2C所示,这一行体素280可以包括体素280a、280b、280c、280d、280e、280f和280g,其强度值分别为100、50、120、130、20、40和100。此示例中,MIP技术下,二维图像的像素的强度值对应体素280d的强度值,即130。这是因为与投影线282相交的体素中,体素280d具有最高强度值。因此,利用MIP技术,图像渲染模块可以通过确定对应于二维图像的像素的体素的最大强度值来重建二维图像。
[0043] 图3示出了根据本发明各实施例的实时神经渲染系统的硬件实施方式300。某些实施例中,图1的实时神经渲染系统102可以利用硬件实施方式300实施。如图3所示,实时神经渲染系统可以包括主控制器302、数据存储器304、神经渲染处理器306和显示器308。每个组件将在下面进行更详细的说明。
[0044] 某些实施例中,主控制器302可以用于生成图像渲染任务并发送图像渲染任务的指令至神经渲染处理器306进行处理。各实施例中,主控制器302可以利用微控制器实施。
[0045] 某些实施例中,数据存储器304可以用于存储与诸如多层感知器或深度学习模型的机器学习模型关联并用三维成像空间编码的参数。关于机器学习模型的计算功能可以通过神经渲染处理器306执行。某些实施例中,数据存储器304可以用于存储神经渲染处理器306渲染二维图像时与机器学习模型关联的输入和输出数据。完成图像渲染时,神经渲染处理器306将渲染后的图像存储回数据存储器304中。这时,主控制器302可以指示显示器308检索关于渲染后的图像的显示数据并将渲染后的图像显示到显示器308上。
[0046] 某些实施例中,神经渲染处理器306可以用于执行数据管道(例如,图2B的数据管道220)以渲染二维图像。如图3所示,神经渲染处理器306可以包括控制单元310、直接存储器访问312、两个存储器模块314、316和操作核心318。控制单元310可以从主控制器302接收图像渲染任务的指令并将这些指令转换成与两个存储器模块314、316和操作核心318兼容的指令集。例如,某些实施例中,控制单元310可以将从主控制器302接收的指令转换成机器语言指令用于操作核心306渲染二维图像。直接存储器访问312可以允许高带宽高效率访问机器学习模型的参数。直接存储器访问312还可以允许高带宽高效率编写以将渲染后的图像存储到数据存储器304。这样,可以减少图像渲染所需的时间。一旦直接存储器访问312检索到参数,直接存储器访问312可以将参数存储到存储器模块314,反过来,操作核心318可以访问存储器模块。存储器模块316可以存储操作核心318渲染二维图像时机器学习模型的输入和输出数据。操作核心318结束图像渲染时,操作核心318将关于渲染后的图像的数据到存储器模块316。这时,直接存储器访问312将这数据中继给数据存储器304进行存储和显示。各实施例中,操作核心318可以包括负责乘加(MAC)运算的计算单元。某些实施例中,操作核心318还可包括负责激活运算的计算单元。某些实施例中,操作核心318可额外包括负责量化运算的计算单元。许多计算单元被考虑在内。例如,某些实施例中,操作核心318还可包括负责渲染操作的计算单元。
[0047] 图4示出了根据本发明各实施例的包括一个或多个硬件处理器402和存储有一套机器可读/机器可执行指令的机器可读存储介质404的计算组件400,其中机器可读/机器可执行指令被执行时,使硬件处理器402执行方法。计算组件400可以为,例如,图5的计算系统500。硬件处理器402可以包括,例如,图5的处理器504或本文所述的任何其他处理单元。机器可读存储介质404可以包括主存储器506、只读存储器(ROM)508、图5的存储器510、和/或本文所述的任何其他适合的机器可读存储介质。
[0048] 框406处,处理器402可以接收三维图像的隐式表示。
[0049] 框408处,处理器402可以基于体素坐标构建基于隐式表示模型的三维图像。
[0050] 框410处,处理器402可以基于用户输入在计算空间中旋转三维图像到某一方向。
[0051] 框412处,处理器402可以基于旋转后的三维图像生成二维图像。
[0052] 本发明所述的技术,例如,由一个或多个专用计算设备实施。专用计算设备可以是硬连线的以执行技术,或可以包括持续编程以执行技术的诸如一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)的电路或数字电子设备,或可以包括一个或多个硬件处理器,其根据固件、存储器、其他存储器或组合中的程序指令被编程以执行技术。
[0053] 图5为示出了可在其上实施本文所述的任一实施例的计算机系统500的框图。计算机系统500包括用于传输信息的总线502或其他通信机制和用于处理信息的耦合于总线502的一个或多个硬件处理器504。设备执行任务的描述旨在表示由一个或多个硬件处理器504执行。
[0054] 计算机系统500也包括耦合于总线502并用于存储由处理器504执行的信息和指令的诸如随机存取存储器(RAM)、高速缓存和/或其他动态存储设备的主存储器506。主存储器506也可以用于存储执行由处理器504执行的指令期间的临时变量或其他中间信息。这些指令存储在可访问处理器504的存储介质中时,将计算机系统500转化为专用机器,专用机器经定制用于执行指令中指定的操作。
[0055] 计算机系统500还包括耦合于总线502并用于存储用于处理器504的静态信息和指令的只读存储器(ROM)508或其他静态存储设备。提供了诸如磁盘、光盘或USB闪存盘(闪存驱动器)等的存储设备510并耦合于总线502用于存储信息和指令。
[0056] 计算机系统500可以经由总线502耦合于输出设备512,诸如阴极射线管(CRT)或LCD显示器(或触摸屏),用于向计算机用户显示信息。输入设备514包括字母数字键和其他键并耦合于总线502用于向处理器504传输信息和命令选择。另一种用户输入设备为光标控制器516。计算机系统500还包括耦合于总线502的通信接口518。
[0057] 除非上下文有其他要求,纵观本说明书和权利要求,词语“包括”及其变形应在开放和不排他的意义上理解,即,“包括但不限于”。整个说明书各个值的数值范围的描述旨在作为单独指每个值的速记符号,每个值落入定义范围的各值的不排他的范围内,并且,由于在本文单独列举,所以每个单独的值包含在本说明书中。此外,除非上下文另外清楚地规定,单数形式“一个”、“一”和“所述”包括复数指示物。短语“至少一个”、“从组中选取至少一个”或“由……构成的组中选取至少一个”等应解释为分开的(例如,不应解释为至少一个A和至少一个B)。
[0058] 整个本说明书中,“一个实施例”意思是关于实施例描述的具体特征、结构或特点包括在本发明的至少一个实施例中。因此,整个说明书中出现在各处的短语“一个实施例中”不一定都指代同一实施例,可以是某些实例。并且,具体特征、结构或特点可以在一个或多个实施例中以任一合适方式组合。
[0059] 一种组件实施为另一种组件可以理解为该组件以与另一组件相同或相似的方式操作,和/或包括与另一组件相同或相似的特征、特点和参数。

当前第1页 第1页 第2页 第3页