【图像分割模型】快速道路场景分割—ENet
這是專欄《圖像分割模型》的第4篇文章。在這里,我們將共同探索解決分割問題的主流網絡結構和設計思想。
有了空洞卷積,這篇文章我們通過ENet看看在實際任務中,該怎么用好空洞卷積。
作者 | 孫叔橋
編輯 | 言有三
?
1 緒論
雖然深度神經網絡在計算機視覺領域的有效性已經是毋容置疑的了,但是大部分神經網絡仍然受限于計算量、存儲空間、運算速度等因素,無法應用于實際的計算機視覺任務。
以圖像分割為例,前面提到的SegNet的速度已經相當快了,但是仍然遠不能達到實時分割的目的。比如道路場景分割任務,至少需要達到10fps,而SegNet的速度只能實現1fps左右。
無法適應實際需要的網絡結構是很受限的,因此,本文我們一起來看一下能夠實現實時語義分割的ENet結構,從中找找靈感。
?
2 實時,該考慮什么?
這里先上技巧實驗的干貨總結:
(1) 特征圖分辨率
為了減小計算量、增大感受野,許多網絡都采用縮小特征圖分辨率的結構(比如前面提到的SegNet)。但是,過度縮小特征圖分辨率則會造成嚴重的信息丟失,從而造成分割精度的下降。因此,要盡可能約束下采樣的比率。目前被廣泛接受的下降比率不超過1/8。那么還要繼續增大感受野該怎么辦呢?沒錯,就是用到空洞卷積了。
(2) 提前下采樣
直接用原始分辨率的圖片作為網絡輸入的代價是很高的。由于視覺信息中存在大量的冗余,在輸入網絡之前,可以對輸入做一個預處理,也就是先用一層網絡將這些信息濃縮,同時縮小空間尺寸。實驗證明,這一步的特征圖個數不用太多,16與32效果幾乎相同。
(3) 解碼器規模
前面我們接觸到的編解碼結構中,解碼器與編碼器在結構上幾乎是完全對等的。這種結構看起來沒有問題,但是真的合理嗎?其實,編碼器的規模可以大一些,因為要用來提取信息;但是解碼器本質上只是對編碼器結果的細節精調,因此規模可以減小。
(4) 非線性操作
這一點相信很多人在實驗中已經發現了,那就是在某些情況下,ReLU的引入并不會對結果產生有利的影響。相反,用PReLU替代反而會更好。
(5) 分解卷積層
考慮到卷積層權重其實有相當大的冗余,可以用nx1和1xn的兩個卷積層級聯(對稱卷積)來替代一個nxn的卷積層來縮小計算量。具體地,用n=5的對稱卷積的計算量近似于一個3x3的普通卷積,但是由于引入了非線性,這樣的操作還能夠增加函數的多樣性。
(6) 空洞卷積
引入空洞卷積可以減小計算量、增大感受野,同時維護了特征圖的分辨率。為了使空洞卷積發揮最大的作用,ENet中穿插地使用了普通卷積、對稱卷積和空洞卷積。
?
3 網絡結構
ENet主要由兩種類型的網絡結構構成,如下圖所示:
其中,圖(a)對應的是ENet的初始模塊,也就是前文提到的縮小輸入圖像分辨率,從而去除視覺冗余、減小計算量的部分;圖(b)對應的則是重復使用,從而構建網絡主體的bottleneck模塊。
具體結構如下表所示(輸入尺寸512x512):
其中Type一列說明的是該bottleneck對應的卷積類型,即圖(b)中的conv層。
?
4 實驗結果
ENet在Cityscapes、CamVid和SUN RGB-D三個數據庫下進行了測試。下表是與SegNet的運行速度對比:
Cityscapes數據庫下的結果:
CamVid下的結果:
SUN RGB-D下的結果:
?
總結
通過DeepLab和ENet的學習,我們初步了解了圖像分割中上下文信息整合方法的第一部分——空洞卷積。下篇文章我們將共同走進第二部分,來啃啃硬骨頭條件隨機場(CRF)。
本專欄文章:
第一期:【圖像分割模型】從FCN說起
第二期:【圖像分割模型】編解碼結構SegNet
第三期:【圖像分割模型】感受野與分辨率的控制術—空洞卷積
第四期:【圖像分割模型】快速道路場景分割—ENet
如果想加入我們,后臺留言吧
轉載文章請后臺聯系
侵權必究
感謝各位看官的耐心閱讀,不足之處希望多多指教。后續內容將會不定期奉上,歡迎大家關注有三公眾號 有三AI!
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的【图像分割模型】快速道路场景分割—ENet的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【直播预告】如何设计性能更强的CNN模型
- 下一篇: 【AI不惑境】网络深度对深度学习模型性能