論文出處 :Focal Loss for Dense Object Detection
Introduction
在 object detection 中,one-stage 跟 two-stage 的 model 的精準度的比較往往是一個高度討論的熱門話題,本論文中大致的描述了自己對於 two-stage 精準度上較高原因提出了一些猜測,詳細的整理了兩種架構上的差異,並依照該假設而訂立 Focal Loss Function ,從實驗表現中驗證自己的假設。
內容大致上可分為幾個重點 :one-stage 和 two-stage 的基本架構、Class Imbalance Problem、Feature Pyramid Network 以及本文重點 Focal Loss 及其對應到的 one-stage 架構的 RetinaNet。
two-stage 的兩個 stage 分別是 Region Proposal 和 Classification,先預測邊框,再判斷邊框內object 是否為目標類別,而 one-stage 則是同時預測。
要了解 Class Imbalance Problem 之前,必須先了解到 one-stage 和 two-stage 的架構上的主要差異,我大致上會介紹各別代表性的經典 : YOLO 和 Faster-RCNN。
two-stage : Faster-RCNN
先介紹 RCNN 系列原因,其一是 one-stage 往往在架構改進上會借鏡 two-stage 中的內容,其二是 RCNN 系列是 object detection model 的開山始祖,流變上較好解釋。
一開始的 RCNN 到 Fast-RCNN 中在決定邊框時,都是利用訊號處理的方式做決定可能是目標的 2000 個候選人,稱之為 selective search,而差別在於將輸入影像經過 CNN 再用輸出的 feature map 選取候選人,feature map 用意為降低運算量,其中每一個 map 中的 pixel 代表的是某一小區域的灰度值分佈,相較計算整張影像來說運算較有效率。
在 Fast-RCNN 與 Faster-RCNN 中,因為決定候選區域的大小不一,因此在最後 Pooling 時,採取的是 Roi Pooling,如下圖所示 :
為將每個不同的候選區域劃分成同一種規格的大小,Pooling size 會動態決定,這也是最難實做的部分。
最後介紹現今主流的 two-stage 架構,以往的 selective search 仍然耗費了大量的時間,而 Faster-RCNN 選擇了新的邊框預測方式,Region Proposal Network,將邊框預測是為是一個 regression 的問題,直接的預測邊框數值,整個模型架構如下:
其中多了 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 的場合,架構如下 :
想法上就是單純的 CNN 架構,在最後壓縮成尺寸很小的 feature map ,直接預測出每一個 grid 中是否為 object 的可能性以及屬於哪個類別的機率以及邊框位置還有大小。
其概念圖如下 :
而在第二代以及第三代中,僅做架構上的微調,譬如將 Flatten 的部份去掉,或是將 backbone 部分改成 ResNet 或是 Feature Pyramid Network,以及投入 Faster-RCNN 中的 Anchor,計算邊框偏移量加強自己邊框的預測。
Class Imbalance Problem
one-stage 與 two-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 )