ESPNet系列的核心在於空洞卷積金字塔,每層具有不同的dilation rate,在參數量不增加的情況下,能夠融合多尺度特征,相對於深度可分離卷積,深度可分離空洞卷積金字塔性價比更高。另外,HFF的多尺度特征融合方法也很值得借鑒
來源:曉飛的算法工程筆記 公眾號
ESPNet
論文: ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation

Introduction
ESPNet是用於語義分割的輕量級網絡,核心在於ESP模塊,該模塊包含point-wise卷積和空洞卷積金字塔,分別用於降低計算復雜度以及重采樣各有效感受域的特征。ESP模塊比其它卷積分解方法(mobilenet/shufflenet)更高效,ESPNet能在GPU/筆記本/終端設備上達到112FPS/21FPS/9FPS。
ESP module

ESP模塊將標准卷積分解成point-wise卷積和空洞卷積金字塔(spatial pyramid of dilated convolutions),point-wise卷積將輸入映射到低維特征空間,空洞卷積金字塔使用$K$組$n\times n$空洞卷積同時重采樣低維特征,每個空洞卷積的dilation rate為$2^{k-1}$,$k={1, \cdots, K}$。這種分解方法能夠大量減少ESP模塊的參數量和內存,並且保持較大的有效感受域。
-
Width divider K
對於輸入輸出維度為$M$和$N$,卷積核大小為$n\times n$的標准卷積,需要學習的參數量為$n2MN$,有效感受域為$n2$。超參數$K$用來調節ESP模塊的計算復雜度,首先使用point-wise卷積將輸入維度從$M$降為$\frac{N}{K}$(reduce),然后將低維特征分別使用上述的空洞卷積金字塔進行處理(split and transform),最后將K組空洞卷積的輸出合並(merge)。ESP模塊包含$\frac{MN}{K}+\frac{(nN)2}{K}$參數,有效感受域為$[(n-1)2{K-1} + 1]^2$,在參數和感受域方面都有一定的提升。
-
Hierarchical feature fusion (HFF) for de-gridding

論文發現,盡管空洞卷積金字塔帶來更大的感受域,但直接concate輸出卻會帶來奇怪網格紋路,如圖2所示。為了解決這個問題,在concate之前先將輸出進行層級相加,相對於添加額外的卷積來進行后處理,HFF能夠有效地解決網格紋路而不帶來過多的計算量。另外,為了保證網絡的梯度傳遞,在ESP模塊添加了一條從輸入到輸出的shortcut連接。
Relationship with other CNN modules

論文列舉了部分輕量級網絡的核心模塊進行了對比,可以看到ESP模塊在參數量/內存/感受域方面都有很不錯的數值。
ESPNet

圖4為ESPNet的演進過程,$l$為特征圖大小,相同$l$的模塊具有相同大小的特征圖,紅色和綠色模塊分別為下采樣和上采樣模塊,一般無說明即$\alpha_2=2$、$\alpha_3=8$。
Experiments
這里只列舉了部分實驗,具體的其它實驗可以去看看論文。

替換圖4d中的ESP模塊進行實驗對比。

與其它語義分割模型進行對比。
Conclusion
ESPNet是語義分割的輕量級網絡,在保證輕量化的同時,針對語義分割的場景進行了核心模塊的設計,使用空洞卷積金字塔進行多感受域的特征提取以及參數量的減少,並且使用HFF來巧妙消除網格紋路,十分值得借鑒。
ESPNetV2
論文: ESPNetv2: A Light-weight, Power Efficient, and General Purpose Convolutional Neural Network

Introduction
模型輕量化共包含3種方法,分別為模型壓縮,模型量化以及輕量化設計。論文設計了輕量級網絡ESPNetv2,主要貢獻如下:
- 通用的輕量化網絡結構,能夠支持視覺數據以及序列化數據,即能支持視覺任務和自然語言處理任務。
- 在ESPNet基礎上,加入深度可分離空洞卷積進行拓展,相對於ESPNet擁有更好的精度以及更少的參數。
- 從實驗來看,ESPNetv2在多個視覺任務上有較好的准確率和較低的參數量,任務包括圖像分類、語義分割、目標檢測。
- 設計了cyclic learning rate scheduler,比一般的固定學習率的scheduler要好。
Depth-wise dilated separable convolution

假設輸入為$X\in \mathbb{R}^{W\times H\times c}$,卷積核為$X\in \mathbb{K}^{n\times n\times c \times \hat{c}}$,輸出為$Y\in \mathbb{R}^{W\times H\times \hat{c}}$,標准卷積、分組卷積,深度分離卷積以及深度可分離空洞卷積的參數量和有效感受域如表1所示。
EESP unit

論文基於深度可分離空洞卷積以及分組point-wise卷積改進ESP模塊,提出了EESP(Extremely Efficient Spatial Pyramid)模塊。原始的ESP模塊結構如圖1a所示,論文首先將point-wise卷積替換為分組point-wise卷積,然后將計算量較大的空洞卷積替換為深度可分離空洞卷積,最后依然使用HFF來消除網格紋路,結構如圖1b所示,能夠降低$\frac{Md+n2d2K}{\frac{Md}{g}+(n^2+d)dK}$倍計算復雜度,$K$為空洞卷積金字塔層數。考慮到單獨計算$K$個point-wise卷積等同於單個分組數為$K$的point-wise分組卷積,而分組卷積的在實現上更高效,於是改進為圖1c的最終結構。

為了更高效地學習多尺度特征,論文提出下采樣版本的EESP模塊(Strided EESP with shortcut connection to an input image),主要進行以下改進:
- 修改深度可分離空洞卷積為stride=2的版本。
- 為模塊原本的shortcut添加平均池化操作。
- 將element-wise相加操作替換為concate操作,這樣能增加輸出的特征維度。
- 為防止隨着下采樣產生的信息丟失,添加一條連接輸入圖像的shortcut,該路徑使用多個池化操作來使其空間大小與模塊輸出的特征圖一致,然后使用兩個卷積來提取特征並調整維度,最后進行element-wise相加。
Network architecture

ESPNetv2的網絡結構如表2所示,ESSP模塊的每個卷積后面都接BN層以及PReLU,模塊最后的分組卷積的PReLU在element-wise相加后進行,$g=K=4$,其它與ESPNet類似。
Cyclic learning rate scheduler
在圖像分類的訓練中,論文設計了循環學習率調度器,在每個周期$t$,學習率的計算為:

$\eta_{max}$和$\eta_{min}$分別為最大和最小學習率,$T$為循環周期。

循環學習率調度器的可視化如圖4所示。
Experiments

圖像分類性能對比。

語義分割性能對比。

目標檢測性能對比。

文本生成性能對比。
Conclusion
ESPNetv2在ESPNet的基礎上結合深度分離卷積的設計方法,進行了進一步的模型輕量化,結合了更豐富的特征融合,模型能夠拓展到多種任務中,具有很不錯的性能。
CONCLUSION
ESPNet系列的核心在於空洞卷積金字塔,每層具有不同的dilation rate,在參數量不增加的情況下,能夠融合多尺度特征,相對於深度可分離卷積,深度可分離空洞卷積金字塔性價比更高。另外,HFF的多尺度特征融合方法也很值得借鑒。
如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的算法工程筆記】

