Skip to content

bw2color/bw2color

Repository files navigation

bw2color 黑白图像预测颜色

项目概述

给出无类标的黑白图片或视频,在保证语义正确的情况下,利用计算机视觉技术将其转换为彩色。

给黑白照片上色是进度极慢且复杂的工程,最专业的摄影师或者艺术家都要花几个小时,甚至几天才能修复一张因泛黄丢失色彩,或原始是黑白的老照片,更不要说是视频了。这个过程需要花费极大的精力和高昂的费用。许多人都有需要修复的历史照片和视频,但只有极少人能承担雇佣专业人士来还原照片的费用,同时还伴有隐私泄露的风险。得益于科技的发展,依托于海量GPUs并行计算硬件加上设计良好的框架,如TensorFlow,caffe,mxnet,我们可以利用深度学习技术(Deep Learning)

  • 使黑白图像在保证语义正确(Semantic correctness)的情况下将其还原为彩色,且这个过程仅需几毫秒,成本低廉。
  • 随着智能手机双摄像头(黑白+彩色)的方案使用越来越广泛,黑白的长焦镜头也需要一种高效的算法将其还原为认知彩色,降低黑暗中的噪点。
  • 同时,本项目还可以为有损图片数据压缩(Lossy picture data compression),夜间红外摄像头还原真彩色,视频修复等专业领域提供新的思路和实践方法。
  • 许多具有历史意义的照片应该被转换为彩色,使其保留重要的历史价值。

选题背景

对大部分人而言,黑白摄影似乎是上个世纪的事了,认为以前的人拍黑白照片是因为当时彩色胶卷没有发明出来。但事实上,即便是到了现在的数码时代,黑白摄影从来没有退出历史舞台,而其地位也从来没有因为彩色胶卷、数码技术受到影响。

黑白照片的来源

  1. 不支持彩色
    • 因彩色摄像头无法承受极限温度,如钢铁厂就采用热力探测(如红外技术),我们需要以热力图的形式将其可视化。
    • 宇宙深空探测,拍摄光谱不在可见光范围内,需要通过彩色修复。
    • 生物细胞结构,如蛋白质结构等,设备读出的光谱转换成黑白照片之后需要根据专家经验上色。
  2. 在特定领域彩色成本高昂
    • 夜间真彩色摄像头成本通常比黑白摄像头贵三倍。
    • 彩色需要存储多个通道信息,现今2K,4K技术对高密度存储技术提出了新一轮的挑战。
  3. 原本的色彩无法表达对应的情绪,需要更改
    • 照片因为色彩的干扰,照片所要表达的意图被模糊。比如一张表达恐怖情绪的照片,主题色调应该设定为深红色(血腥的暗示)。比如一张表达温馨的家庭环境,我们就建议以米黄色作为主色调表达温馨的情绪。
    • 色彩会给人预设一种主观偏见,画面的色彩会让我们更多去关注画面本身的形状、造型、事件和元素,我们所表达或看到的主题也会变得更加清晰。
  4. 色彩缺失
    • 很多人家中有需要被修复的老照片,博物馆拥有大量包含极高价值的老照片,比如一位妇人身着清末彩色衣服,专家知道其对应颜色,却只能用文字“洋红殷红”等描述,不直观也容易在文化传承中失去可证性。

我们在日常中寻找黑。它们界线分明地黑着。到底是怎样深沉的事物和想法,才会投下这么浓重的影子。每个被投下的影子,依据同样的定律,我们试着理解事物,以自己的方式。

目标任务

我们有许多黑白的照片的电子扫描件,通过人工智能(Artificial intelligence)相关的算法,将其为人类可直觉认知的彩色图片。

这听起来非常简单,我们知道一个物体,就大概知道它的颜色应该是什么。但是实际情况并非如此简单,从图像中检测出什么物体(目标检测)是什么就已经非常困难。除此之外,在绝大部分人的认知里,树叶是绿色的,天空是湛蓝的,云朵是白色的等。但是假如给定的一朵花呢?这时候就会产生不一样的结果,一部分人认为花是黄的,另一部分人认为是红的,这就产生了认知歧义(Cognitive Ambiguity)。我们需要做的就是使计算机能够尽可能的还原事物本来的颜色,并将其运用在老照片颜色还原,智能手机摄像头拍摄照片颜色的增强,夜间红外摄像头拍摄的黑白视频色彩修复任务等。要完成这个项目,我们还要使用yolo, imageNet这些框架来感知物体类别,总的来说,这项任务是非常具有挑战性的。

研究现状

在过去的算法中,主要通过传统的机器学习技术(machine learning,ML),他们用“回归”来预测每一个像素的颜色,然而结果却不尽如人意,根据黑白图片渲染出来的图像色彩平淡枯燥。有文献作者使用均方误差(Mean Squared Error ,MSE)作为训练模型的损失函数(Loss Function),作者指出,MSE将尝试“平均”出颜色,以获得最小的平均误差,这将导致平淡的外观。目前没有该项目较完美通用的解决方案。

项目难点

  1. 数据扩增

在灰度图像复原成彩色RGB图像方面的代表性文章《全局和局部图像的联合端到端学习图像自动着色并且同时进行分类》中指出。稍作解释,黑白图像,实际上只有一个通道的信息,即灰度信息。彩色图像,则为RGB图像(也可以是CMYK),有三个通道的信息。彩色图像转换为黑白图像极其简单,属于有损压缩数据;反之则很难,因为数据不会凭空增多。

  1. 概率预测

我们在待处理信息量不可扩充的前提下(即模糊的图像本身就未包含场景中的细节信息),可以借助海量的同类数据或相似数据训练一个神经网络,然后让神经网络获得对图像内容进行理解、判断和预测的功能,这时候,再把待处理的模糊图像输入,神经网络就会自动为其添加细节,尽管这种添加仅仅是一种概率层面的预测,并非一定准确。

  1. 学习门槛高

机器学习需要掌握C++,python等开发语言,需要掌握流行的各类框架技术,如tf,caffe。一个完整的项目需要web开发,数据库管理,Linux运维等。同时对算法编写者的代码调试能力有非常高的要求,以及较好的数学功底。

项目用途

  1. 具具有历史意义的照片应该被转换为彩色,使其保留重要的历史价值。
  2. 智能手机双摄像头中的黑白的长焦镜头也需要一种高效的算法将其还原为认知彩色,降低黑暗中的噪点。
  3. 有损图片数据压缩,夜间红外摄像头还原真彩色,视频修复等专业领域提供新的思路和实践方法。
  4. 分支训练,根据文物的形状无监督学习聚类并推测色彩,支持全局提示网络。

环境设置

开发测试环境

  • 系统版本 Ubuntu16.04_Server

  • CPU: E5-2680 X 2 计 20C40T

  • RAM: ECC 8G X 8 计 64GB

  • SSD: Intel 256G + 三星256G

  • 显卡: NVIDIA 1070 8G

  • 预装深度学习框架如下: cuda9, cudnn7, tensorflow1.8.0, tensorboard, jupyter, theano, chainer, Cython, graphviz, pydot, opencv-python, xgboost, cntk-gpu, mxnet-cu90, torch, torchvision, lightgbm, keras, tqdm, scipy, matplotlib, sklearn

相关项目汇总

About

给出无类标的黑白图片或视频,在保证语义正确的情况下,利用计算机视觉技术将其转换为彩色

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published