船長黑板報所有文章和程式碼的最新版本均在

維護,知乎不做維護

您的Star是對我的鼓勵

上文介紹的[CornerNet]()首次提出將目標檢測問題從迴歸Anchor Box的Top-Down思路轉化為檢測KeyPoints的Bottom-Up思路,後面就有一些新的基於關鍵點檢測的模型出來,例如ExtremeNet、CenterNet、FCOS等。這裡我們先介紹ExtremeNet,它和CornerNet最接近(Backbone都是一樣的,Prediction module小改)。ExtremeNet衍生於CornerNet,主要不同點在於(1) **關鍵點選取不同**:ExtremeNet的關鍵點選取為Object的最頂點,最底點,最左點和最右點,而不是包圍框的左上角點和右下角的點;(2) **Grouping方法不同**:ExtremeNet不需要學習Embddings,直接把所有的候選點集合做暴力窮舉,再結合幾何規則和中心點Heatmap找出包圍框(也可以是多邊形);(3) **ExtremeNet得到的資訊更豐富**:ExtremeNet可以得到目標不多邊形包圍框,比一般的矩形包圍框可以提供更多的關於目標的資訊。

**歡迎探討,本文持續維護。**

## 實驗平臺

N/A

## ExtremeNet比CornerNet好在哪

Anchor-Free第二篇CornerNet的變種ExtremeNet

Anchor-Free第二篇CornerNet的變種ExtremeNet

1。 ExtremeNet的**關鍵點選擇更科學**:如上面兩張圖片所示,第一張是CornerNet選擇的關鍵點,目標包圍框的左上角和右下角兩個點,下圖是ExtremeNet選擇的四個關鍵點,目標頂點,底點,最左點和最右點。可以看的出來,目標的Cornner點一般離目標很遠很少落在目標本身上面,而Extreme點一般都是在目標的邊緣上。**離目標本身越遠,越難學到很好的和目標位置強相關的特徵**,雖然CornerNet提出了Corner Pooling來顯示地編碼進去一些關於目標邊緣的特徵,但是肯定還是不如關鍵點本身就在目標邊緣效果好的(**標註四個Extreme點所攜帶的資訊本身也比標註兩個Corner點所攜帶的資訊多**)。奧卡姆剃刀告訴我們**如無必要,勿增實體**。

2。 ExtremeNet**不需要學習Embddings**:得到特徵點之後,特徵點怎麼組合起來形成一個框,在CornerNet中單獨引出了一個預測分支去學習一組關於點對關係的Embddings特徵(同一個目標的點對,Embddings近,不同目標的點對,Embddings遠),但是ExtremeNet把Embddings分支去掉了,添加了一些Center Points的Heatmap,再結合幾何關係的規則來做Grouping,作者聲稱效果比Embddings好。

3。 ExtremeNet的**資料標註成本小**:作者引用文獻中的結論,認為標註目標的Extreme點比標註目標的Bounding Box要快4倍。鑑於實際專案中,資料標註的成本可能很大,這裡也作為一個優勢提出來。

## ExtremeNet介紹

### CornerNet的啟發

Anchor-Free第二篇CornerNet的變種ExtremeNet

簡單地說,CornerNet的提出給了ExtremeNet很大啟發。既然Corner利用兩個在目標外的角點可以做定位,那麼利用在目標邊上的點,應該可以做的更好才是(省去了Corner Pooling,而且四個Extreme點提供了更多的資訊)。具體介紹,請見上一節和[《Anchor Free第一篇CornerNet: Detecting Objects as Paired Keypoints》]()關於Corner的介紹。

### ExtremeNet思路

Anchor-Free第二篇CornerNet的變種ExtremeNet

如上圖所示是ExtremeNet大致的流程圖。ExtremeNet的網路結構和前面[《Anchor Free第一篇CornerNet: Detecting Objects as Paired Keypoints》]()已經介紹過的CornerNet結構類似,這裡不再單獨介紹了。來看輸出:ExtremeNet對每類目標,生成**5張**Heatmap,其中4張是表示Extreme點在哪裡的Confidence,一張是表示Center點(4個Extreme點的

Anchor-Free第二篇CornerNet的變種ExtremeNet

均值)的Confidence。另外還有**4x2張**類別無關的offset map特徵圖,用來微調Extreme點反算到輸入圖的座標。

Anchor-Free第二篇CornerNet的變種ExtremeNet

得到了5張Heatmap後,先用四張Heatmap找出所有的Extreme點可能出現的位置,再**窮舉**這些位置的四元組合,結合Center heatmap和幾何規則排除掉False Positive。過濾後剩下的組合就是檢測到的目標了。目標的Score就是五個點(4個Extreme點和一個Center點)在五張特徵圖對應的**Score的平均**。

關於怎麼做Grouping的方法,更清晰的可以見下圖:

Anchor-Free第二篇CornerNet的變種ExtremeNet

### 網路結構和損失函式

ExtremeNet源於CornerNet,網路結構和CornerNet很像,損失函式和CornerNet一樣。

#### 網路結構

和CornerNet一樣,ExtremeNet也是用的關鍵點檢測常用的104-layer **HourglassNet**作為特徵提取Backbone網路,但是去掉了Corner Pooling模組,其餘做了很小的相應修改。

#### 損失函式

基本上和CornerNet一樣,關鍵點定位用的是**改造的Focal Loss**

Anchor-Free第二篇CornerNet的變種ExtremeNet

,Offset迴歸用的是**Smooth L1 Loss**

Anchor-Free第二篇CornerNet的變種ExtremeNet

。Grouping用的是幾何方法,沒有用到Embddings,就**沒有推拉Loss**。

## 總結

本文是以點做目標檢測的第二篇論文ExtremeNet,和CornerNet關鍵點選取目標包圍框的左上角點和右下角點不同,ExtremeNet的關鍵點選擇為目標邊緣最高、最低、最左、最右這四個點,在目標檢測領域取得了不錯的成績,而且**提供的定位資訊更多更準確**,也可以作為第一步應用在**兩階段分割任務**中。

## 參考資料

+ [CornerNet: Detecting Objects as Paired Keypoints](CornerNet: Detecting Objects as Paired Keypoints)

+ [Bottom-up Object Detection by Grouping Extreme and Center Points](Bottom-up Object Detection by Grouping Extreme and Center Points)

+ [Stacked Hourglass Network for Human Pose Estimation](Stacked Hourglass Networks for Human Pose Estimation)

+ [《D#0045-Stacked-Hourglass-Network-for-Human-Pose-Estimation》](Captain1986/CaptainBlackboard)

+ [《D#0046-Anchor-Free第一篇CornerNet-Detecting-Objects-as-Paired-Keypoints》](