
Figure 1: Des séquences de modifications d'image effectuées à l'aide du contrôle découvert avec notre méthode, appliquée à trois Gans différents. Les encarts blancs spécifient les modifications particulières en utilisant la notation expliquée dans la section 3.4 («modifications par couche»).
Ganspace: Découvrir les contrôles GAn interprétables
Erik Härkönen 1,2 , Aaron Hertzmann 2 , Jaakko Lehtinen 1,3 , Sylvain Paris 2
1 Université Aalto, 2 Adobe Research, 3 Nvidia
https://arxiv.org/abs/2004.02546Résumé: Cet article décrit une technique simple pour analyser les réseaux adversaires génératifs (GAN) et créer des contrôles interprétables pour la synthèse d'image, tels que le changement de point de vue, le vieillissement, l'éclairage et l'heure de la journée. Nous identifions des directions latentes importantes basées sur l'analyse des composants principaux (ACP) appliquée dans l'espace d'activation. Ensuite, nous montrons que les modifications interprétables peuvent être définies en fonction de l'application par couche de ces instructions d'édition. De plus, nous montrons que Biggan peut être contrôlé avec des entrées par calque d'une manière semblable à un style. Un utilisateur peut identifier un grand nombre de contrôles interprétables avec ces mécanismes. Nous démontrons des résultats sur les Gans à partir de divers ensembles de données.
Vidéo: https://youtu.be/jdticda_eai
Voir les instructions de configuration.
Ce référentiel comprend des versions de Biggan, Stylegan et Stylegan2 modifiées pour prendre en charge les vecteurs latents par couche.
Exploration du modèle interactif
# Explore BigGAN-deep husky
python interactive.py --model=BigGAN-512 --class=husky --layer=generator.gen_z -n=1_000_000
# Explore StyleGAN2 ffhq in W space
python interactive.py --model=StyleGAN2 --class=ffhq --layer=style --use_w -n=1_000_000 -b=10_000
# Explore StyleGAN2 cars in Z space
python interactive.py --model=StyleGAN2 --class=car --layer=style -n=1_000_000 -b=10_000
# Apply previously saved edits interactively
python interactive.py --model=StyleGAN2 --class=ffhq --layer=style --use_w --inputs=out/directions
Visualiser les principaux composants
# Visualize StyleGAN2 ffhq W principal components
python visualize.py --model=StyleGAN2 --class=ffhq --use_w --layer=style -b=10_000
# Create videos of StyleGAN wikiart components (saved to ./out)
python visualize.py --model=StyleGAN --class=wikiart --use_w --layer=g_mapping -b=10_000 --batch --video
Options
Command line paramaters:
--model one of [ProGAN, BigGAN-512, BigGAN-256, BigGAN-128, StyleGAN, StyleGAN2]
--class class name; leave empty to list options
--layer layer at which to perform PCA; leave empty to list options
--use_w treat W as the main latent space (StyleGAN / StyleGAN2)
--inputs load previously exported edits from directory
--sigma number of stdevs to use in visualize.py
-n number of PCA samples
-b override automatic minibatch size detection
-c number of components to keep
Tous les chiffres présentés dans le journal principal peuvent être recréés à l'aide des cahiers de jupyter inclus:
figure_teaser.ipynbfigure_pca_illustration.ipynbfigure_pca_cleanup.ipynbfigure_style_content_sep.ipynbfigure_supervised_comp.ipynbfigure_biggan_style_resampling.ipynbfigure_edit_zoo.ipynb models/wrappers.py à l'aide de l'interface BaseModel .get_model() dans models/wrappers.py . Il est possible d'importer des poids StyleGan et Stylegan2 de TensorFlow dans Ganspace.
conda install tensorflow-gpu=1.* .__init__() , load_model() dans models/wrappers.py sous la classe Stylegan.checkpoints/stylegan2/<dataset>_<resolution>.pt .__init__() , download_checkpoint() dans models/wrappers.py sous la classe Stylegan2. Nous tenons à remercier:
@inproceedings{härkönen2020ganspace,
title = {GANSpace: Discovering Interpretable GAN Controls},
author = {Erik Härkönen and Aaron Hertzmann and Jaakko Lehtinen and Sylvain Paris},
booktitle = {Proc. NeurIPS},
year = {2020}
}
Le code de ce référentiel est publié sous la licence Apache 2.0.
Le répertoire netdissect est un dérivé du projet de dissection GAN et est fourni sous la licence du MIT.
Les models/biggan et models/stylegan2 sont fournis sous la licence MIT.