Сцена — это миллионы трёхмерных гауссиан с цветом и прозрачностью. Их проекция на экран считается напрямую, поэтому идёт в реальном времени.
Ключевые тезисы
- Явное представление вместо неявного: нет сети, есть параметры примитивов, которые оптимизируются .
- с по глубине заменяет трассировку лучей — отсюда сотни кадров в секунду.
- Число гауссиан адаптивно: там, где ошибка велика, они делятся, где не нужны — удаляются.
Какую задачу решает
показал, что сцену можно выучить по фотографиям, но платил за это скоростью: каждый пиксель требует десятков обращений к сети. решают ту же задачу явным представлением — сцена состоит из миллионов трёхмерных гауссиан, у каждой своё положение, форма, цвет и прозрачность.
Выигрыш в том, что проекция гауссианы на экран считается аналитически: получается эллиптическое пятно, которое можно просто нарисовать. Вместо — растеризация с по глубине, и вместо секунд на кадр получаются сотни кадров в секунду.
Обучение остаётся : параметры примитивов подбираются по расхождению отрисованного со снимками. Дополнительно число гауссиан меняется по ходу — там, где ошибка велика, они делятся и клонируются, где вклад ничтожен, удаляются.
Начните с из — несколько десятков тысяч гауссиан. Крупные детали сойдутся быстро, но резьба на карнизе останется мыльной: одна гауссиана физически не может передать несколько мелких деталей сразу. Приём простой: смотрите на по положению. Если он велик, оптимизация «тянет» примитив в разные стороны — значит, он пытается описать больше, чем может. Такую гауссиану делят на две (или клонируют, если она мала), и каждая уходит к своей детали. За несколько тысяч шагов сцена вырастает с десятков тысяч примитивов до миллионов, причём плотность оказывается неравномерной: на гладкой стене их единицы, на резьбе — тысячи.
Подробный разбор
- среднее значение
- объект: вектор признаков
- транспонирование: строка вместо столбца
- экспонента
- — центр, три числа.
- — : форма и ориентация. Хранится как масштаб по трём осям плюс поворота.
- — прозрачность.
- Цвет — коэффициенты сферических гармоник, чтобы он зависел от направления взгляда.
не оптимизируют напрямую: произвольная 3×3 может перестать быть положительно определённой. Разложение на поворот и масштаб гарантирует корректность на каждом шаге .
Проекция трёхмерной гауссианы на плоскость изображения — снова гауссиана, только двумерная. Её считается аналитически через проекции. Никакого интегрирования вдоль луча не нужно: достаточно нарисовать эллиптическое пятно.
- Спроецировать все гауссианы, отсеять невидимые.
- Разбить экран на плитки 16×16 и раздать каждой список гауссиан, которые её задевают.
- Отсортировать по глубине внутри плитки.
- Смешать спереди назад, накапливая прозрачность, — пока она не насытится.
по плиткам, а не по пикселям, и есть источник скорости: она делается один раз на плитку, а не на каждый луч. Плюс к этому вся операция параллельна по плиткам и отлично ложится на .
Начальное облако из — это десятки тысяч точек, и его недостаточно. Каждые несколько сотен шагов оптимизация смотрит на по положению: большой градиент означает, что примитив «растягивают» в разные стороны, то есть он пытается описать больше деталей, чем может.
| Условие | Действие | Зачем |
|---|---|---|
| большой , малый размер | клонировать | заполнить недоописанную область |
| большой , большой размер | разделить надвое | детализировать крупное пятно |
| прозрачность ниже порога | удалить | убрать невидимое |
| слишком большой размер | удалить | убрать «блины», закрывающие сцену |
Периодически всем гауссианам принудительно понижают прозрачность. Те, что действительно нужны, восстановят её за несколько шагов; те, что держались случайно, уйдут за порог и будут удалены. Приём дешёвый и заметно чистит сцену.
Если хранить у гауссианы просто RGB, сцена получится матовой: блик на металле и отражение в стекле требуют, чтобы цвет менялся при смене ракурса. Направление взгляда — это точка на сфере, а функции на сфере естественно раскладывать по сферическим гармоникам.
- Нулевой порядок — одна константа: обычный матовый цвет.
- Первый порядок — плавная зависимость от направления, мягкие переходы.
- Третий порядок (16 коэффициентов на канал) — стандартный выбор: хватает на блики, но не переобучается.
Коэффициенты вводят постепенно: сначала обучают только нулевой порядок, потом добавляют следующие. Если дать все сразу, модель начнёт объяснять расхождения между снимками зависимостью от угла вместо того, чтобы правильно поставить геометрию.
Где применяется
- Интерактивный просмотрОблёт снятой сцены в браузере или шлеме без задержек.
- Виртуальные турыПомещение, снятое на телефон, становится проходимой сценой.
- Съёмка и постпродакшенБыстрая замена фона на реальную снятую локацию.
- РобототехникаМодель окружения, которую можно рендерить в цикле симуляции.
Плюсы, минусы и альтернативы
Плюсы
- в реальном времени — сотни кадров в секунду.
- Обучение быстрее : десятки минут вместо часов.
- Представление явное, поэтому сцену можно резать, двигать и редактировать.
- Качество на уровне лучших нейронных полей.
Минусы
- Память: миллионы примитивов занимают сотни мегабайт.
- Артефакты в областях с малым покрытием — вытянутые «иглы».
- Как и , требует точных поз камер от .
- Извлечь чистую поверхность сложнее, чем из поля плотности.
Брать, если
- Нужен интерактивный облёт сцены здесь и сейчас.
- Ресурсов на обучение немного, а качество нужно высокое.
Не брать, если
- Жёсткое ограничение по памяти на устройстве.
- Нужна аккуратная полигональная поверхность для инженерных задач.
Чем заменяют
Видеолекции
Записи университетских курсов, где эта тема звучит. Ссылка открывает запись с той секунды, где о ней говорят, — искать по трёхчасовой лекции не нужно.
Связанные темы
Нейронный рендеринг
Neural Radiance Fields85%
Нейронные поля яркости · Трёхмерное зрениеСцена задаётся не сеткой и не точками, а нейросетью: по координате и направлению взгляда она возвращает цвет и плотность. Картинка получается объёмным рендерингом вдоль луча.
Rendering85%
Рендеринг · Трёхмерное зрениеОбратная зрению задача: по описанию сцены получить изображение. Понимание рендеринга нужно, чтобы обучать модели через сравнение отрисованного с настоящим.
Structure from Motion85%
Восстановление структуры по движению · Трёхмерное зрениеПо набору неупорядоченных снимков одновременно находим положения камер и трёхмерные точки сцены. Классическая основа фотограмметрии и вход почти любого 3D-пайплайна.
Parametric Body Models85%
Параметрические модели тела · Трёхмерное зрениеТело человека описывается десятком чисел формы и позой суставов. Модель превращает их в трёхмерную сетку — это резко сужает пространство поиска при восстановлении по фото.
Diffusion85%
Диффузия · Генеративный ИИИтеративное расшумление — текущий стандарт генерации изображений, видео и аудио.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Трёхмерная гауссиана
Примитив: центр, (форма и ориентация), цвет, прозрачность.
Разбор ниже: Что такое трёхмерная гауссианаПроекция на экран
Гауссиана проецируется в эллипс аналитически — отсюда скорость.
Разбор ниже: Проекция и растеризацияАдаптивная плотность
Примитивы делятся там, где не хватает детализации, и удаляются, где не нужны.
Разбор ниже: Адаптивная плотностьСферические гармоники
Цвет зависит от направления взгляда — так передаются блики и отражения.
Разбор ниже: Цвет, зависящий от взглядаГлава «Трёхмерное зрение» последний раз правилась . Нашли ошибку — напишите.