11種Anchor-free目標檢測綜述 -- Keypoint-based篇

極市導(dǎo)讀
anchor-free目標檢測算法分為兩種,一種是DenseBox為代表的Dense Prediction類型,另一種則是以CornerNet為代表的Keypoint-bsaed Detection類型,以檢測目標關(guān)鍵點為主。本文主要列舉幾種Keypoint-based Detection類型的網(wǎng)絡(luò)。 >>加入極市CV技術(shù)交流群,走在計算機視覺的最前沿
早期目標檢測研究以anchor-based為主,設(shè)定初始anchor,預(yù)測anchor的修正值,分為two-stage目標檢測與one-stage目標檢測,分別以Faster R-CNN和SSD作為代表。后來,有研究者覺得初始anchor的設(shè)定對準確率的影響很大,而且很難找到完美的預(yù)設(shè)anchor,于是開始不斷得研究anchor-free目標檢測算法,意在去掉預(yù)設(shè)anchor的環(huán)節(jié),讓網(wǎng)絡(luò)自行學(xué)習(xí)anchor的位置與形狀,在速度和準確率上面都有很不錯的表現(xiàn)。anchor-free目標檢測算法分為兩種,一種是DenseBox為代表的Dense Prediction類型,密集地預(yù)測的框的相對位置,另一種則是以CornerNet為代表的Keypoint-bsaed Detection類型,以檢測目標關(guān)鍵點為主。
本文主要列舉幾種Keypoint-based Detection類型的網(wǎng)絡(luò),主要涉及以下網(wǎng)絡(luò):
CornerNet ExtremeNet CenterNet CenterNet(Object as Point) CSP CornerNet-Lite RepPoints CentripetalNet SaccadeNet RepPointsV2 CPNDet
CornerNet
論文地址:https://arxiv.org/abs/1808.01244
論文代碼:https://github.com/princeton-vl/CornerNet
CornerNet將目標檢測定義為左上角點和右下角點的檢測。網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,通過卷積網(wǎng)絡(luò)預(yù)測出左上角點和右下角點的熱圖,然后將兩組熱圖組合輸出預(yù)測框,徹底去除了anchor box的需要。論文通過實驗也表明CornerNet與當前的主流算法有相當?shù)男阅埽_創(chuàng)了目標檢測的新范式。

CornerNet的結(jié)構(gòu)如圖4所示,使用hourglass網(wǎng)絡(luò)作為主干網(wǎng)絡(luò),通過獨立的兩個預(yù)測模塊輸出兩組結(jié)果,分別對應(yīng)左上角點和右下角點,每個預(yù)測模塊通過corner池化輸出用于最終預(yù)測的熱圖、embedding向量和偏移。
ExtremeNet
論文地址:https://arxiv.org/abs/1901.08043
論文代碼:https://github.com/xingyizhou/ExtremeNet

ExtremeNet通過檢測目標的四個極點進行目標定位,如圖1所示。整體算法基于CornerNet的思想進行改進,使用五張熱圖分別預(yù)測目標的四個極點以及中心區(qū)域,將不同熱圖的極點進行組合,通過組合的幾何中心在中心點熱圖上的值判斷組合是否符合要求。另外,ExtremeNet檢測的極點能夠配合DEXTR網(wǎng)絡(luò)進行目標分割信息的預(yù)測。
CenterNet
論文地址:https://arxiv.org/abs/1904.08189
論文代碼:https://github.com/Duankaiwen/CenterNet

CornerNet將目前常用的anchor-based目標檢測轉(zhuǎn)換為keypoint-based目標檢測,使用角點對表示每個目標,CornerNet主要關(guān)注目標的邊界信息,缺乏對目標內(nèi)部信息的獲取,很容易造成誤檢,如圖1所示。為了解決這個問題,論文提出CenterNet,在角點對的基礎(chǔ)上加入中心關(guān)鍵點組成三元組進行檢測,既能捕捉目標的邊界信息也能兼顧目標的內(nèi)部信息。另外,為了更好地提取特征,論文還提出了center pooling和cascade corner pooling,分別用于更好地提取中心關(guān)鍵點和角點。
CenterNet(Object as Point)
論文地址:https://arxiv.org/abs/1904.07850
論文代碼:https://github.com/xingyizhou/CenterNet

CenterNet算法將檢測目標視為關(guān)鍵點,先找到目標的中心點,然后回歸其尺寸。首先將輸入的圖片轉(zhuǎn)換成熱圖,熱圖中的高峰點對應(yīng)目標的中心,將高峰點的特征向量用于預(yù)測目標的高和寬,如圖2所示。在推理時,只需要簡單的前向計算即可,不需要NMS等后處理操作。對比上一篇同名的CenterNet算法,這個算法更簡潔且性能足夠強大,不需要NMS等后處理方法,能夠拓展到其它檢測任務(wù)中。
CSP

CSP的網(wǎng)絡(luò)結(jié)構(gòu)大致如圖1所示,在主干網(wǎng)絡(luò)上分別預(yù)測目標中心點的位置及其對應(yīng)的尺寸。這篇文章的整體思想與CenterNet(zhou. etc)基本一致,但不是抄襲,因為是同一個會議上的論文,CenterNet主要研究常規(guī)的目標檢測,而這篇主要研究人臉檢測和行人檢測。但CSP仍然需要進行NMS的后處理,較CenterNet更遜色一些,但不妨礙我們進行簡單地了解,包括學(xué)習(xí)論文的訓(xùn)練方法以及參數(shù)。
CornerNet-Lite
論文地址:https://arxiv.org/abs/1904.08900
論文代碼:https://github.com/princeton-vl/CornerNet-Lite
CornerNet作為Keypoint-based目標檢測算法中的經(jīng)典方法,雖然有著不錯的準確率,但其推理很慢,大約需要1.1s/張。雖然可以簡單地縮小輸入圖片的尺寸來加速推理,但這會極大地降低其準確率,性能比YOLOv3要差很多。為此,論文提出了兩種輕量級的CornerNet變種:CornerNet-Saccade和CornerNet-Squeeze。

CornerNet-Saccade在可能出現(xiàn)目標的位置的小區(qū)域內(nèi)進行目標檢測,首先通過縮小的完整圖片預(yù)測attention特征圖,獲得初步的預(yù)測框位置以及尺寸,然后在高分辨率圖片上截取以該位置為中心的圖片區(qū)域進行目標檢測。

在CornerNet中,大多數(shù)的計算時間花在主干網(wǎng)絡(luò)Hourglass-104的推理。為此,CornerNet-Squeeze結(jié)合SqueezeNet和MobileNet來減少Hourglass-104的復(fù)雜度,設(shè)計了一個新的輕量級hourglass網(wǎng)絡(luò)。
RepPoints
論文地址:https://arxiv.org/abs/1904.11490
論文代碼:https://github.com/microsoft/RepPoints
經(jīng)典的bounding box雖然有利于計算,但沒有考慮目標的形狀和姿態(tài),而且從矩形區(qū)域得到的特征可能會受背景內(nèi)容或其它的目標的嚴重影響,低質(zhì)量的特征會進一步影響目標檢測的性能。為了解決bounding box存在的問題,論文提出了RepPoints這種新型目標表示方法,能夠進行更細粒度的定位能力以及更好的分類效果。

RepPoints是一個點集,能夠自適應(yīng)地包圍目標并且包含局部區(qū)域的語義特征。論文基于RepPoints設(shè)計了anchor-free目標檢測算法RPDet,包含兩個識別階段。因為可變形卷積可采樣多個不規(guī)則分布的點進行卷積輸出,所以可變形卷積十分適合RepPoints場景,能夠根據(jù)識別結(jié)果的反饋進行采樣點的引導(dǎo)。
CentripetalNet
論文地址:https://arxiv.org/abs/2003.09119
論文代碼:https://github.com/KiveeDong/CentripetalNet
CornerNet打開了目標檢測的新方式,通過檢測角點進行目標的定位,在角點的匹配上,增加了額外embedding向量,向量距離較小的角點即為匹配。而論文認為,這種方法不僅難以訓(xùn)練,而且僅通過物體表面進行預(yù)測,缺乏目標的位置信息。

CentripetalNet的核心在于提出了新的角點匹配方式,額外學(xué)習(xí)一個向心偏移值,偏移后足夠近的角點即為匹配。如圖2所示,CentripetalNet包含四個模塊,分別為:
角點預(yù)測模塊(Corner Prediction Module):用于產(chǎn)生候選角點,這部分跟CornerNet一樣。 向心偏移模塊(Centripetal Shift Module):預(yù)測角點的向心偏移,并根據(jù)偏移結(jié)果將相近的角點成組。 十字星變形卷積(Cross-star Deformable Convolution):針對角點場景的變形卷積,能夠高效地增強角點位置的特征。 實例分割分支(Instance Mask Head):類似MaskRCNN增加實例分割分支,能夠提升目標檢測的性能以及增加實例分割能力。
SaccadeNet
論文地址:https://arxiv.org/abs/2003.12125
論文代碼:https://github.com/voidrank/SaccadeNet

SaccadeNet的結(jié)構(gòu)如圖2所示,首先初步預(yù)測目標的中心位置以及角點位置,然后利用四個角點位置以及中心點位置的特征進行回歸優(yōu)化。整體思想類似于two-stage目標檢測算法,將第二階段的預(yù)測框精調(diào)用的區(qū)域特征轉(zhuǎn)化為點特征,在精度和速度上都可圈可點,整體思想十分不錯。
RepPointsV2
論文地址:https://arxiv.org/abs/[2007.08508]
論文代碼:https://github.com/Scalsol/RepPointsV2

RepPointsV2的整體思想類似與Mask R-CNN,加入更多的任務(wù)來監(jiān)督目標檢測算法的學(xué)習(xí),具體的實現(xiàn)方法是在原網(wǎng)絡(luò)上加入輔助分支(auxiliary side-branches)的形式,有監(jiān)督地進行學(xué)習(xí),輔助分支能夠優(yōu)化中間特征以及進行聯(lián)合檢測。
CPNDet
論文地址:https://arxiv.org/abs/2007.13816
論文代碼:https://github.com/Duankaiwen/CPNDet

本文為CenterNet作者發(fā)表的,作者認為anchor-free方法通常會出現(xiàn)大量的誤檢,需要一個獨立的分類器來提升檢測的準確率。于是結(jié)合anchor-free方法和two-stage范式提出了Corner-Proposal-Network(CPN),完整的結(jié)構(gòu)如圖2所示。首先使用anchor-free方法提取關(guān)鍵點,遍歷關(guān)鍵點組合成候選框,最后使用兩個分類器分別對候選框進行誤檢過濾以及標簽預(yù)測。
本文亮點總結(jié)
如果覺得有用,就請分享到朋友圈吧!
公眾號后臺回復(fù)“秋招”獲取CV干貨資源匯總~

# CV技術(shù)社群邀請函 #

備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標檢測-深圳)
即可申請加入極市目標檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術(shù)交流群
每月大咖直播分享、真實項目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~

