Tetris3D:给3D重建的物体找到彼此契合的方式 Оригинал на китайском

你有没有玩过俄罗斯方块?每一块积木落下的时候,不是孤立地考虑自己,而是要看它下面和旁边已经摆好的形状,找到那个能严丝合缝嵌进去的角度。

这篇论文的名字就叫Tetris3D,作者在摘要里直接点出了这个比喻的用意:3D场景里的物体也应该像俄罗斯方块一样,彼此找到契合的位置,而不是各管各的。

这事听起来简单,做起来却藏着一个挺大的麻烦。

**核心问题出在哪**

先说说这个领域此前是怎么做的。给一张图片,想重建出图里所有物体的3D模型,一条常见路线是把每个物体单独抠出来,各自生成一个3D形状,再想办法拼到同一个场景里去。另一条路线是用一个模型同时生成多个物体,让它们通过网络内部的注意力机制互相"感知"对方的存在。

问题是,这两条路都没有显式地告诉模型:"你这个茶杯,得贴着桌子的边缘放,底部得是平的,不能悬空,也不能插进桌子里。"

论文里展示的对比图很说明问题。几个主流方法比如MIDI、SAM-3D、ShapeR在重建"书本靠着书立"或者"水杯放在篮子里"这类场景时,生成的物体经常互相穿插,或者物体的接触面对不上。书立和书本本该紧贴在一起,结果生成出来的书立悬浮在半空,书本插进了书立里面。

这背后的根子问题是遮挡。

想象你看一张桌子上摆着水杯的照片,水杯底部和桌面接触的那一圈,往往被水杯自己挡住了,你压根看不见。人类看这张照片,大脑会自动脑补"水杯底部肯定是平的,肯定贴着桌面",但对一个只会逐像素分析图片的AI模型来说,这部分信息是彻底缺失的。如果模型只盯着自己能看到的那部分像素去生成形状,遇到遮挡区域时它只能瞎猜,猜错了就会出现穿模、悬空这些违反物理常识的结果。

研究团队的直觉其实很朴素:人在推断一个物体的形状和姿态时,从来不是孤立地看这个物体,而是会参考周围的环境。看到一个桌子,就知道杯子大概率贴着桌面放;看到一个篮子,就知道水果大概率窝在篮子内部的凹陷处。这种"借助邻居推断自己"的能力,正是现有方法缺失的那一块。

如果不这样设计会怎样?论文的消融实验给出了具体数字:去掉物体间的交互条件后,穿透深度(衡量物体互相嵌入程度的指标)从0.0192暴涨到0.4980,涨了整整25倍;模拟后的平均位移误差也从39.22涨到69.24,说明物体在物理引擎里模拟运行后更容易东倒西歪、散架。

**生成顺序:先搭地基,再往上盖**

Tetris3D的第一个关键设计,是不再让所有物体同时生成,而是按照物理依赖关系一个一个地生成。

术语解释:

拓扑排序:一种按依赖关系排列任务顺序的方法,保证每个任务执行前,它所依赖的任务都已经完成。

VLM(视觉语言模型):能同时理解图像和文字的AI模型,这里用来分析图片里物体之间的支撑、包含等物理关系。

具体做法是,先用一个视觉语言模型(论文用的是Qwen3-VL)去看图,推断出哪个物体在支撑哪个物体,比如桌子支撑杯子,篮子包含水果。这些关系会构成一张"依赖图",然后通过拓扑排序确定生成顺序:桌子先生成,杯子后生成;生成杯子的时候,桌子的表面已经是现成的几何信息,可以直接拿来当参考。

这就好比盖房子,你不会先把二楼装修好再砌一楼的墙,因为二楼得踩在一楼的地基和墙体上才稳。如果反过来做,先凭空想象二楼长什么样,再回头拼凑一楼去迁就它,大概率会出现地基和墙体对不上、房子一推就塌的局面。Tetris3D的生成顺序,本质上就是在保证"地基先于上层建筑"这个物理常识。

论文里还提到一个细节处理:由于VLM给出的依赖关系有时会互相矛盾甚至形成环(比如A支撑B,B又被标注为支撑A),团队设计了一套带置信度的排序算法,在无法避免冲突时,优先保留置信度更高的依赖关系,舍弃置信度低的那条边,从而保证最终一定能排出一个合法的生成顺序。

**空间上下文和关系类型:两种"邻居信息"怎么喂给模型**

搞定了生成顺序,下一个问题是:具体要往模型里塞什么样的"邻居信息",才能真正帮上忙?

论文把这些信息拆成两类。第一类叫空间上下文,第二类叫关系类型。

空间上下文:描述目标物体和周围已生成物体之间的几何关系,包括到最近表面的距离、方向向量、表面法线等信息,目的是防止生成的新物体和已有物体发生穿插或悬空。

关系类型:描述目标物体和邻居之间具体是什么样的物理关系,比如堆叠、倚靠、包含、接触,用可学习的向量编码表示。

空间上下文的计算方式挺有意思。对网格里的每一个体素(可以理解成3D空间里的一个小立方体格子),系统会去算它离最近的邻居表面有多远,这个距离会被截断在一定范围内,太远的体素直接忽略不计。同时还会记录朝向最近表面的方向,以及那个表面点的法线方向。这三组信息拼在一起,相当于告诉模型:"你现在所在的这个格子,往哪个方向多远能碰到别的物体,那个表面是朝哪边的。"

这就像你蒙着眼睛在一个摆满家具的房间里摸索,光靠自己身体的触感是不够的,你还需要有人在旁边提示"你左手边半米处有张桌子,桌面是水平的"。有了这种提示,你才能准确判断自己该站在哪、手该往哪个方向伸,而不是伸手就撞上桌角,或者悬空摸一个不存在的支撑面。

关系类型则更直接,就是一个标签:这里是"堆叠"关系还是"包含"关系。论文预定义了五种关系类型:堆叠、倚靠、包含、接触、无关系。每种关系对应一个可学习的向量,这个向量会告诉模型生成的形状该呈现出什么样的物理姿态。比如"包含"关系意味着目标物体得缩进容器内部,"倚靠"关系意味着目标物体得是倾斜的、靠着另一个物体才不会倒。

这两类信息最终会被合并成一个统一的"交互条件",通过一个零初始化的门控机制注入到生成模型的每一层里。零初始化意味着刚开始训练时,这个新加的条件完全不影响原有模型的行为,只有在训练过程中模型发现这个信息确实有用,才会逐渐把门打开,让它发挥作用。这种设计思路借鉴了Flamingo模型里的做法,目的是保护预训练模型原有的生成能力不被破坏。

**V2I注意力:让看得见的部分去"告诉"看不见的部分**

除了邻居的信息,Tetris3D还要解决另一个问题:物体自身被遮挡的那部分该怎么补全?

论文给出的方案叫V2I注意力(Visible-to-Invisible,可见到不可见)。简单说,就是把一个物体对应的3D网格里的token(可以理解成生成模型处理的基本信息单元)分成两类:一类是对应图像中可见区域的,一类是被其他物体遮挡、看不见的。然后专门加一层交叉注意力,让看不见的那部分token去主动"查询"看得见的那部分token,把信息抓取过来补全自己。

这个设计的巧妙之处在于,它不是让模型凭空想象被遮挡的部分长什么样,而是让已经确定的可见部分主动去指导不确定的不可见部分。举个例子,一个杯子的把手被挡住了,但杯身的弧度、材质已经看得清清楚楚,那把手的粗细、弯曲程度大概率可以参照杯身的风格来推断,而不是天马行空地瞎编。

论文的消融实验显示,去掉V2I注意力后,场景级倒角距离从3.90涨到4.46,IoU(衡量两个形状重叠程度的指标)从0.7603降到0.7506,说明重建质量确实有下滑。团队还对比了另一种处理遮挡的方案,就是直接套用Amodal3R论文里现成的遮挡感知注意力模块,结果发现效果介于"完全不用"和"用V2I"之间,但依然不如V2I注意力设计得精细。这说明针对这个问题专门设计的注意力机制,确实比直接套用通用方案更管用。

**没有合适的数据,那就自己造一个:ComOb数据集**

讲到这里有个绕不开的现实问题:想训练一个"懂物理交互"的模型,你得先有大量展示物理交互的训练数据才行。

但现有的数据集要么局限在特定场景,比如只有室内房间布局(3D-FRONT数据集)或者只有桌面场景(TableVerse、MessyKitchens),要么虽然场景丰富但物理交互类型太单一。这就好比你想教一个孩子认识"支撑""包含""倚靠"这些概念,结果手头的教材要么只有卧室照片,要么只有厨房台面照片,根本凑不齐各种各样的交互场景。

于是团队干脆自己动手造了一个数据集,叫ComOb。做法是用物理模拟引擎(MuJoCo),把各种各样的物体和一批几何基元(比如圆柱体、圆锥体、箱子、碗这些简单形状)按照五种预定义的交互方式摆放在一起,再让物理引擎跑一遍模拟,直到场景稳定下来,这样就能得到一批真正符合物理规律的场景。

这五种交互方式分别是堆叠、倚靠、包含、堆积、接触,每一种都有专门设计的摆放和验证逻辑。比如要生成"倚靠"场景,团队会先把一个基元放在目标物体预计倒向的那一侧,等场景稳定后,再单独做一次模拟,把这个基元移走,如果目标物体在失去支撑后真的倒下了,才能证明这确实是一个倚靠关系,而不是碰巧放在那里没有实际支撑作用。这种验证方式挺严谨,相当于不仅要摆出一个看起来像倚靠的姿势,还得验证"抽掉支撑它就塌"这个物理事实。

最终ComOb一共生成了120万个场景,340万个带标注的样本,每个样本都配有渲染出的RGB图像、物体掩码、深度图、物体网格以及物体之间的关系标签。这个规模放在同类数据集里已经相当可观。

**实验结果怎么样**

论文在三个数据集上做了测试:Toys4K(合成玩具数据集,训练数据和测试数据的物体来源完全不重叠)、MessyKitchens和Picasso(两个真实世界的接触密集型场景数据集)。

在Toys4K上,Tetris3D和多个基线方法做了对比,包括场景生成类方法(SAM-3D、ShapeR、WorldSculpt)和"先做无遮挡3D生成再做姿态估计"类方法(Amodal3R、GENA3D配合FoundationPose姿态估计器)。

下面这张表摘录了部分关键指标:

| 方法 | 场景级倒角距离↓ | IoU↑ | 穿透深度↓ | 平均位移↓ |

|---|---|---|---|---|

| SAM-3D | 25.19 | 0.3817 | 1.354 | 192.4 |

| ShapeR | 5.72 | 0.6408 | 0.8862 | 115.1 |

| WorldSculpt | 8.68 | 0.5369 | 0.1177 | 103.5 |

| Amodal3R+ | 12.51 | 0.4634 | 0.5962 | 115.0 |

| GENA3D+ | 15.91 | 0.4126 | 0.9106 | 131.0 |

| **Tetris3D** | **3.68** | **0.7918** | **0.0036** | **38.91** |

这组数字里最值得拿出来说的是穿透深度这一项。Tetris3D的穿透深度是0.0036,排第二的WorldSculpt是0.1177,差了大约33倍。这意味着什么?意味着在同样一批场景里,其他方法生成的物体大概率会出现看得见的穿模,而Tetris3D的物体基本上能做到紧贴却不互相嵌入,这正是显式引入交互条件带来的直接收益。

在MessyKitchens和Picasso这两个真实场景数据集上,Tetris3D同样保持领先。Picasso数据集上,Tetris3D的穿透深度是0.0016,第二名ShapeR是0.0666,相差超过40倍。这说明Tetris3D的能力不只局限在训练它所用的合成数据分布里,面对真实拍摄的、光照杂乱、物体摆放更随意的厨房场景,依然能保持物理合理性。

**跟大语言模型agent比起来呢**

论文还做了一个挺有意思的补充实验,拿Tetris3D去和基于GPT-6 Astra的"智能体式"3D生成方案做对比。这种方案的思路是让大语言模型自己写Blender脚本,通过程序化建模的方式一步步搭建场景。

结果显示,这类智能体方案虽然能生成大体相似的形状,但很难精确复现图片里的具体几何细节,而且物体姿态的摆放经常出错,论文里展示的例子里出现了物体悬浮在空中、物体之间互相穿插这些问题。团队分析认为,这是因为智能体依赖生成脚本和图形工具去构建CAD网格,这种方式本身就难以捕捉图像里那些细微的、物体特有的几何特征,同时它对物体姿态的判断依赖的是对图片的空间推理,而不是经过专门训练、针对这个任务优化过的生成模型,精度自然打了折扣。

**写在后面**

读完这篇论文,最触动我的其实不是具体的数字提升,而是那个"把物理关系当作生成的输入条件,而不是事后检查的标准"这个思路转变。

很多做3D生成的工作,物理合理性是一个后处理步骤:先生成,再检测有没有穿模,有就微调修正。Tetris3D把这件事提前了,让物理关系在生成的过程中就参与塑造形状,而不是生成完了再去纠正。这种"提前介入"和"事后补救"的差异,某种程度上有点像写代码时的类型检查,你是在编译期就把错误拦下来,还是等程序跑起来崩溃了再排查,效果和成本完全不是一个量级的。

论文里那个穿透深度相差三十几倍的数字,我反复看了好几遍,因为这不是那种"略有提升"的改进,而是说明原来的方法在物理一致性这件事上可能从来没有被真正认真对待过,大家更在意形状像不像、纹理好不好看,而"两个物体挨在一起时到底该怎么挨"这件事,是被默认交给后处理或者干脆忽略掉的。

还有一个细节我觉得值得单独说一下,就是团队处理VLM推理出来的物理依赖图时,没有简单粗暴地假设这个图一定是无环的,而是专门设计了一套带置信度权重的算法去处理冲突和环路。这说明他们在工程实现上是真的碰到过这个问题,而不是想当然地假设现实世界的物理关系推理总能得出一个干净利落的层级结构。真实世界从来不会那么听话。

这篇论文没有解决的问题也挺明显,它依赖一连串外部模型,深度估计、物体分割、关系推理,每一环出错都会往后传递。一个分割错了的物体掩码,可能导致后续生成的物体姿态整个偏掉。这种链式依赖的脆弱性,是这类多阶段流水线式方法共同的软肋,也是留给后来者的空间。

Q&A

Q1:Tetris3D是什么?

A:Tetris3D是一个从单张图片重建3D场景的生成框架,核心创新是让每个物体的生成都显式参考周围邻居物体的几何形状和物理关系,从而让重建出的多个物体像俄罗斯方块一样彼此紧密契合,不会出现穿模或悬空。

Q2:ComOb数据集是用来做什么的?

A:ComOb是论文团队自建的大规模模拟数据集,包含120万个场景和340万个标注样本,通过物理引擎把各种物体和简单几何体按堆叠、倚靠、包含等五种交互方式摆放并模拟稳定,专门用来训练模型理解物体间的物理关系。

Q3:Tetris3D和直接用GPT类大模型生成3D场景相比效果如何?

A:论文对比了基于GPT-6 Astra的智能体方案,发现这类方法虽能生成大体相似的形状,但难以精确还原图片细节,姿态摆放也常出错,容易出现悬浮和穿插,而Tetris3D在几何还原精度和物理合理性上都明显更优。

作者声明:作品含AI生成内容
举报/反馈
Поделиться: Weibo Qzone
Хотите сотрудничество по этому материалу?
Мы свяжемся с вами в течение 1 рабочего дня
Оставить заявку