完整餐厅家具与观测点、原生场景验收
桌子、两把带靠背的椅子与已验收凳子组成 4 个可编辑根对象、37 个闭合部件。原始坐标中的所有者观测门槛通过;另行编排的布局对全部 507 对跨家具部件认证了至少 5 mm 间隙。桌子相对完整参考的反向面积 P95 仍为 48.378 mm。
补全餐桌与两把靠背椅,保留已验收的圆凳
可编辑餐厅资产现包含四个家具根对象与 37 个封闭部件:餐桌八个部件、两把靠背椅各十一个部件,以及保留的七部件圆凳。CPU 拟合使用原合成采集观测;原生 Blender 把源几何保留在可切换的对照集合中。
选定的餐桌与椅子族采用矩形主体表面和四根直支撑。训练观测支持可见连接件与曲面软垫。偶数帧确定拟合形状,原归属的全部奇数帧点均纳入下面的导出三角形验证,排除点数为零;候选框归属补回因对象框竞争而遗漏的支撑证据。
这些数字描述冻结拟合形状在原始拟合坐标中的表现。最终家具位置另行编排:两把椅子的根对象分别向外平移 111.876 mm 和 105.957 mm,消除与桌子的原有相交。桌子、已验收凳子和拟合形状网格均保持不变。原生场景、全新进程重开、撤销后及可见 GLB 往返均独立认证全部 507 对跨家具部件具有至少 5 mm 间隙;实测最小值为 5.550 mm。布局编辑不改变冻结拟合及其观测测量。
归属观测门槛不能证明完整隐藏表面的准确性。餐桌拟合面积到完整参考的 P95 为 48.378 mm,而原观测基线为 17.933 mm;即使测得的归属点通过固定 10 mm 门槛,补全的不可见区域仍有误差。
| 拟合对象 | 全部归属奇数帧点 | 三角形 P95(mm) | 10 mm 内比例 | 封闭部件 |
|---|---|---|---|---|
| 餐桌 | 2,840 | 3.692 | 99.894% | 8 |
| 西侧靠背椅 | 1,848 | 5.668 | 98.593% | 11 |
| 东侧靠背椅 | 2,451 | 7.570 | 97.103% | 11 |

与原有缺损餐桌和椅子对照
从正面检查完整家具并在 Blender 中编辑
正面视图展开两把椅子的靠背、座面与支撑组。选择家具根对象即可移动、旋转或缩放整个家具;选择子部件则可编辑原生网格。部件保存了拟合图元参数与来源信息。
原生移动、偏航、缩放、撤销和重做检查覆盖桌子与两把新拟合椅子;四个家具根对象均可独立选择。保存场景在全新进程中重开,可见 GLB 往返同时核对原生有向三角形和 507 份实际跨家具分离证书。冻结拟合坐标与另行编排的场景布局变换分别记录。
| 原生场景检查 | 记录结果 |
|---|---|
| 家具根对象 | 4 个可独立选择 |
| 封闭可编辑部件 | 37 |
| 保留源对象 | 17 份几何/变换/属性/材质记录 |
| 原生操作 | 桌子与两把椅子:移动 / 偏航 / 缩放 / 撤销 / 重做;场景全新进程重开通过 |
| 可见 GLB | 38 个网格;最大角点误差 1.17727e-6 m |
| 跨家具部件对 | 507 / 507 在原生、全新进程重开、撤销后与 GLB 中认证 |
| 最小认证间隙 | 原生、全新进程重开、撤销后与 GLB 均为 5.550 mm;要求 >=5.000 mm |

检查支撑、连接与落地接触
把完整参考误差与观测点验收一起报告
独立参考评估在拟合形状冻结后执行,没有改变参数。参考射线召回率表示有效物理参考命中中,距离拟合表面不超过 10 mm 的比例;反向面积 P95 对完整拟合面积采样,测量其到完整参考的距离,包含结构补全表面。
餐桌反向面积误差尾部比原观测基线更差,两把椅子的反向面积尾部则改善。这是一个合成采集场景的有限补全;观测门槛、结构检查、布局检查和完整参考诊断回答不同问题,不能据此认定一般真实场景重建精度。
| 对象 | 参考射线 10 mm 内召回率 | 拟合面积 P95(mm) | 原观测面积 P95(mm) |
|---|---|---|---|
| 餐桌 | 96.887% | 48.378 | 17.933 |
| 西侧靠背椅 | 94.467% | 25.088 | 27.120 |
| 东侧靠背椅 | 92.972% | 23.502 | 35.599 |
在原餐厅场景中打开拟合凳子
已验收的原凳子被加入餐厅编辑任务的副本,沿用已有世界坐标,无需额外配准。保存的 Blender 场景包含可单独编辑的凳面、三条腿和三根横撑,并保留原来的桌子、椅子和环境。
九个源对象的几何、变换、颜色与来源属性全部保留。原观测凳子保存在命名对照层中,在修复视图里隐藏。原生撤销与重做可以让七个拟合部件一起移动;未改动的保存场景也通过了新进程重开检查。
可见场景 GLB 包含 12 个网格,不导出隐藏的原观测凳子。其有向三角面与可见场景匹配,最大角点距离为 1.17727e-6 m。原生逐面来源信息保留在 Blender 文件中,GLB 则携带经过检查的可见几何、颜色与对象元数据。
| 场景检查 | 记录结果 | 范围 |
|---|---|---|
| 原始源对象 | 9/9 个保留 | 几何、变换、颜色与来源属性 |
| 可编辑替换资产 | 7 个部件 | 凳面、三条腿和三根横撑,沿用原坐标 |
| 原生操作 | 撤销 / 重做 / 重开通过 | 脚本执行的原生检查;新进程重开文件 |
| 可见场景 GLB | 12 个网格 | 不包含隐藏的原观测凳子 |
| GLB 最大角点误差 | 1.17727e-6 m | 与可见原生几何进行有向三角面匹配 |

保留原观测,供前后对照
六个合成迁移样例:保留接受结果与负例
运行前冻结了六个合成开发样例:两个适用形状、一个局部观测与噪声压力样例,以及四腿、椭圆凳面和仅上半部裁剪三个负例。最终接受两个适用样例和一个压力样例,三个负例均不接受。每个接受结果同时通过了独立工程验收:验证点到实际三角面的 P95 不超过 10 mm、七个部件闭合、九处实体接触成立,且装配和输入身份一致。
椭圆凳面暴露了原运行时判定的错误:原拟合器的门槛给出通过,但独立三角面 P95 为 12.247 mm,超出预先登记的 10 mm 目标。修订仅把验证尾部误差限制加入运行时隐式残差判定,使该门槛从通过变为不通过。相同输入下全部 40 个已生成 PLY 文件的字节完全一致;这一修订改变了接受判定,没有改善候选几何。
仅上半部裁剪样例未产生可评估的输出网格,其 812 个验证点没有有限三角面距离,表中的 P95 因此记为无可用值。最初六次评估调用还因参考元数据格式不匹配而全部失败,修正评估器后使用未变化的拟合结果和参考重新运行,原始失败日志保留在报告中。
这些样例在首次拟合前冻结,但椭圆负例已用于修订判定,因此本轮结果属于开发与回归证据。人工选定的圆面三腿凳形状族、接近正确的对象框和精确相机位姿仍是前提;当前结果不构成独立留出测试或真实家具的普遍成功率。
方法依据之一是 Li 等人在 SIGGRAPH 2011 发表的 GlobFit:把局部原语拟合与全局几何关系约束结合。当前实现采用人工指定的凳子形状族,是对这一建模思路的有限应用,并非 GlobFit 的完整复现;该引用提供可追查的方法背景,不证明本方法具有创新性。
| 样例 | 验证点数 | 三角面 P95(mm) | 原门槛 → 修订门槛 | 最终候选 |
|---|---|---|---|---|
| 紧凑高凳 | 1,523 | 3.012 | 通过 → 通过 | 接受 |
| 宽面矮凳 | 2,338 | 3.135 | 通过 → 通过 | 接受 |
| 局部观测与噪声 | 1,689 | 7.182 | 通过 → 通过 | 接受 |
| 四条腿 | 2,088 | 50.401 | 不通过 → 不通过 | 不接受 |
| 椭圆凳面 | 1,945 | 12.247 | 通过 → 不通过 | 不接受 |
| 仅上半部裁剪 | 812 | 无可用值 | 不通过 → 不通过 | 不接受 |
真实 Table0:背景配准仍未通过桌面验收
真实 tea_room 扫描中的 Table0 平面探查未达到“至少 80% 验证观测在 10 mm 内,且验证至少覆盖五帧”的原型支持门槛,本轮没有交付新的已接受桌面或整桌资产。初始表面仅有 895 个三角面,分成 43 个连通分量。15,361 个桌框候选观测中,9,912 个(64.53%)与椅子先验框重叠,原归属规则分配给桌子的观测为 5,449 个。这些计数包含重复帧观测;先验框归属歧义不是实测分割错误率。
拟合固定使用帧编号不大于 30 的观测,验证使用大于 30 的观测。候选由 Table0 框及其原顶部先验下方 150 mm 到上方 50 mm 的固定高度带选取。下表始终评估相同的 7,127 个验证观测,保留离群点;比较的是观测到平面的距离,不是与独立真实桌面的物理误差。
对照实验只用背景执行点到平面 ICP:排除所有沿各自局部轴扩张 80 mm 的对象框,以训练帧背景作为目标,验证物体点不参与配准。将通过预定背景检查的刚体变换用于验证观测后,仍使用原训练平面和原验证分母。平均距离及 10 mm 内比例有所改善,但 P95 尾部误差变大,支持比例仍低于 80% 门槛。
独立共同网格检查发现,帧 46–49 相对帧 4,在共同 5 cm 网格中的高度差中位数为正 13–18 mm,参与这些比较的网格高度差均为正。这支持跨帧几何存在偏移,但尚不能区分位姿误差、深度误差或物体运动。下一步背景配准必须同时检验目标几何及尾部误差,背景匹配分数本身不足以证明桌面可用。
| 对照条件 | 平均距离(mm) | P95(mm) | 10 mm 内比例 |
|---|---|---|---|
| 原 RoomPlan 顶部平面 | 68.1603 | 91.3593 | 0.6174% |
| 训练观测拟合平面 | 15.4891 | 26.4092 | 22.7585% |
| 仅背景 ICP,固定拟合平面 | 11.7867 | 35.5102 | 58.1170% |
在一个开发样例中得到完整可编辑的凳子
此前的原生工作流已经验证编辑与导出能够保留源几何,但重建凳子仍有断腿和缺失横撑。这促使本次单独检查资产质量:除了保存的数据,还要检验凳子部件是否完整可辨、各自闭合,以及连接是否成立。
完成的装配包含七个各自闭合、可单独编辑的部件:一个凳面、三条腿和三根横撑。九处预期的腿—凳面及横撑—腿接触均具有正体积重叠。部件以独立壳体相互交叠,保留逐部件编辑能力;它们尚未焊接为一个整体网格。
本地 CPU 拟合使用 18 帧中的 3,812 个已按先验归属的观测点,以及操作者明确选定的三腿凳形状族。拟合器读取观测场景与点,不读取参考几何。部件结构由该形状族提供,其中也包含仅靠当前观测无法确定的表面。

直接测量导出三角面,并保留结论边界
偶数帧的 1,927 个点用于拟合、初始化和模型选择,奇数帧的 1,885 个点用于同场景验证。独立检查直接计算点到最终导出部件三角面的无符号距离:验证均值为 1.047 mm,P95 为 2.954 mm。这里报告的是实际三角面距离,而非拟合器的有符号距离残差。
奇偶帧划分在同一个人工构建开发样例内分离了所报告的点。由于此前存在人工指导的开发迭代,不能据此认定为从未接触的独立留出评测。接触检查确认最终部件具有实体重叠;各自闭合的拓扑则确认了可编辑部件的完整性。
本次有边界的结果由已有本地 CPU 工具完成。整场景质量、对未见家具或真实房间的泛化、独立留出评测与交互性能仍待验收。下文保留 S2a 及更早的场景数据保留证据,并沿用其原有适用范围。
| 检查项 | 记录结果 | 分母 / 解释 |
|---|---|---|
| 开发输入 | 3,812 点 · 18 帧 | 一个人工构建凳子样例中按先验归属的点 |
| 训练 / 验证 | 1,927 / 1,885 点 | 同场景的偶数帧 / 奇数帧 |
| 可编辑拓扑 | 7/7 个部件各自闭合 | 一个凳面、三条腿、三根横撑 |
| 预期接触 | 9/9 处具有正体积重叠 | 三处腿—凳面与六处横撑—腿接触 |
| 验证距离均值 | 1.047 mm | 1,885 个点到最终三角面的无符号距离 |
| 验证距离 P95 | 2.954 mm | 相同 1,885 个点距离的第 95 百分位 |
S2a:相同漏选指标背后的不同机制
餐厅目标漏选、可评分面积的 99.46% 来自目标盒重叠;书架目标的 99.19% 位于目标盒之外并被归入环境。六组诊断保留原 B1 预测和评分,十一类面积与原混淆、不可评分和 TP/FP/FN 总量守恒,最大差 6.8213e-13 m²。
B1 分块、原生编辑和独立来源核对均通过六场景验收,保留 491,066 个来源面。24 次编辑和 24 次撤销/重做用时 152.59 秒;最大来源角点误差 6.1440e-7 m。未决归属仍是单独区域,参考标签只用于事后诊断。
下一步先实际修正一组竞争归属,再单独研究盒外观测表面的恢复。脚本中的固定选面只检验数据保持;本轮没有证明边界质量提高、人工成本下降或保留集泛化。下表百分比分母是各目标漏选且可评分的表面面积。
| 目标 | 目标盒重叠 | 目标盒外→环境 |
|---|---|---|
| 接触椅 | 96.17% | 0% |
| 同色餐厅 | 99.46% | 0% |
| 曲面沙发/墙 | 0% | 99.73% |
| 遮挡书架 | 0% | 99.19% |
| 薄杆架/噪声 | 0% | 100% |
| 综合书房 | 13.79% | 84.03% |

S1:在原生 Blender 中审查与编辑观测表面
2026 年 10 月 6 日的这一阶段把六组原创 S0 表面包接入 Blender 5.1.2。本地 AlvenX 面板可以导入带哈希的表面包、把选中的面转移给已有区域、以明确的米/度参数平移和旋转,并导出 GLB 与身份记录。原生 .blend 文件保留来源面 ID 与已审查的归属。
每组任务先把 12 个环境面转给主区域,再按 Blender Z-up 坐标平移 (0.25, −0.10, 0) m;副区域绕记录的枢轴、世界 Z 轴旋转 32 度,再向这个已变换的副区域转移另外 8 个环境面。选面按面质心到目标包围盒中心的距离排序,不使用参考实例标签。这样可以检查:目标已经移动时,归属转移仍保留选中面的世界表面。
下图是书房组合重建表面的真实 CPU Cycles 编辑前后渲染。缺失和碎片化观测仍然可见。流程保存并编辑观测几何;这些脚本选面的语义质量,以及完整物体恢复,需要另行评价。

原生操作与保存/导出回读的实测验收
六组任务全部通过,每组执行四次操作。每次操作均调用 Blender 后台原生撤销栈中的实际 undo 与 redo,并对照预期状态检查来源面身份、归属、审查标记、世界三角面角点、观测线性 RGBA 与材质值。每份保存后的 .blend 都由另一个全新的 Blender 进程重开。
GLB 验证使用一对一有向三角面匹配,保留面的重复次数,几何容差为 50 微米。这解决 S0 中最近顶点对应的歧义,同时把表面保存与焊接拓扑区分开。在当前容差内方向难以区分的面会明确计数。S0 原失败记录继续保留为历史证据。
六组场景共用 117.30 秒,使用现有本地 CPU 工具,新增付费为零。以 0.1 秒间隔采样得到的 Blender 进程树 RSS 最大值为 1.153 GiB。12 次有界面转移耗时 0.0416–0.1491 秒,样本经验第 95 百分位为 0.12903 秒。这些是每组总计 20 个选中面的脚本化算子耗时,未测人工审查成本或交互 UI 延迟。
| 验收项 | 实测结果 | 测量范围 |
|---|---|---|
| 原生场景工作流 | 6/6 通过 | 六组原创开发场景表面包 |
| 原生操作与撤销/重做 | 24/24 通过 | 每组四次操作,使用后台原生撤销栈 |
| 新进程重开 .blend | 6/6 通过 · 状态误差 0 m | 世界角点、归属、审查标记与元数据 |
| 编辑角点最大误差 | 4.7762e−7 m | 按来源面身份与预期刚体编辑比较 |
| GLB 表面角点最大误差 | 1.2839233e−6 m | 一对一有向三角面实例;容差 50 µm |
| 线性 RGBA 最大差异 | 1.7881393e−7 | GLB 回读后的观测角点颜色 |
| 固定视角渲染 RGB 平均差异 | 2.74304e−5 | 一组书房组合渲染;平均值容差 0.01 |
| 输入与导出故障控制 | 15/15 通过 | 明确无效输入与注入的发布故障 |
故障控制与证据的具体边界
15 项原生控制覆盖空选择或选择整个区域、原区域等于目标、身份缺失、多对象编辑模式、选面精确性、非有限变换、来源哈希错误、重复来源 UUID 或当前区域 ID、隐藏区域、排除的视图层、不可见集合及导出发布故障。相关记录保存状态比较,并在适用时检查旧输出哈希保持不变。场景任务还会拒绝被修改的角点颜色与材质值。
书房组合固定视角下,来源和 GLB 回读渲染的 RGB 平均绝对差异为 2.74304e−5,最大像素通道差异为 0.04706;记录的验收阈值是平均差异 0.01。一组场景、一个视角提供有限的外观证据。数值材质与观测顶点颜色检查,尚未建立任意 Blender shader、UV、纹理、接缝或光照保真结论。
来源面 ID 保存在原生 .blend 中,身份 sidecar 记录资产包溯源。GLB 不保留这些原生逐面编辑属性;继续编辑时应重开 .blend。一对一三角面检查验证表面几何与重复次数,焊接顶点拓扑、接缝,以及极小面方向仍有各自范围。
S1 是六组原创开发场景上的脚本化工程验收。人工交互纠正质量和成本、独立真实实例标签、留出集、完整物体恢复与整机 OS 断网验证仍待完成。下方 S0 分数继续描述已重建、可评分表面的归属质量。
打开可编辑场景包或重放原生任务
书房组合压缩包提供原创 MIT 输入对应的 .blend、GLB、身份与验收记录。按照 S1 说明核对文件哈希,在 Blender 中注册 blender_edit.py,再打开保存的场景并检查 AlvenX 面板。.blend 是可继续编辑的来源文件,GLB 是已检查的交换资产。
完整重放时,用已有开发运行器准备六组 S0 表面包,再为 run_edit_suite.py 指定一个空输出目录。运行器启动原生 Blender 任务进程与独立重开进程,保留日志,生成固定结构的证据与实际耗时。运行前须把依赖和输入资产准备在本地。
python run_edit_suite.py --results .\local-s0 --output .\local-s1 --blender "C:\Path\To\Blender\blender.exe"S0:六组复杂开发场景与独立物理参考
此前分区阶段是 2026 年 10 月 4 日的 S0 开发对照:接触椅子、同色餐桌、曲面沙发靠墙、遮挡书架、噪声下的细杆架,以及书房组合。六组分别使用 16、18、16、12、16、14 帧,共 92 帧;家具包含曲面、凹面、细腿、层板与局部遮挡,布局和几何均有实质变化。
原创实体网格与实例标签先于扰动对象盒生成。射线使用真实相机姿态;输入扫描写入含噪深度和测量姿态。盒尺寸、朝向与位置误差作为输入先验,独立参考标签只在分区完成后供评分读取。
每组先融合出同一个 CPU TSDF 网格,再比较 B0、B1、B2,共完成 18/18 次方法处理。流程复用已安装工具,新增付费为零。下图展示作者定义的物理参考,重建与分区质量由下一节的实测结果说明。

面积指标显示三种直接规则的取舍
B0 沿用三个顶点拥有相同唯一对象归属的规则;B1 按三角面质心的唯一盒归属;B2 在每面均匀面积采样 49 点,至少 60% 多数才接受,重叠先验保留未决状态。三者接收相同网格和先验,保持网格几何不变。
评分在固定重建网格上按面积计算,与独立物理网格做最近表面对应。距离容差为 0.08 m,每面采用 7 个评分样本;最近异标签表面的距离差在 0.002 m 内时保留不可评分状态。表中的数值是六组任务目标的场景宏平均,漏选与误选比例均以该组全网格可评分目标面积为分母。
B1 的平均目标 IoU 为 0.823510,比 B0 高约 3.23 个百分点,同时非目标误选面积比例从 0.0297% 上升到 0.1348%。B2 的更多面内采样在这批开发组中未超过 B1。同色餐桌的 B1 仍漏选 34.07% 目标面积,遮挡书架仍漏选 27.60%,说明简单几何规则留下了实际改进空间。
随后完成 3 个匹配容差(0.04 / 0.08 / 0.12 m)与 2 个每面评分采样数(7 / 49)的敏感性对照,共 108/108 次方法处理完成,完整性与重放检查没有发现问题。原配置(0.08 m、7 点)的 18/18 次逐对象评分重放与原结果一致;六配置的场景宏平均排名均为 B1 > B2 > B0。同场景、方法与容差下,改变采样数产生的最大 IoU 差为 0.000826593,出现在细杆场景 B0、0.04 m 容差。可评分网格面积比例为 96.5906%–99.9691%,该比例表示评分对应在重建网格上的可用范围,不是独立参考表面的重建覆盖率。
| 规则 | 平均目标 IoU | 平均漏选面积 / 目标面积 | 平均非目标误选面积 / 目标面积 |
|---|---|---|---|
| B0 | 0.791204 | 20.8548% | 0.0297% |
| B1 | 0.823510 | 17.5341% | 0.1348% |
| B2 | 0.818533 | 18.0361% | 0.1295% |

本轮开发结论与后续验收范围
S0 给出了六组原创开发场景的分区证据,18 次处理全部完成。上方 S1 增加了脚本化原生编辑任务;留出测试、独立真实实例参考与整机 OS 断网复跑仍待验收。当前分数对应已重建且可评分表面,完整物体覆盖与未观察背面恢复需要各自证据。
S0 书房组合原试验保留了编辑前 GLB 环境连接检查失败。只读诊断把差异定位到最近顶点对应不稳定:两个顶点相距约 1.609 微米,五处三角面索引差异均源于这个映射,局部三角面角点坐标计数一致。原记录继续保留;上方 S1 改用一对一有向三角面检查,并对新任务完成回读。下方真实扫描和双盒样例保留此前的局部编辑证据。
本轮重建与三规则对照耗时约 30.76 秒,进程生命周期峰值工作集为 229.16 MiB;该数值来自一个 CPU 进程,反映整次运行累积峰值,不能作为逐案例增量或完整进程树峰值。
此前实景基线:验证编辑与导出路径
10 月 4 日的本地实跑把 RGB-D 拍摄记录连接到观测点、融合表面、明确的可编辑区域及 Blender/GLB 原生输出。验收检查来源身份、单位、相机约定、指定平移与导出后恢复的几何。
真实输入为 LiteReality/example-scans 的一个 tea_room,固定提交 3f2ca5d618fe86b264716200baea19ae0aea0d49:253 文件、10,518,452 字节,以及 62 组匹配的 RGB、深度、置信度和相机记录。已记录 Git 身份、大小、SHA-256 哈希、图像解码与 USDZ ZIP 检查。
保留测量来源与明确的几何归属
解析器将 RGB 内参缩放到深度分辨率,转换 ARKit 相机基底,保留以米为单位的 Y-up 世界坐标。过滤无效深度和低置信度,同时保留每个点的颜色、来源帧与深度像素坐标。
RoomPlan 有向盒与有限结构剔除提供几何归属先验。唯一候选进入对象区域,重叠候选保留在歧义层,其余观测保留在环境层。流程保留扫描提供的表面,并明确记录未决选择。
连接 CPU 融合、原生编辑与独立回读
Open3D ScalableTSDFVolume 使用 0.035 m 体素与 0.105 m 截断融合 62 帧完整深度图。仅当三角面的三个顶点拥有相同且唯一的对象归属时,该面进入可编辑区域;其余面均留在环境层并记录计数。
Blender 入口导入带哈希的 PLY 部分,通过 (X,Y,Z) → (X,−Z,Y) 转为米制 Z-up 场景,保留来源 UUID 与角色,沿 X 将选定 Sofa0 表面区域移动 +0.3 m。随后用固定审查视角渲染,保存编辑前后 .blend,并通过原生 I/O 导出两份 GLB。
验证分别将 GLB 导入空场景,再重开编辑后的 .blend,比较 UUID、角色、三角面数量、连通关系与世界几何。双向最近邻顶点距离允许导出因法线或材质拆分顶点,记录的容差为 0.00005 m。
此前真实扫描的选定区域验证
实跑使用 Windows、CPython 3.12.14、NumPy 2.3.5、Pillow 12.3.0、Open3D 0.19.0 与 Blender 5.1.2。重建和渲染均使用 CPU,没有付费服务调用或模型权重。
真实扫描得到 639,790 个采样观测,融合表面包含 83,425 顶点与 155,768 三角面。Sofa0 可编辑表面包含 2,480 顶点与 4,409 三角面。两次 GLB 重导入的双向世界顶点最大距离均为 8.940696716308594e−7 m,小于 50 µm 容差;编辑后 .blend 重开的最大距离为 0 m。
点编辑移动了 37,655 个选定观测,保存、重载后的位移误差为零,并保留其他点、对象元数据、颜色、标签与来源。融合网格仍有 275 个 Sofa0 候选边界面留在环境层,因此原生编辑的验收范围是选定的观测区域。
| 真实扫描检查 | 观察结果 | 范围 |
|---|---|---|
| 输入 | 62 帧 RGB-D | 一个 tea_room 场景 |
| CPU TSDF 表面 | 83,425 顶点 / 155,768 三角面 | 观测融合表面 |
| Sofa0 选定表面 | 2,480 顶点 / 4,409 三角面 | 几何归属先验 |
| 指定平移 | X +0.3 m | 源 Y-up 米制坐标 |
| 编辑前后 GLB 回读 | 最大 8.940696716308594e−7 m | 双向顶点距离;50 µm 容差 |
| 编辑后 .blend 重开 | 最大 0 m | 原生场景几何 |
| 保留的目标边界 | 275 个候选面 | 完整语义提取尚未验证 |
此前公开两盒对照与原生场景下载
公开图来自单独的原创解析场景:两个实体盒、地面与后墙,由两个相机观测。其求交生成的 RGB-D、语义标签和物理预期独立于真实扫描数据构建。
同一 CPU TSDF 与 Blender 链路得到 9,081 顶点、16,820 三角面和三个网格部分。选定对照区域沿 X 移动 +0.3 m,并通过原生保存、导出、重开验证。对比渲染、编辑前后 GLB 和 .blend 以 MIT 提供,同时附精确文件哈希。
固定上游样例树没有 license 文件,因此真实 tea_room 输入、派生几何和渲染均保留本地。文字结果与来源清单记录真实实验;以下下载只包含原创公开对照。
用准备好的本地工具复现公开链路
复现说明分别列出一次性软件准备与本地执行。先准备固定版本的 CPython 3.12 环境及 Blender 5.1.2,再设置下方可执行文件路径。原创场景可在本地生成,无需外部扫描。
以下命令重建原创场景、融合表面、编辑 synthetic-target,将原生场景、GLB、渲染与验证 JSON 写入 .local 目录。复现说明另列固定真实输入的实验步骤。
$Python = (Resolve-Path '.local\venv312\Scripts\python.exe').Path
$Blender = 'C:\path\to\blender\blender.exe'
& $Python fixtures/make_rgbd_fixture.py --output '.local\fixture-input' --resolution-scale 4
& $Python scan_pipeline.py reconstruct --input '.local\fixture-input' --output '.local\fixture-before' --frame-step 1 --pixel-step 2 --min-confidence 1 --max-depth 6 --voxel-size 0.015 --box-margin 0.025 --structure-tolerance 0.025
& $Python -m unittest discover -s tests -v
& $Python reconstruct_mesh.py --scene '.local\fixture-before\scene.json' --output '.local\fixture-surface' --voxel-size 0.035 --truncation 0.105
& $Blender --background --factory-startup --python blender_scene.py -- --scene '.local\fixture-surface\surface-scene.json' --output '.local\fixture-blender' --object synthetic-target --translate 0.3 0 0分别验证完整性、物理精度与网络隔离
此前真实实验只覆盖一个场景,没有独立对象尺寸与语义实例真值。逆投影和同一传感器 PCD 对照检查数值或坐标一致性;观测区域尚不能证明完整家具资产、未观察背面或独立实测的物理准确率。
软件与输入在联网时准备。Python 审计守卫分别安装在重建解释器与 Blender 内嵌 Python 中,故意 DNS 探测被拒绝,记录的执行读取已准备本地文件。原生 C 网络调用与独立子进程不在守卫覆盖范围,整机断网执行尚未验证。
工程贡献是限定扫描解析器、来源保留、明确的区域选择合同、原创负对照,以及将成熟 TSDF 与 Blender 工具连接起来的原生几何验证。阶段一的三长方体实验仍作为历史证据保留。


