49 lines
1.6 KiB
Markdown
49 lines
1.6 KiB
Markdown
# 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)。
|