近日 Meta 开源了 ShapeR 项目,ShapeR 利用基于对象多模态数据的 Rectified Flow Transformer,将普通图像序列转换为完整的度量场景重建。简单来说,该模型可以从随手拍的视频或多张照片里,把真实物体恢复成可用 3D 模型(Mesh)。


具体来说,用户拿着手机绕着一个物体拍摄一圈(图片序列或视频帧序列),ShapeR 会结合以下多模态条件喂给生成模型,最终得到物体的 metric 3D mesh(带真实尺度):
- SLAM 得到的稀疏点云 + 相机位姿
- 物体检测/实例分割得到的对象实例
- VLM 生成的文本 caption(描述物体)
SLAM
SLAM (Simultaneous Localization and Mapping) 是 ShapeR 的核心基础,即通过算法解决摄像头在陌生环境中的定位和建图问题。其基本流程包括:
- 摄像头采集数据
- 通过画面比对计算移动距离
- 通过算法修正误差
- 通过回环检测解决漂移和消除误差
SLAM 可以得到'摄影师的足迹'和'物体的骨架',具体包含:
稀疏点云:SLAM 不试图重建整个物体表面,只抓取最明显的特征点(如桌角、把手尖),锁定物体的真实尺寸和空间位置。

相机位姿:记录手持设备绕物体走动时的每一步位置和镜头朝向。

SLAM 依赖几何学的三角测量和概率学的误差优化。当设备移动时,通过视差配合 IMU 传感器提供的距离信息,算法可算出特征点在三维空间中的坐标。最后通过回环检测,当回到原点时比对历史画面,强制拉回累积的位置偏差。

SLAM 是将硬件数据(IMU 加速度、摄像头像素变化)转化为几何约束的关键,为机器人、无人机或 XR 提供基础支持。
物体检测 / 实例分割
物体检测与实例分割相当于'自动抠图'和'聚光灯'。若需重建特定物体(如桌上的茶壶),算法需在背景中将其圈出或精确到像素级剔除背景。
- 物体检测 (Detection):输出 Bounding Box(边界框),指示物体大致位置。
- 实例分割 (Instance Segmentation):输出 Binary Mask(二值掩码),区分物体与背景像素。
ShapeR 采用 Object-Centric(以物体为中心)策略,利用这些 Mask 告诉生成模型仅重建目标物体,排除墙壁或桌子等干扰。
VLM
VLM (Visual Language Model generated Captions) 生成的文本 Caption 用于补充语义信息。虽然照片提供了几何外观,但生成模型可能看不清细节(如模糊或遮挡)。VLM 类似 GPT-4V,根据照片生成描述(如'红色复古木质椅子'),帮助模型利用训练库知识合理补全细节。

综上,ShapeR 通过三者完成建模:
- SLAM 提供骨架和尺度(保证准确度)
- 实例分割提供轮廓剪影(保证独立性)
- VLM Caption 提供附录(保证细节和合理性)

ShapeR 的特点是不直接重建整体 NeRF/TSDF 场景块,而是先检测场景中的多个对象,对每个对象单独重建 mesh,最后组装成场景。

这使得用户可以单独拿出某个物体进行替换、移动或重新摆放,并导出到 DCC/引擎(Blender/Unity/Unreal)编辑。
应用场景与数据准备
ShapeR 适用于 AR 场景理解、虚拟摆放、机器人避障导航及具身 AI 数据集构建。它将现实物体的视频快速转为结构化的 3D 资产。
实际上,ShapeR 并非直接吃视频就出 3D,它需要预处理后的 per-object 数据包(pkl),包含:
- 物体的稀疏 metric point cloud(来自 SLAM/SfM)
- 带位姿的多视图图像
- 物体的 caption 文本描述
- 物体的 2D/3D 实例信息
目前官方代码库指出,前提假设数据已通过 Aria MPS (Machine Perception Services) 流水线处理过。录制设备通常为 Meta 内部的 Project Aria 眼镜,数据准备涉及 Aria MPS 服务、3D 实例检测及 VLM caption。
这里的 Aria MPS 是闭源服务,核心算法暂时只面向 Project Aria Research Kit(ARK)研究合作伙伴开放。
官方已发布 ShapeR Evaluation Dataset,样本包含推理所需的.pkl 文件。测试时可下载 evaluation dataset(HuggingFace 上的 facebook/ShapeR-Evaluation),直接运行推理:
python infer_shape.py --input_pkl <sample.pkl> --config balance --output_dir output
若非合作伙伴且无 Project Aria 眼镜,只能使用已有数据集。官方提供了 explore_data.ipynb 解释 pkl 结构。

自行采集数据较为复杂,需使用 ARKit/ARCore 采集 RGB 帧、时间戳、IMU 及相机内参。例如 iPhone 的 Stray Scanner App 可记录 video+depth(LiDAR)+ARKit 的 VIO。但导出的数据格式不能直接支持 ShapeR 要求的单一结构化.pkl,需自行转换格式。
此外,官方提供了 MapAnything 通用前馈式 metric 3D 重建模型,可从输入图像直接回归带度量尺度的几何和相机信息,可作为 ShapeR 替代 MPS 的 metric points 生成器。

未来期待有更完善的转换工具或社区第三方支持,实现实时运算效果。这对智能眼镜、XR 场景及机器人导航能力都是不错的尝试方向。
总结
ShapeR 的核心在于即使数据不全不干净,也能脑补出完整模型,并具备精准尺寸和独立模型坐标。它不是为了替代 Gaussian Splatting 做场景漫游,目标是当你扫过房间时,将每一个具体物体瞬间变成独立的、有真实尺寸的完整 3D 模型。这是通往下一代空间计算理解物理世界的关键技术。


