收尾两批并行开发的文档回写与任务包
- Sprint 执行计划 v1.1:§1.1 补第一批交付实据;T9 SPIKE 结论回写 Sprint 1 表 (T-P0-16 通过 2.8ms;T-P0-12 有条件;T-P0-10 原型 6/6 + 真实照片重验前置); Sprint 2 表标注 T-P2-01~06 交付;新增 §9 两批交付记录 - 开发任务拆解 v1.5:交付回写 + 新风险登记(RTMPose 域差异、BiRefNet 异步化) - 新增 开发任务包/:三批多 agent 并行的协作规程与 14 份任务契约 - 新增 前置开通清单-云资源与资质.md - 清理已用毕的评审报告(文档评审 2026-08-13、项目整体评审 2026-08-14), README 中相应引用改为留痕表述
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
# T9 · 算法验证 SPIKE·RTMPose 体型原型 + BiRefNet 抠图
|
||||
|
||||
> 对应任务:`T-P0-16`(RTMPose ONNX 单张耗时)、`T-P0-12`(BiRefNet 抠图质检 ≥90%)、`T-P0-10` 前置(体型测算原型)| 分支:`task/t9-vision-spike` | worktree:`/home/xsl/meida_backend-t9`
|
||||
> 先读《README.md(协作规程)》,遵守全部纪律。**本任务是 SPIKE:产出是脚本 + 基准报告 + 结论,不是生产代码。**
|
||||
|
||||
## 1. 目标
|
||||
|
||||
用本地可跑的最小代价回答三个 Sprint 1 硬门槛的**可行性问题**,结论写进报告(不达标要换方案,不要硬做):
|
||||
|
||||
1. **RTMPose ONNX 在 CPU 上的单张推理耗时**(T-P0-16 验收:可接受即通过;开发机另有 RTX 5090,若 WSL 能用 GPU 也测一档,不行就只报 CPU——先探测 `nvidia-smi` 与 `onnxruntime` 的 CUDA 可用性,探测失败不折腾);
|
||||
2. **BiRefNet ONNX 抠图的质量代理指标**(T-P0-12 的 ≥90% 质检通过率需要真实素材与人工标注,本 SPIKE 只建管线 + 代理指标 + 少量样图的主观核验,正式验收留给素材流水线);
|
||||
3. **体型测算「掩膜宽度剖面法 + 关键点定高」原型**(TD-06):在合成人形图上跑通"关键点 → 定高 → 剖面宽度 → 肩/腰/臀比例 → H/A/V/O/X 初判",证明管线成立;**一致率 ≥80% 的正式验证需要人工标注数据(顾问轨),本任务不承诺**。
|
||||
|
||||
## 2. 已就绪的契约(协调提交已提供)
|
||||
|
||||
- **依赖**:`spike` extra 已加入 pyproject(`onnxruntime`、`opencv-python-headless`、`numpy`),你的 worktree venv 已 `uv sync --extra spike` 装好。**GPU 版 onnxruntime 不装**(CUDA 匹配成本高,CPU 基准已满足 T-P0-16 验收口径)。
|
||||
- **目录**:`scripts/spikes/`(新建,归你)+ 模型缓存目录 `models/`(已在 `.gitignore`,**模型文件绝不入库**)。
|
||||
- **样图**:用脚本合成(OpenCV 画人形剪影/几何人体,见 §3),不使用任何真实人脸/人体数据(合规红线:测试不碰真实个人数据)。
|
||||
|
||||
## 3. 实现要点
|
||||
|
||||
允许改动:`scripts/spikes/**`、测试(可选,本任务以报告为验收)。其余全禁改。
|
||||
|
||||
### 3.1 模型获取(本批唯一允许联网的环节)
|
||||
|
||||
- 优先 `HF_ENDPOINT=https://hf-mirror.com`(国内镜像)用 `huggingface_hub.snapshot_download` / `hf_hub_download` 下载 ONNX:
|
||||
- RTMPose:`PINTO0309/PINTO_model_zoo` 里的 rtmpose(搜 `rtmpose` + onnx,选 **body 26/17 keypoint 的小模型**)或 `dhkim0115/rtmpose-onnx` 等社区导出;取不到就换 OpenMMLab 官方导出说明,**再不行降级:用 `opencv` 自带的 HOGDetector 作关键点占位并在报告声明**;
|
||||
- BiRefNet:`zhengpeng7/birefnet` 的 ONNX 导出(或 `onnx-community/BiRefNet`);文件大(~1GB)下载慢的话选 **lite/general-lite** 变体,报告注明用的哪个;
|
||||
- 下载脚本 `scripts/spikes/download_models.py`:带本地存在性检查 + 进度打印 + 失败重试一次;模型路径默认 `models/<name>.onnx`,支持 CLI 参数覆盖;
|
||||
- **超时纪律**:单个模型下载超过 ~10 分钟即放弃并走降级路线,把时间花在报告上。
|
||||
|
||||
### 3.2 `scripts/spikes/rtmpose_benchmark.py`
|
||||
|
||||
- 加载 ONNX → 预处理(resize/归一化,按模型 meta)→ 推理 → 解码关键点(17 点 COCO 或 26 点,按模型);
|
||||
- 输入:合成图 `scripts/spikes/assets/synthetic_person.png`(用 OpenCV 画:头圆 + 躯干梯形 + 四肢线段,肩/腰/臀位置可控——这也是 3.4 的输入);
|
||||
- 耗时基准:预热 3 次 + 正式 20 次,报 **均值 / P95 / 单次最大**(`time.perf_counter`);
|
||||
- 输出关键点坐标 JSON + 控制台表格。
|
||||
|
||||
### 3.3 `scripts/spikes/birefnet_matting.py`
|
||||
|
||||
- 加载 ONNX → 推理 → 后处理(sigmoid + resize 回原尺寸 + 二值化阈值 0.5)→ 保存掩膜图与抠图预览到 `scripts/spikes/out/`(out/ 也 gitignore,报告里只留指标);
|
||||
- 代理质检指标(T-P2-07 质检的雏形口径,写清楚这是代理不是正式验收):
|
||||
- 前景像素占比(应在 15%~60% 合理区间);
|
||||
- 最大连通域占前景比(>0.9 视为"主体单一完整");
|
||||
- 边缘羽化度(掩膜梯度带宽度均值);
|
||||
- 抠图耗时(同 3.2 口径);
|
||||
- 输入:合成人形图(与 3.2 同一张)+ 一张带渐变背景的变体。
|
||||
|
||||
### 3.4 `scripts/spikes/body_measure_prototype.py`(TD-06 原型)
|
||||
|
||||
- 用 3.2 的关键点(或合成图直接已知的真值框)定肩线/腰线/臀线高度 → 在 3.3 的掩膜上取对应高度的**宽度剖面** → 肩宽/腰宽/臀宽比值;
|
||||
- 规则初判:肩/臀比 >1.05 → V 型;<0.95 → A 型;肩≈腰≈臀 → H;腰远小于肩臀 → X;中段最大 → O(阈值写成常量并注明"待顾问校准");
|
||||
- 对合成图断言:**已知真值形状的分类正确**(合成图生成时就知道自己画的是 A 型还是 H 型——这就是最小可行的一致率验证)。
|
||||
|
||||
### 3.5 `scripts/spikes/REPORT.md`(**核心交付物**)
|
||||
|
||||
结构:结论先行(三问三答,每问给"通过 / 有条件通过 / 不达标需换方案")→ 各基准数字表 → 用的模型与版本 → 降级与偏差 → 对 Sprint 1 正式验证的建议(需要什么数据、多少标注量)。
|
||||
|
||||
## 4. 验收标准
|
||||
|
||||
1. `download_models.py` + 三个 spike 脚本可重复执行(模型已缓存时离线可跑);
|
||||
2. RTMPose CPU 耗时基准有数字(或降级路径有声明);
|
||||
3. 体型原型在合成图上分类正确;
|
||||
4. `REPORT.md` 三问三答齐全,结论可决策;
|
||||
5. `ruff check` / `ruff format --check` 对 `scripts/spikes/**` 全绿;无 pytest 强制要求(脚本里的断言跑一遍即可,在报告里贴输出)。
|
||||
|
||||
## 5. 提交信息
|
||||
|
||||
```
|
||||
spike(vision): rtmpose latency, birefnet matting proxies, body-shape prototype
|
||||
|
||||
T-P0-16/12/10 可行性验证:CPU 基准 + 代理质检指标 + 合成图体型剖面法
|
||||
原型 + REPORT.md 三问三答(Sprint 1 门槛的决策依据)。
|
||||
|
||||
偏差说明:<模型是否齐全、走了什么降级、写在这里>
|
||||
```
|
||||
Reference in New Issue
Block a user