Трёхмерное зрение

3D Gaussian Splatting

Гауссовы сплаты

новинкаМетод 2023 года, вытеснивший NeRF в задачах, где важна скорость отрисовки.

Направления: Прикладные направления · Трёхмерное зрение

Сцена — это миллионы трёхмерных гауссиан с цветом и прозрачностью. Их проекция на экран считается напрямую, поэтому идёт в реальном времени.

Ключевые тезисы

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

Какую задачу решает

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

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

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

Почему примитивы приходится делить

Начните с из — несколько десятков тысяч гауссиан. Крупные детали сойдутся быстро, но резьба на карнизе останется мыльной: одна гауссиана физически не может передать несколько мелких деталей сразу. Приём простой: смотрите на по положению. Если он велик, оптимизация «тянет» примитив в разные стороны — значит, он пытается описать больше, чем может. Такую гауссиану делят на две (или клонируют, если она мала), и каждая уходит к своей детали. За несколько тысяч шагов сцена вырастает с десятков тысяч примитивов до миллионов, причём плотность оказывается неравномерной: на гладкой стене их единицы, на резьбе — тысячи.

Подробный разбор

4 подтемы — объяснения, формулы, примеры и интерактивные графики.

Обозначения
  • среднее значение
  • объект: вектор признаков
  • транспонирование: строка вместо столбца
  • экспонента
  • — центр, три числа.
  • : форма и ориентация. Хранится как масштаб по трём осям плюс поворота.
  • — прозрачность.
  • Цвет — коэффициенты сферических гармоник, чтобы он зависел от направления взгляда.
На практике

не оптимизируют напрямую: произвольная 3×3 может перестать быть положительно определённой. Разложение на поворот и масштаб гарантирует корректность на каждом шаге .

Проекция трёхмерной гауссианы на плоскость изображения — снова гауссиана, только двумерная. Её считается аналитически через проекции. Никакого интегрирования вдоль луча не нужно: достаточно нарисовать эллиптическое пятно.

  1. Спроецировать все гауссианы, отсеять невидимые.
  2. Разбить экран на плитки 16×16 и раздать каждой список гауссиан, которые её задевают.
  3. Отсортировать по глубине внутри плитки.
  4. Смешать спереди назад, накапливая прозрачность, — пока она не насытится.

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

Начальное облако из — это десятки тысяч точек, и его недостаточно. Каждые несколько сотен шагов оптимизация смотрит на по положению: большой градиент означает, что примитив «растягивают» в разные стороны, то есть он пытается описать больше деталей, чем может.

УсловиеДействиеЗачем
большой , малый размерклонироватьзаполнить недоописанную область
большой , большой размерразделить надвоедетализировать крупное пятно
прозрачность ниже порогаудалитьубрать невидимое
слишком большой размерудалитьубрать «блины», закрывающие сцену
На практике

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

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

  • Нулевой порядок — одна константа: обычный матовый цвет.
  • Первый порядок — плавная зависимость от направления, мягкие переходы.
  • Третий порядок (16 коэффициентов на канал) — стандартный выбор: хватает на блики, но не переобучается.
На практике

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

Где применяется

  • Интерактивный просмотрОблёт снятой сцены в браузере или шлеме без задержек.
  • Виртуальные турыПомещение, снятое на телефон, становится проходимой сценой.
  • Съёмка и постпродакшенБыстрая замена фона на реальную снятую локацию.
  • РобототехникаМодель окружения, которую можно рендерить в цикле симуляции.

Плюсы, минусы и альтернативы

Плюсы

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

Минусы

  • Память: миллионы примитивов занимают сотни мегабайт.
  • Артефакты в областях с малым покрытием — вытянутые «иглы».
  • Как и , требует точных поз камер от .
  • Извлечь чистую поверхность сложнее, чем из поля плотности.

Брать, если

  • Нужен интерактивный облёт сцены здесь и сейчас.
  • Ресурсов на обучение немного, а качество нужно высокое.

Не брать, если

  • Жёсткое ограничение по памяти на устройстве.
  • Нужна аккуратная полигональная поверхность для инженерных задач.

Чем заменяют

Видеолекции

Записи университетских курсов, где эта тема звучит. Ссылка открывает запись с той секунды, где о ней говорят, — искать по трёхчасовой лекции не нужно.

Связанные темы

Нейронный рендеринг

Neural Radiance Fields85%

Нейронные поля яркости · Трёхмерное зрение

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

Rendering85%

Рендеринг · Трёхмерное зрение

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

Structure from Motion85%

Восстановление структуры по движению · Трёхмерное зрение

По набору неупорядоченных снимков одновременно находим положения камер и трёхмерные точки сцены. Классическая основа фотограмметрии и вход почти любого 3D-пайплайна.

Parametric Body Models85%

Параметрические модели тела · Трёхмерное зрение

Тело человека описывается десятком чисел формы и позой суставов. Модель превращает их в трёхмерную сетку — это резко сужает пространство поиска при восстановлении по фото.

Diffusion85%

Диффузия · Генеративный ИИ

Итеративное расшумление — текущий стандарт генерации изображений, видео и аудио.

Следующий шагДальше по связи: Neural Radiance FieldsСцена задаётся не сеткой и не точками, а нейросетью: по координате и направлению взгляда она возвращает цвет и плотность. Картинка получается объёмным рендерингом вдоль луча.Перейти →

Глава «Трёхмерное зрение» последний раз правилась . Нашли ошибку — напишите.