Anchor-Free第二篇CornerNet的變種ExtremeNet
船長黑板報所有文章和程式碼的最新版本均在
維護,知乎不做維護
您的Star是對我的鼓勵
上文介紹的[CornerNet](
**歡迎探討,本文持續維護。**
## 實驗平臺
N/A
## ExtremeNet比CornerNet好在哪
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的啟發
簡單地說,CornerNet的提出給了ExtremeNet很大啟發。既然Corner利用兩個在目標外的角點可以做定位,那麼利用在目標邊上的點,應該可以做的更好才是(省去了Corner Pooling,而且四個Extreme點提供了更多的資訊)。具體介紹,請見上一節和[《Anchor Free第一篇CornerNet: Detecting Objects as Paired Keypoints》](
### ExtremeNet思路
如上圖所示是ExtremeNet大致的流程圖。ExtremeNet的網路結構和前面[《Anchor Free第一篇CornerNet: Detecting Objects as Paired Keypoints》](
均值)的Confidence。另外還有**4x2張**類別無關的offset map特徵圖,用來微調Extreme點反算到輸入圖的座標。
得到了5張Heatmap後,先用四張Heatmap找出所有的Extreme點可能出現的位置,再**窮舉**這些位置的四元組合,結合Center heatmap和幾何規則排除掉False Positive。過濾後剩下的組合就是檢測到的目標了。目標的Score就是五個點(4個Extreme點和一個Center點)在五張特徵圖對應的**Score的平均**。
關於怎麼做Grouping的方法,更清晰的可以見下圖:
### 網路結構和損失函式
ExtremeNet源於CornerNet,網路結構和CornerNet很像,損失函式和CornerNet一樣。
#### 網路結構
和CornerNet一樣,ExtremeNet也是用的關鍵點檢測常用的104-layer **HourglassNet**作為特徵提取Backbone網路,但是去掉了Corner Pooling模組,其餘做了很小的相應修改。
#### 損失函式
基本上和CornerNet一樣,關鍵點定位用的是**改造的Focal Loss**
,Offset迴歸用的是**Smooth L1 Loss**
。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》](