原忠虎, 雷 瑩, 韓曉微
(沈陽大學(xué) a. 信息工程學(xué)院, b. 科技創(chuàng)新學(xué)院, 遼寧 沈陽 110044)
眼底視網(wǎng)膜血管形態(tài)結(jié)構(gòu)是衡量人體健康的重要指標(biāo),能夠反映出人體的各種疾病,如糖尿病視網(wǎng)膜病變、青光眼、高血壓等。因此,對視網(wǎng)膜眼底血管進(jìn)行精準(zhǔn)分割,對輔助醫(yī)生診斷和治療人體疾病具有重要的臨床意義[1]。
由于噪聲對視網(wǎng)膜圖像的影響,圖像存在對比度過低、微小血管分割細(xì)節(jié)不夠等問題。為了解決這些問題,研究者們提出了許多血管分割的算法,其中主要分為無監(jiān)督學(xué)習(xí)算法和有監(jiān)督學(xué)習(xí)算法。
無監(jiān)督學(xué)習(xí)算法的優(yōu)點(diǎn)是信息特征不需要提前被標(biāo)記、數(shù)據(jù)量較小,但是效率高。有很多種類的傳統(tǒng)無監(jiān)督算法,例如基于形態(tài)學(xué)、匹配濾波、跟蹤血管路徑及基于模型等。Lam等[2]提出了一種基于改進(jìn)模型的血管分割技術(shù),通過調(diào)整局部歸一化的凹度量來解決視網(wǎng)膜眼底圖像中由于亮度不均勻?qū)е碌脑肼晢栴},進(jìn)而處理亮度不一致的病變區(qū)域。Nayebifar等[3]提出了一種基于粒子濾波的視網(wǎng)膜血管跟蹤方法,采用隨機(jī)采樣的粒子表達(dá)概率密度分布來對視網(wǎng)膜血管進(jìn)行分割。Hassan等[4]提出了一種基于形態(tài)學(xué)的視網(wǎng)膜血管分割算法,通過腐蝕和膨脹、開運(yùn)算和閉運(yùn)算等形態(tài)學(xué)操作來對血管進(jìn)行分割。由于無監(jiān)督算法直接根據(jù)經(jīng)驗(yàn)來設(shè)計(jì)模型,容易受到人為因素的影響,很難保證分割質(zhì)量始終保持在一個(gè)較高的水平。
有監(jiān)督學(xué)習(xí)算法需要通過人為大量標(biāo)注數(shù)據(jù)作為監(jiān)督信息,并進(jìn)一步完成對視網(wǎng)膜血管信息特征的學(xué)習(xí)和血管分割。傳統(tǒng)機(jī)器學(xué)習(xí)方法是最先被使用來對圖像特征進(jìn)行提取和學(xué)習(xí)的。Fraz等[5]提出一種決策樹與形態(tài)學(xué)變換相結(jié)合的方法來進(jìn)行血管信息特征的提取與分割。Ricci等[6]采用支持向量機(jī)模型來根據(jù)血管寬度對其進(jìn)行分割。近幾年來,深度學(xué)習(xí)在圖像處理方面有了很大的突破。起初,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)是通過卷積運(yùn)算來對圖像進(jìn)行特征提取的。Long等[7]于2015年提出了全卷積神經(jīng)網(wǎng)絡(luò)(fully convolutional network,FCN)。該網(wǎng)絡(luò)把卷積神經(jīng)網(wǎng)絡(luò)最后的全連接層替換成反卷積層,從而得到了精細(xì)的分割效果。在此基礎(chǔ)上,Ronneberger等[8]提出了一種完全對稱的編碼-解碼器:U-Net分割模型。該模型采取通道拼接融合的方式來提取特征,從而可以有效地將編碼過程中所丟失的信息恢復(fù)。Huang等[9]提出了密集卷積網(wǎng)絡(luò)(dense convolutional network,DenseNet)。該算法通過密集連接的方式將先前所有層的信息保留下來,能夠增加圖像的底層信息,從而加強(qiáng)特征。為了擴(kuò)大圖像的感受野,Chen等[10]提出了利用空洞卷積代替?zhèn)鹘y(tǒng)卷積層的方法,但是這會帶來丟失局部細(xì)節(jié)信息的問題。因此,Chen等[11]進(jìn)一步地提出了利用空洞空間金字塔池化(atrous spatial pyramid pooling,ASPP)的方法來增強(qiáng)信息之間的依賴性,從而可以更有效地捕捉圖像的尺度信息。Wang等[12]提出了利用卷積神經(jīng)網(wǎng)絡(luò)和隨機(jī)森林相結(jié)合的眼底血管分割算法,但是很難準(zhǔn)確地分割血管邊界信息。 Feng等[13]利用了FCN來對視網(wǎng)膜血管進(jìn)行分割,盡管絕大部分的血管結(jié)構(gòu)能被準(zhǔn)確分割出來,但是由于沒有考慮到像素之間的關(guān)系,而只是在融合時(shí)相加了對應(yīng)像素點(diǎn),因此缺乏空間的一致性。薛文渲等[14]提出了在U-Net基礎(chǔ)上添加Inception模塊來提升對視網(wǎng)膜血管的分割。這不僅平衡了網(wǎng)絡(luò)的寬度和深度,還可以提取到多尺度信息與形狀結(jié)構(gòu)。除此之外,該方法還將底部池化層替換為空洞金字塔卷積,從而可以更好地捕捉血管的細(xì)小特征,減少信息丟失。蔡乾宏等[15]將U-Net網(wǎng)絡(luò)與Mini-U-Net網(wǎng)絡(luò)進(jìn)行結(jié)合,提出了2階段分割方法。該方法將原始卷積層替換為殘差卷積的形式,并在跳躍連接部分加入了注意力機(jī)制。因此,該方法能夠使血管的細(xì)節(jié)信息更好地被保留下來,并提高分割精度。
本文設(shè)計(jì)了基于密集空洞卷積的注意力機(jī)制視網(wǎng)膜分割算法,同時(shí)將該算法對視網(wǎng)膜血管的分割效果與現(xiàn)有的分割算法在DRIVE數(shù)據(jù)集進(jìn)行評估對比,說明本文分割算法的優(yōu)越性。
本文提出了一種基于密集空洞卷積的注意力機(jī)制視網(wǎng)膜分割算法,整體框架如圖1所示。具體來講,該方法以DenseNet網(wǎng)絡(luò)作為基礎(chǔ)網(wǎng)絡(luò),采用密集連接塊來提取編碼部分的特征,并在此基礎(chǔ)上用空洞卷積代替?zhèn)鹘y(tǒng)卷積,增大了感受野,獲取到更多的眼部信息,通過空間注意力機(jī)制模塊來對血管和病灶信息進(jìn)行增強(qiáng),抑制其他無用信息。
本文算法的整體網(wǎng)絡(luò)包含下采樣操作的收縮路徑以及上采樣操作的擴(kuò)張路徑。具體包括密集空洞卷積模塊,最大池化層,空間注意機(jī)制模塊,3×3卷積、BN、ReLU。除此之外,還有上采樣、復(fù)制拼接、1×1卷積等。
編碼部分提取視網(wǎng)膜圖像信息特征和解碼部分融合信息的具體過程如下。
編碼部分包括3個(gè)最大池化操作。每個(gè)池化操作都會將圖像減小到原始尺寸的一半。本文模型采用具有較強(qiáng)特征提取能力的密集連接模塊(dense block)。該模塊會將每一層提取到的血管信息特性作為所有后續(xù)層的輸入,這些特性被不斷重復(fù)使用,因此底層的空間信息被充分利用。除此之外本文提出的方法以空洞卷積取代傳統(tǒng)U網(wǎng)模型的卷積,從而可以增加感受野,且無需更多參數(shù)即可獲得有關(guān)視網(wǎng)膜血管的信息。使用1×1卷積來減少計(jì)算量,使用ReLU層增加非線性表達(dá)能力。解碼部分包括3次上采樣操作。對于每個(gè)上采樣操作,圖像是原始尺寸的2倍。每層的跳躍連接通過1×1的卷積減少維數(shù),并補(bǔ)充1個(gè)通道數(shù)為24的特征圖。具體過程如下:解碼部分的輸出先經(jīng)過3×3卷積來提取高維特征。之后該模型通過跳躍連接將編碼部分的補(bǔ)充特征圖與解碼部分的輸出拼接起來作為下一層解碼部分的輸入。在這里跳躍連接用于恢復(fù)圖像大小、提高特征的豐富程度、減少語義信息的丟失、并傳遞了全局特征。除此之外,空間注意模塊用于改善空間維度上的視網(wǎng)膜血管特征,抑制來自背景信息的干擾。最后一層的1×1卷積,將特征向量映射到類的標(biāo)簽,得到分割預(yù)測圖。因此,將編碼部分的粗糙特性與解碼部分的精細(xì)特征相結(jié)合,可以更好地獲取原始圖像的空間信息和細(xì)節(jié)信息。
圖1 密集空洞卷積的注意力機(jī)制分割模型Fig.1 Segmentation model of attention mechanism based on dense hole convolution
1.2.1 空洞卷積
當(dāng)CNN對圖像進(jìn)行卷積池化操作時(shí),圖像尺寸會減小再恢復(fù)。但在這個(gè)過程當(dāng)中,有一些重要的信息會丟失。因此,本文選擇了空洞卷積代替標(biāo)準(zhǔn)卷積,即在編碼器和解碼器之間布置捕獲全局上下文的空洞卷積塊,這樣就可以在不使用池化操作的情況下也能擴(kuò)大感受野。
空洞卷積是通過步長來將卷積的元素分離的卷積過程,如圖2所示。
(a) 標(biāo)準(zhǔn)卷積(b) 步長為1的空洞卷積(c) 步長為2的空洞卷積
當(dāng)3×3濾波器與輸入映射進(jìn)行卷積時(shí),在密集區(qū)域執(zhí)行3×3標(biāo)準(zhǔn)卷積,如圖2(a)所示。在每個(gè)元素處將輸入值乘以過濾器值以獲得相應(yīng)的值。另一方面,空洞卷積具有步長,即卷積元素之間的距離。如圖2(b)所示,如果步長設(shè)置為1,5×5區(qū)域采用3×3濾波器。當(dāng)步長設(shè)置為2時(shí),對7×7區(qū)域進(jìn)行卷積,如圖2(c)所示。與標(biāo)準(zhǔn)卷積相比,空洞卷積是一種稀疏連接到更廣范圍的卷積,用不同的步長堆疊5個(gè)空洞卷積層。雖然空洞卷積具有與標(biāo)準(zhǔn)卷積相同大小的濾波器,但它可以感知更大的區(qū)域并通過疊加捕獲全局上下文。
1.2.1 密集空洞卷積模塊
現(xiàn)有的殘差結(jié)構(gòu)在網(wǎng)絡(luò)的深度和寬度上都有很大的局限,但是密集連接模塊(DenseBlock)并沒有這種困擾。這主要是得益于提取到的特性都能被密集連接模塊充分利用。與傳統(tǒng)的結(jié)構(gòu)都是依賴最后一層的輸出不同,這種方法可以使下一層考慮先前所有層的輸出,而不僅僅是從最新層獲取信息。因此,密集連接模塊通過底層空間信息可以學(xué)到更多可復(fù)用模式,得到的決策函數(shù)也更平滑,泛化性更好。最后,將密集連接模塊與空洞卷積相結(jié)合就是本文提出的密集空洞卷積模塊,如圖3所示。
圖3 密集空洞卷積模塊結(jié)構(gòu)Fig.3 Structure of dense cavity convolution module
具體來講,輸入3個(gè)通道的眼底圖像在經(jīng)過1層卷積后獲得64×64×32的特征圖。而該特征圖被作為第1層密集空洞卷積模塊的輸入。在密集空洞卷積模塊中,特征圖每次經(jīng)過1層卷積之前都要經(jīng)過1×1卷積的降維。增長率k與特征圖數(shù)量之間的關(guān)系為
Il=Il-1+kNl-1。
(1)
式中:Il表示第l層的特征通道輸入的數(shù)量;Nl-1表示第l-1層的卷積數(shù)量。在本文中,k為16,且使用了6層卷積,因此最終輸出特征圖像的數(shù)量為64×64×32,加上前層所有的輸出64×64×16×6。此時(shí)每個(gè)密集塊中的卷積都會生成k個(gè)特征圖,先前層的所有輸出特征作為下一層的輸入,會導(dǎo)致特征數(shù)量成倍增加。本文除了選取合適的增長率k=16外,還使用1×1卷積操作進(jìn)行通道維度上的降維,避免特征圖的爆炸性增長。在密集空洞卷積模塊中經(jīng)過6層卷積后生成的特征圖再使用1×1的卷積,融合所有以前的特征,把通道數(shù)降維到一半,特征圖大小為64×64×64,隨后經(jīng)過最大池化層,第一個(gè)下采樣的過程就完成了,得到了32×32×64的特征圖。
本文不采用平均池化層而采用最大池化層是因?yàn)樽畲蟪鼗瘜訉ν蛔凕c(diǎn)更加敏銳。血管和病灶就是圖像中最突出的值,這樣特征的細(xì)節(jié)就能夠被更多地提取出來。
1.2.3 跳躍連接
根據(jù)上述提出的密集空洞卷積模塊,得到的語義信息具有豐富的特征。因此,只要再經(jīng)過解碼器的上采樣操作把信息恢復(fù)到原始大小,就可以進(jìn)一步完成分割預(yù)測。但是,直接進(jìn)行上采樣操作會導(dǎo)致一些重要的信息丟失。因此,本文構(gòu)建了一個(gè)基于跳躍連接的圖像大小恢復(fù)解碼器,如圖4所示。
圖4 基于跳躍連接的解碼器Fig.4 Decoder based on hop connection
本文提出的跳躍連接結(jié)構(gòu)可將高維的特征和低維特征融合。具體來說,輸入在經(jīng)過1×1的卷積操作減少參數(shù)和通道數(shù)后,低維信息會依次經(jīng)過批量歸一化層(BN)和ReLU激活函數(shù),并和高級特征進(jìn)行融合。
1.2.4 空間注意力機(jī)制
注意力機(jī)制主要有2個(gè)方面:①決定需要關(guān)注輸入的哪部分;②分配有限的信息處理資源給重要的部分??臻g注意力機(jī)制是將原始圖片中的空間信息變換到另一個(gè)空間中并保留了關(guān)鍵信息。因?yàn)榫矸e神經(jīng)網(wǎng)絡(luò)中的池化層直接用最大池化或者平均池化的方法,將圖片信息壓縮,減少運(yùn)算量來提升準(zhǔn)確率。但是直接將信息合并會導(dǎo)致關(guān)鍵信息無法被識別出來,所以一個(gè)叫空間轉(zhuǎn)換器的模塊被提出,將圖片中的空間域信息做對應(yīng)的空間變換,從而能將關(guān)鍵的信息提取出來。
為了更好地定位血管的位置,可以將單個(gè)像素位置的權(quán)重與當(dāng)前特征圖的上下文信息相結(jié)合。這樣就可以生成像素級別的空間注意力加權(quán)信息,如圖5所示。圖5中,C和R為通道數(shù),H和W是圖片的高和寬。
圖5 空間注意力加權(quán)信息生成Fig.5 Spatial attention weighted information generation
首先,輸入圖像同時(shí)經(jīng)過平均池化操作和最大池化操作提取特征,并將它們進(jìn)行拼接。接下來,利用卷積核大小為7的卷積操作將特征聚合在一起,并使用Sigmoid函數(shù)執(zhí)行激活操作。因此,空間注意力Ms(F)公式為
(2)
本文使用的數(shù)據(jù)集來源于DRIVE數(shù)據(jù)庫,其包含的40張圖像的尺寸為564×584。為了進(jìn)行有監(jiān)督學(xué)習(xí),血管和掩膜圖像都被專家手動標(biāo)注出來,如圖6所示。
(a) 原始眼底圖像(b) 金標(biāo)準(zhǔn)圖像(c) 掩模圖像
在本實(shí)驗(yàn)中,使用Python語言作為編程語言。在TensorFlow后端框架下的Keras深度學(xué)習(xí)開發(fā)庫上進(jìn)行網(wǎng)絡(luò)的搭建和訓(xùn)練。以9∶1的比例來分配訓(xùn)練集和測試集,使用Adam函數(shù)優(yōu)化網(wǎng)絡(luò)參數(shù),分類誤差的衡量采用對數(shù)交叉熵。第一個(gè)學(xué)習(xí)速率設(shè)置為0.001。如果訓(xùn)練過程中的誤差沒有減少,學(xué)習(xí)率減少一半,每次訓(xùn)練32個(gè)圖像塊,訓(xùn)練100輪。
由于環(huán)境或者器材的原因,視網(wǎng)膜眼底圖像往往會出現(xiàn)血管對比度弱且存在噪聲的情況。但是實(shí)驗(yàn)發(fā)現(xiàn),在眼底圖像的3個(gè)顏色(紅R、綠G、藍(lán)B)通道中,綠色通道(G通道)中的血管對比度最高且存在的噪聲較小。因此,本文將綠色通道單獨(dú)提取出來,如圖7所示。
除此之外,由于圖片存在光照不均勻的情況,需要對圖像進(jìn)行歸一化操作。具體來講,利用線性變換的方式將像素從灰度值0~255轉(zhuǎn)換成0~1范圍。
(3)
式中,μ和σ是灰度圖I的平均值和標(biāo)準(zhǔn)偏差,本實(shí)驗(yàn)中μ和σ值均設(shè)置為0.5。
(a) 原圖(b) 藍(lán)色通道(c) 綠色通道(d) 紅色通道
為了增強(qiáng)眼底圖像的對比度,且不增加噪聲對圖像的影響,本文使用對比度受限的自適應(yīng)直方圖均衡化算法。經(jīng)過CLAHE算法的處理后,對比度得到明顯提升,如圖8(a)所示。
除此之外,本文也執(zhí)行非線性變換的Gamma變換對圖像進(jìn)行處理,以減少亮度不均勻所造成的影響,如圖8(b)所示。
(a) CLAHE處理后圖像(b) Gamma校正后圖像
在深度學(xué)習(xí)中,訓(xùn)練模型需要大量的數(shù)據(jù)樣本來擬合模型參數(shù)。在本次研究中,由于只有40張圖片(樣本數(shù)量過少),因此需要對數(shù)據(jù)進(jìn)行增廣操作:包括對圖像進(jìn)行翻轉(zhuǎn)、移位、加噪,和隨機(jī)切塊。本文的切塊操作以5個(gè)像素點(diǎn)為間隔,并且為了不丟失上下文信息,采用了重疊切塊,大小設(shè)置為32×32,如圖9所示。
(a) 原始眼底圖像塊(b) 金標(biāo)準(zhǔn)血管圖像塊
為了定量分析視網(wǎng)膜血管分割效果,本研究采用了準(zhǔn)確率(accuracy, Acc)、靈敏度(sensitivity, Sen)、特異性(specificity, Spe)、ROC曲線下方的面積AUC來對模型進(jìn)行評估。
本文利用訓(xùn)練好的模型對驗(yàn)證數(shù)據(jù)集進(jìn)行了分割驗(yàn)證。將本文提出的算法和其他視網(wǎng)膜分割算法進(jìn)行對比的結(jié)果見表1。本文提出的算法在DRIVE測試集上Acc值為0.961 3,Sen值為0.779 8,Spe值為0.984 9,AUC值為0.987 6,均高于其他分割算法得到的相關(guān)數(shù)值。在準(zhǔn)確率上比U-Net網(wǎng)絡(luò)模型高了0.51%,在靈敏度上高了2.33%,在AUC上高了0.41%,在特異性上高了0.26%。因此,本章的算法模型具有較好的魯棒性和泛化能力。
表1 各算法結(jié)果比較Table 1 Results comparison of each algorithm
除此之外,本文還做了消融實(shí)驗(yàn)來驗(yàn)證本文模型的有效性,結(jié)果如表2所示。
表2 各模塊結(jié)果比較Table 2 Results comparison of each module
由表2可以看出,綜合使用各模塊的效果最好,各個(gè)模塊都起到了積極作用。血管分割產(chǎn)生積極的影響如圖10所示。圖10中,縱坐標(biāo)為真陽性率(TPR),橫坐標(biāo)為假陽性率(FPR),圖10(a)中AUC為0.983 5,圖10(b)中AUC為0.985 7,圖10(c)中AUC為0.987 6。
(a) 單獨(dú)使用密集連接的ROC曲線(b) 使用密集空洞卷積的ROC曲線(c) 所有模塊都使用的ROC曲線
本文模型的AUC為0.987 6,說明本文模型能夠更正確的分類背景像素和血管像素。各個(gè)模塊分割效果圖及細(xì)節(jié)圖如圖11、圖12所示。
(a) 原圖(b) 金標(biāo)準(zhǔn)(c) U-Net(d) 加入a、b模塊(e) 加入c模塊(f) 本文算法
(a) 原圖(b) 金標(biāo)準(zhǔn)(c) U-Net(d) 加入a、b模塊(e) 加入c模塊(f) 本文算法
由圖11可以看出單獨(dú)加入密集空洞模塊和單獨(dú)加入空間注意力機(jī)制模塊對于分割效果都產(chǎn)生了積極影響。本文網(wǎng)絡(luò)模型在血管分割細(xì)節(jié)上比U-Net模型分割效果表現(xiàn)更好,圖像的噪點(diǎn)也較少,視網(wǎng)膜的細(xì)小血管保留也比較完整。為了對本文多路徑U-Net網(wǎng)絡(luò)模型的視網(wǎng)膜血管分割結(jié)果進(jìn)行更詳細(xì)的分析和比較,在選取的部分分割結(jié)果圖中通過矩形框選擇不同的分割細(xì)節(jié)部分進(jìn)行分割效果比較。經(jīng)觀察圖12可知,本文所提算法得到的分割結(jié)果基本上和專家分割的標(biāo)準(zhǔn)圖是一致的,特別是在細(xì)小血管的分割上有很好的效果。圖12(f)中分割出更多的細(xì)小血管,血管也呈現(xiàn)出連續(xù)性,血管大小與金標(biāo)準(zhǔn)圖像比較相似,而圖12(c)的分割結(jié)果中,很多細(xì)小血管未分割出來,部分血管也存在不連續(xù)性??傊?圖12(f)的分割結(jié)果與圖12(c)的分割結(jié)果相比,圖12(f)本文算法模型分割的血管更加細(xì)膩,血管連續(xù),完整性也比較好,表現(xiàn)出了更好的視網(wǎng)膜血管分割效果。
本文在U-Net的基礎(chǔ)上,提出了一種新的分割方法實(shí)現(xiàn)對血管的分割。該方法使用密集空洞卷積作為特征提取器,提取編碼部分的特征,無需增加網(wǎng)絡(luò)參數(shù)就能擴(kuò)大感受野范圍,并實(shí)現(xiàn)了特征的復(fù)用。同時(shí)為了解決最大池化帶來的信息丟失問題,還設(shè)計(jì)了跳躍連接模塊,將編碼部分的部分特征復(fù)制到同一階段的解碼部分。通過空間注意機(jī)制模塊對血管和病變信息進(jìn)行關(guān)注增強(qiáng),抑制背景噪聲,實(shí)驗(yàn)結(jié)果表明,該算法與其他算法相比取得了較好的效果,證明了該算法的可行性。