# Detection 模型资产 本目录集中管理 cmvr-edge-ai 已注册的目标检测模型。Pipeline 仍统一使用 `detection.model@1` 节点;节点的 `with.model` 选择注册 ID, `with.model_options.weights` 选择本目录中的具体权重。 ## 当前模型 | 注册模型 ID | 版本目录 | Backend | 标签数 | 标签语义 | |---|---|---|---:|---| | `construction-ppe-yolov8@1` | [construction-ppe-yolov8/v1](construction-ppe-yolov8/v1/README.md) | `ultralytics-yolo` | 19 | PPE、PPE 缺失违规及部分现场设备 | | `ppe-6classes-yolov8n@1` | [ppe-6classes-yolov8n/v1](ppe-6classes-yolov8n/v1/README.md) | `ultralytics-yolo` | 6 | 画面中实际出现的六类 PPE | | `people-talking-yolov8x@1` | [people-talking-yolov8x/v1](people-talking-yolov8x/v1/README.md) | `ultralytics-yolo` | 2 | 上游通用 `label` 类及 `talking on phone` 行为类 | | `yolov8n-mobile-phone@1` | [yolov8n-mobile-phone](yolov8n-mobile-phone/README.md) | `ultralytics-yolo` | 1 | 画面中的 `mobile_phone` 手机物体 | 可通过以下命令查看运行时注册信息及有序标签: ```bash uv run --no-sync cmvr-edge-ai models ``` ## 配置规则 相对权重路径按启动进程的当前工作目录解析。本文档中的示例假定命令从仓库根目录执行: ```yaml nodes: detector: uses: detection.model@1 with: model: construction-ppe-yolov8@1 model_options: weights: models/detection/construction-ppe-yolov8/v1/best.pt ``` 模型加载时会严格比较 checkpoint 的类别名称和顺序与注册信息。权重不匹配时节点会停止 启动,不能通过只修改 `detect_labels` 绕过类别校验。 当前生产 Pipeline 会从同一个 decoder 并行运行 Construction PPE 与 People-Talking 两个 detector。People-Talking checkpoint 的 class 0 名称是含义不清的 `label`;注册 表为保证 ID 对齐而保留它,但部署配置只选择 `talking on phone`。 `configs/debug/detection_viewer.yaml` 不改变生产告警链路,它使用 `yolov8n-mobile-phone@1` 替代 People-Talking,与 Construction PPE 同帧显示。该模型 只说明画面中检测到手机物体,不能直接判断人员正在通话。 ## 新增版本 新增 Detection 模型或模型版本时: 1. 新建独立的 `/v/` 目录;已有的 `yolov8n-mobile-phone@1` 保留上游文件名和扁平目录,后续版本应恢复这一约定; 2. 把完整权重作为普通 Git 文件提交,并编写完整模型卡; 3. 使用 SHA256 校验权重来源和复制结果; 4. 在 `DetectionModelRegistry` 中注册唯一的 `@`; 5. 保证 `supported_labels` 与 checkpoint 类别编号严格同序; 6. 更新部署 YAML,并先执行 `cmvr-edge-ai models` 和 `cmvr-edge-ai validate`。 数据集压缩包、训练集和训练过程缓存不属于部署资产,不应放入本目录。