- Implemented viewport.py for handling 3D view projections, gestures, and overlay drawing. - Created refine_image_selection.py to manage the refinement of gesture masks and output image bounds. - Added selection module with refine_selection.py to process and crop images based on alpha channel visibility. - Introduced __init__.py for selection module to expose refine_selection function.
2.5 KiB
2.5 KiB
1. 统一 GeometryFrame 边界
- 1.1 按单帧 MoGe-2 数据重建
GeometryFrame:定义 Depth、Normal、Validity、Intrinsics、Points 字段及 dtype/shape 校验,删除mask、confidence、valid_mask、model_mask多重状态并补充单元测试。 - 1.2 让 MoGe-2 生产推理直接返回
GeometryFrame序列,在适配器中完成 batch 拆分、Mask 到0/1Validity 的转换和内参像素化;删除旧Prediction与二次转换入口,并验证每个字段忠实来自原始预测。 - 1.3 为 DA3 保留原始调试推理并实现
GeometryFrame适配器,验证normal=None、派生 Points、Intrinsics 和由 Confidence 提供的连续 Validity,保持该参考路径可用。
2. 统一 MoGe-2 输入
- 2.1 将模型输入准备改为始终读取最终 Region RGBA、按输入上限缩放并以
RGB × Alpha合成到黑底;用像素测试验证 Alpha 为0、0.5、1的输出。 - 2.2 增加不同隐藏 RGB 的工作流等价测试,验证可见 RGB 与 Alpha 相同时生成完全一致的 MoGe-2 RGB 输入;运行相关 Server Job 测试。
3. 让几何产物只消费 GeometryFrame
- 3.1 修改 Vector/Z Depth Writer,使其只接收
GeometryFrame,完整写入有限的 Points/Depth RGB,并把frame.validity单独写入 Alpha;用 EXR 回读测试验证 Validity 为零时 Field 仍保留。 - 3.2 为 Depth Writer 增加缺少 Points、NaN/Inf 失败测试,验证错误明确区分 Point Field 与 Depth Field,且失败时不生成 EXR。
- 3.3 修改 Normal Writer 只从
GeometryFrame.normal读取预测,保留业务 Region Mask 的可见性处理,并增加缺少 Normal 与非有限值测试。 - 3.4 修改 Metadata Writer 从
GeometryFrame按需计算正 Validity、正且有限 Depth、业务 Region Mask 的校准交集;迁移 Artifact 编排层,使其不再读取 MoGe-2 专用预测字段,并运行 Server Job/Runtime 测试。
4. Depth Surface 回归与文档
- 4.1 增加边缘 Mask 为假但 XYZ 连续的 Depth Surface 测试,验证求值网格不会聚集到相机原点;运行
uv run pytest tests/test_cutout_objects.py tests/test_node_assets.py。 - 4.2 更新 GeometryFrame、模型适配、MoGe 输入、Depth/Normal/Metadata Artifact 语义及 Cutout Runtime 文档;运行
uv run pytest tests/test_docs.py,不构建文档产物。 - 4.3 运行
uv run pytest完成全量回归,确认两条前景工作流、Depth Plane、Depth Surface、打包和文档检查全部通过。