博客專欄

EEPW首頁 > 博客 > Anchor-free目標檢測 | 工業(yè)應(yīng)用更友好的新網(wǎng)絡(luò)(3)

Anchor-free目標檢測 | 工業(yè)應(yīng)用更友好的新網(wǎng)絡(luò)(3)

發(fā)布人:CV研究院 時間:2021-09-16 來源:工程師 發(fā)布文章

貢獻:

1.通過檢測bbox的一對角點來檢測出目標。

2.提出corner pooling,來更好的定位bbox的角點。

19.png

上圖是top-left corner的 Corner Pooling過程。在水平方向,從最右端開始往最左端遍歷,每個位置的值都變成從最右到當前位置為止,出現(xiàn)的最大的值。同理,bottom-right corner的Corner Pooling則是最左端開始往最右端遍歷。同樣的,在垂直方向上,也是這樣同樣的Pooling的方式。

以左上角點為例,當我們決定此點是否個corner點的時候,往往會沿著水平的方向向右看,看看是否與物體有相切,還會沿著垂直方向向下看,看看是否與物體相切。簡而言之,其實corner點是物體上邊緣點和坐邊緣點的集合,因此在pooling的時候通過Corner Pooling的方式能夠一定程度上體現(xiàn)出當前點出發(fā)的射線是否與物體相交。

ExtremeNet:

20.jpg

作者使用了最佳的關(guān)鍵點估計框架,通過對每個目標類預(yù)測4個多峰值的heatmaps來尋找極值點。另外,作者使用每個類center heatmap來預(yù)測目標中心。僅通過基于幾何的方法來對極值點分組,如果4個極值點的幾何中點在center map上對應(yīng)的分數(shù)高于閾值,則這4個極值點分為一組。

offset的預(yù)測是類別無關(guān)的,而極值點的預(yù)測是類別相關(guān)的。對每種極值點heatmap,不包含center map,預(yù)測2張offset map(分別對應(yīng)XY軸方向)。網(wǎng)絡(luò)的輸出是5xC heatmaps和4x2offset maps,C是類別數(shù)。

分組算法的輸入是每個類的5個heatmaps,一個center heatmap和4個extreme heatmaps,通過檢測所有的峰值來提取出5個heatmaps的關(guān)鍵點。給出4個極值點,計算幾何中心,如果幾何中心在center map上對應(yīng)高響應(yīng),那么這4個極值點為有效檢測。作者使用暴力枚舉的方式來得到所有有效的4個關(guān)鍵點。

貢獻:

1.將關(guān)鍵點定義為極值點。

2.根據(jù)幾何結(jié)構(gòu)對關(guān)鍵點進行分組。

CornerNet和ExtremeNet的區(qū)別:

1.CornerNet通過預(yù)測角點來檢測目標的,而ExtremeNet通過預(yù)測極值點和中心點來檢測目標的。

2.CornerNet通過角點embedding之間的距離來判斷是否為同一組關(guān)鍵點,而ExtremeNet通過暴力枚舉極值點、經(jīng)過中心點判斷4個極值點是否為一組。

FSAF:

讓每個實例選擇最好的特征層來優(yōu)化網(wǎng)絡(luò),因此不需要anchor來限制特征的選擇。

21.jpg

一個anchor-free的分支在每個特征金字塔層構(gòu)建,獨立于anchor-based的分支。和anchor-based分支相似,anchor-free分支由分類子網(wǎng)絡(luò)和回歸子網(wǎng)絡(luò)。一個實例能夠被安排到任意層的anchor-free分支。訓(xùn)練期間,基于實例的信息而不是實例box的尺寸來動態(tài)地為每個實例選擇最合適的特征層。選擇的特征層學(xué)會檢測安排的實例。推理階段,F(xiàn)SAF模塊和anchor-based分支獨立或者聯(lián)合運行。

22.jpg

在RetinaNet的基礎(chǔ)上,F(xiàn)SAF模塊引入了2個額外的卷積層,這兩個卷積層各自負責anchor-free分支的分類和回歸預(yù)測。具體的,在分類子網(wǎng)絡(luò)中,feature map后面跟著K個3x3的卷積層和sigmoid,在回歸子網(wǎng)絡(luò)中,feature map后面跟著4個3x3的卷積層和ReLU。

23.jpg

實例輸入到特征金字塔的所有層,然后求得所有anchor-free分支focal loss和IoU loss的和,選擇loss和最小的特征層來學(xué)習(xí)實例。訓(xùn)練時,特征根據(jù)安排的實例進行更新。推理時,不需要進行特征更新,因為最合適的特征金字塔層自然地輸出高置信分數(shù)。

FCOS:

24.png

和語義分割相同,檢測器直接將位置作為訓(xùn)練樣本而不是anchor。具體的,如果某個位置落入了任何gt中,那么該位置就被認為是正樣本,并且類別為該gt的類別。基于anchor的檢測器,根據(jù)不同尺寸安排anchor到不同的特征層,而FCOS直接限制邊界框回歸的范圍(即每個feature map負責一定尺度的回歸框)。

Center-ness:

25.png

為了剔除遠離目標中心的低質(zhì)量預(yù)測bbox,作者提出了添加center-ness分支,和分類分支并行。

26.png

優(yōu)點:

1.將檢測和其他使用FCN的任務(wù)統(tǒng)一起來,容易重用這些任務(wù)的思想。

2.proposal free和anchor free,減少了超參的設(shè)計。

3.不使用trick,達到了單階段檢測的最佳性能。

4.經(jīng)過小的修改,可以立即拓展到其他視覺任務(wù)上。

FoveaBox:

人類眼睛的中央凹:視野(物體)的中心具有最高的視覺敏銳度。FoveaBox聯(lián)合預(yù)測對象中心區(qū)域可能存在的位置以及每個有效位置的邊界框。由于特征金字塔的特征表示,不同尺度的目標可以從多個特征層中檢測到。

27.jpg

FoveaBox添加了2個子網(wǎng)絡(luò),一個子網(wǎng)絡(luò)預(yù)測分類,另一個子網(wǎng)絡(luò)預(yù)測bbox。

Object Fovea:

28.jpg

目標的中央凹如上圖所示。目標中央凹只編碼目標對象存在的概率。為了確定位置,模型要預(yù)測每個潛在實例的邊界框。

FSAF、FCOS、FoveaBox的異同點:

1.都利用FPN來進行多尺度目標檢測。

2.都將分類和回歸解耦成2個子網(wǎng)絡(luò)來處理。

3.都是通過密集預(yù)測進行分類和回歸的。

4.FSAF和FCOS的回歸預(yù)測的是到4個邊界的距離,而FoveaBox的回歸預(yù)測的是一個坐標轉(zhuǎn)換。

5.FSAF通過在線特征選擇的方式,選擇更加合適的特征來提升性能,F(xiàn)COS通過center-ness分支剔除掉低質(zhì)量bbox來提升性能,F(xiàn)oveaBox通過只預(yù)測目標中心區(qū)域來提升性能。

總結(jié):

1.各種方法的關(guān)鍵在于gt如何定義

2.主要是基于關(guān)鍵點檢測的方法和密集預(yù)測的方法來做Anchor-Free

3.本質(zhì)上是將基于anchor轉(zhuǎn)換成了基于point/region

下一期我們詳細說說商湯的《CentripetalNet: Pursuing High-quality Keypoint Pairs for Object Detection》,基于向心偏移的anchor-free目標檢測網(wǎng)絡(luò)centripetalnet,為基于關(guān)鍵點的目標檢測方法研究帶來了新思路。

29.png

*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。

隔離器相關(guān)文章:隔離器原理
電流傳感器相關(guān)文章:電流傳感器原理


關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉