Control Color:图像着色新SOTA!南洋理工大学最新

尽管现在有很多着色方法,但仍然存在一些限制,例如缺乏用户交互、局部着色不灵活、颜色渲染不自然、颜色变化不足以及颜色溢出。为了解决这些问题,今天给大家分享一篇很不错的工作:Control Color(CtrlColor)。这是一种多模态着色方法,利用预训练的Stable Diffusion(SD)模型,在高度可控的交互式图像着色方面具有很大潜力。虽然已经提出了几种基于扩散的方法,支持多模态着色仍然不容易。在这项研究中,目的在于解决无条件和有条件的图像着色(文本提示、笔划、示例)并在统一框架内解决颜色溢出和不正确的颜色。具体而言,本文提出了一种有效的方法来编码用户笔划,以实现精确的局部颜色调节,并采用了一种类似于示例的方法来约束颜色分布。除了接受文本提示作为条件外,这些设计还为本文的方法增添了多样性。除此之外还引入了一种基于自注意力和内容引导的可变形自编码器的新模块,以解决颜色溢出和颜色不准确的长期问题。广泛的比较表明,本文的模型在定性和定量上均优于最先进的图像着色方法。

介绍

图像着色旨在给灰度图像上色,从而增强了各个领域中的视觉吸引力,例如历史影像。手动着色是一种耗时的过程,严重依赖于着色师的偏好、经验、想象力和辛勤努力。尽管已经开发了许多自动着色方法,但它们仍然存在一定的缺点。这些包括色彩丰富度有限、色彩溢出、色彩扭曲以及某些区域着色不完整。此外,依赖用户提供条件的方法缺乏灵活性和精度。例如,这类方法不允许对特定区域进行选择性着色,也不允许使用笔划将颜色应用于特定目标。最近的图像着色技术,例如UniColor和iColoriT中的那些,提供了基于笔划的颜色控制,但受限于物体边界内的小正方形提示点。这需要更精确的提示放置,而且当着色小区域时可能会遇到严重的颜色溢出问题,或者无法根据笔划的颜色正确着色图像,如下图2所示。此外,由于这些方法仅仅是简单的设计,因此不利于区域着色,它们仅仅是将提示点的颜色扩展到相邻区域。

Stable Diffusion(SD)与ControlNet一起,最初是为了有条件的图像生成,似乎是图像着色的可行解决方案。虽然它能够根据灵活的条件生成多样化且高质量的图像,但它没有探索如何在统一框架内集成多个条件,而是依赖于单一的控制,如Canny边缘或分割图。此外,由于条件的高稀疏性和扩散过程中固有的随机性,它倾向于生成质量较低的结果,使其不适用于多模态图像着色任务。

为了解决上述挑战,本文提出了一种新颖的基于多模态扩散的着色框架,称为CtrlColor。该框架旨在统一各种着色任务,包括无条件、提示、笔划和示例为基础的图像着色,全部纳入一个框架内。CtrlColor利用了潜在扩散模型(即SD)中封装的丰富先验信息,该模型是在大规模图像数据集上训练的。这使得本文的方法在色彩丰富度和多样性方面明显优于先前的方法。

为了解决颜色溢出和不正确的颜色问题,在框架中引入了自注意力引导和内容引导的可变形自编码器。在没有任何训练的情况下,自注意力引导被添加到推理过程中,通过模糊分布区域外的注意力区域,并重新生成模糊区域的颜色分布,使其更加相似和和谐于其周围环境,从而解决小颜色溢出问题。为了处理由扩散模型低保真特性引起的更复杂和严重的颜色伪影,在SD自编码器的解码器中引入了可变形卷积层。在输入图像的内容的指导下,这些层约束变形的区域以使生成的颜色与输入纹理对齐,从而减少低色彩保真度的问题,即颜色溢出和不正确的颜色。

此外,本文提出了一种新方法,以实现基于笔划的着色。具体来说,是将提示点图、二进制mask和输入灰度图像的组合纳入SD模型中。提示点是使用笔划定位的。为了明确指示提示点的位置,引入了从提示点图派生的二进制mask。通过在去噪过程中将提示点编码到潜在空间中,控制了去噪后的颜色分布。这使用户能够灵活地使用任意笔划修改图像的颜色,从而实现对特定局部区域的修改。

在这项研究中,下图1中的结果预览,展示了本文方法的多样化应用。该方法为实现高度可控的图像着色提供了多功能且有效的解决方案,实现了图像着色的色彩丰富度、稳定性和视觉质量方面的最新性能。本文还提供了一个视频演示,展示了一个交互式界面,演示了多模态着色和局部可控性。

本文的主要贡献如下:

  • 提出了一种基于新颖扩散模型的框架Ctrl-Color,实现了高度可控的多模态着色。本文的框架支持基于提示、基于笔划、基于示例以及这些条件的局部和全局着色的组合。

  • 本文的方法通过采用无需训练的自注意力引导和学习的内容引导可变形自编码器来解决颜色溢出问题。

  • 引入了一种新方法,通过将笔划的位置和颜色编码到扩散过程中,以局部和精确地控制颜色。

  • 除了克服预训练SD模型的低保真度之外,本文的方法还利用了其优势,与先前的方法相比,产生的彩色图像具有更丰富的颜色变化。

相关工作

无条件着色 无条件着色旨在自动给灰度图像上色。早期的尝试将着色制定为回归或分类任务。为了进一步用语义信息指导着色,将类标签、语义分割图或/和实例边界框纳入到着色网络中。最近的生成对抗网络(GAN)和Transformer也在着色方面展现出了良好的结果。DeOldify和ChromaGan直接优化基于GAN的网络,而前人则利用了预训练GAN的生成先验知识。受益于其长期感受野,Transformer架构被用来在像素空间或潜在空间中自回归地预测颜色标注。近期,[37]训练了一个从头开始的扩散模型,该模型以灰度图像为条件生成多样化的颜色。然而,对颜色提示的了解仍然限制在有限的着色训练数据中,这阻碍了其生成更生动颜色的能力。

有条件着色 有条件着色将用户控件添加到着色过程中。根据输入模态,可以将其分为三种类型:基于笔划的着色、基于示例的着色和基于提示的着色。先前的基于笔划的着色工作依赖于相似度度量,例如空间偏移或通过神经网络学习,以将局部颜色提示传播到整个图像。最近的方法使用端到端传播框架。基于示例的着色工作主要使用预训练网络进行输入灰度图像和示例图像之间的特征匹配。[20]进一步通过仅将高匹配置信度的单元转换为提示点来调整匹配矩阵。基于提示的着色将文本描述作为指导来辅助着色,一个方向是围绕着融合文本和图像特征。特征级仿射变换和循环注意模型被提出。一些其他研究专注于解耦颜色和目标特征空间,以避免颜色-目标不匹配和颜色-目标耦合。更近期[5, 51]使用扩散先验来实现提示控制,但L-CAD的输出大小受限,而Diffusing Colors的结果遭受严重的颜色溢出问题。UniColor利用Transformer和VQGAN,是一项将所有三种条件统一表示为固定大小的单元区域中的提示点的开创性工作。然而,一个单元区域包含许多像素,可能具有多种颜色。仅用一个颜色来表示它们可能会导致不良结果,如颜色渗透。相比之下,本文的方法通过各种编码方法在潜在空间中操作不同的条件,并采用像素级的二进制mask来表示笔划,实现了高度精确和灵活的控制。

图像生成的扩散模型 扩散概率模型在图像生成方面已经显示出成功的结果,它被扩展到潜在空间和文本条件生成。GLIDE和Imagen使用预训练的视觉或/和语言模型如CLIP和T5,将文本输入编码成潜在向量。为了进一步增强对扩散模型的控制,一些方法利用输入mask、编码文本特征和将图像分解为基本控制组件。[53]提出了ControlNet,通过对任何现成的扩散模型的“可训练副本”进行微调,以控制扩散模型,例如人体关键点和用户涂鸦。然而,用灰度图像作为条件来训练ControlNet会生成与输入明显不同的图像,特别是在纹理和细节方面,这对着色来说是不可取的。

方法论

初步: LDM和ControlNet

扩散模型由前向和后向过程组成。在前向过程中,高斯噪声逐渐添加到输入图像中,在T步骤中产生一系列嘈杂的样本 。当T足够大时,逼近一个高斯分布。在后向过程中,使用一个去噪神经网络(通常以U-Net的形式)来从中恢复,如公式(1)所示。具体来说,在扩散反向过程中的每个时间步t中,给定潜在嘈杂的图像代码Xt,扩散模型将输出预测的噪声,其方差和注意力图,然后使用预测的噪声来获取,即在第t−1步的潜在嘈杂的图像代码。使用来修改在流线化的自注意力引导中。

其中 = 。

潜在扩散模型(LDM)。LDM 提出在潜在空间而不是像素空间中运行扩散过程,从而节省了计算成本。LDM引入了一个用于图像重建的自编码器模型。编码器E将输入图像编码成2D潜在空间z。解码器D然后从z中重建图像。因此,整个LDM框架包括一个去噪网络(U-Net)和一个自编码器。本文的设计针对这两个组件,如下图3所示。

整体损失可以表示为:

其中t表示扩散步骤,而是去噪网络。

ControlNet ControlNet在任务特定的数据集上使用LDM的“可训练副本”,除了文本条件y外,还有额外的输入条件,而“锁定副本”保留了预训练LDM的原始权重。通过这些设计,ControlNet实现了对生成图像内容的更多控制。然后整体的学习目标变为:

通过冻结预训练的LDM的参数,以实现有效的训练,成功地将生成先验从LDM转移到图像着色任务中。

Control Color框架

如前面图3所示,本文的方法由两个主要组件组成:1)图像着色潜在扩散模型,以实现多模态控制;2)内容引导的可变形自编码器和流线型自注意力引导,以处理颜色溢出和不正确的颜色问题。

无条件着色

在前面图3(左侧)中,首先将输入图像转换为Lab空间,并获取其L通道。然后,使用自编码器的编码器将L通道编码到潜在空间中,然后作为ControlNet的额外条件输入。输入的RGB图像也被编码并用作Stable Diffusion模型的输入。此操作使得训练的模型能够生成颜色接近输入灰度图像结构的彩色图像。

先前的方法在给定相应的L时预测ab通道。本文采用类似的策略,但仅在后处理中,以减轻扩散模型引入的小变形,同时保留生成的颜色特征。输出由自编码器的解码器重建,然后从RGB空间转换为Lab空间。用原始输入L通道替换重建的L通道,然后将得到的Lab图像转换回RGB空间以获得最终输出。此后处理确保最终输出与输入具有相同的内容。

有条件着色

基于上述的无条件着色,本文通过以下设计添加了多模态控制。

提示控制。与先前研究中采用的方法一致,本文的方法涉及最初使用CLIP文本编码器对文本提示进行编码。随后,通过交叉注意力层,将这些编码信息集成到U-Net架构的中间层中,这个过程在ControlNet和Stable Diffusion模型框架中都应用。利用交叉注意力机制使得本文的模型能够有效地解释和响应文本提示,确保对生成内容进行精确控制。

笔划控制。首先,将笔划直接叠加在L通道图像上,表示为提示图像,这样就可以得到笔划的颜色和位置。然后,从提示图像中派生出一个二进制mask。将输入图像和提示图像编码成潜在空间,以获得输入潜在特征 和提示潜在特征 ,对笔划mask进行最近邻降采样,将其降采样到 。然后,将它们连接成,并将它们馈送到去噪过程中的U-Net结构中。只将输入灰度潜在特征馈送到ControlNet组件中。目标函数则变为:

示例控制。对于基于示例的图像着色,添加了一个CLIP图像编码器,将示例编码成潜在特征,并将其馈送到交叉注意力块中。在训练过程中,模型的所有其他部分都是固定的,只有图像编码器被微调。由于基于示例的着色没有配对数据,采用上下文损失来约束生成结果的颜色分布,使其类似于示例的颜色分布。

这里 是预训练的VGG19模型的第 层, 是示例图像,而 是在扩散时间步骤 t 中预测的图像,由公式 (7) 给出。 是成对特征点的归一化余弦相似度 。 表示第 l 层特征之间的成对关系。参数 h 设置为 0.01, 对于 l = 5, 4, 3 分别设置为 8, 4, 2

此外,引入了一个灰度损失来约束生成结果的内容与输入图像相似。

这里 是由自编码器重新生成的输入图像,而 是在每个扩散时间步 t 中解码生成的结果,可以表示为:

这里 是原始的真值图像, 是时间步 t 的预测噪声, 是在扩散向前过程中图像在 t 时刻的潜在编码, 和 4Φ_d$ 是固定自编码器的编码器和解码器。用于训练基于示例的着色的最终损失函数可以表示为:

经验性地将设置为1000。

颜色溢出和不正确颜色处理

内容引导的可变形自编码器。为了处理大范围的颜色溢出和不正确的颜色区域,在自编码器的解码器中引入了内容引导的可变形卷积层,如前图3(右侧)所示。

具体来说,在自编码器的解码器的前三个卷积块之后添加了一个可变形卷积层。输入灰度图像首先被编码成潜在空间$z^{4× H/8 × W/8},使用固定的原始自编码器的编码器,然后被馈送到可变形卷积中作为引导。在训练过程中,只训练这三个额外的可变形卷积层。变形的彩色图像是由主模型随机生成的,使用不同类型的条件着色。损失函数是对前500个训练步骤的感知损失,以约束重建,而对于随后的步骤,则为感知损失+ 0.025×鉴别器损失。

在推理过程中,将原始自编码器的解码器替换为学习到的可变形解码器,并以与训练相同的方式将输入灰度图像作为其引导。在界面中,用户可以选择是否使用学习到的解码器。学习到的解码器倾向于在相同区域内对齐颜色,使其更相似。然而,用户可以选择不使用它以保持更大的灵活性。

流线型自注意力引导。受[18] 的启发,用于改善生成模型样本质量,在推理过程中引入了无需训练的引导,以处理小范围的颜色溢出,如前面图3(右下角)所示。这种精细的自注意力引导在推理过程中被使用,通过参考周围的颜色分布来模糊和重新预测小范围的溢出区域。

具体来说,使用以下步骤修改了预测的噪声 。注意力图是通过softmax计算的查询Q和键K在每个注意力块中的相似性映射。按照[18]的方法得到了退化预测 和注意力mask ,该mask 屏蔽了图像的大部分区域,除了显著的部分。

为了更好地保留原始的颜色分布,与[18] 不同,保留了退化的而没有添加额外的噪声,以保留更多未遮罩的颜色信息。具体来说,从公式 (9) 中获得 ',从公式 (11) 中获得修改后的 ′。然后对于 t ∈ [T, ts],使用公式 (11) 中的′替换 ,并输出新的预测 。这里总去噪步数 T 为 1000,经验性地将 ts 设置为 600。

其中 ⊙ 表示逐元素相乘,model 表示扩散模型,s 表示引导的比例。根据实验,将 s 设置为 0.05。在界面中提供了更改 s 的选项。

实验

实现

训练 使用了 PyTorch 在四个 NVIDIA RTX 3090Ti GPU 上实现了本方法。使用 AdamW 优化器,其中 = 0.9, = 0.999。学习率设置为 。训练模型进行了 80K 个全局steps,批量大小为 64。前 15K steps训练基于 Stable Diffusion v1.5,后续的 65K 个全局steps增加了如前面图 3 所示的 stroke 分支进行进一步的微调。与 Stable Diffusion一样,将输入图像调整大小为 512×512 并将其转换为 Lab 色彩空间,并将 L 通道作为输入条件。对于基于示例的着色,训练图像编码器进行了 100K 个全局steps。对于可变形卷积层的训练,进行了 9K 个全局steps。

为了使模型对颜色更加敏感,收集了一个包含 235 个常用英文描述颜色的词汇表进行过滤。在训练过程中,使用 BLIP自动生成所有标题。如果生成的标题不描述黑白图像(即不包含诸如“一张黑白照片· · ·”的短语),并包含与颜色相关的单词,将所有这些标题保留为输入。对于剩下的标题,随机将其中 60% 的标题设为空,用于训练无条件生成。

为了模拟用户的自发笔划以及示例中存在更多的提示,首先利用 Simple Linear Iterative Clustering (SLIC)来获取图像的超像素表示。然后对于每张图像,随机裁剪出 1 到 100 个矩形区域,这些区域的大小从 5 × 5 到 50 × 50 像素不等。这些区域有 20% 的概率对应于来自真值图像的局部区域,而其余 80% 的区域来自超像素表示。此外,对 20% 的提示图像和真值图像应用颜色抖动。其目的是引导本文的模型相信提示点,而不仅仅输出正常的颜色分布,而不管是否提供了提示。在这个阶段,提示图像始终是非空的,而提示输入始终为空,确保模型在基于提示的条件生成过程中仍然可以生成正常的着色图像。

推理。使用单个 NVIDIA RTX 3090Ti GPU 进行推理。由于扩散模型是在尺寸为 512 × 512 的图像上训练的,并且对分辨率敏感,将输入图像按比例调整为较短边为 512 像素,然后将其调整回原始大小,再替换 L 通道。

数据集

训练数据 对于无条件、基于提示和基于笔划的着色训练,使用 ImageNet 训练数据集并过滤出相对灰色的图像。具体而言,计算 RGB 图像每两个通道之间差异的方差的均值,表示为 ,并过滤出 低于阈值的图像。经验性地将阈值设置为12。

对于基于示例的着色训练,使用相同的 ImageNet 数据作为输入。目标是根据示例中语义上相似的目标对目标图像进行着色,所以利用 CLIP进行相应的示例检索。具体来说,首先使用预训练的 CLIP 图像编码器获得数据集中每个图像的特征,然后对于每个输入图像,遍历与其自身相同类别中所有其他图像的特征,计算给定图像特征与其他图像之间的余弦相似度,然后选择相似度最高的图像作为该图像的示例。

对于内容引导可变形卷积解码器的训练,从 ImageNet 训练数据集中随机选择 100K 张图像,并使用 30% 的基于示例的着色和 70% 的其他类型的着色方法来生成这些图像作为训练的变形彩色图像。

评估数据 对于无条件图像着色,按照 [23] 的做法,在整个 COCO-stuff 验证集上进行评估,并在 ImageNet 验证数据集的前 5k 张图像(即 )上进行评估,并按照 [27] 的做法,在 ImageNet ctest 数据集(10k 张图像)上进行评估,这是 ImageNet 验证集的另一个子集。

对于基于提示的图像着色,按照[46] 的做法,使用 COCO-Stuff 验证集 ,并仅保留标题中带有形容词的图像(2.4k 张图像)。

比较

为了公平比较,仅将本文的方法与保持输入和输出分辨率不变的最先进方法进行比较。对于图像着色,按照[20] 的做法,使用 Frechet Inception Distance (FID)和 colorfulness进行无条件和基于提示的着色评估。对于基于提示的方法,还使用 CLIP 分数来评估着色图像与 CLIP 潜在空间中文本描述之间的接近程度。

无条件着色比较 对于无条件着色,将本文的方法与两类最先进方法进行比较:1) 六种基于 CNN 的方法:CIC、UGColor、DeOldify、ChromaGAN、InstColor、ToVivid和 BigColor;2) 四种基于 Transformer 的方法:UniColor、DISCO、ColorFormer和DDColor。

对于定量比较,如下表 1 所示。

无条件着色在 colorfulness 方面达到了最先进的性能,但 FID 方面则没有。这表明无条件方法生成了更丰富多彩的结果,但颜色分布可能与 ImageNet 数据集不同,因为 SD 模型是在 LAION5B上预训练的,该数据集比 ImageNet 更加丰富多彩和高质量。但是加入来自 ImageNet 的提示后,本文的方法在 FID 方面可以达到最高性能,但 colorfulness 变低了。结果表明,通过提供一些合理的提示,本文的方法实现了最接近地面真相的颜色分布,显示了基于笔划的着色的有效性。这也表明,ImageNet 图像比模型中的颜色先验更少色彩。

下图4中展示了与最先进方法的视觉比较结果。虽然所比较的方法往往生成棕色和灰色调的图像,但本文的方法生成了生动逼真的颜色,并且较少出现颜色溢出现象。

基于笔划的着色比较 在下图5中比较了本文的方法、UniColor和 iColoriT在手动绘制笔划时的视觉效果。本文的方法可以在绘制目标之外生成生动而合理的颜色(例如,第一行中女孩拿着雨伞的图像)。

当笔划局部在一个小目标上时,本文的方法实现了局部着色而不改变全局色调(例如,第二行中男士领带上绘制的绿色笔划)。下图7中展示了更多基于笔划的着色结果。

基于提示的着色比较 将本文的方法与 UniColor进行比较。L-CAD 和 UniColor是仅有的两个具有公开代码的基于提示的着色方法,但是 L-CAD的输出尺寸为 256 × 256,所以为了公平起见不对其进行比较。

定量上,如下表2所示,本文的方法在 FID、色彩丰富度和 CLIP 分数方面均优于 UniColor,这表明本文的结果更接近于给定色彩描述的真实图像,并且与给定描述更好地对齐。

下图6中展示了视觉比较结果。本文的方法着色的图像具有更生动的颜色和更好的颜色一致性。

基于示例的着色展示 下图8中展示了一些视觉示例。本文的方法可以使输入图像的着色分布与示例相似,同时保持颜色逼真和视觉愉悦。

用户研究

由于着色算法主要应用于创意艺术和老照片修复领域,人类满意度始终是评价算法性能的更合理指标。这里进行了用户研究,进一步展示了本文方法的卓越性能。研究分为四个部分,分别对应于无条件、基于提示、基于笔划和基于示例的着色。每个部分包含 10 个问题。在每个问题中,参与者被要求在几种比较的方法中选择最佳图像。根据以下指标定义最佳图像:感知真实性(颜色溢出较少)、色彩丰富度、美感和对输入条件的忠实重建(如果可用)。选择了 DDColor、ToVivid、BigColor 和 UniColor 用于无条件着色,以及 UniColor 用于三种基于条件的着色。获得了 33 个无条件着色的有效回答和 41 个条件着色的有效回答。统计数据如下图10所示。本文的方法在所有其他方法中表现出色。

消融研究

笔划数量的影响。在 COCO-stuff 数据集上进行定量研究,随机选择 16×16 的单元区域。笔划的颜色来自于区域中超像素的平均值。如下表3 所示,笔划越多(反映在单元格数量上),着色图像越接近于真值图像,反映在 FID、PSNR、SSIM 和 LPIPS 值上。对于给定的笔划颜色,图像色彩丰富度与忠实的颜色重建之间存在权衡,因为更多的笔划区域意味着剩余空间较少,无法充分利用模型中丰富的颜色先验知识。

内容引导的可变形卷积层和简化的自注意力引导的有效性。 如下图9所示,在原始结果中,分割的目标着色错误,阴影也着色不正确,并且存在轻微的颜色溢出。例如,在第一行中,女人围巾的下部是白色的,但上部被着为蓝色;狗的脖子、腿和人的手臂存在小范围的着色错误或溢出。在第二行中,阴影被着色为红色,包上有溢出,帽子上存在不一致,帽沿为红色,而顶部为棕色。添加简化的自注意力引导后,小范围的溢出或着色错误得到了修正。此外,使用可变形解码器统一了相同目标的颜色,并纠正了大范围的着色错误。

结论

本文成功实现了高度可控的多模态图像着色。本文的方法基于预训练的 SD 模型,并引入了新的设计,如笔划控制和示例控制,这些设计提供了丰富的颜色选择和高用户互动性。通过内容引导的可变形卷积自编码器-解码器和简化的自注意力引导,有效地缓解了颜色溢出和着色错误问题。本文的研究是利用 SD 模型处理多控制着色和解决着色错误问题的早期尝试。

参考文献

[1] Control Color: Multimodal Diffusion-based Interactive Image Colorization

文献链接: https://arxiv.org/pdf/2402.10855 github地址:https://zhexinliang.github.io/Control_Color

 更多精彩内容,请关注公众号:AI生成未来

欢迎加群交流AIGC技术

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值