【OpenVI-视觉生产系列】老片图像上色,一键开源体验

简介: 随着摄影技术的演进,彩色照片在现在已经非常普及,但仍然有大量历史黑白照片遗留。图像上色可以对这些宝贵的旧时代遗产进行修复,令老照片重获新生。

一、背景

 图像上色(Image Colorization)顾名思义,是指对黑白图像添加色彩,使其变成彩色图像。更具体的说,我们常见的彩色图像通常是三通道图像,而黑白图像只有一个灰度通道,因此,图像上色旨在利用单一灰度通道恢复图像的两个彩色通道。

我们使用真实历史黑白老照片作为输入,经过上色模型处理,最终可以得到观感惊艳的彩色照片!立即体验:https://vision.aliyun.com/experience/detail?tagName=imageenhan&children=ColorizeImage1.png 

                       原图来自:1945.“Abandoned boy holding a stuffed toy animal.”


二、方法

 早期图像上色通常依赖手工或基于参考图的方法,随着深度学习的普及,越来越多工作使用卷积神经网络完成图像上色任务。

 发表在ECCV2016 的 CIC 模型将上色视为一个分类问题,使用一个纯卷积神经网络进行上色,从此揭开了卷积神经网络在上色领域应用的序幕。

2.png

                                                     图片来自CIC

 后来,为了提高上色结果的语义贴合度和色彩鲜艳度,有一些方法使用 UNet 或 GAN 网络完成上色。ChromaGAN 使用一个编码器-解码器网络完成图像重建,并将 GAN 损失引入上色过程。ToVivid 模型通过利用预训练 GAN 的丰富生成先验,实现生成合理和丰富多彩的结果。

3.png

                                                              图片来自Tovivid

4.png

                                                                图片来自ColTran

 近两年,随着 Transformer 模型在视觉领域大放异彩,众多基于视觉 Transformer 的上色模型逐一涌现,这些模型充分利用了 Transformer 的强大建模能力和全局注意力优势,因而实现了更加惊艳的上色效果。Google 提出的 ColTran 模型使用三个独立的子网络分别实现粗上色、颜色上采样和空间上采样。ColorFormer 则创新的提出 GLH-Transformer 来更好的提取图像特征,并结合 Color Memory 辅助完成彩色解码。

100.png

                                                               图片来自ColTran

101.png

                                                               图片来自ColorFormer

 接下来,本文针对一个最近基于 Transformer 的上色模型 DDColor 进行展开介绍,带读者了解上色领域的前沿技术。DDColor 模型的整体结构如下:

7.png

 可以看到,DDColor 模型包括一个图像编码器和两个解码器,分别是图像解码器和颜色解码器。图像解码器完成视觉特征的上采样过程,而颜色解码器基于一个 Transformer 进行颜色查询的解码。

 具体而言,颜色解码器使用多尺度的视觉特征帮助颜色嵌入的学习,因此学习到强语义相关的颜色嵌入。

8.png

              图片来自颜色解码器

 同时,论文还提出一个色度损失,帮助提升生成结果的色彩鲜艳度。

9.png

 模型使用 ImageNet 数据集进行训练,ImageNet数据集是一个大型计算机视觉数据集,包合 1400 多万张图片。ImageNet 数据集一直是评估图像上色算法性能的基准。DDColor 利用 ImageNet 训练集训练而成。


三、体验

1. 运行依赖安装

 方式一:如果有本地或云服务器计算资源,可以在本地进行环境安装,以更灵活的方式体验算法模型。

 方式二:如果觉得本地安装较为复杂,也可以在线运行 ModelScope 平台提供的 Notebook。Notebook 中预先安装了官方镜像,因此无需再进行手动环境安装,更加方便快捷。


2. 图像准备

准备一张黑白图像或者彩色图像(输入一张彩色图像,也可以进行重上色),图像可以在本地或网络上,记录下图像的地址。


3. 调用 pipeline 进行图像上色

1.import cv2

2.from modelscope.outputs import OutputKeys

3.from modelscope.pipelines import pipeline

4.from modelscope.utils.constant import Tasks

5.

6.img_colorization = pipeline(Tasks.image_colorization,  

7.                      model='damo/cv_ddcolor_image-colorization')

8.img_path = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/audrey_hepburn.jpg'

9.result = img_colorization(img_path)

10.cv2.imwrite('result.png', result[OutputKeys.OUTPUT_IMG])

这样,我们就获得了一张上色后的彩色图像(result.png)。


4. 更多玩法

 图像上色是视觉增强的一个子问题,然而,对于视觉增强这个领域,还有很多有趣的算法和应用。在ModelScope 社区,目前已经上线了包括去噪、超分、调色、插帧等在内的多种视觉增强算法。对于低质量的原始视频或图像,经过增强修复处理后都能变得焕然一新,得到极致高清、饱满、丝滑的体验。


四、参考

Richard Zhang, Phillip Isola, and Alexei A Efros. Colorful image colorization. In European conference on computer vision, pages 649–666. Springer, 2016.

Vitoria P, Raad L, Ballester C. Chromagan: Adversarial picture colorization with semantic class distribution[C]//Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision. 2020: 2445-2454.

Yanze Wu, Xintao Wang, Yu Li, Honglun Zhang, Xun Zhao, and Ying Shan. Towards vivid and diverse image colorization with generative color prior. In Proceedings of the IEEE/CVF International Conference on Computer Vision, 2021.

Manoj Kumar, Dirk Weissenborn, and Nal Kalchbrenner. Colorization transformer. In International Conference on Learning Representations, 2021.

Ji Xiaozhong, Boyuan Jiang, Luo Donghao, Tao Guangpin, Chu Wenqing, Xie Zhifeng, Wang Chengjie, and Tai Ying. Colorformer: Image colorization via color memory assisted hybrid-attention transformer. In European Conference on Computer Vision (ECCV), 2022.

Kang X, Yang T, Ouyang W, et al. DDColor: Towards Photo-Realistic and Semantic-Aware Image Colorization via Dual Decoders[J]. arXiv preprint arXiv:2212.11613, 2022.

相关文章
|
小程序 IDE 搜索推荐
【社区每周】小程序新增自定义tabBar功能;支持指定默认启动首页(2022年6月第三期)
【社区每周】小程序新增自定义tabBar功能;支持指定默认启动首页(2022年6月第三期)
330 0
|
机器学习/深度学习 自然语言处理 安全
ACL 2025 | GALLa:用图结构增强代码大模型,让代码理解更精准!
通过级联多模态架构将代码结构图对齐到大模型表征中
877 69
|
8月前
|
数据采集 存储 JSON
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
|
存储 资源调度 Java
计算机基础(1)——计算机体系结构和组成
计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。 在过去的几十年里,计算机科学经历了令人瞩目的飞速发展。经历了电子管、晶体管、集成电路的世代发展,体积越来越小、性能越来越强,为人类带来了巨大的便利和变革,下面我们来回顾计算机的发展历程。
3888 5
计算机基础(1)——计算机体系结构和组成
|
存储 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:成本优化-软硬协同篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以超越原记录2.5倍的性能登顶排行榜,实现每分钟20.55亿笔交易,单位成本仅0.8元人民币,刷新性能与性价比双纪录。此外,还介绍了国产轻量版PolarDB MySQL的推出,满足市场对高性价比的需求。
|
机器学习/深度学习 人工智能 达摩院
DDColor:AI图像着色工具,优秀的黑白图像上色模型,支持双解码器!
DDColor:AI图像着色工具,优秀的黑白图像上色模型,支持双解码器!
1121 3
|
机器学习/深度学习 人工智能 分布式计算
因果推断:效应估计的常用方法及工具变量讨论
日常工作中很多的策略/产品的效果是无法设计完美的随机实验的,要求我们从观察性数据中去(拟合随机试验)发现因果关系、测算因果效应。
3141 0
因果推断:效应估计的常用方法及工具变量讨论
|
存储 机器学习/深度学习 测试技术
模型量化技术综述:揭示大型语言模型压缩的前沿技术
在这篇文章中,我将在语言建模的背景下介绍量化,并逐一探讨各个概念,探索各种方法论、用例以及量化背后的原理。
904 0
模型量化技术综述:揭示大型语言模型压缩的前沿技术

热门文章

最新文章