# 8 源视频浏览与人工筛选交付（2026-09-19）

网页入口：https://huggingface.co/spaces/yangzijing/eight-source-hand-data-browser

直接打开应用：https://yangzijing-eight-source-hand-data-browser.static.hf.space/index.html

HF 静态托管，不是临时 tunnel，不依赖实验室机器或 SSH 会话。登录不是查看或下载视频的前提。浏览器的选择、备注、问题标签保存在当前浏览器本地；分享网页不会分享自己的选择，需导出 JSON 交给同事导入。

## 输入与实际数量

唯一视频仓库 `yangzijing/nine-source-hand-data-review-videos-20s`，固定 revision `bf44a0f735c5c801b275e71f45cfe45742743a4f`。
读取并保存了源 README、中文 README、审核说明、video_index.csv，和 HF 精确文件清单。仅允许根目录 `20_seconds`、`short_originals_under_20s` 内的 MP4。
未运行模型、未重新渲染、未更改原视频，短片不循环。读取本地既有视频做 SHA-256、字节长度及 ffprobe 检查；407 个视频均与该 HF revision 的 LFS 文件散列/大小相同，帧数和时长与制作索引一致。

| 数据集 | 文件数 / 可抽上下文 | 20s目录 / 短片目录 | 时长最短 / 中位 / 最长（秒） | 模态记录覆盖 | motion 参考 | 可筛相机 / 手 / 相对运动 |
|---|---:|---:|---|---:|---:|---:|
| H2O | 50 / 50 | 21 / 29 | 11.700 / 18.717 / 20.000 | 50/50 | 50 | 50 / 50 / 50 |
| HOT3D | 37 / 37 | 37 / 0 | 20.000 / 20.000 / 20.000 | 37/37 | 37 | 37 / 37 / 37 |
| HOI4D | 50 / 50 | 50 / 0 | 20.000 / 20.000 / 20.000 | 50/50 | 0 | 0 / 0 / 0 |
| ARCTIC | 94 / 88 | 89 / 5 | 19.134 / 20.000 / 20.000 | 88/88 | 88 | 88 / 41 / 41 |
| EgoDex | 46 / 46 | 8 / 38 | 2.100 / 10.000 / 20.000 | 46/46 | 0 | 0 / 0 / 0 |
| EPIC-KITCHENS | 30 / 27 | 30 / 0 | 20.000 / 20.020 / 20.020 | 27/27 | 0 | 0 / 0 / 0 |
| HO3D | 50 / 50 | 50 / 0 | 20.000 / 20.000 / 20.000 | 50/50 | 0 | 0 / 0 / 0 |
| DexYCB | 50 / 50 | 0 / 50 | 2.334 / 2.400 / 2.467 | 50/50 | 50 | 50 / 26 / 26 |

总计 407 个文件、398 个上下文，9 个别名重复：ARCTIC 6 个，EPIC-KITCHENS 3 个。合并需要 context_id、视频 SHA-256、录制和源帧范围一致，不能仅凭名称合并。
398 个上下文都有源 recording_id，抽样根据这一真实映射分散录制。原始录制数分别为 50、37、50、80、46、10、35、50。分散抽样不等于所有片段时间范围互不重叠；当数量超过录制数，会选择同录制的后续片段。
“20s 目录”不表示所有容器时长都正好 20.000 秒，例如 EPIC 部分视频是 20.020 秒；网页显示 ffprobe 实测值。

模态覆盖指制作来源字段齐备并绑定到同一视频散列，不代表标注精度得到人工确认。未新增人工“通过”记录。

## 模态与 motion

六源共 325 个上下文展示官方 MANO 拟合标注，不称直接测量的无误差真值。EgoDex 46 个、EPIC-KITCHENS 27 个展示 V9-P3R2 预测。卡片分别展示 MANO、训练标签、深度/点云、相机、内参、尺度锚点、split、usage 与源审核状态。

- H2O、HOI4D、HO3D、DexYCB 场景深度来自原传感器。HOI4D 场景轨迹是历史 ViPE 估计。
- HOT3D 场景为原生 Aria MPS semidense SLAM 点图，不标成传感器深度。官方 headset 参考 tracking 不声称独立 mocap。
- ARCTIC 场景深度为 DA3 预测，尺度用源 MANO 锚定；相机轨迹来自原标定/mocap 参考。
- EgoDex 场景深度为 DA3，场景相机为 ARKit 设备估计，MANO 为 P3R2。EPIC 为 DA3 / ViPE / GeoCalib / P3R2。
- HO3D 相机记录包含原标定存在时采用标定、否则 camera-local gauge 的条件；不自动把该条件当已核验的世界系 motion。

motion 复用 `v9_benchmark/world_motion.py` 的 `world_motion_v2.0`，并保留旧 `WORLD_MOTION_HARDCASE_METRICS_20260911_ZH.html`。225 个上下文通过逐帧匹配、时长、米制、手部有效性、相机有效性、相机/世界系手腕变换一致性检查。输入参考文件散列、元数据散列、时间来源、窗口、阈值和覆盖均写入 catalog。

相机平移/旋转、世界系手腕平移、相对相机的手腕平移分别计算。相对坐标 q=R^T(p-c)，用有限步差分；不以光流或文件名估计 motion，不用 renderer 的预测场景输入。统计窗口为片段完整参考时间窗，不插值、不平滑，丢弃无效相邻帧和超过 1.5 倍正常时间间隔的跳变。

分类要求有效时长至少 2 秒、覆盖至少 90%。P90 平移 ≤0.02 m/s 为近似静止；相机还要求旋转 ≤3°/s；高运动阈值为手或相对 ≥0.3 m/s，相机 ≥0.15 m/s 或 ≥25°/s。它们是暂定筛选阈值，不是标定精度结论。手腕位置静止不代表手指或腕朝向静止。页面显式说明手部分类只聚合有效侧，一侧缺失不能证明双手均静止。

当前相对静止筛选返回 0 条，真实保留该结果，不放宽阈值凑样本。
173 个上下文没有通过本页参考 motion 核验：HOI4D 参考适配器无有效共同世界轨迹；EgoDex 为 ARKit 估计，暂不纳入参考 motion；EPIC 无参考手/相机轨迹；HO3D 缺少本页核验过的世界系手腕参考及时间来源链路。它们仍可正常浏览、人工标注和导出。ARCTIC 和 DexYCB 的部分参考虽存在，但手部有效覆盖不足，分类仍显示不可用。缺失不会填零。

## 功能与验收证据

已实现数据集单选/多选/全选，总量/每源 N，10/20/50/100/自定义，均衡/比例分配，可复现种子和新种子，别名去重与真实录制分散，数量不足显示实际量。
视频网格支持每页 6/12/24、原生播放/暂停/拖动、放大和全屏、当前视口视频统一播放/暂停、静音、重新加载。媒体没有初始 src，preload=none，只有点击播放才请求原视频，切页释放旧媒体。
支持逐样本/当前页选择、清空选择、六类问题标签、备注、人工结论、本地持久化、JSON 导入、JSON/CSV 导出、嵌入清单的 Python 批量下载脚本。导出保留仓库 revision、路径、数据集、样本、录制、种子、来源、split、审核标签和备注。导入拒绝不同 revision 或不匹配路径/散列。

自动浏览器验收位于 `tests/eight_source_browser.cjs`。本地与公共地址验收分别记录到 `reports/local_acceptance.json`、`reports/public_acceptance.json`，包括 8 源实际播放、拖动、全屏、采样一致性、选择刷新/导入导出、分页不预加载、移动端布局和页面错误检查。测试审核记录是独立浏览器中的测试夹具，没有上传为正式人工结论。
导出的真实脚本已下载 6 条视频到 `reports/download_test/`，均通过 SHA-256，并核对 JSON/CSV 备注一致。该目录是本次验收所在服务器的路径；其他用户在自己的电脑运行脚本会保存到自己的 `--out` 路径。

公共网页使用匿名浏览器实际访问并检查，不含 HF token。HF API 确认为 public、sdk=static、RUNNING。独立外网抓取工具对该新地址返回不可访问，未能完成另一台外网设备验证；不能保证同事所在网络的 HF/CDN 连通性。网页不需要 SSH 或私有认证，但 HF 视频 CDN 的偶发超时仍可能需要点击“重新加载”。

## 代码、运行与恢复

- 代码：`/SSD2/yangzijing/egoview-v9-foundationhand-s9l10-20260901/v9_benchmark/eight_source_browser/`
- 已发布静态目录/索引：`/SSD2/yangzijing/eight_source_browser_20260919/site/`（catalog.json、summary.csv、video_verification.json）
- 日志：`/SSD2/yangzijing/eight_source_browser_20260919/logs/`
- 验收、截图与发布 commit：`/SSD2/yangzijing/eight_source_browser_20260919/reports/`
- 独立 tmux：`eight-source-browser-20260919:static`，本地镜像 `127.0.0.1:8808`。原 8765/8767 服务与原 tmux 保持运行、未修改。

本地启动或主机重启后的恢复命令（已运行时不会覆盖）：

```bash
bash /SSD2/yangzijing/egoview-v9-foundationhand-s9l10-20260901/v9_benchmark/eight_source_browser/serve.sh
```

如需主动重启这个独立本地镜像：

```bash
tmux kill-session -t eight-source-browser-20260919
bash /SSD2/yangzijing/egoview-v9-foundationhand-s9l10-20260901/v9_benchmark/eight_source_browser/serve.sh
```

HF 公共静态地址不依赖该进程，无需恢复 tunnel。更新发布使用 `python -m v9_benchmark.eight_source_browser.publish`；完整命令见代码 README。最终发布 commit 记录在 reports/deployment.json。
