蒋宝尚作者

秒变“女装大佬”!Snapchat推出性别转换滤镜,离线实时渲染(附测评)

可能每个男生心灵最深处都有个角落在期待变身“女装大佬”。

最近,Snapchat推出了一款可以改变性别的滤镜,不用再化妆换衣服戴假发,只需要一键就能实现性别转换。

类似滤镜其实已经有很多,但是snapchat这款新品非常真实,保持了用户原有的颜值特征,并且变装效果非常真实。并且据介绍,这个滤镜是实时工作的,并且不需要联网也能运行。

比如男生变身女装大佬,会把整体画质和五官变得柔和,磨皮美白,并且自带发型和妆容,连戴帽子时候对头发的渲染处理都非常完美。

Snapchat此功能一出,瞬间被玩坏~

比如,用“女变男”的功能给拥抱自己的男朋友一个”惊喜“,让他转头忽然发型自己女朋友变成胡茬大汉👇

看他那生无可恋的表情,心中一万匹草泥马飞奔而过。

还有对权游的照片处理,三傻的男装有点像哈利波特是怎么回事!不过虽然改变了性别,但是“他”那忧郁的眼神却没有改变,依然饱含深情~

雪诺变身女装也非常惊艳了👇

有人还对音乐圈的大佬进行了一番实验,结果喜人。

肖邦秒变美少女。

巴赫用了滤镜之后,变成了金发妇人。

除了性别转换之外,Snapchat还推出了一秒变宝宝功能。如果复仇者联盟里面的英雄都变成了宝宝,会是什么样子?例如~

当然,很皮的文摘菌也在编辑部实验了一把这款滤镜,效果的确惊艳,玩到停不下来。

这是文摘菌变身后的“女装”扮相,简直要对自己动心了☹☹☹。👇

来看一下美女编辑的“男装”变形过程~

女变男的滤镜也很真实,比如“文文”的脸型大小似乎没有改变,只是整体的色调被调黑,下颌变宽,加上了一撮小胡子,以及把长发藏了起来。

买家测评:整体比较满意

不仅素人,这款滤镜还吸引了谷歌大脑工程师Eric Jang,他也很认真的对这项功能做了全方面的测评。

中间的照片是一张浴室自拍的原始照片。左边是“男性”滤镜的效果,右边是“女性”滤镜的效果。

Eric接下来对这款滤镜效果进行了全面测评。

可能是只在特定的线框内才能生效,当Eric Jang转头的时候,滤镜并未发挥效果。

随后,其进行了遮挡测试。在脸上滑动一个物体。当仅有半边脸被遮挡时,滤镜就能正常工作,但如果脸部被遮挡的太多,滤镜不发挥作用。如下所示~

然后是下垂直遮挡。在测试的过程中,白色的瓶子变模糊了。而且,当Eric Jang把瓶子放在视线中央时,头发变成了金黄色。

Eric Jang认为这个效果一定是机器学习在起作用,因为它会从训练过的数据中提取一些数据进行渲染。

当敷上面膜会是什么效果?面膜遮住一半可以,但是如果超过一定比例,滤镜转换失败。

遮挡小部分,滤镜工作没问题。

接下来是对头发的测试~

当用手对头发进行抚摸时出现了鬼畜,据Eric Jang介绍,头发上还有一个清晰的分割面罩,可以让脸部显露出来。Snapchat可能正在进行头部的跟踪,通过计算添加长发效果。

背后原理猜想:CycleGAN大显神威

关于背后的原理,Eric Jang猜测可能采用了CycleGAN架构,数据集采用的是Snapchat运营这8年用户上传的数据。初步估计,光自拍照就有数十亿张!

在介绍CycleGAN之前,我们先介绍一下GAN。

生成对抗网络 由两个相互博弈的神经网络组成,即生成器和鉴别器。生成器负责根据输入生成数据(输入可以是噪声,也可以是一些其他的数据)。鉴别器负责分析数据,并区分这些数据是真实的(来自数据集),或者是虚假的(来自生成器)。在形式上可以看做武学中的左右互博。

上面公式下标 G 和 D 分别代表生成器 G(Generator)和鉴别器 D(Discriminator)。生成器的工作是将方程的值最小化,而鉴别器负责将这个值最大化。生成器 G 和鉴别器 D 会一直博弈,直到达到我们的满意。

CycleGAN本质上是两个镜像对称的GAN,构成了一个环形网络。

两个GAN共享两个生成器,并各自带一个判别器,即共有两个判别器和两个生成器。一个单向GAN两个loss,两个即共四个loss。

CycleGAN原理

CycleGAN的创新点就在于其能够在没有成对训练数据的情况下,将图片内容从源域迁移到目标域。CycleGAN在训练时,只需要将源域的图片和目标域的图片作为输入即可,这里并不要求源域跟目标域的图像内容是匹配的。

简而言之,CycleGAN可以帮助你训练一个网络,这个网络可以把一组数据集(输入域)中同样风格的图片转换成另一组数据集(目标域)里纹理的图片。

CycleGAN 解决了pix2pix 必须使用成对数据进行训练的问题,原理比较简单,但非常有效。只需要不同域的一系列图片即可进行训练。类似的工作还有DualGAN,DiscoGAN。三者的想法和模型基本一样,发在了不同的地方。

CycleGAN在转换图像类型方面确实做的非常好,下面是一些网友用CycleGAN做的实例~

将猫变成狗(图片来自网络)
让图片中的人露出笑容(图片来自网络)

将男人变成女人(图片来自网络)

在猜想的同时,Eric Jang也提出了自己的疑问,主要集中在以下几点:

1.他们训练的图像转换器真的是无需成对图像的吗?鉴于CycleGAN存在很多问题,做到这件事情几乎不可能。

2.在数据集方面,他们可能有一些数据是手工设计的。作用是增强数据。

3.头发和面部的变换似乎是各自独立合成的,或者可能是一起合成的,并在渲染之前分割成不同的图层。

4.Snapchat确实有一些平滑的功能,它可以根据遮挡物体的状态改变高光和头发颜色,这表明颜色可能部分是从数据中习得的。

5.另一方面,头发非常稳定,或许不是由GAN合成的。可能存在一个大型的haridos模板库,并且用一些机器学习模型进行了改进。

6.如何明确CycleGAN在这么大的数据集上训练以后到底收敛没有?

7.动态图的分辨率是多少,如果在有限的计算资源下运行神经网络

8.如果它确实是一个CycleGAN,那么将男性滤镜应用于女性滤镜图像的时候应该恢复成原始图像才对呀?

小伙伴们如果有自己关于原理的猜想,可以在下文给出哟~

相关报道:

https://www.jianshu.com/p/64bf39804c80

https://yq.aliyun.com/articles/229300

https://www.reddit.com/r/artificial/comments/bo8pam/snapchat_male_to_female_baby_filter_snapchat_new/

https://www.reddit.com/r/MachineLearning/comments/bo4orw/d_is_the_new_snapchat_gender_filter_ganbased/

大数据文摘
大数据文摘

秉承“普及数据思维,传播数据文化,助⼒产业发展”的企业⽂化,我们专注于数据领域的资讯、案例、技术,形成了“媒体+教育+⼈才服务”的良性⽣态,致⼒于打造精准数据科学社区。

工程图像转换GANCycleGANSnapchat
21
相关数据
机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

CycleGAN技术

GAN的一个变种

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

这个真的好酷哦!但还有引申出一个问题是机器学习就应用在这种小玩意儿上??