> 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/nerfstudio.md).

# Nerfstudio

**Nerfstudio** — это модульный, удобный для исследователей фреймворк для обучения и рендеринга **Neural Radiance Fields (NeRF)** — техника, которая восстанавливает фотореалистичные 3D-сцены из 2D-изображений. Имея более 10 000 звёзд на GitHub, она является де-факто стандартом для исследований и производственных приложений NeRF. Запускайте её в GPU-облаке Clore.ai, чтобы реконструировать 3D-сцены по своим фотографиям или видео.

***

## Что такое Nerfstudio?

NeRF (Neural Radiance Field) представляет 3D-сцену как нейронную сеть, которая по заданным положению камеры и направлению выдаёт цвет и плотность в этой точке. Обучаясь на десятках фотографий, снятых с разных ракурсов, NeRF формирует полное 3D-представление, которое можно рендерить с любой точки обзора.

**Nerfstudio предоставляет:**

* Несколько методов NeRF: Nerfacto, Instant-NGP, Splatfacto, TensoRF и другие
* CLI и Python API
* Интерактивный веб‑просмотрщик (Viser) на порту 7007
* Экспорт в облака точек, меши и видеопроезды
* Поддержка пользовательских датасетов через интеграцию с COLMAP

**Сценарии использования:**

* Реконструкция 3D-сцены по съёмке с дрона
* Визуализация продукта по фотографиям
* Виртуальные туры по снимкам со смартфона
* Исследования в области синтеза новых ракурсов

***

## Предварительные требования

| Требование | Минимум  | Рекомендуется   |
| ---------- | -------- | --------------- |
| VRAM GPU   | 8 ГБ     | 16–24 ГБ        |
| GPU        | RTX 3080 | RTX 4090 / A100 |
| ОЗУ        | 16 ГБ    | 32 ГБ           |
| Хранилище  | 20 ГБ    | 50+ ГБ          |
| CUDA       | 12.8+    | 12.8+           |

{% hint style="info" %}
Время обучения зависит от сложности сцены. Типичная уличная сцена из 100 фотографий обучается за 10–30 минут на RTX 4090. Интерактивный просмотрщик обновляется в реальном времени во время обучения.
{% endhint %}

***

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

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

{% hint style="info" %}
Параметр `dromni/nerfstudio` образ поддерживается сообществом как официальный и включает все зависимости, предустановленные заранее (CUDA, tiny-cuda-nn, colmap, ffmpeg).
{% endhint %}

***

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

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

{% hint style="info" %}
Параметр `dromni/nerfstudio` образ использует `user` (не `root`) по умолчанию. Используйте `sudo` для административных задач.
{% endhint %}

Проверьте установку:

```bash
ns-train --help
ns-render --help
ns-viewer --help
```

***

## Шаг 3 — Подготовьте ваш датасет

### Вариант A: Используйте предоставленный пример датасета

Nerfstudio включает встроенные датасеты для немедленного тестирования:

```bash
# Скачайте датасет poster (маленький, отлично подходит для тестов)
ns-download-data nerfstudio --capture-name=poster

# Другие доступные датасеты:
# ns-download-data nerfstudio --capture-name=egypt
# ns-download-data nerfstudio --capture-name=floating-tree
# ns-download-data nerfstudio --capture-name=stump
```

### Вариант B: Обработайте свои изображения

Если у вас есть фотографии или видео вашей сцены:

#### Из изображений (пайплайн COLMAP):

```bash
# Загрузите ваши изображения через SCP
scp -P <port> -r ./my_photos/ user@<clore-host>:/home/user/data/

# Обработайте с помощью COLMAP, чтобы получить позы камеры
ns-process-data images \
    --data /home/user/data/my_photos \
    --output-dir /home/user/data/my_scene
```

#### Из видео:

```bash
# Загрузите видео
scp -P <port> my_video.mp4 user@<clore-host>:/home/user/data/

# Извлеките кадры и обработайте
ns-process-data video \
    --data /home/user/data/my_video.mp4 \
    --output-dir /home/user/data/my_scene \
    --num-frames-target 200
```

{% hint style="info" %}
Для лучших результатов используйте **100–300 фотографий** с большим перекрытием (>60% между соседними кадрами). Обходите объект/сцену по систематической схеме — круги, сетки или восьмёрки работают хорошо.
{% endhint %}

***

## Шаг 4 — Обучите NeRF

### Базовое обучение с Nerfacto (рекомендуется)

Nerfacto — флагманский метод Nerfstudio, сочетающий качество и скорость:

```bash
ns-train nerfacto \
    --data /home/user/data/my_scene \
    --viewer.websocket-port 7007 \
    --output-dir /home/user/outputs
```

### Обучение с Instant-NGP (самое быстрое)

```bash
ns-train instant-ngp \
    --data /home/user/data/my_scene \
    --viewer.websocket-port 7007 \
    --output-dir /home/user/outputs
```

### Обучение с предоставленным датасетом poster

```bash
ns-train nerfacto \
    --data /home/user/data/nerfstudio/poster \
    --viewer.websocket-port 7007
```

***

## Шаг 5 — Откройте интерактивный просмотрщик

Откройте браузер и перейдите по адресу:

```
http://<clore-host>:<public-port-7007>
```

Вы увидите 3D‑просмотрщик на базе **Viser** который показывает:

* Ход обучения в реальном времени
* Текущее качество рендеринга NeRF
* Интерактивное управление камерой
* Кривые потерь обучения

{% hint style="info" %}
Просмотрщик обновляется каждые несколько секунд во время обучения. Вы можете вращать, панорамировать и масштабировать, чтобы оценивать качество сцены по мере обучения.
{% endhint %}

***

## Доступные методы обучения

| Метод          | Скорость       | Качество      | VRAM  | Примечания                        |
| -------------- | -------------- | ------------- | ----- | --------------------------------- |
| `nerfacto`     | Средне         | Высокая       | 8 ГБ  | Лучший универсальный вариант      |
| `instant-ngp`  | Быстро         | Средне        | 6 ГБ  | Самое быстрое обучение            |
| `splatfacto`   | Быстро         | Высокая       | 8 ГБ  | Gaussian splatting                |
| `tensorf`      | Средне         | Высокая       | 12 ГБ | Хорошо подходит для объектов      |
| `mipnerf360`   | Медленно       | Очень высокое | 24 ГБ | Лучшее качество                   |
| `vanilla-nerf` | Очень медленно | Высокая       | 16 ГБ | Исследовательский базовый вариант |

### Обучение с Splatfacto (Gaussian Splatting)

```bash
ns-train splatfacto \
    --data /home/user/data/my_scene \
    --viewer.websocket-port 7007 \
    --pipeline.model.num-random 50000
```

***

## Шаг 6 — Оценка и рендеринг

### Проверьте метрики обучения

```bash
# Посмотрите сводку обучения
ls /home/user/outputs/my_scene/nerfacto/

# Последний чекпоинт
ls /home/user/outputs/my_scene/nerfacto/*/nerfstudio_models/
```

### Рендеринг видеопроезда

```bash
# Интерактивно: задайте путь камеры в просмотрщике, затем экспортируйте
# Рендеринг из командной строки:

ns-render camera-path \
    --load-config /home/user/outputs/my_scene/nerfacto/<timestamp>/config.yml \
    --camera-path-filename /home/user/data/my_scene/camera_paths/my_path.json \
    --output-path /home/user/renders/output.mp4
```

### Рендеринг интерполированной спирали

```bash
ns-render interpolate \
    --load-config /home/user/outputs/my_scene/nerfacto/<timestamp>/config.yml \
    --output-path /home/user/renders/spiral.mp4 \
    --render-nearest-camera True \
    --order-poses True
```

***

## Шаг 7 — Экспорт 3D-геометрии

### Экспорт облака точек

```bash
ns-export pointcloud \
    --load-config /home/user/outputs/my_scene/nerfacto/<timestamp>/config.yml \
    --output-dir /home/user/exports/ \
    --num-points 1000000
```

### Экспорт меша

```bash
ns-export marching-cubes \
    --load-config /home/user/outputs/my_scene/nerfacto/<timestamp>/config.yml \
    --output-dir /home/user/exports/ \
    --resolution 1024
```

### Экспорт Gaussian Splats (PLY)

```bash
ns-export gaussian-splat \
    --load-config /home/user/outputs/my_scene/splatfacto/<timestamp>/config.yml \
    --output-dir /home/user/exports/
```

***

## Python API

Для программного обучения и оценки:

```python
from nerfstudio.scripts.train import main
from nerfstudio.configs.base_config import ViewerConfig
from nerfstudio.engine.trainer import TrainerConfig

# Пример обучения через Python API
from nerfstudio.configs.method_configs import method_configs
from pathlib import Path

config = method_configs["nerfacto"]
config.pipeline.datamanager.data = Path("/home/user/data/my_scene")
config.viewer = ViewerConfig(websocket_port=7007, num_rays_per_chunk=1<<15)
config.max_num_iterations = 30000

trainer = config.setup()
trainer.train()
```

***

## Советы по пользовательскому датасету

### Лучшие практики съёмки камерой

| Параметр    | Рекомендация                         |
| ----------- | ------------------------------------ |
| Перекрытие  | ≥ 60% между кадрами                  |
| Изображения | 100–300 (на улице), 50–150 (объекты) |
| Движение    | Медленное, плавное движение          |
| Освещение   | Равномерное, без резких теней        |
| Фокус       | Резкий по всему кадру                |

### Улучшение результатов COLMAP

```bash
# Для сложных сцен используйте исчерпывающее сопоставление (медленнее, но точнее)
ns-process-data images \
    --data /home/user/data/my_photos \
    --output-dir /home/user/data/my_scene \
    --sfm-tool colmap \
    --matching-method exhaustive
```

***

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

### COLMAP не удаётся найти позы камеры

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

* Убедитесь, что изображения имеют достаточное перекрытие
* Проверьте, что изображения чёткие (без смаза от движения)
* Попробуйте исчерпывающее сопоставление: `--matching-method exhaustive`
* Уменьшите `--num-frames-target` для видео, чтобы выбрать лучшие кадры

### Просмотрщик недоступен

**Решение:** Убедитесь, что порт 7007 проброшен в Clore.ai. Проверьте подключение:

```bash
ss -tlnp | grep 7007
```

### Потери обучения не уменьшаются

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

* Проверьте, что COLMAP завершился успешно (ищите `transforms.json` в каталоге вывода)
* Уменьшите скорость обучения: `--pipeline.model.field-implementation hash`
* Проверьте наличие доминирующего неба (используйте `--pipeline.model.background-color white`)

### Недостаточно памяти

```bash
# Уменьшите размер батча
ns-train nerfacto \
    --data /home/user/data/my_scene \
    --pipeline.datamanager.train-num-rays-per-batch 2048 \
    --pipeline.datamanager.eval-num-rays-per-batch 1024
```

***

## Скачать результаты

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

```bash
# С вашей локальной машины
scp -P <port> -r user@<clore-host>:/home/user/renders/ ./local-renders/
scp -P <port> -r user@<clore-host>:/home/user/exports/ ./local-exports/
```

***

## Оценка стоимости

| GPU        | VRAM  | Ориентировочная цена                        | Сцена из 100 изображений |
| ---------- | ----- | ------------------------------------------- | ------------------------ |
| RTX 3080   | 10 ГБ | $0.05–0.19/ч                                | \~30–45 мин              |
| RTX 4090   | 24 ГБ | $0.14–0.42/ч                                | \~10–15 мин              |
| A100 40 ГБ | 40 ГБ | [голое железо](https://clore.ai/bare-metal) | \~5–8 мин                |

{% hint style="info" %}
Начните с Instant-NGP для быстрых предварительных просмотров, затем переключитесь на Nerfacto или MipNeRF360 для финального качества. Этот рабочий процесс существенно экономит вычислительные ресурсы.
{% endhint %}

***

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

* [Nerfstudio GitHub](https://github.com/nerfstudio-project/nerfstudio)
* [Документация Nerfstudio](https://docs.nerf.studio)
* [Docker Hub dromni/nerfstudio](https://hub.docker.com/r/dromni/nerfstudio)
* [Сравнение методов Nerfstudio](https://docs.nerf.studio/nerfology/methods/index.html)
* [Документация COLMAP](https://colmap.github.io/)

***

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

| Сценарий использования                        | Рекомендуемый GPU | Оценочная стоимость на Clore.ai             |
| --------------------------------------------- | ----------------- | ------------------------------------------- |
| Разработка/тестирование                       | RTX 3090 (24 ГБ)  | $0.07–0.21/гпу/ч                            |
| Продакшен                                     | RTX 4090 (24 ГБ)  | $0.14–0.42/гпу/ч                            |
| Сцены большого масштаба / высокого разрешения | A100 80 ГБ        | [голое железо](https://clore.ai/bare-metal) |

> 💡 Все примеры в этом руководстве можно развернуть на [Clore.ai](https://clore.ai/marketplace) GPU-серверах. Просматривайте доступные GPU и арендуйте по часам — без обязательств, с полным root-доступом.


---

# 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/nerfstudio.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.
