WorldSculpt: модель собирает 3D-сцену из сотен отдельных мэшей по набору кадров

worldsculpt

Alaya Lab вместе с Токийским университетом выпустила WorldSculpt — модель, которая по кадрам одной комнаты или улицы строит 3D-копию, где каждый предмет остаётся отдельным объектом. Модель не склеивает сцену в одну сплошную поверхность, а выдаёт набор мэшей: пользователь может выделить стул мышкой, отодвинуть его или уронить в физическом движке. Обычные подходы либо склеивают всю сцену в один кусок, либо оставляют дыры там, где предмет закрыт другим предметом.

Насколько это работает, видно по цифрам. Авторы собрали свой набор тестовых сцен UE-MeshyScene, в самой плотной из них 701 объект. Качество меряют метрикой CD-ℓ2: она показывает, насколько сильно построенная поверхность расходится с настоящей, поэтому чем меньше число, тем точнее результат. У ближайшего конкурента ShapeR средняя ошибка составляет 7.42, у WorldSculpt 2.48. Медианная ошибка по объектам упала сильнее: с 2.47 до 0.25. Раз медиана улучшилась заметнее среднего, выигрыш дают не отдельные удачные предметы, а типичный объект в сцене. Доля правильно восстановленной поверхности (F-Score) выросла с 0.813 до 0.951. В отдельном тесте на Toys4k предмет специально закрывали на 75% в каждом кадре: шестнадцать ракурсов дают ошибку 2.25 против 63.95 у одноракурсного Pixal3D, то есть примерно в 28 раз меньше.

Проект открытый: страница проекта, код на Github, веса на Hugging Face. Бенчмарк UE-MeshyScene с 2,299 объектами, 5,964 кадрами, масками, 3D-боксами и картами глубины выложен целиком.

Почему это сложная задача

Генеративные модели миров вроде Marble и HY-World 2.0 уже умеют достраивать правдоподобную геометрию по одной картинке. Проблема в формате результата: сцена выходит единым слитым мэшем или облаком гауссиан, где стул и ваза не существуют как отдельные сущности. Для игр, AR/VR, симуляции и робототехники такой результат бесполезен, потому что этим приложениям нужны отдельные, независимо перемещаемые ассеты.

Геометрические методы (DUSt3R, VGGT, pointmap-модели) точно восстанавливают видимые части сцены, но в закрытых областях остаются дыры. Композиционные подходы вроде MIDI, SceneGen и SceneMaker разбирают сцену на объекты, однако их проверяли на простых конфигурациях уровня нескольких предметов на столе.

Архитектура модели

worldsculpt method architecture

Ключевая идея простая: модель не учат на сценах вообще. Вместо этого берут готовую модель, которая хорошо генерирует один объект по одной картинке, и надстраивают над ней механизм, позволяющий смотреть на объект сразу с нескольких ракурсов.

WorldSculpt — это надстройка над Pixal3D: авторы взяли готовый генератор одиночных 3D-объектов, заморозили его веса и обучили поверх него только небольшой набор новых слоёв, которые позволяют учитывать сразу несколько ракурсов.

Сам Pixal3D относится к классу native-3D, то есть работает прямо в трёхмерном представлении, а не собирает форму из нарисованных картинок. Построен он на бэкбоне TRELLIS.2 и генерирует объект в несколько последовательных проходов (стадий) методом flow-matching. Авторы используют только первые две стадии, которые отвечают за форму. Первая грубо размечает, какие ячейки сетки 64×64×64 заняты объектом, а какие пустые. Вторая уточняет форму внутри занятых ячеек и выдаёт представление высокого разрешения, из которого потом декодируется мэш. Стадию текстур и материалов авторы не трогают.

Разница с Pixal3D в двух вещах. Pixal3D работает с одной картинкой и достраивает скрытые части по общим представлениям о том, как выглядят похожие предметы, а WorldSculpt собирает информацию об объекте со всех кадров, где он виден, поэтому скрытое на одном кадре берётся с другого. И Pixal3D выдаёт объект сам по себе, без привязки к сцене, а WorldSculpt сразу в её координатах, так что сгенерированные предметы становятся на свои места.

Для каждого объекта строится виртуальный канонический куб, ориентация которого задаётся якорным кадром (тем, где объект виден полнее всего). Кадры проецируются в этот куб, признаки DINOv3 из каждого вида поднимаются в воксельный объём, а затем сливаются агрегатором в стиле IBRNet. Агрегатор принимает произвольное число видов и не зависит от их порядка: он считает межвидовые среднее и дисперсию, а два лёгких MLP предсказывают поправки и веса softmax. Полученное 3D-условие вливается в замороженный prior через zero-initialized проекции, а сама сеть адаптируется через LoRA (ранг 32, коэффициент 32). Обучаются только агрегатор, слои инъекции условия и LoRA.

Отдельный приём делает перенос на реальные сцены рабочим. Модель учится на чистых рендерах одиночных объектов, а в настоящей сцене предмет виден плохо: его загораживают соседи, маска обрезана криво, поза камеры известна неточно, сам объект занимает крошечный кусок кадра. Для сокращения этого разрыва, авторы портят входные картинки во время обучения четырьмя способами: закрывают объект случайными 2D-масками или трёхмерными загораживающими телами, которые двигаются согласованно между кадрами, добавляют шум в позы камер (кроме якорной), портят границы масок и уменьшают разрешение. Порча идёт по нарастающей: сила каждого искажения растёт от нуля до максимума за первые 3k итераций, поэтому модель сначала осваивает чистые примеры и только потом сталкивается со сложными. Эталонную геометрию при этом не трогают, искажают только вход.

Бенчмарк UE-MeshyScene: настоящий беспорядок

Существующие наборы данных либо дают мало объектов, либо слитый неполный мэш вместо честной пообъектной геометрии. Авторы собрали шесть окружений в Unreal Engine 5.8: ангар, заброшенный город, собор, офис, японская школа и пустынный город, — и отрендерили их в разрешении 2560×1440. На одну сцену приходится от 93 до 701 объекта, от 265 до 1758 кадров. Всего в датасете 2299 объекта и 5964 кадров. Сцены собирали вручную из готовых 3D-моделей, поэтому авторы заранее знают точную форму каждого предмета и его положение в сцене. Эталон получается идеально точным, и метрики можно считать в мировой системе координат, то есть в общих для всей сцены осях, где у каждого предмета есть свои координаты относительно одного начала отсчёта, а не только собственная форма сама по себе.

Шесть фотореалистичных окружений с наложенными 3D-боксами объектов
Шесть окружений от относительно аккуратных до предельно захламлённых. Статистика по сценам приведена в таблице

Здесь важна деталь протокола. При оценке одиночных объектов предсказанный мэш перед сравнением подгоняют к эталону алгоритмом ICP (Iterative Closest Point): он подбирает поворот и сдвиг, при которых две поверхности совпадают лучше всего. Так метрика перестаёт зависеть от того, в какой ориентации метод выдал объект, и измеряет только качество формы. На сценах ICP не применяют, объект сравнивают с эталоном там, куда модель его поставила. Поэтому число отражает и геометрию предмета, и точность его размещения в сцене.

Что показывают метрики

Качество измеряют расстоянием Чамфера (среднее расстояние между поверхностями предсказания и эталона), Earth Mover’s Distance и F-Score с порогом 0.02 и 0.05.

На чистых входных данных с одним видом модель примерно равна оригинальному Pixal3D (CD-ℓ2 2.59 против 2.17), то есть мультивидовая адаптация почти не повредила исходной генеративной способности. Дальше начинается разрыв. С шестнадцатью видами и без перекрытий CD-ℓ2 составляет 1.19, а качество почти не проседает вплоть до 50% перекрытия в каждом кадре: 1.44 против 22.81 у одноракурсного Pixal3D в том же режиме. TRELLIS в мультивидовом режиме от лишних кадров выигрывает слабо, его CD-ℓ2 при 16 видах и 50% перекрытия остаётся на уровне 18.51.

Canonical-space generation on Toys4k

На сценах картина та же. HouseCat6D (реальные съёмки настольных сцен): CD-ℓ2 0.28 против 1.26 у ShapeR. Синтетический Toys4k-Scene: 0.61 против 8.38, F-Score 0.981 против 0.746.

HouseCat6D

UE-MeshyScene dataset

Абляция слияния видов подтверждает логику метода. Обучаемый агрегатор почти не отличается от простого усреднения признаков, когда объект хорошо виден (HouseCat6D), но на UE-MeshyScene снижает CD-ℓ2 на 12% и поднимает F-Score с 0.944 до 0.951. Взвешивание видов помогает ровно тогда, когда наблюдения разного качества.

Применение к сгенерированным мирам

Авторы проверили ещё один сценарий. Marble — это модель от World Labs, которая генерирует целый 3D-мир по одной картинке или текстовому описанию. Мир она выдаёт в формате 3D Gaussian Splatting, то есть облаком полупрозрачных пятен, из которого получается красивая картинка с любой точки обзора, но нет отдельных предметов и нет мэшей, пригодных для редактирования.

WorldSculpt превращает такой мир в набор объектов. Сначала по сгенерированному миру летает виртуальная камера и снимает обычные кадры вместе с картами глубины. Позы камеры при этом известны точно, потому что кадры рендерятся программно. Затем SAM3 находит на кадрах объекты и отслеживает их. Один предмет иногда разваливается на несколько треков, и такие обрывки склеивают обратно по совпадению масок и по близости в пространстве. Наконец, точки объекта переносят из кадров в трёхмерное пространство, чистят выбросы алгоритмом DBSCAN и обводят получившееся облако прямоугольным боксом.

На этом подготовка заканчивается. Дальше запускается обычный инференс WorldSculpt, без дообучения под новые данные, и облако гауссиан превращается в набор редактируемых мэшей.

Интерьеры, сгенерированные Marble, и соответствующие им пообъектные меши
Мир из Marble, разобранный на отдельные объекты без дополнительного обучения

Ограничения

Метод опирается на внешние оценки поз камер, масок и грубых боксов. Аугментации помогают пережить умеренные ошибки, но сильно смещённый бокс всё ещё портит геометрию. Модель генерирует только геометрию, текстуры и материалы оставлены на будущее, хотя и Pixal3D, и TRELLIS.2 их поддерживают. Наконец, сцена считается статичной: все ракурсы трактуются как наблюдения одной и той же неподвижной формы, поэтому движущиеся и деформируемые объекты пока не поддерживаются.


neurohive telegram
Подписаться
Уведомить о
guest

0 Comments
Старые
Новые Популярные