3D гауссово распыление

3D Gaussian Splatting — революционная технология реконструкции 3D-сцен в реальном времени с более чем 15 000 звёзд на GitHub. В отличие от методов на основе NeRF, Gaussian Splatting представляет сцены как миллионы крошечных 3D-гауссианов, которые можно рендерить с частотой кадров в реальном времени (100+ FPS) при получении фотореалистичного качества. Разверните её в GPU-облаке Clore.ai, чтобы реконструировать и исследовать 3D-сцены по собственным фотографиям.


Что такое 3D Gaussian Splatting?

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

  1. Инициализация: Начинается с разреженного облака точек (из COLMAP)

  2. Представление: Каждая точка расширяется в 3D-гауссиан с позицией, масштабом, вращением, непрозрачностью и цветом в виде сферических гармоник

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

  4. Рендеринг: Проецировать гауссианы на плоскость изображения с помощью альфа-композитинга (чрезвычайно быстро)

Ключевые преимущества перед NeRF:

  • Рендеринг в реальном времени (100+ FPS при 1080p)

  • Лучшее восстановление мелких деталей

  • Явное 3D-представление (редактируемое, экспортируемое)

  • Быстрое обучение (30–60 мин против часов)

  • Работает на потребительских GPU


Требования

Требование
Минимум
Рекомендуется

VRAM GPU

12 ГБ

24 ГБ

GPU

RTX 3080 12GB

RTX 4090 / A100

ОЗУ

16 ГБ

32 ГБ

Хранилище

30 ГБ

60 ГБ

CUDA

11.7+

12.1+

circle-exclamation

Шаг 1 — Арендуйте GPU на Clore.ai

  1. Войдите в clore.aiarrow-up-right.

  2. Нажмите Маркетплейс и отфильтруйте по видеопамяти VRAM ≥ 16 ГБ.

  3. Выберите сервер — RTX 4090 предлагает лучшее соотношение цена/производительность.

  4. Установите Docker-образ на ваш кастомный образ (см. Шаг 2).

  5. Установите открытые порты: 22 (SSH) и 8080 (веб-просмотрщик).

  6. Нажмите Арендовать.


Шаг 2 — Dockerfile

Соберите собственный Docker-образ со всеми зависимостями:

Сборка и отправка

Соберите образ и отправьте его в ваш аккаунт Docker Hub (замените YOUR_DOCKERHUB_USERNAME на ваш фактический логин):

circle-info

Официального предсобранного Docker-образа для 3D Gaussian Splatting на Docker Hub нет. Официальный репозиторий graphdeco-inria/gaussian-splattingarrow-up-right не предоставляет его — собирайте из приведённого Dockerfile. Образ должен быть собран с правильными флагами архитектуры CUDA, соответствующими целевому GPU.

Используйте YOUR_DOCKERHUB_USERNAME/gaussian-splatting:latest в вашей конфигурации Clore.ai.


Шаг 3 — Подключитесь по SSH

Проверьте сборку:


Шаг 4 — Подготовьте ваш набор данных

Вариант A: Использовать набор данных Tandt (Tanks and Temples)

Классический эталонный набор для быстрого тестирования:

Вариант B: Обработать собственные фотографии

circle-info

Параметр convert.py скрипт запускает полный конвейер COLMAP: извлечение признаков, сопоставление, разреженную реконструкцию и устранение искажений. Это занимает 5–30 минут в зависимости от количества изображений.

Вариант C: Обработка из видео


Шаг 5 — Обучение Gaussian Splat

Стандартное обучение

Обучение на наборе Tandt

Быстрое обучение (быстрый предварительный просмотр)

circle-info

Обучение до 7 000 итераций занимает примерно 10 минут на RTX 4090 и даёт качественный предварительный просмотр. Полные 30 000 итераций занимают ~30–40 минут и дают итоговое качество.

Прогресс обучения

Отслеживайте вывод обучения — вы увидите такие метрики, как:

PSNR выше 30 дБ указывает на высококачественную реконструкцию.


Шаг 6 — Рендеринг и визуализация

Рендеринг из обученной модели

Рендеры сохраняются в /workspace/output/my_scene/test/ours_30000/renders/.

Создать видео пролёта (Flythrough)

Оценить метрики

Ожидаемый вывод:


Шаг 7 — Интерактивный веб-просмотрщик

Чтобы интерактивно исследовать обученную сцену:

С использованием nerfview/viser

Затем откройте: http://<clore-host>:<public-port-8080>

Альтернатива: Использовать SuperSplat (просмотрщик в браузере)

Скачать .ply файл и открыть его в SuperSplatarrow-up-right:

Затем перетащите .ply в браузер SuperSplat по адресу: https://playcanvas.com/super-splat


Расширенные опции

Управление количеством гауссианов

Белый фон (для объектов)

Сцены большого масштаба


Альтернатива: Gaussian Splatting с gsplat

gsplat — более быстрая, экономящая память реализация:


Устранение неполадок

Сборка CUDA-расширения завершается с ошибкой

Решение: Пересоберите для архитектуры вашего GPU:

COLMAP не может реконструировать

Решения:

  • Убедитесь в перекрытии изображений ≥ 50%

  • Используйте больше фотографий (рекомендуется 100+)

  • Попробуйте последовательное сопоставление для кадров видео: добавьте --match sequential в convert.py

Недостаточно памяти во время обучения

Плавающие артефакты в сцене

Артефакты, возникающие при инициализации гауссианов:

  • Увеличьте --densify_grad_threshold чтобы быть более избирательным

  • Используйте --prune_opacity_threshold 0.005 чтобы раньше удалять гауссианы с низкой непрозрачностью


Рекомендации Clore.ai по GPU

Обучение Gaussian Splatting интенсивно использует GPU и часто вызывает CUDA-ядра. Объём VRAM определяет максимальную сложность сцены (число гауссианов); вычисления определяют скорость обучения.

GPU
VRAM
Цена Clore.ai
Обучение 30K итераций
Максимум гауссианов

RTX 3090

24 ГБ

~$0.12/ч

~45–55 мин

~6M

RTX 4090

24 ГБ

~$0.70/ч

~30–35 мин

~6M

A100 40GB

40 ГБ

~$1.20/ч

~12–18 мин

~10M+

RTX 3080 12GB

12 ГБ

~$0.08/час

~70 мин

~3M (ограничено)

circle-info

RTX 3090 примерно за $0.12/час — лучший выбор для Gaussian Splatting. Полный прогон обучения на 30K итераций стоит примерно $0.09–0.11 времени на GPU. Для нескольких сцен в одной сессии стоимость незначительна.

Для быстрых экспериментов: сначала обучитесь до 7 000 итераций (~15 мин на RTX 3090, ≈ $0.03). Проверьте качество в веб-просмотрщике. Полные 30K итераций запускать только для финального результата.

Заметка по препроцессингу COLMAP: COLMAP (Structure from Motion) работает на CPU/GPU, но основная нагрузка приходится на CPU. Большинство серверов Clore.ai имеют достаточные CPU для сцен до 200 изображений. Для наборов из 500+ изображений ищите серверы с 16+ ядрами CPU.


Полезные ресурсы

Последнее обновление

Это было полезно?