Objects as Points 論文總結

Cpp課代表發表於2020-11-20

《Objects as Points 論文總結》

  我逐字翻譯了CenterNet 之 Objects as points的論文,這裡主要整理CenterNet中提到的知識點,以及寫下自己的感悟和看法,主要從主幹網路、監督方式以及我目前對anchor free的理解。方便後續對CenterNet的複習。

Key Words:Bottom-up、監督方式、Anchor free、推理增強


CVPR, 2019

Agile Pioneer  



Bottom-up

  Encoder-Decoder模型結構能cover絕大多數的場景,標準的Encoder-Decoder是對稱的網路結構,通過卷積+下采樣進行影像編碼,得到高層語義資訊。而後通過轉置卷積或插值等上取樣方法進行Decoder。當然這種結構也不限於CNN,也可以用RNN以及全連線之類的進行編解碼。

  Encoder-Decoder模型結構可以做影像語義分割Crow CountAutoEncoder以及各種生成模型,其優點在於可以逐畫素的進行分類(Focal Loss)或迴歸(MSE),感覺上監督的範圍更廣,所以對各種任務的普適性更強。

  CenterNet的主幹網路採取了類似於編解碼的方式進行預測,target與原圖相比下取樣了4倍,是一個不對稱的編解碼模型,這也是借鑑了openpose、hourglass等文章的做法。我理解這樣的做法能夠降低影像的視覺冗餘性,抗噪的同時還降低了運算量,下采樣四倍對於目標檢測以及關鍵點估計來說不會有太大的損失。而且這裡Center採用了對量化產生的誤差加了一項offset迴歸

  CenterNet在上取樣階段採用的可變形卷積,這對提高精度很有幫助,有空還需要拜讀一下可變形卷積v1和v2的論文。

  DLA-34 DenseNet Hourglass-104 都是關鍵點估計網路不錯的backbone選擇


監督方式

目標檢測

  GroundTruth:對原圖下采樣4倍,然後對目標中心點位置進行二維高斯和卷積。對於高斯核卷積兩個物體的重疊部分,取重疊元素的最大值
在這裡插入圖片描述

  預測head:中心點的類別(K個類別channel的heatMap)、中心點的size(2個channel,W和H)、量化offset(2個channel,X和Y)

  *損失函式

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

  點變為框的方式
在這裡插入圖片描述

  每個目標僅僅有一個正的錨點,因此不會用到NMS,提取關鍵點特徵圖上區域性峰值點(local peaks)使用3x3的mac pooling即可。


姿態估計

  損失函式:關鍵點和目標檢測的中心點的損失函式一樣,關鍵點到中心點回歸用L1 loss,迴歸offset也是用L1 loss。

  預測head:「C個類別,K個關鍵點」

  1. 中心點(C個類別channel)
  2. 中心點的size(2個channel,W、H)
  3. 中心點的量化offset(2個channel,X和Y)
  4. 關鍵點到中心點的距離(2*K個channel)
  5. 關鍵點的heatMap(K個channel)
  6. 關鍵點的offset(2個channel,X和Y)

  技巧:文中說過通過對關鍵點的迴歸得到的結果是無法達到SOTA水平的,所以作者巧妙的把迴歸的結果和bottom up的結果進行了結合,不需要像openpose一樣的複雜後處理演算法就能夠對關鍵點進行分組,非常值得學習。


Anchor free

   最早一代的Anchor free模型當數yolo v1了,此後進入了SSD為代表的AnchorBased時代,SSD可謂是把anchor機制用到了極致。anchor極致之能夠有效的原因是對特徵的featureMap上每個點都做了幾乎可以涵蓋所有目標的預設anchor,預設的越多,運算量越大,模型也就越準確。但實際我們使用的場景裡這些預設的anchor的利用率並不高,所以很多的運算其實都是徒勞的,這也就引發了anchor free再度興起。

   我理解的anchor free沒有顯式的對每個位置的各種建議框的尺寸和比例進行預設而已,但是位置資訊還是有所保留的,比如CenterNet的做法就是在關鍵點處進行迴歸,可以理解為這個點其實也是一個"anchor",基於目標的中心進行的迴歸,也是非常合理的。可以認為anchor-free 和每個位置有一個正方形 anchor 在形式上可以是等價的,也就是利用 FCN 的結構對 feature map 的每個位置預測一個框,這也就是為什麼bottom up的模型效果很好的原因。

  anchor-free 的方法由於網路結構簡單,對於工業應用來說可能更加友好。對於方法本身的發展,我感覺一個是新的 例項分割流程,因為 anchor-free 天生和 segmentation 更加接近。

  能夠用簡單的方法來代替目前複雜的目標檢測方法是一個質的飛越。


推理增強

  論文的實驗中用到了推理增強,這是一個屢見不鮮的技巧,通過損失推理效率來增加精度的方法。

  分類中我們可以對原圖進行crop或flip等,然後結果取眾數。

  分割中我們也可以對原圖進行flip,得到結果後在flip回來,疊加在一起。

  論文中使用的方法是在解碼前對推理增強的結果取平均,然後在進行解碼。


缺點

   當中心點重合的時候CenterNet就沒有辦法處理了,如果能保持CenterNet的優勢,在想辦法解決這個問題,下箇中CVPR的可能就是你。

相關文章