Anchor-Free系列之SAPD

SAPD:Soft Anchor-Point Object Detection(2019)來自CUM

該論文還是隸屬於目標檢測中的Anchor Free,剛看到論文的時候,我以為是一篇全新的Anchor Free目標檢測文章(白興奮了),但是本論文還是對於Anchor Free方向的目標檢測方法提出了兩個值得借鑑的tricks。

一、前言

目前流行的目標檢測器主要分為 anchor-baseanchor-free,anchor-free又可以分為兩大類:anchor-pointkey-point

Anchor -point方法:

將bounding box根據point-to-boundary distance編解碼,比如DenseBox,UnitBox,FSAF,FCOS等。anchor points其實就是特徵金字塔中每個特徵圖上的像素點,每個像素點所在的位置都有與它相對應的特徵,也就是說將這些像素點當作是一個anchor box。然後根據這些points和這些points與相應的邊界的距離,編碼並解碼出目標的bbox。

  • 優點: 網絡結構簡單,訓練和inference的速度都更快,能更好的受益於FPN的增強(backbone增大有幫助),flexible feature level selection
  • 缺點: 輸入相同尺度的圖像的情況下,它的檢測精度沒有key-point的好,尤其在定位精度上。

Key-point方法:

預測bounding box的關鍵點 ,比如CornerNet和CenterNet。它預測出bbox一些關鍵點的位置:角點,中心點或極點,然後將這些關鍵點分組以形成bbox。

  • 優點: 在輸入圖像的大小相對較小的情況下,達到相對較高的AP
  • 缺點:網絡依賴於高分辨率的特徵圖,因此下采樣不能過多;需要重複的bottom-up和top-down推理,因此FLOPs;計算內存消耗大、需要更長的訓練時間和測試時間;對預訓練的backbone兼容性差。

二、Motivation

anchor-point檢測器可以達到與key-point檢測器相似的檢測精度嗎?

作者認為,無效的訓練是影響anchor-point檢測器的精度的主要因素。當前anchor-point檢測器的訓練策略存在兩個被忽略的問題:注意力偏差(attention bias)和特徵選擇(feature selection):

  • 注意力偏差
    :在訓練時由於anchor-points特徵沒有對齊的影響,有著良好視野的目標會在檢測器中得到更多的注意力,這使得其它目標容易被忽略;
  • 特徵選擇:在啟發式地將目標實例分配給某個特徵層級,或者每個目標實例僅限於一個特徵層級的情況下,會導致無法有效利用特徵金字塔。

於是為了解決上述兩個問題,作者提出SAPD(Soft Anchor-Point Detector):一種簡單的單階段anchor-point檢測器,主要包含兩種軟優化技術(soften optimization techniques):soft-weighted anchor points和soft-selected pyramid levels。首先設計了一個和檢測器聯合訓練的meta-selection網絡,它負責為每個目標實例預測每個特徵金字塔層級的軟選擇權重(soft selection weights),然後對於正樣本anchor-point,根據它到對應目標的中心點的距離,以及它所屬的特徵金字塔層級的軟選擇權重等兩個因素,來調整該anchor-point對整個網絡損失的影響權重。

三、標準的Anchor-point檢測器

Anchor-Free系列之SAPD

如圖所示,anchor-point檢測器的網絡包括backbone,特徵金字塔和detection head,其中特徵金字塔的每個層級都有一個detection head。用Pl 表示特徵金字塔中層級數為l的特徵圖,它對輸入圖片做2^l倍的下采樣。一個detection head包括分類子網和定位子網,每個子網都有5個3 × 3的卷積層。分類子網負責預測每個anchor point位置處的目標的類別概率,定位子網預測位置偏移量。

輸入圖像大小為W×H ×H,設Plij是在特徵層級Pl 上位於(i,j) 處的像素點,其中i=0,1,...,W/sl−1,j=0,1,...,H/sl−1,sl=2^l。每個Plij在原圖上對應的位置為(Xlij,Ylij) ,其中Xlij=sl(i+0.5) ,Ylij=sl(j+0.5) 。設gt box B=(c,x,y,w,h),其中c是類別,(x,y)是中心點,w和h分別是寬和高,Bvalid代表有效框,它是gt box B的中心收縮框,即Bv=(c,x,y,ϵw,ϵh) ,ϵ是收縮因子。當一個gt box B被分配到Pl時,只有當Plij 在原圖上相應的位置位於 Bvalid內,這個anchor point才是正樣本,否則就是負樣本。正樣本的分類target是c,定位target是一個歸一化的距離d=d=(d^l,d^t,d^r,d^b),分別表示anchor point到gt box B的左,上,右,下邊界的距離:

Anchor-Free系列之SAPD

其中z是歸一化因子。對於負樣本anchor points來說,它們的分類target是背景,即c=0,不需要對它們進行定位target的計算。總的來說,對於特徵層級上的每個anchor point plij ,都有一個分類target clij 和定位target dlij 。

在訓練時,分類子網的損失函數是focal loss,以克服正負樣本間極端不平衡的問題;定位子網的損失函數是IoU loss,因此每個anchor point的損失Llij為:

Anchor-Free系列之SAPD

其中p+分別表示正樣本和負樣本,整個網絡的損失是所有anchor point的損失除以正樣本anchor point的數量:

Anchor-Free系列之SAPD

四、注意力偏差(attention bias)

在一個圖像中,目標可能會出現遮擋、背景混亂等問題。在原始的anchor-point檢測器中,在處理遮擋、背景混亂等問題時,會產生注意力偏差:即有著清晰明亮的視野的目標會生成過高得分的區域,而這會抑制周圍其它目標的的分區域。下圖是對注意力偏差的可視化例子:

Anchor-Free系列之SAPD

上圖中有5個足球運動員,圖(b)是分類輸出的score map,可以看到,前景中的兩個運動員生成了兩個得分很高並且範圍很大的dominant region,另外這兩個大的主導區域傾向於向其他運動員對應的熱圖區域擴展。在更壞的情況下,主導區域(優勢區域)甚至可能會覆蓋代表性不足區域,這導致了檢測器僅將注意力集中在靠前的實例上,從而抑制了背景區域實例的檢測。

那麼為什麼會出現這樣的情況?

作者認為這個問題是 由於特徵不對齊導致了靠近目標邊界的位置會得到不必要的高分 所導致的。接近邊界的anchor points得不到與實例良好對齊的特徵----它們的特徵往往會受到實例外圍的背景信息所幹擾,因為它們的感受野包含了太多的背景信息,導致了特徵表達能力減弱。因此不應該 給予那些接近實例中心的anhor points和接近實例邊界的anchor points 相同的權重。

解決辦法:soft-weighted anchor points

本文提出了一個soft-weighting方案,基本思想是為每一個anchor point 賦以權重Plij 。對於每一個positive anchor point,該權重大小取決於其圖像空間位置到對應實例中心的距離,距離越大,權重就越低。因此,遠離目標(實例)中心的anchor point被抑制,注意力會更集中於接近目標中心的anchor point。對於negative anchor points,所有的權重都被設置為1,維持不變。這一部分和key-point檢測器不同(keypoint檢測器只設置一個key point為positive point),soft-weight anchor point示意圖如下圖所示:

Anchor-Free系列之SAPD

根據soft-weighting的思路,有多種設計方法,但只要權重是anchor point與目標中心點之間距離的單點遞減函數就行。本文提出一個廣義的中心點函數(cen- terness function):

Anchor-Free系列之SAPD

其中,η控制遞減幅度,權重 Wli'j 範圍為0~1,公式4保證了目標邊界處的anchor points權重為0,目標中心處的anchor ponit權重為1。

五、 特徵選擇: Feature selection

與anchor-based檢測器不同的是,anchor-free方法在為目標實例選擇特徵金字塔級別時不受annchor匹配的約束。換句話說,在anchor-free檢測器的訓練過程中,我們可以為每個實例分配任意一個或多個金字塔層級。同時選擇正確的特徵級別會帶來很大的增益。

作者通過研究特徵金字塔的屬性來解決特徵選擇的問題,實際上,來自不同特徵金字塔級別的特徵圖(尤其是相鄰級別的)彼此之間有些相似。下圖可視化了所有金字塔級別的響應,事實證明如果在某個特徵金字塔級別中某個區域被激活,則在相鄰級別的相同區域也可能以相似的方式被激活。但是這種相似性隨著金字塔級別差的增大而減弱,這意味著多個金字塔級別的特徵可以共同為某個目標的檢測做出貢獻,但不同級別的特徵的貢獻應該有所不同。(看到這裡有沒有覺得,其實整篇文章的重點就在於Soft這個詞眼,白話:不同的事物,權值應該不同

)。

Anchor-Free系列之SAPD

通過以上分析,本文認為合適的金字塔特徵層級的選擇應該遵循以下兩個原則:

  1. 金字塔特徵層級的選擇應該遵循特徵響應的模式,而不是一些啟發式的方式。與目標有關的損失可以很好的反映一個特徵金字塔層級是否適合檢測某些目標;補充:比如FSAF裡面採用損失來指導特徵層級的選擇,本文只不過是改為同時利用多個特徵層級來檢測,但是賦予不同的權值。
  2. 對每個目標來說,應該允許來自不同層級的特徵參與到訓練和測試中,當然每個層級做出的貢獻是不同的。FoveaBox已經證明了將目標分配給不同的特徵層級能夠提升檢測性能,但如果分配給太多的特徵層級,反過來又會損失檢測性能。作者認為這種限制是由金字塔層級的hard selection造成的。對每個目標來說,FoveaBox中的金字塔層級要麼被選擇,要麼被丟棄,這種選擇方式不考慮各層級特徵響應的差別而一視同仁。

解決方法:soft-selected pyramid levels

對於每個目標,重新加權各個金字塔層級。也就是說,根據特徵響應,為每個金字塔層級分配不同的權重,也就是soft selection,這也可以被看作是將一個目標的一部分分配給某一層級。

那麼對每個目標來說,如何確定每個金字塔層級的權重呢?本文提出了meta-selection網絡來預測權重,以進行soft feature selection,如下圖所示。

Anchor-Free系列之SAPD

網絡的輸入是某個目標在所有特徵層級上被提取出來的特徵響應,如圖中所選擇的目標是instance B,一輛灰色的車。這一過程是怎麼實現的呢? 其實就是對每個特徵層級應用RoI Align層,然後將RoI Align之後的結果連結起來,這裡的RoI是目標在每個特徵層級上的gt box;然後將提取的特徵經過meta-selection網絡,輸出一個概率分佈的向量,這個概率分佈就作為soft feature selection的各層級的權重。

meta-selection網絡是一個輕量級的網絡,它包括3個3×3 3 \\times 33×3的卷積層,沒有零填充,每個卷積層後跟ReLU函數,和一個soft-max全連接層,下表說明了meta-selection網絡的詳細結構。meta-selection網絡和檢測器是聯合訓練的,訓練時使用交叉熵損失函數,gt是一個one-hot向量,它說明了那個特徵層級的損失最小。

Anchor-Free系列之SAPD

至此,通過meta-selection網絡,每個目標B都和一組金字塔級別權重 Wlb關聯起來了。結合注意力偏差soft-weighting scheme,如果目標 B 被分配到層級 Pl 對應的特徵點Plij在有效box Bvalid中的話,anchor point 就會再進一步地進行down-weight(0~1的weight)。最終,我們為每個目標分配top k個特徵級別,其中top k是根據訓練時的前k小實例相關的損失來確定的,網絡損失可以進一步表示為:

Anchor-Free系列之SAPD

最後,整個模型的損失由anchor point損失和meta-selection net的分類損失構成,如公式所示:

Anchor-Free系列之SAPD

六、Training

1、初始化

檢測網絡的初始化參照FSAF, 特別的,backbone在ImageNet1k上進行預訓練。檢測head的分類層使用bias為:

Anchor-Free系列之SAPD

的高斯初始化,檢測head的定位層使用bias=0.1的高斯初始化。對於新增加的meta-selection網絡,我們使用標準差為0.01的高斯分佈初始化所有層的參數。

2、優化

整個檢測網絡和meta-selection網絡聯合起來使用SGD訓練,訓練數據集為COCO train2017,batchsize=為8GPUs×2image/per gpu。所有的模型都訓練12個epochs(大約90k次迭代),初始學習率為0.01並分別在第9和第11epoch除以1;圖像的水平翻轉是唯一的數據增強。對於前6個訓練epoch,不使用meta-selection網絡的輸出,檢測網絡的訓練使用FASF中的在線特徵選擇策略(例如直接將目標分配到loss最小的層);剩下的6個epoch,才使用soft-selection weights來選擇top k個特徵層。這是為了先在前期穩定meta-selection網絡使得學習過程更加順暢。使用和FSAF一樣的訓練參數,收縮因子ε=0.2,正則化標量z=0.4,meta net損失權重 λ=0.1。

3、推理

推理的時候,網絡結構非常簡單。meta-selection網絡不包含在推理過程中,所以推理速度不受影響,輸入圖像以全卷積的方式通過整個網絡,然後每個anchor point 都會得到分類預測結果 和定位預測結果 ;接著先使用置信度閾值0.05過濾掉低置信度結果,再對每個特徵金字塔級別選取score top 1k的結果,對它們使用公式1的逆運算解碼出最終預測的bbox,最後所有level的bboxs統一進行閾值0.5的NMS。


七、總結

  1. 比較清晰地總結了檢測器的分類:one-stage / multi-stage , anchor-based / anchor-free(anchor-point / key-point)。
  2. 給出了標準的anchor-point檢測器的框架、標籤、損失函數。
  3. 針對特徵不對齊導致的attention bias問題提出了soft weight anchor point思想,讓模型更關注靠近目標中心的anchor point,根據該思想提出了一個廣義中心度函數。
  4. 針對特徵金字塔層級選擇不合理問題,改進傳統的啟發式方法,提出了soft selected feature level思想,對每個目標分配多個特徵金字塔level並進行加權。並根據該思想設計了一個meta-selection網絡來學習不同金字塔level的權重參數。
  5. 設檢測器SAPD,通過大量實驗驗證上述思想和改進的訓練策略的有效性。

個人讀後感:本文是FSAF的改進:針對無效的訓練。FSAF里正負樣本的選擇是由有效區域和忽略區域確定的,而本文的SAPD just對正樣本加了一個權重,該權重與anchor point離中心點的距離成反比。兩者之間相同的部分是,都是選擇gt box內一定範圍的點作為正樣本,而SAPD又對這些正樣本做了進一步處理。在特徵層級選擇方面,FSAF每個特徵層級負責檢測一個目標,SAPD中多個特徵層級都可以為同一個目標的檢測做出貢獻。只是在訓練時,前6個epochs還是採用的FSAF中在線特徵選擇的方式,後6個epochs才加上SAPD特有的soft selection weight。


分享到:


相關文章: