Files
silver_pose/docs/06-tasks.md
T

7.4 KiB
Raw Blame History

任务看板

一次只领取第一个依赖满足的 TODO。任务标为 DONE 前必须有真实验证命令和 progress.md 证据。

状态:TODO 待开始 · DOING 进行中 · DONE 已验收 · BLOCKED 受阻

已完成的基线

ID 任务 依赖 验收要点 状态
T-000 建立 Harness Coding 文档与旧基线快照 - demo/ 编译通过;模型任务与关键点格式已检查;文档记录真实范围与下一步。 DONE

Phase 1 · Python V1 地基与最高风险

ID 任务 依赖 验收要点 状态
T-101 创建 V1 包、依赖清单、示例配置和忽略规则 T-000 v1/ 可导入;真实 RTSP 凭证被拒绝提交;pytest 能运行。 DONE
T-102 实现可重连的视频源与录像回放适配器 T-101 有效本地录像可按时间戳产帧;无效源进入连接错误状态且不崩溃。 DONE
T-103 实现 Pose 适配器与模型来源校验 T-102 输出 person box、17 点和置信度;错误模型或哈希不符时给出明确错误。 DONE
T-104 实现人员跟踪与姿态质量门控 T-103 连续人员维持 ID;低质量、缺失膝踝或空帧不会产生倒地候选。 DONE
T-105 实现按 ID 的时序摔倒状态机 T-104 正例在配置秒数内确认;坐下、弯腰、短时低姿态回到 NORMAL;事件副作用只触发一次。 DONE
T-106 装配事件管线与固化事件契约 T-105 Pose → 跟踪 → 质量/几何证据 → 领域规则 → 按 ID 状态机可回放运行;缺失/低质量证据会中断确认;全部公开事件参数生效;事件可追溯运行配置版本;录像 EOF 不会重放。 DONE

Phase 2 · V1 演示闭环

ID 任务 依赖 验收要点 状态
T-201 实现 PyQt 顶部双 Tab 的监控与设置界面 T-106 实时监控 Tab 显示视频、骨架、ID、NORMAL/SUSPECT/CONFIRMED 和连接状态;设置 Tab 只编辑非敏感草稿并明确下次启动生效;UI 不直接执行事件计算。 DONE
T-202 实现本地报警、弹窗、截图和 JSONL 日志 T-201 CONFIRMED 产生一次声音、一次弹窗、一张带标注截图和一条事件日志。 DONE
T-203 接入海康 RTSP 与断流恢复 T-202 现场有效流可预览;断流状态明确、可重连且不报警。 DONE
T-204 建立正反例录像回归与现场验收记录 T-203 摔倒、行走、坐下、弯腰、捡物和持续倒地都有预期结果;报警延迟记录在 1–3 秒。 DONE
T-205 固化客户演示脚本与 V1 发布包 T-204 可按文档完成演示脚本,所有证据可复查,适用边界显示给操作员。 DONE
T-206 结构化摄像头配置、连接测试与设置页预览 T-201 配置支持 host/端口/通道/账号/密码 结构化来源并拼出 RTSP(凭证百分号编码);公开示例保持无凭证、config_version 不含凭证;设置页可掩码输入、点击测试连接,连通后抓拍一帧显示在预览区。 DONE
T-207 抓流低延迟参数进配置与设置页 T-206 配置支持 transport(tcp/udp)/连接超时/低延迟,程序拼 OPENCV_FFMPEG_CAPTURE_OPTIONS 并在开流前注入;设置页用下拉/数字/勾选而非原始字符串;启动可不依赖 run 脚本设环境变量。 DONE
T-208 每帧摔倒判定诊断叠加 T-201 管线暴露每人策略证据;实时画面角落叠加每人 accepted/horizontal/角度/rapid/candidate/state(拒绝时显示原因),便于定位真实摔倒未确认卡在哪一步;诊断字符串构建 Qt-free 可测。 DONE
T-209 放宽俯视场景摔倒判定灵敏度(可配置) T-208 判定灵敏度参数化:require_rapid_drop(默认关)、require_lower_body(默认关)、horizontal_angle_threshold_degrees(默认放宽);默认下持续水平即可进入疑似,仅靠确认窗防误报;参数进 config 与 config_version,逻辑可测。 DONE
T-210 修复截图标注乱码(cv2 ASCII 文字) T-202 截图标注文字改为纯 ASCII(cv2.putText 只支持 ASCII),去掉非 ASCII 分隔符导致的乱码;实时画面标签不变;ASCII 标签逻辑可测。 DONE
T-211 检测灵敏度参数进设置页 T-209 设置页可编辑 require_rapid_drop/require_lower_body/horizontal_angle_threshold_degrees/confirm_window_seconds(下拉/数字/勾选),保存写回未跟踪 config.local.json、下次启动生效;写回逻辑可测。 DONE
T-212 实时流只处理最新帧降延迟 T-203 STREAM 后台读帧只保留最新帧、丢弃积压,实时延迟不随推理速度增长;REPLAY 逐帧不丢;最新帧保留逻辑可测。 DONE
T-213 截图中文标注(Pillow) T-210 CONFIRMED 截图可用中文标注(如“确认摔倒 P-0001”);缺 Pillow/字体时回退 ASCII 不崩溃;标签与回退逻辑可测。 DONE

Phase 3 · Go V2 迁移门槛与实现

ID 任务 依赖 验收要点 状态
T-301 锁定 V1 模型并导出 ONNX 一致性工件 T-205 记录 .pt 与 ONNX 哈希、输入尺寸、导出命令;同一帧关键点与 Python 在约定容差内。 DONE
T-302 完成 Go 推理与视频/UI 技术 Spike T-301 Windows 上可读取录像和 ONNX Pose;选定运行时与 UI 方案并记录取舍。 DONE
T-303 实现 Go 的事件引擎与 V1 回归对比 T-302 同一录像的确认事件、无报警案例和延迟满足 V1 基线。 DONE
T-304 完成 Go 实时演示、报警和打包 T-303 实时 RTSP、红色画面、声音、弹窗和截图可运行;新环境按文档启动。 DOING
T-305 V2 UI 框架评估:Gio Spike(应对 Walk TTM_ADDTOOL 启动故障) T-302 以 Gio 搭 cmd/gio-spike:窗口可显示并关闭、无 TTM_ADDTOOL、能贴一张 *image.RGBA(V2 render 输出)并有双 Tab/按钮骨架;据此决定 V2 UI 是修 Walk manifest 还是迁移 Gio。 DONE
T-306 V2 UI 从 Walk 迁移到 Gio T-305 用 Gio 重写 internal/ui,保持 NewWindow/Run/Present/PresentAlert/ReportIssue 接口;后台更新经 Invalidate 上屏、UI 线程只渲染;双 Tab、贴 render 的 RGBA、确认弹窗(自绘遮罩)与声音(Win32 syscall);cmd/silver-pose 起窗无 TTM_ADDTOOL。 DONE
T-307 V2 监控界面优化(紧凑状态 + 截图画廊) T-306 运行/检测状态压到一行、开始停止按钮缩小同行、红色说明并入事件行;右侧 3×3 倒序展示最近确认截图;双击缩略图弹全图。缩略图缓存与解码不在 UI 线程逐帧重做。 DONE
T-308 V2 界面与设置增强 T-307 ①启动窗口=屏幕分辨率 80% ②画廊改 2×3 并缩小右栏 ③双击弹窗可 Esc 关闭 ④开始/停止按钮按运行状态灰显禁用(失败自动复位)⑤设置页可编辑:结构化摄像头(host/端口/通道/账号/密码,凭证百分号编码,仅本地配置)与常用事件/灵敏度参数,保存下次启动生效。护栏:公开示例无凭证、凭证不进 config_version/日志/事件。 DOING

Backlog

  • V3 多摄像头管理、远程通知和事件中心。
  • 海康俯视场景数据评测后决定 Pose 微调或时序模型训练。
  • GPU / TensorRT 等硬件专用优化,仅在 V2 CPU 结果不能满足验收时评估。