Backbone
YOLO 的 backbone 演進,並不是單純「越做越深」,而是一條讓深度可訓練、梯度可流動、計算可控的設計路線。
Classification → Detection Backbones
早期 YOLO 並沒有為 detection 設計專用 backbone,而是直接沿用分類模型。
- YOLOv1–v2
- 使用類分類 CNN(YOLOv1 自建 CNN、YOLOv2 的 Darknet-19)
- 優點 是結構簡單、速度快
- 但特徵表達能力有限,難以同時支撐多尺度與精細定位
- 關鍵問題
- 分類 backbone 追求語意抽象
- Detection 需要同時保留 空間細節 + 語意層級
- 這個衝突在小物體與密集場景中特別明顯
![]() | ![]() |
|---|---|
| YOLOv1 Custom CNN | YOLOv2 Darknet-19 |
Residual Backbone:讓深度可用(YOLOv3)
YOLOv3 是第一個真正解決 backbone 深度問題的版本。
- Darknet-53
- 引入 residual connection
- 讓梯度可以穩定傳遞到深層
- 設計意義
- backbone 不再只是「跑得快」
- 而是開始能承載多尺度特徵學習
- 影響
- 為後續 multi-scale prediction、FPN / PAN 打下基礎
- YOLO 開始進入「可長期演化」的架構狀態
但這一代的問題是:深度增加 ≠ 計算效率好。

CSP:不是加深,而是「切開」梯度流(YOLOv4–YOLOv5)
CSP(Cross Stage Partial Network)的提出,不是為了做一個更深的 backbone,而是為了解決深度 CNN 中一個被忽略的問題:
大量重複的梯度資訊,正在浪費計算與學習能力
Residual / Dense 的效率瓶頸
論文指出,即使是 ResNet 或 DenseNet 這類「梯度友善」的架構,仍存在結構性問題:
- 在 residual / dense 架構中:
- 每一層都會接收到來自所有前層的梯度
- 梯度路徑雖然變短,但資訊高度相關
- 結果是:
- 不同層學到高度重複的梯度資訊
- 造成:
- 不必要的計算
- 記憶體流量(memory traffic)增加
- 訓練與推論效率下降
Residual 解決了「梯度消失」,但沒有解決「梯度重複」。

