1.6 KiB
1.6 KiB
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)。