Files
yovision/docs/02-requirements.md
T
QiuSW a5f4cbed6f
Harness governance / validate (push) Has been cancelled
docs: adopt harness coding workflow
2026-08-03 22:18:02 +08:00

106 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 需求
> 本文是 agent 实现入口,完整需求编号、推导和风险见 `docs/raw/01-需求收集.md` 与 `docs/raw/02-需求分析.md`。
## 1. MVP 范围
首个可交付 MVP 覆盖 M0–M3:
1. ONVIF/RTSP 摄像头批量接入、校时、探活、断线重连和设备台账。
2. MediaMTX 媒体路由与可收敛的控制面对账。
3. 默认 16 路的推理、规则、事件证据和预警闭环。
4. 多租户/RBAC 的最小隔离、事件不可变存储、审计。
5. 预警 ack、超时升级、双路径投递、限时静默和重启续跑。
6. 误报标记与样本回流。
## 2. 当前 M0 验收
- 在隔离实验室运行 MiBeeNvr 等现成测试台,不改 `_reference/`,不接真实客户摄像头。
- 选择 3–5 款候选摄像头,逐款通过 `GetProfiles`、`GetStreamUri`、`SetSystemDateAndTime`。
- 记录断线恢复、认证失败、时间漂移、主/子码流和厂商差异,形成采购白名单。
- 回答 `raw/01-需求收集.md` §8 中仍开放且会改变架构的问题。
- M0 代码与临时配置可丢弃,不作为生产基线;可借鉴范围严格遵循 NVR 白名单。
## 3. P0 功能要求
### 3.1 接入与设备
- 支持标准 ONVIF/RTSP,不绑定摄像头品牌。
- 支持 NAT 后的边缘主动推流;设备身份使用稳定序列号而非 IP。
- 批量开通不依赖逐路手工操作,支持待激活中间态。
- 探活、离线告警、开通校时、断线自动恢复。
- 容量写入时校验站点配额;配额服务不可用时拒绝新增/启用,但不影响已有流。
### 3.2 分析与规则
- 检测能力与场景解耦;规则位于推理之后、告警之前。
- 支持目标类型、属性/身份、区域、时段、行为和持续时长组合。
- 支持多边形区域、方向性警戒线和租户/站点/设备三级覆盖。
- ReID 是默认同一性手段;人脸识别按租户授权、默认关闭,失败时降级而非漏报。
### 3.3 事件与证据
- 规则命中生成事件实例:结构化数据、抓拍和含 pre-roll 的视频片段。
- 事件与预警分离;事件不可变,误判只追加/更新处置结果,不改写事实。
- 支持设备冷却、站点聚合、已处置抑制和误报反馈。
- Brain → Bell 必须符合冻结的事件契约 v0.1 和代码级断言。
### 3.4 预警与处置
- 预警必须有 ack;未 ack 自动升级,进程重启后能续跑。
- 升级链、超时、联系人和时段可按租户/站点配置。
- 至少两条独立投递路径,其中一条可绕过互联网。
- 区分已发出、已送达、已看到;没有回执不能当成功。
- 静默必须限时且自动恢复,单次不超过 4 小时,无永久静默。
- 业务预警与运维告警使用不同通道和值班配置。
### 3.5 平台、安全与运维
- 多租户数据、账号、配置和存储隔离;最小 RBAC 为平台管理员、租户管理员、站点管理员、值班员、只读。
- 全链路审计,预警生命周期可追溯。
- Prometheus/Grafana 至少覆盖设备在线、流状态、推理延迟、事件量、未收敛项和投递 SLA。
- 断网时边缘缓存事件,恢复后补传。
- 不在代码、日志、证据文件名和工单中泄露摄像头凭据、客户名或敏感地址。
## 4. 容量与性能
| 维度 | 默认交付 | 本阶段上限 | 验收方式 |
| --- | ---: | ---: | --- |
| 站点视频配额 | 16 路 | 128 路 | 配置项 `site.max_video_channels`,Bell 持有、Sense 执行 |
| 媒体 | 1 个初始分片 | 建议 4 个起步 | 码率、连接、重连和单分片故障隔离实测 |
| 推理 | 1 个逻辑分片起步 | 最多 8 个 16 路逻辑分片 | 模型、分辨率、FPS、batch、硬件实测 |
| UI | 16 路默认视图 | 128 路站点 | 分页/虚拟列表/筛选/批量操作;不一次加载全部视频 |
硬约束:
- 16 是默认配额,不得写死到数据库约束、数组、循环、规则、分页或批量操作中。
- 128 路不等于单机能力。接入/录像带宽、同时解码、AI 推理、证据存储分别压测和验收。
- 默认由客户已有 NVR 承担常态录像,YoVision 优先保存事件证据,避免重复存储全量视频。
## 5. 场景优先级
- 首个场景在 M0 开放问题关闭后选定;不得由 agent 自行决定。
- S1 居家养老、S2 校园、S3 社区是目标场景;MVP 只跑通其中一个。
- S4 工厂/园区在 M4 前不实现。
- 高空抛物不进通用底座。
## 6. 合规门禁
- 家庭卧室、卫生间不安装摄像头,只能使用非成像传感器。
- 未成年人影像、人脸识别、留存期限必须完成法务确认;未完成时阻塞相关 M3/M5 功能上线。
- 人脸特征加密、独立审计、有效期必填、到期失效;原始人脸图不与普通事件证据混存。
- YOLO 商用必须取得 Ultralytics Enterprise License;未获批则走已记录的开源替代路线。
## 7. MVP 非目标
- 不使用完整 MiBeeNvr 作为生产系统。
- 不在 M1 开发完整管理端、人脸、异构传感器或多场景包。
- 不为 128 路提前堆一套分布式平台,但所有边界必须可分片、可配置、可观测。
- 不承诺未经现场数据验证的检出率或误报率;先建立可重复测试集和基线。
## 8. 追溯
- 原始需求编号与优先级:[`raw/01-需求收集.md`](raw/01-需求收集.md)。
- 需求分层、状态机、数据模型与风险:[`raw/02-需求分析.md`](raw/02-需求分析.md)。
- 技术落地与 NVR 选型:[`raw/03-通用场景应用方案.md`](raw/03-通用场景应用方案.md)。