← 返回 portal

螺旋不变量机制 — 复现与可视化

PAct-Transporter / 创新点 I1 · 2026-06-02 · 真实 PNM 资产 + 已验证 FK
PActI1 screw-invariantkinematic PartNet-Mobility

这是什么

B-line 文献(PARIS 2308.07391 / ScrewNet / ScrewSplat 2508.02146 / PAOLI / ArtPro 2602.22666) 共享同一个机制:旋转关节的运动是一个螺旋(Chasles 定理),关节本身被恢复为"使逐点螺旋不变量归零"的那条轴。 本页在真实 PNM 资产 PNM_100141(Box 盒盖,hinge 扫过 90°)上,用两条彼此独立的机制恢复同一条螺旋轴, 再把"螺旋不变量"到底长什么样画出来。

这一步复现的是无噪声、给定真实对应的干净机制层——证明数学骨架在我们的真实数据 + 已验证 FK 上完全成立, 且我们的可微版本与文献的闭式版等价。它尚未涉及小部件/噪声鲁棒性(W2.6)与单图前馈摊销(I1 的 H1/H2)。

两条机制恢复同一条轴(精确一致)

机制方向误差 vs GT轴心垂距 vs GT备注
(A) 闭式螺旋分解
Kabsch 求 R,t → Chasles 提轴(ScrewNet/PARIS 标准)
0.00°2.7e-7旋转角 90.0°
(B) 梯度下降最小化 L_rev
我们的可微 / 可摊销版本
0.00°1.7e-5L_rev=6.6e-11;5 初始化 spread 0.0°
两法之间夹角0.00°两条不同数学路径落到同一条轴

图 1 — 螺旋运动本身

screw motion 3D
盒盖点云在 7 个状态下(蓝=关 → 红=开)。8 个采样点的绿色轨迹各是一个点 绕黑色恢复轴画的圆弧,全部躺在垂直于轴的平面内、扫过同一个 90° 角——这就是"螺旋运动"的几何直观。

图 2 — 不变量签名(最关键)

invariant signature
每条线 = 一个点的某个量随关节状态的变化。 上排(正确轴):沿轴坐标 a_i(s) 与到轴距离 r_i(s) 全是水平直线—— 无论盖子转到哪,每个点的这两个量纹丝不动。这个"方差为零"就是不变量,也就是 loss 本身。 下排(故意给错的轴):两个量随状态明显漂移/弯曲,方差被拉起、loss 变大。

图 3 — 残差地形

residual landscape
固定轴心,把候选轴方向在 GT 周围 ±40° 网格上扫,画 log10 L_rev 热图。 中心(GT,红星)是一个深井,残差比四周低约 10 个数量级——几何把这条螺旋轴挑得干净利落、无平台、无歧义。 这正是逐物体优化能收敛、也是我们想摊销进单图前馈头的那个 well。

噪声叠加 — 复现 W2.6 小部件失效 + P1 修复

把噪声加到上面的干净机制上。在一个真正的小部件PNM_100214,part/object 直径比 0.088)上, "3% 物体尺度噪声"其实等于这个部件自身尺寸的 ~34% —— 信号被淹没。下面三张图把这个过程画出来, 锚点数字(@3%、@10%)与已记录的 P1 pilot 完全一致。

图 4 — 噪声搅乱不变量签名

noise signature
小部件的 a_i(s)/r_i(s):0%(左)还是平线,3%(中)开始错乱, 10%(右)彻底乱掉。对比清洁页图 2 的盒盖(大部件),同样的百分比噪声对小部件杀伤大得多。

图 5 — 噪声填浅残差井

noise landscape
同一小部件的 L_rev 地形(共享色标):0% 还有可辨识的深谷, 3% 已填成一片,10% 完全平 —— 螺旋轴变得不可辨识。这就是 W2.6 轴误差爆炸的几何原因。

图 6 — W2.6 头条曲线 + P1 part-scale 修复

error vs noise
轴方向误差 vs 噪声:=小部件+物体尺度噪声+未归一化(W2.6,@3% 冲到 9.7°、@10% 到 20.2°,越过 5° 容差); =大部件同条件(平缓参考);绿=小部件+part-scale 噪声+part 归一化(P1 修复,稳定 ~1.4–1.6°)。 诚实标注:红线低噪声段非单调,是小部件恢复本身不稳(井太浅)的真实表现,非 bug。

关键 nuance(来自 P1):真正的杠杆是噪声尺度模型(part- vs object-relative),不是坐标归一化本身—— 轴方向是尺度不变的。所以 I1 的小部件主张应表述为"在 part 尺度上监督/加权"。

⚠ 重要修正(下方 task① 实测后):fig6 红线那个 W2.6 爆炸,是"未归一化、错条件恢复"的伪影,不是表征本身的极限。 在真实体素分辨率下用良条件、多点恢复,小部件螺旋轴恢复其实是准确的(见 task①)。这条悲观线不要当成定论—— 详见下方"task① 真实重建噪声模型"。

task① — 真实重建噪声模型(实测,修正悲观假设)

问题:我们的体素管线(SS 16³ / SLAT 64³,全局栅格)对小部件造成的几何噪声,是落在 fig6 的乐观(绿)还是悲观(红)区? 在 90 个真实 PNM revolute 部件上实测。结论 NUANCED:

图 8 — 噪声结构:确实是"物体相对"的(premise 成立)

noise bridge
量化噪声占部件的比例随 1/ratio 飙升:小部件 SS16 ~16%(最小的到 ~50%)、SLAT64 ~3.8%, 大部件仅 ~0.9%;SS16 ≈ 4× SLAT64。小部件在 SS16 上只有 ~3 个体素跨度。 所以"噪声是物体相对、小部件吃亏"这个前提成立

图 7 — 但轴恢复误差实测仍低(修正 fig6)

axis err vs ratio
连续 GT 处处 ≈0°(机制精确)。加上真实体素量化噪声后,整体中位轴误差仍很低 (SS16 0.34° / SLAT64 0.08°)——因为良条件、多点的不变量恢复把噪声平均掉了。 只有一条重尾(18/90 部件 >5°),弱相关于"体素更少/部件更小",但不是干净的大小定律(几何相关)。 关键:fig6 那个 9.7° 爆炸是错条件恢复的伪影,不是表征极限。

诚实边界:本测试仍用 GT FK 对应关系(同一批点跨状态对应)。真实重建会丢失对应关系, 且 SS16 的 3 体素欠采样下部件形状几乎无法表征——这部分风险本测试没覆盖,需要真实重建产物才能测(目前缺)。

task② — P2 单图前馈摊销探针(H1,能杀 I1 的一刀)

设计文档最便宜的证伪点:把不变量监督摊销进单图前馈头,看能否追平直接回归。 冻结 DINOv2 ViT-L/14-reg → 小 MLP 头 → 预测螺旋轴;两个头架构/数据/划分完全相同,只有 loss 不同 (回归 GT 轴 vs 不变量 L_inv on FK 多状态栈)。在 160 个 PNM revolute 部件、held-out 48 个上测单图轴误差。

图 9 — H1:不变量摊销 vs 回归

P2 H1
两个箱线几乎重合:回归中位 5.2°,不变量中位 4.6°(不变量在中位上略胜,gap −0.6°), p25–p75 重合(2.5–8.4° vs 2.5–9.5°)。VERDICT: H1 SUPPORT—— 不变量监督摊销进单图前馈头,域内追平(甚至略胜)回归,没丢信息。最便宜的那刀没杀死 I1。 (绝对 ~5° 不算低:单视图推 3D 轴本就难;但关键是两个头一样好。)

task② — P2 stage B(H2 跨 schema,headline):证伪

H2 是 I1 真正的新颖度回报:训练只在 PNM,零样本测 ArtiCraft / ArtVIP,看不变量监督是否因 schema-agnostic 而迁移优于回归。

图 10 — 跨 schema 迁移:回归 vs 不变量

P2 H2
域内 held-out PNM:两个头都准且几乎相等(回归 4.2° / 不变量 3.3°)。 但零样本跨 schema 双双塌到/超过 chance(57.3°):ArtiCraft 79.8° / 78.6°(超 chance,系统性错—— 头自信地套用 PNM 朝向先验),ArtVIP 47.5° / 49.3°(近 chance)。 每个桶里回归与不变量几乎一模一样(gap ±1–2°)。

VERDICT:H2(零样本前馈路线)证伪。不变量监督在跨 schema 上不优于回归——两者一起崩。 瓶颈在上游:单图编码器根本解析不了 OOD 外观/几何,"哪种监督更会迁移"这个问题在头崩掉时无从谈起。 这正是设计文档 R2 预言的失败方式,也与 I3 的 PNM→ArtiCraft 塌方(0.40)同构。

诚实边界(别过度宣判 I1 死亡):① 这是零样本——最苛刻设定;崩溃主要是外观/几何域差,不纯是关节约定问题。 ② 测的是便宜 DINO-头代理,非完整 Stage-2 生成器。③ I1 机制的更弱但更站得住的版本——"一个不变量 loss 可联合监督多源、 无需 schema 对齐"(目标数据在训练集内)——本探针没测,仍开放。但 H2 字面所述(零样本 invariant>regression)已证伪。

H2 复核 — 用真实纹理渲染重做(回应"为何用玩具图"的质疑)

上面的 H2 用的是我图省事渲的平面着色玩具图(相机虽跨源一致,但外观是 confound)。 用真管线的 真实纹理渲染(预处理 imgs/00.png,PNM 与 ArtiCraft 共用同一套 TRELLIS view_index 相机环)重做:

图 11 — 真实渲染下的 H1/H2

real render P2
域内 PNM:reg 4.2° / inv 7.1°(与玩具渲染同量级)。 ArtiCraft 跨 schema:reg 71.7° / inv 79.5°——仍塌到/超过 chance结论:H2 负结果对输入质量稳健——换真实纹理渲染、相机一致,跨 schema 照样崩、不变量照样不优于回归。 之前的 H2 证伪从"暂定"升为稳健

两点诚实更正(本轮发现):① 修正后的 __official SLAT 潜变量确实在盘上(嵌在每个预处理资产 trellis_part_preprocess/latents/...__official/part_X.npz),生成脚本 production_official_reencode.py 也在—— 我早先"latents 不在盘上"的说法是错误搜索导致,已纠正。② 但修好的是 SLAT 解码器(几何),与本 I1 探针用的 DINO 图像编码器 是不同组件,故不改变 H1/H2 数字;真正改善的是把玩具渲染换成真实渲染(域内更稳),而那也救不了跨 schema。

I1 决策门小结 + 下一步

结果账本:机制复现 ✓ · ArtPro R5 新颖度 ✓ · task① 噪声模型(NUANCED,悲观假设被修正)✓ · H1 域内摊销 SUPPORT ✓ · H2 零样本跨 schema 证伪 ✗。

对 I1 的判定:按设计文档自己的决策门—— "若 P2 显示不变量监督跨 schema 不优于回归 → schema-agnostic 主张一文不值 → 报告负结果而非扩大规模"。 I1 退化为"域内精度故事",不是"跨域泛化故事"(与 OSH 路线结局同构)。其新颖度楔子的第二半(schema-agnostic 多源迁移) 在便宜的零样本前馈路线上没兑现

脚本:screw_invariant_reproduction.py · screw_invariant_noise_demo.py · i1_recon_noise_model.py(task①)· i1_p2_amortize_probe.py(H1)· i1_p2_h2_crosschema.py(H2)· 数据 JSON 见 assets/。