SceneBenchmark / 净空 · 四数据集净空标注覆盖统计 + 代表类目「可动件按关节范围扫掠的占用体」可视化 · 2026-06-17
| 数据集 | 总件数 | 有净空 | bloat 中位 | bloat 范围 | 缺口 / 说明 |
|---|---|---|---|---|---|
| PM (PartNet-Mobility) | 2347 | 2330 | 1.84 | 1.0 – 10.61 | 17 件无可动件 → 无扫掠净空 (诚实缺口) |
| Articraft (LLM 合成) | 270 | 270 | 1.75 | 1.0 – 5.85 | 全覆盖 |
| HSSD 检索替换 (voxel) | 2120 | 2108 | 2.06 | 1.0 – 7.71 | 12 件 unmatched/error → 无检索源 |
| HSSD 官方铰链 (per-part) | 1480 | 1480 | — | per-part swept | 5648 个关节, 官方人工骨架 GT |
| 合计 | 6217 | 6188 | — | — | 六千余件四数据集净空标注 |
交叉核查: HSSD 检索替换结果里所有 tier=T2-PM 的 match_id(289 个去重)
全部存在于 pm_clearance_voxel.json — 没有「有替身却缺净空源」的件。
诚实缺口仅在标注本身: PM 有 17 件无可动件(扫掠=静止), HSSD 有 12 件 unmatched/error。
bloat = 扫掠占用体 / 静止占用体(同 pitch 体素口径)。
可动件沿 GT 关节范围自适应采 30+ 姿态 → 表面点散布到 pitch 体素栅格 → 1-voxel 膨胀(保守包含) → marching cubes 出净空几何。 相机按扫掠体 bbox 自动拉远框住运动全貌。每张 PNG 已逐张肉眼核验扫掠体确实包住可动件运动范围、非空。 渲染: Blender 4.2.9 EEVEE_NEXT + Standard。蓝体半透明,机身较小的类(冰箱/洗衣机/储物柜)可透看到内部橙门; 门扫出大弧把机身整体罩住的类(微波炉/烤箱/保险箱)橙门被蓝弧遮挡属正常,蓝弧即净空边界。
旋转把手/喷头绕底座转 → 半球扫掠域
门绕竖轴旋转 → 圆柱弧扫掠
门侧开 90° → 前向四分之一弧
门下翻 → 前下方四分之一弧
门下翻 → 前下方扇形
前开门绕侧轴旋转
柜门旋转 + 抽屉平移并集
盖子翻开 → 后上方弧
屏幕绕铰链后仰
门大角度旋转开 (~270°)
swept_voxel.py / gen_swept_illust.pyrender_swept_illust.py (复用 render_clearance_body.py 体系)route1_pilot.py::load_object; PM 源 .../PartNetMobility/extracted/dataset/<id>//data/scenesmith_unified_articulation_20260616/annotations/{pm,articraft,hssd}_clearance_voxel.json + hssd_official_clearance.json