docs(android): 任务说明、DSH 约束与交付文档

This commit is contained in:
2026-09-14 20:40:16 +08:00
parent 8f0eeb7697
commit 84da39ad17
13 changed files with 969 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
# T-AND-003 MediaPipe Pose 端侧推理
- **状态**:done
- **依赖**:T-AND-002
## 目标
用 MediaPipe Tasks Vision 在设备本地做姿态推理,输出 33 个归一化关键点。
## load
```
DSH.md
contracts/skeleton-topology.md # 锚点:§1 33 点、§4 坐标系
app/src/main/java/com/opendance/studio/pose/PoseDetector.kt
```
## 交付物
`pose/PoseDetector.kt` + `app/src/main/assets/pose_landmarker_lite.task`(5.7 MB)。
## 关键实现
| 项 | 说明 |
|---|---|
| 运行模式 | `LIVE_STREAM` + `detectAsync`,不阻塞相机线程 |
| 模型 | `pose_landmarker_lite.task`(随 APK 分发,`noCompress "task"` 保证可读) |
| 置信度阈值 | detection / presence / tracking 均 0.5 |
| 背压 | `busy` 标志:上一帧仍在推理时直接丢弃新帧并计数,不排队 |
| 时间戳 | 单调递增校正(MediaPipe 要求严格递增) |
| 缺失点 | 置信度置 0、坐标归零,接收端按契约插值 |
## 坐标与镜像语义
- 发送**未镜像的原始 MediaPipe 坐标**(契约 §4)
- 是否镜像由帧头 `flags.bit0` 声明,接收端据此决定如何还原
- 叠加层绘制时才取 `1 - x`,与前置摄像头预览的镜像观感一致
这保证了同一份关键点数据在「镜像预览」与「真实左右」两种解释下都不会歧义。
## 上半身模式
`upperBodyOnly = true` 时,髋部及以下点置信度置 0 并置 `flags.bit2`,
接收端会插值。用于带宽/算力不足时降级。
## 验收
`assembleDebug` 通过;运行页在真机上可看到骨架叠加层(见 tasks/009)。