财新传媒
位置:博客 > 大数据文摘 > 秒变“女装大佬”!Snapchat推出性别转换滤镜,离线实时渲染

秒变“女装大佬”!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 解决了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/
推荐 0