Abstract
作者指出,着色问题是ill-posed以及模棱两可的,是典型的多模态问题。过去的着色问题往往只考虑其最有可能的着色方案;而作者希望通过这篇论文对着色问题的本质建模,并生成具有空间连贯性(long-scale spatial co-ordination)的着色结果。作者通过变分自编码器(VAE)学习色域的低维度的embedding,并设计损失函数来避免模糊的输出结果,以及考虑到像素颜色的不均匀分布。最后,作者为灰度图像和色域的低维度嵌入之间的多模态分布建立了条件模型。验证表示,此模型效果优于传统的条件变分自编码模型,以及较有名的cGAN模型。
Introduction
上色问题要求较高,因为需要考虑局部特征以及大尺度的空间特征。由于只考虑局部特征会导致生成的结果图片失去耦合性,因此需要考虑一种既考虑对每个像素的估计(per-pixel color estimates),又考虑空间连贯性的方法。这种方式对于需要多个预测的许多模糊的视觉任务是常见的,即:从静态图像[1]生成运动场,合成未来帧[2],延时视频[3],交互式分割和姿势估计[4]等。

一个解决方法是使用条件模型P(C|G),C是图片的色域,G是灰度图片。可以在条件模型上画一些样本点{Ck}k=1N\{C_k\}_{k=1}^N{Ck}k=1N从而获得多样的着色结果。然而,这种详细的条件模型设计起来很难,因为C和G在高维空间中离散分布。因此作者使用了降维的思想,使用VAE(变分自编码器),将色域C用他的低维度的嵌入结果z来表示;之后使用混合密度网络(MDN)学习多模态条件模型P(z|G)。灰度图G的特征由一个着色卷积神经网络[5]的7层卷积结果生成。这些特征将空间结构与逐像素的特征编码。最后在测试阶段,作者使用多个样本{zk}k=1NP(z∣G)\{z_k\}_{k=1}^N~P(z|G){zk}k=1NP(zG),并使用VAE解码器获得对应的着色结果CkC_kCk本文通过对色域的空间结构进行编码,并通过在条件模型上采样获得空间相关的多样化着色。

贡献如下:
1、作者通过学习平滑的低维嵌入(Embedding)以生成具有高保真度的相应色域。
2、通过在灰度图特征和低维嵌入之间学习多模态条件模型,从而生成多样性的着色。
3、本方法在着色问题上可超过CVAE和cGAN。
对色域的编码与解码
本文通过VAE(变分自编码器)来进行色域嵌入:除此之外,本文也使用了一种有效的解码器从而从给定的Embedding中生成真实化的色域。本文不使用常见的L2误差,因为它会带来过度平滑或褪色的色域。
解码器损失
特异性
top-k主成分PkP_kPk是在色域的高度差异空间中具有最大方差的投影的方向。因此,产生主要沿着top-k主成分变化的色域,以生成的色域中的特异性为代价来减少L2损失。为了避免这一点,本文沿着top-k主成分投影生成的色域f(z,θ)f(z,\theta)f(z,θ)和Ground Truth色域C。本文使用k = 20。接下来,作者将沿着每个主成分的这些投影之间的差除以从训练集中估计的相应标准偏差σk\sigma_kσk。这鼓励所有主要组成部分的变化在本文的损失中处于平等地位。将残差除以第k个(对于本文的情况为第20个)组分的标​​准偏差。使用这些距离和残差的平方和可以写出特异性损失Lmah\mathcal{L}_{mah}Lmah
Lmah=∑k=120∣∣[C−f(z,θ)TPk∣∣22σk2+∣∣Cres−fres(z,θ)∣∣22σ202\mathcal{L}_{mah} = \sum_{k=1}^{20}\frac{||[C-f(z,\theta)^TP_k||_2^2}{\sigma_k^2}+\frac{||C_{res} - f_{res}(z,\theta)||_2^2}{\sigma_{20}^2}Lmah=k=120σk2[Cf(z,θ)TPk22+σ202Cresfres(z,θ)22
Cres=C−∑k=120CTPkPkC_{res} = C - \sum_{k=1}^{20}C^TP_kP_kCres=Ck=120CTPkPk
fres(z,θ)=f(z,θ)−∑k=120f(z,θ)TPkPkf_{res}(z,\theta) = f(z,\theta) - \sum_{k=1}^{20}f(z,\theta)^TP_kP_kfres(z,θ)=f(z,θ)k=120f(z,θ)TPkPk
上述损失使用马氏距离。
着色性
本文使用经验概率估计(或归一化直方图)H的颜色在量化的“ab”色域的计算。对于像素p,本文对其进行量化去获得其bin并检索1Hp\frac{1}{H_p}Hp1的逆矩阵。1Hp\frac{1}{H_p}Hp1被用于在预测的颜色fp(z,θ)f_p(z,\theta)fp(z,θ)与Ground Truth CpC_pCp之间进行平方项的预测。本文可以写出这个损失函数Lhist\mathcal{L}_{hist}Lhist
Lhist=∣∣(H−1)T[C−f(z,θ)]∣∣22\mathcal{L}_{hist}=||(H^{-1})^T[C - f(z,\theta)]||_2^2Lhist=(H1)T[Cf(z,θ)]22
梯度
本文还使用第一个损失项,鼓励生成的色域具有与Ground Truth相同的梯度。将水平和垂直梯度算子写做∇h\nabla hh∇v\nabla vv。梯度的loss为:Lgrad=∣∣∇hC−∇hf(z,θ)∣∣22+∣∣∇vC−∇vf(z,θ)∣∣22\mathcal{L}_{grad}=||\nabla_hC-\nabla_hf(z,\theta)||_2^2+||\nabla_vC - \nabla_vf(z,\theta)||_2^2Lgrad=hChf(z,θ)22+vCvf(z,θ)22
解码器整体的损失函数为Ldec=Lhist+λmahLmah+λgradLgrad\mathcal{L}_{dec} = \mathcal{L}_{hist}+\lambda_{mah}\mathcal{L}_{mah}+\lambda_{grad}\mathcal{L}_{grad}Ldec=Lhist+λmahLmah+λgradLgrad
这里设置超参数λmah=0.1\lambda_{mah}=0.1λmah=0.1以及λgrad=10−3\lambda_{grad} =10^{-3}λgrad=103
编码器的损失函数用KL散度表示。
相对于解码器的损失函数,本文将该损失函数加权10−210^{-2}102倍。这放松了对低维嵌入的正则化,但是对解码器产生的色域的保真度给出了更大的提高。本文对嵌入空间的宽松约束并没有产生不利影响。因为本文的条件模型(参考第4节)设法产生解码为自然色彩的低维嵌入。
条件模型(灰度图G到低维嵌入z)
混合密度网络(MDN)对目标向量的条件概率分布进行建模,将高斯混合作为输入。这将考虑一对多的映射并允许目标向量使用多个基于同一个输入值的结果来显示出最终的多样性。
MDN损失本文使用MDN函数来进行条件概率分布的建模。P(z∣G)P(z|G)P(zG)是一个有M个组成部分的高斯混合模型。损失函数在对数域中将该模型函数最小化。Lmdn\mathcal{L}_{mdn}Lmdn作为MDN损失函数,πi\pi_iπi代表混合结果的系数,μi\mu_iμi作为其平均值,σ\sigmaσ代表对于GMM的固定球面协方差。MDN损失函数如下:
Lmdn=−log(P(z∣G))=−log∑i=1Mπi(G,ϕ)N(z∣μi(G,ϕ),σ)\mathcal{L}_{mdn}=-log(P(z|G)) = -log\sum_{i=1}^M\pi_i(G,\phi)\mathcal{N}(z|\mu_i(G,\phi),\sigma)Lmdn=log(P(zG))=logi=1Mπi(G,ϕ)N(zμi(G,ϕ),σ)
对loss进行优化的难度很大,因为其包括了对指数化的e−−∣∣z−μi(G,ϕ)∣∣222σ2e^{-\frac{-||z-\mu_i(G,\phi)||_2^2}{2\sigma^2}}e2σ2zμi(G,ϕ)22的加和的取对数。当网络训练开始的时候,∣∣z−μi(G,ϕ)∣∣2||z - \mu_i(G,\phi)||_2zμi(G,ϕ)2很高,会导致在指数计算中出现数值下溢。为了避免数值下溢,本文选择高斯分量m=argmini∣∣z−μi(G,ϕ)∣∣2m=argmin_i||z-\mu_i(G,\phi)||_2m=argminizμi(G,ϕ)2来预测平均值最接近基准值的z,并且每个训练步骤仅优化该部分。损失函数从而用如下方式表示:
Lmdn=−logπm(G,ϕ)+∣∣z−μm(G,ϕ)∣∣222σ2\mathcal{L}_{mdn} =-log\pi_m(G,\phi) +\frac{||z - \mu_m(G,\phi)||_2^2}{2\sigma^2}Lmdn=logπm(G,ϕ)+2σ2zμm(G,ϕ)22
直观地,这种最小近似解决了MDN网络的可识别性(或对称性)的问题,因为我们将灰度级特征与上述的部分(比如第m个组件)联系起来。其他部分可通过附近的灰度特征进行自由优化。本文之后证明,这种基于MDN的策略比CVAE和cGAN可以产生更好的多样化着色结果。
VAE的架构:

MDN的输入是来自[30]的灰度级特征G,并且具有28×28×512的维度。我们在MDN的输出GMM中使用8个组件(component)。输出层包括用于平均数的8×d激活层和用于8个组件的混合权重的8次Softmax激活函数。我们使用0.1的固定球面方差。 MDN网络使用5个卷积层,然后是两个全连接层,可以写成:Input(28×28×512)→CReLU(5,1,384)→B→CReLU(5,1,320)→B→CReLU (5,1,288)→B→CReLU(5,2,256)→B→CReLU(5,1,128)→B→FC(4096)→FC(8×d + 8)。
同样,MDN是一个具有12个卷积层和2个全连接层的网络,前7个卷积层在[30]的任务上进行了预训练并保持固定。
在测试时,我们可以从MDN中采样多个嵌入,然后使用VAE解码器生成各种颜色。然而,为了以主成分分析的方式研究不同的着色,我们采用不同的过程。我们按照混合权重πi\pi_iπi的降序对预测均值μi\mu_iμi进行排序,并使用这些top-k(k = 5)均值作为下图所示的不同颜色。

[1]J. Walker, C. Doersch, A. Gupta, and M. Hebert. An uncertain future: Forecasting from static images using variational autoencoders. In European Conference on Computer Vision, 2016. 1, 4
[2]T. Xue, J. Wu, K. L. Bouman, and W. T. Freeman. Visual dynamics: Probabilistic future frame synthesis via cross convolutional networks. In NIPS, 2016. 1, 4
[3]Y. Zhou and T. L. Berg. Learning Temporal Transformations from Time-Lapse Videos, pages 262–277. Springer International Publishing, 2016. 1, 4
[4] D. Batra, P. Yadollahpour, A. Guzmn-Rivera, and G. Shakhnarovich. Diverse m-best solutions in markov random fields. In ECCV (5), volume 7576 of Lecture Notes in Computer Science, pages 1–16. Springer, 2012. 1
[5]R. Zhang, P. Isola, and A. A. Efros. Colorful image colorization. ECCV, 2016. 1, 2, 3, 5

自动上色论文《Learning Diverse Image Colorization》相关推荐

  1. 自动上色论文《Deep Exemplar-based Colorization》(1)

    今天看了一篇纯数学的论文,感觉很晕. 数学是一定要学的,不过先看看网络结构的去想想有没有什么好的idea. 论文链接:https://arxiv.org/pdf/1807.06587.pdf Abst ...

  2. 自动上色论文《Deep Exemplar-based Colorization》(2)

    书接上文:https://blog.csdn.net/Najlepszy/article/details/85289496 回来填坑. 四.着色参考图片的推荐系统 正如前文所言,本文对参考图片的选择具 ...

  3. OpenCV4学习笔记(67)——dnn模块之基于colorization模型实现图像自动上色

    本次要整理记录的内容是利用colorization模型来将灰度图像转换为彩色图像.colorization模型是利用Lab色彩空间的L(亮度)通道来预测a.b两个通道的值,也就是说当我们手里有一张灰度 ...

  4. DL之pix2pix:pix2pix(cGAN)自动上色算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之pix2pix:pix2pix(cGAN)自动上色算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 pix2pix(cGAN)自动上色算法的简介(论文介绍) 1.论文 2.关 ...

  5. 黑白图像自动上色(Colorization)

    在<siggraph2016_colorization-master>有两个可以给黑白图片自动上色的模型:colornet.t7 和 colornet_imagenet.t7. 现来把这个 ...

  6. 百行代码构建神经网络黑白图片自动上色系统

    使用神经网络对图片进行风格化渲染是计算机视觉领域的热门应用之一.本文将向你介绍一种简单而有效的黑白图片上色方法,仅需 100 行代码,你也可以搭建自己的神经网络,几秒钟内让计算机自动完成手动工作需要几 ...

  7. 黑白图像自动上色(颜色迁移版)

    在<一篇关于如何用深度学习完成自动上色(Automatic Image Colorization)的论文浅析>看到这个模型也可以作颜色风格迁移,这里也来试试,先换另一个模型:colorne ...

  8. 基于深度学习的自动上色程序,以及其实际应用

    基于深度学习的自动上色程序,以及其实际应用 本文作者:黄鑫 2016-07-19 01:28 转载, 原文链接:https://www.leiphone.com/news/201607/yrnxfv8 ...

  9. DL之pix2pix:基于TF利用pix2pix模型对food_resized数据集实现Auto Color自动上色技术—训练测试过程全记录

    DL之pix2pix:基于TF利用pix2pix模型对food_resized数据集实现Auto Color自动上色技术 目录 训练 food_resized数据集展示 TB过程监控 1.SCALAR ...

最新文章

  1. missing template arguments before异常解决
  2. python起步输入-[转载]python核心编程学习笔记-python起步
  3. DOM性能瓶颈与Javascript性能优化
  4. VTK:二次可视化用法实战
  5. 70 个数据分析常用网址,我先收藏了!
  6. tcpdump 用法
  7. 结合使用 Draft 与 Tencent Kubernetes Engine (TKE)
  8. 回顾2009,展望2010
  9. 【python笔记】异常
  10. 按计划员自动带出对应任务类型
  11. python2.7 matplotlib_Python 2.7中的Numpy、SciPy、MatPlotLib安装与配置
  12. 北京市房价预测---数据收集
  13. 金融数字化平台建设的三大误区和破局之道
  14. 写一个PE的壳_Part 5:PE格式修复+lief源码修改
  15. Dockerfile指令详解镜像构建实例说明
  16. 纹理过滤函数glTexParameteri
  17. mySQL下载后的初次使用
  18. 总结一下这两天的学习笔记
  19. Erasure Code
  20. java程序设计蜘蛛纸牌_JAVA蜘蛛纸牌

热门文章

  1. 操作系统(期末复习)
  2. Excel或者WPS导入数据出现重复报错
  3. 欧拉判别法 欧拉准则
  4. 175-路飞16-区间功能搜索功能支付宝支付
  5. MySQL面试题-SQL优化
  6. 【查看linux中所有用户的三种方式】
  7. Ultimate Retouch 3.7汉化版|影楼终极人像精修磨皮扩展支持CC2019
  8. 5.4.1_利用剪辑区域来处理动画背景
  9. 邯郸职业技术学院计算机类,邯郸职业技术学院有哪些好专业,文科理科专业分别有哪些...
  10. 产品设计团队,你应该这样远程办公