65.9K
CodeProject 正在变化。 阅读更多。
Home

基于图像到图像转换的移动风格迁移

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.60/5 (2投票s)

2021年6月14日

CPOL

4分钟阅读

viewsIcon

7078

downloadIcon

114

在本文中,我们将讨论条件生成对抗网络(CGAN)的概念。

引言

在这一系列文章中,我们将介绍一个基于循环一致生成对抗网络(CycleGAN)的移动图像到图像翻译系统。我们将构建一个可以进行非配对图像到图像翻译的CycleGAN,并向您展示一些有趣且在学术上具有深度的例子。

在这个项目中,我们将使用

我们假设您熟悉深度学习的概念,以及Jupyter Notebooks和TensorFlow。欢迎您下载项目代码

图像到图像翻译

风格迁移是利用图像到图像翻译技术实现的。这项技术将图像从源域A迁移到目标域B。这到底意味着什么?简而言之,图像到图像翻译允许我们将一个图像的属性应用到另一个图像上。

图像到图像翻译有一些有趣的(和有趣的!)应用,例如风格迁移,它可以将一张夏天拍摄的照片变成看起来像冬天拍摄的,反之亦然。

或者让马看起来像斑马。

图像到图像翻译也是深度伪造(deep fakes)的驱动技术,它可以让你将一个人的脸数字地移植到另一个人身上。所以,如果你一直想知道如果尼古拉斯·凯奇扮演卢克·天行者会是什么样子,图像到图像翻译可以帮助你找到答案。

图像到图像翻译最早在2016年的一篇题为《Image-to-Image Translation with Conditional Adversarial Networks》的文章中被提出。这个过程涉及像素到像素的翻译,因此它被称为pix2pix CGAN

总而言之,GAN可以学会将噪声向量z映射到输出图像y

G: z→y

相比之下,pix2pix CGAN可以将输入图像x和噪声向量z映射到另一个图像y

G: x,z→y

下图说明了这一概念。

上图清楚地说明了为什么模型是生成性的、监督性的和受控的(或引导的)。模型接收一个输入的示例图像,该图像不一定呈现完整或可理解的图像,以及一个输出图像或地面真相。

学习过程涉及训练CGAN,使其能够以受控的方式将图像从域A(输入)翻译到域B(输出),反之亦然。因此,如果您在训练过程中决定更改输出示例图像,您的模型将生成与此处不同的图像。这意味着生成的图像是由地面真相引导的。

生成对抗学习

如下图所示,生成模型(a)是一个能够生成新数据供判别模型(b)作为输入的模型,判别模型(b)的作用是区分(或辨别)数据样本。

一个生成对抗网络(GAN)是一个结合了生成模型和判别模型来执行单一任务的神经网络:生成新的数据样本。近年来,这种处理方式取得了很大进展,提高了生成学习网络的性能,并帮助它们生成更好的图像。

诸如条件生成对抗网络(CGAN)深度卷积生成对抗网络(DCGAN)f-GANWasserstein生成对抗网络(WGAN)等网络是原始GAN的更新版本,原始GAN存在一些局限性,如梯度消失、多样性差和训练困难。

以上所有模型都很好。然而,在图像到图像翻译的背景下,CGAN更有趣。这是因为CGAN通过在建模中引入一个条件变量y,提供了一种引导生成图像的方法。

我们系列中的CycleGAN

使用pix2pix CGAN的图像到图像翻译通过像素到像素的映射将图像从一个域映射到另一个域,这意味着对于每个图像样本都应该有配对的图像可用。然而,配对的训练图像并非总是可用,这使得任务变得困难。这促使研究人员提出了一种新的基于GAN的网络,提供非配对图像到图像的翻译。

该网络于2017年提出,名为《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks (CycleGAN)》。该网络提出了一种新颖的方法,可以将图像从域X映射到域Y,而无需配对图像样本。因此,使用该网络,您可以将猫转换为狗,将男性面孔转换为女性面孔,等等。

这种方法启发了人们开发出非常有趣和令人兴奋的应用,例如季节翻译风格迁移、性别转换、通过FaceApp的面部交换,以及——最新的——通过DeepNostalgia为已故人士的照片制作动画。我们将在我们的系列中采用非配对图像的方法。

后续步骤

下一篇文章中,我们将讨论CycleGAN的架构,并解释每个架构组件是如何实现的。敬请期待!

© . All rights reserved.