【图像分割模型】编解码结构SegNet
這是專欄《圖像分割模型》的第2篇文章。在這個專欄里,我們將共同探索解決分割問題的主流網絡結構和設計思想。
上篇文章我們學習了分割網絡鼻祖FCN,今天我們來看看用解碼器踢館的SegNet。
作者 | 孫叔橋
編輯 | 言有三
?
1 編解碼結構
分割任務中的編碼器encode與解碼器decode就像是玩“你來比劃我來猜”的雙方:比劃的人想把看到的東西用一種方式描述出來,猜的人根據比劃的人提供的信息猜出答案。
其中,“比劃的人”叫做編碼器,“猜的人”就是解碼器。
具體來說,編碼器的任務是在給定輸入圖像后,通過神經網絡學習得到輸入圖像的特征圖譜;而解碼器則在編碼器提供特征圖后,逐步實現每個像素的類別標注,也就是分割。
通常,分割任務中的編碼器結構比較類似,大多來源于用于分類任務的網絡結構,比如VGG。這樣做有一個好處,就是可以借用在大數據庫下訓練得到的分類網絡的權重參數,通過遷移學習實現更好的效果。因此,解碼器的不同在很大程度上決定了一個基于編解碼結構的分割網絡的效果。
SegNet就討論了這種不同,并在道路和室內兩個場景下比較了不同解碼器下,各個算法的表現。
CamVid數據庫:《Semantic object classes in video: A high-definition ground truth database》
SUN RGB-D數據庫:《SUN RGB-D: A RGB-D scene understanding benchmark suite》
?
2 SegNet
SegNet的編碼器結構與解碼器結構是一一對應的,即一個decoder具有與其對應的encoder相同的空間尺寸和通道數。對于基礎SegNet結構,二者各有13個卷積層,其中編碼器的卷積層就對應了VGG16網絡結構中的前13個卷積層。
下圖是SegNet的網絡結構,其中藍色代表卷積+Batch Normalization+ReLU,綠色代表max-pooling,紅色代表上采樣,黃色是Softmax。
SegNet與FCN的對應結構相比,體量要小很多。這主要得益于SegNet中為了權衡計算量而采取的操作:用記錄的池化過程的位置信息替代直接的反卷積操作。具體如下圖所示。
圖中左側是SegNet使用的解碼方式,右側是FCN對應的解碼方式??梢钥吹?#xff0c;SegNet的做法是先根據位置信息生成稀疏的特征圖,再利用后續的卷積計算恢復稠密特征圖。而FCN則直接利用反卷積操作求得上采樣后的特征圖,再將其與編碼器特征圖相加。
?
3 解碼器變體
前文已經提到,編解碼結構中,解碼器的效果和復雜程度對于整個分割網絡的影響是非常大的。這里我們就一起來看一下不同解碼器結構和它們的效果。
SegNet中一共嘗試了8種不同的解碼結構,先上結果:
這些變體共用相同的編碼器結構,只是在解碼器結構上有所不同。比如,將解碼器的結構單純減少層數,改變解碼器最后一層通道數,改變編解碼器對應結構之間的連接方式(只連接池化信息、保留特征層內信息或全部保留),改變采樣方式等。
除上面幾種變體外,論文中還嘗試了改變上采樣方法,或取消池化和下采樣過程,但是這些改變都沒有帶來更好的結果。
?
4 總結與思考
關于變體的分析,可以總結為以下三點:
保留編碼器所有特征圖所實現的效果最好,在這一點上語義分割邊緣輪廓描述度量(BF)體現最為明顯。
當推理過程的內存受限時,可以使用編碼器特征圖的壓縮形式(比如縮小維度、使用池化信息等),但需要搭配合適的解碼器形式(比如SegNet類型的)來提升表現。
在給定編碼器時,越大的解碼器效果越好。
今天的圖像分割模型到此結束,下回再見。
本專欄文章:
第一期:【圖像分割模型】從FCN說起
第二期:【圖像分割模型】編解碼結構SegNet
第三期:【圖像分割模型】感受野與分辨率的控制術—空洞卷積
如果想加入我們,后臺留言吧
轉載文章請后臺聯系
侵權必究
感謝各位看官的耐心閱讀,不足之處希望多多指教。后續內容將會不定期奉上,歡迎大家關注有三公眾號 有三AI!
總結
以上是生活随笔為你收集整理的【图像分割模型】编解码结构SegNet的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【图像分割模型】从FCN说起
- 下一篇: 【图像分割模型】感受野与分辨率的控制术—