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
- 由低層 → 高層逐層向上融合
- 縮短低層特徵傳遞至高層的資訊路徑
- 讓每個層級同時具備:
- 高層語意
- 低層空間細節
- 新增 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 融 合
- Top-down path(FPN)
- 設計意義
- 每一層特徵同時具備:
- 完整語意表達能力
- 精確定位能力
- 強化多尺度特徵的一致性與利用效率
- 每一層特徵同時具備:
雙向融合雖提升表現,但也增加 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,提高推論效率,特別適合即時偵測場景

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

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