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

🥤 拿杯子 cup_holder v20260602(PoC)

2026-06-02 · 5090-2 · DINOv3 ViT-S RoI HD 1280×720 · cvat #20「拿杯架」· 照 safety_rope 邏輯

⚠️ 重要:這是 PoC,test 1.0 是過擬合不是泛化能力

test acc/F1/AP 全 1.000 看似完美,但不可信:train/val/test 全來自同一場域(DAVIDMAC 同一支相機、同一個人、同背景)。split 雖按 task 切,仍是同 domain → model 輕鬆背起來。這個 100% 不代表能在真實工廠/不同人身上認出「有沒有拿杯子」。

要真正可用,必須收不同場域 / 不同人 / 不同相機角度的資料再重訓,並在「沒看過的場域」上評估。本版僅用於把整條 pipeline(錄製→cvat #20→訓練→部署)跑通驗證。

1.000
test acc(⚠️同場域)
983
train ROI
114
test ROI
1
場域數(單一)

📐 架構(完全照 safety_rope DINOv3 邏輯)

person YOLO26s@1280 偵測每個人 → 框外擴 (top 0.2 / side 1.0 / bottom 1.5)
  → RoI Align (DINOv3 ViT-S patch tokens, HD 1280×720)
  → 2-cls head:holding_cup_tray = 拿杯子(correct) / 沒拿(wrong)
backbone: vit_small_patch16_dinov3 (LVD-1689M SSL)
訓練 imgsz: 1280×720 / 推論 imgsz: 1280×720 · batch 8 · epochs 30 · jitter+外擴 aug

📊 資料(cvat #20「拿杯架」)

splitcorrect(拿)wrong(沒拿)
Train463520
Validation6259
Test6450

18 task / 1281 frame,全程 DAVIDMAC 單一相機錄製(ppe-demo 錄製面板新增「拿杯架 #20」目標收的)。class 平衡良好,但場域單一是泛化的硬傷

🎯 誤報分析(SOP)— 為何不能照常做

標準誤報分析要「按場景拆 FP」「比 train/test gap 判泛化」。本版只有單一場景、train 與 test 同 domain → train≈1.0 且 test≈1.0,正是「背了訓練集」的訊號(不是真的學會)。場景拆分無從做起。

結論:模型對「這個飯店/辦公場景、這個人」有效,但對泛化零保證。下一步必須補多場域資料。

🚀 部署狀態

已上 ppe-demo 兩台 model key cup_holder(即時 RTSP + CVAT 管理頁皆可選)。純 PoC 觀察用,不接任何告警。

📦 模型下載

cup_holder_v20260602/best.pt ⬇

← 訓練報告目錄