秦曉飛,鄭超陽,陳浩勝,李 夏,何致遠(yuǎn)
(1.上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093;2.上海理工大學(xué) 機(jī)械工程學(xué)院,上海 200093)
視網(wǎng)膜血管分割是眼底圖像定量分析的關(guān)鍵步驟。通過對視網(wǎng)膜血管的分割,可以得到視網(wǎng)膜血管樹的相關(guān)形態(tài)學(xué)信息(如血管的曲率、長度、寬度)。此外,視網(wǎng)膜血管的血管樹具有獨(dú)特的特征,也可用于生物識別領(lǐng)域。因此,視網(wǎng)膜血管的準(zhǔn)確分割具有重要意義。
視網(wǎng)膜血管分割的第一步是分割圖像中與血管相對應(yīng)的區(qū)域。在形式上,血管分割是一個(gè)二值分類問題,它具有如下挑戰(zhàn):首先,眼科醫(yī)生需要手工標(biāo)注每張眼底圖像中的每一條血管,對從業(yè)者的專業(yè)技能要求極高,導(dǎo)致現(xiàn)有的數(shù)據(jù)集比較小,通常只有20~40張圖像;其次,需要對每張圖像進(jìn)行數(shù)十萬甚至數(shù)百萬像素的分類,并將附近像素的標(biāo)簽進(jìn)行關(guān)聯(lián)。
近年來,深度卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺領(lǐng)域廣泛應(yīng)用。然而,由于上述的挑戰(zhàn),訓(xùn)練一個(gè)泛化能力強(qiáng)的深度網(wǎng)絡(luò)來分割視網(wǎng)膜圖像并不簡單。將深度學(xué)習(xí)應(yīng)用于該領(lǐng)域的兩種主要策略是:1)將每幅圖像分割成小塊,最大限度地增加訓(xùn)練樣本的數(shù)量;2)將傳統(tǒng)卷積層與上采樣相結(jié)合,學(xué)習(xí)局部和全局特征。以U-Net[1]為代表的網(wǎng)絡(luò)正是由于采用了第二種策略而取得了最新的成果。
研究表明,U-Net和其他基于深度學(xué)習(xí)的方法更傾向?qū)⒛:南袼胤诸悶楸尘?。盡管這些方法可以分割模糊的血管以及位于較厚血管邊緣的像素,但卻低估了單個(gè)血管的寬度,以及大血管與小血管的比例。這會影響診斷,因?yàn)樵S多關(guān)鍵的生物標(biāo)志物,包括動(dòng)靜脈比、分支角度、分支數(shù)、分形維數(shù)、彎曲度和血管長徑比都需要對單個(gè)血管進(jìn)行精確測量。
針對以上視網(wǎng)膜血管分割挑戰(zhàn)性的問題,本文提出了一種新穎的U型卷積網(wǎng)絡(luò)。在網(wǎng)絡(luò)的中間層用空洞的空間金字塔池化(atrous spatial pyramid pooling,ASPP)模塊來提取視網(wǎng)膜圖像的上下文特征,避免了細(xì)節(jié)信息的丟失,增大了卷積核的感受野,有效地提取了細(xì)小血管的特征。編碼器利用殘差模塊代替普通卷積,避免模型過深導(dǎo)致梯度消失的問題,提高了網(wǎng)絡(luò)泛化能力。網(wǎng)絡(luò)模型采用U型結(jié)構(gòu)進(jìn)行堆疊卷積,提取了血管的結(jié)構(gòu)化特征,提升了分割的準(zhǔn)確率。此外,還設(shè)計(jì)了通道注意力模塊,把低層次的特征與高層次的特征相融合,通過這種策略,網(wǎng)絡(luò)可以根據(jù)視網(wǎng)膜血管的大小自適應(yīng)地調(diào)節(jié)血管信息采集區(qū)域,得到不同形狀的視網(wǎng)膜血管預(yù)測圖。實(shí)驗(yàn)結(jié)果表明,本文方法在視網(wǎng)膜血管分割任務(wù)上取得了較好的結(jié)果。
方法流程如圖1所示。首先,對原始圖像進(jìn)行預(yù)處理,抽取眼底圖像通道,并用標(biāo)準(zhǔn)數(shù)據(jù)增強(qiáng)的方法對數(shù)據(jù)集進(jìn)行擴(kuò)充。其次,用U型卷積網(wǎng)絡(luò)對預(yù)處理好的數(shù)據(jù)集進(jìn)行訓(xùn)練,網(wǎng)絡(luò)輸入圖像的大小沒有固定限制,輸入圖像與輸出圖像的分辨率相同。最后,對網(wǎng)絡(luò)模型的預(yù)測結(jié)果進(jìn)行全局閾值分割得到最終的二值分割結(jié)果。
圖1 本文算法流程圖Fig.1 Flow chart of algorithm
大量的實(shí)驗(yàn)表明,U型結(jié)構(gòu)可以恢復(fù)相應(yīng)的空間信息。原始的全卷積神經(jīng)網(wǎng)絡(luò)(fully convolutional network, FCN)[2]通過設(shè)計(jì)跳級結(jié)構(gòu)對不同級別的特征進(jìn)行編碼,而U-Net對FCN進(jìn)行改進(jìn)后,設(shè)計(jì)了經(jīng)典的U型編解碼架構(gòu)。它由典型的下采樣編碼器和上采樣解碼器結(jié)構(gòu)組成,兩者之間有“跳躍連接”。由于其良好的性能,目前許多視網(wǎng)膜血管分割方法都是基于U-Net網(wǎng)絡(luò)進(jìn)行改進(jìn)的。例如,Wang等[3]設(shè)計(jì)了雙編碼UNet網(wǎng)絡(luò)(DEU-Net),顯著提高了網(wǎng)絡(luò)端到端的像素對視網(wǎng)膜血管的分割能力。Wu等[4]提出了血管網(wǎng)絡(luò)(Vessel-Net),首次采用結(jié)合初始法和殘差法優(yōu)點(diǎn)的策略進(jìn)行視網(wǎng)膜血管分割。雖然U-Net及其變體網(wǎng)絡(luò)性能良好,但它們不能有效地利用結(jié)構(gòu)信息,這會影響到分割的性能。因此,設(shè)計(jì)一個(gè)更好的網(wǎng)絡(luò)來獲得結(jié)構(gòu)信息是很有必要的。
計(jì)算機(jī)視覺中的注意力機(jī)制的基本思想是:讓系統(tǒng)像人一樣學(xué)會忽略無關(guān)信息而關(guān)注重點(diǎn)信息。近年來,深度學(xué)習(xí)與視覺注意力機(jī)制結(jié)合的研究工作,大多數(shù)是使用掩碼(Mask)來形成注意力機(jī)制的。掩碼的原理在于通過學(xué)習(xí)新的權(quán)重,將圖片數(shù)據(jù)中關(guān)鍵的特征標(biāo)識出來,然后經(jīng)過訓(xùn)練,讓神經(jīng)網(wǎng)絡(luò)學(xué)到每一張圖片中需要關(guān)注的區(qū)域,也就形成了注意力。Hu等[5]提出了一種注意力選擇機(jī)制,在這種機(jī)制中,特征映射首先使用全局平均池化進(jìn)行聚合,然后簡化為單個(gè)通道描述符,最后使用激活門來突出最具區(qū)別性的特征。Wang等[6]在ResNet[7]中增加了一個(gè)注意模塊用于圖像分類,該注意模塊由幾個(gè)編解碼層組成。Fu等[8]提出了基于空間和通道的雙重注意力網(wǎng)絡(luò),使得網(wǎng)絡(luò)在提取通道特征的同時(shí),還能保留相應(yīng)的空間信息。注意力機(jī)制常與編解碼器結(jié)構(gòu)的模型結(jié)合使用[9]。
本文設(shè)計(jì)了基于經(jīng)典編解碼架構(gòu)的U型卷積網(wǎng)絡(luò),主網(wǎng)絡(luò)如圖2(a)所示。編碼器由一組級聯(lián)的殘差模塊組成,以逐步提取更抽象的特征。為了減少參數(shù)數(shù)量,提高計(jì)算效率,編碼器是基于ResNet-34進(jìn)行構(gòu)造的,它包含4個(gè)殘差模塊,共34層,殘差模塊如圖2(b)所示。在網(wǎng)絡(luò)的中間層,利用ASPP[10]模塊來提取不同尺度的上下文特征;在跳級結(jié)構(gòu)部分,設(shè)計(jì)了通道注意力模塊,把高層次的特征和低層次的特征進(jìn)行融合,增強(qiáng)了類內(nèi)預(yù)測的一致性。解碼器由兩部分組成:首先,網(wǎng)絡(luò)使用解碼模塊(見圖2(c))逐層進(jìn)行上采樣,在解碼模塊中,使用了轉(zhuǎn)置卷積來恢復(fù)更高分辨率的特性;其次,為了進(jìn)一步融合不同尺度的特征,先將ASPP模塊得到的特征圖用Pixelshuffle進(jìn)行上采樣,然后與解碼器最后一層上采樣的特征圖進(jìn)行元素相加得到融合后的特征圖。在網(wǎng)絡(luò)的最后一層,用1×1卷積和Sigmoid函數(shù)輸出最終的預(yù)測圖。
圖2 網(wǎng)絡(luò)總體結(jié)構(gòu)圖Fig.2 Overall network structure
ASPP模塊主要通過平行或者級聯(lián)的方式堆疊不同擴(kuò)張率(6、12、18、24)的卷積核,組成類似金字塔方式對輸入的特征圖進(jìn)行卷積操作,如圖3所示。通過這種模塊,可以在不降低分辨率的情況下,增大特征感受野,從而提取不同尺度的上下文語義信息。
圖3 ASPP 模塊示意圖Fig.3 Illustration of ASPP block
通道注意力模塊(CAB)旨在改變每個(gè)階段特征的權(quán)重,以增強(qiáng)特征的一致性,如圖4所示。通道注意力模塊是為了增強(qiáng)類內(nèi)一致性而設(shè)計(jì)的,它可以結(jié)合相鄰階段的特征并得到一個(gè)通道注意力向量,高層的特征提供了一個(gè)很強(qiáng)的一致性約束,而低層的特征帶來不同的差異特征。利用高層特征對低層的特征進(jìn)行引導(dǎo),進(jìn)而通道注意力向量能夠自主的選擇差異特征。
圖4 通道注意力模塊示意圖Fig.4 Illustration of channel attention block
通道注意力權(quán)重分配如圖5所示。首先,把高低層次的特征級聯(lián)起來;然后,將級聯(lián)的特征集合到一個(gè)特征向量,并計(jì)算它的權(quán)重向量,該向量可以對特征進(jìn)行權(quán)重再分配,即特征的選擇和組合;最后,把高低層次的特征進(jìn)行融合得到最終的特征圖。通道注意模塊基于自注意力機(jī)制,可以提高網(wǎng)絡(luò)對特征的敏感性。藍(lán)色塊代表低階段特征,黃色塊代表高階段特征。模塊將相鄰階段的特征級聯(lián)起來,計(jì)算出一個(gè)權(quán)重向量,從而對低階的特征圖重新賦權(quán)。較暖的顏色表示較高的權(quán)重值。
圖5 通道注意力權(quán)重分配示意圖Fig.5 Illustration of channel attention weight allocation
圖像分割任務(wù)中最常用的損失函數(shù)是像素方向的交叉熵?fù)p失(CrossEntropyLoss)。這種損失會逐個(gè)檢查每個(gè)像素,將類預(yù)測向量與一個(gè)熱點(diǎn)編碼的目標(biāo)(或地面真值)向量進(jìn)行比較。因此,本文采用交叉熵?fù)p失作為損失函數(shù),可以定義為
式中:P0表示在標(biāo)簽圖下像素點(diǎn)為血管像素的概率;P1表示在標(biāo)簽圖下像素點(diǎn)為背景像素的概率;N表示總像素;表示像素點(diǎn)Sigmoid函數(shù)映射,輸出為血管像素的概率;表示像素點(diǎn)經(jīng)Sigmoid函數(shù)映射,輸出為非血管像素的概率。
實(shí)驗(yàn)采用公開的DRIVE數(shù)據(jù)集[11]。DRIVE數(shù)據(jù)集包括40張視網(wǎng)膜的彩色圖像,其中20張用于訓(xùn)練,其余20張用于測試。每張圖片像素大小是565×584,它對應(yīng)有兩個(gè)專家手工標(biāo)注的金標(biāo)準(zhǔn)圖像。由于數(shù)據(jù)集圖像數(shù)量較少,對數(shù)據(jù)集采用隨機(jī)旋轉(zhuǎn)、添加高斯噪聲和色彩抖動(dòng)等方法處理,擴(kuò)充了數(shù)據(jù)集,防止網(wǎng)絡(luò)訓(xùn)練過擬合。
編碼器網(wǎng)絡(luò)的初始權(quán)重來自ImageNet上預(yù)訓(xùn)練好的ResNet-34,其他層的參數(shù)隨機(jī)初始化。設(shè)置模型訓(xùn)練的Batchsize為8、動(dòng)量為0.9、權(quán)重衰減為0.000 1,學(xué)習(xí)率為 4 e-3。采用隨機(jī)梯度下降(SGD)算法對目標(biāo)函數(shù)進(jìn)行優(yōu)化,整個(gè)網(wǎng)絡(luò)框架是使用PyTorch實(shí)現(xiàn)的。在兩塊NVIDIA GTX1080Ti Gpus上進(jìn)行訓(xùn)練大約需要1.5 h。在測試過程中,每幅圖像在0.015 s內(nèi)產(chǎn)生分割結(jié)果。
視網(wǎng)膜血管分割通常被表述為二元密集分類任務(wù),即在輸入圖像中預(yù)測每個(gè)像素屬于陽性(血管)或陰性(非血管)類。一個(gè)像素預(yù)測可以屬于四類中的一類,即真陽性(TP)、真陰性(TN)、假陽性(FP)和假陰性(FN)。如表1所示,本文采用了四個(gè)常用的評價(jià)指標(biāo):準(zhǔn)確率(ACC)、敏感性(SE)、特異性(SP)和受試者工作特征曲線下面積(AUC)。本文使用二值化閾值方法獲取最終分割結(jié)果,ACC、SE和SP都依賴于二值化方法。除特別說明外,所有閾值敏感度量都采用全局閾值化方法,閾值調(diào)整值為0.5。
表1 本文方法性能評估指標(biāo)Tab.1 The performance evaluation index of this method
本文算法與其他文獻(xiàn)方法的敏感性、特異性和準(zhǔn)確率對比如表2所示,其中加粗的數(shù)據(jù)為本文算法。表2總結(jié)了不同方法的發(fā)布年份以及在DRIVE數(shù)據(jù)集上的性能。從表中可以看出,U型卷積網(wǎng)絡(luò)在DRIVE數(shù)據(jù)集上取得了最好的性能。敏感性最高為0.830 6,準(zhǔn)確率最高為0.967 8,特異性最高為0.983 4。以上結(jié)果表明,U型卷積網(wǎng)絡(luò)在視網(wǎng)膜血管分割挑戰(zhàn)中取得了最好的性能,且在該數(shù)據(jù)集上有較強(qiáng)的魯棒性。
表2 相關(guān)算法在DRIVE數(shù)據(jù)集上的性能對比Tab.2 Performance comparison of related algorithms on the DRIVE dataset
實(shí)驗(yàn)表明,U-Net和其他基于深度學(xué)習(xí)的方法在分割時(shí)更傾向?qū)⒛:南袼胤诸悶楸尘?。因此,這些方法忽視了視網(wǎng)膜血管的結(jié)構(gòu)化信息。而U型卷積網(wǎng)絡(luò)在中間層引入了ASPP模塊,提取了多尺度的結(jié)構(gòu)化信息,因此在敏感性指標(biāo)上有顯著的提升。在跳級層中設(shè)計(jì)了通道注意力CAB,對高低層次的特征進(jìn)行了細(xì)化,突出了血管的前景,減小了背景的影響,從而使得準(zhǔn)確性較高。DEU-Net網(wǎng)絡(luò)對輸入圖像的分辨率有固定的要求,由于訓(xùn)練時(shí)圖像裁剪成了很多小塊,因而不能進(jìn)行端到端的訓(xùn)練,這大大增加了訓(xùn)練的時(shí)間和成本。而U型卷積網(wǎng)絡(luò)對于輸入圖像的分辨率沒有限制,輸入一張?jiān)紙D像,經(jīng)過端到端的訓(xùn)練可以得到一張與輸入圖像大小相同的預(yù)測圖。因而對比表中的方法,U型卷積網(wǎng)絡(luò)具有其獨(dú)特的優(yōu)勢,在性能指標(biāo)上獲得了最好的結(jié)果。
ROC(Receiver Operating Characteristic)曲線是衡量視網(wǎng)膜血管分割精確度的重要曲線,曲線以錯(cuò)誤的正樣本率為橫軸,正確的正樣本率為縱軸進(jìn)行繪制。為了進(jìn)一步評估U型卷積神經(jīng)網(wǎng)絡(luò)的性能,用算法繪制了ROC曲線,并計(jì)算了ROC曲線下的面積AUC(Area Under the ROC Curve),如果AUC的值為1,則代表完美分割,如圖6所示。模型在DRIVE數(shù)據(jù)集上AUC的值為0.984 1,因此,本文的算法對于視網(wǎng)膜血管分割有很好的性能。算法在數(shù)據(jù)集上的測試結(jié)果如圖7所示,通過對比圖像發(fā)現(xiàn)生成的預(yù)測圖像和金標(biāo)準(zhǔn)圖像非常接近,相比于金標(biāo)準(zhǔn)圖像能夠更加準(zhǔn)確分割細(xì)小的血管,這表明本文的算法模型在DRIVE數(shù)據(jù)集上具有優(yōu)秀的泛化能力。
圖6 DRIVE 數(shù)據(jù)集上 ROC 曲線Fig.6 ROC curve on DRIVE dataset
圖7 DRIVE 數(shù)據(jù)集上的測試結(jié)果Fig.7 Test results on DRIVE dataset
本文針對視網(wǎng)膜血管圖像中細(xì)小血管分割精度低的問題,提出了新穎的U型卷積網(wǎng)絡(luò)分割方法。在網(wǎng)絡(luò)中間層引入ASPP模塊,充分學(xué)習(xí)眼底視網(wǎng)膜圖像的血管細(xì)節(jié);在網(wǎng)絡(luò)的跳級層設(shè)計(jì)了通道注意力模塊,對不必要的特征進(jìn)行抑制,提高視網(wǎng)膜血管圖像的分割精度,使得預(yù)測在類內(nèi)保持一致。網(wǎng)絡(luò)可以根據(jù)視網(wǎng)膜血管的大小形狀自適應(yīng)地調(diào)節(jié)血管信息采集區(qū)域,從而可以得到精確的視網(wǎng)膜血管分割圖。在實(shí)驗(yàn)效果上與其他模型相比分割精度最高,模型的魯棒性也表現(xiàn)最好。