物件偵測

RetinaNet

RetinaNet(Lin 等人,2017)是證明「密集、單次傳遞的模型不只更快、還能與最佳兩階段偵測器一樣準確」的那個單階段偵測器。在它之前,慣用法則是「單階段求速度、兩階段求準確度」。RetinaNet 藉由把一個乾淨的多尺度架構與焦點損失結合,打破了那個權衡,並因此多年來成為標準的參考單階段偵測器。

在架構上它刻意保持簡單:一個骨幹(例如 ResNet)加上一個特徵金字塔網路,產生多尺度特徵 P3–P7,再把兩個小型全卷積子網路一視同仁地施加到每個金字塔層級——一個用於分類(每個錨框預測 K 個類別機率),一個用於框回歸(每個錨框 4 個偏移)。多種尺度與長寬比的錨框密集鋪滿每個層級。沒有提議階段、沒有第二次微調;一切都在一次掃描中預測完成。

關鍵的成分是損失。這樣密集的設計每張影像評估約 10 萬個錨框,絕大多數是背景——正是那個一直拖住單階段偵測器的失衡。RetinaNet 以焦點損失訓練分類子網路,降低容易負樣本的權重,使稀少的困難正樣本驅動學習。比起架構,正是這一個改變讓 RetinaNet 行得通;該論文的論點本質上是「阻礙單階段準確度的是類別失衡,而焦點損失消除了它」。

RetinaNet 在 COCO 上超越了同期的兩階段偵測器(包括配 FPN 的 Faster R-CNN),同時跑得更快,並把如今標準的單階段配方——骨幹 + FPN + 共享密集頭 + 一個感知失衡的強損失——具體化,這個配方被後來的無錨框偵測器(FCOS)與許多 YOLO 版本所採用。它至今仍是常見的基線,因為它概念乾淨、容易推理。

RetinaNet 最清楚地示範了:能推動準確度前沿的,不只是架構,還有損失函數。若只記住一件事:RetinaNet ≈(FPN 單階段偵測器)+(焦點損失)——拿掉焦點損失,同一個網路就會表現得很差。

又稱
RetinaNet