3D‑реконструкция: MVS/NeRF/SLAM на GPU
Задача страницы. Дать практический план построения 3D‑реконструкции на облачных GPU: классический MVS (multi‑view stereo) из фотографий/видео, нейронные представления NeRF/GS (Neural Fields/Gaussian Splatting) и SLAM (онлайн‑картография и локализация). Разберём требования к VRAM/диску/сети, пайплайны, наблюдаемость и экономику, а также дадим готовые шаблоны запусков.
TL;DR
- MVS — метрически точная сетка/текстуры для DCC/САПР; критичны NVMe‑I/O и память под дескрипторы/карты глубины.
- NeRF/GS — быстрый новый вид (view synthesis) и лёгкая доставка; критична VRAM и пропускная GPU‑выборки.
- SLAM — онлайн‑карта/траектория с низкой латентностью; критичны p95‑метрики и стабильный поток кадров.
- Разделяйте онлайн (SLAM/демо) → on‑demand пулы и batch (MVS/NeRF обучение) → interruptible с чанкованием ≤ 2 мин.
- Смежные разделы: CV‑хаб — https://cloudcompute.ru/solutions/computer-vision/ • видео‑аналитика — https://cloudcompute.ru/solutions/computer-vision/video-analytics/ • эмбеддинги/поиск — https://cloudcompute.ru/solutions/computer-vision/dinov2/ • экспорт на edge — https://cloudcompute.ru/solutions/computer-vision/edge-export/ • генерация/NeRF с текста — https://cloudcompute.ru/solutions/image-video-gen/text-to-3d/ • инфраструктура: https://cloudcompute.ru/solutions/performance-tuning/ • https://cloudcompute.ru/solutions/storage-data/ • https://cloudcompute.ru/solutions/interruptible-patterns/ • https://cloudcompute.ru/solutions/cost-planner/ • https://cloudcompute.ru/solutions/monitoring-logging/ • https://cloudcompute.ru/solutions/llm-inference/observability/
Сценарии применения
- Реверс‑инжиниринг/инвентаризация: сетки объектов/помещений из фотосъёмки/видео.
- VFX/игры/DCC: нейронные сцены для превью и гибридные пайплайны (NeRF→mesh bake).
- Робототехника/AR: SLAM‑карты, локализация, Trajectory/Loop‑closure.
- Гео/строительство: MVS‑облака/меши с высокой точностью, экспорт в CAD/ГИС.
Пайплайн MVS (фото/видео → сетка/текстуры)
Кадры/фото → (калибровка/экстракция фич) → сопоставление пар → SfM (позы/спарс‑облако)
→ Dense MVS (карты глубины) → фьюжн плотной точки → мешинг → ремеш/чистка
→ текстурирование → экспорт (OBJ/GLB/PLY) → отчёт (ошибки/покрытие)
Ключевые советы
- Стабильный фокус/экспозиция, достаточный parallax и разнообразие ракурсов.
- Для видео сначала семплируйте кадры (шаг 2–6 кадров), убирайте motion blur.
- На больших сценах — тайлинг MVS и раздельное текстурирование, затем сшивка UV.
- Экспорт ассетов для DCC/рендера — см. также: https://cloudcompute.ru/solutions/rendering/ и https://cloudcompute.ru/solutions/rendering/asset-pipelines/
NeRF / Gaussian Splatting (обучение и рендер) Зачем: реалистичный view synthesis и компактные сцены, быстрая доставка; удобны для интерактивных превью, туров и гибридных пайплайнов (смешиваем нейронную геометрию и классические ассеты).
Базовый контур
Позиционированные кадры (позы + intrinsics)
→ обучение поля (NeRF/GS) с валидацией
→ (опц.) извлечение меша/поверхности, bake текстур/нормалей
→ рендер: скрипты кадров/камер, интерактивное демо
Практика
- Используйте fp16/bf16, смешанную точность, подбор шага и occupancy/grid для ускорения.
- Храните позы/интринсики в едином формате; для видео — стабилизируйте кадры.
- Для прод‑рендера — offscreen‑рендер с батчем камер; для демо — on‑demand узел с лимитами.
- Нейронные сцены в проде часто сочетают с классическим рендером: см. https://cloudcompute.ru/solutions/rendering/hybrid-ai/
SLAM на GPU (онлайн‑картография/локализация)
Поток кадров → препроц/фичи → трекинг позы → локальная карта (keyframes)
→ детекция замыканий (loop closure) → глобальная оптимизация → экспорт/сервис поз
SLA для онлайна
- p95 latency трекинга позы: < 20–40 мс (моно/стерео/видео).
- Стабильный ingest (см. RTSP/видео: https://cloudcompute.ru/solutions/computer-vision/video-analytics/), ring‑буферы и drop‑политика при перегрузе.
- Экспорт локализации/карты во внешний сервис (например, для планирования траектории).
Ресурсы: VRAM, NVMe и пропускная способность
MVS (сотни/тысячи кадров):
- VRAM: 24–48 ГБ для плотных карт глубины 2–8 Мп, батч 2–4 проекции.
- NVMe: 200–800 ГБ под дескрипторы/карты/временные меши.
- CPU/RAM: многоядерный препроц/сопоставление пар, 32–128 ГБ ОЗУ.
NeRF/GS (1–5 тыс. кадров 1–2 Мп):
- VRAM: 24–80 ГБ в зависимости от сетки/батча и таргет‑разрешения рендера.
- NVMe: 20–200 ГБ под датасет/кэши; при bake — +50–150 ГБ.
SLAM (онлайн):
- VRAM: 8–24 ГБ; важно удерживать p95 latency и кэш фич/карт.
- NVMe: 10–50 ГБ для буферов/локальных карт и логов.
Подробнее о дисках/кэше — https://cloudcompute.ru/solutions/storage-data/ Профили GPU и режимы
| **Профиль** | **MVS (облака/меши)** | **NeRF/GS (обучение/рендер)** | **SLAM (онлайн)** | **Режим** |
| **24 ГБ (Compact)** | Средние сцены, 1–4 Мп | Предпросмотр/небольшие сцены | Моно/стерео‑SLAM | On‑demand (SLAM), interruptible (batch) |
| **48 ГБ (Balanced)** | Плотные карты/тайлы | Полновесное обучение/рендер | +обогащение фич | Смешанный |
| **80 ГБ (HQ)** | Большие сцены/высокое качество | Крупные датасеты/высокий FPS рендера | Реже нужно | Batch, иногда on‑demand для демо |
Планирование стоимости — https://cloudcompute.ru/solutions/cost-planner/ • Прерываемые пулы — https://cloudcompute.ru/solutions/interruptible-patterns/
Подготовка данных и калибровка
- Кадры/фото: равномерный parallax, избегать motion blur; извлеките кадры из видео с шагом 2–6.
- Калибровка: фиксируйте intrinsics (f, cx, cy, дисторсия), сохраняйте в единый JSON.
- Очистка: удаляйте кадры с бликами/сильной экспозицией; для MVS держите «средний» шаг по базису.
- Mета: единый world‑scale, система координат, маски ROI (см. https://cloudcompute.ru/solutions/computer-vision/sam/).
Конфиги пайплайнов (MVS / NeRF / SLAM)
A) MVS (батч, interruptible)
pipeline: mvs-recon
input:
frames: s3://scenes/siteA/cam1/frames/
stride: 3
sfm:
features: sift_gpu
match: exhaustive
out: s3://scenes/siteA/sfm/
mvs:
tile: 2048
overlap: 64
depth_max: 40m
batch_projections: 3
mesh:
densify: true
clean: true
remesh_target_faces: 3e6
texture:
resolution: 8k
charts: lscm
export:
formats: [obj, glb]
runtime:
mode: batch
chunk_seconds: 120
retries: 3
nvme_cache: true
B) NeRF/GS (обучение + рендер)
pipeline: nerf-train-render
data:
frames: s3://scenes/siteA/posed/
aabb_scale: 2.0
train:
precision: fp16
iters: 20000
occupancy_grid: true
batch_rays: 32768
render:
cameras: s3://scenes/siteA/cams_path.json
width: 1920
height: 1080
fps: 24
out: s3://renders/siteA/nerf/
runtime:
mode: batch
chunk_seconds: 90
nvme_cache: true
C) SLAM (онлайн)
pipeline: slam-realtime
video:
input: rtsp://rig/cam_front
decode: gpu
preprocess:
size: 1280x736
slam:
type: vslam_mono
loop_closure: true
keyframe_interval: 15
max_features: 2000
export:
pose_stream: bus://robot/pose
map_out: s3://maps/siteA/
sla:
p95_pose_ms: 30
drop_policy: every_n
Наблюдаемость, логи и контроль качества
Сбор/дашборды — https://cloudcompute.ru/solutions/monitoring-logging/ и https://cloudcompute.ru/solutions/llm-inference/observability/
MVS/NeRF
- Технические: VRAM пик, GPU util/HBM, I/O NVMe, p50/p95 t_step, cache‑hit.
- Качество: PSNR/SSIM (рендеры), плотность точки, дыры/самопересечения, текстур‑seams.
- Отчёты: покрытие сцен, распределение углов/базиса, процент отфильтрованных кадров.
SLAM
- p50/p95 latency позы, дрейф/loop‑ошибка, частота relocalization, drop‑rate кадров.
- Алерты: рост p95, падение покрытия, скачки карты/дубликаты ключевых кадров.
Экономика и расчёты
Пусть T — среднее время шага/итерации, S — число шагов, α_io — доля I/O накладных, c_gpu — цена GPU/час.
Batch (MVS/NeRF):
Time_total ≈ S × T × (1 + α_io)
Cost_total ≈ (Time_total / 3600) × c_gpu × Num_GPU
Cost_per_scene ≈ Cost_total / Num_scenes
Онлайн (SLAM):
GPU_needed ≈ (fps × t_pose_ms / 1000) / U
Cost_per_hour ≈ GPU_needed × c_gpuU — целевая загрузка GPU (напр., 0.7). Подбор профилей и сравнение on‑demand/interruptible — https://cloudcompute.ru/solutions/cost-planner/ • https://cloudcompute.ru/solutions/interruptible-patterns/
Операция и безопасность
- Изоляция окружений (версии CUDA/библиотек), репродюсируемые контейнеры.
- Лимиты: max_resolution, max_iters, max_depth/clip, max_vram_usage.
- Данные: ПИИ/коммерческая тайна — маскирование/шифрование, контроль ретеншна/региональности.
Подробнее — https://cloudcompute.ru/solutions/security/ и https://cloudcompute.ru/solutions/llm-inference/guardrails/
Траблшутинг
| **Симптом** | **Причина** | **Что сделать** |
| «Рваная» геометрия MVS | Недостаток пар/parallax | Увеличить перекрытие кадров, уменьшить stride, улучшить калибровку |
| Дыры/швы в текстурах | Жёсткие тайлы/нестыковка UV | Увеличить overlap, запустить seam‑fix, ремеш + перетекстурить |
| Мылит рендер NeRF | Недостаточно итераций/батч | Увеличить iters/batch\_rays, улучшить позы/нормировку |
| Нестабильная поза SLAM | Motion blur/мало фич | Повысить fps/штору, увеличить max\_features, стабилизировать экспозицию |
| OOM на NeRF/MVS | Большие батчи/тайлы | Уменьшить batch/tile, включить тайлинг/градиентное освобождение |
| Медленные батчи | Холодные веса/диск | NVMe‑кэш, прогрев, шардирование, параллельный препроц |
Как запускать в cloudcompute.ru
Шаблоны — https://cloudcompute.ru/solutions/templates/
- “MVS‑Reconstruction (Batch)” — SfM → Dense MVS → Mesh → Texture, тайлы/overlap, NVMe‑кэш, отчёты.
- “NeRF/GS‑Train‑Render” — обучение/рендер, расписание батчей, bake/экспорт ассетов, мониторинг.
- “SLAM‑Realtime” — ingest RTSP, p95‑контроль, карта/позиционирование, экспорт позы.
Инфраструктура: тюнинг — https://cloudcompute.ru/solutions/performance-tuning/ • хранение — https://cloudcompute.ru/solutions/storage-data/ • наблюдаемость — https://cloudcompute.ru/solutions/monitoring-logging/ • сервинг/ансамбли — https://cloudcompute.ru/solutions/triton-inference-server/ • CI/CD — https://cloudcompute.ru/solutions/containers-ci-cd/
Чек‑лист перед продом
- Определён режим: MVS/NeRF (batch) или SLAM (онлайн) и SLA (p95/time/качество).
- Подобраны профили VRAM/NVMe и тайлы/батчи; подтверждены цифры на вашем датасете.
- Зафиксированы версии весов/инструментов; конфиги в репозитории.
- Метрики/алерты/трейсинг подключены; отчёты качества (PSNR/SSIM, покрытие, loop‑ошибка).
- Рассчитаны Cost_total / Cost_per_scene или Cost_per_hour (SLAM).
- Настроены политики доступа/ретеншна и лимиты параметров
Навигация по разделу «Компьютерное зрение»
Хаб: https://cloudcompute.ru/solutions/computer-vision/ • Видео‑аналитика: https://cloudcompute.ru/solutions/computer-vision/video-analytics/ • Детекция: https://cloudcompute.ru/solutions/computer-vision/yolo/ • Интерактивная сегментация: https://cloudcompute.ru/solutions/computer-vision/sam/ • Эмбеддинги/поиск: https://cloudcompute.ru/solutions/computer-vision/dinov2/ • OCR: https://cloudcompute.ru/solutions/computer-vision/ocr/ • Трекинг/ReID: https://cloudcompute.ru/solutions/computer-vision/tracking/ • Гео/SAR: https://cloudcompute.ru/solutions/computer-vision/geospatial/ • Экспорт на edge: https://cloudcompute.ru/solutions/computer-vision/edge-export/ • Текст→3D: https://cloudcompute.ru/solutions/image-video-gen/text-to-3d/ • Инфраструктура: https://cloudcompute.ru/solutions/performance-tuning/ • https://cloudcompute.ru/solutions/storage-data/ • https://cloudcompute.ru/solutions/interruptible-patterns/ • https://cloudcompute.ru/solutions/throughput-vs-latency/ • https://cloudcompute.ru/solutions/cost-planner/ • https://cloudcompute.ru/solutions/monitoring-logging/ • https://cloudcompute.ru/solutions/llm-inference/observability/ • Сервинг: https://cloudcompute.ru/solutions/triton-inference-server/ • CI/CD: https://cloudcompute.ru/solutions/containers-ci-cd/
Готовы запустить?
Запустить GPU-сервер