VGGT (Visual Geometry Grounded Transformer) — open-source модель, способная восстановить геометрию реального пространства по одной, нескольким или даже сотням фотографий.
Загружаем снимки объекта, комнаты, здания или локации — VGGT может определить:
🔣 положение и параметры камер;
🔣 карты глубины — Depth Maps;
🔣 3D Point Maps;
🔣 соответствующие 3D-точки между разными кадрами.
Есть готовая визуализация через Gradio и Viser, а результат можно экспортировать в COLMAP и дальше использовать, например, в пайплайнах NeRF / Gaussian Splatting.
⚙️Установка:
git clone git@github.com:facebookresearch/vggt.git
cd vggt
pip install -r requirements.txt
▶️ Пример запуска:
import torch
from vggt.models.vggt import VGGT
from vggt.utils.load_fn import load_and_preprocess_images
device = "cuda" if torch.cuda.is_available() else "cpu"
# bfloat16 поддерживается на Ampere GPU
# с Compute Capability 8.0+
dtype = (
torch.bfloat16
if torch.cuda.get_device_capability()[0] >= 8
else torch.float16
)
# Загружаем модель.
# При первом запуске веса автоматически
# скачаются с Hugging Face.
model = VGGT.from_pretrained(
"facebook/VGGT-1B"
).to(device)
# Указываем собственные фотографии
image_names = [
"path/to/imageA.png",
"path/to/imageB.png",
"path/to/imageC.png",
]
images = load_and_preprocess_images(
image_names
).to(device)
with torch.no_grad():
with torch.cuda.amp.autocast(dtype=dtype):
# Получаем камеры, depth maps,
# point maps и другие предсказания
predictions = model(images)
👨💻 Хотим не возиться с кодом?
Ставим зависимости для готового интерфейса:
pip install -r requirements_demo.txt
И запускаем Gradio:
python demo_gradio.py
Открывается веб-интерфейс, куда можно загружать изображения или видео, запускать реконструкцию и интерактивно рассматривать полученную 3D-сцену прямо в браузере.
Есть и отдельный 3D-viewer:
python demo_viser.py \
--image_folder path/to/your/images/folder
А если нужен результат для дальнейшей работы в 3D, VGGT умеет экспортировать реконструкцию непосредственно в COLMAP:
python demo_colmap.py \
--scene_dir=/YOUR/SCENE_DIR/
После обработки получаем параметры камер и 3D-точки в каталоге
sparse, которые можно использовать дальше в соответствующих 3D-пайплайнах.Очень мощная штука для Computer Vision, 3D, робототехники, AR/VR и Gaussian Splatting.
♎️ Пробуем
#python #soft #github
