Deep Bilateral Learning for Real-Time Image Enhancement

性能是移动图像处理中的关键挑战。给定参考成像管道,甚至是人工调整的图像对,我们寻求重现增强功能并实现实时评估。为此,我们引入了一种新的神经网络架构,其灵感来自双边网格处理和局部仿射颜色变换。使用输入/输出图像对,我们训练卷积神经网络来预测双边空间中局部仿射模型的系数。我们的架构学习如何做出局部的,全局的和依赖于内容的决策来近似所需的图像变换。在运行时,神经网络消耗输入图像的低分辨率版本,在双边空间中产生一组仿射变换,使用新的切片节点以边缘保留方式对这些变换进行上采样,然后将这些上采样变换应用于全分辨率图像。我们的算法在几毫秒内处理智能手机上的高分辨率图像,提供1080p分辨率的实时取景器,并匹配大量图像操作的最先进的近似技术的质量。与以前的工作不同,我们的模型是根据数据进行训练的,因此不需要在运行时访问原始操作符。这允许我们的模型学习复杂的,依赖于场景的变换,其中没有可用的参考实现,例如人类润色的摄影编辑。

1 INTRODUCTION

当代相机和移动设备产生的高分辨率图像和视频给图像处理算法带来了巨大的性能压力,需要熟练的程序员进行复杂的代码优化。 虽然系统贡献已经试图促进高性能可执行文件的实现,例如, [Hegarty等人2014;Mullapudi等2016年;RaganKelley等2012年],它们需要程序员的专业知识,它们的运行时成本仍然随着管道的复杂性而增长,并且只有在源代码可用于过滤器时才适用。另外,因为图像增强是主观的,所以通常希望直接从人类调整中学习增强模型,例如, [Bychkovsky等。2011]。为此,我们提出了一种机器学习方法,其中参考滤波器,通道甚至主观手动照片调整的效果是由深度网络学习的,可以快速评估并且成本与参考的复杂性无关。我们专注于不会在空间上扭曲图像或添加新边缘的照片增强功能,例如: [Aubry等。2014; Hasino ff等。2016年]。

我们分享以前工作的动机,寻求通过使用远程服务器,或通过处理低分辨率图像然后使用低分辨率输出来近似高分辨率等效来加速“黑匣子”图像处理操作。对于某些操作,这些方法可以实现大的加速,但它们受到显着的限制:底层图像处理操作必须在某种程度上是尺度不变的(图9),并且必须快速评估低分辨率。此外,这些技术依赖于显式参考实现的可用性,因此不能用于从人类带注释的输入/输出对的数据库中学习隐式定义的操作。

许多深度学习架构已被用于图像到图像转换。 然而,大多数先前的工作产生了大量的计算成本,其与输入图像的尺寸线性地成比例,通常是因为必须以全分辨率评估的大量堆叠卷积和非线性。这种通用形式允许学习灵活的模型,但这种表现力是有代价的:对于实时取景器应用来说,这种架构的数量级太慢,需要几秒钟才能在最好的桌面GPU上处理100万像素的图像 - 超过 比我们提出的模型慢1000倍(GPU上2毫秒)。我们的加速是通过特定的目标摄影变换实现的,摄影变换通常在双边空间中通过线性运算很好地近似,并据此在这个空间学习我们的模型。

我们提出了一种新的网络架构,能够学习各种各样的摄影图像增强功能,并可以在高分辨率输入上快速评估。我们通过三个关键策略实现这一目标:1)我们在低分辨率双边网格中执行大多数预测[Chen et al。 2007],其中每个像素的x,y坐标用第三维增强,第三维是像素颜色的函数。为此,我们引入了一个用于深度学习的新节点,该节点执行数据相关的查找。这实现了所谓的切片操作,其通过考虑除了x,y位置之外的每个像素的输入颜色,从3D双边网格以全图像分辨率重建输出图像。2)我们遵循先前的工作,该工作已经观察到预测从输入到输出的转换通常更简单,而不是直接预测输出,例如,[Chen et al。2016年 Gharbi等。2015年; Shih等。2013]。这就是为什么我们的体系结构旨在作为中间表示来学习将通过新的乘法节点应用于输入的局部颜色变换。 3)虽然我们的大多数学习和推理都是以低分辨率进行的,但是训练期间使用的损耗函数是以全分辨率进行评估的,这导致我们学习的低分辨率变换直接针对它们对高分辨率图像的影响进行优化。

总之,这三种策略(切片,颜色变换和全分辨率损失)使我们能够以低分辨率执行大部分处理(从而节省大量计算成本),同时重现参考运算符的高频行为。

我们在7个应用程序的基准测试中展示了我们模型的表现力,包括:近似发布的图像过滤器[Aubry et al。2014; Hasino ff等。 2016],逆向工程黑盒Photoshop动作,并学习摄影师的修饰风格[Bychkovsky et al。 2011]来自一组手动校正的照片。我们的技术产生的输出质量可以与以前的工作相媲美或更好,同时通过不需要对图像操作进行近似的一些参考实现,从输入/输出图像对端到端可学习,以及在实时在移动硬件上。我们网络的前向传输需要14毫秒才能在Google Pixel手机上处理全屏分辨率1920×1080图像,从而实现50 Hz的实时取景器效果。

2 RELATED WORK

虽然图像增强算法已经成为大量研究的焦点,但是大多数复杂的算法太昂贵而无法在移动设备上快速评估,这是绝大多数数字图像被捕获和处理的地方。因此,以前的工作已经确定了特定的关键操作并开发了新的算法来加速它们。例如,Farbman等人[2011]引入了卷积金字塔来加速线性平移不变滤波器。同样,由于边缘感知图像处理的普遍存在,已经提出了许多加速双边掠过的方法[Adams et al2010; 陈等人2007; 巴黎和杜兰德2006; Tomasi和Manduchi 1998]。

加速操作的一种方法是简单地以低分辨率应用它并对结果进行上采样。天真的上采样通常会导致不可接受的模糊输出,但是这个问题通常可以通过使用更复杂的上采样技术来改善,该技术尊重原始图像的边缘。联合双边上采样通过在高分辨率制导图上使用双边滤波器来产生分段光滑的边缘感知上采样。双边空间优化[Barron et al。2015年; Barron和Poole 2016]通过解决双边网格内的紧凑优化问题,建立了这个想法,产生最大平滑的上采样结果。

Gharbi等[2015]专注于学习从输入到输出的转换而不是输出本身。它们通过一系列简单的局部模型(一种针对给定输入/输出对定制的变换配方)来近似一大类复杂的,空间变化的算子。计算操作和拟合配方的任务被添加到云中,而移动设备仅需要应用配方,从而节省时间和能量。类似地,Chen在双边空间中近似具有局部模型网格的图像算子,其参数以类似于被引导滤波器的方式适合于输入/输出对。通过在低分辨率图像对上执行此模型,该技术可实现实时的设备上计算。我们建立在这种双边空间表示的基础上,而不是拟合模型以从一对图像中逼近运算符的单个实例,我们构建了一个类似CNN的丰富模型,该模型经过训练以将运算符应用于任何看不见的输入。这绕过了在运行时对原始操作符的需要,并且开启了学习非算法变换的机会(即,手动调整的输入/输出图像对)。 这也使我们能够优化所有系数,以便对以全分辨率运行的操作员进行建模,这对于随尺度变化的滤波器非常重要(图9)。

用于图像处理的神经网络。最近,深度卷积网络在低级视觉和图像处理任务(如深度估计)方面取得了显着进展[Eigen et al [2014],光学流程[Ilg et al 2016],超级决议[Dong et al [2014],去马赛克和去噪[Gharbi et al 2016年 张等人 2016],图像消光[Shen et al 2016],着色[Iizuka et al 2016],以及一般的图像到图像“翻译”任务[Isola et al 2016年]。最近的工作甚至探索了在双边网格内学习深层网络[Jampani et al 2016]虽然这项工作没有解决我们在该空间学习图像变换的任务,而是专注于分类和语义分割。
一些架构已经经过训练以接近一般类别的操作。徐等人[2015]在梯度域中开发三层网络以加速边缘感知平滑滤波器。刘等人 [2016]提出了一种架构来学习用于去噪,图像平滑,修复和颜色插值的递归滤波器。他们共同训练一系列递归网络和卷积网络,以预测与图像相关的传播权重。虽然其中一些工作可以以交互速率在桌面GPU上处理低分辨率图像,但它们对于我们的应用来说仍然太慢:在移动设备上实时处理高分辨率图像。

自动照片编辑。我们的模型可以训练自动校正人类润色提供的输入/输出图像对中的照片。这是Bychkovsky等人介绍的任务。 [2011],他估计了全局亮度/对比度调整,这些调整是5位受过训练的摄影师个人风格的特征。他们使用手工制作的功能训练回归模型,该模型捕获5000个原始图像的数据集上的低级信息和语义内容(例如,面部)。黄等人[2012]通过粗略搜索最佳匹配场景来解决问题,对于500×333图像需要超过一分钟。 考夫曼等人[2012]从硬编码特征(面部,蓝天,云,曝光不足区域)学习局部颜色和对比度操作,运行超过2分钟的VGA图像。 最近,Yan等人[2016]使用紧凑的像素神经网络和手工制作的功能。他们的网络需要1.5秒来处理100万像素的图像(在物体检测,密集图像分割和其功能中使用的场景识别所需的时间之上)。我们的模型可以学习类似的全局色调调整,并推广到更复杂的效果,包括色彩校正和局部编辑,以及更快。

3 OUR ARCHITECTURE

我们提出了一种新的卷积网络架构,可以训练它来执行快速图像增强(图2)。我们的模型设计为富有表现力,保留边缘,并且需要在全分辨率下进行有限的计算。它完全端到端可训练,并在现代智能手机上以1080p实时运行。

我们对低分辨率流(图2,顶部)中的输入I的低分辨率副本\tilde{I}进行大部分推断,最终以类似于双边网格的表示来预测局部仿射变换[Chen et al 2016年]。根据我们的经验,图像增强通常不仅取决于局部图像特征,还取决于全局图像特征,如直方图,平均强度,甚至场景类别。因此,我们的低分辨率流进一步分为局部路径和全局路径。然后,我们的架构融合了这两条路径,以产生代表仿射变换的最终系数。

高分辨率流(图2,底部)以全分辨率工作并执行最少的计算,但在捕获高频效应和在需要时保留边缘方面具有关键作用。为此,我们引入了一个受双边网格处理启发的切片节点[Chen et al 2007; 巴黎和杜兰德2006]。该节点基于学习的指导图在低分辨率的系数中执行数据相关的查找。给定通过使用全分辨率制导图切入网格获得的高分辨率仿射系数,我们将局部颜色变换应用于每个像素以产生最终输出O。在训练时,我们在全分辨率下最小化我们的损失函数。这意味着只处理大量下采样数据的低分辨率流仍然可以学习中间特征和能够再现高频效应的系数。

作为第一个近似值,人们可以将我们的工作视为在Chen等人的双边引导上采样[2016]中减少运行时对参考滤波器的需求。在某种意义上,我们寻求在给定图像的低分辨率版本的情况下预测双边网格中的颜色变换系数。但是,除此之外还有几个关键要素。首先,学习到双边网格的下采样。其次,还学习了引导图像,并且不限于亮度。最后,我们不是在仿射系数上应用损失函数,而是在全分辨率的最终图像上应用,这使我们能够捕获高频效应并处理非尺度不变的算子(图9)。我们用图3,图4,图5和图7中的消融研究说明了我们结构的每个组成部分的作用。

3.1 Low-resolution prediction of bilateral coefficients

低分辨率流的输入\tilde{I}具有固定分辨率256×256。它首先由一叠跨步卷积层(S^{i})_{i=1,...,n_{s}}处理,以提取低级特征并减少空间分辨率。然后,在Iizuka等人启发的设计中[2016],最后的低级特征由两条不对称路径处理:第一路径L^{i}_{i=1,...,n_{L}}是完全卷积的[Long et al 2015],专门研究传播图像数据的局部特征,同时保留空间信息。第二路径(G^{i})_{i=1,...,n_{G}}使用卷积和完全连接的层来学习全局特征的固定大小矢量(例如,高级场景类别,室内/室外等) 感受野覆盖整个低分辨率图像\tilde{I}。然后将两个路径的输出G^{n_{G}}L^{n_{L}}融合到一组共同的特征F中。逐点线性层从融合流输出最终阵列A。我们将这个数组解释为一个双重系数(第3.2节)。由于我们以依赖于内容的方式从2D图像生成3D双边网格,因此我们可以将低分辨率流视为实现学习的splatting形式。

3.1.1 Low-level features.

我们首先处理低分辨率图像S^{0}:=\tilde{I},其中一叠标准步长卷积层,步长为s = 2(图2):

S_{c}^{i}[x,y]=\sigma(b^{i}_{c}+\sum_{​{x}',{y}',{c}'}w_{cc'}^{i}[x',y']S_{c'}^{i-1}[sx+x',sy+y'])(1)

其中i=1,...,n_{s}索引图层,c和c'索引图层的通道,wi是卷积的权重数组,bi是偏差矢量,求和大于-1≤x',y'≤1(即,卷积核具有3×3空间范围)。我们使用ReLU激活函数σ(·)= max(·,0)并使用零填充作为所有卷积中的边界条件。

这些低级层逐渐减小空间维度,总因数为2^{n_{s}}。因此,n_{S}有两个效果:1)它驱动低分辨率输入\tilde{I}和最终系数的最终网格之间的空间下采样 - 较高的n_{S},较粗的最终网格,以及2)n_{S}控制预测的复杂性: 更深的层具有指数级更大的空间支持和更复杂的非线性(通过组合);因此,他们可以在输入中提取更复杂的模式。图3显示了与网络的比较,其中低层已经被移除,并被硬编码的splatting操作取代[Chen et al 2007年]。没有这些层,网络就失去了很多表现力。我们的架构使用n_{S} = 4个低级层。表1总结了每层的尺寸。

3.1.2 Local features path

然后,在局部路径中由一堆n_{L}=2个卷积层L^{i}处理最后的低级特征层S^{n_{S}}(图2,黄色)。这些层采用与等式(1)相同的形式,标识L^{0}:=S^{n_{S}},但这次使用步幅s = 1。我们保持空间分辨率和特征数量在局部路径中保持不变。由于分辨率保持不变,因此滤波器的空间支持仅随n_{L}线性增长。通过n_{S}+n_{L}粗略测量的足够深的卷积层堆栈对于捕获有用的语义特征是至关重要的[Krizhevsky等人2012]。如果对于系数的最终网格需要更高的空间分辨率,则可以减少n_{S}并增加n_{L}以相应地进行补偿,以便不降低网络的表现力。如果没有局部路径,预测的系数将失去任何空间位置的概念。

3.1.3 Global features path

与局部路径一样,全局特征路径从S^{n_{S}}分支出来,即G^{0}:=S^{n_{S}}。它包括两个跨步卷积层(等式(1),s = 2),接着是三个完全连接的层,总共n_{G} = 5个全局层(图2,蓝色)。使用完全连接层的一个结果是输入I的分辨率需要固定,因为它决定了G2的维度和作用于它的网络参数的数量。正如我们将在3.3节中看到的,由于我们的切片算子,我们仍然可以处理任何分辨率的图像,尽管低分辨率流的大小是固定的。

全局路径生成64维向量,该向量汇总有关输入的全局信息,并作为规范局部路径做出的局部决策的先行。如果没有全局特征来编码输入的这种高级描述,那么网络可以做出错误的局部决策,导致伪像,如图4中天空中的大规模变化所示。

3.1.4 Fusion and linear prediction

我们融合了局部和全局路径的贡献与逐点混合,然后是ReLU激活:

F_{c}[x,y]=\sigma(b_{c}+\sum_{c'}w'_{cc'}G_{c'}^{n_{G}}+\sum_{c'}w_{cc'}L_{c'}^{n_{L}}[x,y])(2)

这产生了一个16×16×64的特征阵列,我们通过这些特征进行最终的1×1线性预测,产生一个包含96个通道的16×16图:

A_{c}[x,y]=b_{c}+\sum_{c'}F_{c'}[x,y]w_{cc'}(3)

3.2 Image features as a bilateral grid

到目前为止,我们已将模型描述为神经网络。我们现在将视角转向双边网格。为了促进这一点,我们偶尔会将最终的特征图A视为一个多通道双边网格,其第三维已经展开:

A_{dc+z}[x,y]\leftrightarrow A_{c}[x,y,z](4)

其中d = 8是网格的深度。在此解释下,A可以被视为16×16×8双边网格,其中每个网格单元包含12个数字,每个系数用于3×4仿射颜色变换矩阵的每个系数。这种重塑使我们能够将等式(1)中的步幅卷积解释为在双边域中起作用,其中它们对应于(x,y)维度中的卷积并且表示z和c维度中的完全连通性。因此,这种操作比仅仅在网格中应用3D卷积更具表现力,这只会在z上引起局部连通性[Jampani等人。2016年]。 它也比标准的双边网格划分更具表现力,它将I离散化为几个强度区,然后将结果反映出来[Chen et al。2007]; 一种易于用2层网络表达的操作。从某种意义上说,通过维护2D卷积公式并仅将最后一层解释为双边网格,我们让网络决定2D到3D转换何时是最佳的。

3.3 Upsampling with a trainable slicing layer

到目前为止,我们已经描述了我们如何学习如何使用我们网络的低分辨率流从低分辨率图像I中预测系数A的双边网格。我们现在需要将此信息传回原始输入I的高分辨率空间以生成我们的最终输出图像。为此,我们引入了一个基于双边网格切片操作的层[Chen et al。2007年]。该层将单通道引导图g和特征图A(视为双边网格)作为输入,其空间分辨率远低于g。它在最终的特征映射A中执行数据相关的查找。该层对于A和g都是次要的。这允许我们在训练时间通过它反向传播。

切片算子的结果是一个新的特征图\bar{A},其空间分辨率与g相同,通过在由g定义的位置三线性插值A的系数得到:

\bar{A}_{c}[x,y]=\sum_{i,j,k}\tau (s_{x}x-i)\tau(s_{y}y-j)\tau(d\cdot g[x,y]-k)A_{c}[i,j,k](5)

使用线性插值核\tau(\cdot)=max(1-|\cdot|,0),其中sx和sy是网格尺寸w.r.t的宽度和高度比关于全分辨率图像的尺寸。基本上,每个像素被分配系数矢量,其网格中的深度由灰度值g[x,y]给出,即松散地说A_{c}[i,j,g(x,y)]。Flownet2 [Ilg et al. 2016]和Spatial Transformer Networks[Jaderberg等2015]使用类似的插值算子进行网内空间扭曲。我们将网格的空间分辨率固定为16×16,将其深度设置为d = 8。

切片操作是无参数的,可以在OpenGL着色器中有效实现[Chen et al 2007年]。 它充当瓶颈层,将神经网络的表示约束到低维空间。这既简化了学习问题,又加快了处理时间[Barron et al 2015年; 巴伦和普尔2016]。至关重要的是,在双边网格中进行推理迫使我们的模型预测遵循g的边缘,从而使我们对边缘感知解决方案的预测正规化(与基于转置卷积或“反卷积层”的标准网络不同,图5)。这种设计决策往往有利于像我们这样的摄影操作任务,并且由于A的低维度,使得我们对更一般模型的显着加速(图10)。

这种依赖于数据的查找对于我们模型的表达能力至关重要。 正如我们将在3.4.2节中看到的那样,它允许我们使用更简单的局部模型集合来预测全分辨率图像上的复杂操作。

3.4 Assembling the full-resolution output

到目前为止,我们已经描述了如何获得和上采样仿射系数的双边网格。其余处理以全分辨率完成。因此,它应该简单且易于并行化以最小化计算成本。从全分辨率输入I,我们提取一组n_{\phi }个全分辨率特征\phi,它们履行两个角色:1)它们被组合以预测切片节点中使用的制导图g,以及2)它们被用作回归变量对于局部的仿射模型。

最具成本效益的方法是使用输入图像的通道作为特征,即\phi=1(n_{\phi } = 3),局部仿射模型是颜色变换。我们所有的结果都使用这种快速配方。

3.4.1 Guidance map auxiliary network

我们将g定义为全分辨率特征的简单逐点非线性变换:

g[x,y]=b+\sum_{c=0}^{2}\rho _{c}(M_{c}^{T}\cdot \phi _{c}[x,y]+b'_{c})(6)

其中M_{c}^{T}是3×3颜色变换矩阵的行,bb'_{c}是标量偏差,\rho_{c}是分段线性传递函数,参数化为16个缩放ReLU函数的总和,阈值为t_{c,i}和斜率a_{c,i}

\rho _{c}(x)=\sum_{i=0}^{15}a_{c,i}max(x-t_{c,i},0)(7)

参数M,a,t,b,b'与其他网络参数一起学习。M被初始化为同一性,并且a,t,b和b'被初始化,使得每个\rho_{c}是[0,1]上的同一性映射,这是避免学习简并g所必需的。图7显示了使用此学习导向的影响,图6显示了为相应任务学习的颜色转换矩阵和色调曲线的示例。

3.4.2 Assembling the final output

虽然从整个图像的尺度来看图像算子可能很复杂,但最近的研究表明,即使是复杂的图像处理流水线也可以精确地建模为简单局部变换的集合[Chen et al 2016年 Gharbi等2015年; He和Sun 2015]。因此,我们将我们的最终输出O_{c}的每个通道建模为全分辨率特征的一个组合,其中系数由切片特征图\bar{A}的通道定义:

O_{c}[x,y]=\bar{A}_{n_{\phi }+(n_{\phi}+1)c}+\sum_{c'=0}^{n_{\phi}-1}\bar{A}_{c'+(n_{\phi}+1)c}[x,y]\phi_{c'}[x,y](8)

类似于此的插值仿射变换已成功用于消光[Levin et al 2008],内在图像分解[Bousseau et al 2009年]和时间转移[Shih et al 2013]。 对于这样的模型,仿射模型适合的补丁的大小推动了效率和质量之间的权衡。在极端情况下,通过在每个像素处拟合独立模型(即,贴片尺寸为1×1),总是可以实现任何操作者的完美重建。对于小块(例如,3×3),仿射模型可以忠实地再现许多图像算子。随着补丁越来越大,仿射关系不再适用于除了琐碎的算子之外的所有人,尽管其他人已经证明使用分段线性函数[Yuan and Sun 2011]或非线性和边缘感知组件可以减轻这种限制[Gharbi et人。2015年]。参见图8,可以看到对应于图2中输入/输出对的仿射系数A的3D双边网格。切片后的2D系数的12个通道之一也可以在图2中看到。

3.5 Training procedure

我们在给定运算符的全分辨率输入/输出对的数据集D={(I_{i},O_{i})}_{i}上训练我们的网络。我们通过最小化此训练集上的L2损失来优化权重和偏差:

L=\frac{1}{|D|}\sum_{i}||I_{i}-O_{i}||^{2}(9)

我们另外将权重调整为L_{2}权重衰减10^{-8}。卷积和完全连接层的权重根据[He et al 2015],偏差初始化为0。我们在每对中间特征图之间使用批量归一化[Ioffe和Szegedy 2015],并使用ADAM求解器[Kingma and Ba 2015]优化网络参数。我们训练的批量大小为4到16(取决于分辨率),学习率为10-4。ADAM中的其余参数保持为作者建议的值。我们的模型在Tensor流程中实现[Abadi et al 2015]和Halide [RaganKelley等 2012]。对于所有实验,模型在NVIDIA Titan X(Maxwell)上训练30个时期,通常需要2-3个天。

4 RESULTS

我们评估了模型重现算法图像算子(第4.1节)和人工注释润饰(第4.2节)的能力。我们的模型比标准神经网络和最先进的滤波器近似技术更快,并且可以在移动设备上实时运行(第4.3节)。

我们可以在图14中看到我们关于不同任务的结果。我们的输出通常是准确的,即使它与实际情况不同,它仍然是合理的。尽管我们的方法固有的空间和双边下采样很重,但图像伪像是罕见且无可非议的。这是因为双边网格的边缘性质以及我们的模型学习平滑输出变换的能力。我们的输出通常稍微柔和一些(例如,在图14的HDR +示例中),因为最高频率变换(如锐化和色度像差的校正)可能会引入输入中不存在的新边缘,而我们的模型无法处理。

4.1 Reproducing image operators

我们在由编程定义的图像运算符组成的几个任务上评估模型的准确性:

HDR + [Hasino ff et al 2016]  - 复杂的手工设计摄影管道,包括色彩校正,自动曝光,去雾和色调映射。

局部拉普拉斯滤波器[Paris et al。 2011]  - 边缘保留,用于细节增强的多尺度(但非尺度不变)算子(我们使用两种不同的强度来实现),

[Aubry等人的风格转移任务2014](恰好基于本地拉普拉斯算子),

使用标记面部数据集的面部增亮任务[Jain and Learned-Miller 2010],

几个不同的黑盒Adobe Photoshop(PS)过滤器和用户创建的“动作”。

使用我们的模型和基线方法进行这些任务的PSNR可以见表2。

我们使用样式转移任务的两种变体。在第一个变体(Style Transfer)中,我们学习将任何新输入转换为独特的固定样式。 在第二个更具挑战性的变体(nStyles Transfer)中,我们调整网络以获取两个输入图像(沿其通道轴连接)并预测将一个图像的样式传输到另一个图像的结果(再次使用Aubry等人的算法)[2014])。在该变体中,网络不学习预测单个一致输出; 而是,它学会从目标图像中提取所需的变换并将该变换应用于输入图像。

4.1.1 Datasets

除了HDR +和面部增亮数据集之外,所有的效果都应用于麻省理工学院“FiveK”数据集的未处理集合[Bychkovsky et al 2011]。我们保留了500张图像用于验证和测试,并对其余的4500进行训练。我们使用随机裁剪,翻转和旋转来增加数据。我们通过MIT“FiveK”数据集中的每个图像映射到100个不同的图像(样式目标)来生成n-Style转移的数据集。

4.1.2 Baseline

以前与我们的目标最接近的工作是双边引导上采样(BGU)[Chen et al 2016]和Transform Recipes(TR)[Gharbi等2015]我们比较我们的产出。然而,虽然我们的技术从图像数据集中学习摄影操作,但BGU和TR不使用先前的训练,而是以在线方式将特别定制的模型用于输入/输出对。因此,BGU和TR需要直接访问图像操作,因为它们需要能够在图像上运行该图像操作(分别在设备上下采样或在服务器上完全分辨)。这使我们对这些基线的比较在某种程度上偏向于我们的技术,因为这些基线对可用内容做出了更多限制性假设,也无法从数据中学习近似图像操作的一般实例。无论如何,我们将这些技术的指标报告为一种“oracle”基线。

Transform Recipes假定移动设备将高度压缩(因此降级)的图像发送到服务器进行处理,并且将接收用于近似来自该服务器的图像变换的廉价“配方”。由于TR的客户端 - 服务器设置与本文的范围无关,因此我们在未压缩的全分辨率图像上运行模型(使用作者推荐的设置),从而提高输出质量并使TR基线尽可能具有竞争力。在该方法的预期用例中,图像质量通常降低3-5dB。

BGU假定在将模型拟合到低分辨率输入/输出对之前,图像运算符在输入的低分辨率版本上运行。我们无法以低分辨率运行HDR +滤波器,因此我们使用全分辨率输入/输出对,并通过下采样创建BGU的低分辨率输入。但是,我们按照正确的拉普拉斯算子和样式转换任务的步骤,我们有一个实现,并直接应用低分辨率的滤波器。对于这些非尺度不变的任务,我们的技术的优势变得更加清晰(图9)。

4.2 Learning from human annotations

我们还使用MIT-Adobe“FiveK”数据集评估人类注释的准确性[Bychkovsky等。表3中列出了我们与之前工作相比的表现。该任务测量我们的模型学习高度主观的图像操作的能力,这需要大量的学习和语义推理。我们报告了麻省理工学院“FiveK”数据集中5位摄影师(A,B,C,D,E)修饰的L * a * b *空间中的平均L2误差(越低越好),尽管之前的工作仅显示了结果 摄影师C [Hwang et al 2012; 严等人2016年]。 我们使用[Hwang et al中提供的“Random 250”和“High Variance 50”数据集分割2012],在测试集中分别有250个随机选择的图像和50个用户加权图像。

这是一项更加困难的任务,之前已经指出了摄影师修饰中的不一致[Yan et al 2016年]。例如,我们发现此数据集中的润色B更加自洽,并且我们的网络更容易学习。尽管如此,我们的模型,每个艺术家的修正分别训练,始终预测合理的调整,优于以前的工作。

4.3 Performance

我们在运行Android 7.1.1的Google Pixel手机上实施了我们的技术。我们的实现以40-50 Hz的频率实时处理取景器分辨率1920×1080图像。我们使用Camera2 API以YUV420格式提取8位预览帧。这些图像被下采样到256×256,转换为浮点RGB,然后馈入我们的网络。在网络产生其输出(仿射系数的双边网格)之后,我们将它们作为一组三个3D RGBA纹理传输到GPU,在那里将它们切片并应用于全分辨率输入以渲染最终处理的预览。 整体吞吐量低于20毫秒,在推理(CPU)上花费14毫秒,上传系数重叠1毫秒,在GPU上渲染18毫秒。作为比较点,运行局部拉普拉斯滤波器[Paris et al 2011]在同一设备上需要超过200毫秒。以降低的256×256分辨率运行相同的滤波器并应用具有相同网格尺寸的双向引导上采样需要17 ms(与我们的14 ms相比)但是会丢失一些滤波器的预期效果(图9)。我们的处理时间与输入尺寸呈线性关系,需要61毫秒才能处理1200万像素图像。虽然它通常具有更高的保真度,但Transform Recipes[Gharbi et al 2015]每张图像需要2.95秒,比实时取景器性能低近两个数量级。Mosty值得注意的是,Transform Recipes和双向引导上采样都不能应用从人体修饰或“黑盒子”操作(如Photoshop flters或HDR +)中学到的效果。

其他最近可用于此类学习的基于神经网络的架构也远非实时。在图10中,我们将我们的技术与U-Net架构进行了比较[Ronneberger et al 改编自Isola等人的2015],以及基于扩张卷积的线性网络[Yu和Koltun 2015]。我们在这些架构中探索了深度(层数,3到11)和宽度(浮点数,16到64)的几种设置,涵盖了各种速度和质量等级。对于U-Net,“深度”指的是下采样步骤的数量,“宽度”指的是第一卷积层中的通道(在每个下采样步骤中这些通道加倍,参见Isola等[Isola et al.2016] for 细节)。在扩张卷积网络中,“深度”是扩张卷积层的数量,“宽度”是每层中的通道数。我们的混合CPU / OpenGL技术比桌面CPU上的两种架构快2个数量级。在GPU(未示出)上,对于网络的正向传递,性能差距是相同的,但是数据传输成为我们方法的瓶颈。从端到端,我们的运行时间仍然快了一个数量级。此外,U-Net和扩张卷积都需要更多的内存,这使得它们不适合移动处理。对于这个基准测试,我们使用了3.5GHz的Intel Core i7-5930K,4核和Titan X(Maxwell)GPU。

我们探索了我们的架构的速度/质量权衡——局部拉普拉斯任务改变了几个参数:将网格d的深度从4改为16,网格的空间尺寸从8×8到32×32,并且加倍了 通道(与表1中报告的数字相比)。摘要可以在图11中找到。

4.4 Discussion and limitations

我们所有的结果都使用最简单的全分辨率特征\phi =I; 即,指南g和仿射回归目标都是输入图像的颜色通道(3.4节)。如果放宽实时渲染约束,可以通过从高分辨率图像中提取特征来扩展我们的模型。在图13中,我们展示了一个例子,其中\phi是3级高斯金字塔。然后双边网格包含3×12 = 36个仿射参数(每个标度12个)。因此,与表1中的数字相比,我们将网络中间特征的数量增加了三倍。这大致减慢了网络速度3-4倍,但在局部拉普拉斯(强)任务上提供了2 dB的质量提升。

我们还探索了使用我们的架构来学习超出图像增强的任务,如消光,着色,去雾和单眼深度预测。这些实验的成功有限,因为快速摄影校正所需的强大建模假设使我们的模型不适合于不同的任务,其输出不能轻易表达为输入图像的局部逐点变换(图12)。

5 CONCLUSION

我们引入了一种新的神经网络架构,可以在全分辨率图像上实时执行图像增强,同时仍能捕获高频效果。我们的模型使用成对的输入/输出图像进行训练,使其能够从某些算法的参考实现或人工调整中学习。通过在双边网格中执行大部分计算并通过预测局部仿射颜色变换,我们的模型能够在表达性和速度之间取得适当的平衡。为了构建这个模型,我们引入了两个新层:一个数据相关的查找,可以切片到双边网格,以及一个乘法运算,用于仿射变换。通过端到端的方式进行培训并以全分辨率优化我们的损耗函数(尽管我们的网络大部分都处于大幅降低的分辨率),我们的模型能够学习全分辨率和非尺度不变的效果。 我们的模型的准确性已经在各种不同的图像操作符,管道和主观的人类注释数据集上得到证明。

ACKNOWLEDGMENTS

我们感谢SIGGRAPH审稿人的建设性意见。特别感谢Marc Levoy的宝贵反馈。这项工作部分由丰田资助。

 

  • 2
    点赞
  • 0
    评论
  • 7
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值