太阳2:一键脱衣AI原理解密:开源算法,英伟达伯克利研究,不神秘

原本是日落:

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

图:AttGAN的网络结构

Image-to-Image Translation with Conditional Adversarial Networks

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

太阳2 1

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

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

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

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

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

量子位 报道 | 公众号 QbitAI

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

太阳2 2

太阳2 3

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

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

太阳2 4

DeepNude文件

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

太阳2 5

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

虽然袁宵本人的愿望很美好,但是这个项目的讨论页面还是不可避免地成为了求种现场。

太阳2 6

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

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

作者本人当然是严词拒绝,不光关乎道德,因为在中国传播色情软件是违法的。

你开花,我就开花

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

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

太阳2 7

太阳2 8

!pip install -q git+

下面送上真·干货!

研究人员应努力为人类谋福祉,而不是通过违法软件获取收入。

—返回搜狐,查看更多

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

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

太阳2 9DeepNude用它除掉了图片里的衣服。”
style=”width:60%;margin:1rem auto”>

太阳2 10

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

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

2、转换速度慢:处理一张图片需要30秒;

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

7、使用测试集生成图像

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

太阳2 11

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

GitHub地址:

可选参数见python train.py —help

太阳2 12

太阳2 13

太阳2 14

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

Image-to-Image Demo:

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

太阳2 15

其他涉及的论文地址:

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

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

AttGAN

3、CycleGAN

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

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

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

太阳2 16

三位选手对比一下

太阳2 17

图:CGAN的网络结构

他认为,DeepNude可以使用TensorFlow来实现,压缩模型的体积。软件本身也应该改变目前不尊重女性的做法,把这项技术用在正途上。

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

1.效果实测

它可以在普通的马和斑马之间进行转换,也能把夏天的景色变成冬天的景色。

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

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

CycleGAN

随着DeepNude下架,有人希望作者能提供原版软件下载地址,或者提供一些代码之类的。

论文请至这里观察:

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

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

最后吐个槽

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

图:Pix2Pix生成网络流程图

太阳2 18

太阳2 19

8、进阶学习方向

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

据他的分析,其实DeepNude只是“站在巨人的肩上”,里面用到的技术都是近两年CV领域的重大研究成果,而且都已经开源。

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

太阳2 20

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

具体来说,DeepNude主要使用了计算机视觉领域的3项技术。

Recycle之道,时间知道

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

图:starGAN流程图

Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial
Networks

太阳2 21

1、设置输入Pipeline

数据准备

在巨大的求知欲驱动下,来自四川大学计算机学院在读硕士袁宵在自己的GitHub探究了DeepNude背后原理,研究图像生成和图像修复相关的技术和论文。

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

传送门

太阳2 22

求种现场

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

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

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

而且DeepNude本身也不开源,我们只能从开发者零星的介绍中知道,它用到了pix2pix。

圆栗子 发自 凹非寺

喜欢就点「好看」吧 !

太阳2 23

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

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

StarGAN

Image
Inpainting除了能修复受损的图像,还能去掉图像中的某些物品,比如把草地中的石头涂抹一下,恢复的后图片中不再有石头。

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

AI社群 | 与优秀的人交流

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

DeepNude软件包中所有的文件如下:

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

太阳2 24

这是加州大学伯克利分校在2017年发表的文章,使用条件对抗网络作为图像到图像转换问题的通用解决方案。

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

太阳2 25

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

太阳2 26

效果怎么样?

6、训练

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

传送门

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

太阳2 27

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

1、图像修复

太阳2 28

太阳2 12

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

CycleGAN使用循环一致性损失函数来实现训练,而无需配对数据。换句话说,它可以从一个域转换到另一个域,而无需在源域和目标域之间进行一对一映射。这开启了执行许多有趣任务的可能性,例如照片增强,图像着色,风格迁移等。您只需要源和目标数据集。

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

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

图:DCGAN中的生成器

袁宵认为DeepNude软件还是存在一些缺点可以改进的:

太阳2 30

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

允中 发自 凹非寺

它可以把简笔画变成色彩丰富的图像,感兴趣的同学可以去Demo网站在浏览器中试玩。

太阳2 31

前向循环一致性损失为:

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

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

量子位 出品| 公众号 QbitAI

DCGAN

在美国弗吉尼亚州,未经本人同意,制造虚假的裸露图片或视频将视作犯罪,可处以罚款乃至监禁。

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

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

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

3、内容不尊重女性:这是对深度学习技术的错误使用

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

5、检查点

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

这是来自朱俊彦本人的博士论文,曾获得2018年ACM SIGGRAPH最佳博士论文奖。

云,也变得急切了

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

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

AI社群 | 与优秀的人交流

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

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

CGAN

1、软件体积太大:一个pyqtlib.rar文件的体积就高达1.9GB。

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

4、损失函数

太阳2 32

最后插播一条最新消息,另一款”羞羞”的软件也被视为非法了,那就是可以把爱情动作片女主角换成任意女神的Deepfake。

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

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

太阳2 33

—完—

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

铜灵 发自 凹非寺

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

以上3种工具的代码都已经开源。

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

太阳2 34

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

{“type”:1,”value”:”2、Pix2Pix

太阳2 35

太阳2 36

图:AttGAN网络流程图

即上面提到的文章,这是来自英伟达Guilin Liu等人的团队在2018年发表的研究。

这位选手,入选了ECCV 2018

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

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

晓查 发自 凹非寺

责任编辑:

2、输入pipeline

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

喜欢就点「在看」吧 !

太阳2 37

反向循环一致性损失为:

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

当然,作者本身对这项技术是持批判态度的。

太阳2 38

太阳2 39

  1. PaddleGAN支持的模型与任务

DeepNude主要使用了2018年发表的文章《Image Inpainting for Irregular Holes
Using Partial Convolutions》中提出的图像到图像技术。

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

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

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

输入一张女性的照片,就能得到果体照,一件脱衣的DeepNude火了。但也因为面临巨大的道德争议,这款软件的开发者选择了将它下架。

太阳2 40

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

  1. 预训练模型

从语义分割到原图、从黑白到彩色、补全简笔画等等,Pix2Pix几乎无所不能。

太阳2 41

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

当画面被严重涂抹后,模型仍然能够恢复出“原来”的图像,可以说是“毫无PS痕迹”。

原本是悠然地移动。

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

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

原理

太阳2 42

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

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

Image Inpainting for Irregular Holes Using Partial Convolutions

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

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

量子位编辑 | 公众号 QbitAI

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

详细内容

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

太阳2 43

代码也快来了

太阳2 44

太阳2 45

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

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

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

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

太阳2 46

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

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

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

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

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

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

太阳2 47

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

—完—

太阳2 48

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

一键式启动

图:CycleGAN生成网络流程图

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

图:STGAN的网络结构

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

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

太阳2 49

Pix2Pix

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

  1. 主流开源模型简介

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

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

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

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

STGAN

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

相关文章