
Рисунок 1: Последовательности изменений изображений, выполненных с использованием элемента управления, обнаруженного с помощью нашего метода, применяемых к трем различным GAN. Белые вставки указывают конкретные изменения с использованием обозначений, объясненных в разделе 3.4 («слоевые редакторы»).
Ganspace: обнаружение интерпретируемых элементов управления GAN
Эрик Харконен 1,2 , Аарон Херцманн 2 , Джаакко Лехтинен 1,3 , Сильвен Париж 2
1 Университет AALTO, 2 Adobe Research, 3 NVIDIA
https://arxiv.org/abs/2004.02546Аннотация: В этой статье описывается простой метод для анализа генеративных состязательных сетей (GAN) и создания интерпретируемых элементов управления для синтеза изображения, таких как изменение точки зрения, старение, освещение и время суток. Мы определяем важные скрытые направления, основанные на анализе основных компонентов (PCA), применяемых в пространстве активации. Затем мы показываем, что интерпретируемые изменения могут быть определены на основе уровня применения этих направлений редактирования. Более того, мы показываем, что Биггана можно контролировать с помощью слоев входными входами в стиле. Пользователь может идентифицировать большое количество интерпретируемых элементов управления с этими механизмами. Мы демонстрируем результаты на Gans из различных наборов данных.
Видео: https://youtu.be/jdticda_eai
Смотрите инструкции по настройке.
Этот репозиторий включает в себя версии Biggan, Stylegan и Stylegan2, модифицированные для поддержки скрытых векторов.
Интерактивное исследование модели
# 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
Визуализировать основные компоненты
# 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
Параметры
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
Все цифры, представленные в основной статье, могут быть воссозданы с использованием включенных ноутбуков Юпитера:
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 используя интерфейс BaseModel .get_model() в models/wrappers.py . Можно импортировать обученные стиль и стиль, от Tensorflow в Ganspace.
conda install tensorflow-gpu=1.* .__init__() , load_model() в models/wrappers.py в разделе класса Stylegan.checkpoints/stylegan2/<dataset>_<resolution>.pt .__init__() , download_checkpoint() в models/wrappers.py в разделе класса Stylegan2. Мы хотели бы поблагодарить:
@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}
}
Код этого хранилища выпускается по лицензии Apache 2.0.
netdissect Directory является производной проекта рассечения GAN и предоставляется в соответствии с лицензией MIT.
models/biggan и models/stylegan2 представлены по лицензии MIT.