🚜 Forklift YOLO26n v20260519

訓練日期 2026-05-19 · 5090-2 雙卡 · base = yolo26n.pt

🚀 結論:大幅進步(rectangle bug 修復)

v518 export 寫 if type != "polygon": continue 丟掉 72% 的 rectangle annotation,訓練只用 4,017 bbox。 v519 修 export 把 10,625 rectangle + 4,109 polygon 全部納入,訓練資料量 4.15× 增加, 完整 test set mAP50 從 v518 的 0.752 提升到 0.994+0.242)。

📊 核心指標(test set)

0.994
Precision
0.970
Recall
0.994
mAP@0.50
0.877
mAP@0.50-95

⚠️ 重要:v518 mAP50=0.995 是「假象」

v518 自己評估報 mAP50=0.995 是因為 test set 也用同樣的 polygon-only export,只測試模型「在自己缺資料的子集」的能力。一旦用完整含 rectangle 的 test 集評估,v518 ckpt mAP50 掉到 0.752(-0.243,完全沒看過 rectangle 標注的物件)。

🆚 4-way 對比(核心發現)

CkptTest setPRmAP50mAP50-95備註
v518v518 (polygon only)0.9950.9860.9950.882誤導性高分
v518v519 (完整)0.9950.5230.7520.668真實水準
v519v519 (完整)0.9940.9700.9940.877正確訓練
v519v518 (polygon only)0.6640.9390.9270.817P 掉是因 v519 也 detect 沒標的 rectangle 物件

🧪 Ablation:YOLO26 純架構貢獻(control 對照)

用同一份 v519 完整 dataset(含 rectangle),把 base weight 換回 yolo11n.pt 訓 100 ep(forklift_yolo11n_v20260519_ctrl),結論:YOLO26 vs YOLO11n 持平,所有改進 100% 來自 rectangle bug 修復。

CkptDatasetPRmAP50mAP50-95
YOLO11n v518v519 test (完整)0.9950.5230.7520.668
YOLO11n + v519 data (ctrl)v519 test (完整)0.9910.9880.99440.878
YOLO26n + v519 datav519 test (完整)0.9940.9700.99380.877

分解 +24.2pp mAP50 進步:

→ 未來資料修復優先級遠高於換 backbone;person v519 也驗證 YOLO26 對 cvat #1 (全 polygon) 持平。

📐 Shape type 分布(cvat #9)

SubsetRectanglePolygonPolyline
Train8,5142,8150
Validation1,0601040
Test1,0511,1901
Total10,625 (72%)4,109 (28%)1 (忽略)

📂 Dataset

Splitv518 img / bboxv519 img / bbox變化
train11,226 / 2,72411,360 / 11,317+4.15× bbox + 5 個新 HONCHUAN task
val1,171 / 1041,171 / 1,164+11×
test2,264 / 1,1892,264 / 2,240+1.9×

📋 對應 SOP 規則(已寫進 SOP)

必守規則(2026-05-19 新增):訓練前必掃 cvat shape type 分布;含 rectangle 強制 bbox YOLO det,不准只取 polygon。

詳見 訓練 SOP v20260518 與 fail table 教訓 row。

📦 模型下載

https://pub-478929a98a5c440cb22c2241c0bde314.r2.dev/forklift_yolo26n_v20260519/best.pt ⬇

⚙️ Hyperparams(完全沿用 v20260518 baseline,僅換 base weight)

task: detect, model: yolo26n.pt, epochs: 100, patience: 30
batch: 64, imgsz: 640, device: 0,1, cache: ram, workers: 8
optimizer: auto, lr0: 0.01, lrf: 0.01, momentum: 0.937, weight_decay: 0.0005
cos_lr: False, close_mosaic: 10, warmup_epochs: 3.0
hsv_h: 0.015, hsv_s: 0.7, hsv_v: 0.4
mosaic: 1.0, fliplr: 0.5, translate: 0.1, scale: 0.5
iou: 0.7, max_det: 300, seed: 0, deterministic: True

# Export shape filter(v519 修復點)
# v518: if sh["type"] != "polygon": continue       ← BUG,丟 72% annotation
# v519: if sh["type"] in ("polygon", "rectangle")  ← 全部納入

← 訓練報告目錄 · 訓練 SOP