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

# Nerfstudio

**Nerfstudio** — модульный, ориентированный на исследователей фреймворк для обучения и рендеринга **Нейронных полей излучения (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       | 11.8+    | 12.1+           |

{% 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` образ использует `пользователя` (не `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
# Для сложных сцен используйте exhaustive matching (медленнее, но точнее)
ns-process-data images \
    --data /home/user/data/my_photos \
    --output-dir /home/user/data/my_scene \
    --sfm-tool colmap \
    --matching-method exhaustive
```

***

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

### COLMAP не находит позы камер

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

* Убедитесь, что у изображений достаточное перекрытие
* Проверьте, что изображения резкие (без смаза движения)
* Попробуйте exhaustive matching: `--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.10/час    | \~30–45 мин              |
| RTX 4090  | 24 ГБ | \~$0.35/час    | \~10–15 мин              |
| A100 40GB | 40 ГБ | \~$0.80/час    | \~5–8 мин                |

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

***

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

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

***

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

| Сценарий использования                     | Рекомендуемый GPU | Примерная стоимость на Clore.ai |
| ------------------------------------------ | ----------------- | ------------------------------- |
| Разработка/Тестирование                    | RTX 3090 (24GB)   | \~$0.12/gpu/hr                  |
| Продакшн                                   | RTX 4090 (24GB)   | \~$0.70/gpu/hr                  |
| Крупномасштабные / высокоразрешённые сцены | A100 80GB         | \~$1.20/gpu/hr                  |

> 💡 Все примеры в этом руководстве можно развернуть на [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/3d-generaciya/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.
