定義
- 語義分割: 將同類別的多個object視為一個單一的實體
- 實例分割:將同類別的多個object各自視為不同的實體

傳統方法
-
灰階分割
根據區域必須滿足的屬性規則給其硬編碼一個便簽,例如根據區域的像素灰度強度。例如區域分裂與聚合算法
此算法遞歸地將圖像拆分為子區域,直到可以分配標簽,然后通過合並具有相同標簽的相鄰子區域。
缺點:由於必須是基於硬編碼的規則,僅僅根據灰階信息對於復雜的case很難表示,比如人體。需要特征提取及一些優化技巧來更好的學習表示復雜的個體類別。 -
條件隨機場
定義:CRF 是一類用於結構化預測的統計建模方法。
而將先驗知識:鄰接的區域像素往往具有相同的標簽類別-----這種先驗加入建模。與離散分類器不同,CRF可以在預測之前考慮"相鄰上下文",例如像素之間的鄰接關系。因此成為語義分割的理想方法之一。
圖像中的每個像素都與一組有限的可能狀態關聯。在語義分割任務重,這個狀態就是目標標簽。將狀態(或標簽) u 分配給單個像素 (x) 的成本稱為一元損失。
為了對像素之間的關系進行建模,我們還考慮將一對標簽 (u,v) 分配給一對像素 (x,y) ,這樣產生的過程成本稱為二元成本。
因此我們可以考慮圖像中的由一對鄰接像素構成的像素對 (網格 條件隨機場);也可以同時建模圖像中的所有像素對的關系----不再限於鄰接像素對,即稠密 條件隨機場。
所有像素的這種一元損失(或二元損失)之和稱為隨機場的勢---Energy。最小化場勢,以獲得更好的分割結果。

基於深度學習的方法
深度學習已經大大簡化了實現語義分割的pipeline,並取得了不錯的效果。
- 模型架構
最簡潔流行的模型架構是基於全卷積神經網絡的---FCN for Semantic Segmentation
這篇論文中作者:
- 首先通過下采樣同時增加通道數來編碼圖像-----稱為Encoder過程,
- 再對編碼得到的結果通過插值或反卷積deconvlution(也稱轉置卷積tranposed convlution)的方式升采樣。----稱為Decoder過程
缺點:這種基本架構盡管有效,但是:
- 反卷積操作的輸出存在棋盤偽影checkerboard artifacts ----全局像素存在規律的不穩定
這是由於反卷積運算的本質是特征圖reshape后的向量 經過卷積核矩陣的乘法 由低維到高維的映射變換。此過程中通過保持核矩陣的位置關系來保持輸出特征圖的位置不變性關系,每行填充的0數目是 多 少 多 少 交替的,導致反卷積之后的特征圖也存在這種像素不穩定。(可以通過在之后級聯幾層卷積層來緩解,如U-net) - 編碼過程的信息損失導致最終解碼結果的邊界分解率不足
以上問題的解決發展:
-
U-Net

將卷積層的輸出(分辨率大些)crop后, 跳層連接( 到反卷積得到的對應level特征圖(分辨率小些)上。
跨層連接實現了梯度的更好傳播,而且提供了圖像的多尺度信息。
大尺度(Unet圖示中的高層layer,分辨率高)有助於模型更好的分類,識別高層語義信息。
小尺度(Unet圖示中的低層layer,分辨率小)有助於模型更好的分割和定位,識別低層語義信息,如位置等。 -
提拉米蘇模型

其中的DenseBlock就是卷積-反卷積。然后再拼接上DB前面的所有特征圖作為下面的輸入。
優點:參數效率高,可以更好的get到很前面的信息
缺點:深度學習框架的實現決定了這種大量的concat操作很占內存(img2col典型的空間換時間),因此需要更大的顯存。 -
多尺度方法
-
通過卷積核金字塔得到不同尺度的特征圖,然后再差值到相同分辨率來信息融合

-
通過不同rate的膨脹卷積來獲取多尺度信息
其中多個膨脹卷積塊的使用方式:
** 級聯

** 並聯

- 卷積-條件隨機場(CNN-CRF)的混合方法
- 第一種:利用CNN作為特征提取器,然后接Dense CRF。利用CRF來建模像素間的關系。
- 第二種:更高級的,將CRF建模成RNN的形式融合到神經網絡中,端到端的訓練。

損失函數
由於語義分割任務本身的特點,也需要特殊的損失函數
-
逐點softmax后作交叉熵損失
根據像素做one-hot編碼后作為真值標簽

一個像素的三個通道共分得一個one-hot 編碼向量。因為有四類像素,因此第三章label編碼圖是4個通道。 -
focal loss
RetinaNet中為解決類別不平衡問題對標准的交叉熵損失函數做的升級改進。

橫軸:對某個樣本的類別置信度
縱軸:此時對應的樣本損失
可見類別置信度為0.8時,依然存在0.3的樣本損失。會導致損失函數,在大量簡單(易分)樣本的迭代過程中,易分樣本產生的這種損失會主導總損失。導致后期的迭代越來越困難,無法專注困難樣本且可能無法優化至最優。
因此,為了讓模型專注於困難樣本,給標注的交叉熵損失函數加上一個焦點系數(一個預測置信度的函數),預測置信度越高,則使簡單樣本的損失很快接近0,這樣損失會盡可能被難樣本主導,模型能夠更好的學習難樣本。
應用
- 自動駕駛
利用語義分割做場景分割,輔助決策
要求:實時性
解決思路:
- GPU集成到汽車上
- 利用輕量化神經網絡或者利用其它的將神經網絡用在邊緣端的技術

-
醫療圖像分割
識別異常如腫瘤,通過3D分割圖來估算器官組織的體積

-
場景理解
語義分割是場景理解及視覺問答VQA的基礎
場景理解的目標:輸出一個標題或場景圖

-
遙感地圖處理
確定道路,湖泊,物體類別及區塊類別等

-
時尚工廠
提取衣服,redress換裝

