深度学习白平衡编辑
摘要
在本文中,我们介绍了一种用于用户引导的白平衡编辑的新颖深度学习方法。我们的方法允许用户将给定的 sRGB 图像的白平衡调整到任何期望的照明条件。这与传统方法不同,传统方法设计用于仅校正白平衡至中性照明(即日光)。为了实现这一点,我们提出了使用卷积神经网络(CNN)从输入-输出图像对中学习映射函数。我们的网络在一个新的大规模数据集上进行训练,该数据集包含超过65,000张使用不同相机设置渲染的图像。我们展示了我们的方法在定量和定性结果方面均优于最先进的方法。此外,我们展示了我们的方法在编辑给定图像的白平衡至不同照明条件方面的灵活性,这在多个应用中非常有用,如照片编辑和图像合成。
- 简介及相关工作
白平衡(WB)是应用于所有相机图像的基础低层次计算机视觉任务。执行白平衡是为了确保场景中的对象在不同照明条件下拍摄时颜色保持一致。从概念上讲,白平衡旨在规范化捕捉场景的照明效果,使所有对象看起来就像是在理想的“白光”下拍摄的。白平衡是对相机板载集成信号处理器(ISP)处理的传感器未处理的原始RGB图像应用的第一个颜色操作步骤之一。在执行白平衡之后,ISP会应用许多其他颜色渲染步骤,进一步处理原始RGB图像至其最终的标准RGB(sRGB)编码。虽然白平衡的目标是规范化场景照明的效果,但ISP在其颜色渲染中通常会根据摄影偏好纳入美学考量。这些偏好并不总是符合白光假设,并且可以基于不同因素变化,例如文化偏好和场景内容。
大多数数码相机在拍摄图像时提供调整白平衡(WB)设置的选项。然而,一旦选择了白平衡设置并且图像被ISP完全处理成最终的sRGB编码,不访问原始未处理的raw-RGB图像就变得难以进行白平衡编辑[3]。如果白平衡设置错误,这个问题就变得更加困难,这会在最终的sRGB图像中产生强烈的色彩偏移。编辑sRGB图像的白平衡能力不仅在摄影方面有用,而且还可以对计算机视觉应用带来好处,例如物体识别、场景理解和颜色增强[2,6,19]。最近在[2]中的一项研究表明,使用错误的白平衡设置拍摄的图像产生了类似于对深度神经网络(DNN)模型的非针对性对抗性攻击的效果。
相机内白平衡程序 为了理解在sRGB图像中编辑白平衡的挑战,回顾一下相机是如何执行白平衡的会很有帮助。白平衡由ISP串行执行的两个步骤组成:(1) 以raw-RGB向量的形式估计相机传感器对场景照明的响应;(2) 用raw-RGB向量中相应通道的响应除以raw-RGB图像中的每个R/G/B颜色通道。估计照明向量的第一步构成了相机的自动白平衡(AWB)程序。照明估计是计算机视觉中一个研究得很好的话题——代表性的作品包括[1, 7–10, 14, 17, 18, 23, 28, 33]。除了AWB,大多数相机允许用户在预设的白平衡中手动选择,其中每个预设的raw-RGB向量由相机制造商确定。这些预设对应于常见的场景照明(例如,日光、阴影、白炽灯)。一旦定义了场景的照明raw-RGB向量,就会对每个颜色通道独立地应用简单的线性缩放来规范化照明。这种缩放操作是使用3x3对角矩阵进行的。然后,经过白平衡的raw-RGB图像会进一步通过相机特定的ISP步骤处理,这些步骤大多是非线性的,以渲染最终图像到一个输出引用的颜色空间——即sRGB颜色空间。这些非线性操作使得使用传统的对角校正来纠正由相机白平衡错误引起的强色偏的渲染图像变得困难[3]。
sRGB中的白平衡编辑 为了进行准确的拍摄后白平衡编辑,渲染的sRGB值应该被适当地逆转以获得相应的未处理的raw-RGB值,然后重新渲染。这只能通过精确的辐射度校准方法(例如,[12, 24, 34])来实现,这些方法计算出进行此类色彩去渲染所需的元数据。最近,Afifi等人[3]提出了一种直接校正拍摄时白平衡设置错误的sRGB图像的方法。这项工作提出了一个基于示例的框架,使用了一个包含超过65,000张由带有错误白平衡设置的软件相机流程渲染的sRGB图像的大型数据集。这些sRGB图像中的每一张都有一个用正确的白平衡设置渲染的相应sRGB图像。给定一个输入图像,他们的方法使用了KNN策略在他们的数据集中找到类似的图像,并计算了一个映射函数到相应的正确白平衡图像。[3]中的工作显示,从示例构建的这种计算的颜色映射在校正输入图像方面是有效的。后来,Afifi和Brown[2]扩展了他们的KNN思想,将一个正确的白平衡图像映射成看起来不正确,以此用于图像增强,用于训练深度神经网络。我们的工作受到[2,3]在直接编辑sRGB图像中的白平衡的努力的启发。然而,与[2, 3]中的KNN框架不同,我们将问题放在一个单一的深度学习框架中,可以完成两个任务——即白平衡校正和白平衡操控,如图1所示。
图1:上排:(A)-(C)是由相机的ISP在不同白平衡设置下生成的sRGB图像。 (A) 代表失败的自动白平衡的错误白平衡。 (B) 场景的正确自动白平衡。 (C) 相机手动预设的结果。 下排:(D)-(F) 是对sRGB图像 (A) 的白平衡进行拍摄后编辑的结果。 (D) 最近的KNN-WB校正方法的结果[3]。 (E) 我们对 (A) 中白平衡的校正结果。 (F) 我们的结果,产生与相机预设相对应的不同输出。
贡献 我们提出了一种新颖的深度学习框架,允许对sRGB图像进行逼真的拍摄后白平衡编辑。我们的框架包括一个单一的编码器网络,与三个针对以下白平衡设置的解码器相结合:(1) “正确”的自动白平衡设置;(2) 室内白平衡设置;(3) 室外白平衡设置。第一个解码器允许将错误白平衡的sRGB图像编辑为具有正确白平衡的图像。这对拍摄后白平衡校正任务很有用。额外的室内和室外解码器为用户提供了通过在两个输出之间混合来产生各种不同白平衡外观的能力。这支持摄影编辑任务来调整图像的审美白平衡属性。我们提供了广泛的实验来展示我们的方法对训练数据之外的图像具有良好的泛化能力,并且在两个任务上都达到了最先进的结果。
- 深度学习白平衡编辑
2.1. 问题表述
给定一个通过未知相机ISP以任意白平衡设置WB(in)渲染的sRGB图像IWB(in),我们的目标是编辑其颜色,使其看起来像是用目标白平衡设置WB(t)重新渲染的。正如第1节中提到的,如果原始未处理的raw-RGB图像可用,我们的任务可以准确完成。如果我们能够恢复未处理的raw-RGB值,我们可以将白平衡设置WB(in)更改为WB(t),然后使用基于软件的ISP将图像重新渲染回sRGB颜色空间。这个理想过程可以用以下方程描述:
其中 F : IWB(in) → DWB(in) 是一个未知的重构函数,它将相机渲染的sRGB图像I反转回其对应的应用了当前WB(in)设置的原始raw-RGB图像D,而 G : DWB(in) → IWB(t) 是一个未知的相机渲染函数,负责编辑白平衡设置并重新渲染最终图像。
这个公式 IWB(t) = G(F(IWB(in))) 描述了一个理想的白平衡编辑过程。在这个过程中,我们希望将一个给定的sRGB图像(以不正确的白平衡设置拍摄)转换成看起来像是用目标白平衡设置拍摄的图像。这个过程涉及两个主要步骤,由两个函数 F 和 G 表示:
F 函数: F 是一个重构函数,它的作用是将相机渲染的sRGB图像 IWB(in) 反转回其对应的原始raw-RGB图像 DWB(in)。这里的 IWB(in) 表示输入的sRGB图像,它是在当前的白平衡设置 WB(in) 下被相机渲染的。F 函数的目的是去除相机ISP(图像信号处理器)加入的渲染效果,以回到更原始、更接近场景实际捕捉内容的状态。
G 函数: 一旦获得了反转后的raw-RGB图像,G 函数接手操作。G 是一个相机渲染函数,负责将 DWB(in) 图像转换成目标白平衡设置 WB(t) 下的图像 IWB(t)。这一步骤实质上是重新渲染图像,但这次使用正确的或者期望的白平衡设置。
简而言之,这个公式描述的是一个两阶段过程:首先去除图像的原始白平衡设置(通过F),然后应用新的白平衡设置并重新渲染图像(通过 G)。这种方法在理论上可以允许我们对已经拍摄的图像进行准确的白平衡调整,即使原始raw-RGB图像不可用。
2.2 方法概述
我们的目标是建模 G (F (·)) 的功能,以生成 IWB(t)。我们首先分析 G 和 F 函数如何合作以产生 IWB(t)。从等式1中,我们看到函数 F 将输入图像 IWB(in) 转换成一个中间表示(即,捕获的白平衡设置下的原始RGB图像),而函数 G 接受这个中间表示并用目标白平衡设置渲染它,转换成sRGB颜色空间编码。由于ISP的渲染链应用的非线性,我们可以将 G 视为一个混合函数,它由一组子函数组成,每个子函数负责用特定的白平衡设置渲染中间表示。
我们的终极目标不是重构/重新渲染原始的 raw-RGB 值,而是生成具有目标白平衡设置 WB(t) 的最终 sRGB 图像。因此,我们可以将 G (F (·)) 的功能建模为一个编码器/解码器方案。我们的编码器 f 将输入图像转换成一个潜在表示,而我们的每个解码器 (g1, g2, ...) 生成具有不同白平衡设置的最终图像。类似于等式 1,我们可以将我们的框架表述如下:
其中 f : IWB(in) → Z,gt : Z → ˆIWB(t),Z 是原始输入图像 IWB(in) 的中间表示(即潜在表示)。我们的目标是使函数 f 和 gt 独立,以便用针对不同白平衡 y 的新函数 gy 替换 gt 时不需要对 f 进行任何修改,正如等式 1 中的情况。
在我们的工作中,我们针对三种不同的白平衡设置:(i) WB(A):自动白平衡(AWB)——代表拍摄图像场景的正确照明;(ii) WB(T):钨丝/白炽灯——代表室内照明的白平衡;以及(iii) WB(S):阴影——代表室外照明的白平衡。这导致了三个不同的解码器(gA、gT 和 gS),它们负责生成对应于自动白平衡、白炽灯白平衡和阴影白平衡的输出图像。
白炽灯和阴影白平衡特别是基于颜色属性选择的。这可以从它们的相关色温方面来理解。例如,白炽灯和阴影白平衡设置分别与2850开尔文(K)和7500K色温相关。这种广泛的照明色温范围考虑了令人愉悦的照明范围[26, 27]。此外,白炽灯和阴影之间宽泛的色温范围允许通过插值近似这个范围内色温的图像。这种插值过程的细节在第2.5节中解释。需要注意的是,自动白平衡模式没有固定的相关色温,因为它会根据输入图像的照明条件而变化。
2.3. 多解码器架构
我们的深度神经网络(DNN)架构的概览如图2所示。我们使用了U-Net架构[29],在编码器和解码器之间采用了多尺度跳跃连接。我们的框架包括两个主要单元:第一个是一个4级编码器单元,负责提取输入图像的多尺度潜在表示;第二个单元包括三个4级解码器。每个单元都有不同的瓶颈和转置卷积(conv)层。在我们的编码器和每个解码器的第一级,卷积层有24个通道。对于每个后续级别,通道数翻倍(即,第四级的每个卷积层有192个通道)。
图2:为sRGB白平衡编辑提出的多解码器框架。 (A) 我们提出的框架包括一个单一的编码器和多个解码器。训练过程以端到端的方式进行,使得每个解码器都能用特定的白平衡设置“重新渲染”给定的训练图块,包括自动白平衡(AWB)。在训练过程中,我们从 Rendered WB 数据集 [3] 中随机选择图像块。 (B) 给定一个测试图像,我们通过使用相应的训练过的解码器来产生目标白平衡设置。
我们可以把这个网络结构比作一个高科技的照相机滤镜工厂。这个工厂的目标是生产出能够自动调整照片颜色的滤镜,让照片看起来像是在完美的光线下拍摄的。
原料准备(训练补丁):
想象你有很多不同光线下拍摄的照片片段作为原料。这些是要输入到工厂中的,让机器学习如何修正它们。
加工处理(编码器):
照片片段首先进入一个加工流水线(编码器)。在这里,机器开始学习照片的特点,比如光线、阴影和颜色。每个加工步骤都会提取更多的信息,但同时减少原料的大小,这样更容易处理。
滤波和压缩(下采样):
在流水线中,一些特殊的机器(最大池化层)会进一步压缩这些片段,保留最重要的信息,比如哪里应该是亮的,哪里应该是暗的。
记忆细节(跳跃连接):
工厂有一个记忆系统,它记住在压缩过程中每个部分原来的样子。这样,在后面的步骤中,它可以使用这些信息来恢复照片的细节。
组装滤镜(自动白平衡解码器):
接下来,流水线开始重新组装照片片段,恢复它们的原始大小,同时使用之前的记忆(跳跃连接)来确保所有的细节都得到修正。
混合和匹配(深度级联):
在最后的组装步骤中,机器会混合压缩和未压缩的信息,确保滤镜既有全局的光线调整,也没有丢失细节。
成品出炉(输出):
最后,工厂生产出两种类型的滤镜:一个是自动调整的,一个是针对阴影光线调整的。这样,不管原始照片是在日光下还是阴影中拍摄的,都能用这些滤镜让它们看起来自然。
2.4 训练阶段
训练数据 我们采用由[3]制作的 Rendered WB 数据集来训练和验证我们的模型。这个数据集包括约65K张由不同相机模型渲染的sRGB图像,具有不同的白平衡设置,包括阴影和白炽灯设置。对于每张图像,还有一个用正确的白平衡设置渲染的对应真实图像(被认为是正确的自动白平衡结果)。这个数据集由两个子集组成:Set 1(由七种不同的数码单反相机拍摄的62,535张图像)和 Set 2(由一台数码单反相机和四部手机相机拍摄的2,881张图像)。第一组(即 Set 1)被[3]分为三个相等的部分。我们从 Set 1 的前两个部分随机选择了12,000张训练图像来训练我们的模型。对于每张训练图像,我们有三张用以下设置渲染的真实图像:(i) 正确的白平衡(标记为 AWB),(ii) 阴影白平衡,和 (iii) 白炽灯白平衡。Set 1 的最后一个部分(21,046张图像)用于测试。我们将这个部分称为 Set 1–Test。Set 2 的图像没有用于训练,整个集合用于测试。
数据增强 我们还通过渲染额外的1,029张 raw-RGB 图像来增强训练图像,这些图像与 Rendered WB 数据集 [3] 中包含的相同场景的图像相同,但具有随机的色温。在每个训练周期(epoch),我们从每张训练图像及其对应的每个解码器的真实图像中随机选择四个 128×128 的图块,并应用几何增强(旋转和翻转)作为额外的数据增强,以避免过拟合。
损失函数 我们训练我们的模型以最小化重构图块和真实图块之间的L1范数损失函数,
其中h和w表示图块的高度和宽度,p分别索引训练图块P和真实相机渲染图块C的每个像素。索引 i∈{A,T,S} 指的是三个目标白平衡设置。我们还研究了平方L2范数损失函数,发现这两种损失函数都适用于我们的任务。有关消融研究,请参见补充材料。
训练参数 我们使用 He 初始化 [20] 来初始化卷积层的权重。训练过程进行了165,000次迭代,使用自适应矩估计(Adam)优化器 [25],梯度移动平均的衰减率 β1 = 0.9,平方梯度移动平均的衰减率 β2 = 0.999。我们使用了10^−4的学习率,并在每25个周期将其减少0.5。每次迭代的小批量大小为32个训练图块。
2.5. 测试阶段
颜色映射程序 我们的DNN模型是一个全卷积网络,能够以原始尺寸处理输入图像,但要求尺寸是24的倍数,因为我们使用4级编码器/解码器,带有2×2最大池化和转置卷积层。然而,为了确保任何大小的输入图像都有一致的运行时间,我们将所有输入图像调整大小到最大尺寸为656像素。我们的DNN应用于这个调整大小的图像上,产生具有目标白平衡设置i∈{A,T,S}的图像IWB^(i)↓。
然后,我们计算重置输入和输出图像之间的颜色映射函数。[16, 21]中的工作评估了几种类型的多项式映射函数,并显示了它们实现非线性颜色映射的有效性。据此,我们计算了一个多项式映射矩阵M,它将ψ(IWBin)↓的值全局映射到我们生成的图像IWB^(i)↓的颜色上,其中ψ(⋅)是一个多项式核函数,将图像的RGB向量映射到更高的11维空间——有关不同核函数的评估,请参见补充材料。这个映射矩阵M可以用封闭形式的解来计算,如[2, 3]中所示。
一旦计算出M,我们就可以使用以下方程[3]在相同输入图像分辨率下获得最终结果:
我们注意到,另一种策略是直接计算颜色多项式映射矩阵[30]。我们进行了初步实验,发现直接估计多项式矩阵的稳健性不如先生成图像本身,然后再拟合一个全局多项式函数。原因是估计的多项式系数中的小错误可能导致明显的颜色错误(例如,超出色域值),而估计的图像中的小错误可以通过全局拟合得到改善。
通过用户操作编辑 我们的框架允许用户在三种可用的白平衡设置(即自动白平衡AWB、阴影白平衡Shade WB和白炽灯白平衡Incandescent WB)之间选择,以生成结果图像。使用阴影白平衡和白炽灯白平衡,用户可以根据色温将图像编辑为特定的白平衡设置,如下所述。为了产生一个新的目标白平衡设置的效果,其色温t不是由我们的解码器产生的,我们可以在我们生成的具有白炽灯和阴影白平衡设置的图像之间进行插值。我们发现简单的线性插值对于这个目的就足够了。这个操作由下面的方程描述:
其中,IWB^(T) 和IWB^(S) 分别是我们用白炽灯和阴影白平衡设置生成的图像,b是由给出的插值比率。图4展示了一个例子。
图4:除了我们的自动白平衡(AWB)校正之外,我们还训练我们的框架产生两种不同的色温(即,白炽灯和阴影白平衡设置)。我们在这些设置之间进行插值,以产生具有其他色温的图像。 (A) 输入图像。 (B) 插值过程。 (C) 最终结果。所示的输入图像取自MIT-Adobe FiveK数据集的渲染版本 [3, 11]。
- 结果
我们的方法针对两个不同的任务:拍摄后白平衡校正和将sRGB渲染图像操作到特定的白平衡色温。我们在这两项任务的几个不同数据集上都达到了最先进的结果。我们首先在第3.1节描述用于评估我们方法的数据集。然后,我们分别在第3.2节和第3.3节讨论我们的定量和定性结果。我们还进行了一个消融研究,以验证我们的问题表述和提出的框架。
3.1 数据集
如前所述,我们用 Rendered WB 数据集 [3] 中 Set 1 的两个分区随机选取的图像进行训练。对于测试,我们使用了 Set 1 的第三分区,称为 Set 1-Test,以及三个不属于训练部分的额外数据集。这些额外数据集中的两个如下:(1) Rendered WB 数据集的 Set 2 (2,881张图像) [3],以及 (2) Cube+ 数据集的 sRGB 渲染版本 (10,242张图像) [5]。数据集 (1) 和 (2) 用于评估自动白平衡校正任务。对于白平衡操作任务,我们使用了渲染的 Cube+ 数据集和 (3) MIT-Adobe FiveK 数据集的渲染版本 (29,980张图像) [11]。这些数据集的渲染版本可以从与 [3] 相关的项目页面获取。这些后者的数据集代表了已被渲染到 sRGB 色彩空间的 raw-RGB 图像,具有不同的白平衡设置。这使我们能够评估我们模仿不同白平衡设置的能力如何。
3.2. 定量结果
对于这两项任务,我们采用了[3]中最新工作使用的相同评价指标。具体来说,我们使用以下指标来评估我们的结果:均方误差(MSE)、平均角度误差(MAE)和△E 2000 [32]。我们还在补充材料中报告了△E 76。对于每个评价指标,我们报告了误差的平均值、下四分位数(Q1)、中位数(Q2)和上四分位数(Q3)。
白平衡校正 我们将提出的方法与[3]中的KNN-WB方法进行了比较。我们还将我们的结果与使用最近的照明估计方法[9, 23]进行的传统白平衡对角线校正进行了比较。我们注意到,方法[9, 23]并不是为校正非线性sRGB图像而设计的。这些方法被包括在内,是因为通常认为当sRGB图像使用解码伽马“线性化”后,这些方法是有效的。
表1报告了每种方法得到的校正图像与相应真实图像之间的误差。表1展示了之前描述的Set 1-Test、Set 2和Cube+数据集的结果。这代表了我们的DNN模型未见的34,169张sRGB图像的总和,每张都是用不同的相机模型和白平衡设置渲染的。对于对角线校正结果,我们通过首先应用2.2伽马线性化[4, 15],然后在校正后应用伽马编码,对每个测试图像进行了预处理。我们在Set 1-Test上的结果与最先进的方法[3]相当。我们在所有评价指标上都达到了额外测试集(Set 2和Cube+)的最先进结果。
表1:使用 Rendered WB 数据集 [3] 和 Cube+ 数据集的渲染版本 [3,5] 的自动白平衡(AWB)结果。我们报告了均方误差(MSE)、平均角度误差(MAE)和△E 2000 [32]的平均值、第一四分位数(Q1)、第二四分位数(中位数,Q2)和第三四分位数(Q3)。对于所有基于对角线的方法,应用了伽马线性化 [4,15]。最顶部的结果用黄色和粗体表示。
白平衡操控 这项任务的目标是改变输入图像的颜色,使其看起来像是使用目标白平衡设置渲染的。我们将我们的结果与最近的工作[2]中提出的KNN-WB仿真器进行比较,该仿真器在sRGB空间模仿白平衡效果。我们使用了KNN-WB仿真器产生的相同白平衡设置。具体来说,我们选择了以下目标白平衡设置:白炽灯(2850K)、荧光灯(3800K)、日光(5500K)、多云(6500K)和阴影(7500K)。由于我们的解码器只被训练来生成白炽灯和阴影白平衡设置,我们使用了等式5来产生其他白平衡设置(即,荧光灯、日光和多云白平衡设置)。表2展示了使用我们的方法和KNN-WB仿真器得到的结果。表2表明,我们的方法在所有评估指标上都优于KNN-WB仿真器[2],这是在使用不同相机模型和白平衡设置拍摄的总共40,222张测试图像上得出的结果。
表2:使用 Cube+ 数据集的渲染版本 [3, 5] 和 MIT-Adobe FiveK 数据集的渲染版本 [3, 11] 进行白平衡操控的结果。我们报告了均方误差(MSE)、平均角度误差(MAE)和 △E 2000 [32] 的平均值、第一四分位数(Q1)、第二四分位数(中位数,Q2)和第三四分位数(Q3)。最顶部的结果用黄色和粗体表示。
均方误差 (MSE):
MSE 衡量了预测值与真实值之间的差异的平方的平均值。在图像处理中,它可以用来衡量修正或处理后的图像与真实(或期望)图像之间的差异大小。
对于白平衡校正,较低的MSE值意味着修正后的图像在像素级别上更接近真实图像,显示了较高的颜色准确性。
平均角度误差 (MAE):
MAE 衡量了图像色彩向量之间的平均角度差异。这是一种评估颜色偏差的方法,与颜色空间的欧氏距离不同,它考虑了颜色方向的改变。
在白平衡应用中,较低的MAE值表明修正后的图像在颜色方向上与真实图像更一致,从而更准确地反映了正确的颜色平衡。
△E 2000:
△E 2000 是一种颜色差异评估方法,它考虑了人眼对颜色差异的感知。△E 2000是以更符合人类视觉感知的方式改进早期的△E公式而来的。
使用△E 2000作为评估指标可以帮助评价修正后的图像与期望图像之间的视觉感知差异。较低的△E 2000值表示颜色的视觉差异较小,即颜色修正效果较好,更符合人眼的视觉感知。
平均值:
平均值是所有数据点的总和除以数据点数量。它提供了数据集中值的一个中心点,是最常用的衡量中心趋势的指标。
在评估图像处理效果时,平均值可以帮助我们了解误差或差异的一般水平。
第一四分位数(Q1):
Q1是所有数值中排在25%位置的数,表示了数据集中较低端的分布情况。换句话说,25%的数据点小于或等于第一四分位数。
计算Q1可以帮助我们了解数据分布的下限,即在最佳情况下性能如何。
第二四分位数(中位数,Q2):
中位数是将数据集从小到大排列后位于中间位置的数值。如果数据点总数是奇数,则中位数是中间的数值;如果是偶数,则是中间两个数值的平均值。
中位数比平均值更不受极端值(异常值)的影响,能更真实地反映数据的中心趋势。
第三四分位数(Q3):
Q3是所有数值中排在75%位置的数,表示了数据集中较高端的分布情况。换句话说,75%的数据点小于或等于第三四分位数。
计算Q3可以帮助我们了解数据分布的上限,即在最差情况下性能如何。
3.3. 定性结果
在图5和图6中,我们提供了我们的结果与最新提出的白平衡校正[3,9]和白平衡操控[2]工作的视觉比较。在每个示例的顶部,我们展示了结果图像与相应真实图像(即,使用目标设置由相机渲染的)之间的△E 2000误差。很明显,我们的结果具有较低的△E 2000,且与真实图像最为相似。
图7展示了我们结果的额外示例。如所示,我们的框架接受具有任意白平衡设置的输入图像,并将它们重新渲染为目标白平衡设置,包括自动白平衡校正。
我们使用从互联网上获取的多张图像测试了我们的方法,以检查其泛化到通常在线找到的图像的能力。图8和图9展示了示例。如所示,即使输入图像具有强烈的色偏,我们的方法与其他方法和商业软件包进行照片编辑相比,也能产生引人注目的结果。我们在补充材料中提供了更多示例。
图5:自动白平衡校正的定性比较。 (A) 输入图像。 (B) quasi-U CC [9]的结果。 (C) KNN-WB [3]的结果。 (D) 我们的结果。 (E) 真实图像。所示输入图像取自 Rendered WB 数据集 [3] 和 Cube+ 数据集的渲染版本 [3, 5]。
图6:白平衡操控的定性比较。(A) 输入图像。(B) KNN-WB仿真器[2]的结果。(C) 我们的结果。(D) 使用目标白平衡设置的真实相机渲染图像。在此图中,目标白平衡设置包括白炽灯、日光、阴影和荧光。所展示的输入图像取自MIT-Adobe FiveK数据集的渲染版本[3, 11]。
图7:我们方法的定性结果。(A) 输入图像。(B) 自动白平衡结果。(C) 白炽灯白平衡结果。(D) 荧光灯白平衡结果。(E) 阴影白平衡结果。所展示的输入图像是从MIT-Adobe FiveK数据集[11]渲染的。
图8:(A) 输入图像。 (B) quasi-U CC [9]的结果。 (C) KNN-WB [3]的结果。 (D)-(F) 我们的深度白平衡编辑结果。照片版权:Duncan Yoyos Flickr–CC BY-NC 2.0。
3.4. 与普通U-Net的比较
如前所述,我们的框架使用单一编码器来编码输入图像,而每个解码器负责产生特定的白平衡设置。我们的架构旨在模仿相机如何从同一张原始RGB捕获的图像产生不同白平衡设置下的颜色。
直观上,我们可以使用多U-Net架构[29]重新实现我们的框架,使得每个编码器/解码器模型将针对白平衡设置的单一目标进行训练。
在表3中,我们提供了我们提出的框架与普通U-Net模型之间的比较。我们训练我们提出的架构和三个U-Net模型(每个U-Net模型针对我们的一个白平衡设置)进行了88,000次迭代。结果验证了我们的设计,并明显显示我们的共享编码器不仅减少了所需的参数数量,而且还提供了更好的结果。
表3:我们框架和传统U-Net架构[29]获得的均方误差和△E 2000 [32]的平均值。展示了在Rendered WB数据集[3]的Set 2上进行自动白平衡(AWB)和在Cube+数据集[3, 5]的渲染版本上进行白平衡(WB)操控的结果。最好的结果用黄色和粗体表示。
- 结论
我们提出了一个深度学习框架,用于编辑sRGB相机渲染图像的白平衡(WB)。具体来说,我们提出了一种深度神经网络(DNN)架构,使用单一编码器和多个解码器,这些解码器以端到端的方式进行训练。我们的框架允许直接校正拍摄时白平衡设置错误的图像。此外,我们的框架产生的输出图像允许用户手动调整sRGB图像,使其看起来像是在广泛的白平衡色温范围内渲染的。定量和定性结果展示了我们的框架相比最近的数据驱动方法的有效性。
参考文献
[1] Mahmoud Afifi and Michael S Brown. Sensor-independent illumination estimation for dnn models. In BMVC, 2019. 2
[2] Mahmoud Afifi and Michael S Brown. What else can fool deep learning? Addressing color constancy errors on deep neural network performance. In ICCV, 2019. 2, 5, 6, 7, 8
[3] Mahmoud Afifi, Brian Price, Scott Cohen, and Michael S Brown. When color constancy goes wrong: Correcting improperly white-balanced images. In CVPR, 2019. 1, 2, 3, 4, 5, 6, 7, 8
[4] Matthew Anderson, Ricardo Motta, Srinivasan Chandrasekar, and Michael Stokes. Proposal for a standard default color space for the Internet - sRGB. In Color and Imaging Conference, pages 238–245, 1996. 6, 7
[5] Nikola Bani´c and Sven Lonˇcari´c. Unsupervised learning for color constancy. arXiv preprint arXiv:1712.00436, 2017. 5, 6, 8
[6] Kobus Barnard, Vlad Cardei, and Brian Funt. A comparison of computational color constancy algorithms: Methodology and experiments with synthesized data. IEEE Transactions on Image Processing, 11(9):972–984, 2002. 2
[7] Jonathan T Barron. Convolutional color constancy. In ICCV, 2015. 2
[8] Jonathan T Barron and Yun-Ta Tsai. Fast Fourier color constancy. In CVPR, 2017. 1, 2
[9] Simone Bianco and Claudio Cusano. Quasi-unsupervised color constancy. In CVPR, 2019. 2, 5, 6, 7
[10] Gershon Buchsbaum. A spatial processor model for object colour perception. Journal of the Franklin Institute, 310(1):1–26, 1980. 2
[11] Vladimir Bychkovsky, Sylvain Paris, Eric Chan, and Fr´edo Durand. Learning photographic global tonal adjustment with a database of input / output image pairs. In CVPR, 2011. 4, 6, 7, 8
[12] Ayan Chakrabarti, Ying Xiong, Baochen Sun, Trevor Darrell, Daneil Scharstein, Todd Zickler, and Kate Saenko. Modeling radiometric uncertainty for vision with tonemapped color images. IEEE Transactions on Pattern Analysis and Machine Intelligence, 36(11):2185–2198, 2014. 2
[13] Dongliang Cheng, Abdelrahman Kamel, Brian Price, Scott Cohen, and Michael S Brown. Two illuminant estimation and user correction preference. In CVPR, 2016. 1
[14] Dongliang Cheng, Dilip K Prasad, and Michael S Brown. Illuminant estimation for color constancy: Why spatialdomain methods work and the role of the color distribution. JOSA A, 31(5):1049–1058, 2014. 2
[15] Marc Ebner. Color Constancy, volume 6. John Wiley & Sons, 2007. 6, 7
[16] Graham D Finlayson, Michal Mackiewicz, and Anya Hurlbert. Color correction using root-polynomial regression. IEEE Transactions on Image Processing, 24(5):1460–1470, 2015. 5
[17] Graham D Finlayson and Elisabetta Trezzi. Shades of gray and colour constancy. In Color and Imaging Conference, 2004. 2
[18] Peter V Gehler, Carsten Rother, Andrew Blake, Tom Minka, and Toby Sharp. Bayesian color constancy revisited. In CVPR, 2008. 2
[19] Arjan Gijsenij, Theo Gevers, and Joost Van De Weijer. Computational color constancy: Survey and experiments. IEEE Transactions on Image Processing, 20(9):2475–2489, 2011. 2
[20] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In ICCV, 2015. 5
[21] Guowei Hong, M Ronnier Luo, and Peter A Rhodes. A study of digital camera colorimetric characterisation based on polynomial modelling. Color Research & Application, 26(1):76–84, 2001. 5
[22] Yuanming Hu, Hao He, Chenxi Xu, Baoyuan Wang, and Stephen Lin. Exposure: A white-box photo postprocessing framework. ACM Transactions on Graphics (TOG), 37(2):26:1–26:17, 2018. 1
[23] Yuanming Hu, Baoyuan Wang, and Stephen Lin. FC4: Fully convolutional color constancy with confidence-weighted pooling. In CVPR, 2017. 2, 6, 7
[24] Seon Joo Kim, Hai Ting Lin, Zheng Lu, Sabine S¨usstrunk, Stephen Lin, and Michael S Brown. A new in-camera imaging model for color computer vision and its application. IEEE Transactions on Pattern Analysis and Machine Intelligence, 34(12):2289–2302, 2012. 2
[25] Diederik P Kingma and Jimmy Ba. ADAM: A method for stochastic optimization. arXiv preprint arXiv:1412.6980, 2014. 5
[26] Arie Andries Kruithof. Tubular luminescence lamps for general illumination. Philips Technical Review, 6:65–96, 1941. 3
[27] Andrius Petrulis, Linas Petkeviˇcius, Pranciˇskus Vitta, Rimantas Vaicekauskas, and Art¯uras ˇZukauskas. Exploring preferred correlated color temperature in outdoor environments using a smart solid-state light engine. The Journal of the Illuminating Engineering Society, 14(2):95–106, 2018. 3
[28] Yanlin Qian, Joni-Kristian Kamarainen, Jarno Nikkanen, and Jiri Matas. On finding gray pixels. In CVPR, 2019. 2
[29] Olaf Ronneberger, Philipp Fischer, and Thomas Brox. UNet: Convolutional networks for biomedical image segmentation. In International Conference on Medical Image Computing and Computer-Assisted Intervention, 2015. 4, 8
[30] Eli Schwartz, Raja Giryes, and Alex M Bronstein. DeepISP: Toward learning an end-to-end image processing pipeline. IEEE Transactions on Image Processing, 28(2):912–923, 2018. 5
[31] Michael Scuello, Israel Abramov, James Gordon, and Steven Weintraub. Museum lighting: Why are some illuminants preferred? JOSA A, 21(2):306–311, 2004. 1
[32] Gaurav Sharma, Wencheng Wu, and Edul N Dalal. The CIEDE2000 color-difference formula: Implementation notes, supplementary test data, and mathematical observations. Color Research & Application, 30(1):21–30, 2005. 6, 8
[33] Wu Shi, Chen Change Loy, and Xiaoou Tang. Deep specialized network for illuminant estimation. In ECCV, 2016. 2
[34] Ying Xiong, Kate Saenko, Trevor Darrell, and Todd Zickler. From pixels to physics: Probabilistic color de-rendering. In CVPR, 2012. 2