Искусственный интеллект
Решение проблем с “плохими днями волос” в синтезе человеческого образа

С момента золотого века римской скульптуры изображение человеческих волос было проблемой. Средняя человеческая голова содержит 100 000 волос, имеет различные показатели преломления в зависимости от цвета и, сверх определенной длины, будет двигаться и менять форму способами, которые можно смоделировать только с помощью сложных физических моделей – до сих пор это применимо только через традиционные методы CGI.

Из исследования 2017 года Disney, физическая модель попытается применить реалистичное движение к жидкому стилю волос в рабочем процессе CGI. Источник: https://www.youtube.com/watch?v=-6iF3mufDW0
Проблема плохо решается современными популярными методами deepfakes. Некоторое время ведущий пакет DeepFaceLab имел модель “полной головы”, которая может захватить только жесткие воплощения коротких (обычно мужских) причесок; и недавно DFL stablemate FaceSwap (оба пакета получены из спорного исходного кода DeepFakes 2017 года) предложил реализацию модели BiseNet семантической сегментации, позволяющей пользователю включить уши и волосы в выход deepfakes.
Даже при изображении очень коротких причесок результаты, как правило, очень ограничены по качеству, с полными головами, появляющимися наложенными на кадры, а не интегрированными в них.
GAN Hair
Два основных конкурирующих подхода к человеческой симуляции – это Neural Radiance Fields (NeRF), которые могут захватить сцену с нескольких точек зрения и заключить 3D-представление этих точек зрения в исследуемую нейронную сеть; и Generative Adversarial Networks (GANs), которые заметно более продвинуты в плане синтеза человеческого образа (не в последнюю очередь потому, что NeRF появился только в 2020 году).
Выведенное понимание 3D-геометрии NeRF позволяет ему воспроизвести сцену с большой точностью и последовательностью, даже если в настоящее время у него мало или нет возможности для наложения физических моделей – и, фактически, относительно ограниченная возможность для любого рода преобразования собранных данных, не связанных с изменением точки зрения камеры. В настоящее время NeRF имеет очень ограниченные возможности в плане воспроизведения движения человеческих волос.
GAN-эквиваленты NeRF начинаются с почти фатального недостатка, поскольку, в отличие от NeRF, латентное пространство GAN не включает в себя понимание 3D-информации. Поэтому 3D-осведомленный синтез лицевых изображений GAN стал горячей темой в исследовании генерации изображений в последние годы, с 2019 года InterFaceGAN одним из ведущих прорывов.
Однако даже результаты InterFaceGAN, представленные и отобранные, демонстрируют, что нейронная последовательность волос остается сложной задачей в плане временной последовательности для потенциальных рабочих процессов VFX:

«Шипящая» волосы в трансформации позы из InterFaceGAN. Источник: https://www.youtube.com/watch?v=uoftpl3Bj6w
Поскольку становится более очевидным, что последовательная генерация вида через манипуляцию латентным пространством может быть похожа на алхимию, все больше появляется работ, которые включают CGI-информацию в рабочий процесс GAN в качестве стабилизирующего и нормализующего ограничения.
CGI-элемент может быть представлен промежуточными 3D-примитивами, такими как Skinned Multi-Person Linear Model (SMPL), или путем принятия 3D-инференциальных методов аналогичным образом, как NeRF, где геометрия оценивается из исходных изображений или видео.
Одна из новых работ в этом направлении, опубликованная на этой неделе, – это Многообразно-согласованные генеративные противостоящие сети для 3D-осведомленного синтеза изображений (MVCGAN), сотрудничество между ReLER, AAII, Университетом технологий Сиднея, академией DAMO в Alibaba Group и Университетом Чжэцзяна.

Правдоподобные и прочные новые лицевые позы, сгенерированные MVCGAN на изображениях, полученных из набора данных CELEBA-HQ. Источник: https://arxiv.org/pdf/2204.06307.pdf
MVCGAN включает в себя генеративную радианционную сеть (GRAF), способную обеспечить геометрические ограничения в генеративной противостоящей сети, аргументируя достижение некоторых из наиболее аутентичных возможностей позирования среди подобных подходов, основанных на GAN.
Однако дополнительный материал для MVCGAN показывает, что получение объема волос, расположения, размещения и поведения последовательности является проблемой, которую не легко решить с помощью ограничений, основанных на внешней 3D-геометрии.

Из дополнительного материала, не опубликованного на момент написания, мы видим, что хотя синтез лицевых поз из MVCGAN представляет собой заметный прогресс по сравнению с текущим состоянием искусства, временная последовательность волос остается проблемой.
Поскольку «простые» рабочие процессы CGI все еще находят временную реконструкцию волос такой сложной задачей, нет причины полагать, что конвенциональные геометрические подходы этого характера смогут принести последовательный синтез волос в латентное пространство в ближайшее время.
Стабилизация волос с помощью свёрточных нейронных сетей
Однако предстоящая работа трех исследователей в Институте технологий Чалмерса в Швеции может предложить дополнительный прогресс в нейронной симуляции волос.

Слева, стабилизированное представление волос CNN, справа, реальный результат. См. видео в конце статьи для лучшего разрешения и дополнительных примеров. Источник: https://www.youtube.com/watch?v=AvnJkwCmsT4
Система состоит из автоэнкодерной сети, способной оценивать разрешение волос, включая самотень и учитывая толщину волос, в реальном времени, на основе ограниченного числа стохастических выборок, инициированных геометрией OpenGL.
Подход отображает ограниченное количество выборок со стохастической прозрачностью и затем обучает U-net для реконструкции исходного изображения.

Под MVCGAN CNN фильтрует стохастически отобранные цветовые факторы, блики, тангенсы, глубину и альфы, собирая синтезированные результаты в составное изображение.
Сеть обучается на PyTorch, сходясь в течение периода от шести до двенадцати часов, в зависимости от объема сети и количества входных признаков. Обученные параметры (веса) затем используются в реальном времени реализации системы.
Тренировочные данные генерируются путем рендеринга нескольких сотен изображений для прямых и волнистых причесок, используя случайные расстояния и позы, а также различные условия освещения.

Различные примеры входных данных.
Прозрачность волос по выборкам усредняется из изображений, отображаемых со стохастической прозрачностью на супер-высоком разрешении. Исходные высокоразрешающие данные снижаются до уровня, который может вместить сеть и аппаратное обеспечение, и позже увеличиваются, в типичном рабочем процессе автоэнкодера.
Реальное приложение вывода (программное обеспечение «в реальном времени», которое использует алгоритм, полученный из обученной модели) использует смесь NVIDIA CUDA с cuDNN и OpenGL. Первоначальные входные признаки сбрасываются в OpenGL-буферы цветов с несколькими выборками, и результат передается в тензоры cuDNN перед обработкой в CNN. Эти тензоры затем копируются обратно в «живую» текстуру OpenGL для наложения в окончательное изображение.
Реальная система работает на NVIDIA RTX 2080, производя разрешение 1024×1024 пикселей.
Поскольку значения цвета волос полностью дезентанглированы в окончательных значениях, полученных сетью, изменение цвета волос является тривиальной задачей, хотя эффекты, такие как градиенты и полосы, остаются будущей задачей.

Авторы выпустили код, использованный в оценках статьи, на GitLab. Проверьте дополнительное видео для MVCGAN ниже.
Заключение
Навигация по латентному пространству автоэнкодера или GAN все еще больше похожа на плавание, чем на точную езду. Только в этот очень недавний период мы начинаем видеть достоверные результаты для генерации поз «простой» геометрии, таких как лица, в подходах, таких как NeRF, GAN и неразрушающие (2017) автоэнкодерные рамки.
Значительная архитектурная сложность человеческих волос, в сочетании с необходимостью включения физических моделей и других черт, для которых текущие подходы к синтезу изображений не имеют положения, указывает на то, что синтез волос вряд ли останется интегрированным компонентом в общем лицевом синтезе, но потребует отдельных и специализированных сетей некоторой сложности – даже если такие сети могут в конечном итоге стать частью более широких и сложных лицевых синтезных рамок.
Опубликовано впервые 15 апреля 2022 года.











