> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/generaciya-3d/gaussian-splatting.md).

# 3D-гауссовый сплаттинг

**3D-гауссовый сплаттинг** — это революционная техника реконструкции 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       | 12.8+         | 12.8+           |

{% hint style="warning" %}
Gaussian Splatting имеет строгие требования к CUDA. Версия CUDA должна совпадать с `diff-gaussian-rasterization` скомпилированным расширением. Использование предоставленного Dockerfile устраняет проблемы совместимости.
{% endhint %}

***

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

1. Войдите в [маркетплейсе clore.ai](https://clore.ai).
2. Нажмите **Маркетплейс** и отфильтруйте по VRAM ≥ 16 ГБ.
3. Выберите сервер — RTX 4090 предлагает лучшее соотношение цены и производительности.
4. Установите образ Docker на ваш собственный образ (см. Шаг 2).
5. Откройте порты: `22` (SSH) и `8080` (веб‑просмотрщик).
6. Нажмите **Аренда**.

***

## Шаг 2 — Dockerfile

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

```dockerfile
FROM pytorch/pytorch:2.11.0-cuda12.8-cudnn9-devel

ENV DEBIAN_FRONTEND=noninteractive
ENV TORCH_CUDA_ARCH_LIST="6.0;6.1;7.0;7.5;8.0;8.6;8.9;9.0+PTX"

RUN apt-get update && apt-get install -y \\
    git wget curl cmake build-essential \
    libboost-program-options-dev libboost-filesystem-dev \
    libboost-graph-dev libboost-system-dev libboost-test-dev \
    libeigen3-dev libflann-dev libfreeimage-dev \
    libmetis-dev libgoogle-glog-dev libgflags-dev \
    libsqlite3-dev libglew-dev qtbase5-dev libqt5opengl5-dev \
    libcgal-dev libceres-dev \
    ffmpeg libgl1 libglib2.0-0 \
    openssh-server \\
    python3-pip python3-dev \
    && rm -rf /var/lib/apt/lists/*

# Установить COLMAP
RUN apt-get update && apt-get install -y colmap && rm -rf /var/lib/apt/lists/*

# Настройка SSH
RUN mkdir /var/run/sshd && \\
    echo 'root:clore123' | chpasswd && \\
    sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

WORKDIR /workspace

# Клонировать оригинальный репозиторий 3DGS
RUN git clone https://github.com/graphdeco-inria/gaussian-splatting /workspace/gaussian-splatting \
    --recursive

# Установить зависимости Python
RUN cd /workspace/gaussian-splatting && \
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128 && \
    pip install -r requirements.txt

# Собрать расширения CUDA
RUN cd /workspace/gaussian-splatting && \
    pip install submodules/diff-gaussian-rasterization && \
    pip install submodules/simple-knn

# Установить зависимости веб‑просмотрщика
RUN pip install viser==0.1.29 nerfview==0.0.4 trimesh

EXPOSE 22 8080

CMD service ssh start && tail -f /dev/null
```

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

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

```bash
docker build -t YOUR_DOCKERHUB_USERNAME/gaussian-splatting:latest .
docker push YOUR_DOCKERHUB_USERNAME/gaussian-splatting:latest
```

{% hint style="info" %}
Для 3D Gaussian Splatting на Docker Hub нет официального предварительно собранного Docker-образа. Официальный репозиторий на [graphdeco-inria/gaussian-splatting](https://github.com/graphdeco-inria/gaussian-splatting) не предоставляет его — соберите образ из Dockerfile выше. Образ должен быть собран с правильными флагами архитектуры CUDA, соответствующими вашей целевой GPU.
{% endhint %}

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

***

## Шаг 3 — Подключение по SSH

```bash
ssh root@<clore-host> -p <assigned-ssh-port>
```

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

```bash
cd /workspace/gaussian-splatting
python -c "from diff_gaussian_rasterization import GaussianRasterizationSettings; print('Расширение CUDA OK')"
```

***

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

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

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

```bash
mkdir -p /workspace/data && cd /workspace/data

# Скачать небольшую тестовую сцену
wget https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/datasets/input/tandt.zip
unzip tandt.zip
```

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

```bash
# Загрузить фотографии
scp -P <port> -r ./my_photos/ root@<clore-host>:/workspace/data/

# Запустить скрипт обработки COLMAP (предоставляется с 3DGS)
cd /workspace/gaussian-splatting

python convert.py \
    -s /workspace/data/my_photos \
    --no_gpu   # необязательно: если конфликтует GPU-решатель COLMAP
```

{% hint style="info" %}
Параметр `convert.py` скрипт запускает полный пайплайн COLMAP: извлечение признаков, сопоставление, разреженная реконструкция и устранение искажений. Это занимает 5–30 минут в зависимости от числа изображений.
{% endhint %}

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

```bash
# Извлечь кадры из видео с частотой 2 кадра/с
ffmpeg -i /workspace/data/my_video.mp4 \
    -vf fps=2 \
    /workspace/data/frames/frame_%04d.jpg

# Затем запустите обработку COLMAP на кадрах
python convert.py -s /workspace/data/frames
```

***

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

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

```bash
cd /workspace/gaussian-splatting

python train.py \
    -s /workspace/data/my_photos \
    -m /workspace/output/my_scene \
    --iterations 30000 \
    --eval
```

### Обучение на наборе данных Tandt

```bash
python train.py \
    -s /workspace/data/tandt/truck \
    -m /workspace/output/truck \
    --iterations 30000 \
    --eval
```

### Быстрое обучение (быстрый предпросмотр)

```bash
python train.py \
    -s /workspace/data/my_photos \
    -m /workspace/output/my_scene_fast \
    --iterations 7000
```

{% hint style="info" %}
Обучение до 7 000 итераций занимает около 10 минут на RTX 4090 и даёт хороший предварительный просмотр качества. Полные 30 000 итераций занимают около 30–40 минут и дают итоговое качество.
{% endhint %}

### Ход обучения

Следите за выводом обучения — вы увидите такие метрики, как:

```
[ITER 1000] Оценка train: L1 0.04, PSNR 26.12 dB
[ITER 7000] Оценка train: L1 0.02, PSNR 29.45 dB
[ITER 30000] Оценка train: L1 0.01, PSNR 32.80 dB
```

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

***

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

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

```bash
python render.py \
    -m /workspace/output/my_scene \
    --skip_train
```

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

### Создайте видео облёта

```bash
# Преобразовать отрендеренные кадры в видео
ffmpeg -framerate 24 \
    -pattern_type glob \
    -i '/workspace/output/my_scene/test/ours_30000/renders/*.png' \
    -c:v libx264 \
    -pix_fmt yuv420p \
    /workspace/output/flythrough.mp4
```

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

```bash
python metrics.py -m /workspace/output/my_scene
```

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

```
SSIM : 0.8324
PSNR : 32.81
LPIPS: 0.1893
```

***

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

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

### Использование nerfview/viser

```python
# /workspace/view_splat.py
import viser
import numpy as np
from plyfile import PlyData
import torch

server = viser.ViserServer(host="0.0.0.0", port=8080)
print("Просмотрщик запущен на http://0.0.0.0:8080")

# Загрузить PLY-файл
ply_path = "/workspace/output/my_scene/point_cloud/iteration_30000/point_cloud.ply"
plydata = PlyData.read(ply_path)

xyz = np.stack([
    plydata['vertex']['x'],
    plydata['vertex']['y'],
    plydata['vertex']['z'],
], axis=-1)

# Добавить облако точек в просмотрщик
server.add_point_cloud(
    name="/splat",
    points=xyz,
    colors=np.ones((len(xyz), 3)) * 0.7,
    point_size=0.003,
)

import time
while True:
    time.sleep(0.01)
```

```bash
python /workspace/view_splat.py &
```

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

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

Скачайте `.ply` файл и откройте его в [SuperSplat](https://playcanvas.com/super-splat):

```bash
# Скачайте на локальный компьютер
scp -P <port> root@<clore-host>:/workspace/output/my_scene/point_cloud/iteration_30000/point_cloud.ply ./
```

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

***

## Дополнительные параметры

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

```bash
# Более высокая денсификация для более детализированных сцен
python train.py \
    -s /workspace/data/my_photos \
    -m /workspace/output/my_scene \
    --densify_until_iter 15000 \
    --densify_grad_threshold 0.0002
```

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

```bash
python train.py \
    -s /workspace/data/my_object \
    -m /workspace/output/my_object \
    --white_background
```

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

```bash
# Увеличить интервал сброса непрозрачности для сцен на открытом воздухе
python train.py \
    -s /workspace/data/outdoor \
    -m /workspace/output/outdoor \
    --opacity_reset_interval 5000 \
    --iterations 50000
```

***

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

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

```bash
pip install gsplat

# Обучение с gsplat
python examples/simple_trainer.py \
    --data_dir /workspace/data/my_photos \
    --result_dir /workspace/gsplat_output
```

***

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

### Сбой сборки расширения CUDA

```
error: no kernel image is available for execution on the device
```

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

```bash
export TORCH_CUDA_ARCH_LIST="8.6"  # Для RTX 3090/4090
cd /workspace/gaussian-splatting
pip install submodules/diff-gaussian-rasterization --force-reinstall
```

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

**Решения:**

* Обеспечьте перекрытие изображений ≥ 50%
* Используйте больше фотографий (рекомендуется 100+)
* Попробуйте последовательное сопоставление для кадров видео: добавьте `--match sequential` в convert.py

### Нехватка памяти во время обучения

```bash
# Уменьшить максимальное число гауссиан
python train.py \
    -s /workspace/data/my_photos \
    -m /workspace/output/my_scene \
    --max_num_splats 2000000  # по умолчанию около 6M
```

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

Плавающие артефакты из-за инициализации гауссиан:

* Увеличьте `--densify_grad_threshold` чтобы быть более избирательным
* Используйте `--prune_opacity_threshold 0.005` чтобы раньше удалять гауссианы с низкой непрозрачностью

***

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

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

| GPU           | VRAM  | Цена Clore.ai                               | обучение на 30K итераций | Макс. число гауссиан |
| ------------- | ----- | ------------------------------------------- | ------------------------ | -------------------- |
| RTX 3090      | 24 ГБ | $0.07–0.21/ч                                | \~45–55 мин              | \~6M                 |
| RTX 4090      | 24 ГБ | $0.14–0.42/ч                                | \~30–35 мин              | \~6M                 |
| A100 40 ГБ    | 40 ГБ | [голое железо](https://clore.ai/bare-metal) | \~12–18 мин              | \~10M+               |
| RTX 3080 12GB | 12 ГБ | $0.05–0.19/ч                                | \~70 мин                 | \~3M (ограничено)    |

{% hint style="info" %}
**RTX 3090 за $0.07–0.21/ч — лучший выбор** для Gaussian Splatting. Полный прогон обучения на 30K итераций стоит примерно \~$0.09–0.11 в GPU-времени. Для нескольких сцен за один сеанс стоимость незначительна.

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

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

***

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

* [3D Gaussian Splatting на GitHub](https://github.com/graphdeco-inria/gaussian-splatting)
* [Оригинальная статья (SIGGRAPH 2023)](https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/)
* [gsplat — быстрая реализация](https://github.com/nerfstudio-project/gsplat)
* [SuperSplat — браузерный просмотрщик](https://playcanvas.com/super-splat)
* [Сообщество Gaussian Splatting (Reddit)](https://www.reddit.com/r/gaussiansplatting/)
* [Awesome Gaussian Splatting](https://github.com/MrNeRF/awesome-3D-gaussian-splatting)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/generaciya-3d/gaussian-splatting.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
