【文末送书】火遍全网的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

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.