ECCV2020 | CPNDet:Anchor-free+兩階段目標(biāo)檢測(cè)思想,先找關(guān)鍵點(diǎn)再分類(lèi)
點(diǎn)擊上方“小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)

這篇文章收錄于ECCV2020,是作者團(tuán)隊(duì)是:國(guó)科大、華為、華中科大、鵬城實(shí)驗(yàn)室。是一篇關(guān)于Anchor-free的兩階段目標(biāo)檢測(cè)網(wǎng)絡(luò),效果可達(dá)49.2%AP,在準(zhǔn)確率和召回率等性能上優(yōu)于CenterNet、FCOS等網(wǎng)絡(luò),并且模型的推理速度較快。整體的思路,可以說(shuō)有一點(diǎn)點(diǎn)無(wú)聊,不過(guò)當(dāng)作個(gè)水文看看還是可以的。
論文地址:https://arxiv.org/abs/2007.13816.pdf
代碼地址:https://github.com/Duankaiwen/CPNDet
通常,目標(biāo)檢測(cè)算法的目標(biāo)是確定圖像中目標(biāo)對(duì)象的類(lèi)別和位置。本文提出了一種新穎的anchor-free兩階段框架,該框架首先通過(guò)查找可能的角點(diǎn)關(guān)鍵點(diǎn)組合來(lái)提取多個(gè)候選目標(biāo)object proposals,然后通過(guò)獨(dú)立的分類(lèi)階段為每個(gè)候選object分配一個(gè)類(lèi)別標(biāo)簽。實(shí)驗(yàn)證明了這兩個(gè)階段分別是提高召回率和準(zhǔn)確率的有效解決方案,同時(shí)這兩個(gè)階段可以集成到端到端網(wǎng)絡(luò)中。本文的方法被稱(chēng)為“Corner Proposal Network (CPN)”,它具有檢測(cè)各種scales尺度的目標(biāo)的能力,并且還避免了被大量false-positive proposals所混淆。在MS-COCO數(shù)據(jù)集上,CPN的AP達(dá)到49.2%,在最新的目標(biāo)檢測(cè)方法中具有一定的競(jìng)爭(zhēng)力。同樣,CPN在AP達(dá)到41.6%/ 39.7%時(shí)有26.2 / 43.3FPS,推理速度性能同樣出色。
簡(jiǎn)介
目標(biāo)檢測(cè)方法的兩個(gè)關(guān)鍵點(diǎn)是找到具有不同幾何形狀的物體(即高召回率)以及為每個(gè)檢測(cè)到的物體分配一個(gè)準(zhǔn)確的標(biāo)簽(即高準(zhǔn)確率)。現(xiàn)有的目標(biāo)檢測(cè)方法大致是按照如何定位物體和如何確定其類(lèi)別來(lái)分類(lèi)的。對(duì)于第一個(gè)問(wèn)題,早期的研究工作大多是基于錨(anchor)的,即在圖像平面上放置一些尺寸固定的邊界框,而這種方法后來(lái)受到無(wú)錨(anchor-free)方法的挑戰(zhàn),該方法建議用一個(gè)或幾個(gè)關(guān)鍵點(diǎn)和幾何圖形來(lái)描繪每個(gè)目標(biāo)對(duì)象。通常,這些可能的目標(biāo)對(duì)象被命名為proposals(候選目標(biāo)),對(duì)于每一個(gè)目標(biāo)對(duì)象,類(lèi)別標(biāo)簽要么從之前的輸出中繼承,要么由為此訓(xùn)練的單個(gè)分類(lèi)器進(jìn)行驗(yàn)證。這就帶來(lái)了所謂的兩階段和單階段方法之間的爭(zhēng)論,其中人們傾向于認(rèn)為前者的工作速度較慢,但產(chǎn)生的檢測(cè)精度更高。
本文為目標(biāo)檢測(cè)算法的設(shè)計(jì)提供了另一種觀點(diǎn)。主要有兩個(gè)論點(diǎn):首先,檢測(cè)方法的召回率由其定位不同幾何形狀的對(duì)象(特別是形狀稀疏的對(duì)象)的能力決定,因此anchor-free方法(特別是對(duì)目標(biāo)對(duì)象邊界進(jìn)行定位的方法)的召回率性能可能更好;第二,anchor-free方法經(jīng)常會(huì)導(dǎo)致大量誤報(bào),于是可以在anchor-free方法中使用單個(gè)分類(lèi)器來(lái)提高檢測(cè)的準(zhǔn)確性,見(jiàn)圖1。因此,本文的方法繼承了anchor-free和兩階段目標(biāo)檢測(cè)方法的優(yōu)點(diǎn)。

圖1.現(xiàn)有物體檢測(cè)方法的典型錯(cuò)誤。第一行:基于anchor錨的方法(如Faster R-CNN)可能難以找到具有特殊形狀的物體(如尺寸非常大或長(zhǎng)寬比極端的物體)。第二行:anchor-free方法(如CornerNet)可能會(huì)錯(cuò)誤地將不相關(guān)的關(guān)鍵點(diǎn)歸入一個(gè)物體。綠色、藍(lán)色和紅色邊界框分別表示真陽(yáng)性、假陽(yáng)性和假陰性。
本文的方法被稱(chēng)為Corner Proposal Network(CPN)。它通過(guò)定位目標(biāo)的左上角和右下角,然后為其分配類(lèi)標(biāo)簽來(lái)檢測(cè)目標(biāo)對(duì)象。具體地,首先利用CornerNet的關(guān)鍵點(diǎn)檢測(cè)方法,并進(jìn)行改進(jìn),不是將關(guān)鍵點(diǎn)與關(guān)鍵點(diǎn)特征嵌入分組,而是將所有有效的Corner角點(diǎn)組合枚舉為可能的proposals目標(biāo)對(duì)象。這導(dǎo)致了大量的proposals,其中大多數(shù)是誤報(bào)。然后,訓(xùn)練一個(gè)分類(lèi)器,以根據(jù)相應(yīng)的區(qū)域特征從不正確配對(duì)的關(guān)鍵點(diǎn)中區(qū)分出真實(shí)目標(biāo)對(duì)象。分類(lèi)有兩個(gè)步驟,首先是一個(gè)二進(jìn)制分類(lèi)器,它過(guò)濾掉大部分proposals(即與目標(biāo)對(duì)象不對(duì)應(yīng)的proposals),然后,對(duì)篩選后的目標(biāo)對(duì)象重新排序類(lèi)別分?jǐn)?shù)。
CPN的有效性已在MS-COCO數(shù)據(jù)集上得到驗(yàn)證,具體使用104層堆疊式Hourglass網(wǎng)絡(luò)作為主干網(wǎng)絡(luò),CPN在COCO數(shù)據(jù)集上的AP為49.2%,比之前最好的anchor-free目標(biāo)檢測(cè)算法CenterNet 高2.2%。尤其,CPN在檢測(cè)具有特殊形狀(例如很大或很小的面積或極高長(zhǎng)寬比)的物體時(shí)具有更高的精度增益,這證明了使用anchor-free方法進(jìn)行proposals提取的優(yōu)勢(shì)。同時(shí),CPN使用較輕的主干網(wǎng)絡(luò)DLA-34 并在推理環(huán)節(jié)不使用圖像翻轉(zhuǎn)數(shù)據(jù)增強(qiáng)策略時(shí),在26.2 FPS時(shí)可達(dá)到41.6% AP,在43.3FPS時(shí)達(dá)到39.7% AP,在相同的推理速度是,性能超過(guò)了大多數(shù)的目標(biāo)檢測(cè)算法。
本文方法:CPNDet
作者首先討論了兩個(gè)問(wèn)題:使用基于anchor的方法還是不使用anchor的方法來(lái)提取候選目標(biāo)proposals,以及是使用一階段還是兩階段的方法來(lái)確定proposals的類(lèi)別,并進(jìn)行相關(guān)的對(duì)比實(shí)驗(yàn)。
1 Anchor-based or Anchor-free? One-stage or Two-stage?
首先研究anchor-based vs. anchor-free的方法?;赼nchor的方法首先在圖像上放置多個(gè)anchor作為候選區(qū)域,然后使用單獨(dú)的分類(lèi)器來(lái)判斷每個(gè)候選的目標(biāo)和類(lèi)別。大多數(shù)情況下,每個(gè)anchor都與圖像上的特定位置相關(guān)聯(lián),并且其大小是固定的,盡管bounding box的回歸過(guò)程可以稍微改變其幾何形狀。anchor-free的方法不假定目標(biāo)對(duì)象來(lái)自相對(duì)固定的幾何形狀的anchor,而是定位目標(biāo)的一個(gè)或幾個(gè)關(guān)鍵點(diǎn),然后確定其幾何形狀和(或)類(lèi)別。
本文的核心觀點(diǎn)是,anchor-free方法對(duì)任意幾何形狀的物體的定位具有較好的靈活性,因此具有較高的召回率。這主要是由于anchor的設(shè)計(jì)大多是經(jīng)驗(yàn)性的(例如,為了減少anchor的數(shù)量并提高效率,需要考慮常見(jiàn)的目標(biāo)物體尺寸和形狀),檢測(cè)算法的靈活性較低,形狀奇特的物體可能會(huì)被遺漏。典型例子如圖1所示,定量研究見(jiàn)表1。

主要對(duì)四種object proposal提取方法進(jìn)行了對(duì)比,并在MS-COCO驗(yàn)證數(shù)據(jù)集上進(jìn)行了評(píng)估。結(jié)果顯示,anchor-free方法通常具有更高的整體召回率,這主要是由于它們?cè)趦煞N情況下的優(yōu)勢(shì):首先,當(dāng)目標(biāo)對(duì)象非常大,例如,大于4002像素時(shí),基于anchor的方法Faster R-CNN將不會(huì)有更高的召回率。其次,當(dāng)物體的長(zhǎng)寬比變得特殊時(shí),如5 : 1和8 : 1,F(xiàn)aster R-CNN的召回率非常低,在這種情況下,召回率明顯低于CornerNet和CenterNet,因?yàn)闆](méi)有預(yù)定義的anchor可以適應(yīng)這些物體。在FCOS中也有類(lèi)似的現(xiàn)象,F(xiàn)COS是一種ancor-free的方法,它用一個(gè)關(guān)鍵點(diǎn)和到邊界的距離來(lái)表示一個(gè)目標(biāo)對(duì)象,但是當(dāng)邊界離中心很遠(yuǎn)時(shí),F(xiàn)COS通常很難預(yù)測(cè)一個(gè)準(zhǔn)確的距離。而CornerNet和CenterNet方法將角點(diǎn)(和中心)關(guān)鍵點(diǎn)歸為一個(gè)目標(biāo)object,它們?cè)谀撤N程度上擺脫了這個(gè)麻煩。因此,本文的方法選擇anchor方法,特別是點(diǎn)分組方法(CornerNet和CenterNet),以提高目標(biāo)檢測(cè)的召回率。同時(shí),本文的CPN繼承了CenterNet和CornerNet的優(yōu)點(diǎn),對(duì)物體的定位有更好的靈活性,尤其是形狀奇特的物體。
然而,anchor-free方法擺脫了尋找object proposal的約束,但它遇到的一大難題是如何在關(guān)鍵點(diǎn)和目標(biāo)對(duì)象之間建立緊密的關(guān)系,因?yàn)楹笳咄枰S富的語(yǔ)義信息。如圖1所示,缺乏語(yǔ)義信息會(huì)導(dǎo)致大量的誤報(bào),從而損害檢測(cè)的精度。
以具有高召回率的CornerNet和CenterNet為例。如表2所示,具有52層和104層Hourglass 網(wǎng)絡(luò)的CornerNet在MS-COCO驗(yàn)證數(shù)據(jù)集上實(shí)現(xiàn)了37.6%和41.0%的AP,而很多檢測(cè)到的 "目標(biāo) "都是假陽(yáng)性false positives。無(wú)論是當(dāng)刪除object proposal,還是給每個(gè)預(yù)備的object proposal分配一個(gè)正確的標(biāo)簽,檢測(cè)精度都會(huì)顯著上升。這個(gè)結(jié)果在CenterNet上也是成立的,它增加了一個(gè)中心點(diǎn)來(lái)過(guò)濾掉假陽(yáng)性樣本,但顯然沒(méi)有把它們?nèi)縿h除。為了進(jìn)一步緩解這個(gè)問(wèn)題,本文的方法需要繼承兩階段方法的優(yōu)點(diǎn),即提取proposal內(nèi)的特征,并訓(xùn)練一個(gè)分類(lèi)器來(lái)過(guò)濾掉假陽(yáng)性樣本。

2 The Framework of Corner Proposal Network
基于以上分析,本文的方法旨在整合anchor-free方法的優(yōu)勢(shì),并通過(guò)利用兩階段目標(biāo)檢測(cè)方法的區(qū)分機(jī)制來(lái)減輕其缺點(diǎn)。基于此,提出了一個(gè)名為Corner-Proposal-Network(CPN)的新框架。它使用anchor-free方法提取object proposal,然后進(jìn)行有效的區(qū)域特征計(jì)算和分類(lèi)以濾除誤報(bào)。圖2顯示了包含兩個(gè)階段的總體流程,下面詳細(xì)介紹了這兩個(gè)階段的細(xì)節(jié)。

Stage 1: Anchor-free Proposals with Corner Keypoints
第一階段是anchor-free proposals提取過(guò)程,我們假設(shè)每個(gè)目標(biāo)對(duì)象由兩個(gè)關(guān)鍵點(diǎn)決定其左上角和右下角的位置。具體地,采用CornerNet來(lái)定位一個(gè)目標(biāo)對(duì)象,一對(duì)關(guān)鍵點(diǎn)分別位于其左上角和右下角。對(duì)于每個(gè)類(lèi),計(jì)算出兩個(gè)熱圖heatmap(即左上角熱圖和右下角熱圖,熱圖上的每個(gè)值表示對(duì)應(yīng)位置出現(xiàn)角關(guān)鍵點(diǎn)的概率),與原始圖像相比,分辨率降低了4倍。heat map有兩個(gè)損失項(xiàng),即Focal損失用于定位熱圖上的關(guān)鍵點(diǎn),以及偏移損失用于學(xué)習(xí)其與精確角位置的偏移。在計(jì)算完熱圖后,從所有熱圖中提取固定數(shù)量的關(guān)鍵點(diǎn)(K左上角和K右下角)。每個(gè)角關(guān)鍵點(diǎn)都有一個(gè)類(lèi)標(biāo)簽。CornerNet具體解析可以參考本公眾號(hào)文章:目標(biāo)檢測(cè)秘籍六:Anchor-free網(wǎng)絡(luò)。
接下來(lái),通過(guò)每個(gè)有效的關(guān)鍵點(diǎn)對(duì)來(lái)定義一個(gè)object proposal。在這里,有效的意思是指兩個(gè)關(guān)鍵點(diǎn)屬于同一類(lèi)(即,從相同類(lèi)的左上角熱圖和右下角熱圖中提?。?/strong>,并且左上角的x坐標(biāo)小于右下角的x坐標(biāo)。但,這會(huì)導(dǎo)致每個(gè)圖像上出現(xiàn)大量誤報(bào)(錯(cuò)誤配對(duì)的角關(guān)鍵點(diǎn)),我們將區(qū)分和分類(lèi)這些proposal的任務(wù)留給了第二階段。
盡管本文的方法基于CornerNet來(lái)提取object proposal,但是確定目標(biāo)對(duì)象及其類(lèi)別等后續(xù)機(jī)制卻大不相同。CornerNet通過(guò)將關(guān)鍵點(diǎn)投射到一維空間來(lái)生成目標(biāo)對(duì)象,并將緊密嵌入的關(guān)鍵點(diǎn)分組到同一實(shí)例中。我們認(rèn)為,embedding 過(guò)程雖然在不使用額外計(jì)算的假設(shè)下是必要的,但在配對(duì)關(guān)鍵點(diǎn)時(shí)可能會(huì)產(chǎn)生重大錯(cuò)誤。特別是,不能保證embedding 函數(shù)(給每個(gè)目標(biāo)對(duì)象分配一個(gè)數(shù)字)是可學(xué)習(xí)的,更重要的是,損失函數(shù)只在每個(gè)訓(xùn)練圖像中起作用,以迫使不同目標(biāo)對(duì)象的embedding number被分離,但這種機(jī)制往往不能通用于看不見(jiàn)的場(chǎng)景,例如,即使多個(gè)訓(xùn)練圖像簡(jiǎn)單地連在一起,在單獨(dú)的圖像上工作良好的embedding 函數(shù)也會(huì)急劇失效。不同的是,本文的方法使用單獨(dú)的分類(lèi)器確定目標(biāo)對(duì)象實(shí)例,從而充分利用內(nèi)部特征來(lái)提高準(zhǔn)確性。
Stage 2: Two-step Classification for Filtering Proposals
由于關(guān)鍵點(diǎn)熱圖的高分辨率和靈活的關(guān)鍵點(diǎn)分組機(jī)制,檢測(cè)到的目標(biāo)對(duì)象可以具有任意形狀,并且召回率上限大大提高。但是,這種策略增加了proposal的數(shù)量,因此帶來(lái)了兩個(gè)問(wèn)題:大量的誤報(bào)以及過(guò)濾掉它們的計(jì)算成本。為解決此問(wèn)題,第二階段設(shè)計(jì)了一種有效的兩步分類(lèi)方法,該方法首先使用輕量級(jí)二進(jìn)制分類(lèi)器刪除80%的proposal,然后應(yīng)用細(xì)分類(lèi)器確定每個(gè)幸存proposal的分類(lèi)標(biāo)簽。
分類(lèi)方法第一步:訓(xùn)練一個(gè)二進(jìn)制分類(lèi)器,以確定每個(gè)proposal是否是一個(gè)目標(biāo)對(duì)象。為此,首先采用卷積核大小為7×7的RoIAlign 來(lái)提取每個(gè)proposal上的box特征(見(jiàn)圖2)。然后使用一個(gè)32×7×7的卷積層以獲得每個(gè)proposal的分類(lèi)分?jǐn)?shù)?;诖?,構(gòu)建了一個(gè)二進(jìn)制分類(lèi)器,損失函數(shù)為:

分類(lèi)方法第二步:為每個(gè)存活的proposal分配一個(gè)類(lèi)別標(biāo)簽,這一步非常重要,因?yàn)榕c角點(diǎn)關(guān)鍵點(diǎn)相關(guān)聯(lián)的類(lèi)標(biāo)簽并不總是可靠的,由于ROI區(qū)域信息的缺乏,各個(gè)角點(diǎn)之間的共識(shí)可能是不正確的,所以需要一個(gè)更強(qiáng)大的分類(lèi)器,結(jié)合ROI特征來(lái)做出最終的決定。為此,在第二步提出了另一個(gè)分類(lèi)器,這個(gè)分類(lèi)器是建立在第一步提取的RoI Align特征的基礎(chǔ)上,同時(shí)是從類(lèi)別特征圖中提取特征(見(jiàn)圖2)以保存更多的信息,并通過(guò)256×7×7卷積層,得到一個(gè)表示類(lèi)別的向量,為每一個(gè)存活的proposal建立單獨(dú)的分類(lèi)器。損失函數(shù)為:

DeNet (《Denet: Scalable real-time object detection withdirected sparse sampling》)和本文的方法之間的差異,盡管它們?cè)谒枷雽用嫔鲜窍嗨频摹J紫?,本?strong>為每個(gè)角點(diǎn)配備一個(gè)多類(lèi)別標(biāo)簽而不是一個(gè)二進(jìn)制標(biāo)簽,因此本文的方法可以依靠類(lèi)別標(biāo)簽消除不必要的無(wú)效角點(diǎn)對(duì),以節(jié)省整個(gè)框架的計(jì)算成本;其次,本文使用一種額外的輕量級(jí)二進(jìn)制分類(lèi)方法減少分類(lèi)網(wǎng)絡(luò)要處理的proposal數(shù)量,而DeNet僅依賴(lài)一個(gè)分類(lèi)網(wǎng)絡(luò)。最后,本文的方法為兩個(gè)分類(lèi)器設(shè)計(jì)了一種新的focal損失函數(shù)變體,它不同于DeNet中的最大似然函數(shù),這主要是為了解決訓(xùn)練過(guò)程中正樣本和負(fù)樣本之間的不平衡問(wèn)題。
數(shù)據(jù)集:MS-COCO dataset
評(píng)價(jià)指標(biāo):average precision (AP)、 ten ?IoU ?thresholds ?(i.e., ?0.5 ?:? 0.05 ?:? 0.95)
Baseline:CornerNet ?and CenterNet
1、對(duì)比實(shí)驗(yàn)
?
2、消融實(shí)驗(yàn)



3、推理速度

4、可視化

更多細(xì)節(jié)可參考論文原文。

