Как мы можем редактировать семантические атрибуты изображений с помощью GAN? Например, изменить возраст или пол человека, сохранив при этом общую форму лица и другие атрибуты? Типичное искажение между скрытым вектором двух изображений демонстрирует плавный переход черт лица, но несколько черт переплетаются вместе, и точный контроль над конкретным атрибутом практически невозможен.

Несмотря на потрясающее качество изображений, которые могут генерировать GAN, для понимания и управления скрытым пространством сделано не так много. Предыдущая работа по редактированию семантических изображений с использованием GAN включает переобучение с использованием тщательно разработанных функций потерь, дополнительных меток атрибутов или специальных архитектур. Разве мы не можем использовать существующие высококачественные генераторы изображений для редактирования данных изображений? Как предлагается в статье, мы должны понимать, как отдельные черты лица кодируются в скрытом пространстве как теоретически, так и эмпирически.

Раньше мы рассматривали Image2StyleGAN, где изучали метод отображения данных изображений в скрытое пространство StyleGAN, которое часто называют инверсией GAN. Мы рассмотрим метод, который распутывает и изолирует изменение множественной семантики. В документе предлагается конвейер, состоящий из набора методов для выделения атрибутов лица на семантическом уровне в скрытом пространстве и обеспечения точного управления атрибутом.

Эта бумага…

  • Анализирует и измеряет, как различные семантические атрибуты кодируются в скрытом пространстве.
  • Распутывает эти семантические атрибуты с помощью проекции подпространства.
  • Предлагает конвейер для редактирования лиц, способный изменять один атрибут, не затрагивая другие.

Официальный документ: InterFaceGAN: Интерпретация распутанного представления лица, полученного в GAN

Характеристики

В работе рассматриваются следующие свойства диссертации 😨. Но не бойтесь, потому что интуиция проста 😆.

Гиперплоскость n-мерного пространства - это (n-1) -мерное подпространство, которое может разделять исходное пространство. например 2D-плоскость может разделять 3D-пространство, 1D-линия может разделять 2D-плоскость.

Первое свойство предполагает, что когда мы определяем гиперплоскость с нормальным вектором n ^ T z = 0, точки векторов с n ^ T z ›0 находятся на определенной стороне гиперплоскости. Представьте себе двухмерную плоскость, разделенную линейным уравнением.

Понимание скрытого пространства GAN

Генератор в GAN можно рассматривать как функцию g: Z → X, где Z обычно является распределением Гаусса, а X - пространством изображения. Рассмотрим семантическое пространство S ⊆ R ^ m с m семантикой и функцией семантической оценки f_S: X → S. Интуитивно семантическая оценка латентный измеряется как f_S (g (z)).

В статье предлагается, чтобы мы наблюдали линейные изменения семантики, содержащейся в изображениях, когда мы линейно интерполируем между двумя скрытыми кодами. Предположим, есть только одна семантика (m = 1). Рассмотрим гиперплоскость с нормальным вектором n, разделяющим семантику. Мы определяем «расстояние» до образца z как d (n, z) = n ^ T z. Мы ожидаем, что расстояние будет пропорционально семантической оценке, f (g (z)) = λ d (n, z).

Согласно свойству 2, любое скрытое z ~ N (0, Id), вероятно, будет близко к данной гиперплоскости. Следовательно, мы можем смоделировать семантику в линейном подпространстве n.

Рассмотрим общий случай с множественной семантикой m ›1. Рассмотрим s = [s_1,… s_m] как истинную семантическую оценку сгенерированного изображения, s ≈ f_S (g (z)) = ΛN ^ T z, где Λ - постоянный вектор, а N - матрица, содержащая m границ разделения. Используя основные статистические правила, мы можем вычислить среднее значение и статистику ковариации как

Затем мы можем сделать вывод, что s фактически выбирается из нормального распределения s ~ N (0, Σs). Интуитивно для того, чтобы каждый вектор в s был полностью распутан, Σs должна быть диагональной матрицей. (n_i) ^ T (n_j) также может использоваться для измерения запутанности между i-й и j-й семантикой.

* n ^ T обозначает транспонирование вектора n.

Условная манипуляция

Предположим, мы нашли границу решения n некоторой семантики. Мы редактируем исходный скрытый код z с помощью z_edit = z + αn. Когда несколько семантик перепутаны, редактирование одной семантики может повлиять на другие атрибуты. Например, перемещение точки в направлении n1 не только повлияет на атрибут 1, но также изменит расстояние до атрибута 2. Чтобы противодействовать этому, в документе применяется проекция, чтобы сделать N ^ TN диагональной матрицей, где семантика независимы друг от друга.

Рассмотрим две гиперплоскости с векторами нормалей n1 и n2, спроецированное направление n1 - (n1 ^ T n2) n2 (черный вектор) изменяет атрибут 1, не затрагивая атрибут 2. При наличии более двух атрибутов мы вычитаем проекцию из основного направления (n1 ) на плоскость , построенную по всем условным направлениям.

Поиск семантических границ

Как мы можем определить семантические границы лицевых атрибутов в скрытом пространстве? Мы обучаем линейную SVM предсказывать определенную двоичную семантику (например, изображения мужчины и женщины) с учетом ее скрытых кодов. Сама линейная модель определяет гиперплоскость в скрытом пространстве, и вектор нормали n может быть получен из модели.

Метки фактических атрибутов скрытых кодов присваиваются с помощью вспомогательного классификатора, обученного на атрибутах CelebA. Среди синтетических изображений 500K 10K изображений с наивысшими уровнями достоверности для каждой метки (например, 10K изображений мужчин и 10K женщин) выбираются в качестве набора для обучения и проверки. Этот процесс подробно описан в разделе 3.3. «Детали реализации» статьи.

Манипулирование реальными изображениями

Как применить изученную семантику к данному изображению для приложений редактирования? Это реализуется с помощью двух подходов: инверсия GAN и дополнительное обучение.

Инверсия GAN отображает целевую грань обратно на скрытый код. Это может быть непросто, поскольку сети GAN не фиксируют полное распределение изображений и часто теряется информация. Мы обсудили инверсию GAN в целом и мощный метод инверсии GAN в предыдущем посте.

Среди двух подходов к инверсии GAN в документе LIA используется в качестве основы для инверсии на основе кодировщика и выполняется поиск в пространстве W + для инверсии на основе оптимизации, предложенной Image2StyleGAN и другими статьями. Методы на основе оптимизации работают лучше, но намного медленнее по сравнению с подходами на основе кодировщика.

Другой подход - обучить дополнительные модели на синтетически созданном парном наборе данных с использованием изученного InterFaceGAN. Модель InterFaceGAN может генерировать неограниченное количество высококачественных парных данных. Идея состоит в том, чтобы обучить модель преобразования изображения в изображение, такую ​​как pix2pixHD, на сгенерированных данных. Чтобы реализовать непрерывное манипулирование, модель перевода сначала изучает идентичную картографическую сеть и сеть, настроенную на преобразование атрибутов. При выводе мы интерполируем веса модели из идентичной модели в точно настроенную модель.

Этот подход имеет гораздо более быструю скорость вывода и возможность полностью сохранить дополнительную информацию, поскольку он устраняет необходимость в реконструкции. Однако из-за присущих pix2pixHD ограничений модель не может запоминать крупные движения, такие как поза и улыбка. Таким образом, количество приложений ограничено.

Результаты и эксперименты

При формулировке описанного выше метода сделано много предположений. Действительно ли семантика линейно представлена ​​в скрытом пространстве? Может ли линейная модель правильно изучить семантическую границу? Действительно ли каждое семантическое подпространство независимо от других? Может ли проекция подпространства практически распутать сложную семантику? Могут ли изученные семантические границы распространяться на изображения реального мира? Эти вопросы о предположениях оцениваются в этом разделе.

Во-первых, можно ли отделить скрытое пространство линейной границей или гиперплоскостью? На рисунке ниже показана классификация линейного SVM. Линейные границы достигают точности ~ 95% как для PGGAN (Progressive GAN), так и для пространства SyleGAN W на проверочном наборе. Это говорит о том, что для бинарной семантики действительно существует приблизительно линейная гиперплоскость.

В серии экспериментов в статье отмечается, что интерполяция в пространстве W лучше, чем в пространстве Z. Результаты по всему набору низкие, потому что они включают менее семантически значимые изображения.

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

Затем мы отвечаем на вопрос, распространяются ли эти семантические границы на редактирование реальных изображений. Если мы посмотрим на рисунок ниже, результаты будут ошеломляющими. Особенно меня удивило то, как модель научилась рисовать «сильные» очки и «слабые». Кажется, что GAN изучает некоторую интерпретируемую семантику в скрытом пространстве.

Они наблюдают, что, когда латентный образец отбирается слишком далеко от границы и естественного скрытого распределения, вносятся изменения в другие атрибуты. Как в примере на рисунке ниже.

Действительно ли семантика распутывается с помощью предложенного метода? Чтобы оценить корреляцию между семантикой, в статье предлагается несколько показателей для измерения распутывания.

Предиктор, обученный предсказывать атрибуты, используется для измерения коэффициента корреляции между двумя атрибутами в реальных данных. Это можно использовать для измерения взаимосвязи между двумя атрибутами. Коэффициент корреляции для синтезированных данных также вычисляется и сравнивается с корреляциями реальных данных. Наконец, можно использовать косинусное подобие между векторами нормалей скрытых границ. Интуитивно эти методы должны уметь измерять распутывание.

Практически все эти методы показывают схожие результаты. В приведенных ниже таблицах мы наблюдаем высокую степень взаимосвязи между определенными атрибутами, такими как возраст, пол и очки. Мы также наблюдаем различия в запутанности между PGGAN, обученным на CelebA-HQ, и StyleGAN, обученным на FF-HQ. Мы можем наблюдать некоторую предвзятость в данных, характерных для FF-HQ, например, связь между улыбкой и полом. Еще одно интересное наблюдение состоит в том, что пространство W значительно распутано по сравнению с пространством z. Однако эту запутанность в пространстве z можно уменьшить с помощью предлагаемой условной манипуляции, как показано в последней строке на рисунке ниже.

Вывод

В статье латентное пространство GAN рассматривается путем допущения линейных изменений семантики. Наблюдения показывают, что каждая семантика представлена ​​как нормальное распределение, основанное на векторе нормали гиперплоскости. Рассматривая гиперплоскость, которая может линейно разделять скрытое пространство в соответствии с семантическими атрибутами, мы можем смоделировать эту гиперплоскость с помощью линейного классификатора. Линейная SVM от скрытых к семантическим меткам может определять «направление» семантических атрибутов в скрытом пространстве. Это распутывается с помощью проекции подпространства.

Идеи, предложенные в этой статье, были очень интересны с точки зрения понимания того, как нейронные сети интерпретируют человеческие лица. Я был особенно ошеломлен тем, как проекция могла распутать различную семантику.