跳至主要内容

YOLO Neck 的演進

YOLO 的 neck 演進,並不是單純增加層數,而是一條提升多尺度資訊流動效率與結構可擴展性的設計路線:

單尺度 → 多尺度融合 → 雙向資訊流 → 輕量化與結構一致性


單尺度預測(YOLOv1–YOLOv2)

早期 YOLO 並未將 neck 視為獨立模組,整體設計以即時性與低延遲為核心,模型直接使用 backbone 的最終特徵進行預測。

  • 設計背景
    • 目標是實現即時偵測(real-time detection)
    • 架構盡量簡化,以降低計算量與延遲
  • 設計特徵
    • 僅輸出單一解析度的 feature map
    • Detection head 直接在該尺度上進行預測
    • 架構簡單、計算量低,適合 real-time 場景
  • 結構限制
    • 深層特徵語意強,但空間解析度低
    • 低層的細節資訊未被利用
    • 模型無法同時兼顧不同尺寸目標
  • 實際影響
    • 小物體偵測能力較差
    • 對尺度變化與密集場景適應性有限
    • 容易產生定位誤差
問題

Detection 任務需要同時保留 高層語意 + 低層空間細節,但單尺度設計只能依賴單一層特徵,難以兼顧兩者。


Top-down 多尺度融合(YOLOv3)

YOLOv3 首次將多尺度融合納入核心設計,採用 FPN-style 結構。

  • 設計目標
    • 將深層語意回傳至高解析度特徵
    • 同時保留語意與空間細節
    • 提升小物體偵測能力
  • 核心機制
    • 深層特徵上採樣(upsample)
    • 與 backbone 中對應的淺層特徵 concat 融合
  • 影響
    • Neck 成為 YOLO 架構中的核心組件
    • 多尺度 detection 成為後續標準設計
    • 顯著改善小物體偵測能力
  • 備註
    • YOLOv3 是 簡化版 FPN(沒有 lateral conv smoothing)
關鍵

FPN 解決的是:將高層語意有效傳遞到高解析度特徵,使語意與定位能力同時存在

FPN:自上而下的語意增強架構

Feature Pyramid Network(FPN)的核心目標是解決物體偵測中的尺度變化問題

在傳統 CNN 中:

  • 深層特徵:
    • 語意強
    • 解析度低(不利小物體)
  • 淺層特徵:
    • 空間細節多
    • 語意弱(容易誤判)

FPN 的設計思想是:

將高層語意向下傳遞,讓高解析度特徵同時具有語意與細節。

核心機制

  • 建立 top-down pathway
    • 將深層特徵 上採樣(upsample)
  • 與對應的淺層特徵進行 lateral connection(橫向融合)
  • 在不同層形成一組 語意一致的 feature pyramid
  • 每一層都可用於偵測不同尺寸物體
問題

FPN 僅提供自上而下的語意傳遞,低層的定位與細節資訊無法有效回饋至高層,導致定位能力與特徵利用效率仍受限制。


雙向特徵融合(YOLOv4–YOLOv11)

在 YOLOv3 的 FPN 基礎上,後續版本導入 Path Aggregation Network(PAN),形成 PAFPN,成為之後版本的標準 neck 設計。

  • 設計動機
    • FPN 只能進行 top-down 語意傳遞
    • 低層的定位與細節資訊無法回饋至高層
  • 核心機制
    • Top-down path:維持高層語意向下傳遞(FPN)
    • Bottom-up path(PAN)
      • 將低層的定位與邊界資訊回傳至高層
      • 縮短高層特徵到輸入的資訊路徑
    • 形成 雙向特徵流(bi-directional feature flow)
  • 設計意義
    • 高層:語意更完整
    • 低層:定位能力更強
    • 各尺度特徵同時具備語意與細節
  • 影響
    • PAFPN 成為 YOLOv5–YOLOv11 的標準 neck
    • 對小物體與邊界定位顯著改善
關鍵

PAN / PAFPN 解決的是:FPN 中 低層定位資訊無法回饋高層 的問題,透過 bottom-up 路徑縮短資訊傳遞距離,使語意與定位資訊能在各尺度間充分融合。

PAN:自下而上的定位資訊強化架構

強化低層定位資訊向高層傳遞,改善特徵路徑過長的問題

  • 設計背景
    • FPN 只有 top-down 語意傳遞
    • 低層的邊界資訊、空間細節,難以影響高層決策
    • 高層特徵到輸入的資訊路徑過長,影響定位能力
  • 核心機制
    • 新增 Bottom-up path augmentation
      • 由低層 → 高層逐層向上融合
    • 短低層特徵傳遞至高層的資訊路徑
    • 讓每個層級同時具備:
      • 高層語意
      • 低層空間細節
  • 設計效果
    • 改善小物體與邊界定位
    • 提升多尺度特徵的資訊完整性
    • 僅增加少量計算成本
問題

PAN 主要負責 bottom-up 的定位資訊回傳,本身並未提供完整的語意建構能力,單獨使用將缺乏高層語意的多尺度傳遞。

PAFPN:雙向特徵融合的多尺度建構架構

整合雙向特徵流,提升多尺度特徵的語意一致性與定位能力

  • 設計概念
    • FPN(top-down)PAN(bottom-up) 結合
    • 形成 雙向特徵流(bi-directional feature flow)
  • 核心機制
    • Top-down path(FPN)
      • 將高層語意傳遞至高解析度特徵
    • Bottom-up path(PAN)
      • 將低層定位與細節資訊回傳至高層
    • 各尺度之間透過:
      • upsample / downsample
      • concat 融合
  • 設計意義
    • 每一層特徵同時具備:
      • 完整語意表達能力
      • 精確定位能力
    • 強化多尺度特徵的一致性與利用效率
問題

雙向融合雖提升表現,但也增加 concat 次數、memory traffic 與結構複雜度,成為後期輕量化優化的重點。


Neck Block 的演進

YOLOv5 之後,Neck 的整體結構(PAFPN)基本保持不變,主要演進集中在 內部特徵處理模組(block) 的優化,以提升效率與表達能力。

  • 設計方向
    • 保持 PAFPN 拓撲不變
    • 優化 feature processing block
    • 提升計算效率與梯度流動品質
    • 與 backbone 模組設計逐步統一

CSP-PAN:高效率的雙向特徵融合(YOLOv4)

  • 設計動機
    • 傳統 PAN / FPN 在多尺度融合時,特徵會重複經過深層卷積,產生 重複梯度資訊與計算浪費
    • 多尺度路徑密集連接,造成 FLOPs、記憶體存取與延遲增加
    • 需要在維持多尺度融合能力的同時,提升運算效率與訓練穩定性
  • 核心機制
    • 在 PAN 的每個 stage 中導入 Cross Stage Partial(CSP)結構
    • 將特徵通道 分為兩部分
      • 一部分經過較深的卷積與特徵融合
      • 另一部分走捷徑(identity path)
    • 最後將兩路特徵 concat 融合
    • 同時保留 Top-down(FPN)與 Bottom-up(PAN) 的雙向資訊流
  • 設計意義
    • 減少重複梯度與冗餘計算,降低約 10–20% 計算量,同時維持或提升精度
    • 降低 memory traffic,提高推論效率,特別適合即時偵測場景

yolov4-csp-pan

C3/C2f/C3k2:輕量化特徵融合(YOLOv5、8、11)

在保持 PAFPN 拓撲不變的前提下,後續版本主要透過持續優化 CSP 系列 block,提升多尺度特徵融合的效率與資訊流動品質。

  • 設計動機
    • PAFPN 中存在大量 concat 與卷積操作,容易造成:
      • 記憶體存取頻繁(memory traffic)
      • 延遲增加
      • 梯度重複與計算冗餘
    • 需要在不改變整體結構的情況下,提高特徵利用效率與訓練穩定性
  • 演進路線
    • C3(YOLOv5)
      • CSP Bottleneck 的工程化實作
      • 透過 partial connection 減少重複計算並維持特徵表達能力
    • C2f(YOLOv8)
      • 將中間層特徵逐步累積並 concat
      • 提供更短且更順暢的梯度路徑
    • C3k2(YOLOv11)
      • 支援可調整的 kernel size
      • 在不增加深度的情況下擴大局部感受野
      • 在 CSP 架構內提升感受野,同時維持計算效率
  • 設計意義
    • 在不改變 PAFPN 結構的前提下提升特徵表達能力
    • 減少計算冗餘與記憶體存取成本
    • 強化多尺度特徵的資訊流動效率,維持即時推論性能

yolov11-c3-c2f-c3k2

關鍵

後續版本的 Neck 不再改變 PAFPN 結構,而是透過優化 CSP 系列 block,提升特徵流動效率並降低計算與記憶體成本。