Sie können jetzt den Stilvektor des latenten Mapping-Raums Ihres eigenen Bildes lernen. Also spielte ich mit "Eine Frau verwandelt sich in Mayuyu". Dieses Mal war es notwendig, dlib für das Lernen von Selbstbildern zu installieren, und ich konnte es sicher installieren, indem ich der Referenz ① folgte. Als Ergebnis konnte der Stilvektor $ w $ des latenten Raums von Mayuyu erhalten werden, und das folgende Transformationsvideo wurde erstellt.
【Referenz】 ① Wenn Sie mit der Installation von dlib unter Windows nicht weiterkommen
・ Installation von dlib ・ Vorverarbeitung mit align_images.py ・ Mayuyu und Mischen ・ Versuchen Sie "eine Frau verwandelt sich in Augenbrauen"
StyleGAN erfordert vor dem Lernen eine Bildvorverarbeitung. Der Code in align_images.py enthält die folgende Beschreibung.
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
Dies bedeutet, dass alle Gesichtsbilder in align_images.py vorverarbeitet werden müssen. Und es war schwierig, diese Dlib zu installieren. Wie in Referenz ① oben gezeigt, funktionierte es jedoch mit dem folgenden Verfahren einwandfrei.
Sie müssen lediglich die Rohdaten in / raw_imges ablegen und den folgenden Befehl ausführen:
python align_images.py /raw_images /aligned_images
Infolgedessen wird das folgende ausgerichtete Bild ausgegeben.
raw_image | aligned_image | |
---|---|---|
Größe | 250x235 | 1024x1024 |
Bild |
In diesem Stadium wird der Gesichtsteil des Bildes ausgeschnitten und auf 1024 x 1024 vergrößert. Unter Verwendung dieses Bildes wird der Stilvektor mayuyu.npy des latenten Mapping-Raums durch den folgenden Befehl gelernt und in latent / gespeichert.
python encode_images.py aligned_images/ generated_images/ latent/
Mit dem Stilvektor dieses latenten Raums können Sie wie beim letzten Mal mit verschiedenen Bildern mischen. Siehe unten für den Code. StyleGAN/mayuyu_mix.py Die Änderungen an $ w $ in StyleGAN lauten jedoch wie folgt.
style_ranges=[range(1,18)]+[range(2,18)]+[range(3,18)]+[range(4,18)]+[range(5,18)]+[range(6,18)]
Die Ergebnisse sind wie folgt. Es ist interessant, dass eine hübsche schöne Frau erscheint, indem sie sich mit einem Mann verabredet. Insgesamt werden Männer unterhalb der Reichweite (4,18) weiblich, und andere Menschen haben allmählich mehr Mayuyu-Nebenmerkmale als das Original. Mit anderen Worten, der Bereich (0,3) übernimmt in Mayuyu eine beträchtliche Anzahl globaler Merkmale.
Am Ende werde ich also versuchen, zu mischen, anstatt auszutauschen. Die Hauptteile des Codes sind: Das Ganze ist unten platziert. 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)
Die einzigen Änderungen an diesem Code seit dem letzten Mal sind: Die Form der Eingabedaten src_dlatents wird angepasst.
src_dlatents = np.load('./latent/mayuyu250px_01.npy')
src_dlatents = src_dlatents.reshape(1,18,512)
Auf diese Weise wurde das oben gepostete Video erhalten. Vorerst werde ich es unten erneut veröffentlichen. Dieses Video ist ebenfalls umgekehrt, sodass das Video kontinuierlich ist und Sie Mayuyu etwas langsam ansehen können.
1 | |
---|---|
Das vergrößerte Bild in diesem Video ist übrigens unten angehängt. Aber wissen Sie, welches das echte ist?
1 | 2 | 3 |
---|---|---|
・ Lernte den Stilvektor des abbildenden latenten Raums des eigenen Bildes "Mayuyu" ・ Ich habe versucht, mit dem erhaltenen npy zu mischen ・ Ich habe versucht "eine Frau verwandelt sich in Augenbrauen"
・ Lass uns endlich Anime-Charaktere lernen ・ Machen wir ein bewegendes Video
Recommended Posts