1. 程式人生 > >論文閱讀 | ExtremeNet:Bottom-up Object Detection by Grouping Extreme and Center Points

論文閱讀 | ExtremeNet:Bottom-up Object Detection by Grouping Extreme and Center Points

出了 span soft cor 相同 1.0 ask poi 可能

相關鏈接

論文地址:https://arxiv.org/abs/1901.08043

論文代碼:https://github.com/xingyizhou/ExtremeNet

概述

ExtremeNet是今年(2019)1月23號掛在arxiv上的目標檢測論文,是至今為止檢測效果最好的單階段目標檢測算法。思想借鑒CornerNet,使用標準的關鍵點估計網絡檢測目標關鍵點進而構造目標的預測框。ExtremeNet預測四個extreme point(頂、左、底、右)以及目標的中心點,如果這五個點滿足幾何對齊關系,就將其組合成一個目標框。ExtremeNet在COCO test-dev上的AP達到43.2%。此外,根據extreme point還可以得到更加精細的八邊形分割估計結果,在COCO Mask上的AP達到34.6%。

ExtremeNet介紹

ExtremeNet是一個自底向上的目標檢測框架,檢測目標的四個極值點(頂端、左端、底端、右端),使用state-of-the-art的關鍵點估計框架產生每個類別的五個Heatmaps(四個極值點和一個中心點)。使用純幾何方法組合同一目標的極值點:四個極值點的幾何中心與預測的中心點heatmap匹配且高於閾值(暴力枚舉,時間復雜度O(n^4),不過n一般非常小)。

技術分享圖片

圖2 展示了算法的大致流程。首先產生四個預測極值點的heatmap(圖2頂部)和一個預測中心點的heatmap(圖2左下),提取極值點heatmap的峰值(圖2中左),暴力枚舉所有組合,計算幾何中心(圖2中右),如果幾何中心與中心heatmap高度匹配,則接受該組合,否則拒絕(圖2右下)。

該算法與CornerNet的區別在於關鍵點定義和組合。(1)CornerNet采用左上和右下角點,角點往往不在目標上,沒有較強的外觀特征;而ExtremeNet采用極值點,極值點在目標上,容易區分且具有一致的局部外觀特征。(2)CornerNet點對組合是根據embedding vector的距離,而ExtremeNet則是根據幾何中心點。ExtremeNet完全基於外觀,沒有任何的隱特征學習。

網絡結構

網絡結構如下圖所示:

技術分享圖片

ExtremeNet使用Hourglass網絡作為backbone,產生4個C通道、大小為H*W的heatmaps,一個C通道、大小為H*W的heatmap,以及4個2通道、大小為H*W的偏移map。Heatmaps通過加權逐像素邏輯回歸進行訓練,其中權重用於減少在ground-truth位置附近的假陽性懲罰(詳見CornerNet)。四個極值點的估計使用了CornerNet的結構和損失函數,不過沒有使用embedding部分。

focal loss的變體來處理heatmap損失:

技術分享圖片

其中,pcij是類別c在位置(i, j)的score,ycij是非標準化高斯增強的ground-truth,N是圖像中目標數,α和β是超參數(實驗中α設為2,β 設為4)。

Offsets則是位置偏移。下采樣的使用使得輸出尺寸小於原始圖像尺寸,假設下采樣因子為n,則圖像中(x, y)映射到Heatmaps的([x/n], [y/n])。取整計算會導致精度丟失,使用offsets來更準確地進行Heatmaps到輸入圖像的映射。

技術分享圖片

訓練過程中使用smooth L1損失,即:

技術分享圖片

訓練設置、損失函數以及offset預測與CornerNet相同。

Center grouping算法如下:

技術分享圖片

ExtractPeak就是給定一個heatmap,檢測其中所有的峰值來提取相應的關鍵點。峰值就是3*3窗口中的局部最大值。預設閾值進行篩選。暴力枚舉所有組合,計算幾何中心,如果其在中心點的heatmap上有高響應則接受結果,得分為五個heatmap的平均值。閾值設置τp=0.1,τc=0.1。

Center grouping算法可能會出現這樣的情況:處理三個共線且尺度相同的目標時,是產生三個正確的小框還是一個錯誤的大框呢?這種假陽性的檢測結果稱為“ghost box”。文中使用一種soft NMS來抑制ghost box:如果某個邊框中包含的所有框的分數之和超過其本身得分的3倍,則將其得分除以2。

此外,極值點並非總是唯一的,比如一個汽車的極值點可能是水平或豎直的線段,文中極值點的響應是對邊緣多個點的弱響應而不是一個點的強響應。這有可能產生幾個問題:弱響應可能會被忽略;目標如果發生輕微旋轉即便檢測到關鍵點,得分也有很大差異。作者采用邊緣聚集的方法來解決:對於每個極值點(局部最大值點),分別沿水平和垂直兩個方向進行聚集,也就是在每個方向上找極值點最近的左右兩個局部最小值,在區間內做加權和作為極值點的得分。公式如下所示:

技術分享圖片

其中,m為極值點位置,i0、i1分別為距離m最近的兩個局部最小值。

如下圖所示,使用邊緣聚集策略後,邊緣中心的像素點的置信度明顯提升:

技術分享圖片

實例分割

文中提出了一個簡單的八邊形逼近目標的方法(基於四個極值點形成的矩形邊界框):將一個極值點左右各延長1/8形成線段,如果遇到矩形框的角時則截斷。將這四個線段的端點連接起來,形成八邊形。

實驗

在COCO數據集上進行實驗,如果一條邊與坐標軸平行或者夾角小於3度,就將其中心作為極值點。從頭訓練太耗時,使用了CornerNet的預訓練模型進行finetune。

細節:最多只取ExtractPeak 中top40的點進行枚舉;測試階段使用flip argumentation策略;對增強的檢測結果使用soft NMS。檢測速度3.1fps。

在COCO數據集上的檢測結果:

技術分享圖片

由上表可見,ExtremeNet多尺度模型的效果達到目前單階段算法的最佳AP(43.2%),比CornerNet提升1.1%;而單尺度模型的AP比CornerNet低了0.4%,在中、小目標的檢測上AP都高於CornerNet,而大目標檢測略差,可能原因是中心點的response map不夠準確造成的。

在實例分割方面,ExtremeNet與DeepExtremeCut結合,在COCO val2017上達到34.6%的AP,而當前最先進的Mask RCNN的AP為34.0%(基於ResNet-50+FPN)、37.5%(基於ResNeXt-101+FPN)。在實例分割方面也與最先進的方法相當。

論文閱讀 | ExtremeNet:Bottom-up Object Detection by Grouping Extreme and Center Points