feat: Phase 1 handover - schema migration, correction mechanism, API fixes
Schema changes: dev.chunks->dev.chunk, remove old_chunk_id/chunk_index Correction: asr-1.json format, generate/apply scripts API: 37/37 endpoints fixed and tested Docs: HANDOVER_V2.0.md for M4
This commit is contained in:
45
docs/GUN_DETECTION_REPORT.md
Normal file
45
docs/GUN_DETECTION_REPORT.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# 槍枝檢測模型 Charade 評估報告
|
||||
|
||||
**Date:** 2026-05-10
|
||||
**模型:** YOLOv8n fine-tuned on Roboflow gun dataset (905 images)
|
||||
**Classes:** grenade (0), knife (1), pistol (2), rifle (3)
|
||||
**Weights:** `models/gun/gun_detector/weights/best.pt` (6MB)
|
||||
|
||||
## 訓練
|
||||
|
||||
- **Dataset**: 905 images, Roboflow CC BY 4.0
|
||||
- **Validation mAP50**: 0.813
|
||||
- **問題**: 訓練資料全為近距離槍枝特寫,與 Charade 電影中的中遠景畫面分布完全不同
|
||||
|
||||
## Charade 測試結果
|
||||
|
||||
### 系統掃描(24 取樣點 @ 每 300s)
|
||||
|
||||
| 時間 | 類別 | 信心 | 判定 |
|
||||
|------|------|------|------|
|
||||
| t=600s | pistol×2, rifle | 0.16–0.30 | ❌ FP |
|
||||
| t=1200s | knife | 0.37 | ❌ FP |
|
||||
| t=1800s | pistol | 0.19 | ❌ FP |
|
||||
| t=2400s | knife | 0.18 | ❌ FP |
|
||||
| t=3000s | pistol | 0.16 | ❌ FP |
|
||||
| t=5400s | pistol×2 | 0.45, 0.17 | ❌ FP(郵票被誤判為槍) |
|
||||
| t=6600s | grenade | 0.22 | ❌ FP |
|
||||
|
||||
### 密集掃描(ASR trigger)
|
||||
|
||||
在 ASR dialogue 提到 "gun" 的時間點附近跑 gun detector,找到 5 個 pistol/gun 觸發(3188s / 5461s / 6309s / 6377s / 6479s),confidence 0.300-0.387。
|
||||
|
||||
**結果:全部為 false positive。** 訓練效果非常不好 — 模型在電影中遠景畫面完全失效。
|
||||
|
||||
## 結論
|
||||
|
||||
1. 訓練資料與推論場景 distribution mismatch 嚴重
|
||||
2. 905 張 Roboflow 近距離特寫 → Charade 的中遠景手持/部分遮蔽槍枝 → 模型無法泛化
|
||||
3. 建議:收集電影真實槍枝畫面(200-500 張動作片片段)重新訓練
|
||||
4. 在此之前,槍枝搜尋只能靠 ASR dialogue keyword matching + 人工確認
|
||||
|
||||
## 相關檔案
|
||||
|
||||
- `models/gun/gun_detector/weights/best.pt` — 模型權重(效果不佳)
|
||||
- `output_dev/gun_detections/` — 偵測截圖(全部 FP)
|
||||
- `scripts/object_search_agent.py` — 整合搜尋 agent(gun detector 偵測結果僅供參考)
|
||||
Reference in New Issue
Block a user