
Интересное решение по генерации продолжения 3д сцен LucidDreamer использованием Гауссова сплэтинга и SD. Может и по тексту, и по RGB, и по RGBD. Короче, из всего, по чему пожелаете. Вот до чего дошел прогресс... 🤖
Что такое вообще этот ваш 3д Гауссов сплэтинг?❔
Если кратко, то это метод растеризации. У нас есть данные, описывающие сцену и мы ее отображаем в виде множества гауссиан, они сортируются по глубине и для каждого выполняется front-to-back, при этом гауссианы смешиваются друг с другом. На выходе сцена. На эту тему можно посмотреть видос. Ну и еще неплохой пост на hf
Как работает полный пайплайн в статье?
👉 На первом этапе создается облако точек из входного изображения, для продолжения сцен используется Stable Diffusion inpainting и монокулярная оценка глубины(то есть оценка расстояния относительно камеры каждого пикселя для одного (монокулярного) RGB-изображения).
👉 После этого, используются алгоритмы ‘Dreaming’1️⃣ (устанавливает облако точек в качестве геометрического ориентира для каждого поколения изображений) и ‘Alignment’2️⃣ (гармонично интегрирует сгенерированные изображения в единую 3D-сцену).
1️⃣ В ‘Dreaming’ оценивается оптимальный коэффициент для минимизации расстояния между 3д точками сгенерированного изображения и исходного, чтобы создать карту глубины. На основе этого "поднимаются" пиксели в 3д пространство
2️⃣ В ‘Alignment’ вычисляется вектор перемещения, но из-за наивного подхода точки из облака точек могут могут не совпадать с нарисованным изображением. Но это решается с помощью ограничения на перемещение точек и использование алгоритма интерполяции.
👉 Затем, пустые пространства заполняются с помощью Gaussian splats (про это говорили в начале) в случае несоответствия глубины. (Обучаем на сгенерированом облаке точек и исходных изображениях). Что интересно, позволяет менять входные данные в процессе генерации. На выходе получаем 3д сцену неплохого качества 😳
🖥 их блогпост, обещают код
Что такое вообще этот ваш 3д Гауссов сплэтинг?
Если кратко, то это метод растеризации. У нас есть данные, описывающие сцену и мы ее отображаем в виде множества гауссиан, они сортируются по глубине и для каждого выполняется front-to-back, при этом гауссианы смешиваются друг с другом. На выходе сцена. На эту тему можно посмотреть видос. Ну и еще неплохой пост на hf
Как работает полный пайплайн в статье?