File size: 2,987 Bytes
d646dd7
 
95f5290
d646dd7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95f5290
d646dd7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95f5290
d646dd7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# EgoData Worker

Worker 是 processor 的异步处理进程。它从 FastAPI 服务领取工作流任务,读取当前
episode 的 canonical 数据,执行手部关键点、深度 3D、AI 标注和质量审核模块,再把结果
合并回对应项目的 `data/` 和 `meta/episodes/`。

Worker 不提供前端页面,也不直接修改原始 RGB/Depth 视频。手部预览由浏览器叠加关键点完成,
不会生成或保存第二份骨骼视频。

## 运行前提

- 后端服务已经启动并可访问;
- Worker 使用的 `EGODATA_WORKER_API_KEY` 与服务端 `WORKER_API_KEY` 一致;
- Linux 和 Windows 使用各自独立的虚拟环境;
- Worker 的临时目录有足够空间,处理完成后临时结果由服务端清理。

## Linux

```bash
cd "/path/to/processor"
bash scripts/setup_linux.sh

export EGODATA_SERVER_URL=http://127.0.0.1:8000
export EGODATA_WORKER_API_KEY='服务器配置的 Worker API Key'
export EGODATA_WORKER_ID="linux-$(hostname)"
bash scripts/run_worker_linux.sh
```

默认值:

```text
EGODATA_SERVER_URL=http://127.0.0.1:8000
EGODATA_DEVICE=auto
EGODATA_WORK_DIR=<项目>/data/tmp/worker
EGODATA_POLL_SECONDS=2
```

## Windows

```powershell
cd "E:\Company-File\Date-V\processor"
.\scripts\setup_windows.ps1
$env:EGODATA_SERVER_URL = 'http://127.0.0.1:8000'
$env:EGODATA_WORKER_API_KEY = '服务器配置的 Worker API Key'
.\scripts\run_worker_windows.ps1
```

Windows 环境位置为 `.venv-windows\Scripts\python.exe`,Linux 环境位置为
`.venv-linux/bin/python`。不能跨系统复制虚拟环境。

## 处理结果规则

Worker 返回的处理结果不会写入项目级 `processed/`、`meta/processing/` 或
`processing_manifest.json`。服务端完成任务时执行以下合并:

```text
项目/data/chunk-XXX/episode_XXXXXX.parquet
  └── 2D 关键点、metric 3D、传感器和标注字段

项目/meta/episodes/chunk-XXX/episode_XXXXXX.parquet
  └── processing_* 状态、run_id、节点状态和输出索引
```

`data/state/runs/` 是系统级任务队列、租约和审计记录,位于项目目录外,不属于数据集。
缺少某个端口输入的节点会标记为 `Skipped · Missing Input`,不会阻止其他已连接分支执行。

## 日志与排障

优先检查:

1. `GET ${EGODATA_SERVER_URL}/health` 是否返回正常;
2. Worker API Key 是否和后端配置一致;
3. Worker 日志中是否持续出现领取任务、心跳和完成/跳过信息;
4. 项目的 `data/`、`meta/episodes/`、`videos/` 是否使用同一个 episode 编号;
5. RGB-D 3D 节点是否同时接入了 `RGB Video` 和 `Depth`,以及深度视频是否为
   canonical HEVC `gray12le`;
6. 浏览器预览问题是否只是解码器兼容问题,不要把临时预览缓存当成原始数据。

查看后端 OpenAPI:

```text
http://127.0.0.1:8000/docs
```

不要在日志、环境变量示例、工作流 JSON 或 Issue 中粘贴密码、Token、API Key 或数据库
连接串。