[Из песочницы] GAN научили создавать лица с реалистичной текстурой и геометрией

Привет, Хабр! Представляю вашему вниманию перевод статьи «Facial Surface and Texture Synthesis via GAN».

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

  • поза,
  • освещение,
  • нежесткие деформации,


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

Рассмотрим, как state-of-art методы пытаются решить эту задачу.

Современные подходы к генерации лиц


Генеративо-состязательные нейросети (GAN) показывают свою эффективность в придании синтетическим данным больше реализма. Принимая на вход синтезированные данные, GAN производит образцы, которые больше походят на реальные данные. Однако семантические свойства могут быть изменены, и даже функция потери, наказывающая за изменение параметров, не решает проблему до конца.

3D Morphable Model (3DMM) — наиболее распространенный метод для представления и синтеза геометрии и текстур и изначально он был представлен в контексте генерации трехмерных человеческих лиц. Согласно этой модели, геометрическая структура и текстуры человеческого лица могут быть линейно аппроксимированы, как комбинация корневых векторов.

Недавно, 3DMM модель была скомбинирована со сверточными нейронными сетями для аугментации данных. Однако полученные образцы получаются чересчур гладкими и нереалистичными, как можно увидеть на картинке ниже:

Лица, полученные с помощью 3DMM
Лица, полученные с помощью 3DMM

Более того 3DMM генерируют данные на основе гауссовского распределения, которое редко отображают реальное распределение данных. Например, ниже показаны два PCA (анализ главных компонент) коэффициента построенные по реальным лицам и синтезированным с помощью 3DMM. Разница между синтетическим и реальным распределением может легко привести к генерации некорректных данных.
Первые два коэффициента PCA для реальных (слева) и 3DMM сгенерированных (справа) лиц
Первые два коэффициента PCA для реальных (слева) и 3DMM сгенерированных (справа) лиц

State-of-art идея


Слоссберг, Шамай и Киммел из Техниона — Израильского технологического института предлагают новый подход к синтезу реалистичных человеческих лиц, использующий комбинацию 3DMM и GAN.

В частности, исследователи используют GAN для имитации пространства параметризованных человеческих текстур и создания соответствующих геометрий лица, вычисляя лучшие коэффициенты 3DMM для каждой текстуры. Сгенерированные текстуры отображаются на соответствующие геометрии для получения новых 3D-лиц высокого разрешения.

Такая архитектура генерирует реалистичные изображения, при этом:

  • не страдает от контроля над такими атрибутами, как поза и освещение;
  • количественно не ограничена в генерации новых лиц.


Давайте взглянем поближе на процесс генерации данных.

Процесс генерации данных


Data preparation pipeline
Подготовка данных

Пайплайн генерации данных состоит из четырех основных этапов:

  • Сбор данных: исследователи собрали более 5000 сканов (разверток лица) разных этнических, гендерных и возрастных групп. Каждый участник должен был изобразить 5 различных выражений лица включая нейтральное.
  • Разметка: 43 ключевые точки добавлены на мэши полуавтоматически, путем рендеринга лица и использования предобученного детектора лицевой разметки
  • Выравнивание мэшей: реализовано за счет деформации шаблонного мэша лица согласно геометрии каждого скана, ориентируясь на проставленную разметку.
  • Перенос текстуры: текстура переносится из скана на шаблон с помощью техники ray casting, встроенной в тулбокс Blender. После этого текстура преобразуется из шаблона в двумерную полоскость, используя предопределенное универсальное преобразование

Плоские выровненные лицевые текстуры
Плоские выровненные лицевые текстуры

Следующий шаг — обучение GAN созданию имитаций выровненных текстур. Для этой задачи исследователи использовали прогрессивный GAN c генератором и дискриминатором, организованными как симметричная нейросеть. В такой реализации, генератор прогрессивно увеличивает размер feature map пока не достигнет размера выходного изображения, в то время как дискриминатор постепенно уменьшает размер обратно до единичного выхода.

Facial textures synthesized by GAN
Текстуры лиц, полученные GAN

Последний шаг — создание геометрии лица. Исследователи попробовали разные подходы, чтобы найти корректные коэффициенты геометрии для текстуры. Качественное и количественное сравнение различных методов ниже (L2 геометрическая ошибка):

Two synthesized textures mapped onto differegknt geometries
Две синтезированные текстуры наложенные на разные геометрии.

Неожиданно, метод наименьщшх квадратов показывает наилучшие результаты. Принимая во внимание простоту метода, он был выбран для всех экспериментов.

Результаты


Предложенный метод может генерировать множество новых лиц, и каждое из них может быть представлено в различных позах, с различным выражением и освещением. Различные выражения лица добавлены к нейтральной геометрии, используя Blend Shape model. Полученные изображения показаны ниже:

image

image

Identities generated by the proposed method with different pose and lighting

Для количественных оценок исследователи использовали усеченную метрику Вассерштейна (SWD) для измерения дистанции между распределениями тренировочных и сгенерированных изображений.

table1-570x154.png

Таблица демонстрирует, что полученные текстуры статистически ближе к реальным данным, чем полученные с помощью 3DMM.

Следующий эксперимент оценивает способности синтеза изображений, которые значительно отличаются от тренировочного датасета, и получения ранее не виденных изображений. Таким образом, 5% лиц не были включены в оценку. Исследователи измерили L2 дистанцию между каждым реальным лицом из тренировочных данных и максимально похожего из сгенерированных, и аналогично — для реального из тренировочного датасета.

The distance between the generated and real identities
Дистанция между синтезированными и реальными лицами

Как видно из графиков, тестовые данные ближе к сгенерированным изображениям, чем к тренировочным. Более того «Test to fake» дистанция не слишком отличается от «Fake to real». Из этого следует, что полученные образцы — это не просто синтезированные лица, похожие на тренировочную выборку, но абсолютно новые лица.

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

Synthesized facial textures (top) vs. corresponding closest real neighbors (bottom)
Синтезированные текстуры (вверху) против ближайших реальных «соседей» (внизу)

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

Итоги


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

Оригинал

Перевел — Станислав Литвинов.

© Habrahabr.ru