Tensorflow实现性别反转--github开源项目分享

知乎介绍:图像转换明星StarGAN,这次有了简易版TensorFlow实现

starGAN性别反转原始代码(github):PyTorch Implementation of StarGAN - CVPR 2018

starGAN性别反转简易demo(github):Simple Tensorflow implementation of StarGAN (CVPR 2018 Oral)

背景介绍(搬运于知乎介绍):

半年前AI圈内红红火火的StarGAN模型有新实现出炉。

昨天,网友taki0112公布了一个简易版StarGAN TensorFlow实现,不到一天时间就在Reddit论坛上热度暴增到700。

因为实现的效果,看起来真的还不错:

Tensorflow实现性别反转--github开源项目分享_第1张图片

 

仅仅给出一张原始头像,这个简易实现的GAN就能合成出染发、变性、衰老的模样。“性别和年龄的变化是微妙的,但结果相当不错。”网友Valiox评价。

 

本篇文章基于“starGAN性别反转简易demo”

  • 一.实现效果(博主本人,献丑了):

测试图片:Tensorflow实现性别反转--github开源项目分享_第2张图片

生成效果:Tensorflow实现性别反转--github开源项目分享_第3张图片

  • 二.实现方式

1.配置环境

Requirements

  • Tensorflow 1.8
  • Python 3.6

(1)ubuntu环境下,按照“starGAN性别反转简易demo”的ReadMe操作即可

(2)本文基于win10的anaconda环境,非ubuntu环境的朋友可继续往下看

2.下载源码

(1)在“starGAN性别反转简易demo”下载源代码

Tensorflow实现性别反转--github开源项目分享_第4张图片

 

(2)下载训练所用数据集CelebA(kaggle)或百度网盘CelebA,并把数据集解压到starGAN-Tensorflow-master中->dataset->celebA->train下。由于数据集比较大,解压耗费时间可能较久。

Tensorflow实现性别反转--github开源项目分享_第5张图片

(3)下载训练好的checkpoints文件,如果自己从头训练模型,进度会如图一样,相对比较慢,checkpoints的百度网盘链接。github的checkpoints链接在谷歌云盘,国内访问会有问题。

Tensorflow实现性别反转--github开源项目分享_第6张图片

(4)将下载的checkpoints文件解压到starGAN-Tensorflow-master->checkpoints文件夹中,github项目不包含的文件目录,会在starGAN-Tensorflow-master运行如下命令后生成。(命令在anaconda的虚拟环境运行)

python main.py --phase train

 

Tensorflow实现性别反转--github开源项目分享_第7张图片Tensorflow实现性别反转--github开源项目分享_第8张图片

(5)由于训练数据集都是128*128,所以需要使用opencv把图像预处理成128*128的大小。先把需要测试的图像裁剪成正方形,再用opencv做成128*128的。下面是opencv图像处理的代码。

import cv2

image=cv2.imread('t2.jpg')#经过裁剪后的正方形头像图片,命名t2.jpg可以自己更改
res=cv2.resize(image,(128,128),interpolation=cv2.INTER_CUBIC)
cv2.imshow('iker',res)
cv2.imshow('image',image)
cv2.imwrite('t3.jpg', res)#128*128的新头像图片
cv2.waitKey(0)
cv2.destroyAllWindows()

(6)一切文件准备好以后,将128*128的新头像图片放入StarGAN-Tensorflow-master\dataset\celebA\test。

Tensorflow实现性别反转--github开源项目分享_第9张图片

(7)放入test后,在anaconda的tensorflow虚拟环境运行如下代码,运行位置是StarGAN-Tensorflow-master文件。

python main.py --phase test

训练开始

Tensorflow实现性别反转--github开源项目分享_第10张图片

训练成功

Tensorflow实现性别反转--github开源项目分享_第11张图片

(8)然后你就可以在results下看到运行结果啦!

Tensorflow实现性别反转--github开源项目分享_第12张图片

Tensorflow实现性别反转--github开源项目分享_第13张图片

Tensorflow实现性别反转--github开源项目分享_第14张图片

你可能感兴趣的:(Tensorflow)