訂閱
糾錯(cuò)
加入自媒體

技術(shù)文章:目標(biāo)檢測(cè)--CornerNet的缺陷

前言:

目標(biāo)檢測(cè)的預(yù)測(cè)框經(jīng)過(guò)了滑動(dòng)窗口、selective search、RPN、anchor based等一系列生成方法的發(fā)展,到18年開(kāi)始,開(kāi)始流行anchor free系列,CornerNet算不上第一篇anchor free的論文,但anchor freee的流行卻是從CornerNet開(kāi)始的,其中體現(xiàn)的一些思想仍值得學(xué)習(xí)。

看過(guò)公眾號(hào)以往論文解讀文章的讀者應(yīng)該能感覺(jué)到,以往論文解讀中會(huì)有不少我自己的話(huà)來(lái)表述,文章寫(xiě)得也很簡(jiǎn)練。但這篇論文的寫(xiě)作實(shí)在很好,以至于這篇解讀文章幾乎就是對(duì)論文的翻譯,幾乎沒(méi)有改動(dòng)。

論文提出了 CornerNet,這是一種新的目標(biāo)檢測(cè)方法,我們使用單個(gè)卷積神經(jīng)網(wǎng)絡(luò)將對(duì)象邊界框檢測(cè)為一對(duì)關(guān)鍵點(diǎn),即左上角和右下角。 通過(guò)將對(duì)象檢測(cè)為成對(duì)的關(guān)鍵點(diǎn),我們無(wú)需設(shè)計(jì)一組在先前單級(jí)檢測(cè)器中常用的錨框。 除了我們的新范式外,我們還引入了corner pooling,這是一種新型的池化層,可幫助網(wǎng)絡(luò)更好地定位角點(diǎn)。

實(shí)驗(yàn)表明,CornerNet 在 MS COCO 上實(shí)現(xiàn)了 42.1% 的 AP,優(yōu)于所有現(xiàn)有的單級(jí)檢測(cè)器。

image.png

關(guān)注公眾號(hào)CV技術(shù)指南,及時(shí)獲取更多計(jì)算機(jī)視覺(jué)的內(nèi)容。

論文出發(fā)點(diǎn)|anchor box的缺陷

目標(biāo)檢測(cè)中SOTA模型中一個(gè)常見(jiàn)組成部分是錨框,它是各種大小和縱橫比的框,用作檢測(cè)候選框。Anchor box廣泛應(yīng)用于one-stage檢測(cè)器中,可以在效率更高的情況下獲得與two-stages檢測(cè)器極具競(jìng)爭(zhēng)力的結(jié)果。one-stage檢測(cè)器將錨框密集地放置在圖像上,并通過(guò)對(duì)錨框進(jìn)行評(píng)分并通過(guò)回歸細(xì)化其坐標(biāo)來(lái)生成最終的框預(yù)測(cè)。

但是使用錨框有兩個(gè)缺點(diǎn)。

首先,我們通常需要一組非常大的錨框,例如 在 DSSD 中超過(guò) 40k,在 RetinaNet 中超過(guò) 100k。這是因?yàn)闄z測(cè)器被訓(xùn)練來(lái)對(duì)每個(gè)錨框是否與一個(gè)ground truth框充分重疊進(jìn)行分類(lèi),并且需要大量的anchor box來(lái)確保與大多數(shù)ground truth框有足夠的重疊。結(jié)果,只有一小部分錨框會(huì)與ground truth重疊; 這會(huì)造成正負(fù)錨框之間的巨大不平衡并減慢訓(xùn)練速度。

其次,錨框的使用引入了許多超參數(shù)和設(shè)計(jì)選擇。 這些包括多少個(gè)box、多大scale和多大aspect ratios。 這種選擇主要是通過(guò)臨時(shí)啟發(fā)式進(jìn)行的,當(dāng)與多尺度體系結(jié)構(gòu)相結(jié)合時(shí)會(huì)變得更加復(fù)雜,多尺度體系即單個(gè)網(wǎng)絡(luò)在多個(gè)分辨率下進(jìn)行單獨(dú)預(yù)測(cè),每個(gè)尺度使用不同的特征和自己的一組錨框。

methods

受到 Newell 等人提出的關(guān)聯(lián)嵌入方法的啟發(fā)。誰(shuí)在多人人體姿勢(shì)估計(jì)的背景下檢測(cè)和分組關(guān)鍵點(diǎn)。論文提出了 CornerNet,這是一種新的one-stage目標(biāo)檢測(cè)方法,無(wú)需錨框。

我們將一個(gè)對(duì)象檢測(cè)為一對(duì)關(guān)鍵點(diǎn)——邊界框的左上角和右下角。我們使用單個(gè)卷積網(wǎng)絡(luò)來(lái)預(yù)測(cè)同一對(duì)象類(lèi)別的所有實(shí)例的左上角的熱圖、所有右下角的熱圖以及每個(gè)檢測(cè)到的角的嵌入向量。嵌入用于對(duì)屬于同一對(duì)象的一對(duì)角進(jìn)行分組——網(wǎng)絡(luò)經(jīng)過(guò)訓(xùn)練以預(yù)測(cè)它們的相似嵌入。

這種方法極大地簡(jiǎn)化了網(wǎng)絡(luò)的輸出并消除了設(shè)計(jì)錨框的需要。

下圖說(shuō)明了方法的整體流程

經(jīng)典論文系列 | 目標(biāo)檢測(cè)--CornerNet & 又名 anchor boxes的缺陷

CornerNet 的另一個(gè)新穎組件是corner pooling,這是一種新型的池化層,可幫助卷積網(wǎng)絡(luò)更好地定位邊界框的角點(diǎn)。 邊界框的角通常在對(duì)象之外——考慮圓形的情況以及下面圖(中)示例。

經(jīng)典論文系列 | 目標(biāo)檢測(cè)--CornerNet & 又名 anchor boxes的缺陷

在這種情況下,不能基于局部證據(jù)來(lái)定位角。 相反,要確定像素位置是否有左上角,我們需要水平向右看對(duì)象的最上邊界,垂直向下看最左邊界。 基于這一點(diǎn),我們提出了corner pooling。

它輸入兩個(gè)特征圖; 在每個(gè)像素位置,它最大池化第一個(gè)特征圖右側(cè)的所有特征向量,最大池化第二個(gè)特征圖正下方的所有特征向量,然后將兩個(gè)合并的結(jié)果加在一起。

經(jīng)典論文系列 | 目標(biāo)檢測(cè)--CornerNet & 又名 anchor boxes的缺陷

我們假設(shè)檢測(cè)角點(diǎn)比邊界框中心或提案更有效的兩個(gè)原因。 首先,一個(gè)box的中心可能更難定位,因?yàn)樗Q于目標(biāo)的所有 4 個(gè)邊,而定位一個(gè)角取決于 2 個(gè)邊,因此更容易,對(duì)于corner pooling更是如此,它編碼了一些關(guān)于角的定義的明確的先驗(yàn)知識(shí)。 其次,角提供了一種更有效的方法來(lái)密集離散框的空間:我們只需要 O(wh) 個(gè)角來(lái)表示 O(wh)^2 個(gè)可能的錨框。

一些細(xì)節(jié)

整體實(shí)現(xiàn)

在 CornerNet 中,我們將一個(gè)對(duì)象檢測(cè)為一對(duì)關(guān)鍵點(diǎn)——邊界框的左上角和右下角。卷積網(wǎng)絡(luò)預(yù)測(cè)兩組熱圖來(lái)表示不同對(duì)象類(lèi)別的角的位置,一組用于左上角,另一組用于右下角。每組熱圖都有C個(gè)通道,C為類(lèi)別數(shù)量(不含背景),每個(gè)通道是關(guān)于一個(gè)類(lèi)別角點(diǎn)位置的二進(jìn)制掩碼。

該網(wǎng)絡(luò)還為每個(gè)檢測(cè)到的角點(diǎn)預(yù)測(cè)一個(gè)嵌入向量,使得來(lái)自同一對(duì)象的兩個(gè)角點(diǎn)的嵌入之間的距離很小。 為了產(chǎn)生更緊密的邊界框,網(wǎng)絡(luò)還預(yù)測(cè)偏移量以稍微調(diào)整角的位置。 使用預(yù)測(cè)的熱圖、嵌入和偏移量,我們應(yīng)用一個(gè)簡(jiǎn)單的后處理算法來(lái)獲得最終的邊界框。

經(jīng)典論文系列 | 目標(biāo)檢測(cè)--CornerNet & 又名 anchor boxes的缺陷

使用沙漏網(wǎng)絡(luò)作為 CornerNet 的骨干網(wǎng)絡(luò)。沙漏網(wǎng)絡(luò)之后是兩個(gè)預(yù)測(cè)模塊。一個(gè)模塊用于左上角,而另一個(gè)用于右下角。每個(gè)模塊都有自己的corner pooling模塊,用于在預(yù)測(cè)熱圖、嵌入和偏移之前從沙漏網(wǎng)絡(luò)中池化特征。 與許多其他目標(biāo)檢測(cè)器不同,我們不使用不同尺度的特征來(lái)檢測(cè)不同尺寸的物體。 我們只將這兩個(gè)模塊應(yīng)用于沙漏網(wǎng)絡(luò)的輸出。

對(duì)于每個(gè)Corner,有一個(gè)ground truth正位置,所有其他位置都是負(fù)位置。 在訓(xùn)練期間,我們不是對(duì)負(fù)位置進(jìn)行同等懲罰,而是減少對(duì)正位置半徑內(nèi)的負(fù)位置的懲罰。 這是因?yàn)橐粚?duì)錯(cuò)誤的角點(diǎn)檢測(cè),如果它們靠近各自的ground truth位置,仍然可以產(chǎn)生一個(gè)與ground truth框充分重疊的框。 我們通過(guò)對(duì)象的大小來(lái)確定半徑,方法是確保半徑內(nèi)的一對(duì)點(diǎn)將生成一個(gè)具有至少 t IoU 的邊界框,并帶有g(shù)round truth標(biāo)注。

Corners分組

使用“pull”損失訓(xùn)練網(wǎng)絡(luò)對(duì)角點(diǎn)進(jìn)行分組,使用“push”損失來(lái)分離角點(diǎn):

經(jīng)典論文系列 | 目標(biāo)檢測(cè)--CornerNet & 又名 anchor boxes的缺陷

Corner Pooling

經(jīng)典論文系列 | 目標(biāo)檢測(cè)--CornerNet & 又名 anchor boxes的缺陷

預(yù)測(cè)模塊

經(jīng)典論文系列 | 目標(biāo)檢測(cè)--CornerNet & 又名 anchor boxes的缺陷

沙漏網(wǎng)絡(luò)

CornerNet 使用沙漏網(wǎng)絡(luò)作為其骨干網(wǎng)絡(luò)。沙漏網(wǎng)絡(luò)首先被引入用于人體姿勢(shì)估計(jì)任務(wù)。它是一個(gè)完全卷積的神經(jīng)網(wǎng)絡(luò),由一個(gè)或多個(gè)沙漏模塊組成。沙漏模塊首先通過(guò)一系列卷積和最大池化層對(duì)輸入特征進(jìn)行下采樣。然后通過(guò)一系列上采樣和卷積層將特征上采樣回原始分辨率。由于最大池化層中的細(xì)節(jié)丟失,因此添加了跳過(guò)層以將細(xì)節(jié)帶回上采樣特征。沙漏模塊在單個(gè)統(tǒng)一結(jié)構(gòu)中捕獲全局和局部特征。當(dāng)多個(gè)沙漏模塊堆疊在網(wǎng)絡(luò)中時(shí),沙漏模塊可以重新處理特征以捕獲更高級(jí)別的信息。這些特性也使沙漏網(wǎng)絡(luò)成為目標(biāo)檢測(cè)的理想選擇。事實(shí)上,目前很多檢測(cè)器已經(jīng)采用了類(lèi)似于沙漏網(wǎng)絡(luò)的網(wǎng)絡(luò)。

結(jié)論

實(shí)驗(yàn)表明,CornerNet 在 MS COCO 上實(shí)現(xiàn)了 42.1% 的 AP,優(yōu)于所有現(xiàn)有的單級(jí)檢測(cè)器。

經(jīng)典論文系列 | 目標(biāo)檢測(cè)--CornerNet & 又名 anchor boxes的缺陷

Corner Pooling的消融實(shí)驗(yàn)

經(jīng)典論文系列 | 目標(biāo)檢測(cè)--CornerNet & 又名 anchor boxes的缺陷

本文來(lái)源于公眾號(hào) CV技術(shù)指南 的論文分享系列。

歡迎關(guān)注公眾號(hào) CV技術(shù)指南 ,專(zhuān)注于計(jì)算機(jī)視覺(jué)的技術(shù)總結(jié)、最新技術(shù)跟蹤、經(jīng)典論文解讀。

聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)