技術解讀丨目標檢測之RepPoints系列算法


摘要:本文對anchor-free的目標檢測RepPoints系列算法進行梳理,具體包含RepPoints, RepPoints V2, Dense RepPoints。

背景介紹

近兩年來,anchor-free作為目標檢測算法的新思路,已經得到越來越多的關注。在典型anchor-based的算法中,模型的效果往往受限於anchor的配置參數,如anchor大小、正負樣本采樣、anchor的寬高比等,要求開發者要十分了解數據,才能配置好anchor參數,從而訓練得到一個好的模型。anchor-free的算法無需配置anchor參數,即可訓練得到一個好的檢測模型,減少了訓練前對數據復雜的分析過程。

anchor-free 算法又可分為基於anchor-point的算法和基於key-point的算法。anchor-point算法本質上和anchor-based算法相似,通過預測目標中心點(x,y)及邊框距中心點的距離(w,h)來檢測目標,典型的此類算法有FSAF,FCOS等;而key-point方法是通過檢測目標的邊界點(如:角點),再將邊界點配對組合成目標的檢測框,此類算法包括CornerNet, RepPoints等。本文將介紹RepPoints系列算法工作。

RepPoints是ICCV2019的一篇文章,新穎地提出使用點集的方式來表示目標,該方法在不使用anchor的基礎上取得了非常好的效果。如圖1所示,a)表示一般目標檢測算法使用水平包圍框來表示目標位置信息,b)則表示了RepPoints使用點集來表示目標位置的方法。RepPoints系列工作其實就是以點集表示為核心,從不同的角度去進一步提升該算法精度而做出改進:1)將驗證(即分割)的過程融入RepPoints,進一步提升結果,得到RepPoints V2; 2) 將點集的監督方式進行改進,病擴充點集的點數,實現了目標實力分割任務的統一范式,即Dense RepPoints.

RepPoints

RepPoints算法的框架如圖2 所示。總體上,該方法是基於全卷積網絡實現的,但是不同於其他的one-stage方法(e.g. RetinaNet)使用一次回歸和一次分類得到最終的目標位置,RepPoints使用了兩次回歸和一次分類,並且分類和最后一次回歸使用的不是普通卷積,而是可形變卷積。可形變卷積的偏移量是通過第一次回歸得到,也就意味着偏移量在訓練過程中是有監督的。采用這種方式,后續的分類和回歸特征均是沿着目標選取的,特征質量更高。

圖2 RepPoints框架圖

RepPoints的結果如表1 所示,在單階段方法中表現很好,並且借助多尺度訓練和多尺度測試能夠進一步提升精度,遠超先前的two-stage方法。

表1 RepPoint與SOTA算法對比

RepPoints V2

驗證(即分割)和回歸是神經網絡兩類通用的任務,有着各自的優勢:驗證更容易學習並且准確,回歸通常很高效並且能預測連續變化。因此,采用一定的方式將兩者組合起來能充分利用它們的優勢。RepPoints V2就是在RepPoints的基礎上增加了驗證模塊,實現了性能的進一步提升。本文的工作有一定的可拓展性,在基於回歸的方法上都可以加上這個模塊以提升結果。

表2. 基於驗證和回歸的幾種方法性能對比

表2為在COCO Val上幾種方法的結果分析,可見有驗證分支的方法在AP90上的指標較高,表明其檢測結果的准確度更高。

圖3 RepPoints V2流程圖

RepPoints V2在RepPoints方法基礎上添加了一個分割分支,該分割主要包含兩部分,一部分是角點預測的分割,另一部分是目標前景的分割。如圖3所示,得到分割圖后,一方面這個分割圖和原始特征相加,作為回歸特征的補充;另一方面在推理階段,在回歸分支獲取到目標位置后,利用該分割圖可對結果進行進一步修正。總的來說,這個任務的添加可從三個層面對結果進行提升:多任務一般會直接提升總體結果;利用分割圖增強特征提升回歸效果,推理過程回歸結果和分割結果進行綜合也有提升。作者用實驗證明了這三個方面的提升,如表3所示。

表3. Ablation Study

Dense RepPoints

Dense RepPoints在RepPoints的基礎上,將任務從目標檢測擴充到實例分割,使用了更密集的點來表示目標,從而達到實例分割的目標。

RepPoints是一種針對目標檢測的表示方法,只采用9個點來表示目標,

這些點只包含了位置信息,無法表示物體更精細的結構,難以應用於實例分割任務。相比於RepPoints, Dense RepPoints使用更多的點表示物體,並增加了每個點的屬性信息:

在刻畫細粒度的物體幾何定位時,有多重表示方式,見圖4。其中,基於輪廓的方法(圖4 b)對物體的表達更緊湊,需要更多的信息,且由於更關注對物體邊緣的分割,有望德大更精確的邊緣。而基於網格掩碼的方式(圖4 c)通過對網格點做前景/背景分類的方式實現物體分割,更易於學習。基於這兩種表達的有點,Dense RepPoints采用圖4d的邊緣掩碼方式來表示物體。和輪廓表示類似,邊緣掩碼表示將點集主要放在物體邊緣附近,從而可以更精細地表示物體邊緣;另一方面,和網格掩碼表示類似,這一方法采用了代表點前景/背景分類的方法來實現物體分割,更利於學習。

圖4. 不同邊界表達和采樣方式

圖5. Dense RepPoints框架

RepPoints對目標的表示采用一個點集R來表示,

對於分類和二次回歸的特征便是通過上述點集采樣(deformable conv)獲取,得到F(R),將點數進行提升,F(R)的深度將直線增加。在RepPoint初始版本中,采樣點數為9尚可用於目標檢測。為了准確描述不規則目標時,往往需要上百個點,

Dense RepPoints使用了更密集的點集表示物體,也增加了所需的計算量,影響實現效率。Dense RepPoints采用三種技術來解決計算量增加的問題:Group pooling; Shared offset fields; shared attribute map.

Group Pooling如圖6所示,主要解決分類過程中的復雜度。如果實驗中采用n點來描述目標,那么將其分成k組,對每組進行池化操作,然后進行預測,最終分類部分的復雜度有O(n)降低到O(k)。

圖6. Group Pooling

RepPoints對物體輪廓點的偏移量進行修正時(圖2),是先基於初始預測的N個輪廓點,通過N個Deformable Conv 算子分別對每個輪廓點進行修正預測,所需復雜度為O(n^2)。該方法對於預測密集點的Dense RepPoints算法而言,在推理效率上就不適用了。Dense RepPoint提出Shared offset fields方法,認為對每個輪廓點的偏移修正特征只需從原始預測的輪廓點信息,即每個輪廓點各自進行獨立的修正,從而將復雜度降低到O(n)。具體如圖7所示,對每個輪廓點通過bilinear線性插值方法提取特征進行輪廓點修正。

圖7. Shared offset fields

對於Shared Attribute Map,如圖8所示。由於要進行分割,需要對前景進行打分。打分的過程根據點的位置分成上下左右四個區域,將不同的區域分配到不同的通道上。推理過程中,為了獲取某個點的得分,首先根據點在目標中的相對位置找到對應的通道,而后對該通道的得分進行采樣即可得到該點的得分。

圖8. Shared Attribute Map

作者通過對比試驗驗證了這些操作的有效性,在增加點數時基本不增加計算量,並且有效提升了結果。

表3. Ablation Study.GP表示Group Pooling, SOF表示shared offset fields.

除了通過一系列的操作將計算量進行降低,Dense RepPoints論文還探索了點的不同分布方式和損失函數的計算方式對結果帶來的影響。對於點集的分布,依距離對目標邊緣進行采樣在實例分割任務中擁有最好的性能。對於損失函數,計算點集與點集之間的損失值要優於點對點的損失值。

小結

以點集(RepPoints)這種方式來表示目標能在精度和計算量上取得非常好的平衡,並且后處理簡單。在使用點集的基礎上,在部分任務上,還可以引入V2中的驗證分支,來實現更精細的檢測,同樣也可參考Dense RepPoints,將Deformable Conv換成更加通用的點采樣來實現,讓模型更具拓展能力和表達能力。

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM