📦 模型下載https://pub-478929a98a5c440cb22c2241c0bde314.r2.dev/forklift_yolo26n_v20260525/best.pt

⚠️ Export Bug — v525 訓練資料不完整(NOT for production deploy)

症狀:14 個自 v519 後新 acceptance 的 cvat #9 任務(IRODA_WAREHOUSE 系列 CH04/CH05_2026051x_001 等)frames 幾乎全沒進 training:

taskcvat size實際進 val/test
4867 IRODA_WAREHOUSE_CH04_20260514_001235 framesval 1 img
4902 IRODA_WAREHOUSE_CH04_20260506_00191 framesval 1 img
4869 IRODA_WAREHOUSE_CH05_20260513_001156 frames0 ❌
4900 IRODA_WAREHOUSE_CH05_20260506_001175 frames0 ❌
4862 IRODA_WAREHOUSE_CH04_20260515_0011060 frames (Train)0 ❌

根因:v519/v525 export script 把 cvat meta["frames"] 當 image list iterate,但新 IRODA 任務是 video mode(單一 mp4 entry,例 頻道4-倉庫進料區_20260514_928.mp4)。export 對每 task 只看到 1 個 entry,且 disk resolver 找 mp4 找不到 frame image → 直接 skip 整 task。

影響:v525 ≈ v519 同 dataset 重訓;本報告上方 +3.7pp Precision 是 retrain noise,不是新資料貢獻。Per-source 區段(下方)的 IRODA bucket 完全沒出現可佐證。

跟標記師討論點:cvat #9 是要用 video mode 上傳?還是希望 export 端負責把 mp4 拆 frame?PPE export (export_p12_v521.py) 已有 video frame 處理可參考。

下一步:(1) 修 export 加 video frame 處理 (2) 重 export + 開 v526 訓練 (3) v525 best.pt 暫不切 production,繼續用 v519

🚜 Forklift YOLO Detection v20260525

train @ 5090-2 GPU 1, single-card batch=64, 2026-05-25 cvat #9 export (87 accepted tasks, 11,431 train imgs)

📊 Key Metrics — v20260525 vs v20260519

Metricv20260519 (ep100)v20260525 best (ep98)Δ
Precision0.9490.98595+3.7pp
Recall0.9070.90444-0.3pp
mAP500.9530.94962-0.3pp
mAP50-950.8200.81669-0.3pp

🛡️ SOP v20260518 補強

1. 全 project shape distribution (accepted tasks only)

shape typecount
rectangle10625
polygon8154
polyline1

rectangle(v518 翻車主因),全 polygon → 走 polygon→bbox (min/max xy)。symmetry with v519 fix.

2. Recall @ Precision=0.95 (SOP primary metric)

🎯 R @ P≥0.95 = 0.9046 (at conf=0.55, actual P=0.9869)

conf sweep 完整表格
confPRmAP50mAP50-95
0.0010.98690.90420.94920.8165
0.010.98690.90420.95610.8331
0.050.98690.90420.95940.8407
0.10.98690.90420.96000.8425
0.150.98690.90420.95930.8427
0.20.98690.90420.95730.8427
0.250.98690.90420.95720.8431
0.30.98690.90420.95680.8432
0.350.98690.90420.95590.8434
0.40.98690.90420.95260.8421
0.450.98690.90420.95210.8421
0.50.98690.90420.95020.8417
0.550.98690.90460.94930.8419
0.60.98870.90120.94770.8409
0.650.99050.89260.94350.8384
0.70.99130.88400.93930.8356
0.750.99220.87540.93510.8331
0.80.99310.86430.92960.8304
0.850.99380.82820.91180.8205
0.90.99620.68130.83900.7758
0.950.99790.41580.70680.6761

3. Per-source metrics(domain shift audit)

val

sourcen_imgsPRmAP50mAP50-95
other11480.98670.90400.94980.8181
HONCHUAN231.00000.92410.94720.6898

test

sourcen_imgsPRmAP50mAP50-95
other21570.98970.98170.99400.8721
HONCHUAN1070.96611.00000.99370.9123

🔄 Training Curve

📈 PR / F1 Curves

🔍 Confusion Matrix

👀 Val predictions sample

labels
preds

⚙️ Hyperparams (full inheritance from v20260519)

{
  "epochs": 100,
  "patience": 30,
  "batch": 64,
  "imgsz": 640,
  "device": "1 (single GPU)",
  "model_base": "yolo26n.pt",
  "optimizer": "auto -> MuSGD lr=0.01 mom=0.9",
  "augmentation": "default (mosaic=1.0, close_mosaic=10, fliplr=0.5, hsv_v=0.4)",
  "fully_inherited_from": "v20260519"
}

📦 Dataset