【目標檢測_CentripetalNet】CentripetalNet: Pursuing High-quality Keypoint Pairs for Object Detection_2020


論文地址:https://arxiv.org/pdf/2003.09119.pdf
源碼地址:https://github.com/KiveeDong/CentripetalNet

Abstract

基於關鍵點的檢測器取得了很好的性能。然而,不正確的關鍵點匹配仍然普遍存在,嚴重影響了檢測器的性能。在本文中,我們提出了 CentripetalNet,它利用向心位移來對同一實例中的角點進行配對。

CentripetalNet 預測角點(corner points)的位置(position)和向心偏移(centripetal shift),並對偏移結果對齊(aligned)的角點進行匹配。

結合位置信息,我們的方法比傳統的嵌入方法更精確地匹配角點。corner pooling 將邊界框內的信息提取到邊界上。爲了使角點處的信息更加敏感,我們設計了一個 corner-star deformable convolution network 進行特徵自適應。此外,我們還通過在向心網絡上安裝一個掩模預測模塊來探索無錨檢測器上的實例分割。在MS-COCO測試開發中,我們的向心網不僅在AP爲48.0%的情況下優於所有現有的無錨檢測器,而且在askAP爲40.2%的情況下,我們的向心網實現了與最先進的實例分割方法相當的性能。代碼將在https://github.com/KiveeDong/CentripetalNet上提供

1、Introduction

目標檢測是計算機視覺在自動駕駛、移動娛樂、視頻監控等應用中的一個基本課題。其挑戰來源於目標外觀較大的尺度、形變、遮擋。隨着深度學習的發展,目標檢測取得了長足的進步[10,9,29,26,23,19,11,20,1,17]。基於錨的方法[9,29,23]在過去幾年中引領了潮流,但是很難手動設計一組合適的錨。此外,基於錨的方法在負錨和正錨之間存在顯著差異。爲了改進它,CornerNet[17]提出了一種將邊界框表示爲一對角的新方法,即左上角和右下角。基於這種思想,出現了許多基於角點的方法[17,7]。corner-based 的檢測框架逐漸引領了目標檢測領域的新趨勢。corner-based 的檢測框架分爲角點預測和角點匹配兩個步驟。在本文中,我們集中討論第二步。

傳統的方法[17,7]主要採用關聯嵌入方法對角點進行配對,其中網絡需要學習每個角點的附加嵌入,以識別兩個角點是否屬於同一個 bounding-box。這樣,如果兩個角來自同一個box,它們將有一個相似的嵌入,否則,它們的嵌入將完全不同。基於關聯嵌入的檢測器在目標檢測中取得了很好的性能,但也存在一定的侷限性。首先,訓練過程採用推拉損失來學習每個點的嵌入。將計算不屬於同一對象的點之間的推送損耗,以將它們推離彼此。而拉損只在同一物體的點之間考慮。因此,在訓練過程中,網絡實際上被訓練在對角線的所有潛在點內尋找唯一的匹配點。當一個訓練樣本中存在多個相似對象時,該方法對異常值非常敏感,訓練難度會急劇增加。其次,嵌入預測基於外觀特徵,不使用位置信息,如圖1所示,如果兩個對象具有相似的外觀,則即使它們相距很遠,網絡也傾向於爲它們預測相似的嵌入。

基於上述考慮,我們提出了一種基於向心位移的角點匹配方法和一個十字星可變形卷積模塊來更好地預測向心位移。給定一對角點,我們爲每個角點定義一個二維向量,即向心位移,其中向心位移編碼從角點到長方體中心點的空間偏移。這樣,每個角點都可以根據向心位移生成一箇中心點,因此如果兩個角點屬於同一個邊界框,則它們生成的中心點應該是閉合的。匹配的質量可以用兩個中心與該匹配的幾何中心之間的距離來表示。結合每個角點的位置信息,與聯合嵌入方法相比,該方法對異常點具有較強的魯棒性。此外,我們還提出了一種新的成分,即 cross-star 可變形卷積,不僅可以學習大的感受野接收場,而且可以學習 cross-star 的幾何結構。我們觀察到 corner-pooling 輸出的特徵圖中有一些“十字星”。

“cross-star”的邊界包含對象的上下文信息,因爲 corner-pooling 使用max和sum操作將對象的位置信息沿 “cross-star” 邊界擴展到角。因此,我們將目標的幾何和位置信息明確地嵌入到可變形卷積的偏移場中。與 CornerNet 相比,我們的模型配備了向心偏移和 cross-star 可變形卷積,在MS-COCO test-dev2017上從42.1%AP提高到47.8%AP,取得了顯著的性能提升。此外,基於多任務學習在目標檢測中的優勢,我們首先加入了實例掩碼分支,進一步提高了目標檢測的準確性。我們將roalign應用於一組預測感興趣區域(roi)的集合特徵,並將集合特徵輸入掩模頭,生成最終的分割預測。爲了證明所提出的向心網的有效性,我們在具有挑戰性的MS-COCO基準上對該方法進行了評估[21]。在MS-COCO test-dev上,向心網不僅在AP爲48.0%的情況下優於所有現有的無錨檢測器,而且在實例分割方面也取得了與現有方法相當的性能。

2、Related work

Anchor-based approach

基於錨的檢測器在特徵地圖的每個位置設置錨箱。該網絡預測每個錨定框中有對象的概率,並調整錨定框的大小以匹配對象。通常,基於錨的方法可以分爲兩類,即兩階段方法和單階段方法。

從R-CNN系列方法[10,12,9]中導出兩階段方法,首先利用選擇性搜索方法[32]提取ROI,然後對其進行分類和迴歸。更快的R-CNN[29]使用區域建議網絡(RPN)通過修改預設錨定框來生成roi。掩模R-CNN[11]使用雙線性插值用roalign層替換RoIPool層。它的遮罩頭使用自頂向下的方法來獲取實例分段。

在不提取roi的情況下,一級方法直接對預先設置的錨箱進行分類和迴歸。SSD[23]利用來自多個不同卷積層的特徵映射,以不同的步幅對錨定盒進行分類和迴歸。與YOLO[26]相比,YOLOv2[27]使用預設錨定。然而,上述方法存在着正負樣本不平衡的問題。RetinaNet[20]使用焦點損失來緩解分類不平衡問題。RefineDet[37]通過引入錨定細化模塊來過濾和消除負樣本來細化FPN結構。

針對不同的問題,本文還提出了與基於錨的檢測器協同工作,如改進錨的選擇過程[33]、改進特徵學習過程[39,18]、優化定位預測方法[24]、改進損失函數[30,16]。

Anchor-free Approach

對於基於錨的方法,錨箱的形狀應仔細設計以適合目標對象。與基於錨的方法相比,無錨檢測器不再需要預先設置錨箱。主要提出了兩種無錨探測器。

探測器的第一種類型直接預測了目標的中心。Yolov1[26]在目標中心點預測物體的大小和形狀。DenseBox[14]引入了一種全卷積神經網絡框架以獲得高效率。UnitBox[36]使用IoU loss將四個邊界作爲一個整體進行迴歸。由於陽性樣本的數量相對較少,這些檢測器的召回率相當低。爲了解決這個問題,FCOS[31]將對象邊界框內的所有點作爲正樣本處理。它檢測所有正點以及從該點到邊界框邊界的距離。

對於第二種類型,檢測器預測關鍵點並將其分組以獲得邊界框。CornerNet[17]檢測對象的左上角和右下角,並將它們嵌入到抽象的特徵空間中。它通過計算每對點的嵌入之間的距離來匹配同一對象的角點。ExtremeNet[38]檢測對象的頂部、左側、底部、最右側和中心點。結合Deep Extreme Cut[25],可以使用極值點進行分割。這些檢測器需要一些特定的分組方法來獲得邊界盒。RepPoints[35]使用可變形卷積網絡(DCN)[6]獲得用於表示對象的點集。轉換函數經過精心設計,可將點集轉換爲邊界框。CenterNet[7]在CornerNet中增加了一箇中心檢測分支,通過中心點驗證大大提高了性能。

這些方法通常在錯誤檢測較多的情況下達到較高的召回率。主要的挑戰在於如何匹配同一對象的關鍵點。在這項工作中,我們提出了一個向心位移,它將角點之間的關係編碼,並通過預測的空間信息得到相應的中心,從而可以通過它們的共享中心建立左上角和右下角之間的連接。

3、CentripetalNet

我們首先提供方法的概述。如圖2所示,CentripetalNet 由四個模塊組成,即角點預測模塊、向心偏移模塊、cross-star 十字星變形卷積模塊和 instance mask 頭。我們首先基於CornerNet生成候選角點。在所有候選角點的基礎上,引入向心移位算法來尋找高質量的角點對,並生成最終的預測邊界盒。具體地說,向心偏移模塊預測角點的向心偏移,並匹配角點對,其從其位置解碼的偏移結果與向心偏移對齊。然後,我們提出了一種新的十字星可變形卷積算法,它的偏移場是從角點到相應中心的偏移量中得到的,用於進行特徵自適應以豐富角點位置的視覺特徵,這對於提高向心偏移模塊的精度具有重要意義。最後,爲了進一步提高檢測性能,我們增加了一個實例掩碼模塊,並將該方法擴展到實例分割領域。該方法以向心位移模塊的預測包圍盒爲區域建議,利用roalign提取區域特徵,並應用小卷積網絡預測分割掩模。總體來說,我們的向心網是端到端訓練的,可以在有或沒有實例分割模塊的情況下進行推理。

3.1 Centripetal Shift Module

在這裏插入圖片描述

Fig 2:CentripetalNet 概述。由於左上角和右下角的角點預測和特徵自適應是相似的,爲了簡單起見,我們只畫左上角模塊。向心變換模塊首先得到預測的角點和自適應特徵,然後預測每個角點的向心位移,並根據預測的角點和向心位移進行角點匹配。在匹配過程中,如果移動角點的位置足夠接近,它們將形成一個得分較高的邊界框。

CentripetalNet四個模塊:

  • 角點預測模塊
  • 向心偏移模塊
  • cross-star 十字星變形卷積模塊
  • instance mask 模塊

步驟:

  • 首先基於CornerNet pipline生成候選角點
  • 對於所有的角點候選項,引入向心移位算法來追求高質量的角點對並生成最終的預測邊界框。向心偏移模塊預測角點的向心偏移,並匹配角對,這些對角對的偏移結果從其位置解碼,並且向心偏移對齊。
  • 然後,交叉星可變形卷積,它的偏移場是從角到相應中心的偏移中學習,進行特徵適應,豐富角位置的視覺特徵,這對於提高向心位移模塊的精度是很重要的。
  • 最後,添加了一個實例掩碼模塊來進一步提高檢測性能,並將該方法擴展到實例分割區域。該方法以向心位移模塊的預測邊框爲region proposals,利用RoIAlign提取region特徵,並利用小型卷積網絡對分割掩碼進行預測。centrpetalnet是端到端訓練的,可以使用或不使用實例分割模塊進行推理。

3.1Centripetal shift module

3.1.1 Centripetal shift

對於 bboxi=(tlxi,tlyi,brxi,bryi)bbox^i=(tlx^i, tly^i,brx^i,bry^i),其幾何中心爲: (ctxi,ctyi=(tlxi,brxi2,tlyi,bryi2))(ctx^i, cty^i = (\frac{tlx^i, brx^i}{2}, \frac{tly^i,bry^i}{2}))

文中定義對 top-left 角點和 bottom-right 角點的向心偏移分別爲:

在這裏插入圖片描述
log的作用: 降低向心偏移的數值範圍,使得學習更容易

訓練過程中,在真實 corner 的位置,使用 smooth L1 loss,其中 NN爲訓練時真實corner的個數:

在這裏插入圖片描述

3.1.2 Corner Matching

爲了匹配角點,我們設計了一種利用角點的向心位移和位置進行匹配的方法。一對屬於同一邊界框的角應共享該框的中心,這是直觀和合理的。由於我們可以從預測角點的位置和向心位移來解碼對應的預測角點中心,因此很容易比較一對角點的中心是否足夠接近,並且該兩個中心是否接近由角點對組成的 bounding-box 的中心,如圖3(c)所示。基於上述觀察,我們的方法如下。從角點熱圖和局部偏移特徵圖中提取角點後,對同一類別的角點進行分組,滿足 tlx<brx<tly<brytlx<brx<tly<bry 的條件,即可構造出預測的邊界盒 bboxibbox^i。對於每個邊界框b,我們將其得分設置爲其角點得分的幾何平均值,這是通過在預測的角點熱圖上應用 softmax 獲得的。

在這裏插入圖片描述

然後,如圖3所示,我們將每個邊界框的中心區域定義爲等式3,以比較解碼中心和邊界框中心的接近度。
在這裏插入圖片描述
RcentralR_{central} 的角點用下列公式計算:
在這裏插入圖片描述
其中,0<μ10< \mu\leq1 表示中心區域的寬度和高度是邊界框的寬度和高度的 μ\mu 倍。通過向心偏移,可以分別解碼左上角和右下角的中心 (tlctx,tlcty)(tl_{ctx}, tl_{cty})(brctx,brcty)(br_{ctx}, br_{cty})

然後計算滿足 (tlctx,tlcty)Rcentralj(brctx,brcty)Rcentralj(tl_{ctx}, tl_{cty}) \in R^j_{central} \wedge (br_{ctx}, br_{cty}) \in R^j_{central} 的box的得分權重 wjw_j,這意味着迴歸的中心越接近,預測的box有更高的得分權重。對於其他邊界框,我們將 wjw_j設置爲0。最後,我們可以通過乘以得分權重對預測的邊界框重新打分。

3.2 Cross-star deformable convolution

由於 corner-pooling,在feature map 中有一些“cross-star”,如圖4(a)所示。“cross-star”的邊界保留了對象的大量上下文信息,因爲 corner-pooling 使用max和sum 操作將對象的位置信息沿“cross-star”邊界擴展到角。要獲取“十字星”的上下文信息,不僅需要一個大的感受野,還需要學習“十字星”的幾何結構。基於上述直覺,我們提出了一種新的卷積運算,即十字星可變形卷積,以增強角點的視覺特徵。
在這裏插入圖片描述
我們提出的跨星可變形卷積如圖2所示。首先,將角 corner pooling 特徵映射輸入到跨星可變形卷積模塊中。爲了瞭解可變形卷積中十字星的幾何結構,我們可以利用對應物體的大小來顯式地引導偏移場分支,因爲我們發現十字星的形狀與包圍盒的形狀有關。不過,以左上角爲例,他們自然應該少注意“十字星”的左上角,因爲物體外有更多無用的信息。因此,我們將一個 guiding shift,如圖3(b)所示,從角到中心的移位,包含形狀和方向信息,嵌入到偏移字段分支。具體地,偏移場在三個卷積層上執行。前兩個卷積層將角池輸出嵌入到特徵映射中,特徵映射受以下損失的監督:

在這裏插入圖片描述
第二卷積層將上述特徵映射到偏移場,偏移場顯式地包含上下文和幾何信息。通過可視化如圖7c所示的學習偏移場,我們的跨星可變形卷積可以有效地學習“跨星”的幾何信息並提取“跨星”邊界的信息。

4、Experiment

COCO 2017

多任務訓練:

在這裏插入圖片描述

在這裏插入圖片描述

效果:單階段目標檢測最好效果:48% mAP

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