深度學(xué)習(xí)圖像分割:網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)一覽
本文總結(jié)了利用CNNs進(jìn)行圖像語義分割時(shí),針對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的創(chuàng)新,這些創(chuàng)新點(diǎn)主要包括新神經(jīng)架構(gòu)的設(shè)計(jì)(不同深度、寬度、連接和拓?fù)浣Y(jié)構(gòu))和新組件或?qū)拥脑O(shè)計(jì)。前者是利用已有的組件組裝復(fù)雜的大型網(wǎng)絡(luò),后者是更偏向于設(shè)計(jì)底層組件。首先介紹一些經(jīng)典的語義分割網(wǎng)絡(luò)及其創(chuàng)新點(diǎn),然后介紹網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)在醫(yī)學(xué)圖像分割領(lǐng)域內(nèi)的一些應(yīng)用。
1. 圖像語義分割網(wǎng)絡(luò)結(jié)構(gòu)創(chuàng)新
1.1 FCN網(wǎng)絡(luò)
FCN整體架構(gòu)
簡(jiǎn)圖單獨(dú)將FCN網(wǎng)絡(luò)列出來是因?yàn)镕CN網(wǎng)絡(luò)是第一個(gè)從全新的角度來解決語義分割問題的網(wǎng)絡(luò)。此前的基于神經(jīng)網(wǎng)絡(luò)的圖像語義分割網(wǎng)絡(luò)是利用以待分類像素點(diǎn)為中心的圖像塊來預(yù)測(cè)中心像素的標(biāo)簽,一般用CNN+FC的策略構(gòu)建網(wǎng)絡(luò),顯然這種方式無法利用圖像的全局上下文信息,而且逐像素推理速度很低;而FCN網(wǎng)絡(luò)舍棄全連接層FC,全部用卷積層構(gòu)建網(wǎng)絡(luò),通過轉(zhuǎn)置卷積以及不同層特征融合的策略,使得網(wǎng)絡(luò)輸出直接是輸入圖像的預(yù)測(cè)mask,效率和精度得到大幅度提升。
FCN不同層特征融合示意圖
創(chuàng)新點(diǎn):全卷積網(wǎng)絡(luò)(不含fc層);轉(zhuǎn)置卷積deconv(反卷積);不同層特征圖跳躍連接(相加)
1.2 編解碼結(jié)構(gòu)(Enconder-decoder)
- SegNet和FCN網(wǎng)絡(luò)的思路基本一致。編碼器部分使用VGG16的前13層卷積,不同點(diǎn)在于Decoder部分Upsampling的方式。FCN通過將特征圖deconv得到的結(jié)果與編碼器對(duì)應(yīng)大小的特征圖相加得到上采樣結(jié)果;而SegNet用Encoder部分maxpool的索引進(jìn)行Decoder部分的上采樣(原文描述:the decoder upsamples the lower resolution input feature maps. Speci?cally, the decoder uses pooling indices computed in the max-pooling step of the corresponding encoder to perform non-linear upsampling.)。
創(chuàng)新點(diǎn):Encoder-Decoder結(jié)構(gòu);Pooling indices。
SegNet網(wǎng)絡(luò)
SegNet與FCN的Upsample方式對(duì)比
- U-Net網(wǎng)絡(luò)最初是針對(duì)生物醫(yī)學(xué)圖像設(shè)計(jì)的,但由于其初四的性能,現(xiàn)如今UNet及其變體已經(jīng)廣泛應(yīng)用到CV各個(gè)子領(lǐng)域。UNet網(wǎng)絡(luò)由U通道和短接通道(skip-connection)組成,U通道類似于SegNet的編解碼結(jié)構(gòu),其中編碼部分(contracting path)進(jìn)行特征提取和捕獲上下文信息,解碼部分(expanding path)用解碼特征圖來預(yù)測(cè)像素標(biāo)簽。短接通道提高了模型精度并解決了梯度消失問題,特別要注意的是短接通道特征圖與上采用特征圖是拼接而不是相加(不同于FCN)。
創(chuàng)新點(diǎn):U型結(jié)構(gòu);短接通道(skip-connection)
U-Net網(wǎng)絡(luò)
- V-Net網(wǎng)絡(luò)結(jié)構(gòu)與U-Net類似,不同在于該架構(gòu)增加了跳躍連接,并用3D操作物替換了2D操作以處理3D圖像(volumetric image)。并且針對(duì)廣泛使用的細(xì)分指標(biāo)(如Dice)進(jìn)行優(yōu)化。
V-Net網(wǎng)絡(luò)
創(chuàng)新點(diǎn):相當(dāng)于U-Net網(wǎng)絡(luò)的3D版本
- FC-DenseNet (百層提拉米蘇網(wǎng)絡(luò))(paper title: The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation)該網(wǎng)絡(luò)結(jié)構(gòu)是由用密集連接塊(Dense Block)和UNet架構(gòu)組建的。該網(wǎng)絡(luò)最簡(jiǎn)單的版本是由向下過渡的兩個(gè)下采樣路徑和向上過渡的兩個(gè)上采樣路徑組成。且同樣包含兩個(gè)水平跳躍連接,將來自下采樣路徑的特征圖與上采樣路徑中的相應(yīng)特征圖拼接在一起。上采樣路徑和下采樣路徑中的連接模式不完全同:下采樣路徑中,每個(gè)密集塊外有一條跳躍拼接通路,從而導(dǎo)致特征圖數(shù)量的線性增長(zhǎng),而在上采樣路徑中沒有此操作。(多說一句,這個(gè)網(wǎng)絡(luò)的簡(jiǎn)稱可以是Dense Unet,但是有一篇論文叫Fully Dense UNet for 2D Sparse Photoacoustic Tomography Artifact Removal, 是一個(gè)光聲成像去偽影的論文,我看到過好多博客引用這篇論文里面的插圖來談?wù)Z義分割,根本就不是一碼事好么 =_=||,自己能分清即可。)
FC-DenseNet(百層提拉米蘇網(wǎng)絡(luò))
創(chuàng)新點(diǎn):融合DenseNet與U-Net網(wǎng)絡(luò)(從信息交流的角度看,密集連接確實(shí)要比殘差結(jié)構(gòu)更強(qiáng)大)
- Deeplab系列網(wǎng)絡(luò)是在編解碼結(jié)構(gòu)的基礎(chǔ)上提出的改進(jìn)版本,2018年DeeplabV3+網(wǎng)絡(luò)在VOC2012和Cityscapes數(shù)據(jù)集上的表現(xiàn)優(yōu)異,達(dá)到SOTA水平。DeepLab系列共有V1、V2、V3和V3+共四篇論文。簡(jiǎn)要總結(jié)一些各篇論文的核心內(nèi)容:
1) DeepLabV1:融合卷積神經(jīng)網(wǎng)絡(luò)和概率圖模型:CNN+CRF,提高了分割定位精度;
2) DeepLabV2:ASPP(擴(kuò)張空間金字塔池化);CNN+CRF
3) DeepLabV3:改進(jìn)ASPP,多了1*1卷積和全局平均池化(global avg pool);對(duì)比了級(jí)聯(lián)和并聯(lián)空洞卷積的效果。
級(jí)聯(lián)空洞卷積
并聯(lián)空洞卷積(ASPP)
4) DeepLabV3+:加入編解碼架構(gòu)思想,添加一個(gè)解碼器模塊來擴(kuò)展DeepLabv3;將深度可分離卷積應(yīng)用于ASPP和解碼器模塊;將改進(jìn)的Xception作為Backbone。
DeepLabV3+
總的來說,DeepLab系列的核心貢獻(xiàn): 空洞卷積;ASPP;CNN+CRF(僅V1和V2使用CRF,應(yīng)該是V3和V3+通過深度網(wǎng)絡(luò)解決了分割邊界模糊的問題,效果要比加了CRF更好)
- PSPNet(pyramid scene parsing network)通過對(duì)不同區(qū)域的上下文信息進(jìn)行聚合,提升了網(wǎng)絡(luò)利用全局上下文信息的能力。在SPPNet,金字塔池化生成的不同層次的特征圖最終被flatten并concate起來,再送入全連接層以進(jìn)行分類,消除了CNN要求圖像分類輸入大小固定的限制。而在PSPNet中,使用的策略是:poolling-conv-upsample,然后拼接得到特征圖,然后進(jìn)行標(biāo)簽預(yù)測(cè)。
PSPNet網(wǎng)絡(luò)
創(chuàng)新點(diǎn):多尺度池化,更好地利用全局圖像級(jí)別的先驗(yàn)知識(shí)來理解復(fù)雜場(chǎng)景
- RefineNet通過細(xì)化中間激活映射并分層地將其連接到結(jié)合多尺度激活,同時(shí)防止銳度損失。網(wǎng)絡(luò)由獨(dú)立的Refine模塊組成,每個(gè)Refine模塊由三個(gè)主要模塊組成,即:剩余卷積單元(RCU),多分辨率融合(MRF)和鏈?zhǔn)S喑?CRP)。整體結(jié)構(gòu)有點(diǎn)類似U-Net,但在跳躍連接處設(shè)計(jì)了新的組合方式(不是簡(jiǎn)單的concat)。個(gè)人認(rèn)為,這種結(jié)構(gòu)其實(shí)非常適合作為自己網(wǎng)絡(luò)設(shè)計(jì)的思路,可以加入許多其他CV問題中使用的CNN module,而且以U-Net為整體框架,效果不會(huì)太差。
RefineNet網(wǎng)絡(luò)
創(chuàng)新點(diǎn):Refine模塊
1.3 降低計(jì)算復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)
也有很多工作致力于降低語義分割網(wǎng)絡(luò)的計(jì)算復(fù)雜度。一些簡(jiǎn)化深度網(wǎng)絡(luò)結(jié)構(gòu)的方法:張量分解;通道/網(wǎng)絡(luò)剪枝;稀疏化連接。還有一些利用NAS(神經(jīng)架構(gòu)搜索)取代人工設(shè)計(jì)來搜索模塊或整個(gè)網(wǎng)絡(luò)的結(jié)構(gòu),當(dāng)然AutoDL所需的GPU資源會(huì)勸退一大批人。因此,也有一些人使用隨機(jī)搜索來搜索小的多的ASPP模塊,然后基于小模塊來搭建整個(gè)網(wǎng)絡(luò)模型。
網(wǎng)絡(luò)輕量化設(shè)計(jì)是業(yè)內(nèi)共識(shí),移動(dòng)端部署不可能每臺(tái)機(jī)器配一張2080ti,另外耗電量、存儲(chǔ)等問題也會(huì)限制模型的推廣應(yīng)用。不過5G如果能普及的話,數(shù)據(jù)就可以全部在云端處理,會(huì)很有意思。當(dāng)然,短期內(nèi)(十年),5G全方位部署不知道是否可行。
1.4 基于注意力機(jī)制的網(wǎng)絡(luò)結(jié)構(gòu)
注意力機(jī)制可以定義為:使用后續(xù)層/特征圖信息來選擇和定位輸入特征圖中最具判斷力(或顯著性)的部分。簡(jiǎn)單地可以認(rèn)為是給特征圖加權(quán)的一種方式(權(quán)值通過網(wǎng)絡(luò)計(jì)算得到),按照權(quán)值的作用方式的不同,可以分為通道注意力機(jī)制(CA)和空間注意力機(jī)制(PA)。FPA(Feature Pyramid Attention,特征金字塔注意力)網(wǎng)絡(luò)是一種基于注意力機(jī)制的語義分割網(wǎng)絡(luò),它將注意力機(jī)制和空間金字塔相結(jié)合,以提取用于像素級(jí)標(biāo)記的精密特征,而沒有采用膨脹卷積和人為設(shè)計(jì)的解碼器網(wǎng)絡(luò)。
1.5 基于對(duì)抗學(xué)習(xí)的網(wǎng)絡(luò)結(jié)構(gòu)
Goodfellow等人在2014年提出了一種對(duì)抗的方法來學(xué)習(xí)深度生成模型, 生成對(duì)抗網(wǎng)絡(luò)(GANs)中需要同時(shí)訓(xùn)練兩個(gè)模型:捕獲數(shù)據(jù)分布的生成模型G,和估計(jì)樣本來自訓(xùn)練數(shù)據(jù)的概率的判別模型D。
● G是一個(gè)生成式的網(wǎng)絡(luò),它接收一個(gè)隨機(jī)的噪聲z(隨機(jī)數(shù)),通過這個(gè)噪聲生成圖像
● D是一個(gè)判別網(wǎng)絡(luò),判別一張圖片是不是“真實(shí)的”。它的輸入?yún)?shù)是x(一張圖片),輸出D(x)代表x為真實(shí)圖片的概率,如果為1,就代表100%是真實(shí)的圖片,而輸出為0,就代表不可能是真實(shí)的圖片。
G的訓(xùn)練程序是將D錯(cuò)誤的概率最大化??梢宰C明在任意函數(shù)G和D的空間中,存在唯一的解決方案,使得G重現(xiàn)訓(xùn)練數(shù)據(jù)分布,而D=0.5。訓(xùn)練過程中,生成網(wǎng)絡(luò)G的目標(biāo)就是盡量生成真實(shí)的圖片去欺騙判別網(wǎng)絡(luò)D。而D的目標(biāo)就是盡量辨別出G生成的假圖像和真實(shí)的圖像。這樣,G和D構(gòu)成了一個(gè)動(dòng)態(tài)的“博弈過程”,最終的平衡點(diǎn)即納什均衡點(diǎn).。在G和D由神經(jīng)網(wǎng)絡(luò)定義的情況下,整個(gè)系統(tǒng)可以用反向傳播進(jìn)行訓(xùn)練。
GANs網(wǎng)絡(luò)結(jié)構(gòu)示意受到GANs啟發(fā),Luc等人訓(xùn)練了一個(gè)語義分割網(wǎng)絡(luò)(G)以及一個(gè)對(duì)抗網(wǎng)絡(luò)(D),對(duì)抗網(wǎng)絡(luò)區(qū)分來自ground truth或語義分割網(wǎng)絡(luò)(G)的分割圖。G和D不斷地博弈學(xué)習(xí), 它們的損失函數(shù)定義為 :
GANs loss function
回顧一下原始的GAN損失函數(shù):GANs的損失函數(shù)體現(xiàn)的是一種零和博弈的思想,原始的GANs的損失函數(shù)如下:
損失的計(jì)算位置是在D(判別器)輸出處,而D的輸出一般是fake/true的判斷,所以整體可以認(rèn)為是上采用了二分類交叉熵函數(shù)。由GANs的損失函數(shù)的形式可知,訓(xùn)練要分為兩部分:
首先是maxD部分,因?yàn)橛?xùn)練一般是先保持G(生成器)不變訓(xùn)練D的。D的訓(xùn)練目標(biāo)是正確區(qū)分fake/true,如果我們以1/0代表true/fake,則對(duì)第一項(xiàng)E因?yàn)檩斎氩蓸幼哉鎸?shí)數(shù)據(jù)所以我們期望D(x)趨近于1,也就是第一項(xiàng)更大。同理第二項(xiàng)E輸入采樣自G生成數(shù)據(jù),所以我們期望D(G(z))趨近于0更好,也就是說第二項(xiàng)又是更大。所以是這一部分是期望訓(xùn)練使得整體更大了,也就是maxD的含義了。這部分只更新D的參數(shù)。
第二部分保持D不變(不進(jìn)行參數(shù)更新),訓(xùn)練G,這個(gè)時(shí)候只有第二項(xiàng)E有用了,關(guān)鍵來了,因?yàn)槲覀円曰驞,所以這時(shí)將label設(shè)置為1(我們知道是fake,所以才叫迷惑),希望D(G(z))輸出接近于1更好,也就是這一項(xiàng)越小越好,這就是minG。當(dāng)然判別器哪有這么好糊弄,所以這個(gè)時(shí)候判別器就會(huì)產(chǎn)生比較大的誤差,誤差會(huì)更新G,那么G就會(huì)變得更好了,這次沒有騙過你,只能下次更努力了(引自https://www.cnblogs.com/walter-xh/p/10051634.html)。這時(shí)候只更新G的參數(shù)。
從另一個(gè)角度看GANs,判別器(D)相當(dāng)于一種特殊的損失函數(shù)(由神經(jīng)經(jīng)網(wǎng)絡(luò)構(gòu)成,不同于傳統(tǒng)的L1、L2、交叉熵等損失函數(shù))。
另外GANs訓(xùn)練方式特殊,存在梯度消失、模式崩潰等問題(目前好像有辦法可以解決),但其設(shè)計(jì)思想確實(shí)是深度學(xué)習(xí)時(shí)代一個(gè)偉大的發(fā)明。
1.6 小結(jié)
基于深度學(xué)習(xí)的圖像語義分割模型大多遵循編碼器-解碼器體系結(jié)構(gòu),如U-Net。近幾年的研究成果表明,膨脹卷積和特征金字塔池可以改善U-Net風(fēng)格的網(wǎng)絡(luò)性能。在第2節(jié)中,我們總結(jié)一下,如何將這些方法及其變體應(yīng)用于醫(yī)學(xué)圖像分割。
2. 網(wǎng)絡(luò)結(jié)構(gòu)創(chuàng)新在醫(yī)學(xué)圖像分割中的應(yīng)用
這部分介紹一些網(wǎng)絡(luò)結(jié)構(gòu)創(chuàng)新在2D/3D醫(yī)學(xué)圖像分割中的應(yīng)用研究成果。
2.1 基于模型壓縮的分割方法
為了實(shí)現(xiàn)實(shí)時(shí)處理高分辨率的2D/3D醫(yī)學(xué)圖像(例如CT、MRI和組織病理學(xué)圖像等),研究人員提出了多種壓縮模型的方法。weng等人利用NAS技術(shù)應(yīng)用于U-Net網(wǎng)絡(luò),得到了在CT,MRI和超聲圖像上具有更好的器官/腫瘤分割性能的小型網(wǎng)絡(luò)。Brugger通過利用組歸一化(group normalization )和Leaky-ReLU(leaky ReLU function),重新設(shè)計(jì)了U-Net架構(gòu),以使網(wǎng)絡(luò)對(duì)3D醫(yī)學(xué)圖像分割的存儲(chǔ)效率更高。也有人設(shè)計(jì)了參數(shù)量更少的擴(kuò)張卷積module。其他一些模型壓縮的方法還有權(quán)重量化(十六位、八位、二值量化)、蒸餾、剪枝等等。
2.2 編碼-解碼結(jié)構(gòu)的分割方法
Drozdal提出了一種在將圖像送入分割網(wǎng)絡(luò)之前應(yīng)用簡(jiǎn)單的CNN來對(duì)原始輸入圖像進(jìn)行歸一化的方法,提高了單子顯微鏡圖像分割、肝臟CT、前列腺M(fèi)RI的分割精度。Gu提出了在主干網(wǎng)絡(luò)利用擴(kuò)張卷積來保留上下文信息的方法。Vorontsov提出了一種圖到圖的網(wǎng)絡(luò)框架,將具有ROI的圖像轉(zhuǎn)換為沒有ROI的圖像(例如存在腫瘤的圖像轉(zhuǎn)換為沒有腫瘤的健康圖像),然后將模型去除的腫瘤添加到新的健康圖像中,從而獲得對(duì)象的詳細(xì)結(jié)構(gòu)。Zhou等人提出了一種對(duì)U-Net網(wǎng)絡(luò)的跳躍連接重新布線的方法,并在胸部低劑量CT掃描中的結(jié)節(jié)分割,顯微鏡圖像中的核分割,腹部CT掃描中的肝臟分割以及結(jié)腸鏡檢查視頻中的息肉分割任務(wù)中測(cè)試了性能。Goyal將DeepLabV3應(yīng)用到皮膚鏡彩色圖像分割中,以提取皮膚病變區(qū)域。
2.3 基于注意力機(jī)制的分割方法
Nie提出了一種注意力模型,相比于baseline模型(V-Net和FCN),可以更準(zhǔn)確地分割前列腺。SinHa提出了一種基于多層注意力機(jī)制的網(wǎng)絡(luò),用于MRI圖像腹部器官分割。Qin等人提出了一個(gè)擴(kuò)張卷積模塊,以保留3D醫(yī)學(xué)圖像的更多細(xì)節(jié)。其他基于注意力機(jī)制的啼血圖像分割論文還有很多。
2.4 基于對(duì)抗學(xué)習(xí)的分割網(wǎng)絡(luò)
Khosravan提出了從CT掃描中進(jìn)行胰腺分割的對(duì)抗訓(xùn)練網(wǎng)絡(luò)。Son用生成對(duì)抗網(wǎng)絡(luò)進(jìn)行視網(wǎng)膜圖像分割。Xue使用全卷積網(wǎng)絡(luò)作為生成對(duì)抗框架中的分割網(wǎng)絡(luò),實(shí)現(xiàn)了從MRI圖像分割腦腫瘤。還有其他一些成功應(yīng)用GANs到醫(yī)學(xué)圖像分割問題的論文,不再一一列舉。
2.5 基于RNN的分割模型
遞歸神經(jīng)網(wǎng)絡(luò)(RNN)主要用于處理序列數(shù)據(jù),長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)是RNN的一個(gè)改進(jìn)版本,LSTM通過引入自環(huán)(self-loops)使得梯度流能長(zhǎng)期保持。在醫(yī)學(xué)圖像分析領(lǐng)域,RNN用于對(duì)圖像序列中的時(shí)間依賴性進(jìn)行建模。Bin等人提出了一種將全卷積神經(jīng)網(wǎng)絡(luò)與RNN融合的圖像序列分割算法,將時(shí)間維度上的信息納入了分割任務(wù)。Gao等人利用CNN和LSTM拉對(duì)腦MRI切片序列中的時(shí)間關(guān)系進(jìn)行建模,以提高4D圖像中的分割性能。Li等人先用U-Net獲得初始分割概率圖,后用LSTM從3D CT圖像中進(jìn)行胰腺分割,改善了分割性能。其他利用RNN進(jìn)行醫(yī)學(xué)圖像分割的論文還有很多,不再一一介紹。
2.6 小結(jié)
這部分內(nèi)容主要是分割算法在醫(yī)學(xué)圖像分割中的應(yīng)用,所以創(chuàng)新點(diǎn)并不多,主要還是對(duì)不同格式(CT還是RGB,像素范圍,圖像分辨率等等)的數(shù)據(jù)和不同部位數(shù)據(jù)的特點(diǎn)(噪聲、對(duì)象形態(tài)等等),經(jīng)典網(wǎng)絡(luò)需要針對(duì)不同數(shù)據(jù)進(jìn)行改進(jìn),以適應(yīng)輸入數(shù)據(jù)格式和特征,這樣能更好的完成分割任務(wù)。雖然說深度學(xué)習(xí)是個(gè)黑盒,但整體上模型的設(shè)計(jì)還是有章可循的,什么策略解決什么問題、造成什么問題,可以根據(jù)具體分割問題進(jìn)行取舍,以達(dá)到最優(yōu)的分割性能。
部分參考文獻(xiàn):
1.Deep Semantic Segmentation of Natural and Medical Images: A Review
2.NAS-Unet: Neural architecture search for medical image segmentation. IEEE Access, 7:44247–44257, 2019.
3.Boosting segmentation with weak supervision from image-to-image translation. arXiv preprint arXiv:1904.01636, 2019
4.Multi-scale guided attention for medical image segmentation. arXiv preprint arXiv:1906.02849,2019.
5.SegAN: Adversarial network with multi-scale L1 loss for medical image segmentation.
6.Fully convolutional structured LSTM networks for joint 4D medical image segmentation. In 2018 IEEE7 https://www.cnblogs.com/walter-xh/p/10051634.html