90后已三十而立!一张照片用GAN生成70岁的你
共 1793字,需浏览 4分钟
·
2020-11-30 17:31
新智元报道
新智元报道
编辑:QJP
【新智元导读】你是否想象过未来的自己长什么样子?来自斯坦福和华盛顿大学的研究员近期发表了一篇论文,提出了基于GAN的新方法,可以仅用一张照片,连续生成从年轻到年老的自己的照片。
寿命年龄转换合成(Lifespan Age Transformation Synthesis)是一个以 GAN 为基础的新方法,旨在从一个单一的输入图像模拟连续老化的过程。
这个算法被设计用来幻想衰老的过程,并在一个人的整个生命周期中生成一个近似的外观。
最初的主要用例是用于艺术和娱乐(CGI 效果,相机滤镜等),但这种方法也可能用于更关键的应用,例如模拟失踪和被拐卖人口的外观等。
作者同时还强调说,作为一种不完美的数据驱动方法,结果可能是不准确和有偏见的。输出的结果应该由一个专业人员进行客观的分析,而不是被当作一个绝对的基本事实来使用。
当用深度学习技术预测一个人在未来会是什么样子,或者他在过去是什么样子的时候,现有的方法大多局限于改变人脸的质地,忽视了人体在老化和生长过程中头部形态的变化。这就限制了以前的方法对成年人老化处理的适用性,而这些方法对儿童照片的应用也不能产生高质量的结果。
来自华盛顿大学和斯坦福大学的研究人员提出了一种新的多域图像生成对抗网络结构,其学习潜空间模型是一个连续的双向的老化过程。
该网络是在 FFHQ 数据集上进行训练的,并按照年龄、性别和语义分割对其进行标记。固定年龄类别被用作锚定来近似连续年龄转换。新框架可以通过一张照片预测0-70岁年龄段的完整头像,同时修改头部的纹理和形状。作者们展示了各种各样的照片和数据集的结果,并显示了显著的改善超过了现有的水平。
作者团队在算法设计上投入了大量的精力,以保持输入图像中人的身份,并最小化数据集固有偏差对结果的影响,这些改进措施就包括:
1.设计身份编码器结构,保留输入图像的局部结构
2.保持个人身份的训练损失
3.FFHQ 数据集包含年龄段的性别不平衡。为了防止在输出中引入这些偏见,例如为女性生产男性面部特征或反之亦然,训练了两个独立的模型,一个是男性模型,一个是女性模型。应用哪个模型的决定留给用户自己去决定。
结果与部分SOTA模型的比较:
与PyGAN相比,新模型得到了更为清晰和真实的照片预测结果,不同年龄之间的转换也更为顺滑。
图:能够产生更清晰的皱纹,相比S2GAN来说更适用于年龄较大的人群
此模型在FFHQ上训练并在CACD上进行测试,而PyGAN和S2GAN都在CACD数据集上进行训练,即使PyGAN通过一个不同的生成器进行训练来产生每个年龄段的人,但新的网络仍然能够通过单个生成器来输出多个类别,同时实现更加写实的照片。与S2GAN相比,新的算法能够产生更明显的皱纹和面部特征年龄,同时可以跨越更长的年龄范围来生成图片。
如果需要在自己的本地机器上运行的前提条件是:
1.需要有GPU并且安装了CUDA
2.代码应该运行在 PyTorch 1.0.0 以上的版本和 torchvision 0.4.0以上的版本上。
3.使用提供的 requirements.txt 文件: pip install-r requirements.txt 安装所需要的包
好消息是,研究人员还提供了Colab的Demo,可以使用自己的图片进行测试,相信大家已经跃跃欲试了吧。
Colab地址附送如下:
https://colab.research.google.com/github/royorel/Lifespan_Age_Transformation_Synthesis/blob/master/LATS_demo.ipynb#scrollTo=3ezAOkaHw4Q_
项目地址:
https://github.com/royorel/Lifespan_Age_Transformation_Synthesis