[論文筆記] Focal Loss for Dense Object Detection

論文出處 :Focal Loss for Dense Object Detection

Introduction

object detection 中,one-stagetwo-stagemodel 的精準度的比較往往是一個高度討論的熱門話題,本論文中大致的描述了自己對於 two-stage 精準度上較高原因提出了一些猜測,詳細的整理了兩種架構上的差異,並依照該假設而訂立 Focal Loss Function ,從實驗表現中驗證自己的假設。

內容大致上可分為幾個重點 :one-stagetwo-stage 的基本架構、Class Imbalance ProblemFeature Pyramid Network 以及本文重點 Focal Loss 及其對應到的 one-stage 架構的 RetinaNet
two-stage 的兩個 stage 分別是 Region ProposalClassification,先預測邊框,再判斷邊框內object 是否為目標類別,而 one-stage 則是同時預測。

要了解 Class Imbalance Problem 之前,必須先了解到 one-stagetwo-stage 的架構上的主要差異,我大致上會介紹各別代表性的經典 YOLOFaster-RCNN

two-stage : Faster-RCNN

先介紹 RCNN 系列原因,其一是 one-stage 往往在架構改進上會借鏡 two-stage 中的內容,其二是 RCNN 系列是 object detection model 的開山始祖,流變上較好解釋。

[論文筆記] Focal Loss for Dense Object Detection_第1张图片

一開始的 RCNNFast-RCNN 中在決定邊框時,都是利用訊號處理的方式做決定可能是目標的 2000 個候選人,稱之為 selective search,而差別在於將輸入影像經過 CNN 再用輸出的 feature map 選取候選人,feature map 用意為降低運算量,其中每一個 map 中的 pixel 代表的是某一小區域的灰度值分佈,相較計算整張影像來說運算較有效率。

Fast-RCNNFaster-RCNN 中,因為決定候選區域的大小不一,因此在最後 Pooling 時,採取的是 Roi Pooling,如下圖所示
[論文筆記] Focal Loss for Dense Object Detection_第2张图片
為將每個不同的候選區域劃分成同一種規格的大小,Pooling size 會動態決定,這也是最難實做的部分。

最後介紹現今主流的 two-stage 架構,以往的 selective search 仍然耗費了大量的時間,而 Faster-RCNN 選擇了新的邊框預測方式,Region Proposal Network,將邊框預測是為是一個 regression 的問題,直接的預測邊框數值,整個模型架構如下:
[論文筆記] Focal Loss for Dense Object Detection_第3张图片
其中多了 Anchor 的概念,在經過一開始 CNN 架構之後的 feature map ,每一個 pixel 具有多個 Anchor,每一個 Anchor 具有不同的大小以及比例,在 RPN 中會決定每一個 mape pixel 是否為目標的可能性及邊框的誤差值,在每一個疊代中不斷更新,而之後的架構則是參照之前的 Fast-RCNN,輸出的是 object 屬於哪個類別以及其邊框位置和大小。


one-stage : YOLO

YOLO 系列可說是 one-stage 最具代表性的方法,全名是 You Only Look Once,如其名,就是在一次影像輸入後只看一次就可以預測目標及所在位置,有別於 two-stage 複雜架構,YOLO 簡易許多,也容易實做,且最重要的是其運算時間非常的少,很適合應用在需要 Real-Time 的場合,架構如下
[論文筆記] Focal Loss for Dense Object Detection_第4张图片
想法上就是單純的 CNN 架構,在最後壓縮成尺寸很小的 feature map ,直接預測出每一個 grid 中是否為 object 的可能性以及屬於哪個類別的機率以及邊框位置還有大小。
其概念圖如下

[論文筆記] Focal Loss for Dense Object Detection_第5张图片
而在第二代以及第三代中,僅做架構上的微調,譬如將 Flatten 的部份去掉,或是將 backbone 部分改成 ResNet 或是 Feature Pyramid Network,以及投入 Faster-RCNN 中的 Anchor,計算邊框偏移量加強自己邊框的預測。


Class Imbalance Problem

one-stagetwo-stage 的最大的差別在於是否先決定可能是目標的候選人,該步驟可視為是一個判斷前景與後景的分類問題,而 one-stage 的精準表現上時常不如 two-stage 的原因在於,背景與目標的數量是極度不平衡的,在判斷目標分類的問題中,如果背景數量極高的狀況下,在訓練過程中對於 loss 的影響大上許多,model 會傾向將結果判斷成是背景,而 two-stage 因為先過濾掉多數背景,因此在分類上 easy negatives 的影響程度較低。
因此,文中針對 one-stage model 提出了一個抑制類別數量失衡問題的 object :Focal Loss


Focal Loss

Original Cross Entropy : C E ( P , y ) = { − log ⁡ P  if  y = 1 , − log ⁡ ( 1 − P )  otherwise  CE(P, y) = \begin{cases} -\log P & \text{ if } y = 1, \\ -\log(1 - P) & \text{ otherwise } \\ \end{cases} CE(P,y)={logPlog(1P) if y=1, otherwise 

Define : P t = { − P  if  y = 1 , − 1 − P  otherwise   such that  C E ( P , y ) = C E ( P t ) = − log ⁡ P t P_t = \begin{cases} -P & \text{ if } y = 1, \\ -1 - P & \text{ otherwise } \end{cases} \text{ such that } CE(P, y) = CE(P_t) = -\log P_t Pt={P1P if y=1, otherwise  such that CE(P,y)=CE(Pt)=logPt

文中首先提出了給予不同 P t P_{t} Pt 不同的權重的概念,即 Balanced Cross Entropy : − α t l o g ( P t ) -\alpha_{t}log(P_{t}) αtlog(Pt)

Focal Loss Definition : F L ( P t ) = − ( 1 − P t ) γ l o g ( P t ) FL(P_{t}) = -(1-P_{t})^{\gamma}log(P_{t}) FL(Pt)=(1Pt)γlog(Pt)
當特定類別的 P t P_{t} Pt 很大時, ( 1 − P t ) γ (1-P_{t})^{\gamma} (1Pt)γ 會壓抑 loss,使其影響變低,其中 γ \gamma γ 為一自訂參數,決定考量 imbalance 程度的高低。


Feature Pyramid Network

以往使用 filter 抓取特徵的方法時常遇到的問題是,目標與 filter size 需要互相配合,如果 filter 太小,目標太大,容易將目標判斷成背景;如果 filter 太大,目標太小,容易被判斷成雜訊,傳統方法針對該問題有 SIFTORB 等方法,而 CNN 架構也會有 scaling problem 的問題,而針對該問題,文中提出一個近期表現極高的參考架構 :Feature Pyramid Network
[論文筆記] Focal Loss for Dense Object Detection_第6张图片
針對不同 scaling 的偵測有如上幾種方法
(a) 為將 image 在不同 scaling 下做偵測,缺點為耗費記憶體以及時間成本。
(b) 為傳統 CNN 輸出過程,沒有考量不同 scaling 的問題。
(c) 為利用 CNN 每一層的 feature map 來做 detection,比較知名的方法如 Single Shot Detector (SSD),該方法雖然能考量不同尺度的方法,且不會增加額外記憶體以及計算量,但是 resolution 以及 semantic 是一種取捨,在該架構解析度愈高分類,能力愈低,反之亦然。

[論文筆記] Focal Loss for Dense Object Detection_第7张图片
(d) FPN 架構參考了 ResNet,將同一面積的 layerpixel-wise 的相加,考量了之前 low-level 的資訊,使得不同層的 feature map 同時兼顧了 resolution 以及 semantic 的性質,改善了在不同 scaling 的偵測問題,時常被應用在 two-stage detectorRegion-Proposal Network


RetinaNet

[論文筆記] Focal Loss for Dense Object Detection_第8张图片
Retina 的架構為以 ResNetFPNbackbone,再各別經過分類以及回歸預測的 subnet,其架構的部分與先前經典架構類似,在此就不贅述。

以下為實驗數據
[論文筆記] Focal Loss for Dense Object Detection_第9张图片
[論文筆記] Focal Loss for Dense Object Detection_第10张图片

此外,作者也比較了不同 γ \gamma γ 數值的曲線
[論文筆記] Focal Loss for Dense Object Detection_第11张图片
如上圖所示,對目標 (positive samples) 而言,增大 γ \gamma γ 對於 loss 的分布影響是不大的,但是對於背景 (negative samples) 來說,當 γ = 2 \gamma=2 γ=2 的时候,大部分背景對 loss 總和的影響都可以忽略,所有的 loss 都集中在很小部分的 hard example 上。

[論文筆記] Focal Loss for Dense Object Detection_第12张图片
由上圖比較所示,撇除一些訓練細節以及 FPN 的加乘效果,focal loss 能夠使得 one-stage detectortwo-stage detector 的精度上有差不多的水平。

你可能感兴趣的:([論文筆記] Focal Loss for Dense Object Detection)