Seg3DParts: Segmentation-Grounded Controllable Part-Level 3D Generation¶
会议: NeurIPS2026(任务清单归属;所读版本为 arXiv v1)
arXiv: 2609.36918
领域: 3D 视觉
关键词: 部件级生成、分割条件、结构化潜变量、跨部件注意力、规范坐标空间
一句话总结¶
Seg3DParts 将外部提供的部件分割分别注入两阶段 3D 生成器,并让各部件潜变量交换结构信息,在保留训练时相对坐标的空间中直接输出独立网格;其优势是可指定分解方式且减少部件互穿,而不是自动发现未知部件。
研究背景与动机¶
一个完整的 3D 网格可以用于展示,却不一定适合编辑或重新组合:椅背、座面和椅腿如果融成同一表面,就没有稳定的操作单位。已有方案通常先从图像生成完整物体,再分割表面并逐件补全,例如 Hunyuan3D、PartField 与 HoloPart 的组合。它能得到显式部件,但局部补全看到的是不完整表面;遮挡严重时,部件各自生成得合理,也可能大小不一致、位置冲突或彼此穿插。
联合生成方法则让多个部件共享生成过程。PartCrafter 通过局部与全局注意力建模部件关系,PartPacker 利用双体积表示保持几何分离,因此本文并不是首次引入部件协同。它强调的剩余问题是控制接口:如果部件身份由潜变量槽位隐式决定,用户就难以指定哪个槽对应椅背,也难以要求同一图像按不同粒度拆分。整物体分割条件仍可能让生成器自行决定区域怎样分配给部件。
本文把“生成哪些部件”改成输入约束,再把“这些部件怎样相互配合”交给联合建模。二维 mask 提供可见区域与部件对应关系,却不能凭空提供被遮挡的三维结构;后者依赖数据先验、整图上下文与其他部件。核心 idea:用逐部件分割明确指定生成身份,以局部条件保持对应关系,同时在两阶段 VAE 与 DiT 内加入跨部件信息交换,学习在同一坐标空间中生成可直接组合的部件网格。
方法详解¶
整体框架¶
输入是一张 RGB 图像及一组部件分割,分割来自外部模型(如 SAM)或用户标注,不是 Seg3DParts 自己发现的部件。输出是与这些条件对应的多个独立网格。主干沿用 TRELLIS 的两阶段结构:先生成各部件的粗稀疏体素占据,再在这些空间位置上生成细几何潜变量,并解码成表面。
本文对两阶段都作了部件化改造。分割定位条件将局部图像特征送入对应部件的 AdaLN,整图特征则通过图像交叉注意力提供上下文;部件感知两阶段生成让 VAE 与 DiT 保留独立的部件表示并交换信息。共享规范空间解码的基础是训练数据保留原物体的相对位置与尺度,而不是在生成结束后预测一个装配变换。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
I["RGB 图像 + 外部部件 mask"] --> C["分割定位条件"]
C --> S["部件感知两阶段生成<br/>阶段 1:稀疏结构"]
S --> L["部件感知两阶段生成<br/>阶段 2:细几何潜变量"]
L --> D["共享规范空间解码"]
D --> O["独立部件网格"]
T["训练监督:对齐部件网格"] -.->|占据监督与目标潜变量| S
T -.->|几何监督与目标潜变量| L
T -.->|保留相对尺度和位置| D
实线是推理数据流,虚线只表示训练监督。阶段 1 与阶段 2 均使用部件感知 VAE 和 rectified-flow DiT;两阶段中的跨部件交互安排不同,不能把它理解为只在最终装配前的一次注意力。
关键设计¶
1. 分割定位条件:给每组潜变量一个可控制的图像对应关系
每个部件 mask 从整图取得对应区域,形成部件条件图像。冻结的 DINOv2 提取局部视觉特征,再由可训练的轻量 MLP 得到紧凑外观嵌入。该嵌入与时间步嵌入、总部件数编码组合成部件条件向量,用于产生 AdaLN 的缩放、平移和门控参数。附录明确说明,这些参数通过索引广播只作用于所属部件的 token,避免把某个区域的条件无差别施加给所有部件。
与此同时,原始整图也经过 DINOv2,其全局特征通过交叉注意力进入 DiT。局部 AdaLN 与全局图像交叉注意力承担不同职责:前者回答“现在生成哪个图像区域对应的部件”,后者提供物体类别、整体轮廓以及可见结构的共同背景。两个阶段使用相同的部件条件设计,因此身份约束不仅影响最后的细节,也影响粗占据结构。
这种控制是二维区域定位,不等于输入了语义名称或完整三维形状。换一组 mask,可以改变分解边界和粒度;但论文没有给出任意 mask 都能实现合理分解的保证。尤其是完全不可见的部件,必须先由外部输入明确其存在和部件数,空图像条件本身不能承担未知部件发现。
2. 部件感知两阶段生成:先决定各部件占据哪里,再联合细化表面
阶段 1 的 VAE 在 \(64^{3}\) 体素占据网格上表示粗结构,每个部件作为批维度中的独立元素,编码器和解码器共享权重。层次化 3D 卷积把占据压缩为高斯潜变量,解码器恢复二值占据。跨部件交互只放在紧凑的潜变量瓶颈,高分辨率编码与解码仍逐部件执行;这样既能交流空间范围,又不必让所有局部体素一直全局混合。对应 DiT 在 \(16^{3}\) 网格表示上建模粗结构,不能将这个潜空间分辨率误写成最终占据分辨率。
阶段 2 以稀疏结构为条件,为各部件生成包含精细几何的稀疏潜变量。本文将 TRELLIS 的体素特征投影替换成网格表面编码;附录给出稀疏 Transformer 编码器和解码器,各有 12 个块,并在二者中对称插入跨部件交互块。阶段 2 DiT 处理的是 \(64^{3}\) 坐标空间中的稀疏特征,而不是每个部件都生成一个稠密的完整体积。表面编码有利于保留细节,但原文没有用单独消融量化其贡献。
两阶段 DiT 都有 24 个 Transformer 块、隐藏维度 1024 和 16 个注意力头。大多数块执行部件内自注意力、全局图像交叉注意力和前馈变换;少量多部件块在部件内自注意力之后额外插入跨部件注意力。原文说采用固定的稀疏交错安排,却未列出具体层号,不能据此假定每隔固定数量的块交互一次。
跨部件注意力让当前部件查询其他部件的 token,而不是把部件表示先合并为一个无身份的整体。其残差机制为:
其中方括号表示沿 token 维拼接,\(\mathbf{X}^{k}\) 是当前部件的潜变量 token。部件内注意力先维护本部件的表面或占据信息,再借其他部件更新尺度、位置与接触关系。这解释了为何单独生成各件再拼接不等价:其他部件的状态会在几何形成过程中影响当前部件。附录还规定单部件时退化为自注意力,这是实现层面的特殊处理,而不是直接把上式的空键值集合拿来计算。
3. 共享规范空间解码:学习原有相对位置,而不是事后求装配位姿
数据构建时,部件从完整物体中分离,但保留在原物体中的尺度和位置。编码、生成和解码都使用这种对齐表示;阶段 2 最终通过 FlexiCubes 提取每个部件的网格。因此输出文件虽然相互独立,却以同一规范坐标为参照,无须再对每件执行平移、缩放或优化对齐。
关键是“独立输出”不代表“独立决定坐标”。跨部件交互在训练和生成时帮助各件学习相对关系,统一的训练坐标则告诉模型正确的位置应在哪里。附录所说的解码值归一化用于监督稳定性,并明确保留规范对齐;不能将其解释为把各部件分别居中缩放后仍自动保有装配位置。
这是一种学习到的空间一致性,而非硬几何约束。它没有显式保证网格一定无碰撞、接触严密或满足可制造性;主实验的部件重叠 IoU 也不是零。因此“不需要事后对齐”描述的是推理流程,不应扩展成任意输入下都能正确装配的保证。
一个完整示例¶
以一张存在遮挡的椅子图像为解释性例子,假设外部输入指定座面、椅背和四条椅腿,共 6 个部件。这只是流程示例,不是论文新增实验。可见部件各自取得局部条件图像,每组 token 接收自己的 AdaLN 参数,同时共享整图上下文;阶段 1 为 6 个部件联合确定粗占据,阶段 2 在这些位置上生成几何并相互参考其他部件的状态。
如果一条后腿完全不可见,附录 F 的做法是仍为它保留一个部件条件,并输入全黑条件图像。训练中完全隐藏的部件也如此处理,让模型把黑图理解为“没有视觉证据”,而不是“没有这个部件”。该腿的形状和位置只能依赖可见结构及训练先验推断,不能说它的真实几何已由 mask 确定。最终 6 个网格处于同一坐标空间;如果用户把座面与椅背合成一个区域,控制接口允许提供不同粒度,但论文只用定性图展示这种变化,没有报告分解可控性的独立定量指标。
损失函数 / 训练策略¶
两个 VAE 先学习几何的潜变量表示,两阶段 DiT 再以 flow matching 学习从噪声到目标潜变量的速度场。阶段 1 VAE 使用 Dice 占据重建损失与 KL 正则,KL 权重为 \(10^{-3}\)。阶段 2 VAE 同时监督渲染轮廓、深度、截断符号距离场和法线,KL 权重为 \(10^{-6}\);法线监督结合逐像素 \(\ell_{1}\)、SSIM 与 LPIPS,以兼顾局部数值和感知结构。
阶段 2 的深度、TSDF、法线 SSIM、法线 LPIPS 权重分别为 10.0、0.01、0.2、0.2。原文把深度项写为 Smooth-\(\ell_{1}\),但未给出轮廓项与 TSDF 项的全部计算细节,也未列出 flow matching 的时间采样分布等细节;这里不补写一套猜测的精确损失定义。
两个 VAE 使用 8 张 A800 训练约 2 天,两个阶段的 DiT 使用 16 张 A800 训练约 1 周;原文未清楚拆分每个模型各自的时长。推理采用 rectified-flow 积分,两个阶段分别为 50 步和 30 步,图像条件的 classifier-free guidance(CFG)强度为 3.0,不使用测试时优化或后处理。
实验关键数据¶
主实验¶
PartObjectNet 汇集 Objaverse、Texverse 和 PartNet,经自动筛选及人工整理保留含 2–15 个部件的对象。数据集正文描述为约 200K 个物体,摘要称超过 200K 个物体及 1M 个标注部件,但未提供可核对的精确计数。内部测试集随机留出 500 个对象,另在作者声明独立于训练数据的 PartObjaverse-Tiny 上测试;所读全文没有给出该外部测试集的样本数。
全局几何将所有部件网格拼接后,与真值在共同的 \([-1,1]^{3}\) 空间比较,各表面均匀采样 16K 点。[email protected] 是距离阈值 0.1 下表面点匹配精确率和召回率的调和平均;CD 为双向最近邻表面距离,论文未明确其平方形式和额外缩放。部件级指标对有明确对应关系的部件计算,IoU 使用 \(64^{3}\) 体素网格。重叠 IoU 则是生成部件两两体积 IoU 的平均,越低越好,与部件对真值 IoU 的方向相反。
下表选取主文表 1 的代表对比,不把全局几何更好直接当成部件身份更准确。
| 方法 | PartObjectNet [email protected] ↑ | CD ↓ | 重叠 IoU ↓ | PartObjaverse-Tiny [email protected] ↑ | CD ↓ | 重叠 IoU ↓ |
|---|---|---|---|---|---|---|
| PartCrafter | 0.698 | 0.248 | 0.050 | 0.731 | 0.182 | 0.049 |
| PartPacker | 0.876 | 0.115 | 0.033 | 0.802 | 0.138 | 0.033 |
| OmniPart | 0.885 | 0.108 | 0.057 | 0.763 | 0.168 | 0.041 |
| Hunyuan3D2.1 + PartField + HoloPart | 0.858 | 0.121 | 0.067 | 0.796 | 0.143 | 0.041 |
| Seg3DParts | 0.917 | 0.085 | 0.012 | 0.810 | 0.128 | 0.018 |
内部测试相较 OmniPart,全局 FS 增加 0.032,CD 减少 0.023;外部测试相较 PartPacker,全局 FS 仅增加 0.008。应把整体保真度、部件控制和重叠分开看,而不是用单一领先幅度概括所有优势。
表 2 仅比较支持显式部件对应关系的 OmniPart 与 Seg3DParts。主文图 3 说明二者输入真值部件分割,因此这些结果不能当作外部分割器产生噪声 mask 后的端到端性能。
| 数据集 | 方法 | 部件 [email protected] ↑ | 部件 CD ↓ | 部件 IoU ↑ |
|---|---|---|---|---|
| PartObjectNet | OmniPart | 0.565 | 0.417 | 0.551 |
| PartObjectNet | Seg3DParts | 0.774 | 0.192 | 0.781 |
| PartObjaverse-Tiny | OmniPart | 0.455 | 0.418 | 0.429 |
| PartObjaverse-Tiny | Seg3DParts | 0.639 | 0.310 | 0.702 |
内部部件 FS 增加 0.209,外部部件 IoU 增加 0.273。它们支持在已给定对应关系下更准确地生成部件,但没有评估自动发现部件的准确率;其他方法未列入此表也不等于其部件质量为零。
消融实验¶
主文表 3 的所有变体只在随机采样的 1K 个物体上训练 5K 步。这是共同的小规模设置,完整模型这一行不是上面全量训练模型,数值不能横向混为同一实验。
| 配置 | 全局 FS ↑ | 全局 CD ↓ | 重叠 IoU ↓ | 部件 FS ↑ | 部件 CD ↓ | 部件 IoU ↑ |
|---|---|---|---|---|---|---|
| 完整模型 | 0.856 | 0.129 | 0.054 | 0.631 | 0.467 | 0.649 |
| 去掉跨部件交互 | 0.838 | 0.138 | 0.103 | 0.531 | 0.534 | 0.434 |
| 单一整物体分割条件 | 0.840 | 0.137 | 0.126 | 0.488 | 0.589 | 0.444 |
去掉交互将所有多部件块替换成单部件块;整物体条件变体则将逐部件条件替换为一个整物体分割图。前者让重叠 IoU 增加 0.049、部件 FS 减少 0.100,后者让重叠 IoU 增加 0.072、部件 FS 减少 0.143。这个对照说明只看整体形状容易漏掉部件级失效,但尚不能推断全量训练时的精确贡献大小。
关键发现¶
- 两个消融的全局 FS 只降低 0.018 和 0.016,部件指标却退化更明显。整体轮廓相近不代表分解正确,也不代表部件之间没有互穿。
- 逐部件条件对身份定位、跨部件交互对几何协同各有作用;消融支持二者互补,但未分别拆出每阶段 VAE 和 DiT 交互的贡献。
- 图 5 展示同图不同分割的定性控制,附录 F 展示完全遮挡部件的恢复示例。二者均缺少专项规模、误差统计和对照,证据强度弱于主几何评测。
亮点与洞察¶
- 控制粒度可以交给输入而不是固定潜槽解释。逐部件 AdaLN 让输入区域与 token 组保持对应,而整图交叉注意力仍保留理解物体所需的共同背景。
- 协同应发生在表示学习与生成内部。VAE 就学习带关系的潜空间,DiT 再在生成中交换状态,比最后仅对独立部件求位姿更能影响缺失几何的形成。
- 统一坐标是数据与模型共同承担的约束。保留训练对象的相对尺度和位置,使“网格分开输出”不再意味着必须重新装配;这可借鉴到有显式区域条件的组合式资产生成。
局限与展望¶
- 作者承认对输入分割质量敏感,附录 G 给出低质量或语义含混边界下的失败案例。主定量结果使用真值分割,后续应分别报告自动 mask、人工 mask 和受控扰动 mask 的表现。
- 完全隐藏部件仍需外部指定其存在,并以黑图提供缺视觉证据的信号。附录只有定性示例,未统计遮挡比例、类别或几何误差;不能据此声称系统会自行发现所有隐藏部件。
- 训练筛选范围是 2–15 个部件,未测试超出范围的可靠性、推理时延或显存随部件数增长的曲线。其他部件 token 拼接可能带来扩展成本,但全文没有给出复杂度实测。
- 低重叠不等于接触正确或功能可用。可以补充接触面误差、装配稳定性和部件编辑后的一致性指标,而不是仅靠整体 FS 和体积 IoU。
- 复现信息仍有缺口:未说明精确交互层安排、所有重建项细节、推理成本或所读版本中的代码链接。正文和附录把网格编码称为 TripoSF [34],但参考文献 [34] 标为 Sparseflex;正文基线称 Hunyuan3D 2.1,而 [14] 是 Hunyuan3D 2.0。这里保留原文实验名称,不擅自统一版本。
相关工作与启发¶
- vs TRELLIS:沿用稀疏结构与结构化潜变量的两阶段主干,变化在于逐部件表示、局部条件和跨部件协同。不能把该主干或 rectified flow 本身算成本文新提出。
- vs PartCrafter / PartPacker:它们已经联合建模多个部件;本文重点是用外部分割提供显式区域对应,代价是输入依赖更强。双体积或部件注意力与分割定位也不是必然互斥的设计。
- vs OmniPart:同样可利用分割,但本文将逐部件图像嵌入注入对应 token 的 AdaLN,而不是主要通过全局分割和部件空间预测决定分配。真值 mask 下的部件级对照是本文最直接的控制相关量化证据。
- vs Hunyuan3D + PartField + HoloPart:先生成整体再分割补全与本文的过程内协同不同。启发是把后处理阶段才能知道的部件关系提前放入几何生成过程,而不是假设独立补全后总能得到一致装配。
评分¶
- 新颖性: 4/5。将显式逐部件图像定位与两阶段跨部件协同结合,增量清楚,但骨干和联合建模已有基础。
- 实验充分度: 3/5。内部及外部几何对比完整,控制、完全遮挡和 mask 噪声评估仍以定性证据为主。
- 写作质量: 3/5。方法逻辑清晰,附录补充了结构与权重,但参考模型名和部分实现细节尚不明确。
- 价值: 4/5。对可编辑的部件级资产生成有实际意义,使用时必须考虑外部分割质量和空间一致性的学习边界。