生成“猫狗版”特朗普,造假脸工具StarGANv2被玩坏,算法已开源

晓查 发自 凹非寺
量子位 报道 | 公众号 QbitAI

如果你想用AI把特朗普的脸变成猫,又或者是把自己的脸与漂亮的奥妹结合起来,你会怎么办?

也许你会想到两样AI工具。但是Deepfake生成人脸违和感太强,GAN生成假脸又很难深度定制。

现在来自韩国团队开发的风格迁移模型StarGANv2可以完美解决这个问题。

如果你是一个对GAN长期关注的同学,那么一定还记得StarGAN,它是韩国高丽大学和Clova AI研究院在2017年底推出的风格迁移模型。

只需输入一张大头照,StarGAN就能让你知道自己改变发型、性别、年龄后分别长啥样。

而StarGANv2正是同一研究团队推出的升级版本,已经被CVPR 2020收录。最近他们在GitHub上公布了官方实现代码,很快就被网友玩坏了。

StarGANv2有两个训练数据集,一个针对人脸,一个针对动物脸。

两者本来是“井水不犯河水”,但是有人偏偏要混用,拿特朗普的脸输入到动物脸预训练模型里。结果川普的脸转换成猫就成了这样:


与狗脸合成又成了这样,模型甚至给狗穿上了西服。

安装使用

这么有趣的模型,如何安装呢?好在StarGANv2的开发团队提供了完整的代码和预训练模型。

先将项目克隆到本地:

<code>git clone https://github.com/clovaai/stargan-v2.git cd stargan-v2//<code>

安装依赖项:

<code>conda create -n stargan-v2 python=3.6.7 conda activate stargan-v2 conda install -y pytorch=1.4.0 torchvision=0.5.0 cudatoolkit=10.0 -c pytorch conda install x264==’1!152.20180717’ ffmpeg=4.0.2 -c conda-forge pip install opencv-python==4.1.2.30 ffmpeg-python==0.2.0 scikit-image==0.16.2 pip install pillow==7.0.0 scipy==1.2.1 tqdm==4.43.0 munch==2.5.0/<code>

然后下载预训练数据集,其中前两项是人脸数据集和预训练模型,后一项是动物脸。

<code>bash download.sh pretrained-network-celeba-hq bash download.sh wing bash download.sh pretrained-network-afhq/<code>

最后将需要转换的照片裁切成和数据集图片一样的长宽比,输入以下命令转换图片。

<code>python main.py —mode sample —num_domains 2 —resume_iter 100000 —w_hpf 1 \ —checkpoint_dir expr/checkpoints/celeba_hq \ —result_dir expr/results/celeba_hq \ —src_dir assets/representative/celeba_hq/src \ —ref_dir assets/representative/celeba_hq/ref/<code>

效果远超其他GAN

StarGANv2由四个模块组成:

生成器将输入图像转换为反映特定域风格编码的输出图像;
映射网络将潜在代码转换为训练中随机选择的多个域的风格编码;风格编码器提取图像的风格编码,允许生成器执行参照物引导的图像合成;鉴别器从多个域中区分真实图像和虚假图像。

作者随机选取了10张图像进行风格迁移的实验,结果FID远远小于其他同类模型。

他们还把四种模型生成的图像上传到AMT平台,交给人工评选,绝大部分测试者都认为StarGANv2生成的图片更优质。

从人工评选的结果也可以看出,StarGANv2在生成动物脸上的效果更好,难怪网友要拿动物模型来改造特朗普头像了。

传送门

论文地址:
https://arxiv.org/abs/1912.01865v2

官方实现代码:
https://github.com/clovaai/stargan-v2

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态