已改善
部分搬物漏显、身份错配、SAM 裁剪突变和掌面突翻;深度一致性总体改善。
对比基线:FoundationHand-S9L10(1e-6)+ HaWoR 的旧 V9 融合版。
部分搬物漏显、身份错配、SAM 裁剪突变和掌面突翻;深度一致性总体改善。
手指卷曲、模糊/遮挡漏检、掌面选错;部分 R2 帧比 R1 更差。
结构变化对比旧 V9;定量数据主要是 R1 → R2,不能冒称旧 V9 → R2 的提升率。
检查范围:0907 为 119 条,0910 为 16 条。八条 RGB 首次交付实际抽看 293 个不同帧,后续专项另有复查;没有逐帧手部 GT(独立测量的真值)。
S9L10(1e-6)基模没有换。最大的变化是:不再把 HaWoR 的三维手结果融合进来,而是从 S9L10 的预测出发,再根据视频修正手的位置和姿态。
旧 V9 同时使用 S9L10 和 HaWoR/旧几何分支。管线根据规则选择手部结果,必要时退回旧分支的一整套手部参数。旧分支本身也有姿态修正,并不是直接显示模型预测。
S9L10 先给出一只三维手。检测、分割和关键点模型提供画面中手的位置与轮廓;拟合程序再调整三维手的位置、朝向、手指角度和手形,让它尽量符合整段视频。HaWoR 的三维结果不再参与。
因此,当前结果既不是“两套三维手中挑一套”,也不是直接使用 S9L10 原始输出。第 04 节解释拟合程序具体怎么调整手。
把整段视频放在一起求解,要求相邻帧的手不要无缘无故突然移动、转向或改变形状。R2 又加了一条规则:如果跟踪器认为换了一只手,就停止把前后两段强行连起来。
这是拟合时的约束,没有在最终视频上额外加平滑滤镜。跟踪认错、关键点错了,仍然可能跳变。
手被箱子挡住一部分时,关键点数量会减少。现在会同时看当前帧的手部区域和前后的跟踪记录;证据够用,就继续重建可见的这只手。左右手对应和重复手也做了修正。
当前帧实在看不清时,仍保留空缺。0907、0910 和八条 RGB 视频中都有尚未解决的遮挡、边缘漏检。
分割图里一个离手很远的孤立像素,就可能把手部裁剪框撑大,让后面的检测和关键点预测突然变化。R2 会先清理这些孤立点,再重新计算受影响帧的观测。
这修复了一类已定位的突变,不代表所有裁剪和关键点错误都已解决。
拟合前,程序会根据腕部和指根等位置,尝试纠正整只手的朝向。R2 增加了可靠性检查,避免几个不可信的点就把手翻过去。
这条保护有两面:能挡住一些错误翻转,也会挡住本来需要的纠正。部分 R2 帧比 R1 更差,就与这个选择有关。
有匹配双目标定和可靠深度时,用它们约束手离相机多远;同时调整手腕的前后位置,而不是一直固定在基模给出的深度。被物体挡住的手指,也不应被强行挤进图像中那一小块可见手区域。
八条纯 RGB 视频没有可靠双目标定,不能套用这套深度约束;它们的场景深度和相机运动仍由模型估计,不能当作实测真值。
现在由同一组手部参数生成网格、关节和左右两栏。相机轨迹暂时不可用时,只把世界坐标中的手标为无效;原视频里仍然能定位的手,可以继续显示。
两栏一致只说明数据和显示对得上,不代表手指角度、物体接触和世界轨迹都准确。
取消 HaWoR 融合、加入整段拟合,是从旧 V9 走到 P3 / P3R1 的变化;上面的身份、遮挡、裁剪和掌面保护,是随后逐步加入的修复。第 05 节的量化数字比较的是 R1 → R2,不能直接用来计算旧 V9 到 R2 的整体提升。
上方是旧 V9 融合版,下方是 R2 加这条视频的右手专项修复。两者使用同一源视频、同一时间段,按原速播放。下方的左手问题仍在;这个例子不能代表所有视频都改善。
八条 RGB 视频中的重复手、左右手分配和弱短片段处理,只用于这批视频。170110 的右手指链修复(RIGHT_IDFIX)只更新了这一条,没有推广到 0907 / 0910。卷曲实验 EXP-CURL01 仍有失败和新增退化,没有作为通用 R2 发布。
S9L10 的 1e-6 是模型训练阶段的学习率。这里没有重新训练或更换基模;调整的是管线里的检测、跟踪、拟合和结果选择。
纯 RGB 依赖预测深度与相机轨迹;Stereo 使用本次录制匹配的标定与深度。
| 项目 | 纯 RGB:八条 demo | Stereo:0907 / 0910 |
|---|---|---|
| 参考图像 / 内参 | SBS 左眼 1920×1080;fx=fy=960、cx=960、cy=540,历史假设。 | 校正左目与对应 K;标定和 frame-map 须匹配本次输入。 |
| 深度 | DA3METRIC-LARGE;同份深度供 ViPE 和点云,未作手部深度因子。 | 0907 复用已发布深度;0910 FFS:max_disp=416、8 iterations、0.1–4 m。 |
| 相机轨迹 | ViPE + 共享 DA3 深度 + 固定 K + RGB 人体排除,无 IMU。 | 0907 复用已有 EGO 轨迹;0910 原始双目 + IMU → SpectacularAI。 |
| 尺度 / 世界系 | MANO 尺寸先验 + 假设焦距;每序列单一标量对齐场景与相机平移。 | 深度由标定基线定尺度;0910 的 SLAM 世界系未配准到 XR 物体世界系。 |
| 实际发布 | 八条完整双栏 demo;单目场景和接触存在误差。 | 0907 / 0910 本轮全量为 overlay + 参数 / 世界系输出,不能混称已交付双栏。 |
0910 深度保留历史分支:02–05 沿用双向一致性检查,后续序列使用官方单次 forward。单次策略的 0/255 confidence 是几何有效标志,不是置信概率。
优化器是一个“反复调整 MANO 参数,使其符合观测”的程序。当前实现使用 Adam。
“更稳定”来自求解中的时序约束和错误观测修复。 当前 R2 没有在最终 mesh 上再叠一层平滑滤波;这些结果也不是基模直接输出。
名词: MANO 是用少量姿态、形状参数生成三维手的模型;mesh 是手的三角网格;mask 是图像中的手部区域;PnP 是用 3D 点与 2D 对应点估计位置和朝向。
| 后处理 | 做什么 | 有什么用 | 仍有什么风险 |
|---|---|---|---|
| 观测清理与跟踪 | 识别当前帧哪里有手、是哪一侧、是否同一只手;清除孤立点和重复候选。 | 减少错误裁剪、旁人手混入和左右手争抢。 | YOLO / MMPose 高分也会认错,模糊和遮挡仍会漏检。 |
| 掌面 PnP 初始化 | 用腕部、指根等二维点,尝试更合理的整只手朝向。 | 避免在错误朝向附近,把手指硬弯成能贴合图像的样子。 | R2 ≥4 个掌点 + ≥2 个非掌点、分数 ≥0.6;可能挡住必要纠正。 |
| 2D 与轮廓约束 | 让 MANO 投影接近可靠关键点和可见手部区域。 | 改善位置、朝向和外轮廓。 | 错误指链会带偏拟合;遮挡手指不能强迫挤进可见 mask。 |
| 合格深度与遮挡约束 | Stereo 只使用当前帧质量合格的掌部深度,并判断哪些部分被物体挡住。 | 约束前后位置,减轻错误深度和遮挡导致的形变。 | 深度也有误差;RGB 八条没有启用 Stereo 关节深度因子。 |
| 时序正则 | 拟合时惩罚不合理的帧间加速度,分别约束整手、掌部局部指姿、根部和 Z。 | 抑制高频抖动;整段求解没有独立优化小窗口的拼接边界。 | R2 不跨有效性和身份边界;过强约束也可能拖住真实快动作。S9 推理仍使用 T8 窗口。 |
| 共享形状 + S9 先验 | 同一侧手在序列内共享形状;姿态不要过度偏离模型预测。 | 减少手大小、骨段随帧波动,限制无约束形变。 | 原模型也会错;0.7 rad 增量范围不是生理活动范围或自碰撞约束。 |
| 有效性门控 | 当前证据不足则不输出完整手;世界位姿缺失只影响世界输出。 | 减少幻觉手;避免世界跟踪掉了连左栏手也消失。 | 会保留空缺,不能把“少显示错误手”说成“漏检全部解决”。 |
0907:119 条均 360 步,其中 89 条姿态时序权重 0.8,30 条为 2.0;0910:16 条均 720 步、权重 0.8;RGB 八条:360 步、权重 2.0。均联合估计腕部深度。0910 采用姿态感知的深度初始化与 720 步配套。
RGB 批次:姿态学习率 0.012、根部 0.002、姿态先验权重 0.08、深度时序权重 200、根部时序权重 0.015;共享形状优化学习率 0.004。不同损失的数值尺度不同,不能只按权重大小判断谁起主导作用。
以下数值全部是 P3R1 → P3R2,不是旧 V9 融合版 → R2。
0907 clip18,f19→20:108.92° → 9.29°。同 R2 输入关闭掌面保护又到 152.22°。
0910_11,f630:关节旋转步长 126.64° → 9.51°;f631 的双手漏显恢复。
0910_10,f1031–1032:原本双手消失,R2 在相邻 5 帧保持双手输出;隐藏指姿仍未验证。
P95:95% 的可比值不超过此数。重投影与深度偏差针对模型观测,不是 GT;速度、加速度和旋转步长包含真实运动。它们下降不能单独证明“更准”。
全部数据:手腕加速度 P95 7.61 → 6.60 m/s²;深度偏差 P95 75.02 → 55.91 mm。侧别冲突候选事件 70 → 2。
0907 贴合 P95 6.41 → 7.51 px 变差;已有至少 8 处相对 R1 明显新增的可见坏例。
R2 全量完成后做 34 项整段对照:关闭身份边界、归属判断、掌面保护、部分初始化、场景约束,以及改变深度时序项、取消部分邻帧旋转借用。卷曲专项另有 26 组条件:5 条序列 × 5 个主要条件,加 1 个歧义指链剔除控制;其中 23 次新拟合、3 组复用旧控制。两组统计不能直接加成“60 种不同方法”。
4,908 是连续异常候选事件,不是真实坏帧数。2,412 条新增异常记录去重后是 2,372 个帧内手实例;排除网格相交后为 452 个。合法接触也能触发相交,不能用这些数字算准确率。
点击图像可放大。静态图用于看形状;运动结论结合邻帧与已有完整序列消融。
对应前后帧 f628–632,R2 保持双手输出;物体后面的手指仍不能由图像独立验证。查看完整五帧
MMPose 四指顺序在 f154–158 反转,f159 恢复;错误高分点驱动掌面 PnP 大幅翻转。前后锚帧双向 RGB 光流验证后,纠正 74 个点的身份、恢复 6 个点的位置,再按原 R2 参数重拟合右手。
已替换视频的 4–7 秒双栏节选,原速 30 fps。这里展示修复结果,不是旧 V9 对比。
专项修复报告 ↗| 已见坏例 | 消融说明 |
|---|---|
| 0910_17 f3214:翻掌、手指折叠 | 关闭掌面保护后形态改善,说明初始化分支有代价。 |
| 0910_10 f2319:握衣物却侧立 | R2 旋转步长 130.11°;关闭保护 30.36°。 |
| 0910_02 f1507:严重扭转 | 关闭保护或部分初始化都没解决;根因尚未唯一定位。 |
| 0910_12 f2618:腕口横置 | 关闭身份边界减轻腕部异常,但指姿仍错。 |
0907 这三条已确认画面退化,但尚未完成各自的单因素根因隔离。不能套用其他片段的原因。
完整退化清单 ↗160047 约 8 秒,食指尖和小指尖只有 3.4 px 间距,却都有约 0.7 分;一根可见手指被当作两条指链。
170110 f193 只有 3 个高置信掌点,未过 4 点保护门槛;必要的掌面纠正被挡住。
整体朝向不对时,局部关节仍可变约 40°来降低损失;目前没有完整的解剖活动范围和自碰撞约束。
冻结手指能去掉部分“拟合额外引入的弯曲”,但原 S9 姿态仍可能不准。剔除歧义关键点、关掉轮廓或姿态时序项,也没有得到可直接推广的统一修复。
160047 的 8 秒左手在 EXP-CURL01 仍未修好。卷曲已存在于相机系 MANO 中,不能归因为右侧 ViPE 世界变换;双目深度约束在部分案例中的影响仍需继续分离。
f4577 残差 96.80 → 19.09 px,实际画面仍坏,因此没有接受这个控制作为修复。
三类问题要分开:观测不足、拟合选错,以及场景/相机估计误差。
| 问题 | 可定位的案例 | 目前判断 |
|---|---|---|
| 遮挡 / 边缘漏检 | 080134 搬箱;165923 f434;160047 f659 / f711。 | 手部分露出、关键点不足、身份弱;尚未解决,不能靠跨缺口补手掩盖。 |
| 侧别 / 身份不稳 | 0910_11 f998–1002 在轨迹 22/19 间切换。 | R2 强侧别规则有效但不万能;仅取消邻帧旋转借用无效。 |
| 掌面翻转 / 手指卷曲 | RGB 160047 8 秒;170110 左手 6–7 秒;0907 / 0910 多例。 | 2D 对应、初始化和拟合补偿共同作用;基模也有错误。 |
| 初始化保护的退化 | 0910_17 f3214、0910_10 f2319、0910_05 f46。 | 硬置信阈值会误拒绝或改变候选选择;不能全局简单开关。 |
| 深度 / 近景形状 / 接触 | 近景模糊、握物、遮挡指尖;165923 场景尺度对齐被拒绝。 | 手部深度与形状有歧义,低二维误差不能保证正确 3D。 |
| 场景与世界系 | RGB 移动物体残影、点云孔洞;0910 未对齐 XR 物体世界系。 | 不是手指卷曲的起点,但限制了物理接触与联合仿真用途。 |
| 视频标识 | 帧 / 时长 | 截至本次汇报的状态 |
|---|---|---|
| 20000101T080048.619358+0800 source_00000 | 720 24.000 s | 重复手已处理;近景轮廓、截断膨胀和 f175 模糊漏检仍在。 |
| 20000101T080134.889593+0800 source_00000 | 900 30.000 s | 弱短片段深度跳变已抑制;搬箱漏检及隐藏指姿仍明显。 |
| 20000101T080134.889593+0800 source_00001 | 5 0.167 s | 5 帧尾段,无可靠手输出;不能作为手部重建成功例。 |
| 20260818T165923.310573+0800 source_00000 | 900 30.000 s | 线缆/底边漏检、快速动作形状错误;场景尺度对齐未通过。 |
| 20260818T165923.310573+0800 source_00001 | 80 2.667 s | 80 帧尾段,无可靠手输出;短序列尺度约束不足。 |
| 20260818T170110.207199+0800 source_00000 | 873 29.100 s | 右手 5.1–5.4 秒指链反转已专项修复;左手 6–7 秒、搬箱漏检仍在。 |
| 20260824T160047.570868+0800 source_00000 | 900 30.000 s | 侧别竞争/重复手已处理;8 秒左手卷曲未修好,仍有搬箱漏检。 |
| 20260824T160047.570868+0800 source_00001 | 30 1.000 s | 30 帧尾段,底角极小手片段证据不足,仍无可靠完整手。 |
完整重建与双栏展示已跑通;部分跳变、漏显、身份错误有明确同片对照;局部失败有消融证据。
抖动/卷曲全部修好;全部检测正确;隐藏关节和接触准确;RGB 尺度为 GT;已满足统一训练 GT 标准。
正文以已执行的配置和交付记录为准。历史报告里的“未上传 / 尚未运行”等状态只代表当时。
“我们取消了旧 V9 的双模型三维融合,改为 S9 初值加整段几何拟合。R2 修复了部分身份、遮挡和初始化问题,减少了一些跳变;但错误观测和姿态歧义仍会导致卷曲与退化。”
① R1→R2 指标不等于旧 V9→R2。
② 时序正则在拟合时约束相邻帧,不是输出后的平滑滤镜。
③ RIGHT_IDFIX 是单片接受,EXP-CURL01 没有成为通用 R2。
模型:FoundationHand-S9L10(1e-6),checkpoint SHA256:29018790a9c72454dd41b088d910ecd7488f4eaa85b9675e67d16f6ef139bf24。S9:T8 / stride4 / center stitching;输入 letterbox 512×896。
仓库 HEAD:a98666665036d9471b38a5bf3ac8d52570eee09b。工作树含未提交修改,HEAD 不是完整运行版本;原运行源码快照和回执仍保留在任务目录。本网页保存了所引用文档和当前相关实现的 SHA256,见 sources.json。
本次仅整理文档、核对运行配置和已有画面,未重跑模型、未修改生产管线。页面内截图来自既有消融/验收;视频为已交付成片的原速节选。
135/135 参数重解码、相机/世界/时间合同检查通过,是输出一致性检查,不是 135/135 视觉无错误。尚无这些实拍视频的逐帧 3D GT 和全量语义坏帧标注。
更新:2026-09-17 · 独立汇报页面 · 图片、流程图、节选视频均可离线打开;只有 HF 外链需要网络。