Примечание. Переводчики переводят словосочетание Gaussian Splatting на русский весьма занятным образом: то как разбрызгивание по Гауссу, то как Гауссовский шлепок, то даже как Гауссовский удар. Вследствие нелепости и неблагозвучия этих терминов, я предпочитаю говорить 3D-гауссиана о примитивах и Gaussian splatting или 3D GS о методе.
Эта статья будет полезна тем, кто занимается исследует и развивает задачи 3D-реконструкции: исследователям, учёным, программистам. Первая часть статьи будет полезна студентам или новичкам, только вкатывающимся в тему 3D-реконструкции.
Метод 3D Gaussian Splatting (см. на хабре, на huggingface) был опубликован в июле 2023 и оказался прорывным. С момента его публикации вышло огромное число препринтов на его основе (см. график).
В начале января вышел первый обзор по этим публикациям. График наглядно демонстрирует уровень заинтересованности исследователей к внедрению этого решения в свои пайплайны. Это произошло неспроста, а потому, что представленная в статье идея позволила прорвать стеклянный потолок NeRF алгоритмов, ограничивавших их использование в приложениях реального времени. Мы разберёмся, почему так произошло, окунувшись немного в новейшую историю 3D-реконструкции. А затем посмотрим посмотрим цифры из сравнительного обзора для некоторых случаев практических применений.
Зоопарк трёхмерных представлений
Для начала определимся с терминологией. Gaussian Splatting примечателен не только тем, что авторы представили быстрый алгоритм, но и новой концепцией представления 3D-сцены. Идея позволила по-другому взглянуть на процесс трёхмерной реконструкции и вызвала всплеск воодушевления в сообществе.
Большинство людей, знакомых с 3D графикой, при слове 3D модель подумает в первую очередь о мешах. До распространения NeRF это было самое массовое, однако далеко не единственное представление.
Перечислю вкратце, какие представления встречаются в практических задачах, это далеко не полный список. Обзор неявных представлений можно почитать здесь. Явные и неявные представления также были описаны в этой статье на Хабре.
Если вам это не интересно, пропустите раздел и приступите сразу к "Исторической справке".
Некоторые явные представления моделей
2.5D представление - псевдотрёхмерное частичное описание поверхности. При рендеринге можно менять угол обзора от исходного в небольших пределах.
Меш - описание поверхности модели в виде пространственного графа - множества вершин и множества их троек, образующих треугольники. Этот формат долгое время был основным для использования в компьютерной графике и игровых движках, поскольку хорошо описывал пространственные особенности объектов, сохранял топологию.
Однако меши очень сложно реконструировать из реальных данных напрямую, к тому же получившееся описание пространственно не дифференцируемо на рёбрах, а значит, оно не поддается прямой оптимизации методами машинного обучения.
Облако точек - описание сцены в виде набора не связанных друг с другом, неупорядоченных примитивов минимального размера. Это представление часто используется в задачах 3D-реконструкции с помощью RGBD-сенсоров. При этом у точек как правило доступно цветовое описание. Из-за неупорядоченности восстановление топологии и геометрии поверхности объекта становится сложной задачей, затрудняемой ошибками сенсоров и разреженностью облака.
Воксельное представление - кубические пространственные сетки, в которых объекты представляются множеством маленьких кубиков (вокселей), хранятся в виде трёхмерных матриц. В отличие от мешей, это плотные модели, обладающие внутренней плотностью. Однако для хранения таких моделей требуется много памяти, что ограничивает их практическую используемость.
Некоторые неявные представления моделей
SDF - функция в трёхмерном пространстве, некоторый уровень которой (как правило, нулевой) задаёт неявно границу объекта. При этом сама функция может быть представлена как значения внутри воксельного куба, так и в виде нейросетевого представления. Удобство использования SDF заключается в возможности получения явной поверхности методом марширующих кубов, а также тем, что рендеринг осуществляется до первой точки пересечения с объектом.
Планарная иллюстрация идеи SDF. Источник.
NeRF - другой тип неявной функции в трёхмерном пространстве, сопоставляющий пятимерному входному вектору (пространственные координаты + углы, задающие направление на наблюдателя) четырёхмерный выходной вектор (цвет + плотность) в заданной точке трёхмерного пространства. Таким образом эта функция задаёт поле излучательности в объёме, и для получения изображения необходимо применять объёмный рендеринг, то есть для каждого пикселя производить многократное семплирование трёхмерного пространства, что сильно замедляет процесс. Геометрия сцены при этом не задана.
NeRF синтезирует изображения путем выборки 5D-координат (местоположение и направление просмотра) вдоль лучей камеры (а), передачи этих местоположений в MLP для получения цвета и плотности объема (б) и использования методов объемного рендеринга для объединения этих значений в изображение (с, d). Рисунок из статьи NeRF.
Гибридное представление - Gaussian Splatting
Gaussian splatting - гибридный способ представления трёхмерных данных, сочетающих в себе черты облака точек и поля излучательности. При таком представлении сцена состоит из неупорядоченного набора примитивов (как в случае облака точек). Но каждый примитив представлен не только координатами и цветом, а имеет большее число параметров, описывающих плотность и цвет (параметры матрицы ковариации для цвета и плотности).
Вид поля излучательности как совокупности гауссиан в точке. Источник.
Достоинства:
Быстрое время визуализации
Больше возможностей редактирования по сравнению с NeRF
Визуально плотное изображение по сравнению с облаком точек
Потрясающее качество визуализации
Недостатки:
Потребность в инициализации разреженным облаком точек
Отсутствие учёта топологии объекта, приводящее к ошибкам и затрудняющее манипуляции со сценой
Возникновение плавающих артефактов вследствие ошибок инициализации
Итак, 3D-гауссиана - это новый тип графического примитива, являющийся гибридом явного и неявного метода представления сцены.
Общая схема алгоритма 3D GS
Суть алгоритма визуализации, дающего значительный прирост в производительности - состоит в сочетании эффективной проекции матриц ковариации и использовании алгоритма частичной сортировки гауссиан с привязкой к патчу изображения.
Для более детального понимания алгоритма рендеринга, обратитесь к источнику 3D Gaussian Splatting.
Историческая справка
До появления 3D GS ландшафт решений в области 3D-реконструкции формировали методы на основе нейронных полей излучательности (NeRF, 2020), использующими неявное представление сцены. Фактически, они описывают геометрическое и цветовое пространство в виде дифференцируемых функций. В процессе рендеринга производится семплированием из этих функций для получения изображения с заданного ракурса.
3D реконструкция.
Чтобы построить эту функцию, производили вначале её оптимизацию по имеющимся данным (фотографиям, картам глубины, положениям камеры) с помощью алгоритмов машинного обучения. На выходе получался файл с весами, регулирующими параметры сцены.
3D визуализация.
Этот файл в дальнейшем использовался алгоритмом объёмного рендеринга для выборки нужных значений. При этом для формирования изображений в одном пикселе было необходимо многократно производить запросы к функции вдоль луча, выпущенного из камеры в направлении заданного пикселя. Такой процесс рендеринга нельзя назвать быстрым.
На протяжении нескольких лет исследователи улучшали и ускоряли NeRF-методы. Но несмотря на все ухищрения максимальная скорость визуализации сцены всё ещё оставалась низкой. Метод Instant NGP позволяет обучать модели за секунды, а визуализировать за десятки миллисекунд в разрешении 1920x1080.
Тем не менее, NeRF генерировал реалистичные представления, что было его ключевым преимуществом относительно прошлых альтернативных алгоритмов.
Вокруг NeRF сформировалась целая экосистема решений.
Однако его практическое использование наталкивалось на низкую скорость визуализации.
Другая его проблема - сложность редактирования и контроля.
В контексте этого появление 3D GS стало не просто инкрементальным улучшением, но сдвигом парадигмы в области представления и визуализации сцены.
Больше не требуется искать компромисс между скоростью и качеством рендеринга, что открывает возможности к использованию в приложениях начиная от виртуальной и дополненной реальности и заканчивая рендерингом фильмов в реальном времени.
Применение и задачи
Области применения для алгоритма 3D GS разнообразны: робототехника, реконструкция и представление сцен, AI-generated контент, автономное вождение и даже другие научные дисциплины. Применения 3D GS демонстрируют его универсальность и потенциал в различных областях.
Применение для SLAM - ускорение в 500 раз, +30% к локализации, SOTA по визуальному качеству
SLAM - центральная проблема для робототехники и автономных систем. Она включает в себя задачу понимания роботом или устройством своего положения в неизвестной среде, с одновременным картографированием плана среды. SLAM критически важен в различных приложениях, включая автономные транспортные средства, дополненную реальность и навигацию роботов.
Суть SLAM - создать карту неизвестной среды и определить местоположение устройства на этой карте в реальном времени. Поэтому от алгоритмов требуется вычислительная эффективность, для чего подходит 3D GS.
На сегодняшний день существуют следующие применения 3D GS в задачах SLAM: Photo-slam, Gaussian splatting slam (проект), Gaussian-slam (проект), Gs-slam, Splatam (проект).
В обзоре дано сравнение некоторых из методов с некоторыми классическими алгоритмами. Для оценки результата в задаче SLAM оценивают качество\точность локализации и качество\точность визуализации для заданного ракурса.
Набор данных - Replica представляет собой коллекцию из 18 высокодетализированных 3D-сцен в помещениях, включая разметки, текстуры и семантику.
Оценка локализации производится по метрике RMS ATE - среднеквадратичное значение евклидовых расстояний между оцененными и истинными позициями на всей траектории робота или устройства.
Для оценки качества визуализации использовалось пиковое отношение сигнал/шум (PSNR), структурное сходство (SSIM) и воспринимаемое сходство патчей изображений (LPIPS).
Как видим, по обоим шкалам алгоритмы на основе 3D GS или идут в ногу с аналогами, или обгоняют. И при этом методы на основе 3D GS быстрее в 500 раз!
Моделирование динамических сцен - GS беспощаден к SOTA
Моделирование динамических сцен - процесс создания цифровой модели изменяющейся со временем сцены, которая точно отражает геометрию, движение и визуальные аспекты объектов в сцене по мере их развития.
Моделирование динамических сцен имеет решающее значение в различных приложениях, включая виртуальную и дополненную реальность, 3D-анимацию и компьютерное зрение.
4D GS (проект) расширил концепцию 3D GS на динамические сцены. Почти сразу появился Dynamic 3D Gaussian (проект). Обе работы вводят методы для отслеживания и представления движущихся элементов сцены.
Вторая группа методов (Gaufre, Gaussian-flow, Deformable 3d gaussians, Dynmf (проект), Neural parametric gaussians, Swags) использует концепцию деформируемых или движущихся моделей.
Третья группа методов (Sc-gs, Control4d, Cogs) исследует новые приложения и возможности редактирования в динамических сценах. Они вводят инновационные фреймворки для манипулирования и редактирования динамического контента в 4D пространстве.
Spacetime gaussian feature splatting for real-time dynamic view synthesis вводит передовые техники визуализации, которые улучшают качество и скорость моделирования динамических сцен. Он фокусируется на оптимизации представления и конвейера визуализации для достижения высокого разрешения, фотореалистичных результатов в реальном времени.
В статье An efficient 3d gaussian representation for monocular/multi-view dynamic scenes делается упор на избавление от артефактов с сохранением высокой скорости рендеринга в динамике.
Сравнение производится на наборе D-NeRF (видео от 50 до 200 кадров синтетических анимированных объектов в сложных сценах с не-ламбертовскими материалами) по метрикам PSNR, SSIM и LPIPS.
Алгоритмы на основе 3D GS однозначно превосходят альтернативные SOTA. Статическая версия 3D GS не может реконструировать динамические сцены, что приводит к резкому падению производительности. Моделируя динамику, CoGS обходит все аналоги.
Моделирование человеческих аватаров - в 70 раз быстрее
Задача состоит в том, чтобы реалистично анимировать и визуализировать трёхмерные представления людей. Актуальность этой задачи сейчас максимальная, применимость от виртуальных примерочных до игр с полным погружением в своё виртуальное тело.
На базе 3D GS уже вышло более 30 работ для визуализации аватаров, но в сравнении участвуют только: GART (проект), Human101, HUGS и 3DGS-Avatar (проект).
Оценка моделирования человеческого аватара на данных ZJU-MoCap (6 субъектов для оценки) по метрикам PSNR, SSIM [162] и LPIPS* = (LPIPS × 1000).
Здесь мы видим небольшой прирост качества визуализации относительно HumanNeRF, но при этом Human101 в 70 раз быстрее.
Автономное вождение - Drivinggaussian rules!
Задаче автономного вождения состоит в том, чтобы позволить транспортным средствам передвигаться и функционировать без участия человека. Эти транспортные средства оснащены набором датчиков (камер, LiDaR, радар и т.д.). Основная цель алгоритмов - воспринимать окружающую среду, принимать обоснованные решения и выполнять маневры безопасно и эффективно.
В динамических дорожных сценах окружающая среда постоянно меняется из-за движущихся объектов, таких как другие транспортные средства, пешеходы или животные. Точная реконструкция этих сцен в реальном времени критически важна для безопасной навигации, но представляет собой вызов из-за сложности и изменчивости вовлеченных элементов. В автономном вождении 3D-гауссианы могут использоваться для реконструкции сцены путем объединения точек данных (например, полученных с помощью датчиков, таких как LiDAR) в единое и непрерывное представление. Это особенно полезно для обработки различной плотности точек данных и обеспечения плавной и точной реконструкции как статического фона, так и динамических объектов в сцене.
Оценка визуализации в сценах вождения - на наборе данных nuScenes ( 1000 сцен, зафиксированных с помощью массива датчиков + аннотации для 23 классов объектов с 3D-bbox). Для оценки используются шесть сложных сцен, метрики PSNR, SSIM и LPIPS.
Сравнивается работа Drivinggaussian (проект) с другими подходами на основе NeRF.
Результаты демонстрируют значительное превосходство метода Drivinggaussian по всем метрикам.
Заключение
Мы рассмотрели волну успеха, поднятую 3D Gaussian Splatting на поприще задач, связанных с 3D-реконструкцией. 3D GS быстр, контролируем и демонстрирует превосходство 3D GS в практических задачах, которые требуют производительности в реальном времени.
Тем не менее, ещё существует ряд векторов развития (таких как снижение потребления памяти, улучшение модели освещенности). Кто знает, возможно уже в этом году мы услышим о ещё одном новом взгляде на представление трёхмерных моделей, которое будет учитывать и априорную информацию о природе объектов, и доступные наблюдения. И тогда этот обзор будет казаться далёким историческим очерком, какими сейчас выглядят прошлогодние обзоры по NeRF.
ktoshik
Почти сотня статей по 3DGS, которая вышла спустя 4 месяца после публикации 3DGS. Это поразительная скорость, с которой всё реализовали. Я посмотрел маленький кусочек - несколько работ по аватарам. Они очень похожи друг на друга, но есть много отличий. И всё равно поразительная скорость, заставляет задуматься.