Загрузка...

AImodel3

Thread in Python created by pofities Jan 6, 2026. 134 views

  1. pofities
    AImodel3: Фото → 3D (прототип)(для людей работающих с 3D обьектами)
    Этот проект — практичный прототип пайплайна, который из одной фотографии пытается получить 3D-меш (GLB/OBJ).
    Важно: по одной фотографии получается только приближённая геометрия. Для точности обычно нужны несколько ракурсов / видео.
    Android (офлайн приложение)
    Если хотите формат приложения, в репозитории есть каркас в папке android/:
    • Kotlin/Compose UI: выбор фото
    • выбор объекта (клик/ROI) — каркас
    • интерфейс Segmenter + StubSegmenter
    • заготовка под SAM2 через ONNX Runtime (OnnxSam2Segmenter)
    См. android/README.md.
    Быстрый старт
    1. Создайте/активируйте виртуальное окружение (PyCharm делает это сам).
    2. Установите зависимости:
    pip install -r requirements.txt
    1. (Опционально, для реальной нейросети TripoSR) установите PyTorch CUDA и затем подготовьте TripoSR:
    # PyTorch (пример для CUDA 12.1)
    pip install --index-url torch torchvision torchaudio

    # Подготовка TripoSR (PortableGit + clone + deps)
    powershell -ExecutionPolicy Bypass -File scripts\setup_triposr.ps1
    1. (Опционально, для более точной сегментации) поставьте SAM2:
    pip install sam2
    1. Запуск:
    python -m aimodel3 --input path\to\photo.jpg --out outputs\mesh.glb --backend stub
    • --backend stub — быстрый CPU-режим-заглушка (создаёт простой меш, чтобы проверить пайплайн).
    • --backend triposr — single-image 3D через TripoSR (после setup_triposr.ps1).
    Выбор объекта (если на фото несколько предметов)
    Вариант A: выделить прямоугольник (ROI)
    python -m aimodel3 --input path\to\photo.jpg --out outputs\mesh.glb --backend triposr --select --segmentation grabcut
    SAM2 вместо grabcut:
    python -m aimodel3 --input path\to\photo.jpg --out outputs\mesh.glb --backend triposr --select --segmentation sam2
    Вариант B: кликнуть по предмету (seed-точка)
    python -m aimodel3 --input path\to\photo.jpg --out outputs\mesh.glb --backend triposr --click --segmentation grabcut
    SAM2 вместо grabcut:
    python -m aimodel3 --input path\to\photo.jpg --out outputs\mesh.glb --backend triposr --click --segmentation sam2
    (Если SAM2 не установлен или не настроен, используйте grabcut.)
    Выходные форматы
    • *.glb (по умолчанию)
    • *.obj
    Ограничения
    • Невидимая сторона объекта дорисовывается моделью.
    • Масштаб в метрах не гарантируется.
    • Прозрачные/зеркальные/тонкие объекты — самые сложные.
    Структура
    • aimodel3/ — приложение и CLI
    • outputs/ — результаты (в .gitignore)
    • .venv/ не хранится в git
     
Loading...