[PYTHON] [Einführung in StyleGAN] Mayuyu und Anime lächelten ♬

Es ist wie der Titel. Dieses Mal versuchte ich zu sehen, ob Mayuyu und das Anime-Gesicht, das ich selbst gelernt hatte, wie unten gezeigt lächeln würden. 【Referenz】 Versuchen Sie, Satoshi Fukuzawa mit StyleGan zu mischen

Aus dem Fazit habe ich das folgende Lächelnbild bekommen und es geschafft ♬ mayuyu_smile11.gif Du wirst geheilt ♬

Was ich getan habe

・ Lernen Sie Ihr eigenes Bild ・ Generieren Sie ein Lächelnbild und erstellen Sie ein Video ・ Probieren Sie ein animiertes Gesichtsbild aus

・ Lernen Sie Ihr eigenes Bild

Mayuyu verwendete die vorherigen npy-Daten wie beim letzten Mal. Auf der anderen Seite habe ich versucht, das Anime-Gesichtsbild auf die gleiche Weise auszurichten, aber ich konnte es nicht ausrichten, weil das Gesicht zu unterschiedlich gemacht wurde. Allerdings habe ich auch etwas über Anime-Gesichtsbilder gelernt. Infolgedessen scheint es möglich zu sein, zu lernen, und ich konnte npy erhalten, das die folgenden Bilder ausgeben kann.

1 2
simple3_.png simple3_.png

Natürlich habe ich auch versucht, mit diesen Bildern zu mischen. Jedoch,. .. .. Das Ergebnis ist wie folgt

Mixing in projected latent space simple3_.png
simple3_.png simple_method10_1_dr1024.gif

Es scheint, dass der latente Raum der Kartierung von Menschen verschmutzt wurde. Diese Tendenz ist ähnlich, wenn man sich mit einem menschlichen Gesicht mischt. Ich werde das Bild dieses Mal unversehrt lassen.

・ Generieren Sie ein Lächelnbild und erstellen Sie ein Video

Das Prinzip ist in einfachen Worten wie folgt.

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)

Generieren Sie mit diesem neuen new_latent_vector ein Lächelnbild. Der Code sieht also so aus: Ich habe den folgenden Code eingegeben. 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) 

Auf diese Weise lächelt Mr. Trump auch. trump_smile11.gif

・ Probieren Sie ein animiertes Gesichtsbild aus

Wie oben erwähnt, konnte npy ein animiertes Gesichtsbild erstellen. Verwenden Sie dies, um Ihr Lächeln herauszufordern. Das Ergebnis ist wie folgt, ich lache. .. .. Wunder anime_smile11.gif face_smile11.gif .. .. .. Das Problem ist jedoch ... .. .. Es bedeutet, dass es nur etwas zu geben scheint

Zusammenfassung

・ Ich habe versucht, Anime-Bilder zu lernen ・ Ich habe mein eigenes Lernen versucht "Mayuyu und Anime lächelten"

・ Obwohl es fast fertig war, werde ich es mit einem animierten Bild mit etwas mehr Mund versuchen. ・ Lassen Sie uns das sogenannte Training von Anime-Bildern durchführen ・ Ich möchte auf die gleiche Weise wie smile.npy ein npy für den Betrieb erstellen.

Recommended Posts

[Einführung in StyleGAN] Mayuyu und Anime lächelten ♬
Style GAN verstehen und implementieren
[Einführung in Python3 Tag 1] Programmierung und Python
Einführung in Deep Learning ~ Falten und Pooling ~
[Einführung in AWS] Text-Voice-Konvertierung und Wiedergabe ♪
Einführung in die Thano-Funktionsdefinition und automatische Differenzierung
[Einführung in StyleGAN2] Unabhängiges Lernen mit 10 Anime-Gesichtern ♬
[Einführung in Python3, Tag 22] Kapitel 11 Parallele Verarbeitung und Vernetzung (11.1 bis 11.3)
[Einführung in die Udemy Python3 + -Anwendung] 64. Namespace und Gültigkeitsbereich
[Einführung in Python3 Tag 11] Kapitel 6 Objekte und Klassen (6.1-6.2)
Einführung in Deep Learning ~ Lokalisierungs- und Verlustfunktion ~
[Einführung in PID] Ich habe versucht, ♬ zu steuern und zu spielen