編者按:深度學(xué)習(xí)知名博主Jonathan Hui簡(jiǎn)要介紹了FPN(特征金字塔網(wǎng)絡(luò))的直覺、架構(gòu)和表現(xiàn)。
檢測(cè)不同尺度的目標(biāo)(尤其是其中的小目標(biāo))很有挑戰(zhàn)性。我們可以使用同一圖像的不同尺度版本來檢測(cè)目標(biāo)(下圖左部)。然而,處理多尺度圖像很費(fèi)時(shí),內(nèi)存需求過高,難以同時(shí)進(jìn)行端到端訓(xùn)練。因此,我們可能只在推理階段使用這種方法,以盡可能提高精確度,特別是在競(jìng)賽之類不顧及速度的場(chǎng)景中。我們也可以創(chuàng)建特征金字塔來檢測(cè)目標(biāo)(下圖右部)。然而接近圖像的、由低層結(jié)構(gòu)組成的特征映射在精確目標(biāo)預(yù)測(cè)上效果不佳。
來源:FPN論文
特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,FPN)是為這一金字塔概念設(shè)計(jì)的特征提取器,設(shè)計(jì)時(shí)考慮到了精確性和速度。它代替了Faster R-CNN之類的檢測(cè)模型的特征提取器,生成多層特征映射(多尺度特征映射),信息的質(zhì)量比普通的用于特征檢測(cè)的特征金字塔更好。
數(shù)據(jù)流
來源:FPN論文
FPN由自底向上和自頂向下兩個(gè)路徑組成。自底向上的路徑是通常的提取特征的卷積網(wǎng)絡(luò)。自底向上,空間分辨率遞減,檢測(cè)更多高層結(jié)構(gòu),網(wǎng)絡(luò)層的語義值相應(yīng)增加。
FPN特征提?。ㄐ薷淖訤PN論文中的圖片)
SSD基于多個(gè)特征映射進(jìn)行檢測(cè)。然而,低層并不用于目標(biāo)檢測(cè)——這些層的分辨率很高,但語義值不夠高,因此,為了避免顯著的速度下降,目標(biāo)檢測(cè)時(shí)不使用這些層。因?yàn)镾SD檢測(cè)時(shí)僅適用高層,所以在小目標(biāo)上的表現(xiàn)要差很多。
修改自FPN論文中的圖片
而FPN提供了自頂向下的路徑,基于語義較豐富的層構(gòu)建分辨率較高的層。
修改自FPN論文中的圖片
盡管重建的層語義足夠豐富,但經(jīng)過這些下采樣和上采樣過程,目標(biāo)的位置不再準(zhǔn)確了。因此FPN在重建層和相應(yīng)的特征映射間增加了橫向連接,以幫助檢測(cè)器更好地預(yù)測(cè)位置。這些橫向連接同時(shí)起到了跳躍連接(skip connection)的作用(類似殘差網(wǎng)絡(luò)的做法)。
修改自FPN論文中的圖片
自底向上路徑
自底向上路徑由很多卷積模塊組成,每個(gè)模塊包含許多卷積層。自底向上的過程中,空間維度逐模塊減半(步長(zhǎng)翻倍)。每個(gè)卷積模塊的輸出將在自頂向下的路徑中使用。
自頂向下路徑
上圖中,F(xiàn)PN使用一個(gè)1x1的卷積過濾器將C5(最上面的卷積模塊)的頻道深度降至256維,得到M5。接著應(yīng)用一個(gè)3x3的卷積得到P5,P5正是用于目標(biāo)預(yù)測(cè)的第一個(gè)特征映射。
沿著自頂向下的路徑往下,F(xiàn)PN對(duì)之前的層應(yīng)用最近鄰上采樣(x2)。同時(shí),F(xiàn)PN對(duì)自底向上通路中的相應(yīng)特征映射應(yīng)用1x1卷積。接著應(yīng)用分素相加。最后同樣應(yīng)用3x3卷積得到目標(biāo)檢測(cè)的特征映射。這一過濾器減輕了上采樣的混疊效應(yīng)。
這一過程在P2后停止,因?yàn)镃1的空間維度太高了。如果不停,依法炮制得到P1的話,會(huì)大大拖慢進(jìn)程。
FPN搭配RPN
FPN自身并不是目標(biāo)檢測(cè)器,而是一個(gè)配合目標(biāo)檢測(cè)器使用的特征檢測(cè)器。例如,使用FPN提取多層特征映射后將其傳給RPN(基于卷積和錨的目標(biāo)檢測(cè)器)檢測(cè)目標(biāo)。RPN在特征映射上應(yīng)用3x3卷積,之后在為分類預(yù)測(cè)和包圍盒回歸分別應(yīng)用1x1卷積。這些3x3和1x1卷積層稱為RPN頭(head)。其他特征映射應(yīng)用同樣的RPN頭。
FPN搭配Fast R-CNN和Faster R-CNN
首先簡(jiǎn)短地概覽下Fast R-CNN和Faster R-CNN的數(shù)據(jù)流。它基于特征映射層創(chuàng)建ROI(感興趣區(qū)域)。然后使用ROI和特征映射層創(chuàng)建特征片,以傳給ROI池化。
FPN生成了特征映射金字塔后,應(yīng)用RPN(見上一節(jié))生成ROI。根據(jù)ROI的尺寸,選擇最合適的尺度上的特征映射以提取特征片。
基于ROI尺寸選擇特征映射的具體公式為:
其中,w和h為ROI的寬度和高度,k0= 4,k對(duì)應(yīng)FPN中的Pk層。
所以,如果k = 3,我們將選擇P3作為特征映射,應(yīng)用ROI池化,并將結(jié)果傳給Fast R-CNN/Faster R-CNN頭(兩者的頭一致),以完成預(yù)測(cè)。
分割
類似Mask R-CNN,F(xiàn)PN也是一個(gè)優(yōu)良的圖像分割提取掩碼。下圖中,應(yīng)用5x5的滑窗于特征映射,以生成14x14分割。之后,合并不同尺度的掩碼以形成最終的掩碼預(yù)測(cè)。
來源:FPN論文
結(jié)果
FPN搭配RPN,提升AR(average recall,平均召回)至56.3,相比RPN基線提升了8. 在小目標(biāo)上的提升更是達(dá)到了12.9.
來源:FPN論文
基于FPN的Faster R-CNN的推理時(shí)間為0.148秒/張(單Nvidia M40 GPU,ResNet-50),單尺度ResNet-50基線的速度是0.32秒/張。
來源:FPN論文
FPN和當(dāng)前最先進(jìn)的檢測(cè)器實(shí)力相當(dāng)。事實(shí)上,F(xiàn)PN擊敗了COCO 2016和2015挑戰(zhàn)的贏家。
來源:FPN論文
經(jīng)驗(yàn)總結(jié)
下面是從試驗(yàn)數(shù)據(jù)中總結(jié)出的一些經(jīng)驗(yàn)。
在單個(gè)高分辨率特征映射層上增加更多錨不足以提升精確度。
自頂向下路徑重建了富含語義信息的分辨率。
但我們需要橫向連接,以便將更多準(zhǔn)確的目標(biāo)空間信息加回來。
在COCO數(shù)據(jù)集上,自頂向下路徑和橫向連接將精確度提升了8。小目標(biāo)的提升達(dá)到了12.9.
-
檢測(cè)器
+關(guān)注
關(guān)注
1文章
864瀏覽量
47689 -
圖像
+關(guān)注
關(guān)注
2文章
1084瀏覽量
40470 -
數(shù)據(jù)流
+關(guān)注
關(guān)注
0文章
119瀏覽量
14359
原文標(biāo)題:特征金字塔網(wǎng)絡(luò)FPN的直覺與架構(gòu)
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論