RetinaNet


論文信息

Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, Piotr Dollár. Focal Loss for Dense Object Detection. ICCV 2017.

https://arxiv.org/abs/1708.02002

歷史的發展

我們重點關注神經網絡重新崛起之后的內容, 先前的內容以后也許會簡單提一下.

兩大門派

兩大門派主要是one stage與two stage, 二者在accuracy與speed各有側重, 但最終還是trade-off.

one stage two stage
algorithms YOLO, YOLT R-CNN, SPPnet
accuracy Low(30% mAP) High(60%+ mAP)
speed Fast(100+ FPS) Slow(5 FPS)

two stage

其主要特點是先使用某種算法(selective search, RPN, etc.)產生一系列proposal, 將這些proposal喂到某個預訓練神經網絡(VGG-16, ResNet, etc.)中, 之后對輸出進行分類.

特別的, RPN會預分類(background vs foreground)

one stage

大多數模型會采用一系列類似於滑窗分類器或是"anchor"直接進行分類而無proposal過程.

RetinaNet

本文中的模型是基於one stage, 目的也顯而易見便是為了提升accuracy.

主要貢獻

提出觀點: 導致one stage精確度不足的重要原因有class imbalance.

class imbalance

所謂class imbalance便是由於two stage模型大多會對bg與fg預分類, 因此bg數量不會遠大於fg數量, 而one stage模型為了提升速度舍棄了proposal過程, 因此大多數模型也談不上預分類問題,這樣雖然速度提升並且使用交叉熵, 但往往還是由於easy sample(e.g. bg)遠大於hard sample(e.g. fg), 往往相差2 order, 以至於easy sample的loss統治整體loss.

此前的一些解決方案

OHEM直接舍棄部分easy example, 毫無疑問會導致數據殘缺, 進而影響結果

本文的解決方案

提出了一個新的loss func:

\[CE(p_t) = -log(p_t)\\ FL(p_t) = -\alpha_t(1-p_t)^\gamma CE(p_t) \]

其中

\[p_t=\left\{ \begin{aligned} p && y = 1\\ 1-p && otherwise \end{aligned} \right.\\ \alpha_t=\left\{ \begin{aligned} \alpha && y = 1\\ 1-\alpha && otherwise \end{aligned} \right. \]

特別的,\(CE\)是交叉熵. 在作者的實驗中發現\(\gamma = 2, \alpha = 0.25\)時取得最好結果.

probability of ground truth class

通過仿真圖我們可以發現, 對於相對有把握的類別(easy sample, e.g. bg), loss設置較小, 而對於較沒有把握的類別(hard sample, e.g. fg), loss較大, 這樣就防止出現把握較大的類別因為數量優勢統治loss.

我們從四種情況分析loss函數:

  1. 正確分類 & 目標項容易分類 -\(y = 1, p \approx 1\)

    此時\(p_t = p \approx 1\), 而\(\gamma > 1\), 因此\(FL(p_t) << CE(p_t)\)

  2. 正確分類 & 目標項不易分類 -\(y = 1, p \approx 0\)

    此時\(p_t = p \approx 0\), 而\(\gamma > 1\), 因此\(FL(p_t) \approx CE(p_t)\)

  3. 錯誤分類 & 目標項容易分類 -\(y = -1, p \approx 1\)

    此時\(p_t = 1 - p \approx 0\), 而\(\gamma > 1\), 因此\(FL(p_t) \approx CE(p_t)\)

  4. 錯誤分類 & 目標項不易分類 -\(y = -1, p \approx 0\)

    此時\(p_t = 1 - p \approx 1\), 而\(\gamma > 1\), 因此\(FL(p_t) << CE(p_t)\)

以一言蔽之, 易分類未出錯的影響大量減小.

特別的, 易分類出錯影響基本不減小也很合理.

額外的 - 網絡構建

Net Architecture

該網絡很容易看出左半部分就是FPN, 而對於右半部分就是他們獨創的, 很容易看出(論文中也提到了)他們分了上下兩個parameter not shared卷積網絡, 一個是用來classifying另一個是用來anchor box regressing(4 dims).

Initialization

Bias initialization for classification subnet:

\[b = -log(1 - \pi/\pi) \]

\(\pi\)是指所有初始化時所有anchor都有\(\pi\)的把握被當作fg, 實踐證明\(\pi = 0.01\)較為合適.

實驗結果

Results

這里要補充的時OHEM 1 : 3指舍棄low probability后fg : bg.

one vs two

這張圖的結果來看, RetinaNet也可以稱得上名副其實的state-of-the-art.

Appendix

A

首先定義了:

\[x_t = yx, y\in\{\pm1\} \]

其中\(x\)表示數量.

嘗試了一個Focal Loss的變體, 得出的結論用原文總結就是:

More generally, we expect any loss function with similar properties as FL or FL* to be equally effective.

B

\[\frac{dCE}{dx} = y(p_t - 1)\\ \frac{FL}{dx} = y(1 - p_t)^\gamma(\gamma p_t log(p_t) + p_t - 1)\\ \frac{dFL^*}{dx} = y(p_t^* - 1) \]

Grad

得出結論, 當\(x_t > 0\)時, FL導數比CE更接近於零.

總結

利用位置信息檢測思想挺有意思的, 但有不合理性, 如果是用來輔助檢測會很有幫助.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM