APP下载

基于深度卷积神经网络的真实感渲染降噪方法

2019-11-22李宁谦丁建

现代计算机 2019年29期
关键词:蒙特卡洛残差卷积

李宁谦,丁建

(西华大学计算机与软件工程学院,成都610039)

0 引言

从场景模型中产生一幅真实感图像需要在图像的每个像素点计算一个复杂的高维积分。蒙特卡洛渲染(MC)系统通过在多维空间中追踪光线(采样)去估算积分值。虽然可以通过少量采样快速产生渲染结果,但是估算的结果相对于真实值具有较大的误差,这些误差在渲染结果中表现为大量噪点,因为蒙特卡洛估计方法的方差根据采样数量的增加而线性减小,所以为了得到更加精确的估计结果往往需要大量采样。计算大量采样需要消耗较长的渲染时间,这种时间消耗局限了蒙特卡洛方法在现代渲染工业中的应用范围。其中一种解决方法是对场景投放少量光线快速渲染出一副噪声图像然后使用滤波器作为后验方法来对噪声图像进行过滤,从而得到无噪声的结果。这种方法也被称为图像空间降噪方法,是近年来广泛研究的课题[1]。虽然已经提出了大量的图像空间蒙特卡洛渲染降噪方法,但是其中表现较为优秀的是基于回归的方法[6],高阶回归提升了一定的渲染质量,然而这些质量的提升是以不断增加的复杂度为代价,同时回报却越来越小,这是因为高阶回归容易造成过拟合从而引入噪声导致。为了避免对噪声过拟合问题提出了一种基于监督学习的蒙特卡洛降噪方法[7],通过一组低采样的噪声图像和相应的高采样图像作为训练数据,最终得出回归模型,然而这种方法使用一个相对简单的多层感知机作为学习模型,并且仅用了少量的场景图像产生训练数据,除此之外,这种方法将滤波器进行硬编码也限制了降噪系统的灵活性。

本文为了应对这些缺陷提出了基于卷积神经网络的直接降噪监督学习框架,本框架的输入向量仅需要三个辅助特征,即深度、视角空间法线、反照率。本文所提出的网络训练方法,简单、稳定,收敛时间将近36小时。除此之外,为了应对训练深度卷积神经网络时梯度消失的问题,本文将残差结构应用于卷积网络结构对此问题做出了改善。

本文的主要贡献如下:

(1)提出了一种鲁棒性更高的单帧蒙特卡洛渲染降噪方法,训练数据的输入大为简化,仅仅需要常见渲染器提供的少量辅助特征。

(2)验证了直接降噪的有效性,同时也证明了辅助特征对神经网络的降噪效果有一定的提升作用。

(3)将残差网络应用于渲染降噪,增加了卷积神经网络的深度,使神经网络的学习能力更加强大。

1 卷积神经网络降噪

本节具体介绍基于深度学习渲染降噪的方法,其中包含网络结构的关键设计思路,辅助特征的选择。

1.1 降噪模型

蒙特卡洛降噪的目标是获取尽可能接近真实像素颜色值Cˉp的被过滤像素颜色Cˆp的值,为了获取这个估计值,通常对每像素矢量块Xp的邻域进行操作来产生过滤输出的像素颜色p,给定降噪函数g(Xp;θ),参数θ代表降噪参数,每像素理想降噪参数能够被表示成:

被过滤的像素颜色值为Cˆp=g(Xp;θˆp),l(Cˉ,Cˆ)是真实颜色值与被降噪颜色值之间的损失函数。输入向量Xp由以下组成:

Cp:像素颜色值

zi:深度值

ni( x,y ):视角空间法线

ai(r,g,b):反照率

公式(1)中的函数g 即为需要学习的降噪模型。

1.2 卷积网络降噪结构

本文所使用的网络结构于图1 中显示。卷积神经网络在网络的每一层都使用多个卷积核,具有图像空间共享的可训练权重,卷积结构相对于传统图像降噪方法更加适合降噪任务。此外,通过激活函数将多个层连接在一起,卷积神经网络能够学习高度非线性函数,这样的函数对于获得高质量的输出非常重要。

图1 卷积网络模型设计

1.3 加入残差块的降噪结构

基于反向传播法计算梯度优化的神经网络,由于反向传播求隐藏层梯度时利用了链式法则,梯度值会进行一系列的连乘,导致浅层隐藏层的梯度会出现剧烈的衰减,这也就是梯度问题的本源,残差网络通过跳跃连接有效地将梯度流动到浅层网络中,使得浅层部分的网络权重参数能够得到很好的训练。本文在上文提出的卷积神经网路中加入残差块,并将网络深度加深有效地改善了最终的降噪效果,残差网络[8-9]如图2所示。

图2 加入残差块的神经网络结构

1.4 辅助特征以及预处理

对于HDR 图像的输入,根据对数变换将图像进行范围压缩,此变换步骤对于最终结果有一定的平滑效果,总而言之,输入向量由以下9 个通道组成:

(1)输入噪声图像(3 通道,需范围压缩处理)

(2)深度图像(1 通道,需范围压缩处理)

(3)视角空间向量(2 通道)

(4)反射率(3 通道)

2 实验

2.1 数据

为了使深度神经网络能够学习输入与输出数据之间复杂的关系,同时也要避免过拟合出现,因此进行本实验需要获取大量数据。目前,基于深度学习的渲染降噪实验没有公共数据集,本文在进行实验之前需要花费大量时间去准备一个数据量较大的数据集(渲染器选用Tungsten),数据集中包含的物体类型较为多样,也有各种分布式效果(运动模糊、焦散等)图3 显示了本数据集中的部分训练数据。

2.2 训练参数

本文实验选用深度学习框架为TensorFlow,操作系统环境为Windows,采用GPU 加速,设置patch size 为128×128,步长为80,最终得到57k 个patch 块用来训练。网络优化器使用Adam,动量值设置为0.9,L1-loss作为损失函数。训练使用最小批次量为10,训练迭代次数为106,学习率表如下:

(1)对于首1000 次迭代使用0.01 的学习率

(2)对于次1000 次迭代使用0.001 的学习率

(3)其余迭代使用104的学习率

本网络一共有13847296 个可训练参数,训练一共耗时36 个小时。

图3 部分训练数据集示例

3 结果与对比分析

本文方法与NFOR、LBF、KPCN[10]进行对比,对于NFOR 使用作者的开源代码,作者已经将源代码加入Tungsten 渲染器,对于KPCN,直接选用作者已训练模型,对于LBF 方法,作者已将该方法集成到PBRT2。本文的主要关注点在快速渲染高质量图像,例如:游戏渲染、虚拟现实、原型设计等,这些应用渲染速度非常重要,然而每像素采样(SPP)过高将会降低渲染速度,因此选用的噪声图像以及特征图像都是以4SPP 渲染,真实图像(Ground Truth)以32K SPP 或者更高的采样数量渲染,确保图像在人眼感知上没有噪声存在。为了衡量这些方法的表现,本文使用RelMSE(Relative MSE)与SSIM(Structural Similarity Index)作为降噪结果的衡量标准,两者数值变化范围为0 到1,1 代表具有与真实图像完美的匹配程度,图4 显示了降噪结果,数据显示为降噪时间,不包含渲染时间。

图4

4 结语

在所有的降噪测试中,本文选用的方法始终优于其他几种解决方案,表1 显示了所有降噪结果的SSIM数值。NFOR 在少部分场景中RelMSE 效果更好,但是漫反射效果却有很多污斑,KPCN 方法鲁棒性不强,因为这种方法需要大量的辅助特征,如果不能有效地利用辅助特征,往往会造成降噪图像过度模糊。

表1

因为本文的方法针对于单帧蒙特卡洛渲染图像,如果直接将本方法应用于动画序列帧,那么降噪结果并不具有时域连贯性,其中一种解决思路是使用视频时域一致性滤波器。然而,更好的解决思路是通过前后两帧之间添加循环连接(Recurrent Connections)来解决神经网络中的时间一致性问题,未来的工作将围绕这种方法展开。

猜你喜欢

蒙特卡洛残差卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于残差-注意力和LSTM的心律失常心拍分类方法研究
面向纳米尺度金属互连线的蒙特卡洛模拟方法研究
融合上下文的残差门卷积实体抽取
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
基于残差学习的自适应无人机目标跟踪算法
基于深度卷积的残差三生网络研究与应用
蒙特卡洛应用于知识产权证券化资产风险量化分析