【語義分割】一篇看完就懂的最新深度語義分割模型綜述
- 2020 年 2 月 24 日
- 筆記
來源:AI演算法修鍊營
引言
語義分割結合了影像分類、目標檢測和影像分割,通過一定的方法將影像分割成具有一定語義含義的區域塊,並識別出每個區域塊的語義類別,實現從底層到高層的語義推理過程,最終得到一幅具有逐像素語義標註的分割影像。
影像語義分割方法有傳統方法和基於卷積神經網路的方法,其中傳統的語義分割方法又可以分為基於統計的方法和基於幾何的方法。隨著深度學習的發展,語義分割技術得到很大的進步,基於卷積神經網路的語義分割方法與傳統的語義分割方法最大不同是,網路可以自動學習影像的特徵,進行端到端的分類學習,大大提升語義分割的精確度。
基於候選區域的深度語義分割模型
基於候選區域的語義分割方法首先從影像中提取自由形式的區域並對他們的特徵進行描述,然後再基於區域進行分類,最後將基於區域的預測轉換為像素級預測,使用包含像素最高得分的區域來標記像素。
基於候選區域的模型方法雖然為語義分割的發展帶來很大的進步,但是它需要生成大量的候選區域,生成候選區域的過程要花費大量的時間和記憶體空間。此外,不同演算法提取的候選區域集的品質也千差萬別,直接影響了最終的語義分割效果。
基於全卷積的深度語義分割模型
基於全卷積的深度語義分割模型,主要特點是,全卷積網路沒有全連接層,全部由卷積層構成。
主要思想
目前流行的深度網路,比如VGG,Resnet等,由於pooling和卷積步長的存在,feature map會越來越小,導致損失一些細粒度的資訊(低層feature map有較豐富的細粒度資訊,高層feature map則擁有更抽象,粗粒度的資訊)。對於分類問題而言,只需要深層的強語義資訊就能表現較好,但是對於稠密預測問題,比如逐像素的影像分割問題,除了需要強語義資訊之外,還需要高空間解析度。
針對這些問題,很多方法都提出了解決方案:
1、針對pooling下取樣過程中的解析度損失,采用deconvolution恢復。但是卻很難恢複位置資訊。
2、使用空洞卷積保持解析度,增大感受野,但是這麼做有兩個缺點:A.明顯增加了計算代價。B.空洞卷積是一種coarse sub-sampling,因此容易損失重要資訊。
3、通過skip connection來產生高解析度的預測。
► 基於全卷積的對稱語義分割模型
1.FCN
首先將一幅 RGB 影像輸入到卷積神經網路後,經過多次卷積及池化過程得到一系列的特徵圖,然後利用反卷積層對最後一個卷積層得到的特徵圖進行上取樣,使得上取樣後特徵圖與原影像的大小一樣,從而實現對特徵圖上的每個像素值進行預測的同時保留其在原影像中的空間位置資訊,最後對上取樣特徵圖進行逐像素分類,逐個像素計算 softmax 分類損失。

主要特點:
- 不含全連接層(fc)的全卷積(fully conv)網路。從而可適應任意尺寸輸入。
- 引入增大數據尺寸的反卷積(deconv)層,能夠輸出精細的結果。
- 結合不同深度層結果的跳級(skip)結構。同時確保魯棒性和精確性。
2.SegNet
針對 FCN 在語義分割時感受野固定和分割物體細節容易丟失或被平滑的問題, SegNet被提出。SegNet和FCN思路十分相似,編碼部分主要由VGG16網路的前 13 個卷積層和 5 個池化層組成,解碼部分同樣也由 13 個卷積層和 5 個上取樣層組成,最後一個解碼器輸出的高維特徵被送到可訓練的softmax 分類器中,用於分類每個獨立的像素。特別地,SegNet 網路採用了 pooling indices 來保存影像的輪廓資訊,降低了參數數量。

3.Unet及各種變體
U-net 對稱語義分割模型,該網路模型主要由一個收縮路徑和一個對稱擴張路徑組成,收縮路徑用來獲得上下文資訊,對稱擴張路徑用來精確定位分割邊界。U-net 使用影像切塊進行訓練,所以訓練數據量遠遠大於訓練影像的數量,這使得網路在少量樣本的情況下也能獲得不變性和魯棒性。

主要特點:
- U 形的對稱結構,左半部分收縮路徑採用卷積,RELU 和最大池化獲得影像的上下文資訊,右邊的擴展層直接複製過來,然後裁剪到與上取樣的圖片大小一樣,再將它們連接起來,實現了不同層特徵相結合的上取樣特徵圖。
- 模型實現了很好的分割效果,但只能處理 2D 影像。
► 基於全卷積的擴張卷積語義分割模型
基於全卷積對稱語義分割模型得到分割結果較粗糙,忽略了像素與像素之間的空間一致性關係。於是 Google 提出了一種新的擴張卷積語義分割模型,考慮了像素與像素之間的空間一致性關係,可以在不增加參數量的情況下增加感受野。
1、DeepLab系列
DeepLabv1 是由深度卷積網路和概率圖模型級聯而成的語義分割模型,由於深度卷積網路在重複最大池化和下取樣的過程中會丟失很多的細節資訊,所以採用擴張卷積演算法增加感受野以獲得更多上下文資訊。考慮到深度卷積網路在影像標記任務中的空間不敏感性限制了它的定位精度,採用了完全連接條件隨機場(Conditional Random Field,CRF)來提高模型捕獲細節的能力。
DeepLabv2 語義分割模型增加了 ASPP(Atrous spatial pyramid pooling)結構,利用多個不同取樣率的擴張卷積提取特徵,再將特徵融合以捕獲不同大小的上下文資訊。
DeepLabv3 語義分割模型,在 ASPP 中加入了全局平均池化,同時在平行擴張卷積後添加批量歸一化,有效地捕獲了全局語境資訊。
DeepLabv3+語義分割模型在 DeepLabv3 的基礎上增加了編-解碼模組和 Xception 主幹網路,增加編解碼模組主要是為了恢復原始的像素資訊,使得分割的細節資訊能夠更好的保留,同時編碼豐富的上下文資訊。增加 Xception 主幹網路是為了採用深度卷積進一步提高演算法的精度和速度。在inception結構中,先對輸入進行1*1的卷積,之後將通道分組,分別使用不同的3*3卷積提取特徵,最後將各組結果串聯在一起作為輸出。

主要特點:
- 在多尺度上為分割對象進行帶洞空間金字塔池化(ASPP)
- 通過使用 DCNNs (空洞卷積)提升了目標邊界的定位
- 降低了由 DCNN 的不變性導致的定位準確率。
2.RefineNet
RefineNet採用了通過細化中間激活映射並分層地將其連接到結合多尺度激活,同時防止銳度損失。網路由獨立的RefineNet模組組成,每個模組對應於ResNet。每個RefineNet模組由三個主要模組組成,即:剩餘卷積單元(RCU),多解析度融合(MRF)和鏈剩餘池(CRP)。RCU塊由一個自適應塊組成卷積集,微調預訓練的ResNet權重對於分割問題。MRF層融合不同的激活物使用卷積和上取樣層來創建更高的解析度地圖。最後,在CRP層池中使用多種大小的內核用於從較大的影像區域捕獲背景上下文。

主要特點:
- 提出一種多路徑refinement網路,稱為RefineNet。這種網路可以使用各個層級的features,使得語義分割更為精準。
- RefineNet中所有部分都利用residual connections(identity mappings),使得梯度更容易短向或者長向前傳,使段端對端的訓練變得更加容易和高效。
- 提出了一種叫做chained residual pooling的模組,它可以從一個大的影像區域捕捉背景上下文資訊。
► 基於全卷積的殘差網路語義分割模型
深度卷積神經網路的每一層特徵對語義分割都有影響,如何將高層特徵的語義資訊與底層識別的邊界與輪廓資訊結合起來是一個具有挑戰性的問題。
PSPNet
金字塔場景稀疏網路語義分割模型(Pyramid Scene Parsing Network,PSP)首先結合預訓練網路 ResNet和擴張網路來提取影像的特徵,得到原影像 1/8 大小的特徵圖,然後,採用金字塔池化模組將特徵圖同時通過四個並行的池化層得到四個不同大小的輸出,將四個不同大小的輸出分別進行上取樣,還原到原特徵圖大小,最後與之前的特徵圖進行連接後經過卷積層得到最後的預測分割影像。

主要特點:
- 金字塔場景解析網路是建立在FCN之上的基於像素級分類網路。將大小不同的內核集中在一起激活地圖的不同區域創建空間池金字塔。
- 特性映射來自網路被轉換成不同解析度的激活,並經過多尺度處理池層,稍後向上取樣並與原始層連接進行分割的feature map。
- 學習的過程利用輔助分類器進一步優化了像ResNet這樣的深度網路。不同類型的池模組側重於激活的不同區域地圖。
► 基於全卷積的GAN語義分割模型
生成對抗網路模型(Generative Adversarial Nets,GAN)同時訓練生成器 G 和判別器 D,判別器用來預測給定樣本是來自於真實數據還是來自於生成模型。
利用對抗訓練方法訓練語義分割模型,將傳統的多類交叉熵損失與對抗網路相結合,首先對對抗網路進行預訓練,然後使用對抗性損失來微調分割網路,如下圖所示。左邊的分割網路將 RGB 影像作為輸入,併產生每個像素的類別預測。右邊的對抗網路將標籤圖作為輸入並生成類標籤(1 代表真實標註,0 代表合成標籤)。

► 基於全卷積語義分割模型對比
名稱 |
優點 |
缺點 |
---|---|---|
FCN |
可以接受任意大小的影像輸入;避免了採用像素塊帶來的重複存儲和計算的問題 |
得到的結果不太精確,對影像的細節不敏感,沒有考慮像素與像素之間的關係,缺乏空間一致性 |
SegNet |
使用去池化對特徵圖進行上取樣,在分割中保持細節的完整性;去掉全連接層,擁有較少的參數 |
當對低解析度的特徵圖進行去池化時,會忽略鄰近像素的資訊 |
Deconvnet |
對分割的細節處理要強於 FCN,位於低層的filter 能捕獲目標的形狀資訊,位於高層的 filter能夠捕獲特定類別的細節資訊,分割效果更好 |
對細節的處理難度較大 |
U-net |
簡單地將編碼器的特徵圖拼接至每個階段解碼器的上取樣特徵圖,形成了一個梯形結構;採用跳躍連接架構,允許解碼器學習在編碼器池化中丟失的相關性 |
在卷積過程中沒有加pad,導致在每一次卷積後,特徵長度就會減少兩個像素,導致網路最後的輸出與輸入大小不一樣 |
DeepLab |
使用了空洞卷積;全連接條件隨機場 |
得到的預測結果只有原始輸入的 1/8 大小 |
RefineNet |
帶有解碼器模組的編碼器-解碼器結構;所有組件遵循殘差連接的設計方式 |
帶有解碼器模組的編碼器-解碼器結構;所有組件遵循殘差連接的設計方式 |
PSPNet |
提出金字塔模組來聚合背景資訊;使用了附加損失 |
採用四種不同的金字塔池化模組,對細節的處理要求較高 |
GCN |
提出了帶有大維度卷積核的編碼器-解碼器結構 |
計算複雜,具有較多的結構參數 |
DeepLabV3 ASPP |
採用了Multigrid;在原有的網路基礎上增加了幾個 block;提出了ASPP,加入了 BN |
不能捕捉影像大範圍資訊,影像層的特徵整合只存在於 ASPP中 |
GAN |
提出將分割網路作為判別器,GAN 擴展訓練數據,提升訓練效果;將判別器改造為 FCN,從將判別每一個樣本的真假變為每一個像素的真假 |
沒有比較與全監督+半監督精調模型的實驗結果,只體現了在本文中所提創新點起到了一定的作用,但並沒有體現有效的程度 |
基於弱監督學習的語義分割模型
邊界框標註
為了擴展可用數據集,Dai 等人使用易獲取的邊界框標註數據集來訓練分割模型,該模型在自動生成候選區域與訓練卷積網路之間交替進行,通過 MCG來選取帶有語義標註的區域,採用卷積網路生成候選區域的分割掩膜。在網路迭代時,由於邊界框可以增強網路識別目標的能力,通過更新卷積網路中的參數來校正分割掩膜,提升語義分割效率。
簡筆標註
Lin 等人提出基於用戶交互的影像語義分割方法,該方法使用簡筆對影像進行注釋,利用圖模型訓練卷積網路,用來對簡筆標註的影像進行語義分割,基於圖模型將簡筆標註的資訊結合空間約束、外觀及語義內容,傳播到未標記的像素上並學習網路參數。簡筆標註無需仔細勾勒影像邊界和形狀,只需對每類語義畫一條線作為標記,有利於注釋沒有明確定義形狀的物體(例如,天空,草)。
影像級標註
Pinheiro 等人採用多示例學習模型構建影像標籤與像素之間的關聯性,首先使用 ImageNet影像級標籤對模型進行訓練,利用 CNN 生成特徵平面,然後將這些特徵平面通過聚合層對模型進行約束,該模型得到了很好的分割結果。
總結
本文主要對於影像語義分割技術的研究發展歷程進行了詳細評述,對於傳統的語義分割方法到當前主流的基於深度學習的影像語義分割理論及其方法做出了綜合性的評估,對基於深度學習語義分割技術需要用到的網路模型、網路框架、分割流程進行了詳細的評估。
在深入該領域後發現該領域仍然存在著非常多的未知問題值得深入探究。基於以上分析,提出今後的研究方向:
(1)實時語義分割技術。現階段評價應用於語義分割的網路模型主要著重點在精確率上,但是隨著應用於現實場景的要求越來越高,需要更短的響應時間,因此在維持高精確率的基礎上,盡量縮短響應時間應是今後工作的方向。
(2)弱監督或無監督語義分割技術。針對需要大量的標註數據集才能提高網路模型的精度這個問題,弱監督或無監督的語義分割技術將會是未來發展的趨勢。
(3)三維場景的語義分割技術。目前的諸多基於深度學習的語義分割技術所用以訓練的數據主要是二維的圖片數據,同時測試的對象往往也是二維的圖片,但是在實際應用時所面對的環境是一個三維環境,將語義分割技術應用至實際中,未來需要針對三維數據的語義分割技術進行研究。
擴展閱讀
https://zhuanlan.zhihu.com/p/76418243
https://zhuanlan.zhihu.com/p/37805109
https://zhuanlan.zhihu.com/p/37618829