小白论文复现 : DDColor: Towards Photo-Realistic Image Colorization via Dual Decoders



前言

哈喽,大家好,本文我将来带大家复现一篇顶会论文 DDColor: Towards Photo-Realistic Image Colorization via Dual Decoders,我将会分为两大部分来完成介绍。分别为论文代码复现和论文内容介绍,本篇我将详细介绍论文内容。(PS:本人是科研小白,第一次进行复现论文的工作,如有错误请大家积极指出,我会第一时间修改错误。)
论文代码复现:小白代码复现

简要介绍

我们先简单介绍一下论文相关内容:
课题:DDColor: Towards Photo-Realistic Image Colorization via Dual Decoders
领域:计算机视觉——图像上色
会议:ICCV
作者:Xiaoyang Kang, Tao Yang, Wenqi Ouyang, Peiran Ren, Lingzhi Li, Xuansong Xie

论文内容

1.内容概要

  • 实验目的:作者构建DDColor模型对灰度图像进行上色。
  • 主要方法:DDColor模型具有双解码器:像素解码器色彩解码器。通过交叉注意建立颜色和多尺度语义表征之间的相关性,并且引入了一种色彩损失来增强色彩的丰富度。
  • 论文贡献:提出了一个带有双解码器的端到端网络,用于自动图像着色,这确保了生动和语义一致的结果。色彩解码器可以从视觉特征中学习颜色查询,而不依赖于手工制作的先验。像素解码器提供了多尺度语义表示来指导颜色查询的优化,有效地减少了颜色溢出效应。综合实验表明,与基线相比,其方法达到了最先进的性能,并表现出良好的泛化。

2.课题背景

  • 图像着色是一项经典的计算机视觉任务,给定灰度图像后,着色的目的是恢复图像中缺失的两个颜色通道。这是个高度复杂的问题,通常存在多模态不确定性,例如,一个物体可能有多种可行的颜色。传统的着色方法主要基于用户引导来解决这一问题,随着深度学习的兴起,自动着色技术引起了广泛关注,其目标是从复杂的图像语义(如形状、纹理和上下文)中生成合适的颜色。
  • 早期的方法 尝试使用卷积神经网络 (CNN) (一文搞懂卷积神经网络(CNN)的原理)预测每个像素的颜色分布。遗憾的是,由于缺乏对图像语义的全面理解,这些基于 CNN 的方法往往会产生不正确或不饱和的着色结果(图 1 CIC 、InstColor 和 DeOldify )。为了包含语义信息,一些方法 采用了生成对抗网络 (GAN)(生成对抗网络GAN 原理详解),并利用其丰富的表征作为着色的生成先验。然而,由于 GAN 先验的表示空间有限,它们无法处理具有复杂结构和语义的图像,从而导致着色结果不佳。(图 1 Wu 等人 和 BigColor )
    在这里插入图片描述
  • 随着 Transformer(一文读懂Transformer) 在自然语言处理(NLP)领域的巨大成功,它已被扩展到许多计算机视觉任务中。最近,一些研究将Transformer的非局部注意机制引入图像着色。虽然这些方法取得了可喜的成果,但它们要么训练多个独立子网,导致累积误差(图 1 ColTran ),要么在单尺度图像特征图上执行颜色注意操作,在处理复杂图像上下文时造成明显的颜色失真(图 1 CT2 和 ColorFormer )。此外,这些方法通常依赖于手工制作的数据集级经验分布先验,既繁琐又难以推广。
  • 于是,作者便在本文提出了一种新的着色方法,即DDColor,旨在实现语义合理和视觉生动的着色。其方法利用编码器-解码器结构,其中编码器提取图像特征,双解码器恢复空间分辨率。与之前通过额外网络或手动计算先验来优化颜色可能性的方法不同,作者使用基于查询的转换器作为颜色解码器,以端到端的方式学习语义感知的颜色查询。通过使用多尺度图像特征来学习颜色查询,该方法减轻了颜色失真,并显著改善了复杂上下文和小物体的着色(见图1)。在此基础上,还提出了一种新的色彩损失,以提高生成结果的色彩丰富度。

3.模型介绍

整体框架

  • 如图( a a a)所示,给定灰度输入图像 x L ∈ R ( H × W × 1 ) x_L∈R^{(H×W×1)} xLR(H×W×1),着色网络预测两个缺失的颜色通道 y ^ A B ∈ R ( H × W × 2 ) {\hat{y}}_{AB}∈R^{(H×W×2)} y^ABR(H×W×2),其中 L 、 A B L、AB LAB 通道分别代表 C I E L A B CIELAB CIELAB 色彩空间中的亮度色度。提出的模型DDColor以端到端的方式对灰度图像 x L x_L xL进行着色。
  • 模型利用骨干网络作为编码器,从灰度图像中提取高级语义信息。骨干网络旨在提取图像语义嵌入,文中选择了 C o n v N e X t ConvNeXt ConvNeXt ,它是图像分类的前沿模型。以 x L x_L xL 为输入,骨干网络输出 4 个中间特征图,分辨率分别为 H / 4 × W / 4 、 H / 8 × W / 8 、 H / 16 × W / 16 H/4 × W/4、H/8 ×W/8、H/16 × W/16 H/4×W/4H/8×W/8H/16×W/16 H / 32 × W / 32 H/32 × W/32 H/32×W/32。前三个特征图通过快捷连接馈送给像素解码器,最后一个特征图则作为像素解码器的输入。至于骨干网络结构,有多种选择,如 R e s N e t , S w i n − T r a n s f o r m e r ResNet,Swin-Transformer ResNet,SwinTransformer等,只要网络能够产生分层表示即可。
  • 模型框架的解码器部分由像素解码器和颜色解码器组成。像素解码器使用一系列堆叠的上采样层来恢复图像特征的空间分辨率。每个上采样层都与编码器的相应阶段有快捷连接。色彩解码器利用不同尺度的多个图像特征,逐步完善语义感知色彩查询。然后,两个解码器产生的图像和颜色特征融合在一起,生成颜色输出 y ^ A B {\hat{y}}_{AB} y^AB 。最后,沿着通道尺寸将 y ^ A B {\hat{y}}_{AB} y^AB x L x_L xL连接起来,得到最终的着色结果 y ^ \hat{y} y^

像素解码器

  • 像素解码器由四个阶段组成,逐步扩大图像分辨率。每个阶段包括一个上采样层和一个快捷层。模型使用 P i x e l S h u f f l e PixelShuffle PixelShuffle模型 作为上采样层,该层将形状为 ( h / p , w / p , C p 2 ) ( h/p , w/p, Cp^2) (h/p,w/p,Cp2)的低分辨率特征图重新排列为形状为 ( h , w , c ) (h, w, c) (h,w,c)的高分辨率特征图。
  • 使用卷积将来自快捷连接的相应阶段的特征进行整合。通过一步一步的上采样过程来捕获完整的图像特征。这些多尺度特征还被用作颜色解码器的输入,以指导颜色查询的优化。像素解码器的最终输出是 E i ∈ R ( H × W × C ) E_i∈R^{(H×W×C)} EiR(H×W×C)的图像,该图像具有与输入图像相同的空间分辨率。
    在这里插入图片描述

色彩解码器

  • 如图( b b b)所示,色彩解码器由一堆块组成,每个块接收视觉特征和颜色查询作为输入。为了学习一组基于视觉语义信息的自适应色彩查询,创建了可学习的色彩嵌入记忆来存储色彩表示序列: z 0 = [ z 0 1 , z 0 2 , . . , z 0 k ] ∈ R ( K × C ) z_0 = [z_0^1, z_0^2, . . , z_0^k] ∈R^{(K×C)} z0=[z01,z02,..,z0k]R(K×C)。这些颜色嵌入在训练阶段初始化为零,并在第一个 C D B CDB CDB 中用作颜色查询。在每一个 C B D CBD CBD中首先通过交叉注意层建立语义表示和颜色嵌入之间的相关性:在这里插入图片描述
    该式中, l l l 为层索引, z l ∈ R ( K × C ) z_l ∈R^{(K×C)} zlR(K×C) 表示第 l l l 层的 K K K C C C 维颜色嵌入。 Q l = f Q ( z ( l − 1 ) ) ∈ R ( K × C ) , K l , V l ∈ R ( H l × W l × C ) Q_l = f_Q (z_{(l-1)} ) ∈R^{(K×C)}, K_l ,V_l ∈ R^{(H_l ×W_l ×C)} Ql=fQ(z(l1))R(K×C),Kl,VlR(Hl×Wl×C)分别为 f K ( ⋅ ) f_K(·) fK() f V ( ⋅ ) f_V(·) fV() 变换下的图像特征。 H l , W l H_l, W_l Hl,Wl 为图像特征的空间分辨率, f Q , f K , f V f_Q , f_K , f_V fQ,fK,fV线性变换
  • 通过上述交叉注意操作,颜色嵌入表示被图像特征所丰富。然后模型使用标准的Transformer layers对颜色嵌入进行变换,如下所示:
    在这里插入图片描述
    其中 M S A ( ⋅ ) MSA(·) MSA() 表示多头自注意, M L P ( ⋅ ) MLP(·) MLP() 表示前馈网络, L N ( ⋅ ) LN(·) LN() 表示层归一化。值得注意的是,在文中的 C D B CDB CDB中,Cross-Attention 先于 Self- Attention进行操作。这是因为在应用第一个自关注层之前,颜色查询是零初始化和语义独立的。
  • 由于以往基于 T r a n s f o r m e r Transformer Transformer的着色方法通常是在单尺度图像特征图上进行色彩关注,无法充分捕捉低层次的语义线索,在处理复杂语境时可能会导致色彩失真。因此,本文的模型扩展到多尺度,能提高着色的性能(后面会有验证)。为了平衡计算复杂度和表示能力,文中选择了三种不同比例的图像特征。使用像素解码器生成的中间视觉特征,在彩色解码器中的下采样率分别为 1 / 16 、 1 / 8 1/16、1/8 1/161/8 1 / 4 1/4 1/4。以每组 3 个 C D B CDB CDB 对图块进行分组,在每组中,多尺度特征按顺序输入 C D B CDB CDB。以循环方式重复分组 M 次。颜色解码器总共由 3 M 3M 3M C D B CDB CDB 组成。颜色解码器表述如下:
    在这里插入图片描述
    其中, F 1 , F 2 F_1, F_2 F1,F2 F 3 F_3 F3 是三种不同尺度的视觉特征。在色彩解码器中使用多尺度特征可以模拟色彩查询和视觉嵌入之间的关系,使色彩嵌入 E C ∈ R ( K × C ) E_C∈R^{(K×C)} ECR(K×C)对语义信息更加敏感,从而进一步实现更准确的语义边界识别,减少色彩失真。

融合模块

  • 融合模块是一个轻量级模块,它将像素解码器和色彩解码器的输出结合起来,生成色彩结果。融合模块的输入是来自像素解码器的每像素图像嵌入 E i ∈ R ( H × W × C ) E_i∈R^{(H×W×C)} EiR(H×W×C) (其中 C C C 是嵌入维度)和来自颜色解码器的语义感知颜色嵌入 E C ∈ R ( K × C ) E_C∈R^{(K×C)} ECR(K×C) (其中 K K K 是颜色查询次数)。融合模块使用简单的点积将这两个嵌入聚合在一起,形成一个增强特征 F ^ ∈ R ( K × H × W ) \hat{F}∈R^{(K×H×W)} F^R(K×H×W) 。然后应用 1 × 1 卷积层生成最终输出 y ^ A B ∈ R ( 2 × H × W ) \hat{y}_{AB}∈R^{(2×H×W)} y^ABR(2×H×W) ,表示 A B AB AB 颜色通道:
    在这里插入图片描述
    最后,将输出 y ^ A B \hat{y}_{AB} y^AB与灰度输入 x L x_L xL串联,得到着色结果 y ^ \hat{y} y^

学习目标

在训练阶段,采用以下四种损失:

  • 像素损失 (Pixel loss) : 像素损失 L p i x L_{pix} Lpix 是着色图像 y ^ \hat{y} y^与基本真实图像 y y y 之间的 L 1 L_1 L1 距离,它提供像素级监督,鼓励生成器生成与真实图像相似的输出。
  • 感知损失 (Perceptual loss) : 为了确保生成的图像 y ^ \hat{y} y^ 在语义上是合理的,我们使用感知损失 L p e r L_{per} Lper 来最小化它与真实图像 y y y 之间的语义差异。
  • 对抗损失 (Adversarial loss) : 为了区分预测结果和真实图像,会添加一个 P a t c h G A N PatchGAN PatchGAN 识别器,推动生成器生成无法区分的图像。让 L a d v L_{adv} Ladv 表示对抗损失。
  • 色彩损失 (Colorfulness loss) : 作者引入的新的色彩损失 L c o l L_{col} Lcol ,其灵感来源于多彩性评分。这种损失会促使模型生成色彩更丰富、视觉更愉悦的图像。它的计算公式如下:
    在这里插入图片描述
    其中, σ r g y b ( ⋅ ) σ_{rgyb}(·) σrgyb() µ r g y b ( ⋅ ) µ_{rgyb}(·) µrgyb() 分别表示像素云在颜色平面中的标准偏差和平均值。

完成损失函数如下所示:
在这里插入图片描述

4.实验测试

实施细节

  • 数据集 : 作者在三个数据集上进行了实验。 I m a g e N e t ImageNet ImageNet 已被大多数现有着色方法广泛使用。它由 130 万(50,000)张图像组成,用于训练(测试)。COCO-Stuff 包含大量自然图像,作者在原始验证集的 5000 张图像上进行测试,没有进行微调。ADE20K由以场景为中心的图像组成,具有很大的多样性,作者在验证集的 2,000 张图像上进行测试,不做微调。
  • 评估指标 : 按照现有着色方法的实验方案,主要使用 Frechet inception distance( F I D FID FID) 和 colorfulness score( C F CF CF)来评价性能,其中 F I D FID FID 衡量生成图像与地面实况图像之间的分布相似性, C F CF CF 反映生成图像的生动程度。此外,还提供了峰值信噪比( P S N R PSNR PSNR)作为参考。
  • 实施细节 : 论文中写的十分详细,此处不再赘述

定量评估

作者在三个数据集上与之前的方法进行了比较,并在表 1 中报告了量化结果。在 I m a g e N e t ImageNet ImageNet 数据集上,文中的方法获得了最低的 F I D FID FID,这表明该方法可以生成高质量、高保真的着色结果。文中的方法还在 COCO-Stuff 和 ADE20K 数据集上实现了最低的 F I D FID FID,这证明了该方法的泛化能力。色彩分数可以反映图像的生动程度。可以看出,有些方法[49,45,13]的评分高于文中的方法。然而,高的色彩评分并不一定意味着良好的视觉质量。因此,作者进一步计算 ∆ C F ∆CF CF来报告生成图像与地面真实图像之间的色彩评分差异。文中的方法在所有数据集上获得了最低的 ∆ C F ∆CF CF,表明该方法实现了更自然和真实的着色。
在这里插入图片描述

定性评估

图 3 是图像着色结果的直观图。由于问题的多模态不确定性,评估标准不应是色彩相似度。作者的方法能为复杂场景(如蜥蜴和树叶(第 1 行)或健身房中的人(第 2 行))生成语义合理、视觉愉悦的着色结果,并能成功保持色调一致,捕捉到图片中突出物体的细节,如车辆(第 3 行)和草莓(第 4 行)。
在这里插入图片描述

消融实验

  • 色彩解码器和色彩损失 : 如表( a a a) 和图 5 所示,由于从不同语义特征中学习到了自适应色彩查询,因此色彩解码器在最终着色结果中发挥了重要作用。与基线方法相比,带有颜色解码器的方法可以对不同对象(如第 1 行中的蝴蝶和花朵,第 2 行中的公鸡和草坪)进行更自然、语义更合理的着色。还可以看出,引入色彩损失有助于提高最终结果的色彩度。
    在这里插入图片描述在这里插入图片描述

  • 多尺度与单尺度 :如表( b b b)图 6 中的结果显示,其他 3 个变体往往会产生明显的失真、物体边缘不准确的着色结果(如第 1 行中的网球),以及不同尺度物体语义不一致的颜色(如第 2 行中的人和皮划艇)。有了多尺度特征,完整模型就能捕捉到更准确的语义边界识别特征,并生成更自然、更准确的着色结果。
    在这里插入图片描述在这里插入图片描述

  • 色彩解码器架构 :如表( c c c) 所示,可以看到交叉注意层和自我注意层对于稳健的图像着色都是必不可少的。此外,自注意层和交叉注意层的顺序也很重要。
    在这里插入图片描述

  • 颜色查询次数 :如下表 所示,当查询次数达到 100 次时,性能达到峰值,当查询次数继续增加时,性能不再提高,所以最终模型采用了 100 次查询。在这里插入图片描述

模型不足

如图 9 所示,在处理具有透明/半透明物体的图像时,仍然存在失败案例。进一步改进可能需要额外的语义监督,以帮助网络更好地理解这种复杂情况。
在这里插入图片描述


总结

在这项工作中,作者提出了一种用于图像着色的端到端方法,称为 DDColor。DDColor 的主要贡献在于设计了两个解码器:色彩解码器和像素解码器,前者利用基于查询的转换器学习语义感知的色彩查询,后者生成多尺度视觉特征以优化色彩查询。作者的方法在性能和生成逼真且语义一致的着色能力方面都超越了以前的方法。


  • 28
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值