仍可以够给花草,手把手教你在TensorFlow2

作者: 产品中心  发布:2019-09-21

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

铜灵 发自 凹非寺

圆栗子 发自 凹非寺

量子位 出品| 公众号 QbitAI

图片 1

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

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

图片 2

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

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

图片 3

图片 4

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

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

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

图片 5

图片 6

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

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

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

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

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

图片 7

图片 8

云,也变得急切了

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

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

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

这位选手,入选了ECCV 2018

详细内容

Recycle之道,时间知道

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

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

1、设置输入Pipeline

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

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

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

!pip install -q git+

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

2、输入pipeline

图片 9

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

你开花,我就开花

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

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

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

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

图片 10

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

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

图片 11

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

图片 12

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

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

图片 13

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

三位选手对比一下

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

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

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

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

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

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

图片 14

效果怎么样?

图片 15

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

图片 16

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

4、损失函数

图片 17

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

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

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

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

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

图片 18

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

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

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

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

前向循环一致性损失为:

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

反向循环一致性损失为:

图片 19

图片 20

原本是悠然地移动。

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

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

5、检查点

图片 21

6、训练

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

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

代码也快来了

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

图片 22

图片 23

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

7、使用测试集生成图像

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

图片 24

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

图片 25

图片 26

论文请至这里观察:

8、进阶学习方向

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

最后吐个槽

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

原本是日落:

传送门

图片 27

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

GitHub地址:

图片 28

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

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

—返回搜狐,查看更多

—完—

责任编辑:

AI社群 | 与优秀的人交流

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

图片 29

喜欢就点「好看」吧 !

本文由美高梅游戏网站发布于产品中心,转载请注明出处:仍可以够给花草,手把手教你在TensorFlow2

关键词: