目标检测_目标检测: AnchorFree 时代
本文轉(zhuǎn)載自Smarter。
自從2018年8月CornerNet開(kāi)始,Anchor-Free的目標(biāo)檢測(cè)模型層出不窮,最近達(dá)到了井噴的狀態(tài),宣告著目標(biāo)檢測(cè)邁入了Anchor-Free時(shí)代。
其實(shí)Anchor-Free并不是一個(gè)新概念了,大火的YOLO算是目標(biāo)檢測(cè)領(lǐng)域最早的Anchor-Free模型,而最近的Anchor-Free模型如FASF、FCOS、FoveaBox都能看到DenseBox的影子。
下面主要講一下有代表性的Anchor-Free模型(包括DenseBox、YOLO、CornerNet、ExtremeNet、FSAF、FCOS、FoveaBox),分成3個(gè)部分來(lái)介紹(早期探索、基于關(guān)鍵點(diǎn)、密集預(yù)測(cè)),具體細(xì)節(jié)就不展開(kāi)了~早期探索
1.DenseBox
最早知道這篇文章,是在去年剛接觸目標(biāo)檢測(cè)的時(shí)候,看了一篇地平線對(duì)DenseBox作者的采訪,當(dāng)時(shí)因?yàn)閯偨佑|感觸不深,但是從當(dāng)前的時(shí)間節(jié)點(diǎn)回頭看,DenseBox的想法是多么的超前啊。采訪中說(shuō)道,當(dāng)年DenseBox其實(shí)早在2015年初就已經(jīng)開(kāi)發(fā)出來(lái)了,這比同期的Faster-RCNN系列提前數(shù)月,但是論文直到9月才在arxiv上發(fā)布。如果DenseBox能在2015年初就發(fā)表,那么最近幾年目標(biāo)檢測(cè)的發(fā)展會(huì)不會(huì)是另外一番景象呢~~
地平線HorizonRobotics:黃李超:讓算法成為一種生活方式 | 地平線算法工程師特稿 |?https://zhuanlan.zhihu.com/p/24350950
兩點(diǎn)貢獻(xiàn):
1.證明單個(gè)FCN可以檢測(cè)出遮擋嚴(yán)重、不同尺度的目標(biāo)。
2.通過(guò)多任務(wù)引入landmark localization,能進(jìn)一步提升性能。
如圖1所示,單個(gè)FCN同時(shí)產(chǎn)生多個(gè)預(yù)測(cè)bbox和置信分?jǐn)?shù)的輸出。測(cè)試時(shí),整個(gè)系統(tǒng)將圖片作為輸入,輸出5個(gè)通道的feature map。每個(gè)pixel的輸出feature map得到5維的向量,包括一個(gè)置信分?jǐn)?shù)和bbox邊界到該pixel距離的4個(gè)值。最后輸出feature map的每個(gè)pixel轉(zhuǎn)化為帶分?jǐn)?shù)的bbox,然后經(jīng)過(guò)NMS后處理。
Ground Truth Generation
第一個(gè)通道ground truth map的正標(biāo)簽區(qū)域由半徑為r的圓填充,圓的中心點(diǎn)位于bbox的中點(diǎn)。而剩下的4個(gè)通道由bbox的2個(gè)角點(diǎn)決定。
Refine with Landmark Localization
在FCN結(jié)構(gòu)中添加少量層能夠?qū)崿F(xiàn)landmark localization,然后通過(guò)融合landmark heatmaps和score map可以進(jìn)一步提升檢測(cè)結(jié)果。
2.YOLO
YOLO將目標(biāo)檢測(cè)作為一個(gè)空間分離的邊界框和相關(guān)的類概率的回歸問(wèn)題。可以直接從整張圖片預(yù)測(cè)出邊界框和分類分?jǐn)?shù)。
三個(gè)優(yōu)點(diǎn):
1.速度快
2.通過(guò)整幅圖進(jìn)行推理得到預(yù)測(cè)結(jié)果
3.能學(xué)到目標(biāo)的一般特征
Unified Detection
YOLO將輸入圖片分成SXS個(gè)網(wǎng)格,如果某個(gè)目標(biāo)的中心點(diǎn)落到其中一個(gè)格點(diǎn),那么該格點(diǎn)就負(fù)責(zé)該目標(biāo)的檢測(cè)。每個(gè)格點(diǎn)預(yù)測(cè)出B個(gè)bbox和每個(gè)bbox的置信分?jǐn)?shù)。
定義置信度為:
每個(gè)bbox由5個(gè)預(yù)測(cè)值組成:x,y,w,h 和 置信度。每個(gè)格點(diǎn)也預(yù)測(cè)C個(gè)類概率
測(cè)試的時(shí)候,將類概率和置信分?jǐn)?shù)相乘,得到類置信分?jǐn)?shù)
舉個(gè)例子,在Pascal VOC數(shù)據(jù)集上評(píng)估YOLO,使用S=7,B=2,VOC有20類,所以C=20,那么最終的預(yù)測(cè)結(jié)果是7x7x30的向量。
DenseBox和YOLO的區(qū)別:
1.DenseBox應(yīng)用于人臉檢測(cè),相當(dāng)于只有兩類,而YOLO是通用檢測(cè),通常大于兩類。
2.DenseBox是密集預(yù)測(cè),對(duì)每個(gè)pixel進(jìn)行預(yù)測(cè),而YOLO先將圖片進(jìn)行網(wǎng)格化,對(duì)每個(gè)grid cell進(jìn)行預(yù)測(cè)。
3.DenseBox的gt通過(guò)bbox中心圓形區(qū)域確定的,而YOLO的gt由bbox中心點(diǎn)落入的grid cell確定的。基于關(guān)鍵點(diǎn)
3.CornerNet
兩點(diǎn)貢獻(xiàn):
1.通過(guò)檢測(cè)bbox的一對(duì)角點(diǎn)來(lái)檢測(cè)出目標(biāo)。
2.提出corner pooling,來(lái)更好的定位bbox的角點(diǎn)。
Detecting Corners
首先預(yù)測(cè)出兩組heatmaps,一組為top-left角點(diǎn),另一組為bottom-right角點(diǎn)。每組heatmaps有C個(gè)通道,表示C個(gè)類別,尺寸為HxW。每個(gè)通道是一個(gè)binary mask,表示一個(gè)類的角點(diǎn)位置。
對(duì)于每個(gè)角點(diǎn)來(lái)說(shuō),只有一個(gè)gt正例位置,其他都為負(fù)例位置。訓(xùn)練時(shí),以正例位置為圓心,設(shè)置半徑為r的范圍內(nèi),減少負(fù)例位置的懲罰(采用二維高斯的形式),如上圖所示。
Grouping Corners
受到多人姿態(tài)估計(jì)論文的啟發(fā),基于角點(diǎn)embedding之間的距離來(lái)對(duì)角點(diǎn)進(jìn)行分組。
Corner Pooling
在每個(gè)pixel位置,最大池化第一個(gè)feature map右方的所有特征向量,最大池第二個(gè)feature map下方的所有特征向量,然后將兩個(gè)池化結(jié)果相加。
4.ExtremeNet
兩個(gè)貢獻(xiàn):
1.將關(guān)鍵點(diǎn)定義為極值點(diǎn)。
2.根據(jù)幾何結(jié)構(gòu)對(duì)關(guān)鍵點(diǎn)進(jìn)行分組。
作者使用了最佳的關(guān)鍵點(diǎn)估計(jì)框架,通過(guò)對(duì)每個(gè)目標(biāo)類預(yù)測(cè)4個(gè)多峰值的heatmaps來(lái)尋找極值點(diǎn)。另外,作者使用每個(gè)類center heatmap來(lái)預(yù)測(cè)目標(biāo)中心。僅通過(guò)基于幾何的方法來(lái)對(duì)極值點(diǎn)分組,如果4個(gè)極值點(diǎn)的幾何中點(diǎn)在center map上對(duì)應(yīng)的分?jǐn)?shù)高于閾值,則這4個(gè)極值點(diǎn)分為一組。
offset的預(yù)測(cè)是類別無(wú)關(guān)的,而極值點(diǎn)的預(yù)測(cè)是類別相關(guān)的。center map沒(méi)有offset預(yù)測(cè)。網(wǎng)絡(luò)的輸出是5xC heatmaps和4x2offset maps,C是類別數(shù)。
Center Grouping
分組算法的輸入是每個(gè)類的5個(gè)heatmaps,一個(gè)center heatmap和4個(gè)extreme heatmaps,通過(guò)檢測(cè)所有的峰值來(lái)提取出5個(gè)heatmaps的關(guān)鍵點(diǎn)。給出4個(gè)極值點(diǎn),計(jì)算幾何中心,如果幾何中心在center map上對(duì)應(yīng)高響應(yīng),那么這4個(gè)極值點(diǎn)為有效檢測(cè)。作者使用暴力枚舉的方式來(lái)得到所有有效的4個(gè)關(guān)鍵點(diǎn)。
CornerNet和ExtremeNet的區(qū)別:
1.CornerNet通過(guò)預(yù)測(cè)角點(diǎn)來(lái)檢測(cè)目標(biāo)的,而ExtremeNet通過(guò)預(yù)測(cè)極值點(diǎn)和中心點(diǎn)來(lái)檢測(cè)目標(biāo)的。
2.CornerNet通過(guò)角點(diǎn)embedding之間的距離來(lái)判斷是否為同一組關(guān)鍵點(diǎn),而ExtremeNet通過(guò)暴力枚舉極值點(diǎn)、經(jīng)過(guò)中心點(diǎn)判斷4個(gè)極值點(diǎn)是否為一組。密集預(yù)測(cè)
5.FSAF
Motivation
讓每個(gè)實(shí)例選擇最好的特征層來(lái)優(yōu)化網(wǎng)絡(luò),因此不需要anchor來(lái)限制特征的選擇。
一個(gè)anchor-free的分支在每個(gè)特征金字塔層構(gòu)建,獨(dú)立于anchor-based的分支。和anchor-based分支相似,anchor-free分支由分類子網(wǎng)絡(luò)和回歸子網(wǎng)絡(luò)。一個(gè)實(shí)例能夠被安排到任意層的anchor-free分支。訓(xùn)練期間,基于實(shí)例的信息而不是實(shí)例box的尺寸來(lái)動(dòng)態(tài)地為每個(gè)實(shí)例選擇最合適的特征層。選擇的特征層學(xué)會(huì)檢測(cè)安排的實(shí)例。推理階段,FSAF模塊和anchor-based分支獨(dú)立或者聯(lián)合運(yùn)行。
Feature Selective Anchor-Free Module
在RetinaNet的基礎(chǔ)上,FSAF模塊引入了2個(gè)額外的卷積層,這兩個(gè)卷積層各自負(fù)責(zé)anchor-free分支的分類和回歸預(yù)測(cè)。具體的,在分類子網(wǎng)絡(luò)中,feature map后面跟著K個(gè)3x3的卷積層和sigmoid,在回歸子網(wǎng)絡(luò)中,feature map后面跟著4個(gè)3x3的卷積層和ReLU。
Ground-truth
白色為有效區(qū)域,灰色為忽略區(qū)域,黑色為負(fù)樣本區(qū)域。
Online Feature Selection
實(shí)例輸入到特征金字塔的所有層,然后求得所有anchor-free分支focal loss和IoU loss的和,選擇loss和最小的特征層來(lái)學(xué)習(xí)實(shí)例。訓(xùn)練時(shí),特征根據(jù)安排的實(shí)例進(jìn)行更新。推理時(shí),不需要進(jìn)行特征更新,因?yàn)樽詈线m的特征金字塔層自然地輸出高置信分?jǐn)?shù)。
6.FCOS
四個(gè)優(yōu)點(diǎn):
1.將檢測(cè)和其他使用FCN的任務(wù)統(tǒng)一起來(lái),容易重用這些任務(wù)的思想。
2.proposal free和anchor free,減少了超參的設(shè)計(jì)。
3.不使用trick,達(dá)到了單階段檢測(cè)的最佳性能。
4.經(jīng)過(guò)小的修改,可以立即拓展到其他視覺(jué)任務(wù)上。
和語(yǔ)義分割相同,檢測(cè)器直接將位置作為訓(xùn)練樣本而不是anchor。具體的,如果某個(gè)位置落入了任何gt中,那么該位置就被認(rèn)為是正樣本,并且類別為該gt的類別。基于anchor的檢測(cè)器,根據(jù)不同尺寸安排anchor到不同的特征層,而FCOS直接限制邊界框回歸的范圍(即每個(gè)feature map負(fù)責(zé)一定尺度的回歸框)。
Center-ness
為了剔除遠(yuǎn)離目標(biāo)中心的低質(zhì)量預(yù)測(cè)bbox,作者提出了添加center-ness分支,和分類分支并行。
開(kāi)根號(hào)使center-ness衰退緩慢。center-ness范圍為0-1之間,通過(guò)BCE訓(xùn)練。測(cè)試時(shí),最終分?jǐn)?shù)由center-ness預(yù)測(cè)結(jié)果和分類分?jǐn)?shù)乘積得到。
7.FoveaBox
Motivation
人類眼睛的中央凹:視野(物體)的中心具有最高的視覺(jué)敏銳度。FoveaBox聯(lián)合預(yù)測(cè)對(duì)象中心區(qū)域可能存在的位置以及每個(gè)有效位置的邊界框。由于特征金字塔的特征表示,不同尺度的目標(biāo)可以從多個(gè)特征層中檢測(cè)到。
FoveaBox添加了2個(gè)子網(wǎng)絡(luò),一個(gè)子網(wǎng)絡(luò)預(yù)測(cè)分類,另一個(gè)子網(wǎng)絡(luò)預(yù)測(cè)bbox。
Object Fovea
目標(biāo)的中央凹如上圖所示。目標(biāo)中央凹只編碼目標(biāo)對(duì)象存在的概率。為了確定位置,模型要預(yù)測(cè)每個(gè)潛在實(shí)例的邊界框。
FSAF、FCOS、FoveaBox的異同點(diǎn):
1.都利用FPN來(lái)進(jìn)行多尺度目標(biāo)檢測(cè)。
2.都將分類和回歸解耦成2個(gè)子網(wǎng)絡(luò)來(lái)處理。
3.都是通過(guò)密集預(yù)測(cè)進(jìn)行分類和回歸的。
4.FSAF和FCOS的回歸預(yù)測(cè)的是到4個(gè)邊界的距離,而FoveaBox的回歸預(yù)測(cè)的是一個(gè)坐標(biāo)轉(zhuǎn)換。
5.FSAF通過(guò)在線特征選擇的方式,選擇更加合適的特征來(lái)提升性能,FCOS通過(guò)center-ness分支剔除掉低質(zhì)量bbox來(lái)提升性能,FoveaBox通過(guò)只預(yù)測(cè)目標(biāo)中心區(qū)域來(lái)提升性能。
(DenseBox、YOLO)和(FSAF、FCOS、FoveaBox)的異同點(diǎn):
1.都是通過(guò)密集預(yù)測(cè)進(jìn)行分類和回歸的。
2.(FSAF、FCOS、FoveaBox)利用FPN進(jìn)行多尺度目標(biāo)檢測(cè),而(DenseBox、YOLO)只有單尺度目標(biāo)檢測(cè)。
3.(DenseBox、FSAF、FCOS、FoveaBox)將分類和回歸解耦成2個(gè)子網(wǎng)絡(luò)來(lái)得到,而(YOLO)分類和定位統(tǒng)一得到。
總結(jié):
1.各種方法的關(guān)鍵在于gt如何定義
ps:關(guān)于這一點(diǎn)我稍加一點(diǎn)補(bǔ)充,目標(biāo)檢測(cè)的gt是一個(gè)矩形框,然而用這個(gè)矩形框信息來(lái)檢測(cè)目標(biāo)顯然是不合理的,因?yàn)榫匦慰騼?nèi)只有一小部分是目標(biāo),而剩下的是背景,這可能會(huì)導(dǎo)致檢測(cè)器的精度下降,而最近的一些anchor-free模型其實(shí)是改變了gt的定義,比如cornernet定義為角點(diǎn),extremenet定義為極值點(diǎn)和中心點(diǎn),FSAF、FoveaBox定義為矩形框的中間區(qū)域,FCOS雖然是矩形框,但是經(jīng)過(guò)center-ness抑制掉低質(zhì)量的框,其實(shí)也是一種變相的將gt定義為矩形框中心區(qū)域。gt重新定義之后,需要檢測(cè)的目標(biāo)語(yǔ)義變得更加明確了,有利于分類和回歸。
所以,我認(rèn)為設(shè)計(jì)合適的gt,是提升目標(biāo)檢測(cè)速度和精度的關(guān)鍵!
個(gè)人所見(jiàn),歡迎探討~
2.主要是基于關(guān)鍵點(diǎn)檢測(cè)的方法和密集預(yù)測(cè)的方法來(lái)做Anchor-Free
3.本質(zhì)上是將基于anchor轉(zhuǎn)換成了基于point/region
Reference【1】DenseBox: Unifying Landmark Localization with End to End Object Detection【2】You Only Look Once: Unified, Real-Time Object Detection【3】CornerNet: Detecting Objects as Paired Keypoints【4】Bottom-up Object Detection by Grouping Extreme and Center Points【5】Feature Selective Anchor-Free Module for Single-Shot Object Detection【6】FCOS: Fully Convolutional One-Stage Object Detection【7】FoveaBox: Beyond Anchor-based Object DetectorEND
備注:目標(biāo)檢測(cè)
目標(biāo)檢測(cè)交流群
2D、3D目標(biāo)檢測(cè)等最新資訊,若已為CV君其他賬號(hào)好友請(qǐng)直接私信。
我愛(ài)計(jì)算機(jī)視覺(jué)微信號(hào):aicvml
QQ群:805388940
微博知乎:@我愛(ài)計(jì)算機(jī)視覺(jué)
投稿:amos@52cv.net
網(wǎng)站:www.52cv.net
在看,讓更多人看到 ?
總結(jié)
以上是生活随笔為你收集整理的目标检测_目标检测: AnchorFree 时代的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql innodb表移植_mysq
- 下一篇: 临颖一高2021高考成绩查询,临颍一高举