YOLO 全域語意增強的演進
設計問題:全域語意如何建模
Residual、CSP 與 ELAN / GELAN 已逐步優化 Backbone 的核心問題:
- 深層網路的可訓練性
- 梯度重複與計算冗餘
- 梯度路徑分佈與資訊保留能力
這些設計讓模型能夠更深且穩定地學習,但在物體偵測任務中,仍存在另一個限制:全域語意建模能力不足。
局部感受野限制語意理解能力
卷積本質上是局部運算,即使透過多層堆疊擴大理論感受野,實際的**有效感受野(Effective Receptive Field)**仍集中於中心區域,導致:
- 大型物體的整體結構難以完整建模
- 密集場景中缺乏全域關係理解
- 複雜背景下的上下文語意不足
深層特徵的語意雖然更強,但其空間感知範圍仍然有限。
以深度換感受野的成本過高
若僅依賴增加卷積層數來擴展感受野,將帶來明顯代價:
- 網路深度持續增加
- 計算量與延遲上升
- 記憶體與推論成本提高
這與即時物體偵測對速度與效率的需求相衝突。
單純透過加深網路來獲取全域資訊,並不是可持續的設計策略。
多尺度上下文建模
為了在不增加網路深度與計算成本的情況下提升全域語意能力,YOLO 在 Backbone 的高層特徵中引入 Spatial Pyramid Pooling(SPP),透過單一特徵層內的多尺度上下文建模,強化模型對不同尺寸物體與複雜場景的理解能力。
- 設計動機
- 深層特徵雖具備語意,但卷積的有效感受野仍有限
- 單一尺度特徵難以同時捕捉局部細節與大範圍上下文
- 核心機制
- 在 backbone 高層特徵上進行 多尺度 pooling
- 將不同感受野的特徵進行 concat
- 讓同一層特徵同時包含:
- 局部結構資訊
- 大範圍上下文語意
- 設計意義
- 在不增加網路深度的情況下提升全域感知能力
- 強化對大物體、密集場景與複雜背景的辨識穩定性
- 為後續 Neck 的多尺度融合提供更具上下文資訊的高層語意特徵
SPP:並行多尺度池化的上下文建模
- 設計概念
- 在同一特徵層上使用不同大小的 max pooling kernel
- 常見配置:5×5、9×9、13×13
- 核心機制
- 各尺度 pooling 並行計算
- 將結果與原特徵 concat
- 建立不同感受野的特徵組合
- 設計效果
- 同時捕捉:
- 局部細節
- 中距離結構
- 全域上下文
- 提升對大物體與複雜場景的穩定性
- 同時捕捉:
- 影響
- 成為 YOLOv4 的上下文模組
問題
多個大尺寸 pooling 需並行計算,會增加 memory traffic 與推論延遲,成為即時模型中的效率瓶頸。