Image Colorization

colorization.png

图 1: 图像上色样例[1].

1. 概述

​ 把一张旧照片变成彩色照片是不是很酷吗? 给定一张灰色图像作为输入,使其变成彩色图像是一个病态问题。通常有两种方法可以解决此问题:(1)通过用户给定引导颜色上色; (2)数据驱动方式自动上色。我们的目标是在这个项目中完成灰度图像到彩色图像的上色以及彩色图像的重上色。

​ 用户引导上色最著名的图像着色工作之一是“使用优化进行着色” [2]。 用户仅对带有少量颜色涂鸦的图像进行注释,颜色会在空间中自动传播以生成完全彩色的图像。 可以在http://www.cs.huji.ac.il/~yweiss/Colorization/上找到示例。 数据驱动的方法在很大程度上取决于训练数据集中的颜色先验。 最近的一些工作试图使用卷积神经网络端到端地解决这个问题[1,3]。

​ 用于着色的数据集不是大问题,因为可以轻松访问RGB-灰色图像对。 可以通过“图灵测试”来进行评估:要求人类参与者在生成的和真实的彩色图像之间进行选择。

2. 实验要求

​ 你可以使用python或c++结合OpenCV库和深度学习框架(如pytorch、tensorflow等)完成以下功能。你可以使用python或opencv实现简单的交互界面。

个人必做项:

  1. 选择一块区域用于上色(你可以简单的传递一个mask用于限制上色区域)
  2. 使用深度学习方法完成:
    • 灰度图上色
    • 彩色图重上色(可以将彩色图转换成灰度图重上色,也可以使用其他重上色方法)
  3. 使用传统方法完成:
    • 灰度图上色
    • 彩色图重上色

个人加分项 (团队必须完成其中的3项):

  1. 使用鼠标交互式选择一块区域用于上色(1分)
  2. 使用深度学习方法完成:
    • 将灰度图像视频上色 (根据实现的方法数和实现的方法效果,最多4分)
    • 实现将camera实时获取的彩色图像重上色(1分)
    • 尽可能保证空间和时间上的连续性、一致性(根据实现的方法数和实现的效果,最多3分)
  3. 使用传统方法完成:
    • 将灰度图像视频上色(根据实现的方法数和实现的方法效果,最多4分)
    • 实现将camera实时获取的彩色图像重上色(1分)
    • 尽可能保证空间和时间上的连续性、一致性(根据实现的方法数和实现的方法效果,最多3分)

可选数据集:

References

[1] Iizuka, Satoshi, Edgar Simo-Serra, and Hiroshi Ishikawa. “Let there be color! Joint end-to-end learning of global and local image priors for automatic image colorization with simultaneous classification.” ACM Transactions on Graphics, 2016.
[2] Levin, Anat, Dani Lischinski, and Yair Weiss. “Colorization using optimization.” ACM Transactions on
Graphics, 2004.
[3] Zhang, Richard, Phillip Isola, and Alexei A. Efros. “Colorful image colorization.” European Conference on Computer Vision, 2016.
[4] Kumar, Manoj, Dirk Weissenborn, and Nal Kalchbrenner. “Colorization transformer.” International Conference on Learning Representations, 2021.
[5] Saharia, Chitwan, et al. “Palette: Image-to-image diffusion models.” ACM SIGGRAPH 2022 Conference Proceedings. 2022.