基于神经网络的随机渐近式光子映射图像降噪方法及系统与流程

文档序号:21603577发布日期:2020-07-24 16:59阅读:233来源:国知局
基于神经网络的随机渐近式光子映射图像降噪方法及系统与流程

本公开涉及图像真实感渲染技术领域,特别是涉及基于神经网络的随机渐近式光子映射图像降噪方法及系统。



背景技术:

本部分的陈述仅仅是提到了与本公开相关的背景技术,并不必然构成现有技术。

随机渐进式光子映射是一种被广泛使用的基于物理的真实感渲染方法,可以有效模拟真实世界中的光与物体相互作用后产生的焦散等复杂光学效果,是一种内存友好的光子映射和渐进式光子映射的改良方法。

然而,作为一个有偏的渲染方法,在选取了不合适的场景渲染参数或者渲染迭代次数不足时,随机渐进式光子映射常常因此时偏差和方差偏大而产生低质量的结果。且若想得到高质量、无噪声的结果,往往需要大量的时间进行渲染。

通过去除渲染结果中的噪声,同时维持重要的光照特征和锐利的光照细节,使得低质量的渲染结果变为高质量的渲染结果,这一过程就是降噪。要在有限的时间成本内取得高质量的渲染结果,降噪是一种可行的手段。

近期,基于神经网络的降噪技术在无偏的渲染方法降噪上取得了成功,但仍未应用到有偏的渲染方法降噪上。由于无偏的渲染方法中只存在方差问题,应用于它的降噪技术也只需要解决偏大的方差,而有偏的渲染技术,如随机渐进式光子映射,同时存在方差和偏差两个问题。

发明人发现,偏差在随机渐进式光子映射最终的渲染结果上表现为漫反射表面上的低频的大尺度噪声,方差则表现为光滑表面上的高频的小尺度噪声。随机渐进式光子映射的这一特殊性质将多尺度的噪声引入了同一张渲染结果,加大了降噪的难度。



技术实现要素:

为了解决现有技术的不足,本公开提供了基于神经网络的随机渐近式光子映射图像降噪方法及系统;能够有效地处理随机渐进式光子映射的渲染结果中的多尺度噪声,同时在降噪时保持焦散等重要的光照特征和锐利的光照细节。

第一方面,本公开提供了基于神经网络的随机渐近式光子映射图像降噪方法;

基于神经网络的随机渐近式光子映射图像降噪方法,包括:

获取三维场景,基于随机渐进式光子映射生成待降噪图像,待降噪图像包括基于全局光子的渲染图像和基于焦散光子的渲染图像;

将基于全局光子的渲染图像,输入到预训练的第一多重残差神经网络中,输出全局光子降噪图像;将基于焦散光子的渲染图像,输入到预训练的第二多重残差神经网络中,输出焦散光子降噪图像;

将全局光子降噪图像和焦散光子降噪图像进行合成,得到最终的渲染图像。

第二方面,本公开提供了基于神经网络的随机渐近式光子映射图像降噪系统;

基于神经网络的随机渐近式光子映射图像降噪系统,包括:

数据生成模块模块,其被配置为:获取三维场景,基于随机渐进式光子映射生成待降噪图像,待降噪图像包括基于全局光子的渲染图像和基于焦散光子的渲染图像;

降噪模块,其被配置为:将基于全局光子的渲染图像,输入到预训练的第一多重残差神经网络中,输出全局光子降噪图像;将基于焦散光子的渲染图像,输入到预训练的第二多重残差神经网络中,输出焦散光子降噪图像;

合成模块,其被配置为:将全局光子降噪图像和焦散光子降噪图像进行合成,得到最终的渲染图像。

第三方面,本公开还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述的方法。

第四方面,本公开还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述的方法。

与现有技术相比,本公开的有益效果是:

本公开利用基于神经网络的降噪框架,首先实现对有偏渲染方法随机渐进式光子映射的降噪;在神经网络中使用带有不同尺寸卷积核的多重残差格,能够有效地处理随机渐进式光子映射渲染结果中的多尺度噪声,从而保证渲染结果的质量。充分利用预处理模块与后处理模块,能够增加神经网络训练过程的稳定性。

本公开将随机渐进式光子映射的渲染结果分为基于全局光子的渲染结果和基于焦散光子的渲染结果两个成分,分别使用降噪框架中的两个神经网络进行处理,可以保持焦散等重要的光照特征,避免矛盾的降噪约束。

本公开将辅助特征缓存与渲染结果一并作为神经网络的输入,可以提供给网络更多渲染时的信息,从而能够有效保持锐利的光照细节。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。

图1是本公开实施例1提供的一种基于神经网络的随机渐进式光子映射的降噪方法的流程图;

图2是本公开实施例1提供的一种准备训练数据示意图;

图3(a)-图3(g)是本公开实施例1提供的三维场景示例图;

图4是本公开实施例1提供的训练所述神经网络示意图;

图5是本公开实施例1提供的降噪进行示意图;

图6(a)-图6(l)是本公开实施例1提供的辅助特征缓存示意图;

图7是本公开实施例1提供的降噪框架使用示意图;

图8是本公开实施例1提供的多重残差神经网络示意图;

图9是本公开实施例1提供的多重残差格示意图。

具体实施方式

应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

实施例一,本实施例提供了基于神经网络的随机渐近式光子映射图像降噪方法;

基于神经网络的随机渐近式光子映射图像降噪方法,包括:

s100:获取三维场景,基于随机渐进式光子映射生成待降噪图像,待降噪图像包括基于全局光子的渲染图像和基于焦散光子的渲染图像;

s200:将基于全局光子的渲染图像,输入到预训练的第一多重残差神经网络中,输出全局光子降噪图像;将基于焦散光子的渲染图像,输入到预训练的第二多重残差神经网络中,输出焦散光子降噪图像;

s300:将全局光子降噪图像和焦散光子降噪图像进行合成,得到最终的渲染图像。

作为一个或多个实施例,在得到基于全局光子的渲染图像步骤之后,在将基于全局光子的渲染图像,输入到预训练的多重残差神经网络中步骤之前,还包括:对全局光子的渲染图像进行归一化处理和对数变换处理。

作为一个或多个实施例,在得到基于焦散光子的渲染图像步骤之后,在将基于焦散光子的渲染图像,输入到预训练的多重残差神经网络中步骤之前还包括:对焦散光子的渲染图像进行归一化处理和对数变换处理。

作为一个或多个实施例,在输出全局光子降噪图像步骤之后,在将全局光子降噪图像和焦散光子降噪图像进行合成步骤之前,还包括:对全局光子降噪图像进行指数变换处理。

作为一个或多个实施例,在输出焦散光子降噪图像步骤之后,在将全局光子降噪图像和焦散光子降噪图像进行合成步骤之前,还包括:对焦散光子降噪图像进行指数变换处理。

作为一个或多个实施例,所述基于全局光子的渲染图像和所述基于焦散光子的渲染图像,是指:

在使用随机渐进式光子映射方法对三维场景进行渲染时,从光源出发向场景中发射若干光子,这些光子经过多次反弹会最终停留并记录在物体表面;接着,从摄像机出发向场景中发射若干光线,光线相交物体于其表面一点,使用该点附近的光子信息来估计该条光线获取的最终颜色,以生成图像。

在这些光子中,若光子基于delta双向反射分布函数经过一次或若干次反射后,最后停留在漫反射表面,或者在从未经过漫反射表面的同时达到了最大反射次数,最后停留在光滑表面,则被成为焦散光子。使用这些焦散光子进行光子信息估计而获得的渲染图像,称为基于焦散光子的渲染图像。

焦散光子之外的光子则称为全局光子,使用这些全局光子进行光子信息估计而获得的渲染图像,称为基于全局光子的渲染图像。

作为一个或多个实施例,所述第一多重残差神经网络与第二多重残差神经网络的结构一致。

作为一个或多个实施例,所述第一多重残差神经网络,具体结构包括:

依次连接的多重残差提取模块、核预测模块和加权重建模块。

进一步地,所述多重残差提取模块,包括:

依次连接的第一卷积层、第一线性整流单元、第二卷积层、若干个多重残差格单元、第三卷积层和第一批归一化层;

第二卷积层的输出端与第一批归一化层的输出端均与第一求和单元的输入端连接,第一求和单元的输出端与核预测模块的输入端连接;

其中,第一卷积层,用于提取图像的初级特征张量;

第一线性整流单元,用于映射第一卷积层的输出,得到非线性输出结果;

第二卷积层,用于接收第一线性整流单元的输出,进一步提取特征张量;

多重残差格单元,用于接收第二卷积层的输出,进一步提取特征张量;

第三卷积层,用于接收多重残差格单元的输出,进一步提取特征张量;

第一批归一化层,用于接收第三卷积层的输出,并进行标准化处理,使得网络的中间输出值更稳定。

进一步地,所述多重残差格单元,包括:第一分支和第二分支;

其中,第一分支,包括:依次连接的第四卷积层、第二批归一化层、第二线性整流单元、第五卷积层、第三批归一化层、concatenate函数层和第二求和单元;第二求和单元的输入端与第四卷积层的输入端连接;

其中,第二分支,包括:依次连接的第六卷积层、第四批归一化层、第三线性整流单元、第七卷积层和第五批归一化层;第六卷积层的输入端与第四卷积层的输入端连接,第五批归一化层的输出端与concatenate函数层的输入端连接;

其中,所述多重残差格单元的输入端为第四卷积层和第六卷积层,所述多重残差格单元的输出端为第二求和单元的输出端。

其中,第一分支的第四卷积层,用于接收第二卷积层的输出,进一步提取特征张量;

第一分支的第二批归一化层,用于接收第四卷积层的输出,并进行标准化处理,使得网络的中间输出值更稳定;

第一分支的第二线性整流单元,用于映射第二批归一化层的输出,得到非线性输出结果;

第一分支的第五卷积层,用于接收第二线性整流单元的输出,进一步提取特征张量;

第一分支的第三批归一化层,用于接收第五卷积层的输出,并进行标准化处理,使得网络的中间输出值更稳定;

第一分支的concatenate函数层,用于接收第三批归一化层的输出及第五批归一化层的输出,并将这些输出进行特征张量的合并。

第二分支的第六卷积层,用于接收第二卷积层的输出,进一步提取特征张量;

第二分支的第四批归一化层,用于接收第六卷积层的输出,并进行标准化处理,使得网络的中间输出值更稳定;

第二分支的第三线性整流单元,用于映射第四批归一化层的输出,得到非线性输出结果;

第二分支的第七卷积层,用于接收第三线性整流单元的输出,进一步提取特征张量;

第二分支的第五批归一化层,用于接收第七卷积层的输出,并进行标准化处理,使得网络的中间输出值更稳定。

进一步地,所述核预测模块,包括:

依次连接的第八卷积层、第四整流线性单元和第九卷积层,其中第八卷积层与多重残差神经网络的加和单元的输出端连接,第九卷积层与加权重建模块的输入端连接;

其中,第八卷积层,用于接收第一求和单元的输出,进一步提取特征张量;

第四线性整流单元,用于映射第八卷积层的输出,得到非线性输出结果;

第九卷积层,用于接收第四线性整流单元的输出,进一步提取特征张量。

进一步地,所述加权重建模块,包括:

依次连接的归一化指数函数层和加权重建单元;

其中,归一化指数函数层与第九卷积层连接,加权重建单元的输入端还与第二卷积层的输出端连接,加权重建单元的输出端即为加权重建模块的输出端,加权重建单元的输出端也是多重残差神经网络的输出端;

其中,归一化指数函数层,是指使用归一化指数函数将输入的特征张量的值映射为0~1之间,用于映射第九卷积层的输出,得到所含数值都在0~1的范围内的特征张量;

其中,加权重建单元,是指使用数值范围在0~1之间的权重矩阵,对图像进行邻域加权重建,用于接收归一化指数函数层输出的特征张量,当作权重矩阵,对原始图像进行邻域加权重建,以达到降噪的效果。

作为一个或多个实施例,所述预训练的第一多重残差神经网络的训练步骤与训练第二多重残差神经网络的步骤一致。

作为一个或多个实施例,如图1所示,所述预训练的第一多重残差神经网络的训练步骤包括:

构建训练集;所述训练集,是使用随机渐进式光子映射获得若干组训练数据;

将训练集输入到多重残差神经网络中,对多重残差神经网络进行训练,当损失函数达到最小值时或者迭代次数满足设定阈值时,停止训练,得到训练好的多重残差神经网络。

进一步地,使用随机渐进式光子映射获得若干组训练数据;具体步骤包括:

将三维场景图像输入到随机渐进式光子映射算法中,输出低迭代次数的渲染结果和高迭代次数的渲染结果,低迭代次数和高迭代次数均为设定值,将低迭代次数的渲染结果和高迭代次数的渲染结果作为一组训练数据;

再输入其他三位场景图像,按照同样的方式,获得其他组训练数据。

优选地,所述训练集,包括:随机渐进式光子映射的低质量渲染结果、辅助特征缓存和随机渐进式光子映射的高质量渲染结果。

所述随机渐进式光子映射的低质量渲染结果,是通过随机渐进式光子映射m次得到的,其中m为正整数,m小于设定阈值。

所述随机渐进式光子映射的高质量渲染结果,是通过随机渐进式光子映射n次得到的,其中n为正整数,n大于设定阈值。。

所述辅助特征缓存,包括:在低质量渲染过程中计算并保存的法线、反照率、距离、追踪深度、光子密度、光子辐射通量或光子梯度其中一种或多种的组合。

为了进一步保持锐利的光照细节和重要的光照特征,本实施例中计算并保存了一系列渲染时会产生的三维特征,如图6(a)-图6(l),包括:法线,物体的表面着色法线;反照率,物体反射辐射和入射辐射的比值;距离,初级交点距离摄像机的距离;追踪深度,追踪采样的最大深度;光子密度,光子在某一区域处的密度,为数量与面积的比值;光子辐射通量,某一区域处聚集的光子总辐射通量;光子梯度,区域内所有光子能量与方向变化的梯度,其大小体现了变化的剧烈程度。

多重残差格,由卷积核大小为3和5的卷积层组成。

训练降噪神经网络,其最大的困难在于它往往需要一个足够大且具有代表性的数据集,使其可以学习到低质量噪声图片与高质量无噪图片之间复杂的联系,同时避免过拟合现象的发生。

使用所述随机渐进式光子映射获取训练数据的方法如图2所示:首先,将三维场景输入随机渐进式光子映射方法;在低迭代次数或者不合适的场景参数下,产生低质量的渲染结果;高迭代次数或合适的场景参数下,产生高质量的渲染结果。在最简单的情况下,低质量的渲染结果与高质量的渲染结果就可以组成一组训练数据。

辅助特征缓存为随机式光子映射在进行低质量的渲染结果渲染时计算并保存的一系列三维特征;为神经网络提供辅助特征缓存会增强对低质量的渲染结果的处理能力。

鉴于没有公开的训练数据,如图3(a)-图3(g)所示,本实施例中准备了一组三维场景用以获取训练数据,包含了从简单到复杂的场景。调整了这些三维场景中的相机位置、朝向、光源位置、光源强度、材质属性等来产生更多的三维场景,以扩充我们的训练数据。在本实施例中,共使用了827组三维场景。

进一步地,将训练集输入到多重残差神经网络中,对多重残差神经网络进行训练,是将低迭代次数的渲染结果作为神经网络的输入值,将高迭代次数的渲染结果作为神经网络的输出值,对神经网络的参数进行训练优化。

如图4所示,将所述训练数据中的低质量渲染结果输入神经网络,神经网络会预测出降噪结果,将所述降噪结果与所述训练数据中的高质量渲染结果输入损失函数,损失函数会使用这个信息来优化神经网络,使其产生更接近于高质量渲染结果的降噪结果。

如图5所示,在实际使用时,将首先将使用所述随机渐进式光子映射在低迭代次数下得到的低质量渲染结果输入降噪框架中的训练好的神经网络,神经网络会预测出降噪结果。

本实施例中使用的渲染结果和最终的降噪结果都为高动态范围图片,会使得最优化过程极其不稳定。为了增加稳定性,提升网络收敛的速度以及最终降噪的质量,在输入神经网络进行降噪前后,将输入数据与输出数据分别做s100预处理及s300后处理操作。

使用类似于加权重建或滤波的方法经常会带来矛盾的降噪约束。假设有一组光子落在了一个表面上,很难去判断是要平均掉这些光子的贡献(它们是漫反射表面的有偏的估计),还是要保持锐利(它们是带有一些模糊边界的焦散效果)。

为更好地保持焦散等重要的光照特征,避免矛盾的降噪约束,本实施例中将随机渐进式光子映射的渲染结果分为两个成分,将基于焦散光子计算得到的渲染结果与基于全局光子计算得到的渲染结果分离。

如图7,在本实施例中,所述随机渐进式光子映射的两个成分分别经过s100预处理的归一化和对数变换后,输入s200降噪的两个神经网络,然后神经网络输出到s300后处理,将降噪结果经过指数变换后,将两个成分对应像素的像素颜色值相加,拼合为最终渲染结果。

在使用神经网络对随机渐进式光子映射进行降噪时,发明人观察到,使用大滤波核的神经网络可以更好地处理位于低频区域的多尺度噪声,特别是在平坦表面的大尺度噪声,但是在去除高频区域的噪声时却难以保持重要的光照信息和锐利的光照细节。使用小滤波核的神经网络则恰恰相反。基于这个观察:

如图8,在本实施例中,使用了一个多重残差神经网络,它由多重残差提取模块、核预测模块和加权重建模块组成。

多重残差提取模块提取空间特征,如图9所示,由九个多重残差块及若干卷积层、批归一化层、参数线性整流单元组成。在每个多重残差格内,使用了两组分别带有卷积核大小为3和5的卷积层、批归一化层、参数线性整流单元。允许更好地处理随机渐进式光子映射中存在的多尺度噪声。

实施例二,本实施例提供了基于神经网络的随机渐近式光子映射图像降噪系统;

基于神经网络的随机渐近式光子映射图像降噪系统,包括:

数据生成模块,其被配置为:获取三维场景,基于随机渐进式光子映射生成待降噪图像,待降噪图像包括基于全局光子的渲染图像和基于焦散光子的渲染图像;

降噪模块,其被配置为:将基于全局光子的渲染图像,输入到预训练的第一多重残差神经网络中,输出全局光子降噪图像;将基于焦散光子的渲染图像,输入到预训练的第二多重残差神经网络中,输出焦散光子降噪图像;

合成模块,其被配置为:将全局光子降噪图像和焦散光子降噪图像进行合成,得到最终的渲染图像。

此处需要说明的是,上述数据生成模块、降噪模块和合成模块对应于实施例一中的步骤s100至s300,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

实施例三,本实施例还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例一所述的方法。

应理解,本实施例中,处理器可以是中央处理单元cpu,处理器还可以是其他通用处理器、数字信号处理器dsp、专用集成电路asic,现成可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。

在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。

实施例一中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

实施例四,本实施例还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一所述的方法。

以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1