YOLO
YOLO——You Only Look Once(Redmon 等人,2016)——把偵測從一條多步驟管線,重新框定為一次前向傳遞就解決的單一回歸問題,這正是它成為即時偵測器原型的原因。兩階段方法是先提議再分類,YOLO 則對整張影像看一次,並直接同時輸出所有的框與類別機率。「你只看一次」既是名字也是設計哲學:沒有提議、沒有重新裁切、沒有第二次傳遞。
最初的構想:把影像切成 S×S 的格網(例如 7×7)。每個格負責中心落在其中的物件,並預測 B 個邊界框(各有 x、y、w、h 與一個反映物件性 × 框品質的信心值)外加該格的 C 個類別機率。整個輸出是一個形狀為 S×S×(B·5 + C) 的張量,由單一 CNN 產生,並以一個結合了定位、信心與分類的損失訓練。一次看到全域影像,讓 YOLO 擁有強烈的脈絡,背景誤報也極少。
YOLO 最初的權衡是以精確度換速度:它能跑到 45+ fps(Fast YOLO 超過 150 fps),但定位準確度不如 Faster R-CNN,且因每格只預測少數框與一個類別,而難以應付小型或群聚的物件。後續版本系統性地縮小了這個差距。v2(YOLO9000)加入錨框、批次正規化與維度叢集;v3 加入多尺度預測(類似 FPN 的三尺度頭)與更強的骨幹;v4/v5 則把各種訓練技巧工業化(馬賽克擴增、CIoU 損失、PANet 頸部)。
現代 YOLO(v6–v12 與 Ultralytics 系列)是無錨框的,採用解耦的分類/回歸頭、進階的標籤分配(如 SimOTA/TAL)與分佈式 focal 框回歸,在保持即時的同時達到可與兩階段偵測器競爭的準確度。這個品牌已成為「快速單階段偵測」的統稱,而非單一固定架構;不變的是那套哲學——一個網路、一次傳遞、在格網上做密集預測、最後跑 NMS(直到極近期出現端對端、免 NMS 的 YOLO 變體)。
別把「YOLO」當成單一模型。版本影響極大:YOLOv1 與 YOLOv8 在架構上幾乎毫無共通(基於錨框對無錨框、單尺度對 FPN、耦合對解耦頭)。回報結果時務必註明具體版本。