返回 portal 首页

从 Optimal Transport 到 SceneTransporter,再到 PAct

这页是路线二的完整讲义版本:从 OT 的数学定义讲起,解释 Sinkhorn、unbalanced OT、Gromov-Wasserstein;然后把 SceneTransporter 的“把场景变化当作结构化搬运”的思想翻译成我们在三维铰链物体生成里的语言;最后落到 PAct 中可实现的模块、loss、训练和评测方案。

Optimal TransportSinkhornSceneTransporterPActArticulation Graph

\[ \min_{\mathbf P \in \mathbb R_+^{n\times m}} \langle \mathbf C,\mathbf P\rangle \quad \text{s.t.}\quad \mathbf P\mathbf 1_m=\mathbf a,\quad \mathbf P^\top\mathbf 1_n=\mathbf b \]
Source evidenceTarget structure door pixels handle points body patches door link joint axis base link

1. OT 的直觉

OT 问的是:源分布里有一些“质量”,目标分布也需要这些质量,若把源 \(i\) 搬到目标 \(j\) 的代价是 \(C_{ij}\),怎样搬总成本最低?在我们的任务里,质量不一定是泥土;它可以是图像 patch 的证据、点云 cluster、mesh face、候选 part、joint hypothesis 或结构模板节点。

OT 比普通最近邻更适合铰链物体,因为它有全局守恒约束:每个源证据不能被无限重复使用,每个目标结构也不能凭空出现。这正好对应“一个门板只能服务一个门 link,一个把手不能同时解释成 drawer 和 door”。

2. 熵正则与 Sinkhorn

直接解 OT 是线性规划,慢而且不好放进神经网络。加熵正则后,解变得平滑可微:

\[ W_\varepsilon(\mathbf a,\mathbf b)= \min_{\mathbf P\in U(\mathbf a,\mathbf b)} \langle\mathbf C,\mathbf P\rangle+ \varepsilon\sum_{ij}\mathbf P_{ij}(\log \mathbf P_{ij}-1) \]

令 \(\mathbf K=\exp(-\mathbf C/\varepsilon)\),通过交替归一化行列得到 \(\mathbf P=\operatorname{diag}(\mathbf u)\mathbf K\operatorname{diag}(\mathbf v)\)。这就是 Sinkhorn。它给我们一个连续可导的 soft matching。

3. Unbalanced OT

真实生成里,源和目标常常数量不相等:模型可能多生成一片板,也可能漏掉一个把手。严格守恒会把错误硬塞给某个目标。Unbalanced OT 用 KL 惩罚替代硬约束:

\[ \min_{\mathbf P\ge0}\langle C,P\rangle+\varepsilon H(P)+ \tau_aD_{\mathrm{KL}}(P\mathbf1\Vert a)+ \tau_bD_{\mathrm{KL}}(P^\top\mathbf1\Vert b) \]

这允许少量质量消失或新生,适合处理过分割、欠分割和遮挡。

4. Gromov-Wasserstein:匹配关系,而不是只匹配点

铰链物体不是散点集合,而是结构图。普通 OT 看 \(i\to j\) 的单点代价;GW 关心源中两点关系 \(d_X(i,k)\) 与目标中两点关系 \(d_Y(j,l)\) 是否一致:

\[ \operatorname{GW}(X,Y)= \min_P \sum_{i,k,j,l} \left|d_X(i,k)-d_Y(j,l)\right|^2 P_{ij}P_{kl} \]

这对 PAct 很关键:如果生成的 drawer panel 和 handle 单独看都像,但 handle 与 drawer 的相对位置错了,普通 matching 可能放过,GW 会因为关系结构不一致而惩罚。

5. SceneTransporter 的抽象

我把 SceneTransporter 的核心理解为:不是直接回归一个最终场景,而是学习 source scene elements 如何 transport 到 target scene elements。它天然强调 correspondence、structure preservation 和可解释的变换路径。

套到铰链物体,就是从“观测证据/生成 patch”搬到“part graph/joint graph”。如果搬运计划稳定,部件归属、父子连接和关节轴会更一致。

6. PAct 当前痛点

我们之前看到的失败多集中在:part 看起来有,但 link 装配错;轴方向错;pivot 离接触边界太远;打开状态脱节或穿模。这些不是单点视觉质量问题,而是对应关系和结构一致性问题。

因此路线二不应只是“加一个新网络模块”,而应把 OT 用作证据到结构的中间层,让模型对“为什么这个 patch 属于这个 link、为什么这个 joint 连这两个 part”给出可微解释。

7. 交互模块:\(\varepsilon\)、错配代价和 transport plan

调小 \(\varepsilon\) 会接近硬匹配,调大则更平滑。训练上可以先大后小:前期避免错误离散分配,后期让 part/joint assignment 收敛。

8. 融入 PAct 的具体数学设计

层级目标代价矩阵作用
Patch-to-Part图像/点云/mesh patchpart proposal颜色/法向/空间/语义相似度稳定部件归属,减少碎片漂移
Part-to-Jointpart pairjoint hypothesis接触边界距离、轴线距离、碰撞代价约束 pivot 和 axis
Graph-to-Template预测 articulation graph原生资产库结构模板GW 结构距离借用真实铰链物体的结构先验
\[ \mathcal L_{\text{PAct-OT}} = \mathcal L_{\text{recon}} +\lambda_p W_\varepsilon(E_{\text{patch}}, V_{\text{part}}) +\lambda_j W_\varepsilon(E_{\text{part-pair}}, V_{\text{joint}}) +\lambda_g \operatorname{GW}_\varepsilon(G_{\text{pred}},G_{\text{native}}) +\lambda_c \mathcal L_{\text{collision}} \]

9. Cost 怎么定义

C_patch_part = w_xyz * Chamfer(patch, part) + w_n * NormalMismatch(patch, part) + w_sem * (1 - CLIPSim(patch_caption, part_name)) + w_occ * OcclusionPenalty C_part_joint = w_axis * LineDistance(candidate_axis, contact_boundary) + w_pivot * PivotToBoundaryDistance + w_motion * MotionFeasibility(open_state) + w_col * CollisionPenalty

10. 训练/推理路线

阶段 A:不改 PAct,只做离线诊断 输出 part/joint hypotheses -> 计算 OT/GW 解释性分数 阶段 B:后处理重排 用 transport plan 重选 parent-child、axis、pivot 阶段 C:训练期插入 将 Sinkhorn/GW loss 加到 PAct 的 part/joint head 阶段 D:闭环评测 用统一原生铰链资产库作 GT,评测 geometry / parts / joints / motion / physics

11. 实验设计与预期收益

原则:不污染原生数据集,不把生成资产混进发布资产库;所有 PAct/OT 输出进入 benchmark method outputs。