输入灰度图,输出彩色图片。这个问题显然是欠约束的,所以以前的方法要么依赖于显著的用户交互,要么导致不饱和的着色。我们提出了一个全自动的方法,产生生动和逼真的色彩。我们通过将问题设置为分类任务来接受潜在的不确定性,并在训练时使用类重新平衡( class-rebalancing )来增加结果中颜色的多样性。
该系统被实现为一个CNN测试中的前向传播过程(The system is implemented as a feed-forward pass in a CNN at test time),并接受了超过一百万彩色图像的培训。我们使用“着色图灵测试”评估这个算法,要求人类参与者在生成的真彩色图像和地面真彩色图像之间进行选择。我们的方法在32%的试验中成功愚弄了人类,明显高于以前的方法。此外,我们还表明,彩色化可以作为一种跨通道编码器(cross-channel encoder),成为自监督特征学习的有力依据。这种方法可以在几个特性学习基准上获得最先进的性能。
一、介绍
过去的灰度图着色往往使用CNN,但是CNN的损失函数目的在于最小化预测值和真实值之间的欧式误差,它的预测结果可能有很高的不饱和性。
相反,我们使用一种针对着色问题的损失。我们在训练时重估损失,以强调特殊的颜色。这鼓励我们的模型充分开发它所训练的大规模数据的多样性。最后,我们利用分布的退火平均值(annealed-mean)进行了最终的着色。
我们还表明,我们的系统的颜色是足够真实的,可以使用现成的vgg网络,用于下游任务,特别是对象分类。
此外,我们还探讨了颜色化作为一种自我监督的表示学习形式,其中使用原始数据作为自己的监督来源。最近的工作已经探索了通过数据计算来进行特征学习,其中预测了完整数据的一个被保留的子集。
我们在这篇论文中的贡献有两个方面。
首先,我们通过
(A)设计一个适当的目标函数来处理图像着色的多模不确定性并捕捉到多种颜色,
(B)引入了一种新的彩色化算法测试框架,该框架可能适用于其他图像生成任务,以及
(C)通过对一百万张彩色照片进行训练,在任务上设置一个新的高水区标记。
其次,我们将彩色化任务作为一种具有竞争力和直截了当的方法来进行自我监督的表示学习,在几个基准上取得了最先进的结果。
1.1 彩色化的前期工作
彩色化算法在获取和处理灰度与颜色对应数据的方法上存在很大的差异。对于给定输入灰度图像,非参数方法首先定义一个或多个颜色参考图像(由用户提供或自动检索)作为源数据。然后,按照图像类比框架[17],将颜色从参考图像的类似区域[18,19,20,21]转移到输入图像上。另一方面,参数方法则在训练时从大量彩色图像数据中学习预测函数,使问题要么回归到连续颜色空间[22,1,2] ,要么量化颜色值的分类。我们的模型还学习分类颜色,但我们在实现颜色模型时,使用更大的模型,在更多的数据上进行训练,并且在损失函数和映射到最终的连续输出上都进行了一些创新。
1.2 彩色化并行工作
与此同时,有人( Larssonet al. [23] and Iizuka et al. [24])利用大规模数据和CNN开发了相似的系统。他们的CNN架构和损失函数与我们不同。我们用的是包涵再平衡稀有类的分类损失(we use a classification loss, with rebalanced rare classes),Larsson用的是非再平衡分类损失,I 用的是回归损失。在3.1节中,我们结合我们的体系结构比较了每种类型的损失函数的效果。
CNN结构也有所不同,L用的是VGG网络上的超列[25],I用的是将全局和本地特性融合在一起的两流体系结构。我们使用一个单流,vgg样式的网络,增加深度和膨胀的卷积。
以及,我们和L在ImageNet上训练的,I在Places上训练的。在3.1节中,我们提供了对Larsson等人的定量比较,并鼓励有兴趣的读者研究这两篇论文。
二、方法
我们训练CNN使用图2所示的体系结构,将灰度输入映射到量化颜色值输出的分布。我们的项目网页(http://richzhang.github.io/colorization/)的补充材料中描述了体系结构细节,并且该模型是公开的。在下面,我们重点讨论了目标函数的设计,以及从预测的颜色分布中推断出颜色的点估计。
2.1 目标函数
给定一个输入光通道X∈R^H×W×1,我们的目的是学习一个映射 F(X)到两个相关的彩色通道Y∈R^H×W×2,其中H,W是图像维数。
常用的损失函数是欧氏距离。
然而,这种损失对着色问题固有的模糊性和多模性是不可靠的。如果一个对象可以接受一些不同的ab值,欧几里德损失的最优解将是该集合的平均值。在颜色预测中,这种平均效果有利于灰色的、去饱和的结果。另外,如果可能的着色集是非凸的,则该解实际上将脱离集合,从而给出难以置信的结果。
相反,我们把这个问题作为多项式分类来处理。我们将ab输出空间量化到网格大小为10的回收箱中,并保持q=313值,这些值都是内切的,如图3(A)所示。对于给定的输入X,我们学习到一个映射 G(X)到可能的色 ∈[0,1]H×W×Q上的概率分布,其中Q是量化ab值的个数。为了比较预测值和真实值,我们定义将真实颜色Y转化为向量Z的函数,使用a soft-encoding scheme2。然后定义多项式交叉熵损失
其中v(·)是一个加权项,可用于根据颜色级别的稀缺性对损失进行再平衡,如下面第2.2节所定义的那样
最后,我们将概率分布映射到具有函数的颜色值,这将在第2.3节中进一步讨论。
2.2 类再平衡
在自然图像中ab值的分布强烈倾向于ab值较低的值,这是由于背景的出现,如云、路面、泥土和墙壁。
图3(B)显示了ab空间中像素的经验分布,这是从ImageNet[28]中的130万张训练图像中收集的。
可以看到,自然图像在去饱和值下的像素数比饱和值高出数量级。如果不考虑这些,损失函数主要受非饱和值的影响。我们通过像素颜色稀缺性重新加权每个像素在训练时的损失,从而解决了类平衡问题。这与训练空间重采样的典型方法[32]是渐近等价的。每个像素根据其最近的ab bin用因子w∈ 进行加权。
为了得到平滑的经验分布,我们从完整的ImageNet训练集中估计了量化ab空间中颜色的经验概率,并用高斯核Gσ平滑了颜色的分布。然后将该分布与加权λ∈[0,1]的均匀分布混合,取倒数,并将其归一化,使加权因子在期望条件下为1。我们发现 λ=0.5 和 σ=5 工作得很好。我们在3.1节中比较了有和没有类再平衡的结果
2.3 点估计的类概率
最后,我们定义了H,它将预测分布映射到ab空间中的点估计。一种选择是采用每个像素的预测分布模式,如图4中对两个示例图像的最右边列所示。这提供了一个充满活力但有时在空间上不一致的结果,例如,公共汽车上的红斑。另一方面,取预测分布的平均值产生空间一致但不饱和的结果(图4中最左边的列),表现出一种不自然的败坏的色调。这并不令人惊讶,因为在执行分类后取平均值与在回归框架中优化欧几里德损失的问题是相同的。为了达到这两个世界的最佳效果,我们通过重新调整Softmax分布的温度T来插值,并取结果的平均值。我们从模拟退火技术(the simulated annealing technique)[33]中得到启发,因此我们将这种操作称为退火-分布平均值:
设置T=1使分布保持不变,降低温度T会产生更强的峰值分布,而设置T→0会在分布模式下产生 one-hot 编码。我们发现温度T=0.38,如图4中列所示,在保持平均值的空间一致性的同时,捕捉到了振型的振动。
最终的系统F是一个在所有像素上产生预测分布的CNN G 和 产生最终预测的退火平均值 H 的一个结合。该系统并不完全可以进行端到端的训练,但是请注意,映射H是独立于每个像素上的,只有一个参数,并且可以作为CNN的前馈传递的一部分来实现。
三、实验
在3.1节中,我们评估算法的图形方面,评估我们的颜色的感知真实感,以及其他精确性的度量。我们将我们的完整算法与几个变体以及最近的[2]和并行工作[23]进行比较。在3.2节中,我们测试了颜色化作为一种自我监督表示学习的方法。最后,在10.1节中,我们展示了遗留黑白图像的定性示例。
3.1 评估着色质量
我们对来自ImageNet培训集[28]的130万张图像进行培训,对ImageNet验证集中的前10k图像进行验证,并对验证集中的10k图像进行测试,与[23]相同。我们在表1中显示了三种度量的定量结果。图5显示了对选定的成功和失败案例的定性比较。有关随机图片选择的比较,请参阅我们的项目网页。为了具体检验不同损失函数的效果,我们用不同的损失训练CNN。我们还与以前的[2]和并发方法[23]进行了比较,这两种方法都使用在ImageNet上受过训练的CNN以及朴素的基线:
1.我们的(全)
全方法和分类损失函数(等式2)
以及类再平衡。这个网络使用k-means从0开始训练,使用ADAM求解器进行大约450 k的迭代(初始学习速率为3×10^−5,在200 k和375 k迭代时分别降至10^−5和3×10^−6。.从0开始的其他模型遵循相似的训练方案)
2.我们的(类)
我们的有分类损失但没有类再平衡的网络
3.我们的(L2)
我们的网络使用从零开始的L2回归损失进行训练(在等式1中描述),遵循相同的训练协议。
4.我们的(L2,ft)
我们的网络使用L2回归损失进行训练,并通过我们的完全分类调整与再平衡网络进行微调。
5.Larsson [23]
一个同样出现在这些过程中的CNN方法。
6.Dahl [2]
基于VGG特征的Laplacian金字塔模型,用L2回归损失训练
7.Gray
用(a,b)=0表示每个像素的灰度
8.随机
从训练集中复制随机图像中的颜色。
评估合成图像的质量众所周知是一项困难的任务,因为简单的定量度量,如像素值的均方根误差,往往无法捕捉到视觉真实感。为了解决任何个人评价的缺点,我们测试了三种测量不同质量感的方法,如表1所示
(表1:[23]中使用的ImageNet验证集[28]中10k图像的着色结果。AUC指ab空间上累积误差分布曲线下的面积[22]。结果列2显示了该度量的类平衡变体。第三列是使用vgg-16[5]网络着色后的分类精度。第4栏显示了我们的AMT真实测试和假测试的结果(用引导[34]估计的平均值和标准误差报告)。请注意,生成地面真实图像的算法在预期的情况下将达到50%的性能。这里的所有指标都是越高越好。行引用不同的算法;有关每个算法的描述,请参见文本。)
1.感官现实性
对于许多应用程序,如图形中的应用,颜色化的最终测试标准是颜色对人类观察者的吸引力有多大。为了验证这一点,我们在Amazon Mechanical Turk (AMT)上进行了一个有真实和假两种强制选择的实验。实验参与者观察很多这样一对一对的图片。每对包括一张彩色照片,旁边是一个由我们的算法或基线产生的重新着色的版本。参与者被要求点击他们认为含有计算机程序生成的假颜色的照片。每个图像的分辨率为256×256,每个图像显示1秒,每对图像后,给参与者无限的响应时间。每个实验阶段包括10次练习试验(排除在后续分析之外),接着是40对测试对。在练习试验中,参与者被告知他们的答案是否正确。在后续的40对测试中没有给出任何反馈。每个会话一次只测试一个算法,参与者最多只能完成一个会话。共有40名参与者对每种算法进行了评估。确保所有算法都在等效条件下进行测试,所有的实验课程都同时发布,并以I.I.D的形式分发给Turkers。
为了检查参与者是否胜任这项任务,10%的试验将地面真相图像与上面描述的随机基线进行了对比。参与者在87%的时间里成功地识别出这些随机的颜色是假的,这表明他们理解了任务,并注意到了这一点。
图6给出了参与者在检测我们算法造成的细微错误方面的能力。最右边一列的样本对是参与者在100%的试验中成功地识别了假图像。每组至少有10名参与者得分。仔细检查发现,在这些图像上,我们的彩色往往伴随着一些别的东西,如两辆卡车上的黄色斑点,这破坏了本来良好的结果。
然而,我们的整个算法在32%的试验中欺骗了参与者,如表1所示。除了Larsson的算法跟我们的算法差异不明显以外,我们的算法相比其他算法(每例P<0.05))明显成功的欺骗了更多人。这些结果验证了使用分类损失和分类再平衡的有效性。
请注意,如果我们的算法准确地再现了完全真实的颜色,那么这个选择将会是在两个相同的图像之间进行的,参与者在预期的时间内会被愚弄50%。有趣的是,我们可以识别出参与者被愚弄的频率超过50%的案例,这表明我们的结果被认为比基本事实更现实。图6的前三列显示了一些示例。在许多情况下,地面真实图像是很差的白色平衡或有不寻常的颜色,而我们的系统产生了一个更典型的外观。
2.语义可解释性(VGG分类):
我们的方法是否能产生足够逼真的颜色,以便对现成的对象分类器进行解释?我们对此进行了测试,将我们的假彩色图像添加(feed)到VGG网络[5]中,该网络被训练用来从真实彩色照片中预测ImageNet类。如果分类器执行得很好,那就意味着颜色足够准确,足以提供有关对象类的信息。使用现成的分类器来评估合成数据的真实性,这是以前文献[12]提出的。
表1的右边第二列显示了这一结果,当彩色图被变成灰度图时,分类器的性能从68.3%下降到52.7%。用我们的方法着色后,性能提高到56.0%(我们算法的其他变形提高的更多)。Larssion的算法在这项指标上性能最好,达到了59.4%。作为参考,对灰度输入进行微调的vgg分类网络的性能达到了63.5%。
除了用作感知指标之外,此分析显示了我们的算法的实际应用:如果没有任何额外的培训或微调,我们可以提高灰度图分类的性能,只要用我们的算法对图像进行彩色化,并将它们传递给现成的分类器。
一句话,就是本来有个分类器,是在真实的彩色图像上训练的,现在让他在我们生成的图片上训练,看性能怎么样。如果性能好,说明我们的图像着色月以后的效果跟真实的图像差不多,即,着色着的挺好。
3.原始精度(AuC)
作为一种低水平检验,我们在ab颜色空间中计算 预测像素颜色 和 地面真实颜色 的距离在L2阈值之内 的百分比。然后,我们将阈值从0扫描到150,生成[22]中引入的累积质量函数,将曲线下的面积(AUC)积分,并将其归一化。注意,这个AUC度量了原始预测的准确性,而我们的方法的目标是可信度。(也就是说这种检测方法检测的是原始精度L2,但是我们的算法想达到的效果是可行度高,而不是原始精度高)。
我们的网络在没有再平衡的情况下进行分类训练,它的性能优于我们的L2变体(从零开始训练)。当L2网从颜色分类网络中精细调优时,它与分类网络的性能相匹配。这表明L2度量可以实现精确的着色,但很难从零开始进行优化。Larsson等人[23]方法取得了较高的精度。请注意,由于自然图像中ab值的分布(图3(B),这个度量由不饱和像素主导。因此,即使预测每个像素的灰度值性能也很好,我们使用类再平衡的完整方法达到了大致相同的分数。
另一方面,图像的值得关注的区域趋向于具有较高饱和值的ab值分布。因此,我们计算了一种AuC指标的类平衡变体,用颜色类概率对像素进行反向加权(方程4,设置λ=0)。在这个度量下,我们的整个方法超过了所有的变体算法和比较算法,表明在训练目标中的类再平衡达到了预期的效果。
3.2基于自监督特征学习的交叉信道编码
除了在彩色化图形任务上取得进展外,我们还评估了彩色化如何成为表征学习的借口任务( pretext task?)。我们的模型类似于自动编码器,除了输入和输出是不同的图像通道,这意味着跨通道编码器。
为了评估通过这种交叉编码学习到的特征表示,我们在我们的网络上运行了两组测试。首先,我们通过修正(v.) 学习的表示和 训练(v.)线性分类器,测试了特征的任务泛化能力,对已经看到的数据执行对象分类(图7)。其次,我们对PASCAL数据集[37]上的网络进行精细调整,以完成分类、检测和分割任务。除了测试被搁置的任务外,这组实验测试了在数据集泛化上学习到的表示形式。为了与以前的特征学习算法进行比较,我们使用我们的完整方法,进行了450 k迭代,在着色问题上重新训练了一个AlexNet [38] 网络。我们发现,与以前测试的方法(表2)相比,所得到的学习表示在对象分类和分割任务上获得了更高的性能。
。。。。。。
。。。。。。
3.3 传统黑白照片
由于我们的模型是使用从彩色照片中剥离ab通道生成的“假”灰度图像来训练的,所以我们也在真实的遗留黑白照片上运行我们的方法,如图8所示。(更多的结果可以在我们的项目网页上查看)。人们可以看到,我们的模型仍然能够产生良好的色彩,即使传统照片的低层次图像统计数据与它接受培训的现代照片的图像统计数据有很大的不同。
4.结论
虽然图像彩色化是一项精细的计算机图形任务,但它也是计算机视觉中一个难以预测像素问题的实例。在这里,我们已经表明,使用深度cnn和精心选择的目标函数,可以更易于产生与真实彩色照片无法区分的着色图片。我们的方法不仅提供了有用的图形输出,而且还可以作为表征学习的借口任务。虽然我们的网络只对颜色进行训练,但我们的网络学习到的表示对于对象分类、检测和分割来说是非常有用的,与其他自我监督的预训练方法相比性能优越。
附录重点
1.
着色问题不能简单地划分为低级、中级、高级;因为它需要 低级像素 和 语义 两方面的理解。
单个像素的亮度值可以高度限制该像素的可能颜色:较暗的亮度值往往与更饱和的颜色相关。但是这个表现的不好。
2.
如第2.1节所述,将颜色预测公式化为一个多项式分类问题,使系统能够预测多模态分布,并能够捕获自然物体颜色的固有模糊性。
3.
温度调整、软最大值、均值和双线性上采样都是作为前馈网络的后续层实现的。
有效膨胀是计算卷积核的连续元素相对于输入元素的间距。并通过累积步长和层膨胀的乘积来计算。