Cascade RetinaNet 論文學習

論文地址:https://arxiv.org/abs/1907.06881v1

Abstract

最近很多研究都在嘗試通過級聯的方式來提升單階段目標檢測器的檢測性能。在這篇論文中,作者分析並發現不一致性是制約此類模型表現的一個主要因素。這些模型將優化後的 anchors(預測邊框) 和之前位置提取的特徵聯繫起來,造成分類與定位無法對齊。作者針對級聯方式提出了兩個設計規則:提高分類置信度和定位表現的一致性維持不同階段中特徵的一致性。本文提出了一個多階段目標檢測器 Cas-RetinaNet,降低不一致性。它由多個連續的階段組成,在訓練過程中 IoU 的閾值逐漸遞增,從而提升關聯程度,以及一個創新的特徵一致性模塊(Feature Consistency Module),緩解特徵的不一致性。實驗證明,Cas-RetinaNet 在不同模型和輸入尺度上的表現都很穩定。在 MS COCO 數據集上,該方法將 RetinaNet 的 AP 由 39.1 提升到了 41.1。

1. Introduction

目標檢測是計算機視覺領域的基礎任務,在近些年中因爲深度學習的興起取得了顯著的進步。現在的檢測流程可以分爲兩類:單階段和雙階段檢測。一般而言,雙階段方法(如 Faster R-CNN)的性能是最佳的。單階段方法(如 SSD和YOLO)在保持性能的同時也可以實現實時的速度,受到越來越多的關注。

最近的研究都試圖從多個不同的角度來提升檢測性能。一個簡單的想法就是多增加幾個階段,多進行幾次分類和迴歸,進而得到更加準確的置信度得分和定位表現。Cascade R-CNN 通過級聯子網絡逐步提升候選區域的質量,改進雙階段方法。至於單階段方法,RefineDet 採用了一個改良模塊來模擬雙階段方法中的迴歸步驟。Consistent Optimization 方法將後續的分類目標附到迴歸邊框上,降低訓練階段和測試階段的差異。但是,級聯方式的單階段方法都忽略了特徵一致性,這就限制了它們的性能。例如,RetinaNet 是目前 SOTA 的單階段目標檢測方法,它從特徵金字塔上生成預測邊框,通過預測邊框中心點的特徵對每個預測邊框進行分類和迴歸。如果我們對 RetinaNet 增加級聯階段,第一個階段輸出的預測邊框與原來的預測邊框在中心點的位置會有一些變動。絕大多數的單階段方法都是通過滑動窗方式進行特徵提取,它是基於原來的位置,而非迴歸後的新位置,因此在不同的級聯階段中,特徵不一致性就肯定會出現。

在這篇論文中,作者發現單純地往 RetinaNet 中添加與原始設定一樣的級聯階段是無益的。原因主要有2個:分類置信度和定位表現的不一致性,不同階段中的特徵不一致性。在 RetinaNet 中,如果 IoU 大於某個閾值(如0.5),該預測邊框就被認爲是 positive。這也就是說,不管實際的 IoU 是0.55還是0.95,要分類的目標是一樣的。所以分類置信度就沒法反映定位的精度,如 IoU-Net 提到的。作者發現,在訓練過程中以級聯的方式,逐步提高後續階段 IoU 的閾值,有助於解決不一致的問題,因爲分類目標與實際 IoU 逐漸趨向一致。爲了解決特徵不一致性,本文提出了一個簡單而有效的特徵一致性模塊(FCM),使特徵可以適應改良後的新位置。特別地,該方法可以預測特徵圖上每一位置的偏移量,並通過一個簡單的 deformable convolution 層爲後續階段生成優化後的特徵圖。通過級聯的方式,檢測器的 IoU 會逐漸上升,檢測結果逐步得到優化。

本文主要貢獻如下:

  • 探討了特徵不一致問題,針對級聯單階段目標檢測提出了2個設計規則:改進分類置信度和定位表現的一致性,以及保持不同階段的特徵一致性
  • 爲了提高分類置信度的可靠性,在級聯中逐漸增加 IoU 閾值。另外提出了FCM來環節不同階段中的特徵不一致問題。
  • Cas-RetinaNet 的表現很穩定,在 RetinaNet 基礎上實現了性能提升。

2. Related Work

經典目標檢測器:在深度卷積網絡之前,很多年都是滑動窗模式在主導目標檢測。該領域大多數的進展都與人工圖像描述符(如HOG和SIFT)有關。基於這些強大的特徵,DPMs 將這些密集檢測器拓展到了更加通用的物體類別上,在 PASCAL VOC 上取得了非常優異的成績。

雙階段目標檢測器:現在的目標檢測領域,Faster R-CNN 是雙階段檢測器的代表,它在多個基準上都處於領先的位置。人們後來又提出了多個擴展版本來提升其性能,包括採用多任務學習機制,構建特徵金字塔,利用級聯的方式。

單階段目標檢測器:和雙階段方法相比,單階段方法旨在實現實時的速度,而保留其性能。OverFeat 算是第一個基於深度學習的單階段目標檢測器。YOLO和SSD 省略了候選區生成步驟,直接預測分類得分和邊框迴歸偏移。最近 Lin 等人指出前景、背景類別的不均衡極大地制約了模型性能,因而提出了 Focal Loss 來提升準確率。一般而言,絕大多數的單階段檢測器都遵循滑動窗的思路,通過全卷積網絡在每個位置都預測得分和偏移,這有助於降低計算複雜度。

不一致的分類和定位準確率:在大多數的目標檢測器中,非極大抑制(NMS)都是去除重複邊框的重要手段。它以迭代的方式運行。在每個迭代中,選取分類置信度最高的邊框,然後通過一個IoU 閾值來抑制其相鄰邊框。分類置信度與定位準確度之間的不一致可能導致以下情形,在NMS過程中準確定位的邊框被沒那麼準確的邊框抑制。所以,IoU-Net 對每個候選框,預測其 IoU 得分,減少不一致性。

級聯分類和迴歸:將多個階段級聯起來是一個非常簡單的想法,意圖取得更準確的置信度和定位精度。有些工作已經嘗試了在早期階段使用類似級聯的方式來排斥容易樣本,然後迭代地進行邊框迴歸。但是,傳統方法(尤其是單階段方法)忽視了不同級聯階段中的特徵一致性,因爲它們中的大多數都是通過全卷積的方式從原始位置上提取特徵。雙階段方法利用 RoI-Pooling 或 RoI-Align 提取的特徵來生成預測結果。這些操作降低了不同階段中對不齊的情況,因爲特徵和邊框中心的相關程度沒有很強。而在單階段方法中,滑動窗方式將邊框特徵和邊框中心對齊。下一階段中改良後的邊框與上一階段提取的特徵相關聯,這就限制了模型檢測的性能。

3. Analysis in Cascade Manner

在這一節中,作者主要探討了一個簡單但很重要的問題:在單階段模型中,什麼樣的階段可以作爲級聯?作者認爲,主要有2個關鍵的設計規則:提升分類置信度和定位表現的一致性,維持不同階段之間的特徵一致性。

3.1 Misaligned Classification and Localization

一般而言,對於雙階段檢測器,進行多次分類和迴歸可以逐步地提高檢測效果,尤其是定位精度。但是作者發現,將網絡按照其原始設定單純地增加額外的階段,對單階段檢測器是無益的。作者分析該現象後發現這是因爲,分類置信度和定位精度之間的不一致。在級聯的單階段檢測器中,預定義的 anchors 作爲第一階段的輸入,然後加入迴歸偏移量來生成新的邊框,作爲第二階段的輸入。如圖1(a)所示,在第一階段中,較高 IoU 的邊框並沒有和較高分類置信度的邊框很好地關聯起來,尤其是那些置信度在 IoU@0.5[email protected]附近的。不一致的置信度就會限制整體的性能。

爲了降低其不良影響,作者在後續階段中逐漸升高 IoU 閾值,修改正樣本的判斷條件,這樣只有高質量的樣本才被選爲正樣本。但是,IoU閾值過高則會導致訓練正樣本過少,造成檢測性能退化。從本文實驗中,作者發現逐漸升高 IoU 閾值可以提升性能。

3.2 Feature Inconsistency

大多數的單階段方法都是通過滑動窗,在邊框位置上進行特徵選取。由於特徵是以全卷積的方式提取出來的,滑動窗方法能夠將邊框特徵和 邊框中心很好地對齊。例如,RetinaNet 有一個小型的全卷積網絡,其中包含4個卷積層用於特徵提取,在不同的分支中有單個的卷積層來做預測。特徵圖上每個位置的預測包括了不同邊框形狀的分類與迴歸。

在級聯方式中,邊框在加上回歸偏移後就會變換到不同的位置。如圖2(a)所示,原來的邊框(橘色邊框)就回歸爲了紅色邊框。從特徵網格(b)的視角來看,利用了一個小型的全卷積網絡,將邊框特徵從橘色點的位置提取出來。如果在同樣的特徵圖上,我們只簡單地添加新的階段,那麼改良後的邊框特徵仍然是從這個橘色點提取而來,導致特徵不一致。這種邊框特徵和邊框位置的不一致性,就會極大地損害檢測性能。爲了維持不同階段之間特徵的一致性,改良後的邊框應該被調整到新的位置上。

4. Cascade RetinaNet

在這一節,作者首先回顧了 RetinaNet,然後提出了 Cas-RetinaNet,在 RetinaNet 上增加了若干級聯 heads。整體結構如圖3所示。

4.1 RetinaNet

RetinaNet 是單階段檢測方法的代表結構,表現是 state of the art 的。它由主幹網絡和兩個具體任務的子網絡構成。主幹網絡爲特徵金字塔網絡(FPN),用於構建多尺度特徵金字塔。在特徵金字塔之上是分類子網絡和邊框迴歸子網絡,分別預測類別和修正邊框位置。這兩個子網絡的參數在所有的金字塔層級上共享。由於前景和背景類別的極端不均衡,作者使用了 Focal Loss 來避免在訓練過程中,出現過多的 easy negative 樣本。

4.2 Cas-RetinaNet

級聯檢測。困難的檢測任務可以通過級聯方式拆分爲一組簡單的階段。前一階段的輸出可以看作爲下一階段的輸入。一般而言,第ii個階段的損失函數可以寫作:

Li=Lcls(ci(xi),yi)+λi1[yi1]Lloc(ri(xi,bi),g)L^i = L_{cls} (c_i(x^i), y^i) + \lambda ^i \mathbb{1}[y^i \geq 1] L_{loc} (r_i(x^i, b^i), g)

其中,xi,ci,rix^i, c_i, r_i 分別代表第ii個階段的主幹網絡特徵、分類head和迴歸 head。bi,gb^i, g分別代表預測邊框和 groundtruth 邊框,b0b_0代表預定義的邊框。計算bib^igg 之間的 IoU 來判斷邊框標籤yiy^i。如果 IoU 大於閾值T+iT^i_+,給 bib^i 指定 ground-truth 目標邊框;如果 IoU[0,Ti]IoU\in [0, T^i_-],則它爲背景。由於每個輸入邊框最多被指定到一個 ground truth 目標邊框,我們可以將類別標籤轉化爲一個 one-hot 向量,進而得到yiy^i。在訓練時,不考慮沒有指定的樣本。基於此,原來的 Focal Loss 和 Smooth L1L_1 損失就用LclsL_{cls}LregL_{reg}表示。當yi1y^i \geq 1時,指標函數1[yi1]\mathbb{1}[y^i \geq 1]就等於1,不然就等於0。λi\lambda^i用於平衡前項和後項,默認值爲1。級聯檢測的整體損失函數如下:

L=α1L1+α2L2+...+αiLi+...+αNLNL = \alpha_1 L^1 + \alpha_2 L^2 + ... + \alpha_i L^i + ... + \alpha_N L^N

平衡係數α1,...,αN\alpha_1, ..., \alpha_N默認值爲1。

分類與定位的不一致性。如3.1節所分析的,分類置信度和定位精度之間存在巨大的差距。這主要是採樣方法造成的,它決定訓練的樣本和權重。具體地說,不管實際的 IoU 是 0.55 還是 0.95,只要IoU(b1,g)T+1(0.5)IoU(b^1, g) \geq T^1_+ (0.5)y1y^1就設爲該類別。一個簡單的想法就是,逐漸地增加前景 IoU 閾值,驅使分類置信度與定位精度一致。作者在後面的階段依經驗增加 IoU 閾值,如T+2=0.6T^2_+=0.6。如圖1(b)所示,分類與定位的特徵一致性得到改善。注意,bi1b^{i-1}bib^i的迴歸目標可以不同,作者在不同的階段中給邊框指定不同的 ground truth 邊框。通過各閾值,我們就可以得到相應的分類標籤和迴歸目標。

特徵一致性模塊(FCM)。從上面的公式可見,作者基於主幹網絡特徵xix^i來預測分類得分和迴歸偏移量。當前的級聯檢測器通常在多個階段中採用相同的 xx,這會帶來特徵的不一致性,因爲沒有考慮到位置的轉換。本文中,作者希望在下一階段的特徵中編碼當前的位置信息,就像圖2中的位置由橘點變換到紅點。作者提出了一個新的 FCM,將特徵修正至新的位置。如圖3©右邊部分所示,基於xix^i,我們就可以學習到位置的變換偏移量,使用了一個 deformable 卷積層來修正特徵xi+1x^{i+1}。FCM可以表述爲:

xi+1=FCM(xi)=Deformable(xi,offset(xi))x^{i+1} = FCM(x^i) = Deformable(x^i, offset(x^i))

xix^i之上,使用了一個1×11\times 1卷積層來爲 deformable 卷積的 3×33\times 3個 bins 計算偏移量。然後將xix^i和偏移量輸入進一個 3×33\times 3 deformable 卷積層,產生一個新的特徵圖xi+1x^{i+1}。Guided Anchoring 同樣採用了 deformable 卷積來對齊特徵,但是其主要是針對預測邊框不規則的形狀造成的特徵表現不一致的情況。從實驗中可以看出,作者證明了在不同設定中,FCM能夠穩定地提升檢測性能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章