From 73594171034e15ccbce5f117cf43ff25e5964924 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Tue, 14 Apr 2026 09:40:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B5=8B=E8=AF=95=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/requirements/guide.md | 7 +- .../shoe_face_test_record_2026-04-13.md | 217 ++++++++++++++++++ 2 files changed, 223 insertions(+), 1 deletion(-) create mode 100644 docs/workshop_ai/shoe_face_test_record_2026-04-13.md diff --git a/docs/requirements/guide.md b/docs/requirements/guide.md index 8130ea6..db4bbfa 100644 --- a/docs/requirements/guide.md +++ b/docs/requirements/guide.md @@ -32,6 +32,8 @@ ffmpeg -re -stream_loop -1 -i 监控.mp4 -c copy -rtsp_transport tcp -f rtsp rts ffmpeg -stream_loop -1 -re -i "boots.mp4" -c:v libx264 -preset fast -tune zerolatency -r 30 -f rtsp -rtsp_transport tcp rtsp://localhost:8554/cam +ffmpeg -re -stream_loop -1 -i reg_001_单人_侧面_黑色鞋_1.mp4 -c copy -rtsp_transport tcp -f rtsp rtsp://10.0.0.49:8554/cam + - 本地验证RTSP拉流正确 ffplay rtsp://localhost:8554/cam @@ -51,8 +53,11 @@ go build -o rk3588-agent_linux_arm64 ./cmd/rk3588-agent - 运行模拟告警服务 python .\mock_alarm_server.py +或 +uv run --with flask scripts/mock_alarm_server.py -uv run scripts/mock_alarm_server.py +- 运行minio +C:\Users\Tellme\minio\minio.exe server C:\Users\Tellme\minio\myminio --address ":9000" --console-address ":9001" 然后在 RK3588 上测试 token 接口: curl -X POST http://10.0.0.49:8080/api/getToken diff --git a/docs/workshop_ai/shoe_face_test_record_2026-04-13.md b/docs/workshop_ai/shoe_face_test_record_2026-04-13.md new file mode 100644 index 0000000..855c816 --- /dev/null +++ b/docs/workshop_ai/shoe_face_test_record_2026-04-13.md @@ -0,0 +1,217 @@ +# 车间视频测试记录(2026-04-13) + +## 1. 测试目的 + +记录当前在 `RK3588` 设备上的人脸识别与劳保鞋识别联调结果,尤其是黑鞋误报、白鞋告警、以及对应测试版配置参数。 + +本记录区分两类内容: + +- 设备侧实际运行与日志结论 +- 当前用于调试的测试版配置参数 + +## 2. 测试环境 + +- 设备:`10.0.0.81` +- 项目路径:`/home/orangepi/apps/OrangePi3588Media` +- 测试输入:本地 `ffmpeg` 推 RTSP,`3588` 设备拉流处理 +- 输出查看:VLC 查看 `3588` 输出流 +- 人脸库:已在 `3588` 上生成并供服务加载 +- 报警联动: + - 本地 MinIO 已联通 + - 本地 mock alarm server 已联通 + +## 3. 当前测试版配置 + +当前主要使用的测试配置文件: + +- `/home/orangepi/apps/OrangePi3588Media/configs/full_pipeline_1080p_test_alarm.json` + +说明: + +- 该文件用于调试,不等同于正式配置 +- 原始配置文件 `full_pipeline_1080p.json` 未作为本轮测试主配置 + +### 3.1 当前告警调试参数 + +为便于观察白鞋/黑鞋是否进入告警链路,测试版告警条件已放宽: + +- `min_score = 0.10` +- `min_duration_ms = 0` +- `min_hits = 1` +- `hit_window_ms = 3000` +- `cooldown_ms = 1000` + +说明: + +- 这些参数只适合联调阶段 +- 不适合直接作为正式上线值 + +### 3.2 当前鞋颜色判定参数 + +当前测试版 `shoe_color.color_check` 参数为: + +- `method = brightness` +- `dark_threshold = 90` +- `roi_expand = 1.0` +- `center_w_scale = 0.6` +- `center_h_scale = 0.6` +- `enable_size_filter = true` +- `max_shoe_height_ratio = 0.28` +- `max_shoe_width_ratio = 0.60` +- `max_shoe_area_ratio = 0.15` + +## 4. 当前设备侧代码调试状态 + +本轮在 `3588` 上做过的关键修正: + +1. 颜色分析不再直接看整块鞋框,而是看鞋框中心 `60% x 60%` +2. `shoe_color` 不再处理未成功关联到人的鞋框 + - 即:未关联鞋框会直接跳过 +3. 在 `shoe_color` 前增加了尺寸过滤 + - 过滤条件支持写进配置 + - 当前启用高度、宽度、面积三项约束 +4. `logic_gate` debug 日志已补充: + - `person bbox` + - `foot_region` + - `skip unmatched shoe` + - `size filter skip` + +## 5. 人脸识别结果 + +### 5.1 当前现象 + +- 人脸检测链路正常 +- 已登记身份能识别出 `reg001` +- 远距离或角度不佳时可能先显示红框/`unknown` +- 人靠近后能稳定变成绿色识别框 + +### 5.2 当前判断 + +- 人脸主链路已跑通 +- 当前主要矛盾已不在人脸识别 +- 后续如果继续优化,应重点看距离、侧脸、低清晰度下的识别稳定性 + +## 6. 劳保鞋识别结果 + +### 6.1 早期问题 + +在未修正数据流前,黑鞋视频存在明显误报,白鞋视频也出现过告警不稳定。 + +通过设备侧日志确认的根因包括: + +- `ai_shoe_det` 会追加多个鞋框 +- `shoe_assoc` 只会给部分鞋框补上人的 `track_id` +- `shoe_color` 早期会处理不该处理的鞋框 +- 大鞋框或错误关联鞋框进入颜色判断后,容易把黑鞋判成 `non_black_shoe` + +### 6.2 现阶段黑鞋结论 + +在当前测试参数下,黑鞋误报已经明显下降。 + +设备侧日志表现为: + +- 未关联鞋框会被 `skip unmatched shoe` +- 大坏框会被 `size filter skip` +- 主小人正常鞋框进入颜色分析后,多数结果为: + - `is_dark = true` +- 最近一轮黑鞋日志中,没有再看到新的: + - `color violation` + - `RULE MATCHED` + - `ALARM` + +阶段性判断: + +- 当前这组过滤参数对黑鞋误报收敛有效 + +### 6.3 现阶段白鞋结论 + +在当前测试参数下,白鞋仍然可以稳定触发告警。 + +设备侧日志表现为: + +- 小而有效的白鞋框能保留下来 +- `Brightness` 明显偏高,`is_dark = false` +- 可继续触发: + - `color violation` + - `RULE MATCHED` + - `ALARM` + +同时,过大的白鞋框仍会被尺寸过滤挡掉。 + +阶段性判断: + +- 当前这组参数没有把白鞋违规一起压没 + +## 7. 当前对尺寸过滤的结论 + +### 7.1 已验证结论 + +1. `max_shoe_height_ratio = 0.05` + - 过于严格 + - 会把大量正常鞋框一起过滤掉 + - 仅适合证明过滤链路是否生效,不适合作为正式值 + +2. 当前更平衡的测试值 + - `max_shoe_height_ratio = 0.28` + - `max_shoe_width_ratio = 0.60` + - `max_shoe_area_ratio = 0.15` + +3. 面积比例比高度比例更关键 + - `0.12` 时会压掉一部分有效白鞋框 + - 调到 `0.15` 后,白鞋有效框放回了一部分 + - 同时黑鞋明显误报暂未重新抬头 + +### 7.2 现阶段推荐测试值 + +如果继续沿当前方向验证,建议先保持: + +- `max_shoe_height_ratio = 0.28` +- `max_shoe_width_ratio = 0.60` +- `max_shoe_area_ratio = 0.15` + +## 8. 下一步建议 + +下一步优先顺序建议如下: + +1. 用同一组参数继续测多人视频 +2. 补测不同距离的黑鞋/白鞋 +3. 记录: + - 黑鞋是否再次出现误报 + - 白鞋是否稳定告警 + - 多人时是否出现串人、串鞋 +4. 如果后续再调参数,优先围绕: + - `max_shoe_area_ratio` + - `max_shoe_width_ratio` + +不建议下一步立即再收紧 `max_shoe_height_ratio` + +### 8.1 建议补充的多人测试视频 + +当前多人混合视频中同时存在黑鞋和白鞋,虽然能看到告警,但不利于明确区分: + +- 哪些属于白鞋正确告警 +- 哪些属于黑鞋误报 + +因此建议优先补充两类“控制变量”视频: + +1. 多人全黑鞋或深色鞋视频 + 用途:专门测误报。只要出现告警,基本可以直接判为误报。 + +2. 多人全白鞋或浅色鞋视频 + 用途:专门测漏报。若不告警或告警明显不稳定,可判为漏报。 + +如果资源允许,可再补一类: + +3. 多人黑白混合视频 + 用途:验证多人同框下是否能同时兼顾黑鞋不过报、白鞋能报警。 + +## 9. 现阶段结论 + +截至本记录时间点,可以做出的阶段性判断是: + +- 人脸识别主链路已跑通 +- 劳保鞋识别的数据流问题已定位并已做设备侧修正 +- 当前测试参数下: + - 黑鞋误报明显下降 + - 白鞋仍可触发告警 +- `size filter + 只处理已关联鞋框` 是当前阶段最有效的修正方向