Paper link:

Bottom-up Object Detection by Grouping Extreme and Center Points?

arxiv.org

Code link:

xingyizhou/ExtremeNet?

github.com
圖標

1 Abstract

隨著深度學習的發展,目標檢測問題已經從一個由下到上的問題轉變為一個由上到下的問題。(下文有詳細介紹)當前最先進的目標檢測演算法首先枚舉密集的目標可能存在的位置,然後對每一個位置分類判斷是否存在目標,是前景還是背景。在本文中,作者認為,從下到上的方法仍然能夠取得很好的性能。利用關鍵點預測網路預測四個極值點(最頂部、最左側、最底部、最右側)和一個中心點共五個關鍵點。如果五個關鍵點是幾何對齊的,我們將它們分組到一個bounding box中,那麼,目標檢測問題就轉化為一個純的關鍵點估計問題,而不用進行分類或特徵學習。實驗表明,在COCO數據集上,AP有43.7%。

2 Introduction

利用從上到下的方法進行目標檢測是當今的主流方法。常用的目標檢測器將目標檢測轉變為矩形區域分類,通過裁剪,特徵提取或者anchor-based方法,獲得目標可能存在的區域位置。這就是我們說的從上到下的方法,但是這種top-down方法並不是沒有缺陷的,顯而易見的是,絕大多數的目標都不是常規的矩形,如果我們強制用矩形表示目標,那麼會包括除了目標本身外很多的背景像素,這些像素並不是我們需要的。此外,這種方法需要列舉大量候選框可能存在的位置,而不是真正對圖像的語義信息進行理解,這種方法的計算成本是非常龐大的。而且,bounding box是遠遠不能和目標本身劃等號的,在形狀,姿態等方面有很大的差距。

在本文中,作者提出了ExtremeNet,一種從下到上的目標檢測方法:通過預測每個對象類別的四個多峰熱圖(heatmaps),找到四個極值點(最頂部、最左側、最底部、最右側),此外,再利用一個heatmaps進行中心點預測,並將該點作為x維和y維兩個邊界框的平均值。使用幾何方法對極值點進行分類,如果四個極值點的幾何中心在中心熱圖中的得分高於閾值,那麼這四個極值點就會被歸為一組。枚舉所有可能的極值點組合,然後選擇符合條件的,分為一組。如下圖所示:首先通過四個熱點圖選出極值點(下圖四種顏色的點,每種顏色的點代表四類中一類的極值點)的候選,一個熱圖選出中心點的候選。然後對於極值點候選,每個類選擇一個,進行組合,組合出來的四個點,求其幾何中心,如果該幾何中心在中心點預測的熱圖上有超過閾值的分數,那麼這四個極值點就是一組的,得到一個bounding box。否則,拒絕,進行下一種組合。

近兩年來,有很多基於關鍵點預測的目標檢測方法,比如CornerNet(在我的專欄中也有詳細解讀),通過預測左上角和右下角的角點,構成bounding box。在角點分類的方法上,借鑒了人體姿態估計的方法,進行向量嵌入進行分組。與CornerNet相比,本文提出的方法有兩大不同:關鍵點的定義和分組方式。角點是bounding box的一種特殊形式,比如CornerNet,知道左上角和右下角的點後就形成了一個bounding box。再比如CenterNet,在CornerNet的基礎上加了一個中間點,利用三個點形成一個bounding box。但是這種bounding box的生成方式是有缺陷的,因為這種點通常在真正物體的外部,並沒有很強的外觀特徵,甚至說,它本不應該屬於物體,只是因為我們要用bounding box表示而已。但是本文提出的極值點是位於物體上的,因此在視覺上是可區分的,具有一致的局部外觀特徵。舉例來說,對於一個人的目標檢測,最頂端的點通常是頭部位置;對於一個車輛或者飛機的目標檢測來說,最底部的點通常是輪子的位置。這種特性讓ExtremeNet檢測更簡單和具有優勢。ExtremeNet是完全基於外觀的,沒有進行任何的隱式學習。在ICCV 2017中有這樣一個工作:《Extreme clicking for efficient object annotation》,說的是關於邊界框標註的問題。通常目標檢測的邊界框標註是用一個矩形圈定範圍。在注釋ILSVRC時,獲得一個高質量的標註框大約需要35s,在通過改變標註方式,將畫框改為極值點標註後,時間能縮短到7s。此外,與邊界框相比,極值點的標註能獲得更細粒度的表示。

實驗表明,在COCO數據集上,AP有43.7%,這個成績,可以傲視整個一階段目標檢測器了。

3 Related work:

在這個模塊,我附上其他幾篇基於關鍵點進行目標檢測的論文解讀,如果你想了解更多,可以點擊閱讀

路一直都在:RepPoints:用代表性點集進行目標檢測?

zhuanlan.zhihu.com
圖標
路一直都在:CornerNet:另闢蹊徑的目標檢測方法?

zhuanlan.zhihu.com
圖標
路一直都在:CenterNet: Keypoint Triplets for Object Detection?

zhuanlan.zhihu.com
圖標

4 Preliminaries(預備知識)

  • Extreme and center points(極值和中心點)

計算機視覺,尤其是目標檢測任務中,邊界框標註是必不可少的一項準備工作,想一想常規的邊界框標註我們是怎麼做的?以我用LabelImg標註的體驗,通常先點擊一個邊界框左上角的位置,然後拉到右下角的位置,生成一個矩形將目標覆蓋。如下圖所示,我們通過這種方法選出來的左上角和右下角本身不屬於目標本身,而且要想得到一個高質量的邊界框,需要的時間平均為34.5s

於是,新的標註方式被提出,標註四個極值點即最頂,最底,最左,最右。若四個點坐標如下所示:

那麼我們真正需要的,其實是下列這四個值:最左,最右坐標的x方向上的值;最頂最低坐標的y方向上的值。

那麼相對應的中心點坐標就是:

這種標註方式平均花費時間是7.2秒,而標註效果卻毫不遜色。於是本文就利用了這種標註方式。

  • Hourglass Network(沙漏網路)

沙漏網路最初是在ECCV 2016中的工作,通過重複自底向上和自頂向下並聯合中間結果的監督用在人體姿態估計中可以很好地利用身體不同部位的空間關係,一個沙漏網路的結構可以通過下列圖示表示:基本思想是先進行降採樣,在降採樣的過程中,C1a-C4a是對應層的副本,從C7開始上採樣,與C1a-C4a對應元素相加,得到C1b-C4b,最後再經過兩個1x1的卷積進行處理,得到最終輸出。沙漏模塊首先通過一系列卷積層和最大池化層對輸入特性進行下採樣。然後通過一系列的上採樣和卷積層將特徵上採樣回原來的解析度。由於細節在最大池化層中丟失,因此添加了跳過層用來將細節帶回到上採樣的特徵

5 ExtremeNet for Object detection

ExtremeNet利用沙漏網路為每個類別的五個關鍵點(四個極值點和一個中心點)進行檢測,在損失函數設計和偏移預測上,遵循和CornerNet相同的策略。偏移預測是類別無關但是極值點相關的。由於中心點是通過四個極值點的幾何計算得到的,所以對於中心點並不進行偏移預測。因此,整個網路的輸出是這樣的:heatmaps(熱點圖) 5xC維,其中C為要分類的數目,在COCO數據集上C的值是80;4x2 偏移圖(4個極值點,2個方向)。下圖是ExtremeNet的圖示:

一旦提取出極值點後,利用純幾何的形式將極值點分組。

  • Center Grouping(極值點分組)

顯而易見,極值點位於目標的不同邊上,這就使將極值點分組變得複雜。在CornerNet上,借鑒了人體姿態估計中的向量嵌入方法將角點進行分組,但是作者認為這種方法可能缺少足夠的全局視圖信息。於是本文採取了截然不同的策略進行分組。也就是Center Grouping。

整個模塊的輸入是每一個類別的5個熱圖即一個中心點熱圖和4個極值點熱圖,可分別用下列公式表示:

1個中心熱點圖
4個極值點熱點圖

給定一個熱點圖,首先通過檢測峰值(peaks)將所有關鍵點提取出來。峰值的定義是熱點圖中所有得分超過閾值τp 的點。提取方法是設置一個3x3的窗口,找到窗口中的局部最大值。這個過程也就是ExtractPeak,提取極值點階段。

第一步的提取關鍵點階段,從上文定義的四張熱點圖中提取出四個極值點,t, b, r, l ,通過下列公式計算出中心點:

如果這個點c在中心熱點圖中有高響應,就認為這四個極值點是一個有效的檢測,高響應的評判標準是:

這只是一組極值點的檢測方法,下面要做的就是推廣開來,枚舉四類極值點所有可能的組合,重複上述檢測方法,演算法流程如下所示:

輸入:某類的4個極值點熱點圖和1個中心點熱點圖

輸出:bounding box的得分

主要流程概述:提取出的關鍵點,根據頂部點,底部點,左端點,右端點標準分為四個點集,從四個點集中各抽取一個點,共四個點,得到四個極值,計算幾何中心坐標,然後找到該中心坐標在中心點熱點圖中的得分,如果高於閾值,那麼這四個極值點組成的bounding box是有效地,返回一個最終得分,得分的計算方式是五個點得分的平均值。

*本文中, τp = 0.1,τc = 0.1

Center Grouping 演算法
  • Ghost box suppression(Ghost box抑制)

先解釋一下什麼是Ghost box。仔細想想Center grouping演算法,可能會出現這樣一種情況,中心分組可以對三個相同大小的等距共線目標進行高置信false-positive檢測。這時位於中間位置的對象有兩個選擇,一種是選擇正確的小框,另一種預測一個更大的框,裡面有它相鄰物體的極值點。把這種false-positive的形式稱為ghost boxes。為了消除這種錯誤,利用nms進行抑制,nms原先是用在消除重疊框上的,在這裡同樣有效。ghost box包含許多其他小的檢測對象,我們採用soft nms解決這個問題。若某個box所包含的所有框的分數和大於其自身的3倍,則最終分數除以2,這可以看做是一種懲罰,懲罰的對象是ghost box。

  • Edge aggregation(邊緣聚合)

有時候,極值點並不是唯一的,舉例來說,一輛汽車,可能頂部這一條類似於水平的線上,每一個位置都有可能成為最頂部的極值點。也就是說,若極點來自物體的垂直或水平邊,則沿邊緣任何一點都可被認為是極點。因此,我們的網路沿著對象的任何對齊邊緣產生弱響應,而不是單一的強峰值響應。這種弱響應有兩個不足:

  1. 弱響應點的得分可能會小於閾值,那麼極值點就會被錯過
  2. 即使檢測到了這些極值點,它的得分將低於具有強峰值響應的稍微旋轉的對象。

為了解決這個問題,提出了edge aggregation。對每一個取局部最大值得到的極值點,若是左邊和右邊的極值點,那麼選擇豎直方向進行聚合;同理,若是頂部,底部的極值點,則選擇從水平方向進行分數聚合。聚合的方法為:沿著聚合方向,聚合那些單調遞減的score,並在達到局部最小值的時候停止聚合。假定m為極值點,定義一個包含m點的水平線在heatmaps上的分數集:

由於m是極值點,極值點的選擇機制是局部最大原則,所以,需要在極值點m的左邊和右邊找到兩個局部最小值,記為i0和i1,應該滿足:

那麼,此時原始極值點m的更新為:

其中,λaggr 是聚合權重,在本文中,設置為0.1。

下圖是經過邊緣聚合後的效果圖:在原始heatmaps中,位於邊緣的極值點,反饋回一個很弱的響應值,但是經過邊緣聚合處理後,大大增強了中間像素的響應值。

Experiments

Conclusion

本文提出了一種基於自底向上極值點估計的目標檢測框架---ExtremeNet。框架提取了四個極值點,並以純粹的幾何方式將它們分組。實現了anchor-free且性能提升。

*原文中分割部分有詳細介紹,由於目前專註於目標檢測,故將大部分分割內容略去,請諒解

*如果您想獲取最新計算機視覺/多任務的論文解讀,歡迎關注我的專欄~

這次的推薦歌曲是校長非常細膩的一首歌曲《情緣巴士站》

情緣巴士站 - 譚詠麟 - 單曲 - 網易雲音樂?

music.163.com
圖標

完結,撒花~


推薦閱讀:
相关文章