论文笔记(一百三十二)RoboPearls: Editable Video Simulation for Robot Manipulation
RoboPearls: Editable Video Simulation for Robot Manipulation
文章概括
引用:
@inproceedings{tao2025robopearls,
title={RoboPearls: editable video simulation for robot manipulation},
author={Tao, Tang and Zhang, Likui and Wen, Youpeng and Zhang, Kaidong and Bian, Jia-Wang and Zhou, Xia and Yan, Tianyi and Zhan, Kun and Jia, Peng and Wu, Hefeng and others},
booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
pages={10118--10129},
year={2025}
}
Tao, T., Zhang, L., Wen, Y., Zhang, K., Bian, J.W., Zhou, X., Yan, T., Zhan, K., Jia, P., Wu, H. and Lin, L., 2025. RoboPearls: editable video simulation for robot manipulation. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 10118-10129).
主页: < >
原文: https://openaccess.thecvf.com/content/ICCV2025/papers/Tao_RoboPearls_Editable_Video_Simulation_for_Robot_Manipulation_ICCV_2025_paper.pdf
代码、数据和视频: < >
系列文章:
请在 《 《 《文章 》 》 》 专栏中查找
宇宙声明!
引用解析部分属于自我理解补充,如有错误可以评论讨论然后改正!
ABSTRACT
通用机器人操作策略的发展已经取得了显著进展,这主要得益于来自多样化环境的大规模示范数据。 然而,采集真实世界示范数据的高成本和低效率,阻碍了数据获取规模的进一步扩大。 虽然现有的仿真平台能够为机器人学习提供可控环境,但如何弥合仿真到真实之间的差距仍然是一个挑战。 为了解决这些挑战,我们提出了 RoboPearls,这是一个面向机器人操作的可编辑视频仿真框架。 RoboPearls 建立在 3D Gaussian Splatting,三维高斯泼溅,3DGS 的基础上,能够从示范视频中构建照片级真实感、视角一致的仿真环境,并支持广泛的仿真操作算子,包括多种物体操作;这些能力由作者提出的模块提供支持,例如 Incremental Semantic Distillation,增量语义蒸馏,ISD,以及 3D regularized NNFM Loss,三维正则化 NNFM 损失,3D-NNFM。 此外,通过引入大型语言模型,LLMs,RoboPearls 能够以用户友好的方式自动化仿真生成流程,具体方式是对灵活的用户指令进行理解和执行。 进一步地,RoboPearls 使用视觉语言模型,VLM,来分析机器人学习过程中出现的问题,从而闭合仿真循环,以提升性能。 为了证明 RoboPearls 的有效性,作者在多个数据集和场景上进行了大量实验,包括 RLBench、COLOSSEUM、Ego4D、Open X-Embodiment 以及真实机器人实验;这些实验展示了该方法令人满意的仿真性能。 更多信息可以在作者的项目页面中找到。
Introduction
机器人学领域在通用机器人操作策略的发展方面已经取得了快速进展 [4, 20, 34, 40, 65]。 这些策略依赖于来自多样化环境的大规模示范数据,使机器人能够获得广泛的操作技能。 然而,由人类专家执行并采集的大规模真实世界示范数据 [22, 33, 52] 成本极高且效率低下,这使得扩大数据规模变得非常困难。 虽然已有若干仿真平台 [23, 38, 45, 47] 为开发先进的机器人学习方法提供了可控且多样化的环境,但仿真到真实之间的差距,sim-to-real gap,仍然是一个重要障碍。 此外,为特定场景采集或复现数据也面临相当大的挑战。 例如,如果想在某个特定场景中把一个杯子替换成另一种颜色,即使是在仿真中,也需要重新编写仿真环境的程序。
另一方面,3D Gaussian Splatting,三维高斯泼溅,3DGS [32] 的出现展示了令人印象深刻的重建质量,同时具有较高的训练效率和渲染效率。 具体来说,3DGS 使用一组三维高斯来建模环境,这些三维高斯带有可学习参数,从而为场景提供了一种显式且灵活的表示方式。 这种灵活性也允许对每一个高斯进行单独编辑。 总体而言,3DGS 的显式表示、高质量重建能力和实时渲染能力,为从示范视频中构建照片级真实感仿真环境提供了新的可能性,并可用于机器人策略学习。 尽管已有许多工作 [8, 31, 76, 85] 探索了 3DGS 的重建和编辑能力,并展示了一些简单演示,但如何开发一个系统性流程,将这些技术整合到机器人领域,特别是用于扩展机器人仿真的能力,仍然是一个尚未充分探索的方向。 这就好像以往的工作已经发现了一个个单独的操作算子,也就是“珍珠”,但还没有把它们打磨并串联成一个面向机器人的完整解决方案,也就是“制作一条闪亮的珍珠项链”。
图 1. RoboPearls,一个用于机器人操作的可编辑视频仿真框架。RoboPearls 从演示视频中重建具有语义特征的逼真场景。然后,借助各种仿真算子,RoboPearls 利用多个 LLM 代理将用户命令处理成特定的编辑功能。此外,RoboPearls 还利用 VLM 分析学习问题并生成相应的仿真需求,以提升机器人性能。
在本文中,我们提出了 RoboPearls,这是一个可编辑视频仿真框架,如图 1 所示,它相当于一条已经完整组装好的、面向机器人操作的“珍珠项链”。 具体而言,该框架建立在 3DGS 之上,从而保证它能够从示范视频中构建照片级真实感且视角一致的仿真环境。 为了增强高斯表示,使其像“产出珍珠的牡蛎”一样能够支持广泛的仿真操作算子,也就是“珍珠”,作者对其进行了扩展:一方面加入时间传播机制,用于捕捉场景的时空动态;另一方面嵌入从 SAM [35] 中蒸馏出的语义特征,从而赋予系统场景理解能力。 其次,RoboPearls 对各种仿真操作算子,也就是“珍珠”,进行了细化和打磨,以覆盖多样化的日常场景。 例如,它能够改变物体的颜色或纹理,移除物体,并利用外部数字资产插入新的物体。 此外,它还支持物理仿真。 这些功能由一些经过精心设计且并不简单的模块提供支持,包括 Incremental Semantic Distillation,增量语义蒸馏,ISD 模块,以及 3D regularized NNFM Loss,三维正则化 NNFM 损失,3D-NNFM。 第三,与严重依赖大量人工干预的传统仿真不同,用户可以使用简单的自然语言命令与 RoboPearls 交互,从而生成所需要的仿真内容。 具体来说,为了把单个“珍珠”串联起来,作者利用多个定制化的大语言模型,LLM,智能体作为“线”,从而自动化并简化仿真生成流程。 这些 LLM 智能体会把用户的仿真需求分解为更简单、更具体的命令,并将这些命令对应到具体的编辑功能上。 最后,为了完成这条“珍珠项链”,作者引入视觉语言模型,VLM,作为“扣环”来闭合仿真循环;它能够识别并分析机器人学习中的问题,并生成相应的仿真需求,以提升机器人性能。
通过在多个数据集和场景上进行全面评估,作者验证了 RoboPearls 在模拟多样化场景以及实现更准确、更鲁棒机器人操作方面的有效性。 具体来说,RoboPearls 在 Colosseum 基准测试 [55] 上表现出显著提升,在所有扰动条件下平均成功分数提高了 +17.5,这突出了它在多样化环境条件下的泛化能力。 此外,RoboPearls 在 RLBench 基准测试 [29] 上达到了最先进的性能,其中在 Stack Cups 和 Put in Cupboard 两个任务上的成功分数分别提升了 +16.4 和 +23.0。 此外,RoboPearls 在真实世界机器人场景中也持续表现良好,包括作者自己的真实机器人环境、Ego4D [22] 以及 Open X-Embodiment 数据集 [52]。 总体而言,本文的贡献如下:
-
我们提出了 RoboPearls,这是一个自动化的、可编辑的视频仿真框架,它利用协作式 LLM 智能体和 VLM 服务于机器人操作。
-
我们提出了一套全面的仿真操作算子,其中包含设计良好的模块,例如 ISD 模块和 3D-NNFM 损失,用以覆盖多样化场景。
-
我们通过在多个数据集和场景上进行大量实验,从定量和定性两个方面验证了 RoboPearls 的有效性。
2. 相关工作
2.1. 机器人操作仿真
为了推动通用机器人操作策略的发展,研究者已经开发了各种基于物理的仿真平台,以提供一种高效且可扩展的方式来扩大具身数据规模。 基于 Isaac Sim [51]、PyBullet [12] 和 MuJoCo [66] 等物理引擎,研究者已经开发出许多机器人操作环境和多样化技能,涵盖了刚体操作 [3, 19, 77, 79],以及用于模拟可变形机器人、物体和流体的软体操作 [60, 69, 72, 78]。 此外,一些工作还建立了标准化的仿真基准测试 [23, 29, 36, 87]。 这些工作显著降低了对昂贵真实世界数据采集的依赖。 然而,尽管已有大量工作试图解决这一问题 [6, 26, 67, 88, 94],仿真到真实之间的差距,sim-to-real gap,仍然是一个重大挑战。 另一方面,Real2Sim2Real 方法试图解决 Sim2Real 差距;对于基于 RGB 图像的机器人操作策略而言,将其从仿真迁移到真实世界仍然具有挑战性 [13, 49]。 已有若干先前工作使用域随机化 [15, 28] 和域适应 [2, 92] 技术,探索了基于 RGB 图像的机器人操作策略的 Sim2Real 迁移问题。 然而,这些方法通常需要针对具体任务进行调参和环境工程设计,而这在传统物理仿真器中既耗费大量人工,又很难精确实现。 在本文中,我们提出了 RoboPearls,这是一个面向机器人操作的自动化、可编辑视频仿真框架;它能够构建照片级真实感、视角一致的仿真环境,并提供广泛的仿真操作算子,使用户只需使用自然语言就能够生成复杂仿真。
2.2. 基于 3D Gaussian Splatting 的场景仿真
场景重建与场景仿真一直是一个长期存在的研究问题。 目前,3D Gaussian Splatting,三维高斯泼溅,3DGS [32] 通过显式表示和高保真实时渲染,极大地改变了这一领域,并在很大程度上扩展了 NeRFs [48] 的能力。 除了快速渲染之外,3DGS 的显式表示还促进了一系列下游任务的发展,包括动态重建 [11, 73, 84]、几何编辑 [9, 17, 74]、物理仿真 [80] 以及场景理解 [25, 57, 85]。 最近,一些研究开始探索将 3DGS 用于机器人操作任务。 例如,GaussianGrasper [93] 和 GraspSplats [30] 利用 Feature Splatting [57] 来支持通过语言进行抓取查询,而 RoboGS [42] 则集成了 3D Gaussian kernels,三维高斯核,以增强机器人手臂数字资产的表示能力。 尽管已有工作探索了 3DGS 的重建和编辑能力,并在机器人领域展示了一些玩具示例或简单应用,但开发一个系统性流程,用于扩展机器人仿真系统并提升机器人性能,仍然是一个尚未充分探索的方向。
3. RoboPearls
3.1. 概述
图 2. (a) RoboPearls 扩展了 Gaussian representation,高斯表示,用于从示范视频中重建带有语义特征的动态场景。 (b) RoboPearls 包含并细化了多种仿真操作算子。 (c) RoboPearls 利用多个 LLM agents,大语言模型智能体,根据用户的自然语言命令,自动化并简化仿真生成流程。
如图 2 所示,RoboPearls 首先从示范视频中重建带有语义特征的动态场景,第 3.2 节。 然后,借助各种仿真操作,第 3.3 节,RoboPearls 利用大型语言模型,LLMs,来处理用户命令,第 3.4 节。 此外,RoboPearls 使用视觉语言模型,VLM,来提升机器人性能,第 3.5 节。
3.2. 动态语义增强高斯
作者想把一段机器人示范视频,变成一个“动态、可分物体、可编辑”的3DGS场景。
给定示范视频后,我们首先使用高斯表示重建场景,以构建照片级真实感仿真,并进一步加入时间信息和语义信息,从而支持广泛的仿真操作算子。
3D Gaussian Splatting,三维高斯泼溅。 3DGS 使用多个高斯基元,以集合 G {G} G 的形式显式表示三维场景。 每一个高斯基元 g i g_i gi 由参数 θ i = ( μ i , c i , Σ i , σ i ) \theta_i=(\mu_i,c_i,\Sigma_i,σ_i) θi=(μi,ci,Σi,σi) 表示,其形式为:
g i ( x ) = e − 1 2 ( x − μ i ) T Σ i − 1 ( x − μ i ) g_i(x)=e^{-\frac{1}{2}(x-\mu_i)^T\Sigma_i^{-1}(x-\mu_i)} gi(x)=e−21(x−μi)TΣi−1(x−μi)
其中, μ i \mu_i μi、 c i c_i ci、 σ i σ_i σi 分别表示位置、颜色和不透明度, Σ i \Sigma_i Σi 表示协方差矩阵;该协方差矩阵由旋转和尺度得到:
Σ = R S S T R T \Sigma=RSS^TR^T Σ=RSSTRT
构造高斯的三维形状。
然后,高斯基元会被投影到二维平面上,其投影后的二维协方差矩阵表示为:
Σ ′ = J W Σ W T J T \Sigma'=JW\Sigma W^TJ^T Σ′=JWΣWTJT
三维空间里的高斯椭球,经过相机投影以后,会变成图像上的一个二维椭圆斑点。三维高斯在世界里是一个小椭球; 相机拍它时,它会变成图像上的一个二维椭圆区域。
其中, J J J 是投影变换的雅可比矩阵, W W W 是观测矩阵。 最终像素颜色 C C C 可以通过 α \alpha α-blending,透明度混合,进行渲染:
C = ∑ i = 1 N p i ( x ′ ) α i c i ∏ j = 1 i − 1 ( 1 − p j ( x ′ ) α j ) (1) C=\sum_{i=1}^{N}p_i(x')\alpha_i c_i\prod_{j=1}^{i-1}(1-p_j(x')\alpha_j) \tag{1} C=i=1∑Npi(x′)αicij=1∏i−1(1−pj(x′)αj)(1)
一个像素的颜色,不是由一个高斯决定的,而是由沿着这条相机射线上的多个高斯共同决定的。
通俗地说:如果前面的高斯很不透明,后面的高斯就看不见;
如果前面的高斯很透明,后面的高斯还能透出来。
其中,最终不透明度 α i \alpha_i αi 表示为:
α i = σ i e − 1 2 ( x ′ − μ i ′ ) T Σ i ′ − 1 ( x ′ − μ i ′ ) \alpha_i=σ_i e^{-\frac{1}{2}(x'-\mu_i')^T{\Sigma_i'}^{-1}(x'-\mu_i')} αi=σie−21(x′−μi′)TΣi′−1(x′−μi′)
这里, x ′ x' x′ 和 μ i ′ \mu_i' μi′ 是投影空间中的坐标, p i ( x ′ ) p_i(x') pi(x′) 表示第 i i i 个高斯在像素 x ′ x' x′ 处的概率密度。
Dynamic Reconstruction. 动态重建。 原始的 3DGS 表示缺乏对动态场景的时间建模,因此不足以应对真实世界机器人环境。 为了解决这一问题,作者使高斯基元能够随时间传播,从而捕捉场景的时空动态。 具体来说,作者遵循 4DGS [84] 的做法,将时间维度和空间维度同等对待,通过将位置扩展为:
μ = ( μ x , μ y , μ z , μ t ) \mu=(\mu_x,\mu_y,\mu_z,\mu_t) μ=(μx,μy,μz,μt)
并将协方差矩阵 Σ \Sigma Σ 扩展为一个四维椭球,来构建动态高斯模型。其中:
S = diag ( s x , s y , s z , s t ) S=\text{diag}(s_x,s_y,s_z,s_t) S=diag(sx,sy,sz,st)
而 R R R 是一个四维旋转矩阵,它可以分解为一对各向同性旋转。 随后,动态场景中的每一帧都可以被表示为在时间戳 t t t 条件下的三维静态空间中的一个视图,于是公式 (1) 可以扩展为:
C = ∑ i = 1 N p i ( t ) p i ( x ′ ∣ t ) α i c i ∏ j = 1 i − 1 ( 1 − p j ( t ) p j ( x ′ ∣ t ) α j ) (2) C=\sum_{i=1}^{N}p_i(t)p_i(x'|t)\alpha_i c_i\prod_{j=1}^{i-1}(1-p_j(t)p_j(x'|t)\alpha_j) \tag{2} C=i=1∑Npi(t)pi(x′∣t)αicij=1∏i−1(1−pj(t)pj(x′∣t)αj)(2)
Semantic Gaussians. 语义高斯。 为了实现图像场景仿真,我们需要将观测到的场景分解为不同的组成部分,以便后续进行操作。 基于已有的 3DGS 场景理解工作 [25, 57, 85],作者为上述动态高斯基元 g i g_i gi 增加了一个新参数,即 identity encoding,身份编码, e i e_i ei。这是一个低维可学习嵌入,使得高斯可以按照物体实例进行分组。 这些身份编码通过利用 SAM [35] 预测出的二维掩码进行监督,而 SAM 已经展示了令人印象深刻的开放世界分割能力。 类似于公式 (2) 中 RGB 颜色的渲染方式,动态场景中的二维身份特征 E E E 可以渲染为:
E = ∑ i = 1 N p i ( t ) p i ( x ′ ∣ t ) α i e i ∏ j = 1 i − 1 ( 1 − p j ( t ) p j ( x ′ ∣ t ) α j ) (3) E=\sum_{i=1}^{N}p_i(t)p_i(x'|t)\alpha_i e_i\prod_{j=1}^{i-1}(1-p_j(t)p_j(x'|t)\alpha_j) \tag{3} E=i=1∑Npi(t)pi(x′∣t)αieij=1∏i−1(1−pj(t)pj(x′∣t)αj)(3)
用二维 mask 来监督三维高斯的身份编码 e i e_i ei。
然后,作者额外使用一个线性层 f f f,并通过 s o f t m a x ( f ( E ) ) softmax(f(E)) softmax(f(E)) 函数进行身份分类。
Overall Optimazition. 整体优化。 因此,作者使用一组以时间为条件、并经过分组的高斯来表示动态场景,以便进行操作,同时继承了 SAM 强大的零样本场景理解能力。 对于场景重建,作者使用 MSE 渲染损失 L 2 d \mathcal{L}_{2d} L2d。 对于语义学习,作者采用标准交叉熵损失 L s e m \mathcal{L}_{sem} Lsem。 遵循 [85],作者还使用 KL 散度损失 L 3 d \mathcal{L}_{3d} L3d 来强制三维空间一致性。该损失约束距离最近的前 K K K 个高斯的身份编码在特征空间中保持接近,从而缓解物体内部的遮挡问题。 整体优化目标为:
L = λ 2 d L 2 d + λ s e m L s e m + λ 3 d L 3 d (4) L=\lambda_{2d}L_{2d}+\lambda_{sem}L_{sem}+\lambda_{3d}L_{3d} \tag{4} L=λ2dL2d+λsemLsem+λ3dL3d(4)
其中, λ \lambda λ 是权重系数,用于平衡各个损失项。
最后作者要同时训练三个东西:
- 场景渲染要像真实视频;
- 语义分割要和 SAM mask 对齐;
- 三维空间中相邻高斯的身份要一致。
做了三件事:
- 用 3DGS 重建真实视频场景;
- 用 4DGS 加入时间,让场景可以动态变化;
- 给每个高斯加身份编码 e i e_i ei,让高斯可以按物体分组。
3.3. 可编辑视频仿真
在上一节已经得到“动态 + 语义分组”的高斯场景之后,作者现在要说明: 怎样对这个高斯场景进行编辑,从而生成新的仿真视频或新的机器人示范场景。
在完成动态语义增强高斯的训练与分组之后,我们对各种仿真操作算子进行细化和打磨,以覆盖多样化场景。 详细的操作算子框架见附录。
Incremental Object Retrieval. 增量式物体检索。 为了根据用户命令执行仿真,第一步是检索目标物体。 由于 SAM 并不直接支持语言提示,因此作者采用 G-DINO [39] 来识别用户所需的二维物体,并获得其对应的掩码 ID。 随后,这个掩码 ID 会与作者渲染得到的分割掩码进行匹配。 然而,由于用户需求中的物体粒度几乎是无限的,例如用户可能想检索炉灶上的小按钮,而训练时使用的二维掩码可能并没有覆盖这些细粒度物体部件,因此会导致检索失败。 尽管近期方法 [37, 54] 尝试使用 SAM 的多层级掩码来表示小型、中型和大型物体层级,但这种方式仍然无法表示所有物体粒度,并且会增加语义增强高斯的训练成本。 为了解决这一问题,作者提出了 Incremental Semantic Distillation,增量语义蒸馏,ISD,用于将物体语义增量式地蒸馏到场景中。 具体来说,在检索到目标物体对应的高斯之后,作者会渲染二维物体掩码,并使用 G-DINO 判断它是否对应用户真正想要的目标物体,例如小按钮,还是错误地检索到了整个物体,例如整个炉灶。 如果目标物体没有被正确识别,作者会进一步使用边界框作为提示输入给 SAM,以获得更细粒度的分割结果。 然后,作者只使用新的细粒度标签,对之前检索到的三维物体高斯的身份编码 e e e 进行微调,从而增量式地蒸馏新的物体语义。 由于只需要更新相关目标的身份编码,因此整个过程仍然具有很高的效率。
Incremental Object Retrieval:增量式物体检索
这一小节是在解决一个很现实的问题:
用户说“我要操作某个物体”,系统怎么知道用户说的是哪个物体?
比如用户说:
把炉灶上的小按钮按下去。
系统首先要找到“小按钮”。 但是问题来了: SAM 本身不能直接理解语言。 SAM 擅长的是:
给它图像,它可以分割很多区域。
但是 SAM 不擅长:
用户说“小按钮”,它直接理解并找到小按钮。
所以作者使用了 G-DINO。 G-DINO 的作用是:
根据语言提示,在图像中找到对应物体的二维区域。
比如输入:
small button
G-DINO 可能输出一个 bounding box 或 mask,表示按钮在哪里。 然后作者再把这个二维检测结果和自己渲染出来的高斯分割 mask 匹配,找到对应的三维高斯。
1. 为什么普通检索会失败?
这里最重要的问题是:物体粒度不一致。 什么叫物体粒度? 就是用户想找的东西可能很大,也可能很小。 比如:
用户命令 粒度 找炉灶 大物体 找炉灶上的旋钮 中等部件 找旋钮上的小按钮 小部件 找按钮上的红色标记 更细粒度部件 但是训练语义高斯时,SAM 可能只分割出了:
整个炉灶。
而没有单独分出:
小按钮。
于是系统会出现这种情况: 用户想要“小按钮”,但是系统检索到了“整个炉灶”。 这就是作者说的:
用户需求中的物体粒度几乎是无限的。
也就是说,用户可能要找任意层级的东西,而训练时不可能提前把所有层级都标好。
2. ISD:增量语义蒸馏到底是什么?
作者提出了 Incremental Semantic Distillation,ISD,增量语义蒸馏。 它的核心思想是:
一开始语义分割不够细没关系。 用户需要更细的物体时,再临时把这个更细的语义学进 3DGS 里。
也就是说,它不是一开始就把所有东西都训练好,而是:
用到哪里,细化哪里。
这就是“增量式”。
3. ISD 的流程
比如用户说:
找炉灶上的小按钮。
系统流程是:
第一步,G-DINO 根据语言找到二维图像里可能的小按钮区域。
第二步,系统拿这个区域去匹配已经渲染出来的高斯分割 mask。
第三步,如果匹配结果正确,说明找到了目标物体。
第四步,如果匹配结果错误,比如系统找到了整个炉灶,而不是小按钮,那么就继续细化。
第五步,把 G-DINO 得到的 bounding box 输入给 SAM,让 SAM 在这个框里面分割出更细的区域。
第六步,用这个新的细粒度 mask,只微调相关物体高斯的身份编码 e e e。
注意这里非常关键:
作者不是重新训练整个 3DGS。 作者只是更新相关目标的 identity encoding,身份编码。
所以它效率比较高。
4. 这一步的意义
这一步让系统可以处理更细粒度的用户命令。 比如原来系统只知道:
这是炉灶。
经过 ISD 后,系统可以进一步知道:
这是炉灶上的按钮。
对于机器人操作来说,这很重要。 因为机器人命令通常不是:
操作整个场景。
而是:
操作某一个具体物体,甚至某个物体部件。
例如你的任务:
把红色草莓推开,橙色碗推开,然后抓取黄色胡萝卜。
如果一开始系统只分出了“桌面物体区域”,那就不够。
它必须进一步知道:
用户说的东西 系统要找到的高斯 红色草莓 草莓对应的高斯 橙色碗 碗对应的高斯 黄色胡萝卜 胡萝卜对应的高斯 这就是增量式物体检索的作用。
Object Removal. 物体移除。 三维物体移除可以通过直接删除该物体对应的三维高斯来实现。 然而,在真实生活中,如果视频只从少数几个视角拍摄,由于背景观测不足,移除物体后可能会在背景中留下一个模糊空洞。 为了解决这一问题,作者首先使用 G-DINO [39] 检测这个“模糊空洞”,然后在每个视角上应用 LAMA [63] 进行图像修复。 然后,作者在删除区域附近生成新的高斯,并仅使用修复后的视角对这些新引入的高斯进行微调,从而确保缺失背景能够被无缝重建。
Object Removal:物体移除
这一节是在讲:
怎么从 3DGS 场景里删除一个物体?
因为上一节已经知道哪些高斯属于哪个物体,所以删除物体最直接的方法是:
把这个物体对应的三维高斯删掉。
比如草莓对应的高斯集合是:
G strawberry G_\text{strawberry} Gstrawberry
那删除草莓就是:
G = G − G strawberry G=G-G_\text{strawberry} G=G−Gstrawberry
从原理上说很简单。
1. 为什么删除物体后会出现空洞?
问题在于: 真实视频通常只有有限视角。 比如一个碗放在桌子上,它挡住了后面的桌面区域。 在原始视频里,相机根本没有看到碗下面的桌面长什么样。 所以当你把碗删掉后,系统不知道:
碗背后的背景应该是什么样?
于是画面中可能出现模糊区域、破洞、奇怪纹理。 这就是作者说的:
背景观测不足,移除物体后可能会留下模糊空洞。
2. 作者怎么修复这个空洞?
作者用了一个两步策略。
第一步,用 G-DINO 检测被删除后产生的“模糊空洞”。 也就是说,找到哪里不自然。
第二步,对每个视角使用 LAMA 做图像修复。 LAMA 是一种图像 inpainting 方法。 它的作用是:
根据周围图像内容,把缺失区域补出来。
比如删除碗后,LAMA 可以根据周围桌面的纹理,补出碗下面原本看不见的桌面。
3. 为什么还要生成新的高斯?
只在二维图像上修复还不够。 因为作者的最终目标是三维场景编辑。 如果只修复某一个视角的二维图像,那么换一个视角看,可能又坏了。 所以作者还会:
在删除区域附近生成新的高斯,并用修复后的视角去微调这些新高斯。
这样做的目的是:
把二维修复结果重新蒸馏回三维高斯场景里。
所以物体移除不是简单的“删掉高斯”就结束,而是:
- 删除目标物体高斯;
- 找到空洞;
- 用 LAMA 修复二维图像;
- 在三维空间生成新背景高斯;
- 用修复图像优化这些新高斯。
最终效果是:
物体被删除了,背景也被补全了,看起来比较自然。
Object Insertion. 物体插入。 三维物体插入可以通过插入对应的三维高斯来实现。 然而,这一过程还需要解决若干挑战。 第一个挑战是如何获得目标物体的高斯表示。 幸运的是,大规模高斯数据集,例如 ShapeSplat[44] 和 uCO3D[41],已经包含了大量常见和不常见物体,这些数据集可以作为作者的初始数据库,使系统能够直接检索和使用其中的物体。 此外,已有工作探索了通过单次前向传播过程,从文本描述或单视角图像中高效生成三维内容的方法,例如 GRM[82] 和 LGM[64],这为获取所需物体提供了一种灵活方式。 第二个挑战出现在从外部来源插入物体时。 即使已经适当地调整了插入物体的位置和大小,插入物体仍然可能与原始场景之间存在明显的颜色反差,从而显得不真实。 为了解决这一问题,作者采用 libcom [50],这是一个综合性的图像合成库,包含图像融合以及标准/绘画风格图像协调等多种算法;作者用它来优化渲染图像,以确保周围场景和新插入物体之间的颜色一致性。 随后,作者使用优化后的渲染图像,对插入物体高斯的 spherical harmonic,球谐函数,SH 参数进行微调,这通常只需要几分钟。
Object Insertion:物体插入
这一节是在讲:
怎么往已有 3DGS 场景里加一个新物体?
理论上很简单:
把新物体对应的一组三维高斯插入原场景。
比如原场景是:
G scene G_\text{scene} Gscene
新物体是:
G new G_\text{new} Gnew
插入后就是:
G edited = G scene ∪ G new G_\text{edited}=G_\text{scene}\cup G_\text{new} Gedited=Gscene∪Gnew
但是实际有两个难点。
1 难点一:新物体的高斯从哪里来?
作者说有几种来源。
第一种:从已有大规模高斯数据集中检索。 比如:
- ShapeSplat;
- uCO3D。
这些数据集里面已经有很多物体的三维高斯表示。 比如杯子、碗、玩具、工具、家具等等。 系统可以直接从数据库里找一个合适的物体插进来。
第二种:从文本或单张图片生成三维物体。
作者提到 GRM 和 LGM 这类方法。 它们的作用是:
给一个文本描述或者单张图像,生成一个三维高斯物体。
比如输入:
a yellow carrot
系统可以生成一个胡萝卜的三维表示。 这样就不完全依赖固定数据库。
2. 难点二:插进去以后颜色不协调
即使几何位置放对了,新物体也可能看起来很假。 比如原场景光线偏暖,新插入物体光线偏冷。 或者原场景是昏暗厨房,新物体像是在摄影棚里打光拍出来的。 这样就会出现明显的颜色反差。 所以作者使用 libcom。 libcom 是图像合成和图像协调工具库。 它的作用是:
让新插入的物体和原场景在颜色、光照、风格上更一致。
3. 为什么要微调 SH 参数?
3DGS 里面颜色不是只有一个简单 RGB。 它通常用 spherical harmonic,球谐函数,SH 参数 来表示视角相关颜色。 通俗理解:
一个物体从不同方向看,颜色和亮度可能不一样。 SH 参数可以表达这种随视角变化的颜色效果。
作者用 libcom 优化渲染图像之后,还会用这些优化后的图像去微调插入物体高斯的 SH 参数。 也就是说:
不是改物体的几何形状,而是改它的外观颜色参数。
这样新插入物体会更像真的存在于这个场景里。
Object Modification. 物体修改。 我们支持多种修改操作。
- 尺寸和位置。 对于三维物体的尺寸修改,作者通过相应地缩放目标高斯的属性来实现。 在实际操作中, μ i \mu_i μi 会被直接缩放,而 r i r_i ri 和 s i s_i si 需要在对数空间中通过加法调整进行缩放。 三维物体的位置修改是物体移除和物体插入的组合。 具体来说,作者首先将目标物体从其原始位置移除,然后再将其插入到期望的位置。
- 颜色。 对于三维物体的颜色修改,作者调整物体高斯的 spherical harmonic,球谐函数,SH 参数,以保留已经学习到的三维场景几何结构。 然而,简单地改变颜色可能会导致严重失真,因为这种做法没有考虑亮度变化。 为此,作者谨慎地采用 CIELAB 色彩空间,使系统能够在保留原始光照效果的同时修改颜色。
- 风格和纹理。 对于三维物体的风格或纹理修改,已有一些工作 [9, 17, 74] 探索使用扩散模型,例如 IP2P [5],对渲染图像进行迭代编辑,同时更新三维重建结果。 然而,图像扩散模型本身并不会天然地强制保证多视角一致性,而多视角一致性对于防止伪影非常关键。 此外,这种迭代优化过程非常缓慢,需要进行多次完整的三维优化,因此训练耗时且难以控制。 为了在确保多视角一致性的同时,有效地将目标纹理融入渲染图像中,作者采用了 ARF [90] 中的 nearest neighbor feature matching,最近邻特征匹配,NNFM 损失。 具体来说,给定一张渲染图像和一张参考图像,作者从 VGG16 中提取它们的特征,即 F r F_r Fr 和 F t F_t Ft,然后最小化渲染图像中每个像素特征与参考图像中最近邻特征之间的余弦距离:
L NNFM = 1 N ∑ i min j ( F r ( i ) , F t ( j ) ) L_\text{NNFM}=\frac{1}{N}\sum_i\min_j (F_r(i),F_t(j)) LNNFM=N1i∑jmin(Fr(i),Ft(j))
其中, N N N 是渲染图像中的像素数量。 虽然原始的 NNFM 损失能够有效地将复杂的高频视觉细节迁移到三维场景中,但它的局限在于只能对整个场景进行风格化。 作者将其扩展为一种三维正则化 NNFM 损失,具体包括两点:第一,只优化目标三维物体高斯的 SH 参数,以保留背景的空间细节;第二,使用原始重建损失对优化过程进行正则化,从而进一步防止在物体边界处由于 SH 参数细化而产生伪影。 在实际操作中,作者渲染目标三维物体的掩码 M 3 d M_{3d} M3d,在该掩码区域内施加 NNFM 损失,同时在掩码外区域强制施加重建损失:
L 3D-NNFM = L NNFM M 3 d + L gs M 3 d ‾ (5) L_\text{3D\text{-}NNFM}=L_\text{NNFM}^{M_{3d}}+L_\text{gs}^{\overline{M_{3d}}} \tag{5} L3D-NNFM=LNNFMM3d+LgsM3d(5)
Object Modification:物体修改
这一部分是在讲:
已有物体怎么改?
作者支持三类修改:
- 尺寸和位置;
- 颜色;
- 风格和纹理。
1. 尺寸和位置修改
**尺寸修改:**如果要把一个物体变大或变小,本质上就是缩放它对应的高斯。 高斯有位置、旋转、尺度等属性。 作者说:
- μ i \mu_i μi 直接缩放;
- r i r_i ri 和 s i s_i si 在对数空间中用加法调整。
这里可以理解为:
μ i \mu_i μi 控制高斯中心位置,所以直接按比例放大或缩小。
s i s_i si 控制高斯大小,所以也要跟着缩放。
但是尺度参数通常以 log 形式存储,所以缩放时用加法更稳定。例如把物体放大 2 倍: 原来物体中心附近的高斯位置、大小都要一起扩大。 否则只改位置不改大小,物体会散掉。
位置修改: 作者说位置修改是:
物体移除 + 物体插入。
也就是说:
- 先从原位置删除这个物体;
- 再把它插入到新位置。
比如把碗从桌子左边移动到右边: 不是让二维图像上的碗平移,而是:
把碗对应的三维高斯集合从原三维位置移除,再变换到新的三维位置。
这比 2D 图像编辑更强,因为它可以保持三维一致性。
2. 颜色修改
颜色修改不是改几何,而是改高斯的 SH 参数。 作者说:
只改 SH 参数,可以保留已经学到的三维几何结构。
也就是说,物体形状不变,只改变外观颜色。
为什么不能直接改 RGB?
因为真实颜色里面包含光照。 比如一个红色苹果,亮面是浅红色,暗面是深红色。 如果你直接把所有颜色都改成蓝色,可能会把亮暗关系破坏掉。 结果就是:
物体看起来像被涂了一层假颜色,光照不自然。
所以作者使用 CIELAB 色彩空间。 CIELAB 的特点是可以把亮度和颜色分开。 简单理解:
通道 含义 L 亮度 a,b 颜色信息 所以修改颜色时,可以尽量保留 L 亮度信息,只改变颜色通道。 这样可以做到:
颜色变了,但原来的光照效果还在。
例如把红色草莓改成蓝色时,仍然保留草莓表面的高光和阴影。
3. 风格和纹理修改
这一部分最复杂。 作者想解决的问题是:
怎么给一个三维物体换纹理或风格?
比如:
- 把杯子改成木纹;
- 把碗改成陶瓷纹理;
- 把盒子改成金属材质;
- 把胡萝卜表面换成某种参考图像风格。
为什么不用普通扩散模型直接改?
有些方法用 IP2P 这类图像扩散模型编辑渲染图像。 流程大概是:
- 渲染一个视角;
- 用扩散模型编辑这张图;
- 用编辑后的图反过来优化 3DGS;
- 换另一个视角再来一遍;
- 多次迭代。
但是作者指出两个问题。
第一个问题:多视角不一致。
扩散模型每次改的是二维图像。
它可能在正面生成一种纹理,在侧面生成另一种纹理。
于是三维物体换视角后会出现闪烁、错位、伪影。
第二个问题:速度慢。
因为要反复进行图像编辑和三维优化,耗时很长。
所以作者不用这种复杂的扩散迭代方式,而是采用 ARF 里的 NNFM 损失。
NNFM 损失是什么?
NNFM 是: nearest neighbor feature matching,最近邻特征匹配。 它的目的不是让两张图像像素一模一样,而是让它们在深层特征上风格相似。 作者做法是:
- 渲染当前物体图像;
- 准备一张参考纹理图像;
- 用 VGG16 提取两张图的特征;
- 对渲染图像中的每个像素特征,在参考图像中找最相似的特征;
- 让它们的距离尽量小。
公式是:
L NNFM = 1 N ∑ i min j ( F r ( i ) , F t ( j ) ) L_\text{NNFM}=\frac{1}{N}\sum_i\min_j(F_r(i),F_t(j)) LNNFM=N1i∑jmin(Fr(i),Ft(j))
这里:
符号 含义 F r F_r Fr 渲染图像的 VGG 特征 F t F_t Ft 参考图像的 VGG 特征 i i i 渲染图像中的某个特征位置 j j j 参考图像中的某个特征位置 min j \min_j minj 找参考图像中最相似的特征 N N N 渲染图像中的像素或特征数量 通俗理解:
渲染图像里的每个位置,都去参考图像里找一个最像的纹理特征,然后让自己变得更像它。
这样可以把参考图像的纹理迁移到目标物体上。
1. 原始 NNFM 的问题
原始 NNFM 通常会风格化整个场景。 比如你想只改变碗的纹理,但它可能把桌子、背景、机器人也一起改了。 这对机器人场景不好。 因为我们通常只想改某个目标物体。
2. 作者怎么改进 NNFM?
作者提出了一个三维正则化的 NNFM 损失。 核心有两点: 第一,只优化目标物体高斯的 SH 参数。 也就是说:
只改目标物体外观,不改背景,不改几何。
第二,在目标物体外部区域使用原始重建损失。 这样可以防止物体边界附近出现伪影。 公式是:
L 3D-NNFM = L NNFM M 3 d + L gs M 3 d ‾ L_\text{3D-NNFM}=L_\text{NNFM}^{M_{3d}}+L_\text{gs}^{\overline{M_{3d}}} L3D-NNFM=LNNFMM3d+LgsM3d
这里:
符号 含义 M 3 d M_{3d} M3d 目标三维物体渲染出来的 mask L NNFM M 3 d L_\text{NNFM}^{M_{3d}} LNNFMM3d 在目标物体区域内施加纹理迁移损失 L gs M 3 d ‾ L_\text{gs}^{\overline{M_{3d}}} LgsM3d 在目标物体外区域保持原始重建效果 M 3 d ‾ \overline{M_{3d}} M3d 非目标区域 也就是说:
物体内部:允许变风格、变纹理。
物体外部:必须保持原样。
物体边界:通过重建约束减少伪影。这比直接用扩散模型编辑整张图更稳定。
Physics Simulation. 物理仿真。 借助已经良好重建的高斯表示,作者还通过将物理属性整合到高斯基元中来实现物理仿真。 这些物理参数包括材料密度 ( ρ ) (\rho) (ρ)、杨氏模量 ( E ) (E) (E) 和泊松比 ( P ) (P) (P)。 遵循 PhysGaussian [80],作者可以手动为目标物体设置物理参数,并使用物理仿真器 Material Point Method,物质点法,MPM [27],来预测它们的运动。 此外,为了减少对人工参数赋值的依赖,作者结合 GPT-4V [53] 和一个材料库 [81],自动为物体分配相应的物理属性,从而增强物理仿真。
Physics Simulation:物理仿真
最后一部分是在讲:
作者不只是让高斯看起来真实,还想让它具备一定物理行为。
他们给高斯加入物理属性。 包括:
参数 含义 通俗理解 ρ \rho ρ 材料密度 物体有多重 E E E 杨氏模量 物体有多硬 P P P 泊松比 物体受压后横向怎么变形 然后使用 MPM,Material Point Method,物质点法 进行物理仿真。 MPM 可以处理一些复杂物体的运动和变形,比如:
- 软体;
- 弹性体;
- 颗粒;
- 流体状材料;
- 可变形物体。
1. 这里的高斯和物理仿真是什么关系?
这里需要非常小心理解。 3DGS 本身主要是视觉表示。 它负责:
这个东西看起来像什么。
MPM 负责:
这个东西受力以后怎么动、怎么变形。
作者把物理参数赋给高斯之后,就可以让物理仿真器预测这些高斯的运动。 也就是说:
高斯不再只是固定的视觉点,而可以跟随物理模拟发生位移和变形。
2. GPT-4V 在这里干什么?
手动给物体设置物理参数很麻烦。 比如系统看到一个物体,需要知道它大概是什么材料。 如果是橡皮泥,它应该软。 如果是金属块,它应该硬。 如果是海绵,它应该可压缩。 作者结合 GPT-4V 和材料库,自动推测物体材料属性。 比如看到一个橡胶球,系统可能推断:
属性 可能设置 材料 rubber 密度 对应橡胶材料库 杨氏模量 较低 泊松比 接近不可压缩材料 这样减少人工设置。
这节整体在讲什么?
这一节其实是在把 3DGS 变成一个可操作的仿真系统。 不只是:
我能重建一个视频。
而是:
我能编辑这个视频里的三维世界。
具体支持:
操作 方法 找目标物体 G-DINO + SAM + 高斯身份编码 细粒度找物体 ISD 增量语义蒸馏 删除物体 删除目标高斯 + LAMA 修复背景 + 新高斯补洞 插入物体 插入外部高斯物体 + libcom 颜色协调 + 微调 SH 改尺寸 缩放目标物体高斯参数 改位置 先移除再插入 改颜色 调整 SH 参数 + CIELAB 保留光照 改风格纹理 VGG 特征 + NNFM 损失 + 只优化目标物体 物理运动 给高斯加物理参数 + MPM 仿真
放到你的机器人场景里怎么理解?
假设你的任务是:
把红色草莓推开,橙色碗推开,然后抓取黄色胡萝卜。
这个系统大概可以这样用。
第一步,重建真实示范视频。 得到一个动态 3DGS 场景。
第二步,给物体分组。 系统知道:
物体 对应高斯 草莓 G strawberry G_\text{strawberry} Gstrawberry 碗 G bowl G_\text{bowl} Gbowl 胡萝卜 G carrot G_\text{carrot} Gcarrot 机器人 G robot G_\text{robot} Grobot 背景 G background G_\text{background} Gbackground 第三步,用户说:
推开红色草莓。
系统用 G-DINO 找到“red strawberry”,再匹配对应高斯。
第四步,用户说:
推开橙色碗。
系统找到碗的高斯。
第五步,用户说:
抓取黄色胡萝卜。
系统找到胡萝卜高斯。
第六步,可以对场景做编辑。
比如:
- 换一个草莓位置;
- 多加一个障碍物;
- 删除一个物体;
- 插入一个新的碗;
- 改变碗的颜色;
- 改变胡萝卜纹理;
- 生成新的训练视频;
- 用物理仿真预测物体被推后的运动。
所以它的价值在于:
用少量真实视频,生成更多变化丰富的机器人训练场景。
这节最核心的逻辑链
可以把这一节理解成一条完整流水线:
第一步:用户提出编辑需求
比如:
add a cup on the table
remove the bowl
make the carrot larger
change the strawberry to blue
push the soft object第二步:系统找到目标物体
通过:
G-DINO + SAM + semantic Gaussians
找到对应的高斯集合。
第三步:执行编辑操作
根据需求执行:
- 删除;
- 插入;
- 缩放;
- 平移;
- 改颜色;
- 改纹理;
- 加物理属性。
第四步:重新渲染视频
因为底层是 3DGS,所以可以从任意视角重新渲染。
第五步:得到新的仿真视频或训练数据
最终可以用于机器人策略训练、数据增强、仿真交互等任务。
这一节容易误解的地方
误解一: 它不是普通的视频剪辑
它不是在二维视频上 P 图。 它是在三维高斯场景里编辑物体。 所以它比普通视频编辑更强。 因为它可以保持:
- 三维位置;
- 多视角一致性;
- 遮挡关系;
- 物体级操作。
误解二: 它不是纯物理引擎
虽然最后提到了 MPM 物理仿真,但整篇这一节的主体仍然是:
基于 3DGS 的视觉可编辑仿真。
它和 PyBullet、MuJoCo、Isaac Sim 这种刚体物理引擎不完全一样。
PyBullet 更关心:
碰撞、力、摩擦、关节、刚体动力学。
这里的 3DGS 更关心:
真实视觉、场景编辑、多视角渲染、物体语义分组。
MPM 则补充了一部分物理运动能力,尤其适合可变形材料。
误解三: 插入物体不只是“放进去”
插入物体至少要解决三件事:
- 物体的三维高斯表示从哪里来;
- 插入位置和尺度是否合理;
- 颜色、光照、风格是否和原场景一致。
所以作者才要用:
- ShapeSplat / uCO3D 找物体高斯;
- GRM / LGM 生成新物体;
- libcom 做颜色协调;
- 微调 SH 参数让视觉更自然。
误解四: 改纹理不只是改颜色
颜色修改和纹理修改不是一回事。
颜色修改:
把红色变成蓝色,主要改颜色分布。
纹理修改:
把光滑表面变成木纹、金属纹、陶瓷纹,涉及高频细节。
所以纹理修改需要 NNFM 这种基于深层特征的损失。
这一节和机器人训练有什么关系?
这一节本身不一定直接训练策略。 它主要提供一种数据生成能力:
通过编辑真实示范视频对应的三维高斯场景,生成更多新场景、新视频、新物体配置。
对机器人训练来说,它可以解决数据少的问题。 例如原来只有一个示范:
机器人推开草莓,抓胡萝卜。
通过这一节的方法,可以生成很多变体:
变体类型 示例 改物体位置 草莓在左边、右边、中间 改物体数量 多加一个障碍物 改物体颜色 红草莓变成蓝草莓 改背景 换桌面、换厨房环境 改目标物体 胡萝卜换成香蕉 改材质 硬物体变软物体 改动态 物体被推后的运动不同 这样训练出来的策略更可能适应真实世界变化。
最后一句话总结
这一段讲的是: 作者在动态语义高斯场景的基础上,设计了一套可编辑视频仿真操作。系统可以根据语言找到目标物体,并对三维高斯场景中的物体进行删除、插入、移动、缩放、改颜色、改纹理,以及加入物理属性进行运动仿真。它的目的不是简单 P 视频,而是把真实示范视频变成一个可操作、可编辑、可生成新训练数据的三维仿真世界。
更简单地说:
3.2 是把视频变成“动态可分物体的 3DGS”。
3.3 是在这个 3DGS 上做“找、删、加、改、动”。
最终目标是生成更多真实感强、可控性高的机器人仿真视频和训练数据。
3.4. 使用 LLM 智能体进行自动仿真
核心是在说:
前面 3.3 已经做出了很多“仿真编辑工具”,比如找物体、删除物体、插入物体、改颜色、改位置、改纹理、渲染新视角等。 但是这些工具如果都要人手动调用,会很麻烦。 所以作者用多个 LLM Agent,也就是多个大语言模型智能体,把这些工具自动串起来,让用户只需要输入一句自然语言命令,系统就能自动完成复杂的视频仿真编辑。
此前,我们已经精心设计并细化了各种仿真操作算子。 为了连接这些组件,我们将 LLM 智能体作为“线”,用于自动化并简化仿真生成流程。 然而,直接使用单个 LLM 智能体很难处理多步推理以及多个操作算子之间的交叉引用。 为了解决这一问题,作者部署了多个协作式 LLM 智能体,每个智能体都配备了独特的提示词和定制化工具集。 具体来说,每个智能体首先利用自身专门设计的 LLM 提示词,解释并将用户的仿真命令转换为结构化配置,然后调用对应的工具集来生成用户期望的仿真结果。 下面,作者概述这些参与其中的智能体:
为什么需要 LLM 智能体?
假设用户输入一句话:
把离高压锅最近的红色杯子变成蓝色,然后在它旁边放一个黄色苹果,最后从右侧视角渲染视频。
这句话里面其实包含很多子任务:
- 找到高压锅;
- 找到所有红色杯子;
- 判断哪个杯子离高压锅最近;
- 把这个杯子颜色改成蓝色;
- 找一个黄色苹果的 3D 高斯资产;
- 如果数据库没有黄色苹果,就生成一个;
- 把苹果插入到杯子旁边;
- 优化插入后的场景,让颜色和光照自然;
- 调整相机到右侧视角;
- 渲染最终视频。
这些事情不是一个简单函数能直接完成的。 所以作者说:
直接使用单个 LLM Agent 很难处理多步推理和多个操作算子之间的交叉引用。
也就是说,一个智能体既要理解用户命令,又要找物体,又要调工具,又要管理资产,又要优化渲染,任务太复杂,容易混乱。 于是作者采用了 multi-agent,多智能体协作。 每个智能体只负责一类事情。
这就像一个机器人仿真团队:
智能体 类似团队角色 Simulation Manager Agent 项目经理 Grounding Agent 找物体的人 Scene Operation Agent 执行编辑的人 3D Asset Management Agent 管资产的人 Scene Refiner Agent 做质量检查和优化的人 Scene Renderer Agent 负责拍摄和渲染的人
Simulation Manager Agent. 仿真管理智能体。 该智能体充当团队领导者,将用户命令分解为简化且具体的自然语言指令,并将任务分派给其他智能体。 为了实现命令分解,作者为该智能体中的 LLM 设计了一系列提示词。 这些提示词的核心思想是:描述仿真操作算子集合,明确总体目标,并通过示例定义输出形式。
Simulation Manager Agent:仿真管理智能体
这个智能体是整个系统的“总指挥”。 它的作用是:
把用户的一句复杂命令,拆成多个简单、明确的子任务,然后分派给其他智能体。
比如用户输入:
把红色草莓推开,在桌子上加一个蓝色杯子,然后从俯视角渲染视频。
仿真管理智能体会拆成:
- Locate red strawberry;
- Move red strawberry away;
- Retrieve or generate blue cup;
- Insert blue cup on table;
- Refine edited scene;
- Render from top-down view。
它自己不一定亲自完成所有操作,而是负责:
谁该做什么,顺序是什么,结果怎么传递。
所以它像一个 workflow planner,工作流规划器。
Grounding Agent. 定位智能体。 该智能体处理形如 Locate ,即“定位某个物体”的提示,并使用物体检索算子。 返回结果包括掩码 ID,以及目标物体高斯的位置。 对于像“红色杯子”这样的简单查询,该智能体会直接检索对应物体。 对于像“离高压锅最近的杯子”这样的复杂查询,LLM 会执行一个多步过程:它首先识别高压锅和所有杯子,然后判断它们之间的空间关系,从而检索出用户想要的目标物体。
Grounding Agent:定位智能体
这个智能体负责回答:
用户说的那个物体到底在哪里?
也就是从语言命令中找到对应物体。 它处理的是类似:
Locate
这样的任务。 例如:
Locate red cup
Locate carrot
Locate the cup closest to the pressure cooker它会调用前面 3.3 讲的 物体检索算子,也就是 G-DINO、SAM、semantic Gaussian 分组这些工具。 返回结果包括:
- 目标物体的 mask ID;
- 目标物体对应的高斯集合;
- 目标物体在三维场景中的位置。
简单查询
比如:
找红色杯子。
这个比较简单。 Grounding Agent 直接调用检索工具,找到红色杯子对应的 mask 和高斯。
复杂查询
比如:
找离高压锅最近的杯子。
这个就不是简单检测一个物体。 它需要多步推理:
第一步,找到高压锅。
第二步,找到所有杯子。
第三步,计算每个杯子和高压锅之间的三维距离。
第四步,选择最近的那个杯子。
所以 Grounding Agent 不只是“识别物体”,它还要理解空间关系。 这对机器人任务很重要。 因为机器人命令经常包含空间描述:
- 左边的杯子;
- 靠近碗的胡萝卜;
- 被草莓挡住的目标物体;
- 离机器人最近的物体;
- 桌子右上角的盒子。
Scene Operation Agent. 场景操作智能体。 场景操作智能体处理诸如 Change color of ,即“改变某个物体颜色”这样的操作提示,并应用第 3.3 节中提出的合适仿真操作算子,以实现用户期望的仿真结果。
Scene Operation Agent:场景操作智能体
这个智能体负责真正执行编辑操作。 它处理的是类似:
Change color of
Remove
Insert
Move
Resize这样的命令。 它会调用第 3.3 节中的各种操作算子。 比如:
用户命令 调用的操作 删除杯子 Object Removal 插入苹果 Object Insertion 改变草莓颜色 Color Modification 把碗变大 Size Modification 把胡萝卜移动到右边 Position Modification 给物体换纹理 Texture Modification 所以 Scene Operation Agent 是真正干活的执行者。 不过它通常需要 Grounding Agent 先告诉它:
要编辑的是哪个物体,对应哪些高斯。
比如: Grounding Agent 找到:
G strawberry G_\text{strawberry} Gstrawberry
Scene Operation Agent 才能执行:
把 G strawberry G_\text{strawberry} Gstrawberry 对应的 SH 参数改成蓝色。
3D Asset Management Agent. 三维资产管理智能体。 该智能体根据用户的具体要求组织和检索三维资产。 首先,它利用 LLM 理解用户命令,并通过匹配物体的颜色、类型等属性,从作者的高斯数据库中检索特定的三维物体。 如果无法找到匹配结果,该智能体会使用物体高斯生成模型来合成用户所需的物体,然后将其加入数据库中,以增强系统的可扩展性和多样性。 该数据库和高效生成流程已在第 3.3 节的物体插入部分进行了讨论。
3D Asset Management Agent:三维资产管理智能体
这个智能体主要负责:
系统需要插入新物体时,去哪里找这个物体的三维高斯资产?
比如用户说:
在桌子上放一个黄色香蕉。
系统需要一个“黄色香蕉”的 3D 高斯模型。 这时候 3D Asset Management Agent 会先去数据库里找。 数据库可能来自前面提到的:
- ShapeSplat;
- uCO3D;
- 其他高斯物体库。
它会根据用户描述匹配属性:
用户要求 检索条件 黄色香蕉 类型:banana;颜色:yellow 红色杯子 类型:cup;颜色:red 金属勺子 类型:spoon;材质:metal 小号蓝色碗 类型:bowl;尺寸:small;颜色:blue 如果数据库里有,就直接取出来。 如果数据库里没有,它会调用物体生成模型。 比如前面提到的 GRM、LGM 这类模型,从文本或单张图像生成三维高斯物体。 然后把生成的新物体加入数据库。 所以这个智能体的作用是:
让系统不只会编辑已有物体,还能不断扩展新物体资产。
Scene Refiner Agent. 场景优化智能体。 该智能体用于提升整体仿真质量。 由于每个智能体都是独立运行的,多个编辑操作累积起来可能会降低场景重建质量。 因此,作者会对所有被修改过的高斯执行最后的优化步骤,以确保整个仿真的真实感和一致性。
Scene Refiner Agent:场景优化智能体
这个智能体负责最后的质量提升。
为什么需要它? 因为多个操作连续执行后,场景可能会变得不自然。 比如:
- 删除一个杯子;
- 插入一个苹果;
- 改变苹果颜色;
- 改变桌子纹理;
- 调整灯光;
- 重新渲染。
每一步单独看可能还可以,但合起来之后可能出现问题:
- 物体边界有伪影;
- 新物体颜色和背景不协调;
- 光照不统一;
- 插入物体边缘发虚;
- 删除区域背景不自然;
- 多个高斯编辑后出现局部模糊。
所以 Scene Refiner Agent 会对所有被修改过的高斯做最后优化。 它的目的不是重新做整个系统,而是:
对编辑区域进行统一修正,让最终仿真视频更真实、更一致。
你可以把它理解成:
最后的修图师 / 质检员。
Scene Renderer Agent. 场景渲染智能体。 该智能体为渲染生成合适的相机外参。 首先,它利用 LLM 将用户的视角调整指令解释为相对相机参数,这些参数基于原始视角的位置和朝向生成。 然后,它返回具有用户期望视角的仿真图像。
Scene Renderer Agent:场景渲染智能体
这个智能体负责最终输出图像或视频。 用户可能会说:
从左侧视角看。
从俯视角看。
镜头往后退一点。
相机绕物体旋转一圈。
生成一个 close-up view。
用原始相机视角渲染。这些都涉及相机参数。
Scene Renderer Agent 的作用是:
把用户的视角语言转换成具体相机外参,然后渲染图像或视频。
所谓相机外参,就是相机的位置和朝向。 比如用户说:
从右侧看。
LLM 要把这句话翻译成:
相机相对于原始视角向右移动一定距离,并朝向目标物体。
用户说:
俯视角。
LLM 要翻译成:
相机移动到物体上方,并朝下看。
所以这个智能体负责最后的“拍摄”。
Overall Workflow. 整体流程。 所有定制化智能体按照一个顺序化流程协同工作,根据用户命令执行仿真: 仿真管理智能体通过向合适的智能体分派指令来主导整个流程。 首先,定位智能体识别相关物体和位置。 接着,场景操作智能体执行指定修改;如果需要新的资产,则可以由三维资产管理智能体提供辅助。 然后,场景优化智能体提升整体仿真质量,以确保一致性和真实感。 最后,场景渲染智能体生成并返回用户期望的视频输出。 各个智能体的详细提示词和工具集见附录。
整体流程怎么走?
整套系统可以这样理解:
第一步:用户输入自然语言命令
例如:
把离碗最近的红色草莓移除,在原位置放一个黄色苹果,然后从俯视角生成视频。
第二步:Simulation Manager Agent 拆任务
它会拆成:
- Locate bowl;
- Locate all red strawberries;
- Find the strawberry closest to bowl;
- Remove that strawberry;
- Retrieve or generate yellow apple;
- Insert yellow apple at removed position;
- Refine scene;
- Render from top-down view。
第三步:Grounding Agent 找物体
它找到:
- 碗的位置;
- 所有红色草莓的位置;
- 离碗最近的草莓;
- 该草莓对应的 mask ID;
- 该草莓对应的高斯集合。
第四步:Scene Operation Agent 执行编辑
它删除草莓对应的高斯。 然后在原位置插入黄色苹果高斯。
第五步:3D Asset Management Agent 提供新物体
如果数据库里有黄色苹果,就直接取。 如果没有,就生成黄色苹果高斯,并加入数据库。
第六步:Scene Refiner Agent 优化场景
它处理边界、颜色、光照、伪影,让编辑后的场景更自然。
第七步:Scene Renderer Agent 渲染视频
它根据“俯视角”生成相机外参,并输出最终视频。
总结
这一段讲的是:
作者把前面设计好的可编辑仿真操作算子,交给多个 LLM 智能体自动调度。用户只需要输入自然语言命令,仿真管理智能体会拆任务,定位智能体找物体,场景操作智能体执行编辑,三维资产管理智能体提供新物体,场景优化智能体提升真实感,场景渲染智能体输出最终视频。
3.5. 高效机器人学习
尽管机器人模型正在越来越大的数据集上进行训练,但它们在特定环境或特定数据集上仍然经常表现困难,因此需要人类专家主动识别失败情况,并检索或采集额外案例来增强机器人训练。 虽然作者提出的自动仿真框架有助于缓解数据采集方面的挑战,但当前方法仍然严重依赖人类专业知识,这限制了模型的学习和演化能力。 尽管已有一些先前工作 [14, 59],例如 RoboFail [59],探索了失败检测问题,但它们主要将失败推理视为一个二分类问题,缺乏深入的失败原因分析。 为克服这些局限,作者进一步利用近期发展起来且具备丰富知识的 Vision-Language Model,视觉语言模型,VLM,来替代人类专家,对机器人操作失败进行推理分析。 具体来说,作者使用 VLM 分析失败案例中的关键帧,并针对潜在失败原因提供详细解释,例如物体位置、颜色以及背景纹理等因素。 在识别出具体失败原因之后,作者进一步提示 VLM 以自然语言生成相应的仿真解决方案。 随后,这些文本指令会被输入到作者提出的自动仿真框架中,该框架会生成有针对性的仿真数据,以增强模型训练。 自动识别问题并生成仿真命令,使仿真循环得以闭合;这就像连接珍珠项链的“扣环”一样,将整个方法 RoboPearls 完整地连接起来,最终推动更高效、更鲁棒的机器人学习。
作者用 VLM 来分析机器人失败案例,不只是判断成功或失败,而是找出具体失败原因,例如物体位置、颜色、背景纹理、遮挡等。然后 VLM 根据失败原因自动生成自然语言仿真命令,把这些命令输入前面的自动仿真框架,生成针对性的训练数据,从而继续增强机器人模型。这样整个系统从“发现失败”到“生成补充数据”再到“提升模型”形成闭环。
4. 实验
在本节中,作者首先在第 4.1 节介绍实验设置。 然后,主要实验结果在第 4.2 节中呈现。 各个组件的分析在第 4.3 节中呈现。
4.1. 实验设置
作者在多个数据集和场景上进行了实验,包括 RLBench [29]、COLOSSEUM [55]、Ego4D [22]、Open X-Embodiment [52],以及真实世界机器人。 详细实现细节见附录。
4.2. 主要结果

Results on simulation datasets. 仿真数据集上的结果。 在表 1 中,作者展示了 COLOSSEUM 上 13 种扰动条件下的任务完成成功率,从而系统性评估方法在不同条件下的鲁棒性。 作者的方法 RoboPearls 在所有扰动条件下都表现出显著性能提升,相比 RVT 和 RVT2 的平均成功率分别提高了 17.5% 和 10.8%,这表明它能够鲁棒地应对环境变化,例如光照变化,以及物体层面的扰动,例如颜色变化。 此外,在表 2 中,作者报告了 RLBench 中若干具有挑战性的任务结果,用于评估一般机器人操作性能。 总体而言,RoboPearls 分别取得了 68.0%、78.0% 和 88.5% 的平均成功率,并相应地使基线模型提升了 5.6%、7.9% 和 4.7%。 这些在不同基准测试上的提升,突出了作者可编辑仿真框架的有效性;该框架利用多种操作算子,能够有效处理多样化场景。

如图 3(a) 所示,作者展示了两个生成动作序列的定性示例。 在右侧案例中,智能体被要求“将其他杯子堆叠到红色杯子上”。 结果表明,先前的智能体难以完成该任务,而 RoboPearls 能够准确识别每个杯子,并成功将它们堆叠到红色杯子上。 这一提升归因于作者方法的高效仿真能力,它使操作模型能够对多样化场景形成更准确的理解。

Results on real-world robot. 真实机器人上的结果。 在表 3 和图 3(b) 中,作者评估了 RoboPearls 在真实机器人系统上的性能,该系统基于 Kinova Gen3 机械臂构建。 如图所示,RoboPearls 能够成功执行真实世界任务,并表现出显著的泛化能力;相比之下,基线方法表现困难,这验证了作者方法在真实世界环境中的有效性。 关于实验设置和性能表现的更多细节,请参见附录和视频。

Results on real-world datasets. 真实世界数据集上的结果。 在图 4 中,RoboPearls 在真实世界数据集上使用多种操作算子时,能够稳定生成照片级真实感且视角一致的仿真结果,这些数据集包括 Ego4D 和 Open X-Embodiment 数据集。

4.3. 消融实验
作者进行了定量和定性的消融实验,以全面评估所设计模块的作用。
Quantitative ablations. 定量消融实验。 在表 4 中,作者首先通过将 RoboPearls 与 IP2P [5] 进行比较,验证 RoboPearls 具有视角一致的三维仿真能力;IP2P [5] 可以被视为二维图像空间中的仿真器。 尽管 IP2P 在某些情况下能够带来有限提升,但作者方法显著更优的结果证明了具有时空一致性的仿真方法的有效性。 此外,作者还验证了引入 VLM 的影响;VLM 能够高效分析学习中的问题,并生成相应的仿真需求,从而提升机器人性能。

Qualitative ablations. 定性消融实验。 在图 5 中,作者系统性地对仿真操作算子的关键设计进行了消融实验,包括: (a) 直接删除 vs. 图像修复与微调; (b) 直接插入 vs. 使用 libcom 进行优化并微调; (c) NNFM 损失 vs. 三维正则化 NNFM 损失; (d) RGB 色彩空间 vs. CIELAB 色彩空间; (e) 直接语义蒸馏 vs. 增量语义蒸馏。 视觉结果表明,作者的所有设计都有效地促进了照片级真实感仿真的构建。
5. 结论
在本文中,作者提出了 RoboPearls,这是一个面向机器人操作的自动化可编辑视频仿真框架。 借助高斯表示,RoboPearls 能够从示范视频中生成高度可适应且具有照片级真实感的仿真结果。 此外,RoboPearls 支持广泛的仿真操作算子,以覆盖各种场景;这些能力由精心设计的模块驱动,例如 Incremental Semantic Distillation,增量语义蒸馏,以及 3D regularized NNFM Loss,三维正则化 NNFM 损失。 为了进一步简化流程,RoboPearls 集成了 LLMs,大语言模型,以及 VLM,视觉语言模型,使用户只需使用自然语言命令就能生成复杂仿真,同时实现高级闭环仿真能力。 这些特性有助于为多样化机器人任务构建鲁棒的仿真。 在多个数据集上进行的大量实验表明,该框架具有有效的仿真能力,并显著提升了机器人性能。 总体而言,RoboPearls 朝着为机器人仿真提供一种可扩展、用户友好的解决方案迈出了重要一步。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)