Назад
52

SIGGRAPH

52

Летом состоится ежегодная конференция SIGGRAPH, посвященная инновациям в области 3D CV. Именно на SIGGRAPH каждый год формируется будущее трехмерной графики: крупнейшие компании показывают лучшие разработки и последние технологии в области. (одни только инженеры NVIDIA подали на конференцию больше 15 работ!) Многие участники уже поделились своими публикациями для конференции в соц. сетях, а в нашей статье мы коротко описали самые интересные из них.

Статья: Learning Physically Simulated Tennis Skills from Broadcast Videos

Тема: AI для индустрии видеоигр.

Абстракт: Обученная (по двухмерным видеоиграм в теннис + с соблюдением законов физики) 3D-модель человека, играющего в теннис.

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

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

Статья: Live 3D Portrait: Real-Time Radiance Fields for Single-Image Portrait View Synthesis

Тема: Аватары.

Абстракт: Фотореалистичный 3D-аватар головы человека по одной фотке с реалтайм рендером на ПК.

Описание: Статья предлагает подход по созданию фотореалистичного 3D-аватара головы человека по одной фотографии с real-time рендером на ПК (порядка 24 fps), что открывает новые возможности для AR/VR областей и видеоконференций.

Пример генерации сцены по одной фотографии (источник)

Основная идея в использовании мощного EG3D гана для генерации триплетного представления сцены и обучении сетки точному воспроизводству результатов гана (некая разновидность дистилляции, но с фишками). Из интересностей:

  • обучается только на синтетических данных с помощью предобученного EG3D;
  • превосходит по качеству ганы, но не требует test-time optimization (поэтому работает в 1000 раз быстрее);
  • суммарное время тренировки занимает 10 дней на 8 A100 с многочисленными тонкостями при обучении.

Статья: AvatarReX: Real-time Expressive Full-body Avatars

Тема: Аватары.

Абстракт: Реалистичные аватары в реальном времени. Лицо, руки и остальное тело моделируются отдельно. Также отдельными нейронными сетями определяется геометрия тела и цвета.

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

Демонстрация аватаров (источник)

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

Геометрия и текстуры генерируются отдельно (источник)

Статья: Interactive Hair Simulation on the GPU Using ADMM

Тема: Графика.

Абстракт: Реалистичная реалтайм симуляция физики волос.

Описание: Волосы — довольно сложная структура, поведение которой проблематично просчитатать с учетом всех физических законов, тем более в реальном времени. Детализация и поведение волос в играх значительно уступает кинемотографу: при создании фильмов можно потратить гораздо больше времени на просчет всех физических взаимодействий.

Демонстрация физики на наборе кадров (источник)

В статье представлен метод, который может имитрировать поведение десятков тысяч волосков в реальном времени с использованием нейронных сетей, который обучаются предсказывать как объект будет двигаться в реальном времени, а параллельные вычисления на GPU позволяют превзойти скорость предыдущих подходов в разы.

Статья: HumanRF: High-Fidelity Neural Radiance Fields for Humans in Motion

Тема: Графика.

Абстракт: Открывает возможность для качественного и детализированного просмотра тела с новых точек.

Описание: Подход заключается в обучении NeRF предсказывать положение тела человека в видео с несколькими точками обзора, основной ключ — созданный датасет, содержащий в себе видео со 160 камер, расположенных вокруг всей сцены.

Демонстрация сцены с новых ракурсов

Статья: NeRSemble: Multi-view Radiance Field Reconstruction of Human Heads

Тема: Графика.

Абстракт: Как HumanRF, но работает только с головами и выглядит более натурально.

Описание: Для обучения модели собрали датасет с использованием 16 камер, записавших видео с большим разрешением и частотой.

Слева — RGB, посередине — маска глубины, справа — маска деформации (источник)

Можно и не понять, что это результат нейронного рендеринга! Выдают, в основном, блики в глазах и странноватое поведение волос.

Статья: Random-Access Neural Compression of Material Textures

Тема: Графика.

Абстракт: Очень детализированные нейронные текстуры (в 16 раз больше обычных), с неотличимым от фотографий качеством рендера.

Описание: Обычно создание объекта в 3D-графике завершается наложением текстуры на этот объект. Для сокращения места в памяти и на диске текстуру нужно сжимать. При этом желательно в real-time на GPU распаковывать сжатую картинку с максимальной детализацией. Плюс иметь возможность распаковать не всю картинку, а только ее часть. Авторы статьи сравнивают свой метод, основанный на нейросетях, с традиционными методами сжатия текстуры.

Слева — модель до наложения текстуры, справа — после (источник)

Традиционные методы сжатия изображений обычно используют пространственную и межканальную корреляцию для квантования или удаления слабо коррелированной информации. Самые эффективные из real-time методов (BC1-7) могут сжимать только текстуры в формате RGBA, где RGB — цвет, A — прозрачность (то есть 4 канала).

RGBA. RGB меняется по горизонтали, прозрачность возрастает по вертикали
Пример других параметров для рендеринга

Но при рендеринге обычно используют несколько свойств материала: альбедо, карты нормалей, ARM (ambient occlusion, roughness, metalness) и другую информацию о BRDF. Про BRDF и некоторые другие параметры мы рассказали в этой статье. Каждое свойство все равно приходится хранить, и в итоге нам нужна не одна сжатая текстура, а набор текстур.

Нейронное сжатие решает эту проблему. Сжимаемую текстуру мы представляем как тензор \( (width \times height \times channels) \). Четыре канала из channels — это RGBA. Остальные способны содержать любые другие необходимые параметры. Такой набор может различаться для разных материалов, поэтому под каждый из них мы обучаем сетки отдельно. Можно добиться большей скорости с одной сетью, но это неудобно (набор нужных каналов для разных материалов будет отличаться). Мы не даем сеткам информацию о содержимом каналов.

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

Во время предсказания мы хотим получить MIP-пирамиду — последовательность текстур с разрешением от максимального до \( 1 \times 1 \). Они используются для наложения текстуры разного размера в зависимости от расстояния до наблюдателя.

Иллюстрация метода декодирования

Кратко опишем этот метод:

Мы расшифровываем сжатое представление — feature pyramid из нескольких уровней \( F_j \), в примере \( j=0, 1, 2 \). По сути тензор с \( j \) каналами. Эти уровни используются для предсказания разных уровней MIP-пирамиды. Связь показана стрелками на рисунке выше. Каждый уровень feature pyramid разбит на две сетки — \( G_0^j, G_1^j \). Разный размер ячеек позволяет восстанавливать мелкие детали и сохранять общий контекст.

Для ещё более компактного хранения сжатого представления применяют квантование. Здесь у нас используется представление до квантования. Чтобы его сымитировать, мы добавляем шум и обрезаем значения по порогу.

Используем информацию из $G_0^j, G_1^j$, positional encoding и уровень детализации (LOD) для создания небольшого вектора. Из него мы будем восстанавливать текстуру.

Прогоняем через сеть и получаем один из MIP уровней.

Кроме того, авторы написали свою реализацию модели для проведения всех вычислений в одном ядре CUDA. В результате мы получаем сжатую текстуру с высокой детализацией и real-time декомпрессией.

Пример сжатия: BC high — популярный метод сжатия на GPU, NTC — текущая работа, reference — до сжатия
Другие примеры можно посмотреть тут (их можно приближать:))

Другое интересное

Еще в индустрии не утихает работа над более быстрыми способами рендеринга нерфов с более высоким качеством для того, чтобы уже завтра вы нашли их у себя в проде:

https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting

Не забывают и снизить требования к нерфам:

Также в 3D CV есть прикольные и необычные задачи (как из шпионских боевиков). Например, система для просмотра того, что происходит за стеной:

https://graphics.unizar.es/projects/VirtualMirrors_2023

Любители хардкорной математики тоже не уйдут с пустыми руками:

https://1zb.github.io/3DShape2VecSet

https://arxiv.org/abs/2305.03045

Всего NVIDIA представила порядка 20 статей. С полным списком можно ознакомиться тут: https://research.nvidia.com/publications. Многие из них также посвящены теме 3D CV.

Телеграм-канал

DeepSchool

Короткие посты по теории ML/DL, полезные
библиотеки и фреймворки, вопросы с собеседований
и советы, которые помогут в работе

Открыть Телеграм

Увидели ошибку?

Напишите нам в Telegram!