Vous pouvez maintenant apprendre le vecteur Style de l'espace latent de mappage de votre propre image. Alors, j'ai joué avec "Une femme se transforme en Mayuyu". Cette fois, il a été nécessaire d'installer dlib pour l'apprentissage de l'image de soi, et j'ai pu l'installer en toute sécurité en suivant la référence ①. En conséquence, le vecteur Style $ w $ de l'espace latent de Mayuyu a pu être obtenu, et la vidéo de transformation suivante a été créée.
【référence】 ① Lorsque vous êtes bloqué avec l'installation de dlib sous Windows
・ Installation de dlib ・ Prétraitement avec align_images.py ・ Mayuyu et mixage ・ Essayez "une femme se transforme en sourcils"
StyleGAN nécessite un prétraitement d'image avant l'apprentissage. Le code dans align_images.py a la description suivante.
Extracts and aligns all faces from images using DLib
and a function from original FFHQ dataset preparation step
python align_images.py /raw_images /aligned_images
Cela signifie que toutes les images de visage doivent être prétraitées dans align_images.py. Et c'était un endroit difficile pour installer ce Dlib. Cependant, comme indiqué dans la référence ① ci-dessus, cela a bien fonctionné avec la procédure suivante.
Tout ce que vous avez à faire est de mettre les données brutes dans / raw_imges et d'exécuter la commande suivante:
python align_images.py /raw_images /aligned_images
En conséquence, l'image_alignée suivante est sortie.
raw_image | aligned_image | |
---|---|---|
Taille | 250x235 | 1024x1024 |
image |
À ce stade, la partie du visage de l'image est découpée et agrandie à 1024x1024. En utilisant cette image, le vecteur de style mayuyu.npy de l'espace latent de mappage est appris par la commande suivante et stocké dans latent /.
python encode_images.py aligned_images/ generated_images/ latent/
En utilisant le vecteur Style de cet espace latent, vous pouvez mélanger différentes images comme vous l'avez fait la dernière fois. Voir ci-dessous pour le code. StyleGAN/mayuyu_mix.py Cependant, les modifications apportées à $ w $ dans StyleGAN sont les suivantes.
style_ranges=[range(1,18)]+[range(2,18)]+[range(3,18)]+[range(4,18)]+[range(5,18)]+[range(6,18)]
Les résultats sont les suivants. Il est intéressant qu'une femme assez belle apparaisse en arrangeant avec un homme. Dans l'ensemble, les hommes en dessous de la fourchette (4,18) deviennent féminins, et d'autres personnes commencent à avoir plus de caractéristiques du côté Mayuyu que l'original. En d'autres termes, la plage (0,3) prend en charge une quantité considérable de fonctionnalités mondiales à Mayuyu.
Donc, à la fin, j'essaierai de mixer au lieu d'échanger. Les principales parties du code sont: Le tout est placé en dessous. StyleGAN/simple_dlatents_mixing2.py
simple_dlatents_mixing2.py
# Pick latent vector.
rnd = np.random.RandomState(6) #5
latents1 = rnd.randn(1, Gs.input_shape[1])
print(latents1.shape)
# Generate image.
dlatents1 = Gs.components.mapping.run(latents1, None) # [seed, layer, component]
images = Gs.components.synthesis.run(dlatents1, randomize_noise=False, **synthesis_kwargs)
src_dlatents = np.load('./latent/mayuyu250px_01.npy')
src_dlatents = src_dlatents.reshape(1,18,512)
src_images = Gs.components.synthesis.run(src_dlatents, randomize_noise=False, **synthesis_kwargs)
for i in range(1,101,4):
dlatents = i/100*dlatents1+(1-i/100)*src_dlatents
# Generate image.
images = Gs.components.synthesis.run(dlatents, randomize_noise=False, **synthesis_kwargs)
# Save image.
os.makedirs(config.result_dir, exist_ok=True)
png_filename = os.path.join(config.result_dir, 'example{}.png'.format(i))
PIL.Image.fromarray(images[0], 'RGB').save(png_filename)
Les seuls changements apportés à ce code depuis la dernière fois sont: La forme des données d'entrée src_dlatents correspond.
src_dlatents = np.load('./latent/mayuyu250px_01.npy')
src_dlatents = src_dlatents.reshape(1,18,512)
De cette façon, la vidéo publiée ci-dessus a été obtenue. Pour le moment, je le republierai ci-dessous. Cette vidéo est également inversée, donc la vidéo sera continue et vous pourrez regarder Mayuyu un peu lentement.
1 | |
---|---|
À propos, l'image agrandie qui apparaît dans cette vidéo est jointe ci-dessous, mais savez-vous laquelle est la vraie?
1 | 2 | 3 |
---|---|---|
・ Apprentissage du vecteur Style de la cartographie de l'espace latent de la propre image "Mayuyu" ・ J'ai essayé de mélanger en utilisant le npy obtenu ・ J'ai essayé "une femme se transforme en sourcils"
・ Apprenons enfin les personnages d'anime ・ Faisons une vidéo en mouvement
Recommended Posts