論文地址:https://arxiv.org/pdf/1606.02147.pdf
代碼地址:https://github.com/davidtvs/PyTorch-ENet
1. 網(wǎng)絡(luò)結(jié)構(gòu)
-
網(wǎng)絡(luò)使用了正則化顶燕, 在bottleneck2.0之前dropout(p=0.01)蟆融,之后p=0.1.
- ENet模型大致分為5個Stage:
??initial:初始化模塊,通道合并可以顯著減少存儲空間骄噪,如下圖:
??Stage 1:encoder階段刻盐。包括5個bottleneck掏膏,第一個bottleneck做下采樣,后面4個重復(fù)的bottleneck
??Stage 2-3:encoder階段隙疚。stage2的bottleneck2.0做了下采樣壤追,后面有時加空洞卷積,或分解卷積供屉。stage3沒有下采樣行冰,其他都一樣。
??Stage 4~5:屬于decoder階段伶丐。比較簡單悼做,一個上采樣配置兩個普通的bottleneck
??模型架構(gòu)在任何投影上都沒有使用bias,這樣可以減少內(nèi)核調(diào)用和存儲操作。在每個卷積操作中使用Batch Norm哗魂。encoder階段是使用padding配合max pooling做下采樣肛走。在decoder時使用max unpooling配合空洞卷積完成上采樣
Design choices
Feature map resolution
- 下采樣的缺點
??降低特征圖分辨率意味著丟失精確的空間信息邊緣形狀
??全像素分割要求輸出具有與輸入相同的分辨率。 這意味著強大的下采樣將需要同樣強大的上采樣录别,這增加了模型尺寸和計算成本 - 針對問題1朽色,有兩個解決方案:
??FCN的解決辦法是將encoder階段的feature map塞給decoder邻吞,增加空間信息。
??SegNet的解決辦法是將encoder階段做downsampling的indices保留到decoder階段做upsampling使用葫男。 - 優(yōu)點
??下采樣的好處在于可以獲取更大的感受野抱冷,獲取更多的上下文信息,便于分類
Early downsampling
??ENet前兩個塊大大減少了輸入大小梢褐,并且僅使用一小組特征映射旺遮。 其背后的想法是,視覺信息在空間上是高度冗余的盈咳,因此可以壓縮成更有效的表示耿眉。 此外,我們的直覺是初始網(wǎng)絡(luò)層不應(yīng)直接有助于分類鱼响。 相反鸣剪,它們應(yīng)該作為良好的特征提取器,并且僅對網(wǎng)絡(luò)的后續(xù)部分進行預(yù)處理热押。 這種見解在我們的實驗中運作良好; 將要素圖的數(shù)量從16增加到32并不能提高Cityscapes數(shù)據(jù)集的準確性西傀。
Decoder Size
??該結(jié)構(gòu)有一個大的編碼網(wǎng)絡(luò)和一個小的解碼網(wǎng)絡(luò),編碼器操作較小分辨率的數(shù)據(jù)并提供信息處理和過濾桶癣。 解碼器的作用是對編碼器的輸出進行上采樣,僅對細節(jié)進行微調(diào)娘锁。
Nonlinear operations
??初始層權(quán)重表現(xiàn)出較大的方差牙寞,并略微偏向正值,而在編碼器的后期部分莫秆,它們穩(wěn)定為重復(fù)模式间雀。 主分支中的所有層的行為幾乎與常規(guī)ReLU一樣,而瓶頸模塊內(nèi)的權(quán)重為負镊屎,即函數(shù)反轉(zhuǎn)并按比例縮小負值惹挟。我們假設(shè)由于其有限的深度,特性在我們的架構(gòu)中不能很好地工作缝驳。 學(xué)習這種有損函數(shù)的原因可能是原始ResNets是可以深達數(shù)百層的網(wǎng)絡(luò)连锯,而我們的網(wǎng)絡(luò)只使用幾層,它需要快速過濾掉信息用狱。在ENet上使用ReLU卻降低了精度运怖,故最終使用PRelu
Information-preserving dimensionality changes
??在Initial Block,將Pooling操作和卷積操作并行夏伊,再concat到一起摇展,這將inference階段時間加速了10倍。同時在做下采樣時溺忧,原來ResNet的卷積層分支會使用1×1/str=2的卷積咏连,這會丟失大量的輸入數(shù)據(jù)盯孙。ENet改為2×2的卷積核,有效的改善了信息的流動和準確率.
Factorizing filters
??因為卷積權(quán)重具有相當大的冗余度祟滴,所以將n×n的卷積核拆為n×1和1×n(Inception V3提出的)振惰。可以有效的減少參數(shù)量踱启,并提高模型感受野报账。
Dilated convolutions
??Dilated convolutions可以有效的提高感受野。有效的使用Dilated convolutions提高了4%的IoU埠偿,使用Dilated convolutions是交叉使用透罢,而非連續(xù)使用。
Regularization
??因為數(shù)據(jù)集本身不大冠蒋,很快會過擬合羽圃。使用L2效果不佳,使用stochastic depth還可以抖剿,但Spatial Dropout朽寞,效果相對好一點。
Results
Performance Analysis
??
??
??
??
??