Matrix3D от Apple — Универсальный инструмент для 3D-реконструкции

15 Jul, 2025

Репозиторий давно не обновлялся

Последнее обновление было 11 месяцев назад.

595
🔱 40
👥 17

Представьте, что у вас есть несколько фотографий объекта, но нет информации о положении камеры. Или нужно создать 3D-модель по одному-единственному снимку. Обычно для каждой такой задачи требуется отдельное решение — но что если все это может делать одна модель? Команда Apple и исследователей из университетов представила Matrix3D — универсальный инструмент для фотограмметрии, который объединяет несколько функций в единый конвейер.

Что умеет Matrix3D?

Matrix3D — это единая нейросетевая модель, обученная решать три ключевые задачи фотограмметрии:

  1. Предсказание позы камеры — определяет положение и ориентацию камеры для каждого кадра
  2. Оценка глубины — строит карту глубины для каждого пикселя изображения
  3. Синтез новых ракурсов — генерирует изображения объекта с новых точек зрения

Причем все это работает даже при минимальном количестве исходных данных — например, можно получить 3D-модель всего по одному фото!

Конвейер Matrix3D

Ключевые возможности

1. Гибкость входных данных

Мало где можно найти модель, которая одинаково хорошо работает:

Реклама
  • С известными параметрами камеры
  • С неизвестной позицией камеры (но известным углом обзора)
  • Даже когда вообще ничего не известно о камере (используется FOV=60° по умолчанию)

2. Комбинирование задач

Matrix3D поддерживает «маскированный вывод» — можно комбинировать разные режимы работы в одном конвейере. Например:

# Синтез новых видов из одного изображения
sh scripts/novel_view_synthesis.sh examples/co3dv2-samples/31_1359_4114

# Оценка позы камеры
sh scripts/pose_estimation.sh examples/co3dv2-samples/31_1359_4114

# Построение карты глубины
sh scripts/depth_prediction.sh examples/co3dv2-samples/31_1359_4114

3. Полный цикл 3D-реконструкции

Особенно впечатляет возможность полной реконструкции сцены:

  • По одному изображению (с автоматической оценкой позы камеры)
  • По нескольким фото без информации о камере (позы оцениваются автоматически)

Пример создания 3D-модели по одному фото:

sh scripts/single_view_to_3d.sh single-view-to-3d examples/single-view/skull.png

Технические детали

Под капотом Matrix3D использует:

  • PyTorch 2.4 в качестве бэкенда
  • Модифицированный конвейер 3D Gaussian Splatting (3DGS) для реконструкции
  • Максимальное количество входных видов — 8 (ограничение архитектуры)

Модель обучена на датасетах CO3Dv2 и ARKitScenes, но может адаптироваться и к другим данным. Интересно, что для камер поддерживается несколько систем координат (Blender, OpenCV), которые автоматически конвертируются во внутренний формат.

Практическое применение

Где это может пригодиться?

  • Разработка AR/VR приложений — быстрая реконструкция окружения
  • Архитектура и дизайн — создание 3D-моделей по фотографиям
  • Кино и геймдев — генерация ассетов из референсов
  • Робототехника — оценка глубины и навигация

Выводы: стоит ли пробовать?

Matrix3D — это мощный (хоть и не без ограничений) инструмент, который действительно объединяет несколько задач фотограмметрии в одной модели. Особенно он понравится:

  • Разработчикам, которым нужно быстро прототипировать 3D-контент
  • Исследователям в области компьютерного зрения
  • Всем, кто работает с ограниченными входными данными (например, когда нет информации о камере)

Установка требует некоторой возни с зависимостями (особенно pytorch3d), но готовые скрипты существенно упрощают запуск. Если вы работаете с 3D-реконструкцией — определенно стоит попробовать!

Проект открыт под лицензией Apple, но перед использованием в коммерческих продуктах стоит уточнить юридические нюансы.

Проект на GitHub | Демо-страница | Исходная статья

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.