1. 程式人生 > >【深度學習】Semantic Segmentation 語義分割

【深度學習】Semantic Segmentation 語義分割

翻譯自 A 2017 Guide to Semantic Segmentation with Deep Learning


What exactly is semantic segmentation?

對圖片的每個畫素都做分類。

較為重要的語義分割資料集有:VOC2012 以及 MSCOCO 。

 

What are the different approaches?

傳統機器學習方法:如畫素級的決策樹分類,參考TextonForest 以及 Random Forest based classifiers

 。再有就是深度學習方法。更確切地說,是卷積神經網路

深度學習最初流行的分割方法是,打補丁式的分類方法 ( patch classification ) 。逐畫素地抽取周圍畫素對中心畫素進行分類。由於當時的卷積網路末端都使用全連線層 ( full connected layers ) ,所以只能使用這種逐畫素的分割方法。

2014年,來自伯克利的 Fully Convolutional Networks(FCN) 卷積網路,去掉了末端的全連線層。隨後的語義分割模型基本上都採用了這種結構。除了全連線層,語義分割另一個重要的問題是池化層。池化層能進一步提取抽象特徵增加感受域

,但是丟棄了畫素的位置資訊。但是語義分割需要類別標籤和原影象對齊,因此需要從新引入畫素的位置資訊。有兩種不同的架構可以解決此畫素定位問題。

第一種是編碼-譯碼架構。編碼過程通過池化層逐漸減少位置資訊、抽取抽象特徵;譯碼過程逐漸恢復位置資訊。一般譯碼與編碼間有直接的連線。該類架構中U-netU-NET 是最流行的。

第二種架構是膨脹卷積 ( dilated convolutions ) ,拋棄了池化層。使用的卷積核如下圖。

dilated

條件隨機場的後處理 經常用來提高分割的精確度。後處理利用影象的光感強度(可理解為亮度),將周圍強度相近的畫素分為同一類。能提高 1-2 個百分點。

 

Summaries

按時間順序總結八篇paper,看語義分割的結構是如何演變的。分別有FCN 、SegNet 、Dilated Convolutions 、DeepLab (v1 & v2) 、RefineNet 、PSPNet 、Large Kernel Matters 、DeepLab v3 。


參考:深度學習-語義分割總結