【3D 物理布局生成】PHYSCENE: Physically Interactable 3D Scene Synthesis for Embodied AI

原文链接:https://physcene.github.io/assets/paper/CVPR24_PhyScene.pdf
项目链接:https://physcene.github.io
摘要
随着具身人工智能(Embodied Artificial Intelligence, EAI)研究的不断发展,业界对高质量、大规模交互式场景生成的需求日益增长。现有场景合成方法大多以生成场景的自然度与真实感为核心优化目标,但场景的物理合理性与交互属性尚未得到充分研究。为弥补这一研究缺口,本文提出PHYSCENE—— 一种专用于交互式 3D 场景生成的全新方法,该方法可生成布局符合真实规律、包含铰接式可活动物体、面向具身智能体定制的高物理交互性场景。本文以用于建模场景布局的条件扩散模型为基础,设计了全新的物理与交互引导机制,融合了物体碰撞约束、房间布局约束与物体可达性约束。大量实验结果表明,PHYSCENE 能够有效借助上述引导机制实现具备物理交互性的场景合成,性能大幅超越现有主流最优场景合成方法。研究证实,PHYSCENE 生成的场景在支撑具身智能体于交互环境中习得多样化技能方面具备显著潜力,能够进一步推动具身人工智能领域的研究发展。
一、方法框架总览
PHYSCENE是面向具身人工智能(Embodied AI)的物理可交互3D室内场景合成方法,核心设计是「条件扩散模型主干 + 物理引导的采样优化」,整体框架与图中三大模块一一对应:
- 去噪生成模块(Denoising Process):以户型平面图(Floor Plan)为条件,基于带注意力的U-Net扩散模型学习真实场景的布局分布,完成从随机噪声到合理场景布局的反向去噪过程。
- 物理引导模块(Physical Guidance):在扩散采样的每一步,从「物体碰撞避免、房间边界约束、智能体交互可达性」三个维度计算约束梯度,反向修正当前生成的布局,保证输出场景的物理合理性与交互可用性。
- 后处理模块(Postprocess):将生成的布局特征通过VAE形状编码器匹配3D资产库,把静态家具替换为带关节的可交互物体,最终输出完整的、可直接用于仿真的3D室内场景。
该方法的核心创新是将抽象的物理交互约束转化为扩散模型可优化的引导函数,在推理阶段逐步修正布局,同时解决了传统静态场景数据集中嵌入可交互关节物体的跨库匹配问题。
二、方法详细介绍
1. 场景与物体的统一表示
PHYSCENE将一个3D场景 x x x建模为 N N N个物体的集合 x = { o 1 , o 2 , . . . , o N } x=\{o_1, o_2, ..., o_N\} x={o1,o2,...,oN},每个物体 o i o_i oi由5类属性完整表征,对应图中后处理模块的属性拆解:
- 语义类别 c i ∈ R C c_i \in \mathbb{R}^C ci∈RC:物体所属家具类别(如床、柜子、桌子)
- 尺寸 s i ∈ R 3 s_i \in \mathbb{R}^3 si∈R3:物体三维长宽高
- 朝向 r i = ( cos θ i , sin θ i ) ∈ R 2 r_i = (\cos\theta_i, \sin\theta_i) \in \mathbb{R}^2 ri=(cosθi,sinθi)∈R2:物体水平旋转角度
- 位置 t i ∈ R 3 t_i \in \mathbb{R}^3 ti∈R3:物体在场景中的三维坐标
- 3D形状特征 f i ∈ R 32 f_i \in \mathbb{R}^{32} fi∈R32:由VAE编码器从3D模型提取的几何特征,是跨数据集检索物体的核心桥梁。
2. 条件扩散布局建模(去噪生成模块)
这是场景生成的主干网络,对应图中间的Denoising Process部分,负责学习户型约束下的场景布局分布。
(1)扩散基础流程
和标准扩散模型逻辑一致,分为两个过程:
- 前向加噪:对真实场景布局 x 0 x_0 x0逐步叠加高斯噪声,经过 T T T步后 x T x_T xT变为完全随机的高斯噪声。
- 反向去噪:训练网络 p θ ( x t − 1 ∣ x t , F ) p_\theta(x_{t-1}|x_t, \mathcal{F}) pθ(xt−1∣xt,F),以户型图 F \mathcal{F} F为条件,从纯噪声出发逐步还原出符合分布的真实场景布局。
条件生成的概率形式为:
p θ ( x 0 ∣ F ) = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t , F ) p_{\theta}\left(x_{0} | \mathcal{F}\right)=p\left(x_{T}\right) \prod_{t=1}^{T} p_{\theta}\left(x_{t-1} | x_{t}, \mathcal{F}\right) pθ(x0∣F)=p(xT)t=1∏Tpθ(xt−1∣xt,F)
每一步的去噪结果服从高斯分布,其均值和方差由U-Net网络预测。
(2)训练目标
训练时采用扩散模型通用的简化目标:让网络直接预测每一步加入的噪声 ϵ \epsilon ϵ,最小化预测噪声与真实噪声的均方误差:
L θ ( x 0 ∣ F ) = E t , ϵ , x 0 [ ∥ ϵ − ϵ θ ( x t , t , F ) ∥ 2 2 ] \mathcal{L}_{\theta}\left(x_{0} | \mathcal{F}\right) =\mathbb{E}_{t, \epsilon, x_{0}}\left[\left\| \epsilon-\epsilon_{\theta}\left(x_{t}, t, \mathcal{F}\right)\right\| _{2}^{2}\right] Lθ(x0∣F)=Et,ϵ,x0[∥ϵ−ϵθ(xt,t,F)∥22]
(3)网络结构
主干为带注意力模块的U-Net,将「时间步嵌入」和「户型图嵌入」作为条件注入U-Net的每一层,让模型学习“给定户型下家具该如何摆放”的分布规律。
3. 物理交互引导(核心创新模块)
这是论文最核心的设计,对应图左侧的Physical Guidance部分。
由于训练数据集(3D-FRONT)本身存在大量物理违规(物体穿墙、互相碰撞、家具被挡住无法到达),仅靠模型学习数据分布无法生成物理合理的场景。因此PHYSCENE在推理采样阶段,通过三类引导函数计算梯度,反向修正每一步的去噪结果,强制布局满足物理约束。
(1)引导采样的数学原理
基于引导扩散(Guided Diffusion)的思路:把“约束满足”建模为原生成分布的加权项,通过一阶泰勒展开将约束转化为对去噪均值的梯度修正。最终每一步的采样分布会被约束梯度偏移:
p θ ( x t − 1 ∣ x t , F , O = 1 ) = N ( x t − 1 ; μ + λ ∑ g , ∑ ) p_{\theta}\left(x_{t-1} | x_{t}, \mathcal{F}, O=1\right)=\mathcal{N}\left(x_{t-1} ; \mu+\lambda \sum g, \sum\right) pθ(xt−1∣xt,F,O=1)=N(xt−1;μ+λ∑g,∑)
其中 μ \mu μ是原扩散模型预测的去噪均值, g g g是约束函数对当前布局 x t x_t xt的梯度, λ \lambda λ是引导强度系数。
通俗理解:每一步生成布局后,用物理规则检查“哪里不合理”,再通过梯度把物体往“更合理”的方向微调。
总引导函数是三类约束的加权和:
φ ( x t , F ) = γ 1 φ c o l l ( x t ) + γ 2 φ l a y o u t ( x t , F ) + γ 3 φ r e a c h ( x t , F ) \varphi(x_t, \mathcal{F}) = \gamma_1\varphi_{coll}(x_t) + \gamma_2\varphi_{layout}(x_t, \mathcal{F}) + \gamma_3\varphi_{reach}(x_t, \mathcal{F}) φ(xt,F)=γ1φcoll(xt)+γ2φlayout(xt,F)+γ3φreach(xt,F)
(2)三类引导函数详解
① 碰撞避免引导 φ c o l l \boldsymbol{\varphi_{coll}} φcoll
- 目标:消除物体之间的穿插碰撞,保证场景可直接用于物理仿真。
- 实现方式:用物体的3D包围盒(包含位置、朝向、尺寸)计算所有物体两两之间的3D交并比(IoU),对IoU求和后取负值——物体重叠越多,惩罚值越大(函数值越小)。
φ c o l l ( x ) = − ∑ i , j , i ≠ j I o U 3 D ( b i , b j ) \varphi_{coll }(x)=-\sum_{i, j, i \neq j} I o U_{3 D}\left(b_{i}, b_{j}\right) φcoll(x)=−i,j,i=j∑IoU3D(bi,bj) - 对应图示:图中Collision Avoidance部分,两个重叠的物体 o i 、 o j o_i、o_j oi、oj会被梯度推开,减少重叠体积。
② 房间布局引导 φ l a y o u t \boldsymbol{\varphi_{layout}} φlayout
- 目标:保证所有家具都在户型边界内部,不会出现穿墙、放到房间外的情况。
- 实现方式:先从输入户型图提取房间边界多边形,将墙体抽象为“无限厚度的包围盒”;计算每个物体与墙体包围盒的3D IoU,求和取负值——物体越界越多,惩罚越大。
φ l a y o u t ( x ∣ F ) = − ∑ i = 1 N ∑ j = 1 W I o U 3 D ( b i , b j w a l l ) \varphi_{layout }(x | \mathcal{F})=-\sum_{i=1}^{N} \sum_{j=1}^{W} I o U_{3 D}\left(b_{i}, b_{j}^{wall }\right) φlayout(x∣F)=−i=1∑Nj=1∑WIoU3D(bi,bjwall) - 对应图示:图中Room-Layout Constraint部分,超出户型的物体 o j o_j oj会被梯度拉回房间内部。
③ 智能体可达性引导 φ r e a c h \boldsymbol{\varphi_{reach}} φreach
- 目标:保证具身智能体可以在房间内自由通行,并且能到达每个家具旁边完成交互。
- 核心逻辑:不合理的布局会把房间分割成多个互不连通的区域;引导的目标是打通通行路径,保证最大连通区域覆盖尽可能多的空间。
- 实现步骤:
- 将3D场景投影为2D房间掩码,结合智能体尺寸计算初始可行走区域;
- 对每个物体位置叠加高斯分布,生成通行代价图(离物体越近,通行代价越高);
- 找到房间内两个最大的连通区域,用A*算法规划两点之间的最短通行路径;
- 在最短路径上选取L个智能体站位,计算物体与智能体包围盒的3D IoU,求和取负值——惩罚挡住核心通行路径的物体。
φ r e a c h ( x ∣ F ) = − ∑ i = 1 N ∑ j = 1 L I o U 3 D ( b i , b j a g e n t ) \varphi_{reach }(x | \mathcal{F})=-\sum_{i=1}^{N} \sum_{j=1}^{L} I o U_{3 D}\left(b_{i}, b_{j}^{agent }\right) φreach(x∣F)=−i=1∑Nj=1∑LIoU3D(bi,bjagent)
- 对应图示:图中Agent Interactiveness部分,挡住从 P s t a r t P_{start} Pstart到 P e n d P_{end} Pend路径的物体 o j o_j oj会被梯度移开,保证路径通畅。
(3)引导的工程细节
- 作用时机:引导仅加在扩散去噪的后几步效果最优。前期布局从混沌快速成型,后期做精细位置微调,此时加引导效率最高、对生成自然度影响最小。
- 梯度范围:只对物体的位置和朝向计算梯度,不对尺寸施加引导——否则模型会通过把物体做薄来“作弊式”规避碰撞,导致尺寸失真。
- 权衡关系:三类引导存在天然冲突(例如碰撞引导把物体往外推,布局引导把物体往房间里拉),论文通过权重系数平衡了三者效果,实现综合性能最优。
4. 后处理:关节物体嵌入
对应图右侧的Postprocess模块,解决了“静态场景数据集里加入可交互关节物体”的问题。
(1)跨库形状检索
传统场景合成只用静态家具库(3D-FUTURE),无法支持交互。PHYSCENE通过VAE形状编码器构建统一特征空间:
- 训练时,用VAE把3D家具模型编码为32维形状特征,让特征能表征物体的几何功能;
- 推理时,用生成的形状特征在GAPartNet关节物体库(含柜门、抽屉等可动结构)中检索最匹配的模型,替换原静态家具,让场景具备交互能力。
(2)关节物体的物理适配
关节物体打开后会占用额外空间(比如拉开的抽屉、打开的柜门)。因此在计算引导时,论文采用「关节最大开合状态的包围盒」重新计算碰撞、布局和可达性约束,保证物体完全打开后也不会碰撞、依然可被智能体到达。
三、完整执行流程总结
- 训练阶段:在3D-FRONT数据集上训练条件扩散U-Net,学习户型约束下的场景布局分布;同时训练VAE形状编码器,构建静态家具与关节物体的统一特征检索库。
- 推理采样阶段:从随机噪声出发逐步去噪;每一步去噪后计算三类物理引导的梯度,修正当前布局;重复T步得到最终的家具布局参数。
- 后处理阶段:根据形状特征检索匹配关节物体,生成带纹理、支持物理仿真的完整可交互3D场景。




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

所有评论(0)