本文總結了利用CNNs進行圖像語義分割時,針對網路結構的創新,這些創新點主要包括新神經架構的設計(不同深度、寬度、連接和拓撲結構)和新組件或層的設計。前者是利用現有的組件組裝複雜的大型網絡,後者是更偏向設計底層組件。首先介紹一些經典的語意分割網絡及其創新點,然後介紹網絡結構設計在醫學影像分割領域內的一些應用。
FCN整體架構
#簡圖單獨列出FCN網路是因為FCN網路是第一個從全新的角度來解決語意分割問題的網路。先前的基於神經網路的圖像語義分割網絡是利用以待分類像素點為中心的圖像塊來預測中心像素的標籤,一般用CNN FC的策略構建網絡,顯然這種方式無法利用圖像的全局上下文信息,而且逐像素推理速度很低;而FCN網絡捨棄全連接層FC,全部用卷積層構建網絡,透過轉置卷積以及不同層特徵融合的策略,使得網絡輸出直接是輸入圖像的預測mask,效率和精度得到大幅度提升。
FCN不同層特徵融合示意圖
創新點:全卷積網絡(不含fc層);轉置卷積deconv(反捲積);不同層特徵圖跳躍連接(相加)
創新點:Encoder-Decoder結構;Pooling indices。
SegNet網路
SegNet與FCN的Upsample方式對比
創新點:U型結構;短接通道(skip-connection)
U-Net網路
V-Net網路
創新點:相當於U-Net網路的3D版本
##FC-DenseNet(百層提拉米蘇網路)
#創新點:整合DenseNet與U-Net網路(從資訊交流的角度看,密集連結確實要比殘差結構更強大)
##3 ) DeepLabV3:改良ASPP,多了1*1卷積和全域平均池化(global avg pool);比較了級聯和並聯空洞卷積的效果。
級聯空洞卷積
並聯空洞卷積(ASPP)4) DeepLabV3 :加入編解碼架構思想,加入解碼器模組來擴展DeepLabv3;將深度可分離卷積應用於ASPP和解碼器模組;將改進的Xception作為Backbone。
DeepLabV3
總的來說,DeepLab系列的核心貢獻: 空洞卷積;ASPP;CNN CRF(僅V1和V2使用CRF,應該是V3和V3 透過深度網路解決了分割邊界模糊的問題,效果要比加了CRF更好)
PSPNet網路
#創新點:多尺度池化,更好地利用全局圖像級別的先驗知識來理解複雜場景
RefineNet網路
創新點:Refine模組
也有很多工作致力於降低語意分割網路的運算複雜度。一些簡化深度網路結構的方法:張量分解;通道/網路剪枝;稀疏化連接。還有一些利用NAS(神經架構搜尋)取代人工設計來搜尋模組或整個網路的結構,當然AutoDL所需的GPU資源會勸退一大批人。因此,也有一些人使用隨機搜尋來搜尋小的多的ASPP模組,然後基於小模組來建立整個網路模型。
網路輕量化設計是業界共識,行動端部署不可能每台機器配一張2080ti,另外耗電量、儲存等問題也會限制模型的推廣應用。不過5G如果能普及的話,數據就可以全部在雲端處理,會很有意思。當然,短期內(十年),5G全方位部署不知道是否可行。
注意力機制可以定義為:使用後續層/特徵圖資訊來選擇和定位輸入特徵圖中最具判斷力(或顯著性)的部分。簡單地可以認為是給特徵圖加權的一種方式(權值透過網路計算得到),依照權值的作用方式的不同,可以分為通道注意力機制(CA)和空間注意力機制(PA)。 FPA(Feature Pyramid Attention,特徵金字塔注意力)網絡是一種基於注意力機制的語義分割網絡,它將注意力機制和空間金字塔相結合,以提取用於像素級標記的精密特徵,而沒有採用膨脹卷積和人為設計的解碼器網路。
Goodfellow等人在2014年提出了一種對抗的方法來學習深度生成模型, 生成對抗網路(GANs)中需要同時訓練兩個模型:捕捉資料分佈的生成模型G,和估計樣本來自訓練資料的機率的判別模型D。
● G是一個生成式的網絡,它接收一個隨機的雜訊z(隨機數),透過這個雜訊產生影像
● D是一個判別網絡,判別一張圖片是不是「真實的」。它的輸入參數是x(一張圖片),輸出D(x)代表x為真實圖片的機率,如果為1,就代表100%是真實的圖片,而輸出為0,就代表不可能是真實的圖片。
G的訓練程序是將D錯誤的機率最大化。可以證明在任意函數G和D的空間中,存在唯一的解決方案,使得G重現訓練資料分佈,而D=0.5。訓練過程中,產生網路G的目標就是盡量產生真實的圖片去欺騙判別網路D。而D的目標就是盡量辨別出G生成的假影像和真實的影像。這樣,G和D構成了一個動態的“博弈過程”,最終的平衡點即納許均衡點.。在G和D由神經網路定義的情況下,整個系統可以用反向傳播來訓練。
GANs網路結構示意#受到GANs啟發,Luc等人訓練了一個語義分割網路(G)以及一個對抗網路(D),對抗網路區分來自ground truth或語意分割網路(G)的分割圖。 G和D不斷地賽局學習, 它們的損失函數定義為:
#GANs loss function
回顧原始的GAN損失函數:GANs的損失函數所體現的是一種零和博弈的思想,原始的GANs的損失函數如下:
損失的計算位置是在D(判別器)輸出處,而D的輸出一般是fake/true的判斷,所以整體可以認為是上採用了二分類交叉熵函數。由GANs的損失函數的形式可知,訓練要分為兩部分:
首先是maxD部分,因為訓練一般是先保持G(生成器)不變訓練D的。 D的訓練目標是正確區分fake/true,如果我們以1/0代表true/fake,則對第一項E因為輸入採樣自真實資料所以我們期望D(x)趨近於1,也就是第一項更大。同理第二項E輸入取樣自G產生數據,所以我們預期D(G(z))趨近於0更好,也就是說第二項又是更大。所以是這一部分是期望訓練使得整體更大了,也就是maxD的意義了。這部分只更新D的參數。
第二部分保持D不變(不進行參數更新),訓練G,這個時候只有第二項E有用了,關鍵來了,因為我們要迷惑D,所以這時將label設定為1(我們知道是fake,所以才叫迷惑),希望D(G(z))輸出接近於1更好,也就是這一項越小越好,這就是minG。當然判別器哪有這麼好糊弄,所以這個時候判別器就會產生比較大的誤差,誤差會更新G,那麼G就會變得更好了,這次沒有騙過你,只能下次更努力了(引自https://www.cnblogs.com/walter-xh/p/10051634.html)。這時候只更新G的參數。
從另一個角度看GANs,判別器(D)相當於一種特殊的損失函數(由神經經網路構成,不同於傳統的L1、L2、交叉熵等損失函數)。
另外GANs訓練方式特殊,存在梯度消失、模式崩潰等問題(目前好像有辦法可以解決),但其設計思想確實是深度學習時代一個偉大的發明。
基於深度學習的圖像語意分割模型大多遵循編碼器-解碼器體系結構,如U-Net。近幾年的研究成果表明,膨脹卷積和特徵金字塔池可以改善U-Net風格的網路效能。在第2節中,我們總結一下,如何將這些方法及其變體應用於醫學影像分割。
這部分介紹一些網路結構創新在2D/3D醫學影像分割中的應用研究成果。
為了實現即時處理高解析度的2D/3D醫學影像(例如CT、MRI和組織病理學影像等),研究人員提出了多種壓縮模型的方法。 weng等人利用NAS技術應用於U-Net網絡,得到了在CT,MRI和超音波影像上具有更好的器官/腫瘤分割性能的小型網絡。 Brugger透過利用群組歸一化(group normalization )和Leaky-ReLU(leaky ReLU function),重新設計了U-Net架構,以使網路對3D醫學影像分割的儲存效率更高。也有人設計了參數量較少的擴張卷積module。其他一些模型壓縮的方法還有權重量化(十六位、八位、二值量化)、蒸餾、剪枝等等。
Drozdal提出了一種在將影像送入分割網路之前應用簡單的CNN來對原始輸入影像進行歸一化的方法,提高了單子顯微鏡影像分割、肝臟CT、前列腺MRI的分割精度。 Gu提出了在主幹網路利用擴張卷積來保留上下文資訊的方法。 Vorontsov提出了一個圖到圖的網路框架,將具有ROI的影像轉換為沒有ROI的影像(例如存在腫瘤的影像轉換為沒有腫瘤的健康影像),然後將模型移除的腫瘤添加到新的健康影像中,從而獲得物件的詳細結構。 Zhou等人提出了一種對U-Net網絡的跳躍連接重新佈線的方法,並在胸部低劑量CT掃描中的結節分割,顯微鏡圖像中的核分割,腹部CT掃描中的肝臟分割以及結腸鏡檢查影片中的息肉分割任務中測試了性能。 Goyal將DeepLabV3應用到皮膚鏡彩色影像分割中,以擷取皮膚病變區域。
Nie提出了一種注意力模型,相較於baseline模型(V-Net和FCN),可以更精確地分割攝護腺。 SinHa提出了一種基於多層注意力機制的網絡,用於MRI圖像腹部器官分割。 Qin等人提出了一個擴張卷積模組,以保留3D醫學影像的更多細節。其他基於注意力機制的啼血影像分割論文還有很多。
Khosravan提出了從CT掃描中進行胰臟分割的對抗訓練網路。 Son以生成對抗網路進行視網膜影像分割。 Xue使用全卷積網絡作為生成對抗框架中的分割網絡,實現了從MRI圖像分割腦腫瘤。還有其他一些成功應用GANs到醫學影像分割問題的論文,不再一一列舉。
遞歸神經網路(RNN)主要用於處理序列數據,長短期記憶網路(LSTM)是RNN的一個改進版本,LSTM透過引入自環(self-loops)使得梯度流能長期維持。在醫學影像分析領域,RNN用於對影像序列中的時間依賴性進行建模。 Bin等人提出了一種將全卷積神經網路與RNN融合的圖像序列分割演算法,將時間維度上的信息納入了分割任務。 Gao等人利用CNN和LSTM拉對腦MRI切片序列中的時間關係進行建模,以提高4D影像中的分割表現。 Li等人先用U-Net取得初始分割機率圖,後來再用LSTM從3D CT影像中進行胰臟分割,改善了分割效能。其他利用RNN進行醫學影像分割的論文還有很多,不再一一介紹。
這部分內容主要是分割演算法在醫學影像分割的應用,所以創新點並不多,主要還是對不同格式(CT還是RGB,像素範圍,影像解析度等等)的資料和不同部位資料的特徵(雜訊、物件形態等等),經典網路需要針對不同資料進行改進,以適應輸入資料格式和特徵,這樣能更好的完成分割任務。雖然說深度學習是個黑盒,但整體上模型的設計還是有章可循的,什麼策略解決什麼問題、造成什麼問題,可以根據具體分割問題進行取捨,以達到最優的分割性能。
1.Deep Semantic Segmentation of Natural and Medical Images: A Review
2.NAS-Unet: Neural architecture search for medical image segmentation。 1904.01636, 2019
4.Multi-scale guided attention for medical image segmentation. arXiv preprint arXiv:1906.02849,2019.#Seg. : Adversarial network with multi-scale L1 loss for medical image segmentation.
6.Fully convolutional structured LSTM networks for joint 4D medical image segmentation。 .com/walter-xh/p/10051634.html
以上是深度學習影像分割:網路結構設計一覽的詳細內容。更多資訊請關注PHP中文網其他相關文章!