Conditional Sequential Modulationfor Efficient Global Image Retouching

本文提出了一种名为CSRNet的轻量级网络架构,用于高效全局照片修图。该网络基于多层感知器的原理,通过全局特征调制实现像素级别的修图操作。CSRNet包含基础网络和条件网络,基础网络使用1x1卷积处理每个像素,条件网络则提取全局特征生成条件向量。实验表明,这种方法在保持低参数量的同时,能够在照片修图任务中达到最佳性能。
摘要由CSDN通过智能技术生成

Abstract.

照片修图是为了提高存在曝光过度/不足、对比度差、饱和度不协调等摄影缺陷的图像的视觉质量。实际上,照片修饰可以通过一系列图像处理操作来完成。在这篇论文中,我们研究了一些常用的修图操作,并且在数学上发现这些与像素无关的操作可以用多层感知器(MLP)来近似或公式化。在此基础上,我们提出了一个轻量级的框架--条件顺序修饰网络(CSRNet),用于高效的全局图像修饰。CSRNet由基础网络和条件网络组成。基础网络的作用类似于独立处理每个像素的MLP,而条件网络提取输入图像的全局特征以生成条件向量。为了实现修图操作,我们使用全局特征调制(GFM)来调制中间特征,GFM的参数通过条件向量来转换。由于使用了1×1卷积,CSRNet仅包含不到37 k个可训练参数,比现有的基于学习的方法小了几个数量级。在MIT-Adobe FiveK基准数据集上的大量实验表明,该方法在定量和定性方面都达到了最佳性能.代码可从www.example.com获取https://github.com/hejingwenhejingwen/CSRNet

1 Introduction

照片修图通过一系列的图像处理操作,如亮度和对比度的改变,可以显著提高照片的视觉质量。手工修图需要专门的技能和培训,因此对临时用户来说是一个挑战。即使对于专业修图师来说,处理大量的收藏品也需要繁琐重复的编辑工作。这就提出了对自动照片修饰的需求。它可以装在智能手机上,帮助普通人获得视觉上赏心悦目的照片,也可以内置在照片编辑软件中,为专家提供编辑参考。

照片修图的目的是从低质量的输入产生高质量的图像。 最近的基于学习的方法往往把照片修图作为图像增强或图像对图像翻译的特例。 他们使用CNNs从输入/输出对中学习转换矩阵[10]或端到端映射[13,14,5]。 通常,照片修图调整全局色调,不改变高频分量(如边缘),而其他图像增强/翻译任务更侧重于局部模式,甚至会改变图像纹理。 而且,照片修图自然是一个顺序处理,可以分解成几个独立的简单操作。 此属性并不总是适用于图像增强和图像到图像的翻译问题。 由于大多数最先进的算法[10,23,5]不是专门用于照片修饰的,它们通常需要额外的参数(例如3×3卷积)来处理局部模式,这在很大程度上限制了它们的实现效率。 详细比较了不同的修图方法在相关的工作部分。 在实际场景中,大多数常用的操作(商业软件中的LUT、色调映射、图像增强操作)都是全局调整。 因此,在本文中,我们将重点放在“全局”照片修图上,而不考虑局部操作。

为了设计一种高效的照片修图算法,我们对文献[12,19]中采用的几种修图操作进行了研究,发现这些常用的修图操作(如对比度调整、色调映射)是与位置/像素无关的。 通过像素映射函数可以将输入像素映射到输出像素,而不需要局部图像特征。 我们进一步表明,这些像素级函数可以用多层感知器(MLPS)近似。 不同的调整操作可以共享相似的网络结构,但参数不同。 然后输入的图像可以通过一组神经网络进行顺序处理,产生最终的输出。

基于以上观察,我们提出了一个非常轻量级的网络--条件顺序修图网络(CSRNET)--用于快速全局照片修图。 其关键思想是在一个端到端的可训练网络中模拟顺序处理过程并隐式建模编辑操作。 该框架由基础网络和条件网络两个模块组成。 基网络采用全卷积结构。 而独特的特点是所有滤波器的大小为1×1,表明每个像素是独立处理的。 因此,基本网络可以被看作是单个像素的MLP。 为了实现修图操作,我们使用全局特征调制(GFM)对中间特征进行调制,其中的参数由条件网络控制。 条件网络产生条件向量,然后将其广播到基础网络的不同层用于特征调制。 这个过程就像是在MLP的不同阶段上操作的顺序编辑过程(参见图3)。 这两个模块是从人工调整的图像对中联合优化的。

所提出的网络结构非常简单,仅包含六个普通卷积层,没有任何复杂的构建块。 这样一个紧凑的网络可以在MIT-Adobe Fivek DataSet[2]上实现最先进的性能,参数小于37K--HDRNet[10]的1/13和DPE[5]的1/90(见图1和表1)。 我们还在各种环境下进行了广泛的烧蚀研究,包括尝试不同的手工制作的全局先验、网络结构和特征调制策略。

除了自动调整外,用户还可以根据自己的喜好控制输出样式。 即使是同样的风格,他们也可能想调整整体修图力度。 为了适应不同的用户口味,该方法在不改变基本网络的前提下,灵活地为不同的风格训练不同的条件网络。 对于相同的样式,我们在输入输出图像之间使用图像插值来实现强度控制。

我们的贡献是三倍的。 1. 我们提出了条件序列修图网络(CSRNET),用于高效的全局照片修图。 所提出的方法可以在小于37K的参数下获得最先进的性能。 2. 我们将颜色分解和顺序处理的思想结合在一个统一的CNN框架中,可以在没有中间监督的情况下学习隐式的分步修图操作。 3. 我们在各种修图风格之间实现了连续的输出效果。 我们发现图像插值可以实现不同风格图像之间的强度控制。

2 Related Work

我们简要回顾了图像修饰和增强的最新进展。 传统算法提出了各种提高图像视觉质量的操作和滤波器,如直方图均衡化、局部拉普拉斯算子[1]、快速双边滤波[7],以及基于灰度世界[8]或灰度边缘[22]假设的颜色校正方法。 自从Bychkovsky等人[2]收集了MIT-Adobe Fivek大规模数据集,其中包含输入和专家修饰的图像对,并开发了大量基于学习的增强算法来不断提高性能。 一般来说,这些基于学习的方法可以分为三大类:基于物理建模的方法、图像到图像转换的方法和强化学习的方法。 基于物理模型的方法试图估计所提出的物理模型或假设的中间参数,以用于图像增强。 基于色觉的Retinex理论[16],利用可学习模型估计反射率和照度,提出了几种用于图像曝光校正的算法[9,26,27,23]。 Gharbi等人假定增强后的输出图像可以表示为输入图像的局部逐点变换。 [10]将双侧网格[4]和双侧引导上采样模型[3]相结合,构造了一个CNN模型来预测双侧空间的仿射变换系数,用于实时图像增强。 第二类方法将图像增强处理为一个图像到图像的转换问题,直接学习输入和增强图像之间的端到端映射,而不需要建模中间参数。 伊格纳托夫等人。 探索了利用残差卷积神经网络[13]和弱监督生成对抗网络[14]将普通照片转换为DSLR质量的图像。 陈等人[5]利用了一种改进的双向生成对抗网络(GAN),该网络可以以非对学习的方式进行训练。 图像修图采用强化学习,目的是显式模拟逐步修图过程。 胡等人[12]提出了一个白盒照片后处理框架,它学习根据图像的当前状态做出决定。 朴等人[19]将颜色增强问题转化为马尔可夫决策过程(MDP),其中每个动作被定义为全局颜色调整操作,并由深度Q-网络选择[18]。

3 Method

该方法的目标是以较低的计算量实现快速的图像自动修图。 首先,我们分析了几种常用的修图操作,并获得了重要的见解。 在此基础上,我们提出了一个框架--条件序贯修图网络(CSRNET)。 然后从两个角度阐述了CSRNET的内在工作机制。 最后,我们描述了如何实现不同的修图风格和控制整体增强强度。

3.1 Analysis of Retouching Operations

图像润饰是通过一系列图像处理操作来完成的,如对亮度/对比度的操纵、对各颜色通道的调整、对饱和度/色调/色调的控制等。 我们从数学上发现,这些与像素无关的操作可以用多层感知器来近似或表述。 下面我们展示了两个例子。

Global brightness change.

给定输入图像I,全局亮度被描述为其亮度图的平均值:Iy=0.299*IR+0.587*IG+0.114*IB,其中Ir、Ig、Ib分别表示RGB通道。 调整亮度的一个简单方法是为每个像素乘一个标量:

Contrast adjustment.

其他操作,如白平衡、饱和度控制、色调映射等,也可以看作是MLPS。 (请参阅补充材料。)讨论。 我们已经表明上面的修图操作与经典的MLPS是等价的。 并且对一个像素的操作与相邻像素无关。 这就是为什么我们可以使用对角矩阵作为MLP权重。 一些操作,如对比度调整,也需要全局信息(例如,图像均值),这些信息可以由另一个条件网络提供。 如图2(a)所示,上述为输入图像设计的MLPS可以被看作是在单个像素上工作的MLPS,这些像素可以进一步表示为1×1卷积。 MLPCONV[17]和SRCNN[6]揭示了MLP与1×1卷积之间的相关性。 根据以上分析,我们提出了一个可理解的、专门的高效照片修图框架。

3.2 Conditional Sequential Retouching Network

建议的框架包含一个基础网络和一个条件网络,如图2(b)所示。 基础网络以低质量图像为输入,生成修图图像。 条件网络从输入图像中估计全局先验信息,然后通过全局特征调制操作影响基网络。

3.2.1 Network Structure

Base network.

基本网络采用N层和N-1个RELU激活的全卷积结构。 基础网络的一个独特的特点是所有的滤波器大小都是1×1,这表明输入图像中的每个像素都是独立操作的。 因此,基本网络可以被看作是一个MLP,它独立地在每个像素上工作,并在输入图像上滑动,如[17]所示。 基于3.1节的分析,从理论上讲,基本网络具有处理所有与像素无关的修图操作的能力。 此外,由于所有滤波器的大小都是1×1,网络的参数非常少。

Condition network.

全局信息/先验信息对图像修饰是不可缺少的。 例如,对比度调整要求图像的平均亮度。 为了使基础网络能够结合全局先验信息,提出了一个条件网络来与基础网络协作。 条件网络就像一个包含三个模块的编码器,其中包括一系列卷积层、RELU层和下行采样层。 条件网络的输出是一个条件向量,它将使用下面的全局特征调制广播到基础网络中。 网络细节见第4节和图2(b)。

3.2.2 Global Feature Modulation

我们的CSRNET采用缩放和移位操作来调制基础网络的中间特征。 首先,我们重新讨论了实例归一化的公式[21]:

,其中μ,β是特征映射的均值和标准差,xi,γ,β是仿射参数。 所提出的全局特征调制(GFM)只需要γ和β对特征映射Xi进行缩放和移位,而不需要对其进行归一化。 因此,GFM可表述为:

GFM也被实现到自适应特征修改层(ADAFM)[11],它可以写在下面的方程中:ADAFM(xi)=Gi*Xi+Bi,其中Gi和Bi是滤波器和偏置。 ADAFM的调制是基于局部区域而不是单个像素。 从另一个角度来看,GFM是ADAFM的特例,当滤波器GI的大小为1×1时。

3.2.3 Illustration

为了便于理解,我们从两个角度来说明CSRNET是如何工作的。 我们使用一个简单而标准的设置-n=3。

Pixel-level view.

我们将基本网络视为一个MLP,它在单个像素上工作,如图3(a)所示。 从这个角度出发,我们可以解释基本网络由三个完全连通的层组成,分别进行特征提取、非线性映射和重构。 如3.1节所示,这样的三层MLP能够近似于大多数图像修饰操作。 然后我们添加条件网络,看看这两个模块是如何集体工作的。 由于GFM相当于一个“乘+加”操作,因此可以很容易地将其合并到过滤器中。 然后条件网络可以调整基网络的滤波权值。 而对于最后一层,调制操作可以被建模为一个额外的层。 该层执行一对一映射,改变输出像素的平均强度和动态范围,就像亮度/对比度调整一样。 结合基础网络和条件网络,我们将获得不同的MLP为不同的输入图像,允许图像特定的照片修图。 为了支持这种像素级视图,我们进行了一个演示实验,使用所提出的框架模拟了几种修图操作的过程。 结果显示在补充材料中。

Space-level view.

我们也可以把中间特征看作颜色映射,而颜色空间的变换可以通过颜色映射的线性组合来实现(如RGB到YUV)。 具体地说,在RGB空间中初始化输入图像。 如图3(b)所示,基本网络的第一层和第二层将输入投射到高维颜色空间,最后一层将颜色映射转换回RGB空间。 GFM对中间特征进行线性变换,可以看作是对映射颜色空间的润色操作。 总之,基础网络进行颜色分解,条件网络生成编辑参数,GFM依次调整中间颜色图。

3.2.4 Discussion

在这一部分中,我们通过与其他现有方法的比较来说明CSRNET的优点。 首先,我们采用像素操作(1×1滤波器),这将保留边缘和纹理。 而基于GaN的方法[5,15]倾向于改变局部模式并生成不希望的伪影(参见图4,PIX2PIX)。 其次,我们采用全局调制策略,保持整个图像的颜色一致性。 虽然hdrnet[10]预测每个像素的变换系数,因此会导致颜色的突然变化(见图4,hdrnet)。 第三,我们使用一个统一的CNN框架和监督学习,它可以产生比基于RL的方法更高质量的图像[12,19](见图4,白盒和扭曲-恢复)。 然而,由于CSRNET是专门为全局照片修图而设计的,因此它不能像上述方法一样推广到其他任务(如风格转换、图像增强、非配对学习)。

3.2.5 Multiple Styles and Strength Control

照片修图是一个高度不适定的问题。 不同的摄影师可能对修图风格有不同的偏好。 我们的方法具有多种风格学习的灵活性。 一旦在特定的修图风格上训练了模型,我们只需对条件网络进行精细调整,就可以很容易地将模型转移到另一种修图风格,这比从头开始训练要快得多。 而其他方法都需要在新的数据集上重新训练整个模型。 一旦我们获得了一个图像的两个风格化版本,我们就可以使用“图像插值”来产生它们之间的中间风格。

其中I1(x,y)和I2(x,y)是两个要插值的图像,α是控制组合样式的系数。 除此之外,这种图像插值策略还允许我们控制整体修图强度。 例如,如果自动修图输出太亮,用户可能希望降低整体亮度。 这可以通过将i1设置为输入图像,i2设置为修图图像来实现。 我们可以改变α的值来控制修图强度。 如图6所示,我们可以在两个目标和两个输入图像之间实现连续的输出效果。 实现连续输出效果还有其他替代方案,如DNI[25]、ADAFM[11]和DynamicNet[20]。 对于像素操作,同一位置上的两幅图像中的像素是内容对齐的,因此像素混合可以有效地实现连续的图像效果。 如果存在局部操作,则混合还应考虑相邻像素。 由于照片修图仅由像素操作组成,最简单的图像插值已经足以达到令人满意的效果。

4 Experiments

Dataset and Metrics.

MIT-Adobe Fivek[2]是一个常用的照片修图数据集,包含5000张原始图像和由五位专家(A/B/C/D/E)制作的相应修图版本。 我们遵循前面的方法[12,5,23,10]来使用专家C的润色结果作为地面真值(GT)。 我们采用了与[12]4相同的预处理过程,所有的图像在长边缘调整到500px。 我们随机选取500幅图像进行测试,剩下的4500幅图像进行训练。 我们用PSNR、SSIM和CIE L*a*b空间5中的平均L2误差来评估性能。

Implementation Details.

基础网络包含3个卷积层,信道大小为64,核大小为1×1。 条件网络还包含信道大小为32的三个卷积层。 第一卷积层的核大小设置为7×7,以增加感受野,其他则为3×3。 每个卷积层以2的步幅向下采样到一半大小。 我们在条件网络的末端使用一个全局平均池层来获得一个32维的条件向量。 然后对条件向量进行全连通层变换,生成信道尺度和移位操作的参数。 总共有6个完全连接的层,用于3个缩放操作和3个移位操作。 在训练期间,小批量大小设置为1。 采用L1损耗作为损耗函数。 学习速率被初始化为10-4,并且每105次迭代衰减2倍。 所有实验都运行6×105次迭代。 我们使用PyTorch框架,在GTX2080TI GPU上对所有模型进行训练。 模型训练只需要5个小时。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值