Victory组近期整理了灰度图像着色开源代码,文章刊登于《中国计算机学会计算机视觉专委会简报》2019年第2期上。

灰度图像(gray image)是每个像素只有一个采样颜色的图像,即单通道图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度,理论上这个采样可以任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。

灰度图像着色是将单通道的灰度图像,通过一定的操作,使其成为三通道的彩色图像的方法,在在影视处理、数字娱乐和动漫制作等方面有着广泛的应用前景。

在灰度图像着色领域,传统方法信息提取率不高,着色效果不理想,但随着人工智能的不断发展,灰度图像着色的效果越来越让人满意。目前灰度图像着色一般模式为:首先利用神经网络的信息提取的高效性,对图像中的各类信息及特征进行提取,构建并训练深度学习模型。训练网络时与原图像进行对比,逐渐减小网络输出结果的信息、分类等各类型的损失。训练完成后,只需向网络输入一张灰度图片,即可生成一张颜色饱满、鲜明逼真的彩色图片。下图为灰度图像着色示意图。

图1 灰度图像着色示意图

本文着重介绍几个基于深度学习的灰度图像说色技术的开源代码,包括训练深度学习模型的常用数据集和几个经典的图像着色深度神经网络的模型。

1.ImageNet数据集

介绍:ImageNet 是一个计算机视觉系统识别项目,是目前世界上图像识别最大的数据库。是美国斯坦福的计算机科学家,模拟人类的识别系统建立的。能够从图片识别物体。ImageNet是一个非常有前景的研究项目,未来用在机器人身上,就可以直接辨认物品和人了。超过1400万的图像URL被ImageNet手动注释,以指示图片中的对象;在至少一百万个图像中,还提供了边界框。ImageNet包含2万多个类别; 一个典型的类别,如“气球”或“草莓”,包含数百个图像。

主页:http://www.image-net.org/

2.Place365数据集

介绍:Places365是Places2数据库的最新子集。 Places365有两个版本:Places365-Standard和Places365-Challenge。Places365-Standard系列列车拥有来自365个场景类别的约180万张图像,每张图像最多可存储5000张图像类别。Places365-Challeng系列还有620万张图片以及Places365-Standard的所有图片(所以总共800万张图片),每张图片最多有40,000张。

主页:http://places2.csail.mit.edu/

  1. 3.Colorful image colorization(CNN模型)

论文:Zhang R, Isola P,Efros A A. Colorful image colorization[C]//European conference on computervision. Springer, Cham, 2016: 649-666.

工作:该方案在自动图像着色的图形学领域取得了进步:设计了一个合适的损失函数来处理着色问题中的多模不确定性,维持了颜色的多样性;介绍了一种新型的着色算法评估框架,而且这种评估框架有应用到其他图像合成任务的潜力;通过在百万数量级的彩色图片上训练在这类任务上抵达了一个新的水准。该方法将图像着色任务转化为一个自监督表达学习的任务,并且在一些基准上获得了最好的效果。下图为网络结构图。

图2 Colorful image colorization网络结构图

代码:http://richzhang.github.io/colorization/

4.Image Colorization with Generative Adversarial Networks(GAN模型)

论文:NazeriK, Ng E. Image Colorization with Generative Adversarial Networks[J]. arXivpreprint arXiv:1803.05400, 2018.

工作:该方法使用GAN自动将灰度图像着色到可接受的视觉程度的彩色图像。将当前方法扩展到高分辨率图像。网络是针对公开可用的数据集(如CIFAR-10和Places365)进行训练。下图为该网络结构图:

图3 网络结构图

5.Interactive Deep Colorization(CNN模型)

论文:ZhangR, Zhu J Y, Isola P, et al. Real-time user-guided image colorization withlearned deep priors[J]. arXiv preprint arXiv:1705.02999, 2017.

工作:该方法是一种用于用户引导的图像着色的深度学习方法。系统将灰度图像以及本地用户的提示共同映射带卷积神经网络(CNN)中去,最终输出彩色图像。该方法通过模拟用户输入训练一百万张图像。为了引导用户进行有效的输入选择,系统根据输入图像和当前用户输入推荐可能的颜色作为备选颜色。着色在单个前馈过程中执行,可实现实时使用。下图为该方法的网络结构图:

图4 Interactive DeepColorization网络结构图

代码:https://richzhang.github.io/ideepcolor

6.Automatic Colorization of Grayscale Images(CNN模型)

论文:IizukaS, Simo-Serra E, Ishikawa H. Let there be color!: joint end-to-end learning ofglobal and local image priors for automatic image colorization withsimultaneous classification[J]. ACM Transactions on Graphics (TOG), 2016,35(4): 110.

工作:该方法结合了全局先验和局部图像特征。基于卷积神经网络,加入深层网络具有融合层,允许网络合并小图像块的局部信息和整个图像的全局信息,以端到端的方式进行训练。此外,与大多数基于CNN的现有方法不同,该架构可以处理任何分辨率的图像。利用现有的大型场景分类数据库来训练模型,利用数据集的类标签来更有效地和区别地学习局部信息和全局信息。下图为模型示意图:

图5 Automatic Colorization of Grayscale Images模型示意图

代码:https://github.com/williamFalcon/pix2pix-keras

7.Deep Exemplar-basedColorization(CNN模型)

论文:He M, Chen D, Liao J, et al.Deep exemplar-based colorization[J]. ACM Transactions on Graphics (TOG), 2018,37(4): 47.

工作:该方法是一种基于样本的局部着色的深度学习方法。该方法使用的端到端着色网络不是像传统的基于示例的方法那样使用手工制作的规则,而是学习如何从大规模数据中选择传播方式和预测颜色。即使在使用与输入灰度图像无关的参考图像时,该方法也可以很好地执行并且很好地推广。该网络允许用户通过简单地提供不同的参考来实现可定制的结果,只需选择顶部参考建议,就可以完全自动执行着色。

代码:https://github.com/msracver/Deep-Exemplar-based-Colorization

于浩洋

北京电子科技学院在读研究生,研究方向为同态加密,图像生成。

Email:

pec7@163.com

图像识别开源代码_灰度图像着色开源代码相关推荐

  1. ros开源课程_如何将开源纳入计算机科学课程

    ros开源课程 在今年的Grace Hopper会议上,我主持了一个小组,讨论为什么以及如何将开放源代码纳入计算机科学课程. 小组成员是四位计算机科学讲师(均为女性),他们已经在课堂上使用了开源项目. ...

  2. 程序开源与不开源区别_什么是开源程序办公室? 为什么需要一个?

    程序开源与不开源区别 开源计划办公室是任何现代公司必不可少的组成部分,其计划要有一个雄心勃勃的计划来影响软件生态系统的各个领域. 如果公司希望增加影响力,澄清其开源消息传递,最大化其项目影响力或提高其 ...

  3. idea非开源安装指南_开发人员开源指南

    idea非开源安装指南 想为一个开源项目做贡献,但不知道从哪里开始? 在不熟悉的代码库中找到要解决的第一个问题似乎很困难-甚至在数百万行代码的情况下更是如此-但通常比看起来容易得多. 本文应该为您提供 ...

  4. 项目众包 开源项目_如何通过开源项目获利并保持活力

    项目众包 开源项目 Chen Ravid is a free software enthusiast and serial entrepreneur. He is one of the foundin ...

  5. apm 韩国开源项目_韩国的开源状态

    apm 韩国开源项目 开源软件在世界各地呈指数增长,而韩国是这一趋势的重要组成部分. 尽管大多数韩国开源项目没有得到Apache基金会 , Linux基金会和类似组织的项目引起的国际关注,但它们正在为 ...

  6. 什么样的代码是好代码_什么是好代码?

    什么样的代码是好代码 编码最佳实践 (Coding Best-Practices) In the following section, I will introduce the topic at ha ...

  7. python 代码_如何让Python代码加速运行?

    Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足.但是,有很多时候,Python 的效率并没有想象中的那么夸张.本文对一些 Python 代码加速运行的技巧 ...

  8. 如何在vscode运行php代码_如何提高 PHP 代码的质量?

    说实话,在代码质量方面,PHP 的压力非常大.通过阅读本系列文章,您将了解如何提高 PHP 代码的质量. 我们可以将此归咎于许多原因,但这肯定不仅仅是因为 PHP 生态系统缺乏适当的测试工具.在本文中 ...

  9. 安卓清理垃圾清理代码_用方面清理代码

    安卓清理垃圾清理代码 在我以前的文章中,我描述了字母转换,并且提到了我们使用AspectJ来解决该任务,但是我没有提及AspectJ的工作原理和一般性方面. 因此,在接下来的几行中,我将解释: 什么是 ...

最新文章

  1. GPT-2大战GPT-3:OpenAI内部的一场终极对决
  2. python中string.digits_Python string.hexdigits方法代码示例
  3. WPF MVVM 验证
  4. 无限滑动的banner图,中间显示大图两边显示一部分,无限滚动
  5. JavaSE学习--泛型
  6. 计算机网络投标书质量保证措施,计算机网络标书模板.doc
  7. 图像处理:根据像素坐标及像素尺寸大小裁剪遥感影像
  8. 基因、DNA、碱基、染色体之间的关系是什么?
  9. Apache Kafka教程A系列:与Storm整合
  10. rtmp协议分析(Message 消息,Chunk分块)
  11. 力扣每日一题第495题提莫攻击
  12. “守法规知礼让、安全文明出行”背后需要良好的交通环境支撑 | 聚焦守法知礼...
  13. docker设置开启机自启动
  14. 【笑话】程序员的幽默,你可能看不懂 。。。
  15. 《计算机网络自顶向下方法》笔记
  16. Spring Boot应用的启动和停止(Spring Boot应用通过start命令启动)
  17. 2010.09.28_ximo_纠正下VMP脱壳中的修复DLL的错误
  18. 实验十—基本统计分析(三)
  19. JPA 菜鸟教程 18 自动把firstName+lastName合并为name字段
  20. 【2万字长文】深入浅出主流的几款小程序跨端框架原理

热门文章

  1. 分页插件PageHelper的使用方法
  2. 怎么从mysql注册表删除用户_mysql 创建和删除用户
  3. ga tsp matlab,遗传算法(GA)求解TSP问题MATLAB程序
  4. git如何查看缓存区文件内容_详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别...
  5. 虚拟磁盘没有可用的合格服务器,VMware提示:没有更多空间可供虚拟磁盘***.vmdk使用 所引发的故障及处理...
  6. 主板上的jrgb接口干什么用_用思维导图,解读选配主板的过程,重点解读兼容与接口的搭配技术...
  7. 排序算法之----快速排序(快速上手快速排序)
  8. python怎么切换中文键盘_python模拟键盘输入 切换键盘布局过程解析
  9. php订阅与推送,PHP用户关键词订阅推送文章功能
  10. (BFS)Knight Moves(hdu1372)