曾道免费资料大全正版手把手教你在TensorFlow2,

日期:2019-09-13编辑作者:产品中心

原标题:视频换脸新境界:CMU不仅给人类变脸,还能给花草、天气变脸 | ECCV 2018

铜灵 发自 凹非寺

允中 发自 凹非寺

圆栗子 发自 凹非寺

量子位 出品| 公众号 QbitAI

量子位编辑 | 公众号 QbitAI

曾道免费资料大全正版 1

CycleGAN,一个可以将一张图像的特征迁移到另一张图像的酷算法,此前可以完成马变斑马、冬天变夏天、苹果变桔子等一颗赛艇的效果。

前几天发布的一篇文章中我们曾提到国外的AI捏脸应用FaceApp引发大量关注。它能让人一键变成老人,一键返老还童,一键由男变女,一键破涕为笑,一键失去头发……

把一段视频里的面部动作,移植到另一段视频的主角脸上。

曾道免费资料大全正版 2

福布斯报道说,它在Google Play的下载量已经超过了1亿。

大家可能已经习惯这样的操作了。

这行被顶会ICCV收录的研究自提出后,就为图形学等领域的技术人员所用,甚至还成为不少艺术家用来创作的工具。

苹果用户也同样热情,App Annie数据显示,目前在121个国家的iOS商店排名第一。

曾道免费资料大全正版 3

曾道免费资料大全正版 4

看起来,这是一种神奇的黑科技,但是实际上,揭开神秘的面纱,技术本身并非遥不可及。从GAN的角度来探索解决这类问题,能做到什么样呢?

就算目标主角并不是人类,大概也算不上精彩。眼睛鼻子嘴,至少零件齐全

也是目前大火的“换脸”技术的老前辈了。

现在,飞桨核心框架Paddle Fluid v1.5宣布开源了PaddleGAN图像生成库,为用户提供易上手的、一键式可运行的GAN模型。

那么,怎样的迁移才可走出这个框框,让这个星球上的万物,都有机会领取视频改造的恩泽?

曾道免费资料大全正版 5

飞桨(PaddlePaddle)致力于让深度学习技术的创新与应用更简单。生成式对抗网络近年来被广泛应用于无监督学习任务以及生成任务中,通过让两个神经网络相互博弈的方法进行学习,常用于生成以假乱真的图片、影片、三维物体模型等。欢迎大家来体验~

曾道免费资料大全正版 6

如果你还没学会这项厉害的研究,那这次一定要抓紧上车了。

下面送上真·干货!

按着你想要的节奏开花:中老年表情包利器

现在,TensorFlow开始手把手教你,在TensorFlow 2.0中CycleGAN实现大法。

1.效果实测

来自卡耐基梅隆大学的团队,开发了自动变身技巧,不论是花花草草,还是万千气象,都能自如转换。

这个官方教程贴几天内收获了满满人气,获得了Google AI工程师、哥伦比亚大学数据科学研究所Josh Gordon的推荐,推特上已近600赞。

以下效果均采用百度与哈工大联合开发的STGAN模型在飞桨开源的实现

曾道免费资料大全正版 7

曾道免费资料大全正版 8

曾道免费资料大全正版 9

云,也变得急切了

有国外网友称赞太棒,表示很高兴看到TensorFlow 2.0教程中涵盖了最先进的模型。

曾道免费资料大全正版 10

或许是怀着超越大前辈Cycle-GAN(来自朱俊彦团队) 的意味,团队给自家的GAN起了个非常环保的名字,叫Recycle-GAN

这份教程全面详细,想学CycleGAN不能错过这个:

看到标签是“Bald”的变脸照片,是不是很多读者感受到了一种来自骨髓的凉意,大家多保重!

这位选手,入选了ECCV 2018

详细内容

  1. PaddleGAN支持的模型与任务

Recycle之道,时间知道

在TensorFlow 2.0中实现CycleGAN,只要7个步骤就可以了。

PaddleGAN图像生成模型库覆盖当前主流的GAN算法,可简单上手各类GAN任务,也方便扩展自己的研究。

Recycle-GAN,是一只无监督学习的AI。

1、设置输入Pipeline

Pix2Pix和CycleGAN采用cityscapes数据集进行风格转换,StarGAN,AttGAN和STGAN采用celeba数据集对图片进行局部或者整体的属性修改。

不成对的二维图像数据,来训练视频重定向(Video Retargeting) 并不容易:

安装tensorflow_examples包,用于导入生成器和鉴别器。

STGAN是由百度和哈工大联合研发的模型,提出STGAN方法用于图片/视频的端到端属性转换。对传统方法提出了两点改进,在celebA数据集上转换效果好于已有的方法:

一是,如果没有成对数据,那在视频变身的优化上,给的限制就不够,容易产生不良局部极小值 (Bad Local Minima) 而影响生成效果。

!pip install -q git+

在自编码网络结构中引入选择性属性编辑单元强化了属性编辑的效果。

二是,只依靠二维图像的空间信息,要学习视频的风格就很困难。

2、输入pipeline

提出了将基于属性标签替换为基于属性更改的训练机制。

曾道免费资料大全正版 11

在这个教程中,我们主要学习马到斑马的图像转换,如果想寻找类似的数据集,可以前往:

  1. 预训练模型

你开花,我就开花

本次PaddleGAN总共开源5个预训练模型。安装好飞桨环境后,可以下载预训练模型快速验证推理效果。

针对这两个问题,CMU团队提出的方法,是利用时间信息(Temporal Information) 来施加更多的限制,不良局部极小值的现象会减少。

在CycleGAN论文中也提到,将随机抖动和镜像应用到训练集中,这是避免过度拟合的图像增强技术。

每个GAN都给出了一份测试示例,放在scripts文件夹内,用户可以直接运行测试脚本得到测试结果。

另外,时间、空间信息的搭配食用,也能让AI更好地学到视频的风格特征

和在Pix2Pix中的操作类似,在随机抖动中吗,图像大小被调整成286×286,然后随机裁剪为256×256。

执行以下命令得到CyleGAN的预测结果:

曾道免费资料大全正版 12

在随机镜像中吗,图像随机水平翻转,即从左到右进行翻转。

执行以下命令得到Pix2Pix的预测结果:

时间信息:进度条撑不住了 (误)

曾道免费资料大全正版 13

执行以下命令得到StarGAN,AttGAN或者STGAN的预测结果:

重要的是,视频里的时间信息唾手可得,无需寻觅。

曾道免费资料大全正版 14

曾道免费资料大全正版 15

然后,看一下Recycle-GAN,是怎样在两段视频的图像之间,建立映射的。

3、导入并重新使用Pix2Pix模型

曾道免费资料大全正版 16

曾道免费资料大全正版 17

通过安装tensorflow_examples包,从Pix2Pix中导入生成器和鉴别器。

  1. 一键式的训练和测试生成网络

三位选手对比一下

这个教程中使用的模型体系结构与Pix2Pix中很类似,但也有一些差异,比如Cyclegan使用的是实例规范化而不是批量规范化,比如Cyclegan论文使用的是修改后的resnet生成器等。

数据准备

Pix2Pix是有成对数据的;CycleGAN靠的是循环一致性 (Cycle Consistency) ;RecycleGAN用的是视频流的时间信息

我们训练两个生成器和两个鉴别器。生成器G架构图像X转换为图像Y,生成器F将图像Y转换为图像X。

模型库中提供了download.py数据下载脚本,该脚本支持下载MNIST数据集(CGAN和DCGAN所需要的数据集)以及CycleGAN和Pix2Pix所需要的数据集,使用以下命令下载数据:python download.py —dataset=mnist 通过指定dataset参数来下载相应的数据集。

翻来覆去的,比CycleGAN的历程还要艰辛。好像终于感受到,Recycle-GAN这个名字是有道理的。

鉴别器D_X区分图像X和生成的图像X,辨别器D_Y区分图像Y和生成的图像Y。

StarGAN, AttGAN和STGAN所需要的Celeba数据集需要用户自行下载。

对抗损失(Adversarial Loss) ,朱俊彦团队的循环损失(Cycle Loss) ,反复损失(Recurrent Loss) ,以及CMU团队自己造的“再”循环损失(Recycle Loss) 都用上,才是强大的损失函数

曾道免费资料大全正版 18

自定义数据集:用户可以使用自定义的数据集,只要设置成所对应的生成模型所需要的数据格式即可。

效果怎么样?

曾道免费资料大全正版 19

注意: pix2pix模型数据集准备中的list文件需要通过scripts文件夹里的make_pair_data.py来生成,可以使用以下命令来生成:python scripts/make_pair_data.py

似乎只有和CycleGAN比一场,才知道时间信息好不好用。

曾道免费资料大全正版 20

—direction=A2B,用户可以通过设置—direction参数生成list文件,从而确保图像风格转变的方向。

第一局,先来看看换脸的效果:

4、损失函数

一键式启动

曾道免费资料大全正版 21

在CycleGAN中,因为没有用于训练的成对数据,因此无法保证输入X和目标Y在训练期间是否有意义。因此,为了强制学习正确的映射,CycleGAN中提出了“循环一致性损失”(cycle consistency loss)。

可选参数见python train.py —help

RecycleGAN用奥巴马生成的川川,除了嘴皮子,脸的角度也在跟着变化。而中间的CycleGAN,只有嘴的动作比较明显。

鉴别器和生成器的损失与Pix2Pix中的类似。

—model_net参数来选择想要训练的模型

第二局,你见过蒲公英开花的样子么:

循环一致性意味着结果接近原始输入。

—dataset参数来选择训练所需要的数据集

曾道免费资料大全正版 22

例如将一个句子和英语翻译成法语,再将其从法语翻译成英语后,结果与原始英文句子相同。

每个GAN都给出了一份运行示例,放在scripts文件夹内,用户可以直接运行训练脚本快速开始训练。

当RecycleGAN的蒲公英,学着菊花的动作,变成茂密的团子,CycleGAN还在慢慢地绽放。

在循环一致性损失中,图像X通过生成器传递C产生的图像Y^,生成的图像Y^通过生成器传递F产生的图像X^,然后计算平均绝对误差X和X^。

在快读实现之余,对于目前主流的GAN的开源模型,我们也需要一起了解一下。

注意,团队是预先把两种花,从初开到完全凋谢的时间调成一致。

前向循环一致性损失为:

  1. 主流开源模型简介

除此之外,再看云卷云舒 (片头也出现过) :

反向循环一致性损失为:

STGAN

曾道免费资料大全正版 23

曾道免费资料大全正版 24

由百度和哈工大联合研发,在原有的ATTGAN基础上,引入GRU结构,更好的选择变化的属性,可用于人脸特定属性转换。

原本是悠然地移动。

初始化所有生成器和鉴别器的的优化:

STGAN中生成网络在编码器和解码器之间加入Selective Transfer Units,有选择的转换编码网络,从而更好的适配解码网络。

和喷气一般的云,学习了之后,就获得了急躁的节奏。

5、检查点

生成网络中的编码网络主要由convolution-instance norm-ReLU组成,解码网络主要由transpose convolution-norm-leaky_ReLU组成,判别网络主要由convolution-leaky_ReLU组成,详细网络结构可以查看network/STGAN_network.py文件。

曾道免费资料大全正版 25

6、训练

生成网络的损失函数是由WGAN的损失函数,重构损失和分类损失组成,判别网络的损失函数由预测损失,分类损失和梯度惩罚损失组成。飞桨核心框架Paddle Fluid v1.5中,新增了梯度惩罚的OP,进而支持了WGAN-GP的算法。在本次对外开放的模型中,WGAN均是使用了WGAN-GP算法。

这样一来,改变天气就不难了。团队说拍电影的成本,可以用这样的方法降下来。

注意:为了使本教程的训练时间合理,本示例模型迭代次数较少(40次,论文中为200次),预测效果可能不如论文准确。

曾道免费资料大全正版 26

代码也快来了

尽管训练起来很复杂,但基本的步骤只有四个,分别为:获取预测、计算损失、使用反向传播计算梯度、将梯度应用于优化程序。

图:STGAN的网络结构

曾道免费资料大全正版 27

曾道免费资料大全正版 28

CGAN

CMU的科学家们说,大家很快就可以看到代码了。

7、使用测试集生成图像

条件生成对抗网络,一种带条件约束的GAN,使用额外信息对模型增加条件,可以指导数据生成过程。

不过在那之前,我们还是有许多资源可以欣赏。

曾道免费资料大全正版 29

曾道免费资料大全正版 30

团队在项目主页里,提供了丰富的生成效果:

曾道免费资料大全正版 31

图:CGAN的网络结构

曾道免费资料大全正版 32

DCGAN

论文请至这里观察:

8、进阶学习方向

深度卷积生成对抗网络,将GAN和卷积网络结合起来,利用卷积神经网络作为网络结构进行图像生成,可以得到更加丰富的层次表达。为了提高生成样本的质量和网络的收敛速度,在网络结构上进行了一些改进:取消 pooling 层、加入 batch normalization、使用全卷积网络、在生成器中,最后一层使用Tanh函数,其余层采用 ReLu 函数 ; 判别器中都采用LeakyReLu。

在上面的教程中,我们学习了如何从Pix2Pix中实现的生成器和鉴别器进一步实现CycleGAN,接下来的学习你可以尝试使用TensorFlow中的其他数据集。

曾道免费资料大全正版 33

最后吐个槽

你还可以用更多次的迭代改善结果,或者实现论文中修改的ResNet生成器,进行知识点的进一步巩固。

图:DCGAN中的生成器

原本是日落:

传送门

Pix2Pix

曾道免费资料大全正版 34

利用成对的图片进行图像翻译,即输入为同一张图片的两种不同风格,可用于进行风格迁移。

看了黎明之前的视频,就跟着变了日出:

GitHub地址:

Pix2Pix由一个生成网络和一个判别网络组成。生成网络中编码部分的网络结构都是采用convolution-batch norm-ReLU作为基础结构,解码部分的网络结构由transpose convolution-batch norm-ReLU组成,判别网络基本是由convolution-norm-leaky_ReLU作为基础结构,详细的网络结构可以查看network/Pix2pix_network.py文件。

曾道免费资料大全正版 35

生成网络提供两种可选的网络结构:Unet网络结构和普通的encoder-decoder网络结构。网络利用损失函数学习从输入图像到输出图像的映射,生成网络损失函数由GAN的损失函数和L1损失函数组成,判别网络损失函数由GAN的损失函数组成。生成器的网络结构如下图所示。

可是,日落变日出这样的操作,直接倒放不好么?

作者系网易新闻·网易号“各有态度”签约作者

曾道免费资料大全正版 36

—返回搜狐,查看更多

—完—

图:Pix2Pix生成网络流程图

责任编辑:

AI社群 | 与优秀的人交流

CycleGAN

小程序 | 全类别AI学习教程

可以利用非成对的图片进行图像翻译,即输入为两种不同风格的不同图片,自动进行风格转换。

曾道免费资料大全正版 37

CycleGAN由两个生成网络和两个判别网络组成,生成网络A是输入A类风格的图片输出B类风格的图片,生成网络B是输入B类风格的图片输出A类风格的图片。

喜欢就点「好看」吧 !

生成网络中编码部分的网络结构都是采用convolution-norm-ReLU作为基础结构,解码部分的网络结构由transpose convolution-norm-ReLU组成,判别网络基本是由convolution-norm-leaky_ReLU作为基础结构,详细的网络结构可以查看network/CycleGAN_network.py文件。

生成网络提供两种可选的网络结构:Unet网络结构和普通的encoder-decoder网络结构。生成网络损失函数由LSGAN的损失函数,重构损失和自身损失组成,判别网络的损失函数由LSGAN的损失函数组成。

图:CycleGAN生成网络流程图

StarGAN

多领域属性迁移,引入辅助分类帮助单个判别器判断多个属性,可用于人脸属性转换。

StarGAN中生成网络的编码部分主要由convolution-instance norm-ReLU组成,解码部分主要由transpose convolution-norm-ReLU组成,判别网络主要由convolution-leaky_ReLU组成,详细网络结构可以查看network/StarGAN_network.py文件。

生成网络的损失函数是由WGAN的损失函数,重构损失和分类损失组成,判别网络的损失函数由预测损失,分类损失和梯度惩罚损失组成。

曾道免费资料大全正版 38

图:starGAN流程图

曾道免费资料大全正版 39

图:StarGAN的生成网络结构左]和判别网络结构右]

AttGAN

利用分类损失和重构损失来保证改变特定的属性,可用于人脸特定属性转换。

AttGAN中生成网络的编码部分主要由convolution-instance norm-ReLU组成,解码部分由transpose convolution-norm-ReLU组成,判别网络主要由convolution-leaky_ReLU组成,详细网络结构可以查看network/AttGAN_network.py文件。

生成网络的损失函数是由WGAN的损失函数,重构损失和分类损失组成,判别网络的损失函数由预测损失,分类损失和梯度惩罚损失组成。

曾道免费资料大全正版 40

图:AttGAN网络流程图

图:AttGAN的网络结构

本文由曾道免费资料大全正版发布于产品中心,转载请注明出处:曾道免费资料大全正版手把手教你在TensorFlow2,

关键词:

马云害怕阿里巴巴赴美上市的真正原因

原标题:马云“让贤”的意义 ,就在港交所关键会议前夕,阿里巴巴上市路线图爆出了“弃港投美”的跨太平洋急转...

详细>>

未婚先孕,95后与00后涌入网红世界

原标题:95后与00后涌入网红世界,德行与修养短板下的“网红失控” 4月21日,网络红人Papi酱将在阿里巴巴拍卖平台...

详细>>

某个资源音讯李亚,一点资源消息与土耳其共和

在那样三个IP恐怕说IP化的时期、智能化的时期、全世界化的时代,一点情报的固化便是连接大家的客商与高格调的...

详细>>

开始进军影视业,苹果激战视频市场

原标题:苹果收购两部电影版权 开始进军影视业 原标题:苹果进军电影行业:购买两部影片版权 原标题:进军电影...

详细>>