Meta 近期开源了 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 加速度、摄像头像素变化)转化为几何约束的基础,广泛应用于 ARCore、ARKit、机器人及 XR 领域。
物体检测 / 实例分割
物体检测与实例分割简单说就是'自动抠图'和'聚光灯'。若拍摄的是整个房间但只想重建桌上的茶壶,算法需自动在背景中圈出目标。
- 物体检测 (Detection):输出 Bounding Box(边界框),指示物体大概位置。
- 实例分割 (Instance Segmentation):输出 Binary Mask(二值掩码),区分目标像素与背景像素。
ShapeR 采用 Object-Centric(以物体为中心)策略,需要这些 Mask 告诉生成模型仅重建特定物体。
VLM
VLM (Visual Language Model generated Captions) 生成的文本 Caption 可理解为'给 AI 的命题作文'。虽然有了照片,但生成模型可能看不清细节(如模糊或遮挡)。此时 VLM(类似 GPT-4V)看一眼照片并写一段话,例如:'这是一个红色的复古木质椅子,椅背有雕花。'
针对图形增加文本表述可提供更准确的语义。照片提供'几何外观',文本提供'概念理解',防止因反光或遮挡导致细节丢失。

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

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

在此架构下,用户可以:
- 单独拿出某个物体(如椅子/桌子)
- 替换/移动/重新摆放
- 导出到 DCC/引擎里编辑(Blender/Unity/Unreal)
其应用场景丰富,包括:
- AR 场景理解 / 虚拟摆放
- 机器人避障、navigation
- 具身 AI 的数据集构建(真实物体 mesh + 尺度)
ShapeR 将现实物体的视频快速转成结构化的 3D 资产(mesh 级别)。实际上它并非直接吃视频就出 3D,而是吃预处理后的 per-object 数据包(pkl),包含:
- 物体的稀疏 metric point cloud(来自 SLAM/SfM)
- 带位姿的多视图图像(posed images)
- 物体的 caption 文本描述
- 物体的 2D/3D 实例信息
核心难点在于数据准备。官方代码库指出前提假设数据已通过 Aria MPS (Machine Perception Services) 流水线处理过。官方宣传的'随手拍'依赖 Meta 内部的 Project Aria 眼镜及闭源的【Aria MPS 服务】+【3D 实例检测】+【VLM caption】将数据转换为 .pkl 格式。
目前官方已发布 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 眼镜,只能使用已有数据集。自行实践路径较复杂,需使用 ARKit/ARCore 采集数据(RGB 帧 + 时间戳 + IMU + 相机内参),如 iPhone 的 Stray Scanner App,记录 video + depth + ARKit VIO。Stray Scanner 导出数据格式不能直接支持 ShapeR 要求的单一结构化 .pkl,需自行转换,工作量巨大。
另外,官方提供了 MapAnything 通用前馈式 metric 3D 重建模型,可从输入图像直接回归带度量尺度的几何和相机信息,可作为 ShapeR 替代 MPS 的 metric points 生成器。

未来需等待更完善的转换工具或社区第三方工具支持,才能实现真正的随手建模甚至实时运算。这对智能眼镜、XR 场景及机器人导航能力都是不错的尝试方向。
总结,ShapeR 的核心是即使数据不全不干净,也可以脑补出完整模型,并且具备精准的尺寸和独立的模型与坐标。
ShapeR 不是为了替代 Gaussian Splatting 做场景漫游,目标是当你戴着 AR 眼镜或拿着手机扫过房间时,能将每一个具体的物体瞬间变成一个个独立的、有真实尺寸的、完整的 3D 模型。
这是 Meta 高度重视的技术,大概率通往下一代空间计算理解物理世界的关键。



