C'est comme le titre. Cette fois, j'ai essayé de voir si Mayuyu et le visage d'anime, que j'ai appris par moi-même, souriraient comme indiqué ci-dessous. 【référence】 Essayez de mélanger Satoshi Fukuzawa avec StyleGan
De la conclusion, j'ai obtenu l'image de sourire suivante et j'ai réussi ♬ Vous serez guéri ♬
・ Apprenez votre propre image ・ Générer une image de sourire et créer une vidéo ・ Essayez une image de visage animée
Mayuyu a utilisé les données npy précédentes comme la dernière fois. D'un autre côté, j'ai essayé d'aligner l'image du visage d'anime de la même manière, mais je ne pouvais pas aligner parce que le visage était fait trop différemment. Cependant, j'ai également appris les images de visage d'anime. En conséquence, il semble que l'apprentissage était possible, et j'ai pu obtenir npy qui peut produire les images suivantes.
1 | 2 |
---|---|
Bien sûr, j'ai également essayé le mixage en utilisant ces images. Pourtant,. .. .. Le résultat est le suivant
Mixing in projected latent space | |
---|---|
Il semble que l'espace latent de la cartographie ait été pollué par l'homme. Cette tendance est similaire lors du mélange avec un visage humain. Je vais laisser l'image non encollée cette fois.
Le principe est le suivant en termes simples.
latent_vector = np.load('./latent/mayuyu.npy')
coeff = [-1,-0.8,-0.6,-0.4,-0.2, 0,0.2,0.4,0.6,0.8, 1]
direction = np.load('ffhq_dataset/latent_directions/smile.npy')
new_latent_vector[:8] = (latent_vector + coeff*direction)[:8]
smile_image = generate_image(new_latent_vector)
Générez une image de sourire avec ce nouveau new_latent_vector. Donc, le code ressemble à ceci: J'ai mis le code ci-dessous. StyleGAN/mayuyu_smile.py
import os
import pickle
import numpy as np
import PIL.Image
import dnnlib
import dnnlib.tflib as tflib
import config
import sys
from PIL import Image, ImageDraw
from encoder.generator_model import Generator
import matplotlib.pyplot as plt
tflib.init_tf()
fpath = './weight_files/tensorflow/karras2019stylegan-ffhq-1024x1024.pkl'
with open(fpath, mode='rb') as f:
generator_network, discriminator_network, Gs_network = pickle.load(f)
generator = Generator(Gs_network, batch_size=1, randomize_noise=False)
def generate_image(latent_vector):
latent_vector = latent_vector.reshape((1, 18, 512))
generator.set_dlatents(latent_vector)
img_array = generator.generate_images()[0]
img = PIL.Image.fromarray(img_array, 'RGB')
return img.resize((256, 256))
def move_and_show(latent_vector, direction, coeffs):
for i, coeff in enumerate(coeffs):
new_latent_vector = latent_vector.copy()
new_latent_vector[:8] = (latent_vector + coeff*direction)[:8]
plt.imshow(generate_image(new_latent_vector))
plt.pause(1)
plt.savefig("./results/example{}.png ".format(i))
plt.close()
mayuyu = np.load('./latent/mayuyu.npy')
smile_direction = np.load('ffhq_dataset/latent_directions/smile.npy')
move_and_show(mayuyu, smile_direction, [-1,-0.8,-0.6,-0.4,-0.2, 0,0.2,0.4,0.6,0.8, 1])
s=22
images = []
for i in range(0,11,1):
im = Image.open(config.result_dir+'/example'+str(i)+'.png')
im =im.resize(size=(640,480), resample=Image.NEAREST)
images.append(im)
for i in range(10,0,-1):
im = Image.open(config.result_dir+'/example'+str(i)+'.png')
im =im.resize(size=(640, 480), resample=Image.NEAREST)
images.append(im)
images[0].save(config.result_dir+'/mayuyu_smile{}.gif'.format(11), save_all=True, append_images=images[1:s], duration=100*2, loop=0)
De cette façon, M. Trump sourit également.
Comme mentionné ci-dessus, npy a pu générer une image de visage animée, alors utilisez-la pour défier votre sourire. Le résultat est le suivant, je ris. .. .. Merveille .. .. .. Cependant, le problème est ... .. .. Cela signifie qu'il n'y a que quelque chose qui semble être
・ J'ai essayé d'apprendre des images d'anime ・ J'ai essayé mon propre apprentissage "Mayuyu et anime souri"
・ Bien que ce soit presque terminé, je vais l'essayer avec une image animée avec un peu plus de bouche. ・ Faisons une soi-disant formation d'images d'anime ・ Je souhaite créer un npy à utiliser de la même manière que smile.npy.
Recommended Posts