Lucida:手持拍一段房间视频,怎么变成机器人能逐个操作的仿真场景?
把真实房间搬进机器人仿真,为什么第一步就崩?
想让机器人在你家客厅学会收拾桌面,最省事的办法不是让它真在客厅里练几千次,而是先在仿真里练熟了再上真机。可仿真里的“你家客厅”从哪来?理想答案很朴素:拿起手机绕房间拍一段视频,软件自动吐出一个虚拟副本,每件东西都被独立建好型、摆回原位,随时可以单独抓起、编辑、替换。这个问题有个名字:composable scene modeling(可组合场景建模),把真实室内场景恢复成完整、可编辑、且按观察排列的独立物体资产,让机器人仿真和具身 AI 拿到一份“物体可以逐个操作”的场景副本。
先澄清一个细节:输入不是随手录的片段,而是带位姿的 RGB-D 视频。你走动时,设备同时记录每一帧的拍摄位置和每个像素的深度,相当于给建模软件一本“我知道自己在哪、看到了多深”的素材册。
问题出在哪?处理这类任务的惯用流程是一条三段式管线:解析(parse),从视频里认出每个物体实例;生成(generate),为每个实例造出完整 3D 模型;放置(place),把模型放回它原来的位置。听起来天经地义,但 Lucida 的团队指着这条管线问了一个尴尬的问题:这三步各自预设了一个真实拍摄根本给不出的“理想输入”。
解析期望拿到精确的实例几何,清晰的掩码、干净的点云、没有歧义的布局。真实客厅给的是遮挡:桌腿被椅子挡住,物体边界模糊,两把一模一样的椅子让跨镜头的关联与去重频频出错。生成期望看到无遮挡的居中视图,或者干净的分割点云,而真实室内视频几乎给不出这两种输入。放置通常被化简为位姿估计,默认生成的资产与观测几何严丝合缝,实际生成的资产本来就偏离实物,深度再掺点噪声,位姿直接偏掉。
关键在这里:三步按固定顺序执行,任何一步的要求没被满足,后面全被拖累。有人想绕开管线做端到端联合预测,从一张图同时输出形状与位置,结果形状误差和位姿误差耦合在一起,错上加错。不是模型不够强,是每一步都在问视频拿不出的东西。这就是全篇要化解的矛盾。
这条路有人走过。2025 年已有工作从随手拍的 casual 视频直接重建场景与物体轨迹、进仿真训练抓取策略并部署到真机(ROSE 是代表),说明“把真实环境搬进仿真”正是当下活跃的战场。ROSE
于是问题变成:能不能不换流程,却让每一步只吃“真实拍摄真的给得出的东西”,把精度留给末尾?这就是 Lucida 的答案。Lucida
顺序不变、要求重分:精度凭什么能挪到流水线末端?
Lucida 的钥匙只有一句话:保持三段顺序不变,只重新分配每段的要求。论文的原话是 keeps this order but redistributes the requirements,保持这个顺序,但重新分配要求,让每一步只消费真实拍摄可靠提供的信息,精度在流水线末端达成,而不是在起点就被索要。“顺序不动”是刻意的:解析、生成、放置的分工有它存在的道理,错不在顺序,错在每一步向视频索要了它给不出的东西。论文没有给这一设计专设名词术语,本教程把它概括为需求重分配(requirement redistribution)。
真实拍摄到底可靠提供什么?答案是多视角证据:一段随手拍的视频虽然处处有遮挡,但几乎每个物体都会被不止一个角度看到。这一帧被挡住的半边,换一帧就露出来了。证据是碎片的、局部的,但数量充足、彼此可以交叉验证。整条管线就围绕这个事实改写要求:解析不求精确几何,只求证据可靠;生成不求无遮挡视图,只求能凭证据补全;放置不求资产与观测严丝合缝,只求能就地闭环对齐。Lucida
这套分工,和一个靠谱的 3D 建模师拿到实拍素材时的做法一模一样:先看一遍素材,记下房间里有哪几件东西、各自大概什么形状;再为每件东西建模型,或找现成的模型;最后把每个模型放进场景,对着观测一遍遍微调位置、朝向、大小,直到对得上为止。精度不是开工时就有的财产,是收尾时一次次对齐磨出来的。论文把系统命名为 Lucida,致敬的正是 camera lucida(投影描绘器),一种把真实场景投射到画纸上、让画家对着真实轮廓描线的绘图工具:以真实观测为准绳,最后才落笔成稿。
这条“精度要求带”被画成了示意图,三段模块下方拖着一条带子,前两段几乎空白,只在放置一段被填满:

图注:示意图:解析、生成、放置三个环节下方拖着一条“精度要求带”,前两段几乎空白,只在放置环节被填满。它画的就是需求重分配:精度不要求在起点给足,而在末端由闭环补上。
再看 Lucida 自己的总览图,顺序确实没动,变的只是每段吃什么:

图注:Lucida 方法总览:带位姿的观测先被解析成物体中心的场景图,每个节点挂多视角证据与粗略 3D 估计;再逐物体合成完整图像、提升为 3D 资产;最后 GizmoAct 闭环操作 gizmo 精修旋转、平移与各向异性缩放,直到判定对齐。放置好的资产构成可编辑的场景重建。Lucida
好,那每一步具体怎么“只吃可靠信息”?先看第一段,解析。
解析:怎么把一段杂乱视频,变成一本每件物品都带证据的账本?
解析的输出不是点云,也不是网格,而是一张场景图:节点是物体实例,边是物体之间的空间关系,比如支撑、包含、相邻。更关键的是,每个节点都挂着一叠证据束(evidence bundle),论文记作 $E_o$。这叠证据包含五样东西:这个物体在多帧里的观测视图 $V_o$,掩码与检测框 $M_o$,部分点云 $P_o$,一个代表性的 3D 框 $b_o$,以及它的类别名或一句指向它的描述 $c_o$。简单说,每个物体在账本里挂着一份档案,下游模块只消费这份档案,不再回头翻原始视频。
这个设计第一次兑现了那把钥匙:解析不再要求精确几何,只要求“证据够可靠”。哪怕某个物体的几何只露出半边,只要跨帧证据一致、能交叉验证,这一项就过关。
账本是怎么记出来的?流程分四步,每步都刻意只依赖真实视频能给出的东西。第一步是几何感知的关键帧选择。视频动辄成百上千帧,逐帧处理既慢又冗余,这一步要挑出“拍得最不重复”的少数帧。两帧视角重叠太多,证据就重复;隔得太久,物体可能已经换位。选择标准同时看两帧的共视几何和时间间隔,保证选出的关键帧分布均匀、几何冗余最小。
第二步,在关键帧上认出物体。VLM 识别实例,3D 检测器(论文这一步用的是 Boxer)提出候选框,再按语义与几何一致性把跨帧的框归组,形成每个候选实例的初始证据。
第三步是物体中心的全序列证据整合,也是与既有流水线分道扬镳的一步。先在所有关键帧里选一个代表性的 3D 框;把代表框投影回每一帧,用投影区域引导逐帧检测;再用视频分割与跟踪模型 SAM 2 把物体传播到相邻帧,扩充证据;最后拿扩充后的证据反推 3D 框,并与代表框、观测几何逐层验证,只保留说得通的证据进账本。
第四步,关系感知精修。跨物体比较外观与几何,纠正错误的合并与分裂;某个静置物体找不到有效支撑、看起来像悬浮时,去额外视图里搜索缺失的支撑物,经多视图几何验证后补进账本。
对照既有的检测基线,差别一目了然。Meta 的 Boxer 走的是逐帧做 2D 检测、再提升成 3D 框、最后跨帧融合的路子:

图注:Boxer 的算法总览:输入带位姿与内参的图像(可选深度),经开词 2D 检测与 BoxerNet 提升,输出类无关的 metric 3D 定向框再跨帧融合。这是“逐帧检测再融合”范式的代表。Boxer
AI2 等机构的 WildDet3D 则是另一类代表,单帧可提示检测,给文本、点或框,它当场输出一个 3D 框:

图注:WildDet3D 的总览:单张 RGB 图像加可选深度,接受文本、点点击、框三种提示,由一个统一模型直接输出完整 3D 边界框。它代表“单帧 promptable”检测范式。WildDet3D
两者都属于“先逐帧猜,再把独立的猜测拼起来”。Lucida 的回应出现在结果里。在自建的 R2S-Scene 基准上,场景级检测用 class-agnostic mAP(类无关平均精度)衡量,只看预测的 3D 框与真实框重叠够不够,不问类别。这项指标从 Boxer 的 0.351 涨到 0.592,提升约 69%;同样只从关键帧提示出发,WildDet3D 的对应值是 0.125。Boxer WildDet3D Lucida
第一步到这里就完了:账本记下了每一件东西,但档案里的视图还带着遮挡,物体不完整。下一步,生成。
生成:被遮挡的另一半,怎么补成完整可编辑的资产?
仿真要能单独抓起一把椅子,账本里那半张椅子图是不够的,它需要一把完整的、孤立的、无遮挡的 3D 椅子。生成模块做的第一件事叫 amodal 补全,把只露出半边的物体,合成一张完整、孤立、无遮挡的物体图像。大白话说,就是让编辑模型把看不见的那半边“画”出来。
补全不是凭空想象。这一段的编排再次践行“只吃可靠证据”:先从证据束里挑出少量可靠且互补的视图,要求物体可见度高、与代表 3D 框几何一致、视点与遮挡各有不同;用 Set-of-Mark 标记法在图上标出目标物体;VLM 把选出的视图组织成一张 anchor(锚定图)和若干 references(参考图),并产出一条补全指令;图像编辑模型照指令合成完整图像;最后用 image-to-3D 模型把图像提升为完整的 3D 资产。论文正文点名的提升模型是 Seed3D 2.0;图像编辑模型和预训练 VLM 用的什么型号,论文没有具名,只表示这类补全能力已经变得可行。
需求重分配在这里第二次落地:生成模块同样不要求输入精确几何,只要求从证据里挑互补视图、补出看不到的那半边、再提升成完整资产。每个物体独立成资产,可编辑性由此而来。
对照轴的另一端是“一次性生成”路线,不解析、不闭环。Meta 的 SAM 3D 用单张图加掩码,直接生成每个物体的形状、纹理和布局:

图注:SAM 3D 的生成架构:几何模型先预测粗形状与布局,再交给纹理与精修模型补充高分辨率细节和纹理,从单张图一次性输出整场景。它没有解析,也没有闭环。SAM 3D
上海交大的 SceneGen 更彻底,单次前馈就输出多个资产和它们的相对位置,甚至为“位置”专门配了预测头:

图注:SceneGen 的架构:单张场景图加掩码,经编码、局部与全局注意力整合,由解码器与位置头一次前馈输出多个 3D 资产和相对位置。位置是预测出来的,不是闭环修出来的。SceneGen
SceneGen 这处设计有个反常点:它已经意识到放对位置是难点,专门内置了位置预测头,还加了碰撞损失,但它输出的位置是一次成型的,错了没人纠正。这个代价在评测章会看得非常清楚。
资产到手,可它该在哪、面朝哪、多大?最后一步,放置。
放置:放着精确算式不用,为什么让模型亲手拖 gizmo 对齐?
到这里,故事出现最反直觉的一步。视觉里把物体放回原位的标准做法是位姿估计:把对齐当成一个几何目标,用数值优化反复迭代,直到合成渲染和观测的差异最小。NVIDIA 的 FoundationPose 是这条路线的代表,做法叫 render-and-compare(渲染对比),全局撒一批候选位姿,逐个精修、打分,选出最优。判据是几何差异算出来的,对齐与否由外部公式说了算。FoundationPose
Lucida 的 GizmoAct 却放着公式不用,把放置重写成一局多轮 GUI 游戏。gizmo(操作手柄)是 3D 建模软件里那个红绿蓝三轴手柄,拖拽它就能移动、旋转对象。GizmoAct 的策略是一个 VLM,它每轮读一张渲染出来的画面,发出一条编辑指令,环境执行后重新渲染,再进入下一轮。整个状态只有 9 个自由度:中心点位置、旋转、加各向异性缩放。
模型每轮看到的画面是刻意搭出来的,五个要素各管一件事。指令块写明调整目标和参照线索;主视图把原始画面和叠加渲染并排,渲染里包括当前位姿的资产、标明边界与尺度的黄色 3D 框、以及标出物体局部坐标系的 gizmo;辅助视图补充多视角证据;沿局部轴的正交视图支持精细微调。还有一处细节最妙:在模型被场景点云遮挡的表面叠加半透明绿色,相当于直接告诉模型“这一面藏在东西后面”。

图注:GizmoAct 的单轮观测与交互轨迹。(a) 一次观测由指令块、叠加渲染的主视图、半透明遮挡绿标、辅助视图与正交视图组成;(b) 一次 rollout 中,策略发出错误编辑(红叉)后从结果状态恢复(绿勾)。对齐与否,由模型自己喊停。Lucida
动作空间极简,核心只有两个。update_pose 做增量编辑,旋转、平移、缩放都以当前物体尺寸为单位表达,不猜绝对数值;stop 是自停止判定,模型自认对齐够了就停。扩展动作处理大的旋转残差:switch_obs 换一组观察视角,permute_axis 一次把物体重新定向到 24 种合法朝向之一。编辑是增量和可逆的,发错一步会立刻在画面上暴露,模型可以看见并纠正。GizmoAct 的每一轮就是这样一个闭环:
放进一个能想象的场景:一盏台灯摆在桌上,渲染里它明显戳出了桌面边缘,绿色遮挡层暴露了深度矛盾。模型发一句“往左平移两厘米”,画面更新;再发一句“绕竖直轴转 8 度”,直到它自己觉得严丝合缝,喊 stop。对齐不是算出来的,是一轮轮看出来的。
为什么绕道 GUI 反而比直接算位姿可靠?因为放置难的根源是“对齐判定”没有可靠的外部标尺。资产与实物本来就有偏差,数值优化的误差函数容易卡在局部最优,而“看起来对齐了吗”这种判断,恰恰是渲染图上直接可见的。绿标让深度矛盾无处可藏,多视图让朝向一目了然。这是需求重分配在末端的收口:精度由这个闭环兜底,不再指望公式在起点就算准。Lucida
训练上,先用合成专家轨迹做 SFT(监督微调),再用 GRPO 强化学习把策略引向主初始化器 Boxer 位姿输出的误差分布。RL 相对纯 SFT 的收益很直观:在 110 个困难物体上,旋转误差从 45.19 度压到 20.98 度。
三个模块齐了。整条管线到底比基线强多少?“精度在末端等到了”这句话,需要三类任务、三个评测集来验证。
三个评测集、三类任务:精度真的在末端等到了吗?
评测设计得很讲究,因为单一基准证明不了“真实杂乱捕获”这个主张。Lucida 用了三个数据集,覆盖两种采集设备、三种真值来源。R2S 是论文自建的真实室内基准,R2S-Scene 含 9 个真实房间场景,R2S-Object 含 125 个物体、64 个类别。外部评测集有两个。CA-1M 是目前最大的激光级室内 3D 检测数据集,标注是类无关、近乎穷尽的,平均每段视频约 125 个物体,高密度遮挡是常态。CA-1M Aria Digital Twin(ADT)来自 Meta 的 Aria 眼镜,含 200 段真实活动序列、两个室内场景,自带物体 6DoF 真值和逐帧合成渲染,把评测设备从手持 iPad 扩展到了头戴眼镜。ADT

图注:CA-1M 的标注方式。上图是静止 FARO 激光扫描仪视角的全景,叠加了大量 3D 框;下图是同一场景的手持捕获帧,标注被像素级渲染到每一帧。激光级精度加上穷尽类无关标注,让它的全量评测协议格外苛刻。CA-1M
三类任务各有一个代表指标。场景级检测看 class-agnostic mAP;位姿估计看 ADD-SB@0.05,ADD-SB 衡量预测物体表面与真实表面平均差多少毫米,@0.05 表示误差小于物体直径 5% 的物体占比;场景重建看 scene F-Score,把重建表面放进 0.1 米阈值内与真实扫描比对重合率。核心数字放在一张表里:
| 任务(基准) | 指标 | 最强基线 | Lucida |
|---|---|---|---|
| 场景级 3D 检测(R2S-Scene) | class-agnostic mAP | Boxer 0.351 | 0.592 |
| 物体位姿估计(CA-1M) | ADD-SB@0.05 | RecGen 57.8% | 83.4% |
| 物体位姿估计(R2S-Object) | ADD-SB@0.05 | RecGen 79.2% | 92.0% |
| 场景重建(R2S-Scene) | scene F-Score | SAM 3D 0.794 / SceneGen 0.351 | 0.924 |
这些数字说明了三件事。检测上,0.351 到 0.592 的提升说明围绕物体假设组织全序列证据,确实赢过了逐帧猜测再融合。位姿上,CA-1M 的 ADD-SB@0.05 从 57.8% 到 83.4%,意味着误差小于物体直径 5% 的物体比例提高了 25 个百分点以上,从略过半数的物体直接跳到超过八成,定向框 3D IoU 也从 0.434 提到 0.607。ADT 给出同类提升,说明这套流水线不挑采集设备。重建上,0.924 对 0.794 和 0.351 的差距已经很大,更关键的是跨视点一致性:

图注:场景级重建的定性对比。每个场景展示多视图捕获、扫描参考视图与评估实例,以及从主、侧、顶三个视点渲染的 SceneGen、SAM 3D 与 Lucida 重建结果。跨视点一致性是“放对位置”而非“生成得像”的直接证据。Lucida
同一个重建从主、侧、顶三个方向看都严丝合缝,说明不是碰巧生成得像,而是真的放对了。Lucida
消融实验进一步定位了每个设计的贡献。把几何感知关键帧选择换成均匀采样,mAP 从 0.597 掉到 0.516,是所有组件里降幅最大的;去掉全序列证据整合,mAP 掉到 0.535;去掉关系感知精修,掉到 0.526。组合起来正好印证主线:每一步都在把“可靠证据”四个字落到实处。
边界同样清楚。论文自己点名的局限有两条:解析阶段漏检的物体,后面的生成和放置无论如何也找不回来;agentic 闭环目前只覆盖放置这最后一步,把闭环扩展到整条流水线是明确的未来方向。加上这些事实:GizmoAct 的 VLM 与图像编辑模型未具名;截至本文写作,代码与 R2S 数据尚未公开,项目页标注为 draft。动态物体、更大规模场景、VLM 放置策略的跨域泛化、与真实机器人的闭环衔接,都还悬而未决。
与 ROSE 放在一起看,分叉更分明:ROSE 重建场景、物体和轨迹,是为了训练可部署的抓取策略,产出物是策略;Lucida 重建可编辑的逐物体资产并用闭环放置对齐,产出物是可逐个操作的场景副本本身。一个以任务轨迹为中心,一个以场景可组合性为中心。
Lucida 真正想说的是,别让每一步都逞强。让视频把它拿得出手的多视角证据交出来,把“完美”留给末端那个看得见、摸得着、错了能改的闭环。仿真场景的精度,就该放在它最能被把关的地方:最后一步。
想深入可以读原文:Lucida: Parse, Generate, and Place for Composable Real-to-Sim Scene Modeling,arXiv:2608.30821
参考文献
- Lucida: Parse, Generate, and Place for Composable Real-to-Sim Scene Modeling(arXiv:2608.30821)· https://arxiv.org/abs/2608.30821
- Boxer: Robust Lifting of Open-World 2D Bounding Boxes to 3D(arXiv:2604.05212)· https://arxiv.org/abs/2604.05212
- SAM 3D: 3Dfy Anything in Images(arXiv:2511.16624)· https://arxiv.org/abs/2511.16624
- Cubify Anything: Scaling Indoor 3D Object Detection (CA-1M)(arXiv:2412.04458)· https://arxiv.org/abs/2412.04458
- WildDet3D: Scaling Promptable 3D Detection in the Wild(arXiv:2604.08626)· https://arxiv.org/abs/2604.08626
- SceneGen: Single-Image 3D Scene Generation in One Feedforward Pass(arXiv:2508.15769)· https://arxiv.org/abs/2508.15769
- FoundationPose: Unified 6D Pose Estimation and Tracking of Novel Objects(arXiv:2312.08344)· https://arxiv.org/abs/2312.08344
- ROSE: Reconstructing Objects, Scenes, and Trajectories from Casual Videos for Robotic Manipulation(OpenReview VfPdSyJG3v)· https://openreview.net/forum?id=VfPdSyJG3v
- Aria Digital Twin (ADT): A New Benchmark Dataset for Egocentric 3D Machine Perception(arXiv:2306.06362)· https://arxiv.org/abs/2306.06362