【文末送书】火遍全网的AI给老照片上色,这里有一份详细教程!

2023-11-07 17:10

本文主要是介绍【文末送书】火遍全网的AI给老照片上色,这里有一份详细教程!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关注公众号,发现CV技术之美

深度学习最令人兴奋的应用之一是智能照片美化,例如为黑白图像着色、破损图片修复以及去模糊等。

以黑白图像着色为例,通过将 AI 与照片着色相结合,即使不会使用Photoshop 等图片编辑工具,为黑白照片着色也可以一键完成。

59ff7b88e8f080f53e0ab958786812b6.gif

这具体是如何实现的?下面就来告诉你!

1

颜色空间

当我们加载图像时,会得到一个3维(高度、宽度、颜色通道)数组,其中颜色通道的数据代表 RGB 颜色空间中的颜色,每个像素都有 3 个数字,表示该像素的红色、绿色和蓝色值。

在图1中,最左侧为原始图像,右边分别为红色、绿色和蓝色通道。为图片着色时,根据给定的黑白图片,需要判断每个位置的像素的RGB值分别是多少,颜色取值范围是0~255,即每个像素都存在一个256³ 的预测问题。

01225d7310bc72dc69b993713bb31ffa.png

图1

CIE1976L*a*b*颜色空间,是1976年由国际照明学会(CIE)推荐的均匀色空间。该空间是三维直角坐标系统,以明度L*和色度坐标a*、b*来表示颜色在色空间中的位置。L*表示颜色的明度,此通道显示为黑白图像;a*正值表示偏红,负值表示偏绿;b*正值表示偏黄,负值表示偏蓝。图2表示L*a*b*颜色空间的每个通道。

a42544dd583e76a4b3f8ffcbf648f598.png

图2

使用L*a*b*颜色空间为照片着色,为着色模型输入L* 通道,输出其他两个通道(a*,b*)的预测,其选择大约有 65000 个,远小于RGB颜色空间,因此我们可以选择使用L*a*b*颜色空间的数据作为照片着色模型的训练数据。

2

生成对抗网络

GAN(Generative Adversarial Networks,生成对抗网络)是生成模型的一种。

GAN网络结构中包含两个模型:“生成器”模型和“判别器”模型,“生成器”用来生成数据,“判别器”对数据的真伪进行判别。

在GAN模型训练时,如果把“生成器”看成是一个伪造名画的画家,那么“判别器”就是一个名画鉴别家。

初始阶段“生成器”技艺拙劣,伪造的名画非常轻易的被“判别器”识别为假画。“生成器”根据判别依据对自身造假能力进行提升。经过一段时间的“修炼”,“生成器”再次把伪造的名画交给“判别器”,“判别器”无法辨别真伪,于是学习更复杂的辨别技能,直到可以识别出伪造的名画。

接下来,“生成器”和“判别器”重复以上过程,进行新一轮学习。

"生成器"和“判别器”就是在一种对抗的状态中相互博弈、学习、成长,直到在规定条件下“判别器”无法判别“生成器”生成数据的真伪。

使用GAN实现照片着色,模型结构如图3所示。

083d34c494de7d798e8edf6c2ab998e2.png9c73bcc4480567b05342acf2a73971dc.png

图3

使用来自 COCO数据集的 8,000 张图像进行训练,每轮训练时长约4分钟左右,经过100轮后,生成效果如图4所示。

29ff8d3d61a87ec71e58b23845fef5b9.png

图4

模型对图像中一些最常见的物体能够完成基本着色,例如天空、树木等,但无法为稀有物体着色。同时,还存在一些颜色溢出和圆形颜色块,着色效果不理想。

因此,需要改变我们的策略!

3

自注意力生成对抗网络

在介绍新的解决方案之前先来区分两个概念:着色恢复

着色严格来说是将照片从单色变为可信的颜色,着色是一个“不受约束”的问题,很多东西(例如衣服)没有一种准确的颜色。因此着色是一个艺术创作的过程,神经网络对此很难做到令人满意。

恢复是替换图片中的丢失和损失,使图片变得完整如新。恢复中解决褪色问题在没有原始参照物的情况下,等同于着色,都是不受约束的艺术创作。

综上所述,在评估着色和恢复效果时,如果人们看到生成的图片时无法觉察出图片被处理过,并且能从中感到愉悦,则认为着色和恢复工作完成。

那么新的着色策略是什么呢?

“生成器”采用与U-Net结构类似的U形神经网络,如图5所示。

b52ca30808fd5e24a7809c908ffa3bb6.png

图5

为此“生成器”输入灰度图,左侧提取图像特征对内容进行识别,右侧根据内容识别结果还原并对结果进行着色。

“判别器”使用Critic卷积神经网络,它在输出层是卷积而不是线性层,它很大(宽),但很简单。它输入图像,输出一个分数值,表示真实度。

新的解决方案中最重要的就是Self-Attention GAN(自注意力生成对抗网络)的应用,把注意力机制放到“生成器”和“判别器”中。

使用基础GAN生成图像的细节把控不好,原因主要是使用卷积神经网络的图像生成,基本上都是依据局部感受野,以局部感受为主,缺少全局或其他信息,因此只在低分辨率中以点状的形式生成高分辨率细节。

如图6所示,对于花朵的着色存在不均匀的问题,其他地方也出现了错误的颜色。

8709a422fbf48f1bbb7eb08f244da039.png

图6

自注意力机制在模拟远程依赖性的能力、计算效率和统计效率之间展现出更好的平衡。自注意力机制将所有位置处的特征的加权和作为该位置的响应,其中权重 (或注意向量 ) 仅以较小的计算成本来计算。

Self-Attention GAN将Self-Attention机制引入卷积GAN,可以很好的处理长范围、多层次的依赖,生成图像时很好地协调每一个位置的细节和远端的细节,“判别器”还可以更准确地对全局图像结构实施复杂的几何约束。

以下是一些生成案例。

1)奥黛丽·赫本

8f86f5200ea11d241c7aa99a7f6102fd.png

图7

2)冬季马路上骑车的人


c8f57b9c85e02d4aff9f6f1af7b6d0f2.png1b44b6828802f116436dfdce765719bc.png图8

3)花

4d8205f539ac7ba617d80446d49319f3.png

63078ab1384410ffe43a358cf13c9e4e.png图9

4)草地上的小狗

82f71a6f60343cb1dc503bfb7e7a298d.png

b92f5bab0099b1d13f66ad6159f5e1ae.png图-10

5)中国江南水乡

679dd4721520e88a63d6337fc786ace4.png

849c664f5e2f39f49957e8791c9ed7a4.png图11

虽然有的生成图片中还存在一些异常,例如奥黛丽·赫本的耳朵后面皮肤颜色,但是整体效果已经非常不错,注意力层在颜色的一致性和总体质量上的表现有很大的惊喜。

除了自动着色,图像超分辨率、去模糊等也是 GAN 的重要关注领域。

图像超分辨率可以通过上采样从低分辨率图像生成高分辨率图像,图像去模糊中“生成器”用于生成清晰图像,以下是部分基于GAN的去模糊案例。

37cdbb0a2ce6552390f4561e8fb15354.png

图12

d9f86fe7b24aa9c994c1a28533347123.png

图13

日前,由达内教育创始人、董事长韩少云,达内教育集团技术研发副总裁、AI研究院院长郑政等联合编著的《计算机视觉应用与实战》正式发售,其中就详细讲解了以上技术

这是达内教育“人工智能应用与实战系列”教材的第一本书籍,致力于帮助读者快速掌握计算机视觉的实战技能,为高薪就业加码。

7277db23738d467203e5c21d9364a2c9.png

《计算机视觉应用与实战》主要围绕计算机视觉在农业、医学、工业等领域的案例,如植物病虫害检测、眼底血管图像分割、口罩佩戴检测等进行讲解,理论结合实际,采用大量插图,辅以实例,可以帮助读者快速理解计算机视觉若干模型和算法的基本原理与关键技术。

此外,《计算机视觉应用与实战》中的理论知识与实践的重点和难点部分均采用微视频的方式进行解读,可以降低读者的学习成本,高效领会核心要素。

d1b8417619960414cf166a24a8374228.png

abcae4eb18d4ae3697622708bd047b0a.png

购买链接⬆⬆

互动赠书

8d225b96fe023e12cc89e5d92980028b.png

在本文下方留言区推荐一篇近期所读论文以及简述推荐理由,如:

论文:Prototype-supervised Adversarial Network for Targeted Attack of Deep Hashing

地址:https://arxiv.org/abs/2105.07553

将由CV君选取5位小伙伴(走心且要对别人有价值),赠送《计算机视觉应用与实战一书。

活动截止时间:2022.6.24-13:00

▼点击阅读原文,了解本书详情~

这篇关于【文末送书】火遍全网的AI给老照片上色,这里有一份详细教程!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/365067

相关文章

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa