訂閱
糾錯
加入自媒體

一文了解計算機視覺中的特征金字塔技術(shù)總結(jié)

前言:

特征金字塔是目前用于目標(biāo)檢測、語義分割、行為識別等方面比較重要的一個部分,對于提高模型性能具有非常好的表現(xiàn)。

不同大小的目標(biāo)都經(jīng)過了相同的降采樣比例后會出現(xiàn)較大的語義代溝,最常見的表現(xiàn)就是小目標(biāo)檢測精度比較低。特征金字塔具有在不同尺度下有不同分辨率的特點,不同大小的目標(biāo)都可以在相應(yīng)的尺度下?lián)碛泻线m的特征表示,通過融合多尺度信息,在不同尺度下對不同大小的目標(biāo)進行預(yù)測,從而很好地提升了模型的性能。

本文將介紹特征金字塔的兩種構(gòu)建方式,介紹目前特征金字塔的主要改進思路和方案,主要有:ASPP, FPN, PANet, RFB, ASFF, FPT, YOLOF等。

更多內(nèi)容請關(guān)注公眾號CV技術(shù)指南,專注于計算機視覺的技術(shù)總結(jié),最新技術(shù)跟蹤。

兩種構(gòu)建方式

1. 通過多次降采樣生成不同分辨率的層構(gòu)成,這種方式應(yīng)用比較廣,比較常見的應(yīng)用有SSD, FPN, YOLO_v3, ...此外還有很多。

2. 通過多條具有不同空洞率的空洞卷積的支路來構(gòu)建。目前這方面的應(yīng)用有ASPP, RFP等。

構(gòu)建金字塔只是個基礎(chǔ)操作,對于構(gòu)建后的處理才是重點,目前有多種多樣的方法去處理,這方面的改進主要有ASFF, PANet, FPT, YOLOF, BiFPN, STDN等。

ASPP(2017)

ASPP是基于第二種方式來構(gòu)建的,具體如下圖所示:

通過多支路后進行concate,再進行1x1卷積。這篇論文比較簡單,主要貢獻就是提出了這種構(gòu)建方式。

FPN(2017)

對于一般的神經(jīng)網(wǎng)絡(luò)都是采用圖b所示的方式來預(yù)測,通過對圖像多次降采樣,在最后一層進行預(yù)測,這種方式的缺點是對小目標(biāo)的檢測效果不好。

在SSD中采用了圖c的方式,利用前幾層的信息進行多尺度預(yù)測,這種方式的缺點是低層的語義信息不夠,而且SSD為了避免重復(fù)使用前面已經(jīng)卷積過的feature map,而從靠后的層(eg: conv4_3 of VGG nets )才開始構(gòu)建金字塔,這樣做的缺點就是金字塔的低層的分辨率也不夠,丟失了前面層高分辨率的信息,而那些才是對識別小目標(biāo)起重要作用的信息。

而FPN是目前應(yīng)用比較廣的一種方式,在圖C的基礎(chǔ)上增加了一條自上而下的路徑,主要目的就是解決前面三種方式存在的問題。通過自上而下的路徑,使得低層的feature map具有較好的語義信息。

這條路徑的實現(xiàn)方式如下圖所示。

注:FPN的效果非常好,但仍然存在不少改進的空間,后續(xù)會出現(xiàn)好幾篇論文逐一改進這些問題。

PANet(2018)

我在《CNN結(jié)構(gòu)演變總結(jié)(三)設(shè)計原則》(點擊進入)中提到,縮短信息流動路徑和增加不同分支來增加信息流動路徑的思想會產(chǎn)生比較強的性能,總結(jié)起來就是“split-transform-merge”和“feature reuse”,這也是這幾年神經(jīng)網(wǎng)絡(luò)的主要改進思想,幾乎可以說所有的改進方案都是基于這兩種思想。

在PANet同樣基于這一點,提出了在FPN中自上而下的路徑的基礎(chǔ)上增加了一條自下而上的路徑,具體如下圖所示。

具體路徑的實現(xiàn)方式如下圖所示,對lower level先進行步長為2,大小為3x3的卷積進行降采樣,再與鄰側(cè)同大小的level逐像 素相加,再進行3x3卷積,形成Ni+1。

在FPN中采用了分而治之的思想,所謂分而治之,就是對于大的目標(biāo)在金字塔高層檢測,小的目標(biāo)在金字塔低層檢測;谶@種思想的論文還有很多,例如YOLO_V3,根據(jù)數(shù)據(jù)集上的先驗提出了9個尺寸不同的候選框,根據(jù)這9個候選框的尺寸分別在不同的level上檢測。

PANet論文提出當(dāng)目標(biāo)大小相差超過10個像素的時候,就有可能被分到不同的level上檢測,而事實上這兩個目標(biāo)可能差不多,因此這種方式并不是最優(yōu)方案。

PANet論文的第二點貢獻是提出自適應(yīng)特征池化( Adaptive Feature Pooling)。

主要思想是將所有l(wèi)evel中產(chǎn)生的候選框中的信息,都用來參與預(yù)測。而不是大的目標(biāo)在higher level檢測,小的目標(biāo)在lower level檢測。

具體做法如下圖所示,使用ROIAlign將金字塔reshape到相同的大小,使用共享的一個全連接層對這四個level分別計算,再通過逐像素求和或取max的方式融合四個level到一個feature map。

RFB(2018)

RFB論文認(rèn)為ASPP使用不同空洞率的空洞卷積所組成的多分支結(jié)構(gòu)效果很好,但由于在使用之前,使用的是同尺寸的卷積核,導(dǎo)致每條分支產(chǎn)生的分辨率仍然是相同的,只是感受野不同而已。這樣的方式與雛菊型卷積核相比,產(chǎn)生的特征并不是那么明顯。

因此,RFB論文提出了Receptive Field Block,主要做法就是在進行空洞卷積前加一層不同大小的卷積層,分別是1x1, 3x3, 5x5這樣每條支路產(chǎn)生的分辨率不同。

這種方式的效果與其它方式的對比

ASFF(2019)

在FPN中這種分而治之除了在PANet中提到的一個問題是,當(dāng)一個大的目標(biāo)在higher level上檢測時,小的目標(biāo)在higher level是被當(dāng)作了background。同理,大目標(biāo)在lower level中被當(dāng)成了background,實際上在這些地方是存在目標(biāo)的,只是不在這一層檢測而已,因此這樣會存在較大的問題。

基于這個問題,ASFF提出了adaptively spatial feature fusion (ASFF)。主要思想是將每層的信息都相互融合起來。

具體操作是先對每一層進行1x1降維,對于第一和二,第二和第三層這種分辨率比為1:2的,通過3x3,步長為2的卷積降采樣,對于第一和第三層這種分辨率比為1:4的,先對進行max-pooling,再通過3x3,步長為2的卷積降采樣。然后通過系數(shù)加權(quán)融合。

該方法用于YOLO_v3,提高了大概5-10的mAP。

基于這種方式改進的還有Feature Pyramid Transformer。

FPT(2020)

這篇論文的主要觀點是認(rèn)為背景中其它物品的存在也會輔助識別某一個類別,例如電腦只會在電腦桌上,而不是大街上或水里,背景中的鼠標(biāo),鍵盤也會輔助區(qū)分電視機與電腦顯示器。因此需要融合金字塔其它level的信息,這雖然出發(fā)點與ASFF不同,但實際改進的思路都是一樣的,都是讓每一層都融合其它層的語義信息。

主要思想:利用Non Local Block的操作,以一層為query,其它每層為key,value,計算相似性,得出加權(quán)系數(shù),對該層進行加權(quán),每一層都進行這樣的操作。

具體在實現(xiàn)細(xì)節(jié)上有所區(qū)別,要介紹清楚實現(xiàn)操作比較費時,對Non Local Block也得解釋,因此這里只介紹個思路,關(guān)于這兩篇論文在公眾號《CV技術(shù)指南》中有詳細(xì)解讀,詳情請點擊下方鏈接。讀者可根據(jù)這兩篇論文了解transformer如何在CV中應(yīng)用,建議看一看。

《NLN: Non-Local Neural Network》

《FPT: Feature Pyramid Transformer》

YOLOF(2021)

YOLOF通過實驗得出結(jié)論在特征金字塔的C5層已經(jīng)有足夠的語義信息,融合其它層信息并不會帶來很大的精度提升,也就1的mAp,而使用分而治之的思想極為有效,可以提升大概12的mAP。

因此YOLOF提出只需要使用C5層信息,并仍然基于分而治之的思想。但由于使用max-iou的匹配方式,只在C5層預(yù)測會出現(xiàn)對大小不同的目標(biāo)生成的positive anchor數(shù)量不平衡的問題;分而治之存在計算量大,需要的內(nèi)存大,推理速度慢的問題。

基于這兩個問題,YOLOF提出Dialted encoder和Uniform Matching來實現(xiàn)在單層上進行預(yù)測,而這種預(yù)測可以做到仍然是基于分而治之的思想。

關(guān)于Dialted Encoder結(jié)構(gòu)如下:

主要操作是串聯(lián)四個不同空洞率的3x3空洞卷積,注意與ASPP,RFB不同的是,這里是串聯(lián),ASPP和RFB是多支路并聯(lián)。

Uniform Matching是使用最近鄰方式來匹配,替代了Max-IOU。具體方式是選擇GT boxes最近的K個boxes,這樣的方式不管GT boxes大小可以匹配相同數(shù)量的Boxes。

其它改進的特征金字塔

除了以上這些改進方案外,還存在一些其它的結(jié)構(gòu)或信息融合方式。這里只提個來源和結(jié)構(gòu)圖,感興趣的讀者請自行了解。

SFAM(2019)

來源于論文《M2Det: A Single-Shot Object Detector Based on Multi-Level Feature Pyramid Network》

STDN(2018)

來源于論文《Scale-Transferrable Object Detection》

BiFPN(2020)

來源于論文《EffificientDet: Scalable and Effificient Object Detection》

此外,還包括一些比較復(fù)雜的結(jié)構(gòu),如RFP,NAS-FPN。

總結(jié):本文介紹了特征金字塔的兩種構(gòu)建方式,特征金字塔的一些現(xiàn)有方案,主要都是圍繞金字塔如何更好地融合信息進行預(yù)測來改進。特征金字塔算是比較有用的一個結(jié)構(gòu),用在目標(biāo)檢測、語義分割等領(lǐng)域有較好的性能。

本文來源于公眾號CV技術(shù)指南的技術(shù)總結(jié)系列。

更多內(nèi)容請關(guān)注公眾號CV技術(shù)指南,專注于計算機視覺的技術(shù)總結(jié),最新技術(shù)跟蹤。

在公眾號《CV技術(shù)指南》中回復(fù)“特征金字塔”可獲取以上12篇論文。

參考論文

1.DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs

2.Feature Pyramid Networks for Object Detection

3.Path Aggregation Network for Instance Segmentation

4.Receptive Field Block Net for Accurate and Fast Object Detection

5.Learning Spatial Fusion for Single-Shot Object Detection

6.Feature Pyramid Transformer

7.You Only Look One-level Feature

8.M2Det: A Single-Shot Object Detector Based on Multi-Level Feature Pyramid Network

9.Scale-Transferrable Object Detection

10.EffificientDet: Scalable and Effificient Object Detection

11.DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution

12.NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標(biāo)題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號