[BRN] 实现危险区域与方向越线判定 #15

Closed
opened 2026-08-12 09:53:42 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:需求
  • 任务类型:单项目
  • 主项目:Brain
  • 主 agent:Brain agent
  • 所属 Epic:#7
  • 所属 MVP / 版本:#8
  • 阶段:阶段 1(三条独立纵切)/ 已完成(用户于 2026-08-28 验收通过)

依赖与并行

  • 前置工单:#14、#11
  • 是否允许与前置工单并行:否
  • 原因:规则需要匿名轨迹观测以及项目内版本化的区域/Profile 配置。

子项目影响

  • 仅影响的子项目 / 交付单元:Brain
  • 是否跨子项目:否
  • 是否修改共享接口或契约:否;唯一事实来源:Brain 项目内部类型与测试夹具,不形成跨项目契约
  • write_paths:
    • Brain/src/yovision_brain/rules/
    • Brain/tests/rules/
    • Brain/tests/fixtures/rules/
  • 各子项目需要执行的验证:仅执行 Brain 对应测试;Sense、Bell 无需启动或验证

协同接口

  • 生产者:不适用
  • 消费者:不适用
  • 契约/共享事实源:不适用;不得在本任务复制或发布临时共享契约
  • 兼容策略:不适用
  • 被阻塞或需要适配的工单:不适用
  • 集成顺序:不适用

原始需求

  • 来源:用户对话、#7、#8、Product-Requirements BRN-001~BRN-007、Requirements-Migration-Matrix T-017
  • 提出时间:2026-08-12
  • 关键原话或脱敏摘要:先创建三个项目各自独立任务的全部工单,标题以项目英文简称开头;Brain 首轮仅覆盖独立骨架到项目内匿名事件输出,不依赖 Sense/Bell 在线。

要解决什么

Brain 需要把匿名轨迹转换为可解释的危险区域进入/停留候选和方向越线候选,并保持模型观测与业务规则分层。

做什么 / 不做什么

  • 做:实现多边形危险区域与有方向警戒线的几何判定;绑定配置版本、Profile/分辨率;输出 Brain 内部规则命中候选;覆盖边界点、方向、抖动和配置错误。
  • 不做:不实现聚集、排班/复杂时段、完整持续时间/冷却策略、Bell Alert、正式标准事件 Schema、证据、效果评估或跨项目配置获取。

已确认方案

规则层只消费匿名轨迹和 Brain 项目内规则配置。坐标与 Profile/分辨率及配置版本显式绑定;检测锚点和方向判定约定写入模块说明和测试。输出是内部候选事实,不是对 Bell 的标准事件。首纵切只完成危险区域和方向越线的最小可解释语义。

预计修改文件:

  • Brain/src/yovision_brain/rules/
  • Brain/tests/rules/
  • Brain/tests/fixtures/rules/

所有实现、测试和项目内说明只能落在上述 Brain/ 路径;发现需要 contracts/、Sense/、Bell/ 或根级编排时停止实施并提交协同需求摘要。

需求变化记录

无。

文档影响

  • 不影响长期文档,原因:不适用
  • 更新项目档案或本地开发与验证
  • 更新架构与代码地图
  • 更新业务规则与术语
  • 更新常见修改或故障排查
  • 更新其他 Wiki 页面:Product-Requirements / Product-Roadmap 中仅补充最终实现事实与可复制命令;;记录坐标、方向和内部规则候选语义

说明:Wiki 是长期文档事实源;本单元任务不直接取得仓库根 docs/ 的写权限,本地镜像由验收归档流程统一同步。

交付文档影响

  • 无交付文档影响,原因:无直接客户交付文档影响;本任务形成内部推理单元能力,面向实施/维护者的运行说明记录在 Brain 项目说明及项目 Wiki。
  • 更新已有交付文档,受众与页面:
  • 新增交付文档,受众与页面:
  • 需要目标岗位或客户代表验证:否;验证方式:不适用

验收标准

  • 固定轨迹与多边形配置可重复判定区域外、进入和区域内状态。
  • 固定轨迹与有向警戒线可区分允许方向、触发方向及未穿越。
  • 结果携带规则配置版本、Profile/分辨率和可解释的命中原因。
  • 边界点、贴线、方向反转、低幅抖动、无效多边形和分辨率不匹配有测试。
  • Sense/Bell 未启动且无共享契约时,全部规则测试可独立通过。

验证方式

Brain\.venv\Scripts\python.exe -m pytest Brain/tests/rules -q

使用 #14 的确定性匿名轨迹与 #11 的项目内配置夹具。

Sense、Bell 必须保持未启动;测试只使用合成/本地视频与 Brain 项目内配置。不能完成的 GPU、真机、现场和跨项目验证必须如实回写工单,不得以 mock 结果冒充。

风险和回退

几何边界、坐标缩放和抖动可能造成误触发。回退方式是移除 rules 模块与专属夹具,不改变检测/跟踪输出。现场阈值、聚集、完整时段/持续/冷却语义须后续独立工单验证,不在本工单声称完成。

## 基本信息 - 类型:需求 - 任务类型:单项目 - 主项目:Brain - 主 agent:Brain agent - 所属 Epic:#7 - 所属 MVP / 版本:#8 - 阶段:阶段 1(三条独立纵切)/ 已完成(用户于 2026-08-28 验收通过) ## 依赖与并行 - 前置工单:#14、#11 - 是否允许与前置工单并行:否 - 原因:规则需要匿名轨迹观测以及项目内版本化的区域/Profile 配置。 ## 子项目影响 - 仅影响的子项目 / 交付单元:Brain - 是否跨子项目:否 - 是否修改共享接口或契约:否;唯一事实来源:Brain 项目内部类型与测试夹具,不形成跨项目契约 - write_paths: - `Brain/src/yovision_brain/rules/` - `Brain/tests/rules/` - `Brain/tests/fixtures/rules/` - 各子项目需要执行的验证:仅执行 Brain 对应测试;Sense、Bell 无需启动或验证 ## 协同接口 - 生产者:不适用 - 消费者:不适用 - 契约/共享事实源:不适用;不得在本任务复制或发布临时共享契约 - 兼容策略:不适用 - 被阻塞或需要适配的工单:不适用 - 集成顺序:不适用 ## 原始需求 - 来源:用户对话、#7、#8、Product-Requirements BRN-001~BRN-007、Requirements-Migration-Matrix T-017 - 提出时间:2026-08-12 - 关键原话或脱敏摘要:先创建三个项目各自独立任务的全部工单,标题以项目英文简称开头;Brain 首轮仅覆盖独立骨架到项目内匿名事件输出,不依赖 Sense/Bell 在线。 ## 要解决什么 Brain 需要把匿名轨迹转换为可解释的危险区域进入/停留候选和方向越线候选,并保持模型观测与业务规则分层。 ## 做什么 / 不做什么 - 做:实现多边形危险区域与有方向警戒线的几何判定;绑定配置版本、Profile/分辨率;输出 Brain 内部规则命中候选;覆盖边界点、方向、抖动和配置错误。 - 不做:不实现聚集、排班/复杂时段、完整持续时间/冷却策略、Bell Alert、正式标准事件 Schema、证据、效果评估或跨项目配置获取。 ## 已确认方案 规则层只消费匿名轨迹和 Brain 项目内规则配置。坐标与 Profile/分辨率及配置版本显式绑定;检测锚点和方向判定约定写入模块说明和测试。输出是内部候选事实,不是对 Bell 的标准事件。首纵切只完成危险区域和方向越线的最小可解释语义。 预计修改文件: - `Brain/src/yovision_brain/rules/` - `Brain/tests/rules/` - `Brain/tests/fixtures/rules/` 所有实现、测试和项目内说明只能落在上述 `Brain/` 路径;发现需要 `contracts/`、`Sense/`、`Bell/` 或根级编排时停止实施并提交协同需求摘要。 ## 需求变化记录 无。 ## 文档影响 - [ ] 不影响长期文档,原因:不适用 - [x] 更新项目档案或本地开发与验证 - [x] 更新架构与代码地图 - [ ] 更新业务规则与术语 - [ ] 更新常见修改或故障排查 - [x] 更新其他 Wiki 页面:Product-Requirements / Product-Roadmap 中仅补充最终实现事实与可复制命令;;记录坐标、方向和内部规则候选语义 说明:Wiki 是长期文档事实源;本单元任务不直接取得仓库根 `docs/` 的写权限,本地镜像由验收归档流程统一同步。 ## 交付文档影响 - [x] 无交付文档影响,原因:无直接客户交付文档影响;本任务形成内部推理单元能力,面向实施/维护者的运行说明记录在 Brain 项目说明及项目 Wiki。 - [ ] 更新已有交付文档,受众与页面: - [ ] 新增交付文档,受众与页面: - [ ] 需要目标岗位或客户代表验证:否;验证方式:不适用 ## 验收标准 - [x] 固定轨迹与多边形配置可重复判定区域外、进入和区域内状态。 - [x] 固定轨迹与有向警戒线可区分允许方向、触发方向及未穿越。 - [x] 结果携带规则配置版本、Profile/分辨率和可解释的命中原因。 - [x] 边界点、贴线、方向反转、低幅抖动、无效多边形和分辨率不匹配有测试。 - [x] Sense/Bell 未启动且无共享契约时,全部规则测试可独立通过。 ## 验证方式 ```powershell Brain\.venv\Scripts\python.exe -m pytest Brain/tests/rules -q ``` 使用 #14 的确定性匿名轨迹与 #11 的项目内配置夹具。 Sense、Bell 必须保持未启动;测试只使用合成/本地视频与 Brain 项目内配置。不能完成的 GPU、真机、现场和跨项目验证必须如实回写工单,不得以 mock 结果冒充。 ## 风险和回退 几何边界、坐标缩放和抖动可能造成误触发。回退方式是移除 rules 模块与专属夹具,不改变检测/跟踪输出。现场阈值、聚集、完整时段/持续/冷却语义须后续独立工单验证,不在本工单声称完成。
ila added the kind/taskpriority/p0project/brainscope/independent labels 2026-08-12 09:58:38 +08:00
Author
Owner

开始实施(2026-08-28)

  • 分支 feature/15-brain-rules,基线 dev@ee9cfb0433d398721cd6aa020afda379cdaa315a;#14 已验收。
  • write_paths:仅 Brain/src/yovision_brain/rules/、Brain/tests/rules/、Brain/tests/fixtures/rules/。
  • 方案:以轨迹框底边中心为归一化锚点;实现多边形 outside/entered/inside、边界视为 inside;有向线以起点→终点的左右侧定义方向,并用 deadband 抑制贴线抖动;结果绑定配置版本、Profile/分辨率和解释原因。
  • 输出仅为 Brain internal candidate,不是 Bell Alert 或共享事件。
## 开始实施(2026-08-28) - 分支 `feature/15-brain-rules`,基线 `dev@ee9cfb0433d398721cd6aa020afda379cdaa315a`;#14 已验收。 - write_paths:仅 `Brain/src/yovision_brain/rules/`、`Brain/tests/rules/`、`Brain/tests/fixtures/rules/`。 - 方案:以轨迹框底边中心为归一化锚点;实现多边形 outside/entered/inside、边界视为 inside;有向线以起点→终点的左右侧定义方向,并用 deadband 抑制贴线抖动;结果绑定配置版本、Profile/分辨率和解释原因。 - 输出仅为 Brain internal candidate,不是 Bell Alert 或共享事件。
Author
Owner

最终实施证据(待验收,2026-08-28)

  • 功能提交 f6f561f;PR #129 已合入 dev@6ffdbcce84745e9c71299177fdb82418a285bc38。
  • 实现版本化规则集、底边中心锚点、多边形 outside/entered/inside、边界语义、有向线正反方向和 deadband 抖动抑制;结果带版本/Profile/分辨率/原因。
  • Rules 5 passed;Brain 全量 36 passed;Harness strict 通过;仓库 48 tests 通过;合并后 Rules+Vision 11 passed。
  • Wiki Architecture revision 7377a72f8b4f82732a140502856d68109ccfa543;Local Development revision 6111bafc75ef75d38634b6c3bb18ace5aa3502cd。
  • 只修改 Brain rules 与测试路径;不启动 Sense/Bell,不修改 contracts。输出是内部候选,不是 Bell Alert/标准事件。
  • 非范围:聚集、完整时段/持续/冷却、正式配置契约、证据和效果评估。

#15 保持打开并待用户验收;#16 不提前实施。

## 最终实施证据(待验收,2026-08-28) - 功能提交 `f6f561f`;PR #129 已合入 `dev@6ffdbcce84745e9c71299177fdb82418a285bc38`。 - 实现版本化规则集、底边中心锚点、多边形 outside/entered/inside、边界语义、有向线正反方向和 deadband 抖动抑制;结果带版本/Profile/分辨率/原因。 - Rules 5 passed;Brain 全量 36 passed;Harness strict 通过;仓库 48 tests 通过;合并后 Rules+Vision 11 passed。 - Wiki Architecture revision `7377a72f8b4f82732a140502856d68109ccfa543`;Local Development revision `6111bafc75ef75d38634b6c3bb18ace5aa3502cd`。 - 只修改 Brain rules 与测试路径;不启动 Sense/Bell,不修改 contracts。输出是内部候选,不是 Bell Alert/标准事件。 - 非范围:聚集、完整时段/持续/冷却、正式配置契约、证据和效果评估。 #15 保持打开并待用户验收;#16 不提前实施。
Author
Owner

用户 ila 于 2026-08-28 明确验收通过 #15。基线 dev@6ffdbcce84745e9c71299177fdb82418a285bc38;Product-Requirements revision 814a44d442095115a599ddb61ba2d89cc7b7c159,Product-Roadmap revision 70f45c33ba3d1712c09323c7fe1d357a59c5a819。据此关闭,#16 前置满足。

用户 ila 于 2026-08-28 明确验收通过 #15。基线 `dev@6ffdbcce84745e9c71299177fdb82418a285bc38`;Product-Requirements revision `814a44d442095115a599ddb61ba2d89cc7b7c159`,Product-Roadmap revision `70f45c33ba3d1712c09323c7fe1d357a59c5a819`。据此关闭,#16 前置满足。
ila closed this issue 2026-08-28 23:22:46 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ila/yovision#15