The stream worker discarded ffmpeg stderr, so reconnect loops were opaque. Capture stderr and log it with the RTSP URL/credentials redacted, so the real cause (auth, timeout, option, URL parse) is diagnosable without leaking the source address. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Silver Pose
Silver Pose 是一个面向固定机位大厅或走廊的本地摔倒事件演示系统。目标是向客户演示“RTSP 实时视频 → 人体姿态与人员跟踪 → 突发倒地事件 → 红色画面、声音、弹窗和事件截图”的完整闭环。
当前阶段是重新建立工程化 V1。旧代码保留在
demo/作为可运行基线;v1/将存放 Python 正式实现;v2/将在 V1 验收后存放 Go 部署实现。
项目结构
silver_pose/
├── demo/ # 旧 Python 演示基线,含 best.pt 与样例视频
├── v1/ # Python V1(待任务 T-101 创建)
├── v2/ # Go V2(V1 验收后才开始)
├── docs/ # Harness Coding 文档
├── AGENTS.md # AI coding agent 入口
├── CLAUDE.md # Claude 薄入口
├── init.ps1 # Windows 统一启动与基础验证入口
└── progress.md # 只追加执行流水
V1 启动与验证
在 Windows PowerShell、仓库根目录运行:
./init.ps1
它会检查当前 Python 环境、编译旧 demo/ 基线并运行 V1 测试。首次部署先安装锁定依赖:
python -m pip install -r v1/requirements.txt
将 v1/config.release.example.json(发布包中生成)或 v1/config.example.json 复制为未跟踪的 v1/config.local.json,仅在本机填写摄像头来源与凭证。然后启动 V1:
python -m v1.app
运行 GUI 或 RTSP 演示前,必须在本机准备已安装的 PyQt5、OpenCV、NumPy、Ultralytics 与 Pillow 环境。真实 RTSP 凭证、客户视频、截图和 JSONL 事件工件不得提交。
客户演示与发布包
客户演示步骤、证据复查和适用边界见 docs/demo-runbook.md。构建发布包时,模型必须提供受控 SHA-256;脚本只复制 V1 代码、公开示例、运行手册和锁定模型,不复制本地配置或事件工件:
$modelSha = (Get-FileHash -Algorithm SHA256 demo/best.pt).Hash.ToLower()
pwsh -File v1/scripts/build-v1-release.ps1 -ModelPath demo/best.pt -ModelSha256 $modelSha -Output dist/SilverPose-V1
python -m v1.release verify --package dist/SilverPose-V1
发布包和现场演示仅覆盖固定俯视、全身大部分可见、单路大厅或走廊;best.pt 是人体姿态模型,不是摔倒分类器,也不构成医疗级或全场景可靠性承诺。
文档入口
所有 agent 从 docs/00-ai-start-here.md 开始。人类可从 docs/README.md 查看完整导航。
模型说明
demo/best.pt 是与 D:\PythonP\fall_detection 训练工程中 best.pt 哈希一致的 YOLOv8 Pose 权重:1 个 person 类,17 个 COCO 关键点。它提供姿态,不提供“摔倒”标签;摔倒由 V1/V2 的质量门控、跟踪和时序状态机判定。