RelationNet++:基於Transformer融合多種檢測目標的表示方式 | NeurIPS 2020

論文提出了基於注意力的BVR模塊,能夠融合預測框、中心點和角點三種目標表示方式,並且能夠無縫地嵌入到各種目標檢測算法中,帶來不錯的收益

來源:曉飛的算法工程筆記 公衆號

論文: RelationNet++: Bridging Visual Representations for Object Detection via Transformer Decoder

Introduction


  目標檢測算法有很多種目標表示方法,如圖b所示,有基於矩形框的也有基於關鍵點的。不同的表示方法使得檢測算法在不同的方面表現更優,比如矩形框能更好的對齊標註信息,中心點更利於小目標識別,角點則能夠更精細地定位。論文探討能否將多種表示方式融合到單框架中,最終提出了基於注意力的解碼模塊BVR(bridging visual representations),該模塊與Transformer的注意力機制類似,通過加權其它目標特徵來增強當前目標特徵,能夠融合不同表示方式的異構特徵。

  以BVR嵌入anchor-based方法爲例,如圖a所示,表示方式acnhor作爲$query$,其它表示方式中心點和角點作爲$key$,計算$query$和$key$間關聯性權重,基於權重整合$key$的特徵來增強$query$的特徵。針對目標檢測的場景,論文對權重計算進行了加速,分別爲key sampling和shared location embedding,用於減少$key$的數量以及權重計算量。除了嵌入到anchor-based方法外,BVR也可嵌入到多種形式的目標檢測算法中。
  論文的貢獻如下:

  • 提出通用模塊BVR,可融合不同目標表示方式的異構特徵,以in-place的方式嵌入到各種檢測框架,不破壞原本的檢測過程。
  • 提出BVR模塊的加速方法,key sampling和shared location embedding。
  • 經測試,在ReinaNet、Faster R-CNN、FCOS和ATSS四個檢測器上有明顯的提升。

Bridging Visual Representations


  使用不同表示方式的檢測算法有不同的檢測流程,如圖2所示,BVR注意力模塊以算法原本的表示方式爲主特徵,加入其它表示方式作爲輔助特徵。將主特徵$query$和輔助特徵$key$作爲輸入,注意力模塊根據關聯性加權輔助特徵來增強主特徵:

  $fq_i$,$f{'q}_i$,$gq_i$爲第$i$個$query$實例的輸入特徵,輸出特徵和幾何向量,$fk_j$,$g^k_j$爲第$j$個$key$實例的輸入特徵和幾何向量,$T_v(\cdot)$爲線性變化,$S(\cdot)$爲$i$和$j$實例間的關聯性計算:

  $SA(fq_i, f^k_j)$爲外觀特徵相似度,計算方法爲scaled dot product。$SG(gq_i, g^k_j)$爲幾何位置相關的項,先將相對的幾何向量進行cosine/sine位置embedding,再通過兩層MLP計算關聯度。由於不同表示方式的幾何向量(4-d預測框與2-d點)不同,需從4-d預測框提取對應的2-d點(中心或角點),這樣兩種不同表示方式的幾何向量就對齊了。
  在實現時,BVR模塊採用了類似multi-head attention的機制,head數量默認爲8,即公式1的+號後面改爲Concate多個關聯特徵的計算,每個關聯特徵的維度爲輸入特徵的1/8。

BVR for RetinaNet


  以RetinaNet爲例,RetinaNet在特徵圖的每個位置設置9個anchor,共有$9\times H\times W$個預測框,BVR模塊將$C\times 9\times H\times W$特徵圖作爲輸入($C$爲特徵圖維度),生成相同大小的增強特徵。如圖a所示,BVR使用中心點和角點作爲輔助的$key$特徵,關鍵點通過輕量級的Point Head網絡預測,然後選擇少量的點輸入到注意力模塊中增強分類特徵和迴歸特徵。

Auxiliary (key) representation learning

  Point Head網絡包含兩層共享的$3\times 3$卷積,然後接兩個獨立的子網($3\times 3$卷積+sigmoid),預測特徵圖中每個位置爲中心點(或角點)的概率及其相應的偏移值。如果網絡包含FPN,則將所有GT的中心點和角點賦予各層進行訓練,不需根據GT大小指定層,這樣能夠獲取更多的正樣本,加快訓練。

Key selection

  由於BVR模塊使用了角點和中心作爲輔助表示方式,特徵圖的每個位置會輸出其爲關鍵點的概率。如果將特徵圖的每個位置都作爲角點和中心點的候選位置,會生成超大的$key$集,帶來大量的計算消耗。此外,過多的背景候選者也會抑制真正的角點和中心點。爲了解決上述問題,論文提出top-k(默認爲50)$key$選擇策略,以角點選擇爲例,使用stride=1的$3\times 3$MaxPool對角點分數圖進行轉換,選取top-k分數位置進行後續計算。對於包含FPN的網絡,則選擇所有層的top-k位置,輸入BVR模塊時不區分層。

Shared relative location embedding

  對於每組$query$和$key$,公式2的幾何項需要對輸入的相對位置進行cosine/sine embedding以及MLP網絡轉換後再計算關聯度。公式2的幾何項的幾何複雜度和內存複雜度爲$\mathcal{O}(time)=(d_0+d_0d_1+d_1G)KHW$和$\mathcal{O}(memory)=(2+d_0+d_1+G)KHW$,$d_0$,$d_0$,$G$,$K$分別爲cosine/sine embedding維度,MLP網絡內層的維度、multi-head attention模塊的head數量以及選擇的$key$數量,計算量和內存佔用都很大。

  由於幾何向量的相對位置範圍是有限的,一般都在$[-H+1, H-1]\times [-W+1, W-1]$範圍內,可以預先對每個可能的值進行embedding計算,生成$G$維幾何圖,然後通過雙線性採樣獲得$key/query$對的值。爲了進一步降低計算量,設定幾何圖的每個位置代表原圖$U=\frac{1}{2}S$個像素,$S$爲FPN層的stride,這樣$400\times 400$的特徵圖就可表示$[-100S, 100S)\times [-100S, 100S)$的原圖。計算量和內存消耗也降低爲$\mathcal{O}(time)=(d_0+d_0d_1+d_1G)\cdot 400^2+GKHW$和$\mathcal{O}(memory)=(2+d_0+d_1+G)\cdot 400^2+GKHW$。

Separate BVR modules for classification and regression

  目標中心點表示方式可提供豐富目標類別信息,角點表示方式則可促進定位準確率。因此,論文分別使用獨立的BVR模塊來增強分類和迴歸特徵,如圖a所示,中心點用於增強分類特徵,角點用於增強迴歸特徵。

BVR for Other Frameworks


  論文也在ATSS、FCOS和Faster R-CNN上嘗試BVR模塊的嵌入,ATSS的接入方式跟RetinaNet一致,FCOS跟RetinaNet也類似,只是將中心點作爲$query$表示方式,而Faster R-CNN的嵌入如圖4所示,使用的是RoI Aligin後的特徵,其它也大同小異。

Experiment


  論文進行了充足的對比實驗,可到原文看看具體的實驗步驟和關鍵結論。

Conclusion


  論文提出了基於注意力的BVR模塊,能夠融合預測框、中心點和角點三種目標表示方式,並且能夠無縫地嵌入到各種目標檢測算法中,帶來不錯的收益。



如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公衆號【曉飛的算法工程筆記】

work-life balance.

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