1.定義
多尺度:所謂多尺度,實際上就是對信號的不同粒度的採樣,通常在不同的尺度下我們可以觀察到不同的特徵,從而完成不同的任務。通常來說粒度更小/更密集的採樣可以看到更多的細節,粒度更大/更稀疏的採樣可以看到整體的趨勢。
特徵融合:在深度學習的很多工作中(例如目標檢測、圖像分割),融合不同尺度的特徵是提高性能的一個重要手段。低層特徵分辨率更高,包含更多位置、細節信息,但是由於經過的卷積更少,其語義性更低,噪聲更多。高層特徵具有更強的語義信息,但是分辨率很低,對細節的感知能力較差。如何將兩者高效融合,取其長處,棄之糟泊,是改善分割模型的關鍵。很多工作通過融合多層來提升檢測和分割的性能,按照融合與預測的先後順序,分類爲早融合(Early fusion)和晚融合(Late fusion)。
早融合(Early fusion): 先融合多層的特徵,然後在融合後的特徵上訓練預測器(只在完全融合之後,才統一進行檢測)。這類方法也被稱爲skip connection,即採用concat、add操作。這一思路的代表是Inside-Outside Net(ION)和HyperNet。兩個經典的特徵融合方法:
(1)concat:系列特徵融合,直接將兩個特徵進行連接。兩個輸入特徵x和y的維數若爲p和q,輸出特徵z的維數爲p+q;
(2)add:並行策略,將這兩個特徵向量組合成復向量,對於輸入特徵x和y,z = x + iy,其中i是虛數單位。
晚融合(Late fusion):通過結合不同層的檢測結果改進檢測性能(尚未完成最終的融合之前,在部分融合的層上就開始進行檢測,會有多層的檢測,最終將多個檢測結果進行融合)。這一類研究思路的代表有兩種:
(1)feature不融合,多尺度的feture分別進行預測,然後對預測結果進行綜合,如Single Shot MultiBox Detector (SSD) , Multi-scale CNN(MS-CNN)
(2)feature進行金字塔融合,融合後進行預測,如Feature Pyramid Network(FPN)等。
2.常用架構
卷積神經網絡通過逐層抽象的方式來提取目標的特徵,其中一個重要的概念就是感受野。如果感受野太小,則只能觀察到局部的特徵,如果感受野太大,則獲取了過多的無效信息,因此研究人員一直都在設計各種各樣的多尺度模型架構,主要是圖像金字塔和特徵金字塔兩種方案,但是具體的網絡結構可以分爲以下幾種:(1) 多尺度輸入。(2) 多尺度特徵融合。(3) 多尺度特徵預測融合。(4) 以上方法的組合。
2.1多尺度輸入網絡
顧名思義,就是使用多個尺度的圖像輸入(圖像金字塔),然後將其結果進行融合。值得一提的是,多尺度模型集成的方案在提高分類任務模型性能方面是不可或缺的,許多的模型僅僅採用多個尺度的預測結果進行平均值融合,就能在ImageNet等任務中提升2%以上的性能。
2.2 多尺度特徵融合網絡
多尺度特徵融合網絡常見的有兩種,第一種是並行多分支網絡,第二種是串行的跳層連接結構,都是在不同的感受野下進行特徵提取。並行的結構能夠在同一層級獲取不同感受野的特徵,經過融合後傳遞到下一層,可以更加靈活地平衡計算量和模型能力。串行的結構將不同抽象層級的特徵進行融合,對於邊界敏感的圖像分割任務是不可缺少的。
(1) 並行多分支結構
①使用不同大小的卷積核
比如Inception網絡中的Inception基本模塊,包括有四個並行的分支結構,分別是1×1卷積,3×3卷積,5×5卷積,3×3最大池化,最後對四個通道進行組合。
②使用空洞卷積
還可以使用帶孔卷積來控制感受野。在圖像分割網絡Deeplab V3和目標檢測網絡trident networks中都使用了這樣的策略。
③使用不同大小的池化
還有一種比不同大小的卷積核和帶孔卷積計算代價更低的控制感受野的方法,即直接使用不同大小的池化操作,被PSPNet採用。
值得注意的是,這樣的多分支結構對於模型壓縮也是有益處的,以Big-little Net爲代表,它採用不同的尺度對信息進行處理。對於分辨率大的分支,使用更少的卷積通道,對於分辨率小的分支,使用更多的卷積通道,這樣的方案能夠更加充分地使用通道信息。
(2) 串行多分支結構
串行的多尺度特徵結構以FCN,U-Net爲代表,需要通過跳層連接來實現特徵組合,這樣的結構在圖像分割/目標檢測任務中是非常常見的。
2.3 多尺度特徵預測融合
即在不同的特徵尺度進行預測,最後將結果進行融合,以目標檢測中的SSD爲代表。SSD用不同stride在不同大小的特徵圖上進行預測。低層特徵圖stride較小,尺寸較大,感受野較小,期望能檢測到小目標。高層特徵圖stride較大,尺寸較小,感受野較大,期望能檢測到大目標。類似的思想還有SSH,從分辨率較大的特徵圖開始分爲多個分支,然後各個分支單獨預測不同尺度大小的目標。在多個特徵通道進行預測的思想與多個輸入的方案其實是異曲同工的,相當於在網絡計算過程中孫邊獲取了多個不同分辨率的圖像,因此它的計算效率更高。
2.4 多尺度特徵和預測融合
既然可以將不同尺度的特徵進行融合,也可以在不同的尺度進行預測,爲何不同時將這兩種機制一起使用呢?這樣的結構以目標檢測中的FPN爲代表。即將高層的特徵添加到相鄰的低層組合成新的特徵,每一層單獨進行預測。當然,也可以反過來將低層的特徵也添加到高層,比如PAN。當然,對於不同尺度的特徵圖的融合,還可以基於學習的融合方案。
3.具體方法
3.1 SNIP
(https://arxiv.org/abs/1711.08189)
SNIP是多尺度訓練(Multi-Scale Training)的改進版本。MST的思想是使用隨機採樣的多分辨率圖像使檢測器具有尺度不變特性。然而作者通過實驗發現,在MST中,對於極大目標和過小目標的檢測效果並不好,但是MST也有一些優點,比如對一張圖片會有幾種不同分辨率,每個目標在訓練時都會有幾個不同的尺寸,那麼總有一個尺寸在指定的尺寸範圍內。
SNIP的做法是只對size在指定範圍內的目標回傳損失,即訓練過程實際上只是針對某些特定目標(被放大的小物體或被縮小的大物體)進行,這樣就能減少映射遷移(domain-shift)帶來的影響。SNIP讓模型更專注於物體本身的檢測,剝離了多尺度的學習難題。在網絡搭建時,SNIP也使用了類似於MST的多尺度訓練方法,構建了3個尺度的圖像金字塔,但在訓練時,只對指定範圍內的Proposal進行反向傳播,而忽略掉過大或者過小的Proposal。(關於domain-shift,我的理解是檢測網絡的backbone通常是針對分類問題訓練得到的,相當於整張圖像爲檢測結果,SNIP通過只訓練特定大小範圍的圖像減少與backbone網絡的差別)
3.2 SNIPER(SNIP的改進)
(https://arxiv.org/abs/1805.09300)
SNIP借鑑了multi-scale training的思想進行訓練,multi-scale training是用圖像金字塔作爲模型的輸入,這種做法雖然能夠提高模型效果,但是計算量的增加也非常明顯,因爲模型需要處理每個scale圖像的每個像素,而SNIPER(Scale Normalization for Image Pyramids with Efficient Resampling)算法在特徵圖上的ground truth box周圍去crop一些圖片,這些圖片稱爲chips,在訓練期間每個圖像生成的chips的數量會根據場景複雜度而自適應地變化。chips主要分爲兩大類:一種是postivice chips,這些chips至少應該覆蓋一個groud-truth box;另一種是從RPN網絡輸出的ROI抽樣得到的negative chips,選擇negative chips的目的在於要讓網絡更容易去判斷出哪些是背景,而不必花費太多的時間在上面。這些chips相當於是難分類的背景,而那些容易分類的背景就沒必要進行多尺度訓練了。
3.3 SSD
SSD以不同stride的feature map作爲檢測層分別檢測不同尺度的目標,用戶可以根據自己的任務的目標尺度制定方案。該方式尺度處理簡單有效,但存在一些缺陷:
-
一般使用低層檢測小目標,但低層感受野小,上下文信息缺乏,容易引入誤檢;
-
使用簡單的單一檢測層多尺度信息略顯缺乏,很多任務目標尺度變化範圍十分明顯;
-
高層雖然感受野較大,但畢竟經過了很多次降採樣,大目標的語義信息是否已經丟失;
-
多層特徵結構,是非連續的尺度表達,是非最優的結果;
3.4 TridentNet(三叉戟網絡)
(https://arxiv.org/abs/1901.01892)
TridentNet網絡的作者將3種不同的感受野網絡並行化。採用ResNet作爲基礎Backbone,前三個stage沿用原始的結構,在第四個stage,使用了三個感受野不同的並行網絡。
(1)3個不同的分支使用了空洞數不同的空洞卷積,感受野由小到大,可以更好地覆蓋多尺度的物體分佈。
(2)由於3個分支要檢測的內容是相同的、要學習的特徵也是相同的,只不過是形成了不同的感受野來檢測不同尺度的物體,因此,3個分支共享權重,這樣既充分利用了樣本信息,學習到更本質的目標檢測信息,也減少了參數量與過擬合的風險。
(3)借鑑了SNIP的思想,在每一個分支內只訓練一定範圍內的樣本,避免了過大與過小的樣本對於網絡參數的影響。
在訓練時,TridentNet網絡的三個分支會接入三個不同的head網絡進行後續損失計算。在測試時,由於沒有先驗的標籤來選擇不同的分支,因此只保留了一個分支進行前向計算,這種前向方法只有少量的精度損失。
3.5 FPN
FPN(Feature Pyramid Network)算法同時利用低層特徵高分辨率和高層特徵的高語義信息,通過融合這些不同層的特徵達到預測的效果。並且預測是在每個融合後的特徵層上單獨進行的,這和常規的特徵融合方式不同。FPN將深層信息上採樣,與淺層信息逐元素地相加,從而構建了尺寸不同的特徵金字塔結構,性能優越,現已成爲目標檢測算法的一個標準組件。FPN的結構如下所示。
-
自下而上:最左側爲普通的卷積網絡,默認使用ResNet結構,用作提取語義信息。C1代表了ResNet的前幾個卷積與池化層,而C2至C5分別爲不同的ResNet卷積組,這些卷積組包含了多個Bottleneck結構,組內的特徵圖大小相同,組間大小遞減。
-
自上而下:首先對C5進行1×1卷積降低通道數得到P5,然後依次進行上採樣得到P4、P3和P2,目的是得到與C4、C3與C2長寬相同的特徵,以方便下一步進行逐元素相加。這裏採用2倍最鄰近上採樣,即直接對臨近元素進行復制,而非線性插值。
-
橫向連接(Lateral Connection):目的是爲了將上採樣後的高語義特徵與淺層的定位細節特徵進行融合。高語義特徵經過上採樣後,其長寬與對應的淺層特徵相同,而通道數固定爲256,因此需要對底層特徵C2至C4進行11卷積使得其通道數變爲256,然後兩者進行逐元素相加得到P4、P3與P2。由於C1的特徵圖尺寸較大且語義信息不足,因此沒有把C1放到橫向連接中。
-
卷積融合:在得到相加後的特徵後,利用3×3卷積對生成的P2至P4再進行融合,目的是消除上採樣過程帶來的重疊效應,以生成最終的特徵圖。
FPN對於不同大小的RoI,使用不同的特徵圖,大尺度的RoI在深層的特徵圖上進行提取,如P5,小尺度的RoI在淺層的特徵圖上進行提取,如P2。
FPN以更爲輕量的最近鄰插值結合側向連接實現了將高層的語義信息逐漸傳播到低層的功能,使得尺度更爲平滑,同時它可以看做是輕量級的decoder結構。FPN看起來很完美,但仍然有一些缺陷:
-
在上採樣時使用了比較粗糙的最近鄰插值,使得高層的語義信息不一定能有效傳播;
-
由於經過多次下采樣,最高層的感受野雖然很豐富,但可能已經丟失了小目標的語義信息,這樣的傳播是否還合適;
-
FPN的構建只使用了backbone的4個stage的輸出,其輸出的多尺度信息不一定足夠;
-
FPN中雖然傳播了強的語義信息到其他層,但對於不同尺度的表達能力仍然是不一樣的,因爲本身就提取了不同backbone的輸出。
3.6 PANet
(https://arxiv.org/abs/1803.01534)
爲了縮短信息路徑和用低層級的準確定位信息增強特徵金字塔,PANet在FPN基礎上創建了自下而上的路徑增強(圖 2b)。用於縮短信息路徑,利用low-level 特徵中存儲的精確定位信號,提升特徵金字塔架構。PANet創建自適應特徵池化(Adaptive feature pooling)( 圖 2c)。用於恢復每個候選區域和所有特徵層次之間被破壞的信息路徑,聚合每個特徵層次上的每個候選區域。PANet的目標檢測和實例分割共享網絡架構的圖 2 abc三部分,使得兩者性能均有提升。
3.7 其他
ThunderNet
(https://arxiv.org/pdf/1903.11752.pdf)
輕量型目標檢測框架,主要簡化了FPN結構,只使用C4/C5,同時引入gpooling操作(Face++論文好多這麼用,確實有效),最終輸出C4分辨率大小的累加特徵。網絡的檢測部分,利用了壓縮的RPN網絡,既Context Enhancement Module(CEM)整合局部和全局特徵增強網絡特徵表達能力。並提出Spatial Attention Module空間注意模塊,引入來自RPN的前後景信息用以優化特徵分佈。
Libra R-CNN
(https://arxiv.org/pdf/1904.02701.pdf)
無論是one-stage two-stage,都涉及選擇候選區域,特徵提取與融合、loss收斂。針對目標檢測的三個階段,論文提出三個問題:採樣的候選區域示範具有代表性,不同level特徵如何融合,以及損失函數如何更好收斂。論文針對三個問題提出三個改進方向:IoU-balanced Sampling;Balanced Feature Pyramid;Balanced L1 Loss。爲了更高效利用FPN特徵,論文使用4步改進rescaling, integrating, refining,Strengthening(如下圖所示):
a. rescaling。把{C2,C3 ,C5}的多層特徵均rescaling到C4尺寸,做加權求平均值。得到的特徵C rescaling返回到{C2,C3 ,C5}特徵分辨率。
b. Refining&strengthening。論文使用Gaussian non-local attention 增加特徵。
c. Indentity,既殘差設計。
參考: