原路径:/SSD2/yangzijing/egoview-v9-foundationhand-s9l10-20260901/V9_BOOTSTRAP_PROMPT.md
SHA256:850c2f5c4408efc22ffc555d95b8e87a3768b32d0d6700974d70a2136e05f208
1 # V9 Integration Task: Replace J55 with FoundationHand-S9L10 (1e-6) 2 3 你当前位于: 4 5 `/SSD2/yangzijing/egoview-v9-foundationhand-s9l10-20260901` 6 7 这是一个新的独立 V9 工作目录。不要只给方案,请完成定位、实现、focused tests、实际视频运行、抽帧检查和结果汇报。 8 9 ## 1. 任务目标 10 11 我们已经有一条可工作的 V8 fusion 数据标签与可视化管线。V8 使用旧的 FoundationHand J55 prediction 作为融合输入之一,同时保留原有 HaWoR/geometry 分支。 12 13 现在建立 V9: 14 15 - 只把 V8 中的 J55 模型来源替换为已经训练好的 `FoundationHand-S9L10 (1e-6)`; 16 - V8 的其余算法、融合策略、坐标合同、质量规则、scene pipeline、renderer、输出格式和默认参数全部保持不变; 17 - S9L10 必须直接对新 RGB 视频执行一次批量/序列推理,不能继续依赖这些视频预先存在的 J55 prediction; 18 - V9 完成后,递归处理指定目录中的全部视频并生成可检查的 demo。 19 20 这不是重新设计 fusion,也不是 benchmark、训练或调参任务。不要借机修改 selector、HaWoR 分支、Root-Z 规则、scene fusion 或视觉风格。 21 22 ## 2. 必须先读取和核验的来源 23 24 ### V8 基线 25 26 V8 最新已推送代码仓库: 27 28 `/SSD2/yangzijing/egoview-v7-github-candidate-20260804` 29 30 已知基线: 31 32 - branch: `main` 33 - commit: `27251e27e405c159d9ed2668145dac5277667fd9` 34 - subject: `Fix V8 scene padding and display orientation` 35 - 关键入口之一:`v8_fusion/runner.py` 36 37 先读取该仓库的 `README.md`、适用的 `AGENTS.md`、V8 入口、测试、配置和最近提交。确认工作树与上述 commit 的关系。把这个仓库作为只读基线,在当前 V9 目录内建立独立代码副本;不要直接修改原 V8 仓库。 38 39 ### FoundationHand-S9L10 40 41 已定位到的实际 checkpoint: 42 43 `/SSD2/jiasen/foundation_hand/world_adapter_artifacts/world_trajectory_v1_20260829/parent/step_0405000_final.pt` 44 45 checkpoint SHA256: 46 47 `29018790a9c72454dd41b088d910ecd7488f4eaa85b9675e67d16f6ef139bf24` 48 49 对应配置: 50 51 `/SSD2/jiasen/foundation_hand/world_adapter_artifacts/world_trajectory_v1_20260829/parent/s9l10_j25_full.yaml` 52 53 已知配置合同: 54 55 - condition: `S9L10_J25_full` 56 - phase: 9, stage: `last2_1e6` 57 - backbone learning rate: `1e-6` 58 - inference/training raster: height 512, width 896 59 - temporal length: `T=8` 60 - full-frame bimanual model 61 62 可读取的 FoundationHand 源码候选: 63 64 `/SSD2/jiasen/foundation_hand/world_adapter_artifacts/world_trajectory_arbitration_v1_20260830/code_release` 65 66 注意:配置中记录的旧 checkpoint 路径可能已经迁移。必须以上述现存 checkpoint、SHA256、配置内容、checkpoint 元数据和源码加载结果共同核验,不要仅凭名称猜测,也不要误用 World Adapter 派生 checkpoint。该任务使用的是 camera-space `S9L10_J25_full` parent。 67 68 ## 3. 正式冻结边界 69 70 正式 V6 源码位于: 71 72 `/SSD2/yangzijing/egoview-v5-release-20260729/v6_complete_pipeline` 73 74 开始前在该目录运行: 75 76 ```bash 77 /home/yangzijing/miniconda3/envs/egoview/bin/python check_environment.py --source-only 78 ``` 79 80 不得修改: 81 82 - `egoview/` 83 - `pipeline/` 84 - `scripts/` 85 - `releases/` 86 - `pipeline_manifest.json` 87 88 绝对不要访问: 89 90 `/SSD2/yangzijing/egoview-cleanup` 91 92 V9 的源码、测试、缓存和输出全部放在当前新目录或新的独立输出目录中。不要修改 Jiasen 的 FoundationHand 源码、checkpoint 和 artifact。 93 94 ## 4. “只替换 J55”的精确定义 95 96 先画清 V8 中 J55 prediction 从加载到进入 fusion state 的完整数据流,然后实现一个 S9L10 provider/adapter,替换这个来源。允许的变化只有: 97 98 1. 加载并运行 S9L10 checkpoint; 99 2. 为 S9L10 新增 RGB 视频预处理、批量/序列推理和输出适配; 100 3. 把 S9L10 输出转换为 V8 原有 J55 provider 所消费的完全相同语义 schema; 101 4. 更新版本名、CLI、manifest/provenance 和必要测试,使其明确记录 `FoundationHand-S9L10 (1e-6)`。 102 103 必须保持不变: 104 105 - HaWoR/geometry 分支仍然执行;V9 仍是双来源 fusion,不是用 S9L10 整套覆盖 V8; 106 - 现有 whole-block selector/fusion 逻辑、阈值和 fallback 逻辑; 107 - hand root、Root-Z、MANO pose/betas/translation 的字段级来源规则; 108 - 左右手 slot 语义、valid/presence/quality 语义和时序关联规则; 109 - DA3、ViPE、scene scale、scene fusion、mask、voxel/support/cap 配置; 110 - renderer 的相机、布局、颜色、透明度、MANO 大小、点大小和 framing; 111 - label/training bundle 的结构与 demo 共用最终 PredictionState 的合同。 112 113 不得做 per-field cherry-picking,不得用 GT、teacher、sensor depth 或测试时优化,不得为了 demo 视觉效果修改数据标签。 114 115 ## 5. S9L10 输出适配必须核对 116 117 不要假定 J55 与 S9L10 的数组可以直接互换。通过源码、配置和最小推理逐项确认并测试: 118 119 - 左/右手 slot 顺序与 handedness; 120 - 输入是完整双手画面,不做 HaWoR 风格单手 crop; 121 - RGB 色彩顺序、归一化、resize/letterbox 和 raster 坐标变换; 122 - 视频帧顺序、`T=8` 窗口、padding 和 overlap 的去重; 123 - 单位是 m 还是 mm; 124 - camera axes、extrinsic direction 和旋转 convention; 125 - wrist/root 的定义; 126 - MANO pose 表示、global orientation、betas、translation; 127 - joints/vertices 的数量、回归器和拓扑; 128 - presence/valid/confidence 的含义; 129 - 可选 K/depth 缺失时的官方推理合同。 130 131 本批输入是 RGB 视频。不得伪造真实 K 或 sensor depth,也不得把 DA3 scene depth 偷送进 hand model。若模型支持 RGB-only fallback,按官方 missing-modality contract 使用;若代码实际强制要求某一条件,先从源码证实并明确报告,不能静默猜测。 132 133 模型推理应按序列/批次运行,不能每帧重新加载或单独调用模型。一个视频只执行一次 S9L10 inference,并复用结果构建最终 state、label 和 demo。渲染器内部逐帧写视频属于正常显示过程,但不能因此重复模型推理。 134 135 ## 6. 输入视频 136 137 递归处理此目录中的全部 MP4: 138 139 `/SSD2/yangzijing/uploads/ego0824_raw_clips_20260901/ego0824_raw_clips` 140 141 当前共 8 个 MP4,位于多个时间戳子目录中;其中部分 `source_00001.mp4` 很短。不要漏掉短片,也不要因为文件名相同覆盖结果。输出目录必须保留或编码相对路径,例如: 142 143 `/SSD2/yangzijing/v9_s9l10_demo_runs_20260901/<timestamp>/<source_stem>/` 144 145 先读取每个视频和相邻 `segments.csv`,统计分辨率、FPS、帧数、时长和是否可解码。不得只按文件名推断输入合同。 146 147 ## 7. Demo 视觉合同 148 149 完全复用最新 V8 renderer 和已经修复的 scene orientation/padding 逻辑: 150 151 - 左侧:原始 RGB + 与图像手贴合的 solid MANO; 152 - 右侧:清晰的 dense world-space scene point cloud + solid MANO; 153 - 不得退化成骨架; 154 - MANO 颜色、透明度、大小、布局、左右面板比例保持 V8; 155 - point size 保持 `3.2`; 156 - camera trajectory 与 hand motion trajectory 只显示最近 2 秒; 157 - 不得出现 V8 已修过的黑色点排、场景翻转/歪转、近相机散点壳、视锥被点云遮盖或右侧 MANO 发虚; 158 - 不得通过复制点、任意缩放世界坐标或隐藏真实手改善观感; 159 - 不新增专门针对某条视频的手调参数。 160 161 若新 demo 与 V8 风格或 scene 结果不同,先检查是否意外偏离 V8 commit,而不是调 scene 参数。V9 唯一预期的结果差异应来自 hand foundation prediction 的替换。 162 163 ## 8. 测试与实际检查 164 165 至少完成以下 focused tests: 166 167 - checkpoint/config 身份和 SHA 校验; 168 - S9L10 provider 的输入/输出 shape、dtype、unit、finite、slot 和 frame identity; 169 - `T=8` 批量/窗口推理无重复帧、无漏帧,短视频可运行; 170 - adapter 输出满足 V8 J55 schema; 171 - fusion 之外的默认配置与 V8 基线一致; 172 - demo 与 label/bundle 消费同一个最终 PredictionState/digest(沿用 V8 已有合同); 173 - 一条短视频 smoke run 后再运行全部视频。 174 175 全部 demo 完成后,对每条视频抽取开头、中间、结尾帧,并使用 `view_image` 实际检查: 176 177 - 左侧 MANO 是否贴合、稳定、左右手是否正确; 178 - 无手帧是否出现 false hand; 179 - 右侧 MANO 是否清晰、结实; 180 - scene 是否正立、完整、没有黑点排和外圈异常散点; 181 - 两侧时序和帧身份是否同步。 182 183 如发现问题,先判断是 S9L10 适配错误还是 V8 原有行为。只修 S9L10 provider/adapter 引入的问题;不要用改 fusion 或 renderer 参数掩盖模型输出问题。 184 185 ## 9. 最终交付 186 187 完成后简洁报告: 188 189 1. V9 相对 V8 的实际代码差异,证明除 J55 -> S9L10 provider 替换外无算法变化; 190 2. 使用的 checkpoint/config/源码路径和 SHA256; 191 3. 8 条视频逐条的输入信息、运行状态、S9L10 推理耗时、其余 pipeline 耗时、渲染耗时和总耗时; 192 4. focused test 结果; 193 5. 每条最终 demo 的绝对路径; 194 6. 可直接在 Windows PowerShell 使用、下载到 `D:\ego0824_v9_demos\` 的 `scp` 指令。 195 196 不要 push GitHub,除非我在检查视频后明确要求。不要停在分析或方案阶段。