论文阅读:Real-Time User-Guided Image Colorization with Learned Deep Priors

论文介绍

Real-Time User-Guided Image Colorization with Learned Deep Priors是Richard Zhang在SIGGRAGH 2017发表的一篇关于图像彩色化的论文,论文中提出使用深度学习和用户交互来实现图像彩色化。输入一张灰度图像,用户点击灰度图像上感兴趣的位置并从调色板中选择颜色,最终生成基于用户引导的彩色化图像,着色结果实时更新。如下图所示,可以有右边三个合理的着色结果。
请添加图片描述

网络架构

论文中用到的网络结构主要是蓝色部分的主着色网络,局部提示网络和全局提示网络是其两个变体,添加一些特定的层到主着色网络。该网络工作在Lab颜色空间,输入的灰度图像 X ∈ R H × W × 1 \mathbf{X} \in \mathbb{R}^{H \times W \times 1} XRH×W×1即L通道值,输出的颜色值 Y ^ ∈ R H × W × 2 \widehat{\mathbf{Y}} \in \mathbb{R}^{H \times W \times 2} Y RH×W×2即ab通道值。
请添加图片描述

  • 主着色网络
    主着色网络是一个U-Net架构,该网络由10个卷积块组成,每一个卷积块中包含2-3个Conv-ReLU对。在前面4次下采样过程中(conv 1-4),每一层都会经过两到三次卷积来提取图像特征;每下采样一层,都会把图片减小一半,卷积核数目增加一倍。conv 4-7使用了扩张卷积(dilated convolution),以此来增加感受野。最后的4次上采样过程中(conv 7-10),使用反卷积扩大图片(并不能还原图片),每一层都会进行两次卷积来提取特征,每上采样一层,都会把图片扩大一倍,卷积核数目减少一半。为了减少数据丢失,采取把左边下采样时的图片裁剪成相同大小后直接拼过来的方法增加特征层,再进行卷积来提取特征。最后一个卷积层将conv 10映射到输出颜色。
  • 局部提示网络
    局部提示网络是主着色网络的变体,红色部分是局部提示网络专有的层。该网络是一个两层的分类器。
    首先输入一张灰度图像,经过主着色网络中conv 1-8提取特征。由于最后一层的特征在空间上比较粗糙,作者采用了超列(hypercolumn)方法,连接conv 3-8层的特征,将高层的语义信息与低层特征结合。具体做法是将需要连接到超列的卷积层resize到统一大小,如图所示,将conv 3-8层特征图resize到 H / 4 ∗ W / 4 ∗ 384 H/4*W/4*384 H/4W/4384,然后将resize后的特征图拼接得到一个很长的矩阵,矩阵中的每一个向量代表这个像素点的所有信息(即超列),最后预测每一个像素点的颜色分布概率。
    用户与图像交互,选择某一个位置并选中颜色,用户选中的颜色直接从输入复制到输出。输入是灰度图像 X ∈ R H × W × 1 \mathbf{X} \in \mathbb{R}^{H \times W \times 1} XRH×W×1和用户点 U l = { X a b , B a b } ∈ R H × W × 3 \mathbf{U}_{l}=\left\{\mathbf{X}_{a b}, \mathbf{B}_{a b}\right\} \in \mathbb{R}^{H \times W \times 3} Ul={Xab,Bab}RH×W×3(颜色信息 X a b ∈ R H × W × 2 \mathbf{X}_{a b} \in \mathbb{R}^{H \times W \times 2} XabRH×W×2和选中区域信息 B a b ∈ R H × W × 1 \mathbf{B}_{a b} \in \mathbb{R}^{H \times W \times 1} BabRH×W×1),将用户点加入主着色网络(直接拼接),经过主着色网络可以预测最终的颜色值。
  • 全局提示网络
    输入是 { X hist  , B hist  , X sat  , B sat  } ∈ R 1 × 1 × ( Q + 3 ) \left\{\mathbf{X}_{\text {hist }}, \mathbf{B}_{\text {hist }}, \mathbf{X}_{\text {sat }}, \mathbf{B}_{\text {sat }}\right\} \in \mathbb{R}^{1 \times 1 \times(Q+3)} {Xhist ,Bhist ,Xsat ,Bsat }R1×1×(Q+3),其中 X hist  ∈ Δ Q \mathbf{X}_{\text {hist }} \in \Delta^{Q} Xhist ΔQ是全局直方图, X sat  \mathbf{X}_{\text {sat }} Xsat 是平均图像饱和度, B hist  \mathbf{B}_{\text {hist }} Bhist  B sat  \mathbf{B}_{\text {sat }} Bsat 是二进制掩码,指示输入是否提供 X hist  \mathbf{X}_{\text {hist }} Xhist  X sat  \mathbf{X}_{\text {sat }} Xsat 
    输入经过4个conv-ReLU层,再上采样以匹配主着色网络中conv 4的特征图,拼接到conv 4中,经过主着色网络预测最终的颜色。

具体方法

局部提示网络

  • 模拟用户交互
    在彩色化问题中,训练数据集是易于获得的——任何一张彩色图像都可以被分解为灰度和颜色分量。然而,这篇论文的输入不只有灰度图像,还加入了用户交互,这就加大了收集训练资料的难度。
    作者提出用随机抽样来确定训练时的patches。对于每一张图像,从p=1/8的几何分布中确定patches的数量,从2D高斯分布中确定patches的位置,最后计算每一个patch的平均ab值显示给网络。
    同时由于网络有一个限制特性——网络应该将用户点的颜色值简单地复制到输出。为了鼓励这一点,在训练时为1%的训练图像提供完整真实的颜色。

  • 用户界面
    用户界面包含一个绘图板,用户在其上与灰度图像进行交互,显示用户点覆盖在灰度图像上;右边是一个显示器,可以实时更新着色结果;左边下面是一个调色板,为给定的位置建议可能的颜色;上面是基于当前点亮度的ab色域。用户在灰度图像上点击,左边调色板会出现系统建议的颜色,用户选择某个颜色,显示器实时更新着色结果。
    请添加图片描述

  • 调色板
    调色板功能是通过局部网络 G l G_{l} Gl预测概率分布实现的。使用交叉熵损失函数来衡量概率分布与真实颜色之间的距离。为了提供离散的颜色建议,为每一个像素的颜色概率分布软化softmax(使其峰值较少),并使用K-均值聚类(k=9)得到调色板中的9种建议的颜色。

全局提示网络

通过使用双线性插值将颜色Y调整到四分之一分辨率来计算全局直方图,在量化的ab空间(量化为313个类别)中对每个像素进行编码,并在空间上进行平均,因此直方图中颜色类别也是313个类。将真实图像转换到HSV颜色空间,并在空间上对S通道进行平均来计算饱和度。
提供一张图像,计算其全局直方图和平均饱和度,将信息拼接到灰度图像中,就能得到一张与该图像风格相似的彩色化图像。

实验结果

局部提示网络

在这里插入图片描述

全局提示网络

在这里插入图片描述

总结

  • 作者在使用深度学习进行自动着色的基础上,加入用户交互,用户快速点击(通常不超过1分钟),实现了实时的图像彩色化。从结果来看,生成的图像与未加入用户交互相比色彩饱和度比较高,用户交互可以调整自动着色中出现的一些问题(空间不一致、色彩不饱和等)。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值