什么是着色(colorization)?
着色在实际生活中并非罕见,例如将黑白老照片经算法变为彩色照片、为近红外图片上的人脸添加色彩等。简言之,着色便是为单色图片或视频增添色彩的计算机辅助过程。为实现该过程,研究者们进行了深入的研究,并提出了各类不同的算法方案:
- Anat Levin,Dani Lischinski和Yair Weiss在《Colorization using Optimization》一文中给出了一种基于人机交互的着色方案;
- Alex Yong-Sang Chia,Shaojie Zhuo等人在《Semantic Colorization with Internet Images》中给出了一种利用网络彩色样本来给输入图片着色的方法;
- Satoshi Iizuka, Edgar Simo-Serra和Hiroshi Ishikawa则是在《Let there be Color!: Joint End-to-end Learning of Global and Local Image Priors for Automatic Image Colorization with Simultaneous Classification》中提出了第一个能够自动着色且可进行端到端训练的模型;
- …
接下来,我们将对Satoshi Iizuka等人的这篇文献[ACM Trans. Graph. 35, 4, Article 110 (July 2016)]关于灰度图上色进行分析。
论文亮点
该论文的亮点包括:
- 可以有效混合灰度图中物体的局域特征与全局特征以实现上色并同时给出其所处场景信息
- 能够进行end-to-end training
- 输入图片分辨率无限制
- 可以实现风格迁移
网络结构
如上图所示,该模型由四个模块组成。
- Low-level Features network:该模块为特征提取模块,值得注意的是“shared weights”。
- Mid-Level Features network:该模块进一步处理特征,获得图片的局域信息。
- Global Features network:该模块对所提取的特征进行处理,经FC层处理后得到的信息可被用于与局域信息混合,也可用于分类。
- Colorization network:该模块则是对混合后的特征进行处理,继而获得彩色图片。
在该网络结构中,一些结构十分重要。特征混合层(Fusion layer)将图片的局域信息和全局信息混合起来。当然,该文中仅仅是将二者进行了拼接操作。
全局特征的提取则利用场景信息有效的避免了错误的着色:
模型的训练
搭建好网络后,我们需要确定训练所需的代价函数:
L
(
y
c
o
l
o
r
,
y
c
l
a
s
s
)
=
∣
∣
y
c
o
l
o
r
−
y
c
o
l
o
r
,
∗
∣
∣
F
R
O
2
−
α
(
y
l
c
l
a
s
s
c
l
a
s
s
−
log
(
∑
i
=
0
N
exp
(
y
i
c
l
a
s
s
)
)
)
\mathcal{L} (y^{\rm{color}}, y^{\rm{class}}) = ||y^{\rm{color}} - y^{\rm{color}, *} ||^{2}_{\rm{FRO}} - \alpha \left(y^{\rm{class}}_{l^{\rm{class}}} - \log \left(\sum^{N}_{i = 0} \exp (y^{\rm{class}}_{i})\right)\right)
L(ycolor,yclass)=∣∣ycolor−ycolor,∗∣∣FRO2−α(ylclassclass−log(i=0∑Nexp(yiclass)))
论文中采用上述代价函数以Adadelta优化器对网络进行训练,训练过程中同时考虑着色与分类。此外,论文中采用的数据集包括:
- MIT Places Scene Dataset
- 2.3 million training images with 205 scene labels (256x256 pixels)
该论文所提出的网络最终输出的图片格式为Lab,而输入图片的格式则是L。这是因为:
The Lab* gives the most perceptional reasonable approach in comparison with RGB and YUV.
实际上,如果需要被着色的图片为灰度图,我们可以直接由彩色图片生成灰度图以增加数据量。当然,我们得考虑数据的平衡问题。
文章结果
如下图所示,采用文章中所用网络对灰度图进行着色的效果还是不错的。
当改变输入图片的分辨率,我们可以看到网络在CPU和GPU上运行时间的变化:
网络的其他应用
当改变全局特征提取端的输入图片时,网络可被用于风格迁移,如下图所示:
总结
该论文将全局信息与局域信息混合实现了灰度图的着色,该网络能够进行端到端的训练,且能实现风格迁移。
然而,该网络还存在一些缺陷,如难以输出包含太多色彩的图片、难以精准的重构色彩等。