Deep Colorization

原文:Deep Colorization

摘要

本文研究了将灰度图像转化为彩色图像时的着色问题。这是一个非常困难的问题,通常需要手动调整以实现无伪影质量。例如,它通常需要在灰度目标图像上用人类标记的彩色涂鸦或仔细选择彩色参考图像(例如,在灰度目标图像中捕获相同的场景)。与以前的方法不同,本文的目标是一种高质量的全自动着色方法。假设是一个完美的块匹配技术,使用一个超大规模的参考数据库(包含足够的彩色图像)是解决着色问题最可靠的方法。然而,在实践中,块匹配噪声会随着参考数据库的大小而增大。本文以最近在深度学习技术方面取得的成功为灵感,对大规模数据进行了令人惊叹的建模,并对彩色化问题进行了重新表述,从而直接使用深度学习技术。为了保证无伪影质量,提出了一种基于联合双边滤波的后处理方法。大量实验表明,我们的方法在质量和速度方面都优于最先进的算法。

1.介绍

图像着色为目标灰度图像的每个像素指定一种颜色。着色方法大致可分为两类:基于涂鸦的着色[10、13、16、20、25]和基于示例的着色[1、2、6、11、14、23]。基于涂鸦的方法通常需要用户大量的努力才能在目标灰度图像上提供相当多的涂鸦。因此,现在是时候假设一个灰度图像具有很好的结构,特别是对于新手用户。

为了减轻用户的负担,[23]提出了一种基于示例的方法,该方法后来被[1,11]进一步改进。基于实例的方法通常将颜色信息从相似的参考图像传输到目标灰度图像。然而,找到合适的参考图像对用户来说是一个障碍。[2,14]通过利用互联网上的图像数据简化这个问题,并提出过滤方案来选择合适的参考图像。然而,它们都有额外的限制。[14]要求参考图像和目标灰度图像之间的每个像素的配准具有精确的网络对象。因此,它仅限于具有刚性形状的对象(例如 地标)。[2]要求用户为前台对象提供语义文本标签和分割提示。在实践中,由于目标灰度图像可能包含多个复杂对象(如建筑物、汽车、树木、大象),因此很难获得手动分割提示。这些方法具有相同的局限性——它们的性能高度依赖于选定的参考图像。

针对这一局限性,提出了一种全自动着色方法。直观地说,一张相关图像不能在目标灰度图像中包含所有可能的场景。因此,[1,2,11,23]需要类似的参考图像。更可靠的解决方案是在一个巨大的参考图像数据库中定位最相似的图像补丁/像素,然后将颜色信息从匹配的补丁/像素传输到目标补丁/像素。但在实际应用中,采用大规模数据库时,匹配噪声太大。

最近,深度学习技术在大型数据建模方面取得了惊人的成功。它显示出了强大的学习能力,甚至在某种程度上胜过人类(如[7]),深度学习技术在各种计算机视觉和图像处理应用(包括图像分类[12]、行人检测[17,26]、图像处理等)中都非常有效。图像超分辨率[4]、照片调整[24]等。深度学习技术的成功促使我们探索其在我们环境中的潜在应用。本文将图像颜色化作为一个回归问题,并用深度神经网络来解决。一个包含各种对象(例如树、动物、建筑、海洋、山等)的参考图像的大型数据库用于训练神经网络。图1(b)给出了一些参考图像示例。虽然由于采用了大型数据库,训练速度很慢,但该学习模型可以直接用于目标灰度图像的有效着色。最先进的着色方法通常需要在目标图像和参考图像之间进行匹配,因此速度较慢。

最近已经证明,对图像的高层次理解对于低层次视觉问题非常有用(例如图像增强[24],边缘检测[27])。由于图像彩色化是典型的语义感知,我们提出了一种新的语义特征描述符,将语义感知融入到我们的彩色化模型中。

为了证明所提出方法的有效性,我们使用图1(b)中所示的不同类别的大量参考图像训练我们的深度神经网络。然后将学习的模型用于给图1(a)中的各种灰度图像着色。图1(c)中的着色结果表明了该方法的有效性和客观性。
​​​​
​​​​​​​​​​​​​​​​​​​​​​​​​​在这里插入图片描述

本文的主要贡献如下:

  1. 首次提出了基于深度学习的图像彩色化方法,并对各种场景进行了验证。
  2. 详细分析了信息量大、鉴别能力强的图像特征描述子,这是提出的图像彩色化方法成功实现的关键。

2.相关工作

本节简要概述了前面的着色方法。

基于涂鸦的着色 Levin等人[13]提出了一种有效的方法,要求用户在灰度目标图像上提供彩色涂鸦。然后,使用最小二乘优化将涂鸦上的颜色信息传播到目标图像的其余部分。Huang等人[10]开发一种自适应边缘检测算法,以减少区域边界周围的出血伪影。Yatziv等人[25]使用用户涂鸦的加权组合为像素上色。Qu等人[20]和Luan等人[16]利用纹理特征减少所需的涂鸦数量。

基于示例的着色 与基于涂鸦的着色方法不同,基于示例的方法将颜色信息从参考图像传输到目标灰度图像。基于示例的着色方法可以根据参考图像的来源进一步分为两类:

(1)使用用户提供的示例着色。这种类型的方法要求用户提供适当的参考图像。灵感来源于图像类比[8]和颜色转移技术[21],Welsh等人。[23]利用像素强度和邻域统计,在参考图像中找到一个相似的像素,然后将匹配像素的颜色转移到目标像素。后来在[11]中,通过考虑纹理特征对其进行了改进。Charpiat等人[1]提出了一种全局优化的像素着色算法。古普塔。[6]开发基于超像素的彩色化方法,提高空间相干性。这些方法都有一个限制,即着色质量严重依赖于用户提供的示例图像。然而,在示例图像上没有标准的标准,因此查找合适的参考图像是一项困难的任务。

(2)使用Web提供的示例着色。为了减轻用户寻找合适图像的负担,Liu等人[14]和Chia等人[2]利用互联网上的海量图像数据。Liu等人[14]使用从互联网上收集的一组类似参考图像来计算固有图像。该方法对目标图像和参考图像之间的光照差异具有鲁棒性,但它要求图像包含相同的对象/场景,以便在参考图像和目标灰度图像之间精确地进行逐像素配准。它无法对参考图像和目标图像中的动态因素(如人、车)进行着色,因为在计算固有图像时排除了这些因素。因此,它仅限于静态场景和具有刚性形状的对象/场景(例如 著名的地标)。Chia等人[2]提出一个图像过滤器框架,从收集的互联网图像中提取合适的参考图像。它要求用户提供语义文本标签,以便在互联网上搜索合适的参考图像,并为前景对象提供人类分割提示。

与以前的着色方法相比,该方法是完全自动的,它利用了来自不同类别(如动物、户外、室内)的大量参考图像和各种对象(如树、人、熊猫、汽车等)。

3.我们的度量标准

图2概述了所提出的着色方法。与其他基于学习的方法类似,该方法有两个主要步骤:(1)使用一组大的示例参考图像训练神经网络;(2)使用学习的神经网络对目标灰度图像进行着色。这两个步骤分别总结在算法1和2中。
在这里插入图片描述
图2.概述了所提出的着色方法和所采用的深度神经网络的结构。特征描述符将在每个像素处提取,并作为神经网络的输入。每对神经元之间的每一个连接都与从一个大型参考图像数据库中学习到的权重相关。输出是对应像素的色度,可直接与亮度(灰度像素值)结合得到对应的颜色值。根据训练后的模型计算出的色度可能在低纹理区域周围有点嘈杂。联合双边滤波器(以输入灰度图像为导向)可以显著降低噪声。

在这里插入图片描述
在这里插入图片描述

3.1.图像着色的深度学习模型

本节将图像颜色化作为一个回归问题进行了公式化,并用常规的深度神经网络进行了求解。

3.1.1.方法
深层神经网络是一种通用的近似方法,可以表示任意复杂的连续函数[9]。给出一组范例 Λ = { G ⃗ , C ⃗ } \Lambda=\{\vec{G}, \vec{C}\} Λ={G ,C } ,其中 G ⃗ \vec{G} G 是灰度图像 C ⃗ \vec{C} C 是对应的彩色图像,我们的方法是基于一个前提:存在一个复杂的灰度到彩色映射函数 F \mathcal{F} F,可以将 G ⃗ \vec{G} G 中每一个像素提取的特征映射到 C ⃗ \vec{C} C 中相应的色度值。我们的目标是从 Λ \Lambda Λ学习这样一个映射函数,这样我们就可以使用 F \mathcal{F} F将一个新的灰色图像转换为彩色图像。在我们的模型中,我们使用了YUV颜色空间,因为这个颜色空间最小化了颜色空间三个坐标轴之间的相关性。对于 G ⃗ \vec{G} G 中的像素 p p p F \mathcal{F} F的输出只是 C ⃗ \vec{C} C 中对应像素的U和V通道, F \mathcal{F} F的输入是像素 p p p计算的特征描述符。3.2节详细介绍了特征描述符。我们将灰度到颜色的映射函数重新表述为 c p c_{p} cp = F ( Θ , x p ) =\mathcal{F}\left(\Theta, x_{p}\right) =F(Θ,xp),其中 x p x_{p} xp是在像素 p p p处提取的特征描述符, c p c_{p} cp是对应的色度值。 Θ \Theta Θ是要从 Λ \Lambda Λ中学习的映射函数 F \mathcal{F} F的参数。

我们解决了下面的最小二乘最小化问题来学习参数
argmin ⁡ Θ ⊆ Υ ∑ p = 1 n ∥ F ( Θ , x p ) − c p ∥ 2 \underset{\Theta \subseteq \Upsilon}{\operatorname{argmin}} \sum_{p=1}^{n}\left\|\mathcal{F}\left(\Theta, x_{p}\right)-c_{p}\right\|^{2} ΘΥargminp=1nF(Θ,xp)cp2
其中 n n n是从 Λ \Lambda Λ中取样的训练像素总数。并且 Υ \Upsilon Υ F ( Θ , x p ) \mathcal{F}\left(\Theta, x_{p}\right) F(Θ,xp)的函数空间。

3.1.2.结构

深度神经网络通常由一个输入层、多个隐藏层和一个输出层组成。每层可包含不同数量的神经元。在我们的模型中,输入层的神经元数量等于从灰度图像中每个像素位置提取的特征描述符的维数,输出层有两个神经元,分别输出相应颜色值的U和V通道。我们感性地将隐藏层中的神经元数量设置为输入层中神经元数量的一半。隐藏层或输出层中的每个神经元都与进行层中的所有神经元相连,并且每个连接都与一个权重相关。设 o j l o_{j}^{l} ojl表示第 l l l层第 j j j个神经元的输出。 o j l o_{j}^{l} ojl可以表示为i:
o j l = f ( w j 0 l b + ∑ i > 0 w j i l o i l − 1 ) o_{j}^{l}=f\left(w_{j 0}^{l} b+\sum_{i>0} w_{j i}^{l} o_{i}^{l-1}\right) ojl=f(wj0lb+i>0wjiloil1)
其中 w j i l w_{j i}^{l} wjil是第 l l l层第 j j j个神经元与 ( l − 1 ) t h (l-1)^{t h} (l1)th层第 i i i神经元之间联接的权重。b是持续输出值1的偏置神经元, f ( z ) f(z) f(z)是典型非线性的激活函数(例如tanh、sigmoid、relu[12])。输出层神经元的输出只是前一层神经元输出的加权组合。在我们的方法中,我们使用relu[12]作为激活函数,因为它可以加速训练过程的收敛。我们的神经网络结构如图2所示。

3.2.特征描述符

特征设计是实现彩色化的关键。有大量可能会影响训练模型的有效性(例如,筛选、表面、加布、位置、强度直方图等)的候选图像特征。我们进行了大量的实验来测试各种特征,并且只保留对着色结果有实际影响的特征。我们将采用的特性分为低、中、高级别特性。让 x p L x_{p}^{L} xpL x p M x_{p}^{M} xpM x p H x_{p}^{H} xpH表示从像素位置 p p p提取的不同级别的特征描述符,我们将这些特征连接起来构造我们的特征描述符 x p = { x p L ; x p M ; x p H } x_{p}=\left\{x_{p}^{L} ; x_{p}^{M} ; x_{p}^{H}\right\} xp={xpL;xpM;xpH}。采用的图像特征将在以下章节中详细讨论。

3.2.1.Low-level patch feature

直观地说,在一幅彩色图像中,存在着太多亮度相同但色度相当不同的像素,因此仅使用亮度值来表示一个像素远远不够。在实践中,不同的像素通常有不同的相邻点,使用以像素 p p p为中心的块更容易区分灰度图像中的像素 p p p和其他像素。让 x p x_{p} xp表示包含以 p p p为中心的7×7块的连续灰度值的数组, x p x_{p} xp在我们的框架中用作低级特征描述符。当用于图像着色时,此功能在低纹理区域比传统特征(如SIFT和DAISY)执行得更好。图3显示了Patch特性对模型的影响。请注意,当Patch特征丢失时,我们的模型将对语义区域内的强度变化不敏感(例如,图3(b)中为整个海洋区域指定了一种颜色)。
在这里插入图片描述
图3.块功能评估。(a)是目标灰度图像。(b)删除低级块特征,(c)包括所有提出的特征。

3.2.2.Mid-level DAISY feature

DAISY是一个用于密集匹配的快速局部描述符[22]。与底层块特征不同,DAISY可以对局部块进行更准确的识别描述,从而提高复杂场景下的着色质量。DAISY描述符在灰度图像的像素位置 p p p处计算,并表示为 x p M x_{p}^{M} xpM。图4展示了在一个精细结构对象上具有或不具有DAISY特性的性能,并与最先进的着色方法进行了比较。由此可见,在我们的模型中采用DAISY特征,使得复杂区域的着色结果更加详细和准确。但是,DAISY功能不适合匹配低纹理区域/对象,因此会降低这些区域周围的性能,如图4(c)所示。第3.2.5节将介绍后处理步骤,以减少瑕疵,结果如图4(d)所示。此外,我们可以看到,我们的结果与Liu等人的结果相当。[14](这需要一个刚性形状的目标对象和相同的参考对象)和Chia等人 [2](这需要对前景对象进行手动分割和识别),尽管我们的方法是完全自动的。
在这里插入图片描述

3.2.3.高级语义特征

Patch和DAISY特征是表示像素相邻点的几何结构的低级和中级特征。现有的最先进的方法通常使用这些特征来匹配参考图像和目标图像之间的像素。近年来,图像的高层次特性在某些领域(例如 图像增强[24],边缘检测[27])。考虑到图像着色通常是一个语义感知过程,我们提取每个像素的语义特征来表示模型中的类别(如天空、海洋、动物)。

利用最新的场景分析算法[15]对每个像素进行分类标注,得到输入图像的语义映射。语义映射在区域边界周围不准确。因此,在原始灰度图像的引导下,使用有效的边缘保持滤波器[5]对其进行平滑处理。将在每个像素位置计算一个一维概率向量,其中N是对象类别的总数。每个元素都是当前像素属于相应类别的概率。该概率向量用作表示为 x H x^{H} xH的高级描述符。

图5显示,无论有没有语义特征,着色结果都可能发生显著变化。语义特征的采用可以显著减少匹配/训练的模糊性。例如,如果在AskyRegion内检测到像素,则只使用参考图像数据库中的yskycolorvalues。因此,在集成语义信息后,颜色化问题被简化,并且颜色化结果在视觉上更好,如图5所示。
在这里插入图片描述

3.2.4.全局特征

与以前的基于示例的方法不同,我们没有将全局图像特征(例如,gist、柱状图等)合并到我们的模型中。最先进的方法[2],[14]通常利用全局特征来构造图像过滤器,然后使用它自动从大图像集中选择类似的参考图像。但是,图像过滤器很可能会从目标图像中选择全局相同但语义不同的参考图像。当我们将全局特性合并到模型中时,它将产生一个不自然的着色结果,如图6所示。
在这里插入图片描述
3.2.5.色度优化

该方法采用了Patch特征和DAISY特征,希望利用Patch特征来描述低纹理简单区域,用DAISY来描述精细结构区域。但是,我们只是将这两个特性连接起来,而不是挖掘出更好的组合。这将导致潜在的伪影,尤其是在低纹理对象周围(如天空、海洋)。这是因为DAISY容易受到这些物体的伤害,并且呈现出负面的贡献。

使用联合双边滤波技术可以显著减少低纹理区域周围的伪影[19]。本文首先介绍了利用无噪声闪光图像去除无闪光图像的图像噪声。我们的问题是相似的,从训练的神经网络获得的色度值是噪声(从而导致可见伪影),而目标灰度图像是无噪声的。因此,为了保证无伪影质量,我们采用联合双边滤波,以目标灰度图像为指导,平滑/细化色度值(由经过训练的神经网络计算)。图7显示了色度精化前后的结果。请注意,大多数可见的瑕疵都可以成功删除。
在这里插入图片描述
图7.使用联合双边过滤的色度改进[19]。从(a)到(c):目标灰度图像,色度细化前后的着色结果。注意,(b)中的瑕疵成功地从(c)中移除。

3.3.与最先进的着色方法的区别

以前的算法[1,2,6,11,23]通常使用一个相似的参考图像或一组相似的参考图像,从中将颜色值传输到目标灰度图像。[6]是最先进的基于示例的方法,因为它在性能和应用范围方面优于其他方法。然而,它的性能很大程度上取决于如图10所示的给定参考图像。[6]使用包含相同对象的参考图像作为目标灰度图像,可以获得非常好的着色效果。

但是,当参考图像与目标图像不同时,其性能相当低,如图10(h)-(i)所示。为了减少对适当参考图像的高度依赖,我们的方法使用了一个大型参考图像数据库。它从数据库中“找到”最相似的像素,并“传输”其颜色到目标像素。这就是我们的方法对不同灰度目标图像具有鲁棒性的原因。
在这里插入图片描述
图10.Gupta等人对适当参考图像的高度依赖。〔6〕。(a)是输入的灰度图像。(b)是从提出的方法获得的颜色图像,视觉上更准确。(c)是(a)的基本事实。(d)是[6]的第一个参考图像。它的场景与(a)相似。(e)是第二个参考图像。它在语义上不同于(a)。(f)是与(a)完全不同的最后一个参考图像。从[6]W.R.T.获得的彩色图像,(d)-(f)中的参考图像分别以(g)-(i)表示。根据上色结果计算出的PSNR值和上色图像下的地面真实度。

直观地说,一个参考图像不能包含目标灰度图像中像素的所有适当对应关系。这就是为什么[6]的性能高度依赖于合适的参考图像。如图11所示,使用两个相似的参考图像可以提高它们的着色效果。但是,当参考图像包含多个对象(例如门、窗、建筑等)时,尽管某些参考图像与目标类似,但它们的着色结果将变得不自然。这是因为在特征匹配(参考图像和目标图像之间)中存在大量的噪声。例如,我们注意到图10(a)中的草地与图11(e)中的墙匹配,天空与图11(f)中的建筑匹配。

实验表明,深度学习技术非常适合于大型参考图像数据库。深度神经网络有助于结合像素的各种特征并计算相应的色度值。此外,最先进的方法非常缓慢,因为它们必须从大量候选中找到最相似的像素(或超级像素)。相比之下,深度神经网络是为海量数据量身定做的。虽然神经网络的训练速度很慢,尤其是当数据库很大时,使用经过训练的神经网络对256×256灰度图像进行着色在matlab中只需要4.9秒。
在这里插入图片描述
图11.Gupta等人[6]对多个参考图像进行了研究。目标灰度图像与图10(a)相同。(a)-(c)是不同的参考图像,(d)-(f)是相应的着色结果。请注意,当使用足够多的类似参考图像时,可以获得最佳性能。

4.实验结果

所提出的彩色化神经网络是对来自太阳数据库[18]的2688张图像进行训练的。每个图像被分割成若干个对象区域,共使用47个对象类别(例如建筑、汽车、海洋等)。神经网络有一个输入层、三个隐藏层和一个输出层。根据我们的实验,使用更多的隐藏层不能进一步提高着色效果。在每个像素位置提取49维(7×7)面片特征、32维雏菊特征[22](4个位置和8个方向)和47维语义特征。因此,在输入层总共有128个神经元。本文将隐层神经元的数目设置为输入层神经元的一半,输出层神经元的2个(对应于色度值)。

图8将我们的着色结果与最先进的着色方法进行了比较[1、6、11、23]。当使用“最佳”参考图像(例如,包含与目标灰度图像相同的对象)时,这些着色方法的性能非常高,如[1、6、11、23]所示。但是,当参考图像仅与目标灰度图像相似时,性能可能会显著下降。由于使用了如图1(b)所示的大型参考图像数据库,因此所提出的方法没有这种限制。
在这里插入图片描述
图8.与最先进的着色方法进行比较[1,6,11,23]。(c)-(f)使用(g)作为参考图像,而建议的方法采用一个大的参考图像数据集。参考图像包含与目标灰度图像相似的对象(例如,道路、树木、建筑、汽车)。结果表明,在参考图像非“最优”的情况下,现有的着色方法的性能低于所提出的着色方法。使用平均移位算法[3]计算[11]使用的分割遮罩。在彩色图像下,给出了由彩色化结果和地面真值计算得到的PSNR值。

为了测试样本大小对模型的影响,我们使用不同大小的样本来训练我们的DNN,然后对1344张灰度图像进行着色。让我们来表示我们的训练集。样品尺寸用δ=尺寸(ψ)表示。如图12所示,我们可以看到更多的样本将导致更精确的着色结果。
在这里插入图片描述
图12。样品大小对着色结果的影响。(a)和(b)表示了使用不同样品尺寸的PSNR的平均值和分布。(b)中的黄色、蓝色和绿色曲线分别表示对数(δ)分别为7.6、8.6和11.6时的psnr分布。

图9显示了从建议的方法中获得的更多关于地面真彩色图像的着色结果。图9表明,在使用所述方法生成的彩色图像中几乎没有可见的伪影,并且这些图像在视觉上与地面真值非常相似。
在这里插入图片描述
图9.与实际情况比较。第一行显示来自不同类别的输入灰度图像。第二行给出了从该方法得到的着色结果。最后一行给出了相应的地面真值彩色图像,并给出了彩色图像下根据着色结果和地面真值计算出的PSNR值。

5.限制

所提出的着色是全自动的,因此通常比传统的方法更为可靠。然而,它依赖于机器学习技术,并有其自身的局限性。例如,它应该在一个包含所有可能对象的大型参考图像数据库上进行训练。这在实践中是不可能的。例如,当前模型是在真实图像上训练的,因此对合成图像无效。它还可以恢复由于颜色到灰度转换而丢失的颜色信息。然而,这是对所有状态的实时着色方法的限制。图13显示了两个故障案例。
在这里插入图片描述

结束语

本文提出了一种新的全自动着色方法,利用深度神经网络将用户的工作量和对示例彩色图像的依赖性降到最低。提取信息性但有区别的特征,包括补丁特征、雏菊特征和新闻信息特征,并作为神经网络的输入。通过联合双边滤波进一步细化输出色度值,保证无伪影着色质量。大量实验表明,我们的方法在质量和速度方面都优于最先进的算法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值