摘要

本文记录一次工程实践:如何把一段普通手机拍摄的视频,在 30 到 60 分钟内自动转换为可直接用于机器人仿真训练的数字孪生场景。方案整合了运动恢复结构(SfM)、3D Gaussian Splatting 神经渲染与语义分割物体提取,实现从视频输入到可交互仿真场景的全自动流水线,渲染质量达 PSNR 28-35 dB,物体网格精度达厘米级。文中讨论的工程问题与解决思路,来自智匠云(ArtiBot Cloud)平台的线上服务实现经验。

1. 从学术 Demo 到工程化产品之间的鸿沟

具身智能(Embodied AI)的训练高度依赖仿真环境,而构建仿真环境长期是整个链路中最昂贵的一环。传统方法需要 3D 美术师手工建模,一个中等复杂度的室内场景可能需要数周时间和数万元成本。近年来神经辐射场(NeRF)与 3D 高斯溅射(3DGS)的突破,让从多视角图像自动重建照片级真实场景成为可能。

但 3DGS 的论文复现并不困难,要把它变成一个能稳定服务真实用户的系统,需要解决四类工程问题。

第一是输入质量的不确定性。 学术数据集通常提供标定良好、覆盖完整的多视角图像,而真实用户上传的是随手拍的视频——可能存在运动模糊、曝光不一致、视角覆盖不足,甚至中途切换了拍摄对象。

第二是可操作物体的自动分割。 仿真训练需要的不是一整块静态场景,而是"背景 + 若干可抓取物体"的结构化表示。物体必须能被独立移动、施加物理属性、参与碰撞检测。

第三是仿真器格式的兼容性。 3DGS 的原生表示需要自定义渲染管线,主流仿真器并不直接支持。如果需要用户额外安装渲染插件,易用性就大幅下降。

第四是云端自动化与异常恢复。 整条流水线包含多个计算密集阶段,任何一步失败都不能让用户等待数十分钟后收到一个空结果。

下面按流水线顺序讨论这些问题的处理方式。

2. 系统架构:四阶段自动化流水线

整体流程分为四个主要阶段,各阶段之间自动衔接,无需人工干预。

用户上传视频
 ↓
Step 1: 运动恢复结构(SfM)
 - 关键帧抽取与质量筛选
 - 特征提取与匹配
 - 相机位姿估计
 - 稀疏点云重建 → 稠密化
 ↓
Step 2: 3DGS 场景训练
 - 以稀疏点云初始化高斯核
 - 位置、协方差、球谐系数联合优化
 - 自适应密度控制(分裂与剪枝)
 - 生成高保真场景表示
 ↓
Step 3: 物体分割与网格重建
 - 视觉基础模型语义分割
 - 多视角一致性验证
 - 最佳视角筛选与 3D 重建
 - 物理属性自动标注
 ↓
Step 4: 仿真场景组装
 - 背景场景转换为仿真器原生格式
 - 物体网格 + 碰撞体 + 质量/摩擦系数
 - 输出标准 USD 格式

2.1 关键帧抽取为什么需要质量筛选

直接按固定间隔抽帧是最简单的做法,但对手机视频效果很差。手持拍摄必然存在运动模糊帧,这些帧参与特征匹配会显著降低位姿估计精度,甚至导致 SfM 重建失败。

实践中的处理是先对候选帧计算清晰度指标(例如拉普拉斯方差),在每个时间窗口内挑选最清晰的一帧,同时保证相邻关键帧之间有足够的视角变化但又不至于失去重叠区域。这一步的筛选质量直接决定后续所有阶段的上限。

3. 三个关键技术点

3.1 高保真背景渲染与仿真器的兼容

原生 3DGS 模型依赖专用的可微光栅化渲染器,无法直接在 Isaac Sim 等主流仿真器中使用。可行的方案是将 3DGS 模型转换为仿真器原生支持的表示形式,由此获得三个好处:

  • 用户无需安装任何额外渲染插件
  • 保留了视角依赖的光照效果,这是 3DGS 相比传统贴图建模的核心优势
  • 重建结果能与仿真器的物理引擎无缝集成,直接参与碰撞与动力学计算

最终输出为标准 USD 格式,这是 NVIDIA Omniverse 生态的通用交换格式,兼容性有保障。

3.2 可操作物体的自动分割与物理属性标注

场景中的可操作物体需要独立提取并生成网格。这一步的难点在于分割质量的稳定性——单视角分割结果往往存在边界模糊或误分割,直接用于重建会产生破面网格。

有效的处理流程是:

  1. 用视觉基础模型对多个视角分别做语义分割
  2. 通过多视角一致性验证剔除不可靠的分割结果
  3. 从通过验证的视角中筛选出观测质量最好的若干个用于 3D 重建
  4. 自动标注物理属性,包括质量估计、摩擦系数与碰撞体生成

这样重建出的物体能直接参与仿真中的抓取与放置操作。其中第 2 步是关键:宁可丢弃一半视角,也不能让一个错误分割污染最终网格。

3.3 端到端自动化与异常处理

整条流水线在云端全自动执行:视频上传后自动触发,各阶段之间自动衔接,内置异常检测与自动重试机制,完成后通知用户。

异常处理的设计原则是分阶段落盘。每个阶段产出的中间结果(关键帧、位姿、点云、高斯模型)都独立持久化,这样某一步失败时可以从上一个成功的检查点重试,而不必从头跑一遍。对于动辄几十分钟的流水线,这个设计能显著降低失败重试的成本。

4. 实测性能指标

以下是线上服务的实测表现。

指标 表现
端到端总时间 30 - 60 分钟
场景渲染质量 照片级真实,PSNR 28 - 35 dB
物体网格精度 厘米级
支持场景复杂度 中等室内场景,10 - 50 ㎡
输出格式 标准 USD,兼容 Isaac Sim
输入要求 手机视频,多角度环绕拍摄

需要说明的是,PSNR 28-35 dB 这个区间的跨度主要反映输入质量的影响。光照均匀、纹理丰富、拍摄平稳的场景通常能达到 33 dB 以上;而低光照、大面积纯色墙面或反光表面较多的场景会落在区间下沿。

纯色墙面是个典型的失败场景:缺少纹理特征意味着 SfM 无法在该区域建立可靠匹配,高斯核初始化质量差,最终渲染会出现明显的模糊或空洞。实践中的建议是拍摄时尽量让画面中同时包含有纹理的参照物。

5. 适用场景与局限

该方案在几类场景中得到验证:重建工作台场景用于训练零件抓取与装配技能;重建厨房与客厅环境训练物品整理;重建货架场景训练拣选与码垛;以及为高校实验室提供低成本仿真环境,让原本需要排队使用机械臂的学生可以同时在线练习。

局限也需要说清楚。当前方案针对静态场景,含人体动作的动态场景重建尚未支持。场景规模上限在数十平方米量级,大范围空间重建的精度与耗时都会明显劣化。此外,透明与高反光物体(玻璃杯、抛光金属)的重建质量仍然不理想,这是 3DGS 本身的已知局限。

6. 与训练链路的衔接

场景重建本身不是终点,重建出的场景需要接入完整的训练链路才有意义。后续环节包括在仿真环境中采集训练数据(格式与 LeRobot 兼容)、训练 ACT、Diffusion Policy、SmolVLA、Pi0 等策略模型,以及通过仿真与真机双路径做基准评估。

选择兼容 LeRobot 数据格式是个务实的决定:这样重建产出的数据可以直接喂给社区已有的训练代码,不需要为每个仿真器单独写数据转换。

7. 总结与后续计划

我们把从手机视频到仿真场景的完整流程实现为端到端自动化流水线,让"构建仿真场景"这件事从数周、数万元的量级降低到 30-60 分钟。

后续的技术方向包括支持含人体动作的动态场景重建、集成更多仿真器、以及提升大规模场景的支持能力。

相关实现已作为在线服务部署,感兴趣的话可以在 智匠云 上实际跑一遍看看效果。也欢迎在评论区讨论技术细节,特别是如果你在 3DGS 转仿真器格式这一步有不同的做法。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐