im2im
November 9, 2021

MUNIT: Multimodal Unsupervised Image-to-Image Translation

🔗 Ссылки

https://arxiv.org/abs/1804.04732

https://github.com/NVlabs/imaginaire/tree/master/projects/munit

💎 Контрибьюшн

В конце статьи UNIT (разбор) авторы сказали, что одним из ограничений их модели является унимодальность — то есть по входной картинке можно синтезировать только очень похожие друг на друга изображения. В общем же случае домен может быть мультимодальным, как например породы собак или снимки со спутника. Поэтому здесь предложен подход для unsupervised-обучения мультимодальной модели image-to-image translation.

В этой работе предполагается более слабое условие о существовании partially shared-latent space. Общее латентное пространство может быть декомпозировано на 2 подпространства — C (content) и S (style):

  • C — общее для доменов
  • S_i — своё для каждого домена

Мультимодальность обеспечивается сэмплированием эмбеддинга стиля из S_i при генерации изображения из i-го домена.

Схема мультимодального перевода изображения из одного домена в другой.

В работе есть несколько теоретических результатов, наиболее важным из которых является доказательство, что

Использование cycle-consistency приводит к унимодальной функции условного распределения, и как следствие — к унимодальности синтезируемых картинок.

🛠 Задача

Задача формулируется аналогично UNIT: имея 2 частных распределения p(x) и p(y) нужно выучить совместное распределение p(x, y).

Пояснение: вообще говоря, для image translation нам нужно выучить условное распределение p(y|x) и/или p(x|y) (обычно "и"). Но вспомнив формулу Байеса можно понять, что имея частное и условное распределения мы на самом деле имеем совместное:

p(x, y) = p(x)p(y|x) = p(y)p(x|y)

Задача некорректно поставлена, т.к. имеет бесконечно много решений. Поэтому предполагается дополнительное условие — partially shared-latent space:

C — общее латентное пространство, кодирующее контент;
S_i — подпространства, кодирующие стиль для каждого домена.

Также предполагается существование всех функций, которые позволяют переводить картинки в латентные вектора и наоборот:

Тогда для image translation 1->2 нужно смоделировать E_1, G_2 и распределения p(c), p(s_2):

🔎 Детали

Главная идея работы — это разделение контента и стиля изображений, но при этом нет чётких определений, что есть что. Авторы говорят, что контент — это структура изображения, а стиль — это рендеринг.

Архитектура

Content-энкодер состоит из residual-блоков 3x3; после свёрточных слоёв стоит IN.

Style-энкодер, наоборот, не содержит IN, т.к. убиваются исходные (μ, σ), несущие информацию о стиле. Используются свёртки 4x4, как в PatchGAN-дискриминаторе.

Для прокидывания стиля в генератор используется AdaIN:

Интересно, что из контентного пространства C вектора не сэмплируются, а просто берутся полученные из энкодера. Это логично, т.к. мультимодальность теперь кроется в style-пространствах.

Для S_i энкодер оценивает вектор мат. ожиданий нормального распределения, из которого потом сэмплируются style-эмбеддинги. Prior — стандартное нормальное распределение.

Размерности: dim(C) = 256, dim(S_i) = 8

В отличие от UNIT в этом фреймворке сэмплирование происходит только из S_i, а для обучения content-эмбеддингов архитектура представляет собой обычный автоэнкодер.

Лоссы

1. Bidirectional Reconstruction Loss:

  • Image reconstruction — L1 между картинками
  • Latent reconstruction — L1 между латентными векторами (для C и для S_i)

2. Adversarial Loss:

Дискриминатор — Multiscale PatchGAN (как в pix2pixHD), лосс — LSGAN

3. Style-augmented Cycle Consistency:

X1->C->X2->C->X1, но с исходным вектором стиля

Поскольку cycle-consistency для мультимодального синтеза не работает, предложена его ослабленная версия: условие затрагивает только часть латентного пространства, а именно {C, S_1}. Для генерации во домене №2 используется style-эмбеддинг, сэмплированный напрямую из S_2.

Логично не накладывать ограничение на стиль картинки во втором домене, иначе получится, что он однозначно определяется картинкой из первого домена. Это подтверждается теор. доказательством.

4. Domain-invariant Perceptual Loss:

Чтобы избавиться от domain-specific информации в обычном Perceptual Loss'е вставили IN-слои без денормализации — μ = 0, σ = I. Это помогает для обучения на больших картинках ≥512x512.

Гистограммы распределения активаций VGG: same scene — одинаковая структура, но разный стиль; same domain — наоборот. Пример: фото одной улицы днём и ночью (same scene) vs. разные улицы ночью (same domain).

Теоретический анализ

Лосс (*) для доказательств:

Утв. 1: E* и G* минимизируют лосс (*).

Утв. 2: в точке оптимума (*) распределения латентных векторов равны их prior'ам.

Утв. 3: в точке оптимума (*) совместные распределения равны:

Утв. 4: в точке оптимума (*) выполняется style-augmented cycle consistency.

Утв. 5: cycle-consistency приводит к унимодальным дельта-функциям распределений, что означает слабое отличие результатов генерации.

🔬 Эксперименты

Метрики

  • Human Preference Score
  • LPIPS — оценка того, насколько реалистично выглядит картинка, с помощью дистанции между активациями предобученной сети (в данном случае, AlexNet)
  • Conditional Inception Score (CIS) — замеряет реалистичность каждой отдельной картинки и разнообразия картинок в целом, основываясь на уверенности классификатора (в данном случае, Inception-v3). Усреднение по 100 входных картинок и 100 картинок на каждую входную (итого 10 000 синтезированных).

<To be continued 🤡>