偷盗检测 完整方案效果
预触发做什么
L1 用 CV 启发式尽早发现「可疑拿货 / 藏匿」,把关键帧送进 L2 VLM 诊断。 终判偷窃仍需双路径同时成立:VLM 判偷/藏匿未付 ∧ POS/票对账数量缺口。 普通 take/return 只改账本,不入 L2。
声明边界:漏斗含 L1 预触发 + Path1 VLM;终判仍需 vlm_steal ∧ qty_mismatch(POS)。弱标签仅辅助。
完整方案效果 测试集评测
测试集概况
加载测试集统计…
优先播放站内预打包 MP4(叠框 + ALARM,同源加载更快);无打包片时回退云端或实时叠框。
qty_pretrigger_eval 全量测试集 · 弱标签 clip 级口径(未预触发=不报)
| 模块 | 层级 | 准确率 | P | R | F1 | n | 口径 |
|---|
| 类别 | n | L1 未触发 | VLM 未判偷 | 终判 TP/FP |
|---|
技术详情 · OD / Path1 / 消融评测(点击展开)
预触发 OD 推荐 · 高召回教师 HQ Top-8 完整核对总结 →
HQ 关键帧检出:grounding-dino-tiny R≈0.93 · wedetect-tiny R≈0.80(高于 World)。 L1 已支持 --backend gdino|wedetect(软关联)。 WeDetect HQ 预触发评测可后台续跑。
| 层 | 指标 | 数值 | 说明 |
|---|
加载 HQ Top-8 / 教师预触发报告…
效果 · 完整 Path1(预触发 → VLM) qwen-vl-plus
仅对 L1 可疑事件抽关键帧送 VLM;漏斗为语料全量口径。
| 视频 | 弱标签 | 状态 | VLM | 判偷 | 诊断 |
|---|
方案 A · 数量预触发 qty_spike
配置:l1_trigger.qty_pretrigger(默认手部门控)
- 信号:软计数 taken_proxy、handheld_proxy_peak、短窗 take 突发
- 本阶段主看:确认关联后的 handheld_proxy_peak(同时手持最大数)+ 商品拖尾叠轨
- 导出演练:python scripts/export_handheld_trail.py --max-sec 30 → outputs/handheld_trail/
- 门控:近期 take 的手靠近比例 ≥ 0.5(可关,召回↑精度↓);关联驻留 assoc_min_frames
- 阈值默认:proxy/peak/burst ≥ 2;冷却 60s
- 只入队 L2,不是最终偷窃主张;POS 未接入前不做硬对账
方案 B · 藏匿轨迹 hybrid
配置:events.pretrigger = hybrid(legacy ∨ trajectory)
- legacy:手腕入 hip/torso 连续帧 streak
- trajectory:商品中心接近手腕 + 区域停留 + 共消失
- 仍需 take / item-missing 上下文,避免纯「手插口袋」误报
- 产出仍是 conceal 类事件 → Path1 入队
效果 · 数量预触发
合成场景有标签 P/R;视频为弱标签 fire rate。
| 消融 | P | R | F1 | TP | FP | FN |
|---|
效果 · 藏匿轨迹
合成:legacy vs trajectory vs hybrid;视频:店内 fire / conceal 源。
| 模式 | P | R | F1 | TP | FP | FN |
|---|
HQ Top-8 开放检测试跑 等待
人检门控 OVD · 偷盗加重 HQ · 低延迟优先。测完一项自动刷新;一夜任务写 comparison.json。
| # | 模型 | 状态 | 总检出 | R≈ | P≈ | 负误检 | 延迟 | 帧 |
|---|
视频可视化 · 叠框 / 关键点
绿=人 · 青=手持商品(WeDetect) · 橙=手腕靠近。默认 WeDetect 最优叠框;预烘焙后流畅。OD 下拉可切 YOLO-World 对照。
关键点 / 事件
分歧场景 · 数量
同一场景/视频上模式触发不一致时才有差异可看。
分歧场景 · 藏匿
合成 + 视频:legacy / trajectory / hybrid 不一致列表。
相关入口
复跑评测: python scripts/eval_qty_pretrigger_videos.py · python scripts/eval_path1_vlm_on_pretrigger.py --mode all --skip-done · python scripts/eval_trajectory_pretrigger_videos.py