Суть прорыва: от 2D-кадра к деформируемой 3D-модели
Команда Carnegie Mellon University во главе с Йехонафаном Литманом опубликовала код проекта Lift4D. В отличие от традиционных методов 3D-реконструкции, которые часто выдают статичные «статуйки», Lift4D создает временнó-согласованные 4D-ассеты. Это означает, что система не только восстанавливает форму объекта, но и учитывает его деформации во времени, что критически важно для живых существ, одежды или текучих сред.
Архитектура работает в три этапа:
- Сегментация (SAM 3): Выделение объекта из видео с помощью текстового промпта (in-the-wild).
- Каузальная реконструкция (Causal SAM3D): Построение 3D-модели для каждого кадра с учетом временной когерентности.
- Слияние (Lift4D Training): Объединение кадровых моделей в каноническую форму с обученной функцией деформации.
Технические детали и требования
Система использует мощную связку моделей: SAM 3 для сегментации, Stable Zero123 для оценки глубины/позы и Depth Anything 3 для уточнения геометрии. Обучение происходит на базе Gaussian Splatting (diff-gaussian-rasterization), что обеспечивает высокую скорость рендеринга и качество.
Для работы требуется GPU NVIDIA A100 (40GB) или аналогичный, а также установка окружения Conda. Модель является gated (закрытой), поэтому перед загрузкой весов необходимо принять лицензию через Hugging Face.
Сравнение подходов и параметры настройки
Ключевая особенность Lift4D — гибкая настройка баланса между сохранением структуры и детализацией. Параметр --video_consistency позволяет адаптировать модель под разные типы объектов: от жестких механизмов до мягких тканей.
| Параметр / Этап | Значение / Описание | Назначение |
|---|---|---|
| video_consistency | Диапазон [0, 1] | Высокое значение (0.2+) сохраняет структуру жестких объектов; низкое — позволяет больше деформаций. |
| subsampling | Целое число N | Пропуск кадров для ускорения. По умолчанию обрабатывается каждый N-й кадр. |
| deform_type | node / node_delta | Тип деформационной модели. 'node' для геометрии, 'node_delta' для текстуры/цвета. |
| iterations | 9999 (Step A) / 19999 (Step B) | Количество шагов оптимизации. Для видео >50 кадров количество итераций удваивается. |
| occlusion_compositing | Флаг --occlusion_compositing | Заполнение пропущенных областей (occlusions) с помощью inpainting. |
Как запустить: пошаговый алгоритм
Процесс разделен на логические блоки, что позволяет использовать промежуточные результаты. Для пользовательских видео (in-the-wild) требуется первый этап сегментации:
- Сегментация: Запуск
segment_video.pyс указанием пути к видео и текстового промпта (например,--prompt goat). Результат — маска объекта для каждого кадра. - 3D-реконструкция: Запуск
run_inference.pyв папкеsam3d. Здесь задается имя объекта и маска. Опция--refine_poseулучшает выравнивание, если начальная оценка позы неточна. - Обучение 4D-ассета: Два шага в папке
lift4d_scgs. Шаг A оптимизирует геометрию (каноническую форму и деформации), Шаг B — внешний вид (цвета и текстуры) с использованием лосс-функций SDS и LPIPS.
Почему это важно для индустрии
Lift4D решает одну из главных проблем компьютерного зрения — амбигуитету глубины в монокулярном видео. Используя каузальное распространение латентных переменных, система минимизирует «дрожание» 3D-модели во времени. Это открывает возможности для:
- Быстрого создания 3D-активов для игр и VR из обычных видео.
- Автоматической анимации объектов без ручного скелетирования.
- Робототехники, где нужно понимать динамику объектов в реальном времени.
Код проекта доступен по адресу github.com/yehonathanlitman/Lift4D.
Источник: Github ↗
