MapAnything: один трансформер для метрической 3D-реконструкции по изображениям
Почему нужен универсальный подход к 3D-реконструкции?
Традиционная реконструкция 3D-сцены по изображениям опирается на разрозненные этапы: детектирование признаков, оценка позы между парами, bundle adjustment, multi-view stereo или отдельные сети для глубины. Такие конвейеры работают, но требуют настройки для каждой задачи, дорогой оптимизации и значительной постобработки. MapAnything предлагает заменить этот набор специализированных модулей одним трансформером, который напрямую регрессирует факторизованную метрическую 3D-геометрию.
Архитектура и представление сцены
MapAnything использует факторизованное представление сцены: направления лучей для каждого вида (калибровка камеры), глубина вдоль лучей (в масштабе до множителя), позы камер относительно опорного вида и единый глобальный метрический масштаб. Такое явное разделение избавляет от избыточности и позволяет одной и той же модели решать множество задач — от монокулярной оценки глубины до SfM и стерео — без отдельных голов.
Ядром модели служит многовидовой трансформер с попеременным вниманием. Изображения кодируются признаками DINOv2 ViT-L, а опциональные геометрические входы (лучи, глубина, позы) встраиваются в то же скрытое пространство через мелкие CNN или MLP. Обучаемый токен масштаба обеспечивает метрическую нормализацию между видами и позволяет получать согласованные в глобальной системе реконструкции без bundle adjustment.
Гибкость входов и масштаб инференса
MapAnything принимает до 2 000 изображений за один проход и может использовать дополнительные данные, когда они доступны: параметры камер, позы и карты глубины. Во время обучения применяется вероятностное выпадение геометрических входов, что делает модель устойчивой к разнородным конфигурациям. Выборка по коверсиябельности гарантирует, что входные виды имеют значительное перекрытие, что позволяет агрегировать информацию свыше 100 видов.
Обучение и выпуски моделей
Модель обучали на 13 разнообразных наборах данных — внутренних, уличных и синтетических, включая BlendedMVS, Mapillary Planet-Scale Depth, ScanNet++ и TartanAirV2. Выпущены две варианта: модель с лицензией Apache 2.0, обученная на шести датасетах, и CC BY-NC модель, обученная на всех тринадцати для лучшей производительности. Обучение проводилось на 64 H200 GPU с mixed precision, gradient checkpointing и куррикулумной схемой, увеличивающей число входных видов с 4 до 24.
Ключевые приёмы в обучении включают вероятностное выпадение геометрических входов, выборку видов по коверсиябельности и факторизованные потери в лог-пространстве для устойчивой оптимизации глубины, масштаба и позы.
Результаты бенчмарков
MapAnything демонстрирует состояние дела в нескольких задачах: плотная многовидовая реконструкция, двухвидовые задачи, калибровка по одному изображению и метрическая оценка глубины. Примеры достижений:
- На ETH3D, ScanNet++ v2 и TartanAirV2-WB модель снижает относительную ошибку pointmap до 0.16 при использовании только изображений (против 0.20 у VGGT) и до 0.01 при наличии интраинской информации, поз и глубины, достигая более 90% inlier-отношений.
- В двухвидовой реконструкции MapAnything превосходит DUSt3R, MASt3R и Pow3R, достигая свыше 92% inlier-отношений при наличии дополнительных приоритетов.
- Для калибровки по одному изображению средняя угловая ошибка составляет 1.18°, что лучше AnyCalib и MoGe-2.
- На Robust-MVD MapAnything устанавливает новые SoTA для метрической оценки глубины и соперничает с специализированными моделями при наличии вспомогательных входов.
Единое обучение и факторизация выходов дают до 2× улучшения по сравнению с предыдущим SoTA во многих задачах, сокращая потребность в специализированных пайплайнах и дорогостоящей постобработке.
Ключевые вклады и открытый код
Авторы выделяют четыре основных вклада: единая модель Feed-Forward для 12+ задач, факторизованное представление сцены (лучи, глубина, поза, метрический масштаб), превосходные результаты на разнообразных бенчмарках и открытый релиз с обработкой данных, скриптами обучения, бенчмарками и предобученными весами под Apache 2.0. Полные материалы и код доступны в статье и на странице проекта: https://map-anything.github.io/assets/MapAnything.pdf
MapAnything показывает, что один трансформер, обученный на разнородных данных и входах, способен заменить специализированные пайплайны реконструкции и послужить универсальным ядром для задач 3D-визии.