Refresh detection docs for two-stage workshoe pipeline

This commit is contained in:
tian 2026-03-15 12:20:00 +08:00
parent 58283e0191
commit 737b9bf0fe
2 changed files with 475 additions and 566 deletions

File diff suppressed because it is too large Load Diff

View File

@ -258,6 +258,109 @@ const int out_n = std::min<int>(cfg.max_faces, static_cast<int>(keep.size()));
## 四、人脸识别参数 (`ai_face_recog`)
---
## 五、车间劳保鞋检测参数(当前主线)
当前项目的鞋检测不再走“人鞋一体全图检测”思路,而是:
```text
ai_yolo(person only)
-> tracker(person only)
-> ai_shoe_det(dynamic foot roi)
-> logic_gate(person_shoe_check)
-> logic_gate(ppe_boots_check)
-> alarm
```
也就是说,鞋子相关参数不再只看一个 `detect.conf`,而是分成 4 层:
1. 人体前级参数
2. 鞋检测参数
3. 颜色判断参数
4. 告警稳定性参数
### 1. 人体前级参数(`ai_yolo`
| 参数 | 当前建议 | 作用 |
|------|----------|------|
| `conf` | `0.35` | 人体候选阈值 |
| `nms` | `0.45` | 人框去重 |
| `infer_fps` | `2` | 人检频率 |
| `bbox_expand.bottom` | `0.16` | 补偿高机位下漏脚问题 |
调参原则:
- 人框太紧、脚经常漏在外面:优先增大 `bbox_expand.bottom`
- 人漏检明显:适当降低 `conf`
- 周期性卡顿:先不要盲目提 `infer_fps`
### 2. 鞋检测参数(`ai_shoe_det`
| 参数 | 当前建议 | 作用 |
|------|----------|------|
| `conf` | `0.15` | 鞋候选召回阈值 |
| `nms` | `0.45` | 鞋框去重 |
| `infer_fps` | `2` | 鞋检频率 |
| `dynamic_roi.max_rois` | `3` | 单帧最多处理多少人 |
| `dynamic_roi.min_person_height` | `60` | 过滤太远的人 |
| `x_offset/y_offset/width_scale/height_scale` | 见推荐配置 | 控制脚部 ROI 形状 |
为什么 `shoe_det.conf` 只有 `0.15`
- 当前场景是高机位、小目标、遮挡多
- 如果把鞋阈值直接提到常规检测项目里的 `0.4~0.5`
通常先发生的是严重漏检,而不是“更稳”
- 当前链路依赖:
- 低阈值鞋候选召回
- 人鞋空间关联
- 鞋颜色判断
- 告警去抖和冷却
所以这里的思路是:
```text
前面低阈值多召回,后面多级逻辑再收紧
```
### 3. 颜色判断参数(`logic_gate -> ppe_boots_check`
| 参数 | 当前建议 | 作用 |
|------|----------|------|
| `method` | `brightness` | 颜色判断方式 |
| `dark_threshold` | `90` | 黑鞋/深色鞋阈值 |
| `roi_expand` | `1.0` | 颜色分析区域放大比例 |
调参原则:
- 黑鞋也经常被判成违规:适当提高 `dark_threshold`
- 拖鞋/浅色鞋经常被放过:适当降低 `dark_threshold`
### 4. 告警稳定性参数(`alarm`
| 参数 | 当前建议 | 作用 |
|------|----------|------|
| `min_score` | `0.30` | 蓝框进入告警的最低分数 |
| `min_hits` | `2` | 2 秒内至少出现几次 |
| `hit_window_ms` | `2000` | 命中窗口 |
| `min_duration_ms` | `800` | 持续多久才报警 |
| `cooldown_ms` | `15000` | 告警后的冷却时间 |
调参原则:
- 蓝框已经稳定出现,但不告警:先看 `min_score / min_hits / min_duration_ms`
- 告警过于频繁:提高 `cooldown_ms`
- 闪一下就报警:提高 `min_duration_ms`
### 推荐调参顺序
1. 先让人框稳定,脚不要漏
2. 再让鞋框能稳定出来
3. 再调颜色判断黑白边界
4. 最后再调告警节流
不要一开始就只改 `alarm`,否则常常会把“检测问题”误判成“规则问题”。
`ai_face_recog` 节点接收人脸检测结果,提取人脸特征向量并与特征库进行比对,完成人脸识别。
### 4.1 参数概览