SPP(spatial pyramid pooling)
在spp出來之前,所有神經網絡都是要輸入固定尺寸的圖檔,比如經常遇到的224×224,圖檔輸入網絡前都要resize到224×224,導緻圖檔變形,其中的資訊也變形了,進而限制了識别精度。而SPP和ASPP就是為了解決這個問題,它可以讓網絡輸入原圖而不必resize。空間池化層實際就是一種自适應的層,這樣無論你的輸入是什麼尺寸,輸出都是固定的(21xchannel)
SPP的顯著特點是:
- 不管輸入尺寸大小,SPP 可以産生固定尺寸的輸出
- 使用多個不同大小的pooling視窗
- SPP 可以使用同一圖像不同尺寸(scale)作為輸入, 得到同樣長度的池化特征。
ROI Pooling是針對RoIs的Pooling,其特點是輸入特征圖尺寸不固定,但是輸出特征圖尺寸固定。ROI Pooling的思想來自于SPPNet中的Spatial Pyramid Pooling,在Fast RCNN中使用時,将SPPNet中多尺度的池化簡化了為單尺度。
ASPP(Atrous spatial pyramid pooling)
在介紹ASPP之前,首先要介紹Atrous Convolution(空洞卷積),它是一種增加感受野的方法。空洞卷積是是為了解決基于FCN思想的語義分割中,輸出圖像的size要求和輸入圖像的size一緻而需要upsample,但由于FCN中使用pooling操作來增大感受野同時降低分辨率,導緻upsample無法還原由于pooling導緻的一些細節資訊的損失的問題而提出的。為了減小這種損失,自然需要移除pooling層,是以空洞卷積應運而生。
空洞卷積從字面上很好了解,是在标準的卷積中注入空洞,以此來增加感受野,相比原來的正常卷積,空洞卷積多了一個稱之為 dilation rate 的參數,指的是kernel的間隔數量(一般的卷積 dilation rate=1)。
- rate=1的空洞卷積,卷積核的感受野為3×3,其實就是普通的卷積。
- rate=2的空洞卷積,卷積核的感受野為7x7
- rate=4的空洞卷積,卷積核的感受野為15x15
空洞卷積的好處是不做pooling損失資訊的情況下,加大了感受野,讓每個卷積輸出都包含較大範圍的資訊。
PPM(Pyramid Pooling Module)
PPM是PSPNet中提出的一個子產品,PSPNET是用于語義分割的一個網絡。
現在大多數先進的語義分割架構大多數基于FCN,FCN不能有效的處理場景之間的關系和全局資訊。
一般來說網絡越深感受野越大(resceptive field),但是理論上的感受野和實際網絡中的感受野還是有差距的(實際的感受野小于理論的感受野),這使得網絡無法有效的融合全局特征資訊,作者提出的PPM就解決了這個問題。
GAP(Global Average Pooling,全局平均池化)能夠有效的融合全局上下文資訊,但是其對資訊的融合和提取能力有限,而且簡單的使用GAP将資訊壓縮為一個通道很容易損失很多有用的資訊,是以将不同感受野的特征和子區域的特征融合可以增強特征表征能力。
FPN(Feature Pyramid Networks for Object Detection)
FPN通常用在 object detection 網絡中,通常低層的特征語義資訊比較少,但是目标位置準确;高層的特征語義資訊比較豐富,但是目标位置比較粗略。FPN 即是對兩者進行了融合,同時利用低層特征高分辨率和高層特征的高語義資訊,通過融合這些不同層的特征達到預測的效果。并且預測是在每個融合後的特征層上單獨進行的,這和正常的特征融合方式不同。
多尺度檢測在目标檢測中變得越來越重要,對小目标的檢測尤其如此。現在主流的目标檢測方法很多都用到了多尺度的方法,包括最新的yolo v3。Feature Pyramid Network (FPN)則是一種精心設計的多尺度檢測方法,下面就開始簡要介紹FPN。
FPN結構中包括自下而上,自上而下和橫向連接配接三個部分,如下圖所示。這種結構可以将各個層級的特征進行融合,使其同時具有強語義資訊和強空間資訊,在特征學習中算是一把利器了。