Anchor free系列之FoveaBox

FoveaBox: Beyond Anchor-based Object Detector(CVPR2019)

前言

:顯而易見,本篇論文針對的是anchor-based。目前,幾乎所有流行的通用目標檢測方法,如經典的兩步法Faster-RCNN,一步法SSD、YOLO等,都需要根據經驗設計不同尺度和高寬比的anchor box(default box或prior box)。實際上,anchor box是一系列經過設計的、尺寸不同的物體邊框。一般情況下,如果我們需要在模型中某層特徵圖上檢測某個特定尺度的物體,可以先為anchor box固定一個面積S,然後變換anchor box的高寬比,,從而得到N個尺度的anchor box,最後使用經典的sliding window的方法得到特徵圖上每個位置的anchor box。如果該層特徵圖的尺寸為H×W,總共會產生H×W×N個anchor box。

Anchor free系列之FoveaBox

訓練:對於訓練圖片中的某個目標,選擇一個與其交叉面積(IoU)最大的anchor box作為基準點,然後計算物體真實邊框與這個anchor box邊框的偏移量和高寬比,作為模型邊框迴歸分支的學習目標。因此模型對某個物體邊框的預測輸出是一個4元組Δ(cx,cy,w,h) ,Δ(cx,cy)對應預測目標邊框相對某個anchor box邊框的偏移量,Δ(w,h) 對應預測目標邊框的高和寬相對同一anchor box高和寬的比,從這個4元組的輸出可以反推出物體在原圖中的邊框尺寸。

anchor-based的優點:

  1. 模型學習到的是物體真實邊框與對應的anchor box的偏移量,而不是目標物體在圖像中的絕對座標,保證了檢測任務的平移不變性;
  2. 通過anchor的對齊,可以使模型對多尺度物體檢測的訓練變得容易,因為物體邊框對相應anchor box的偏移量的值分佈於有限範圍內。

anchor-based的缺點:

  1. anchor引入額外的設計的超參數。設計anchor的最要因素之一是如何密集地覆蓋目標的空間位置。為了實現高的召回率,通常從訓練集/驗證集中計算統計數據精心設計anchor。
  2. 泛化性能不足,對於一個數據集設計的anchor可能不適用於另一個數據集,普適性低。
  3. anchor一般會產生較多的候選框,通常依靠有效技術去處理前景和背景不平衡挑戰。

FoveaBox

一、Introduction

該方法認為,人類視覺系統在識別物體和確定物體邊界時,並沒有將待檢測物體向某些固定的基準點對齊,而是通過眼球中對物體中心感應最敏銳的中央凹(Fovea)結構確定物體位置。因此,該方法使用FoveaBox命名提出的方法。實際上,FoveaBox在一定程度上類似語義分割的概念, 對特徵圖上每一個點,模型預測其屬於某一類物體的概率和相對某個邊框的偏移量。

二、Method

1、FoveaBox整體結構

Anchor free系列之FoveaBox


與其他的經典的目標檢測框架類似,FoveaBox也是由主幹網絡和兩個分支構成,其主幹網絡採用的是FPN的結構,而兩個分支分別負責預測特徵圖上每個像素點的類別得分和每個點的邊框迴歸。

2、Scale Assignment

FPN通過利用top-down結構及側連接來構建單尺度輸入的多尺寸特徵金字塔。金字塔的每一層負責檢測不同尺寸的目標。

雖然FoveaBox沒有引入Anchor box,但是對於多尺度物體的檢測,FoveaBox將物體劃分為一些尺度範圍,將P3到P7這5個特徵圖上的基礎區域尺度分別定義為32×32, 64×64,128×128 ,256×256 ,512×512,對於Pl層中的basic-area大小Sl為:

Sl = 4^l*S0

文中S0設置為16,那麼第l層的特徵圖其目標尺寸的有效範圍為:

[Sl/η^2,Sl*η^2]

式中η人為設置用於控制每層的尺寸範圍。不在範圍內的目標在訓練時被忽略,值得注意的是同一個目標可能會在不同的層中檢測到。

3、正負樣本選擇

問題: 網絡怎麼訓練,哪些位置我要分配為參與訓練的樣本,如何分配?

作者通過一個簡單的變換解決了正負樣本的分配問題,使用(x1,y1,x2,y2) 表示物體邊框的groundtruth,也就是物體左上和右下角位置。

  • 先通過groundtruh邊框得到物體中心在特徵圖中對應的位置
Anchor free系列之FoveaBox

  • 然後通過一個參數σ1 ,調節物體高和寬,將用來訓練的真實邊框位置向物體中心收縮一點,收縮後的邊框內部的點作為正樣本,然後使用參數σ2再次調節邊框高和寬,使其向外擴展一點,使用擴展邊框外部的點作為負樣本,這樣將兩個邊框範圍內的點忽略掉,增加正負樣本之間的判別度。
Anchor free系列之FoveaBox

4、預測邊框

模型只編碼目標物體存在的概率,為了定位,需要預測每個實例可能存在的位置。每個ground truth box的位置如下定義。

將特徵圖上選為正樣本的座標(x,y)首先變換到原圖上,然後得到該座標與其所屬物體樣本的groundtruth邊框的偏移量,網絡學習到的是一種變換。由公式可見x、y其實是在特徵圖上的位置,然後除以尺度z取log使網路更容易學習到目標。

Anchor free系列之FoveaBox

將偏移量向尺度因子歸一化時,z = sqrt (Sl),這個因子應該選擇與目標物體邊框面積最接近的尺度。網絡訓練時,定位損失仍基於L1 Loss。預測時,在輸出特徵圖上的每個positive ceil(c,y)上產生物體框的邊界。

5、實驗結果

Anchor free系列之FoveaBox

Anchor free系列之FoveaBox


三、總結

FoveaBox改變了大多數目標檢測模型都要使用的anchor box的現狀,大大降低了模型複雜度、減少了模型輸出。FoveaBox的主要思想借鑑了語義分割,對物體上的每個點都預測一個分類結果,物體邊框通過預測偏移量得到。FoveaBox中還有一些anchor box多尺度的影子,也就是要將物體邊框向某個尺度因子歸一化,但是畢竟每個特徵圖只有一個尺度因子,相比經典的基於anchor box的方法,輸出量已經大大降低。


四、啟發

  1. FoveaBox是兩路預測的,那麼能否一路完成呢?假設我們先訓練cls map,那麼當cls map確定了,其實理論上可以幫助loc框定位的學習的。所以思考是否可以將cls map和feature同時作為loc層的輸入,兩個信息結合來幫助迴歸框的學習。
  2. 關於標籤的分配作者是採用了一個係數進行縮放和放大劃分,能否使用正態分佈對label進行分配,靠近中間概率接近1,靠近旁邊概率減小,一定閾值以外認為是負樣本,有點類似soft的概念。
  3. 對於目標中心重疊的物體,FoveaBox是難以處理的,因為每個特徵點只會預測輸出一個迴歸框,這裡的缺點和YOLO V1有點相似,對於密集重疊物體效果感覺比較差。


分享到:


相關文章: