
Figura 1: Secuencias de ediciones de imágenes realizadas utilizando el control descubierto con nuestro método, aplicado a tres Gans diferentes. Las inserciones blancas especifican las ediciones particulares utilizando la notación explicada en la Sección 3.4 ('ediciones de capas').
Ganspace: Descubrimiento de controles de GaN interpretables
Erik Härkönen 1,2 , Aaron Hertzmann 2 , Jaakko Lehtinen 1,3 , Sylvain Paris 2
1 Universidad de Aalto, 2 Adobe Research, 3 Nvidia
https://arxiv.org/abs/2004.02546Resumen: Este documento describe una técnica simple para analizar las redes adversas generativas (GAN) y crear controles interpretables para la síntesis de imágenes, como el cambio de punto de vista, el envejecimiento, la iluminación y la hora del día. Identificamos importantes direcciones latentes basadas en el análisis de componentes principales (PCA) aplicado en el espacio de activación. Luego, mostramos que las ediciones interpretables se pueden definir en función de la aplicación en forma de capa de estas direcciones de edición. Además, mostramos que Biggan se puede controlar con entradas en forma de capa de manera similar a Stylegan. Un usuario puede identificar una gran cantidad de controles interpretables con estos mecanismos. Demostramos resultados en Gans de varios conjuntos de datos.
Video: https://youtu.be/jdticda_eai
Vea las instrucciones de configuración.
Este repositorio incluye versiones de Biggan, Stylegan y Stylegan2 modificados para admitir vectores latentes por capa.
Exploración del modelo interactivo
# 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
Visualizar componentes principales
# 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
Opción
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
Todas las figuras presentadas en el documento principal se pueden recrear utilizando los cuadernos Jupyter incluidos:
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 usando la interfaz BaseModel .get_model() en models/wrappers.py . Es posible importar pesas capacitadas de Stylegan y Stylegan2 desde TensorFlow en Ganspace.
conda install tensorflow-gpu=1.* .__init__() , load_model() en models/wrappers.py en class stylegan.checkpoints/stylegan2/<dataset>_<resolution>.pt .__init__() , download_checkpoint() en models/wrappers.py en class stylegan2. Nos gustaría agradecer:
@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}
}
El código de este repositorio se publica bajo la licencia Apache 2.0.
El directorio netdissect es un derivado del proyecto de disección de GaN, y se proporciona bajo la licencia MIT.
Los models/biggan y models/stylegan2 se proporcionan bajo la licencia MIT.