賈蒙麗,李振偉,楊曉利,許夢瑩
(河南科技大學(xué)醫(yī)學(xué)技術(shù)與工程學(xué)院,河南 洛陽 471000)
眼底的血管網(wǎng)是人體唯一能直接觀察到微循環(huán)的部位。視網(wǎng)膜血管結(jié)構(gòu)包含多種重要信息,其形態(tài)的改變與某些病理特征密切相關(guān),對視網(wǎng)膜疾病的檢測和治療有重大意義。因此,眼底血管分割對于某些疾病的診斷和治療非常重要。傳統(tǒng)的手工分割是一項漫長而艱巨的任務(wù),它需要大量的實踐、技能和訓(xùn)練[1]。因此,從眼底圖像中實現(xiàn)視網(wǎng)膜血管的自動分割成為醫(yī)學(xué)成像領(lǐng)域研究的熱點(diǎn)。
近年來,國內(nèi)外學(xué)者提出了許多分割眼底圖像的算法。自動分割分為兩類:無監(jiān)督學(xué)習(xí)和有監(jiān)督學(xué)習(xí)。無監(jiān)督方法如匹配濾波器[2]、基于模型[3]等,這些方法分割精度低。有監(jiān)督方法如Orlando 等人[4]提出一種特殊模型來分割血管,在DRIVE 和 CHASE_DB1 數(shù)據(jù)集上實驗的靈敏度分別為:0.7897 和0.7277。Alom等人[5]使用U-Net實現(xiàn)醫(yī)學(xué)圖像的分割過程,包括視網(wǎng)膜血管的分割,結(jié)果表明該方法在分割方面是優(yōu)越的。Suryani等人[6]利用自組織圖人工神經(jīng)網(wǎng)絡(luò)的主要方法對血管進(jìn)行分割。提出的分割方法分為三個階段,即預(yù)處理,分割和性能分析。Upadhyay等人[7]提出了一種基于規(guī)則的視網(wǎng)膜血管分割算法。結(jié)合局部方向小波變換和全局曲線變換,以新穎的方式實現(xiàn)了血管的增強(qiáng)和分割。徐光柱等人[8]提出了一種無監(jiān)督與有監(jiān)督相結(jié)合分割新方法。耿磊等人[9]提出一種將分離卷積與通道加權(quán)結(jié)合的血管分割方法。李大湘等人[10]通過在U-Net網(wǎng)絡(luò)中引入Inception、空洞卷積與注意力機(jī)制等模塊對血管進(jìn)行分割。但所提出的算法仍無法準(zhǔn)確分割出細(xì)小血管,且存在噪聲。
針對現(xiàn)有算法在細(xì)小血管及低對比度血管的分割能力不足的問題,本文在原有的U型網(wǎng)絡(luò)基礎(chǔ)上進(jìn)行改進(jìn)優(yōu)化,旨在進(jìn)一步改善微小血管的分割準(zhǔn)確率。首先,通過一系列的圖像預(yù)處理方法對原始眼底圖像進(jìn)行增強(qiáng)和降偽處理;其次,使用殘差網(wǎng)絡(luò)和U型網(wǎng)絡(luò)相結(jié)合的方式增強(qiáng)圖像特征提取能力,解決過擬合問題,從而更好地分割出微小血管;最后,使用ELU激活函數(shù)代替網(wǎng)絡(luò)中原有的ReLU激活函數(shù),進(jìn)一步提高網(wǎng)絡(luò)的泛化能力。該方法可以實現(xiàn)難以識別的視網(wǎng)膜血管邊緣和對比度較低的小血管分割。
DRIVE[11]總共有40幅眼底圖像,分辨率為565×584,其中訓(xùn)練集和測試集分別有20幅,每幅圖像都有金標(biāo)準(zhǔn),有專門掩沒,是衡量視網(wǎng)膜血管分割方法性能常用的數(shù)據(jù)庫。
2.2.1 數(shù)據(jù)預(yù)處理
由于采集到的視網(wǎng)膜圖像中的光照不均勻,微血管與背景之間的對比度較低等因素,為了得到更好的數(shù)據(jù),需對圖像進(jìn)一步處理。具體步驟如下:
1)灰度轉(zhuǎn)換。如圖1所示,相比較其它兩通道,綠色通道的圖像對比度最高,背景與血管的差距最大,噪聲也最小,因此,輸入數(shù)據(jù)選擇此通道數(shù)據(jù)。
圖1 眼底圖像及不同通道的圖像
2)CLAHE。提高對比度同時抑制噪聲,因此可以更容易的關(guān)注到血管的結(jié)構(gòu)和特征。
3)伽馬變換。在不影響亮度較強(qiáng)部分的眼底圖像質(zhì)量的同時增強(qiáng)亮度較暗的血管部分。整個預(yù)處理的結(jié)果如圖2所示,可以看出處理后的圖像較原始圖像,其血管與背景的對比度有明顯的增強(qiáng)。
圖2 眼底圖像及預(yù)處理。
2.2.2 數(shù)據(jù)擴(kuò)增
深度學(xué)習(xí)需要大量的數(shù)據(jù)來擬合模型參數(shù),針對只有20張眼底圖像的DRIVE數(shù)據(jù)集,采用隨機(jī)切片的方式來對數(shù)據(jù)進(jìn)行擴(kuò)增,為防止數(shù)據(jù)擴(kuò)增時丟失細(xì)節(jié)信息,本文通過減少上采樣層和下采樣層的次數(shù)避免特征的細(xì)節(jié)丟失,以進(jìn)一步降低訓(xùn)練過程中的過擬合現(xiàn)象。根據(jù)原始眼底圖像的大小,將從數(shù)據(jù)庫提取的圖像大小設(shè)置為48×48,每個尺寸為48×48的貼片是通過整個圖像內(nèi)隨機(jī)選擇其中心獲得的,從訓(xùn)練集中提取出的圖像塊總數(shù)190000。圖3為局部切片示例。(a)中所有樣本塊包含數(shù)據(jù)庫中所有圖像,以擴(kuò)充數(shù)據(jù)量。(b)為對應(yīng)的金標(biāo)準(zhǔn)圖像。
圖3 局部切片示例
為了更好的分割出細(xì)小血管,引入了ResNet網(wǎng)絡(luò),以解決卷積運(yùn)算越多,網(wǎng)絡(luò)越深,網(wǎng)絡(luò)性能下降的問題。使用激活函數(shù)ELU解決原始激活函數(shù)輸入值為負(fù)時所產(chǎn)生的神經(jīng)元失活問題,使網(wǎng)絡(luò)性能得到進(jìn)一步提升。
2.3.1 U-Net模型
U形網(wǎng)絡(luò)[12]對于小數(shù)據(jù)集的圖像具有很好的分割性能。由收縮路徑和擴(kuò)展路徑構(gòu)成,通過4次上采樣和4次下采樣對圖像進(jìn)行分割。但是網(wǎng)絡(luò)通過收斂層后,無法復(fù)原圖像的詳細(xì)結(jié)構(gòu)信息,可能會引起微血管的分割和破壞現(xiàn)象。
2.3.2 ResNet模型
為增加網(wǎng)絡(luò)深度且不影響網(wǎng)絡(luò)訓(xùn)練,在U-Net 基礎(chǔ)上引入殘差網(wǎng)絡(luò),殘差網(wǎng)絡(luò)(ResNet)利用殘差單元模塊解決了隨網(wǎng)絡(luò)層次加深帶來的優(yōu)化問題。殘差單元模塊通過將前向神經(jīng)網(wǎng)絡(luò)短路連接實現(xiàn),結(jié)構(gòu)如圖4所示。
圖4 殘差單元模塊
殘差結(jié)構(gòu)計算公式如式(1)(2)所示
yl=h(xl)+F(xl,wl)
(1)
xl+1=f(yl)
(2)
式中:xl和xl+1分別表示第l個殘差單元的輸入和輸出,F是殘差函數(shù),f是Relu激活函數(shù),h(xl)=xl是恒等映射。從淺層到深層的學(xué)習(xí)特征可以由(1)(2)求得,如(3)所示
(3)
利用鏈?zhǔn)揭?guī)則,可以得出反向過程的梯度,如式(4)所示
(4)
2.3.3 選取激活函數(shù)
U型網(wǎng)絡(luò)中使用的是常見的ReLU激活函數(shù),其定義如式5所示
f(x)=max(0,x)
(5)
如圖5所示,ReLU是線性函數(shù)計算速度快,輸入值為正時無梯度飽和問題,但為負(fù)時神經(jīng)元不被激活,會導(dǎo)致神經(jīng)元失活。
圖5 ReLU與ELU函數(shù)
ELU函數(shù)是改進(jìn)型,其定義如式(6)所示:
(6)
如圖5所示,相比較ReLU,ELU輸入為負(fù)時有輸出,可以消除神經(jīng)元失活問題。ELU函數(shù)也可以加速訓(xùn)練并且可以提高分類的準(zhǔn)確率,使用ELU激活函數(shù)替換ReLU函數(shù)。
2.3.4 血管分割的網(wǎng)絡(luò)模型
考慮到現(xiàn)有的卷積神經(jīng)學(xué)習(xí)網(wǎng)絡(luò)的缺點(diǎn),例如高存儲成本和低計算效率,本文提出了U型網(wǎng)絡(luò)和ResNet組合的新網(wǎng)絡(luò)結(jié)構(gòu)(命名為RU-Net),如圖6所示。結(jié)合兩種模型的優(yōu)點(diǎn),提高了網(wǎng)絡(luò)性能的訓(xùn)練,在訓(xùn)練時間減少的同時使得網(wǎng)絡(luò)特性都得到利用,從而更好地解決了眼底圖像的偽影干擾,能保持更多的血管特性信息,獲得更多小血管,在訓(xùn)練集較少時不發(fā)生過擬合現(xiàn)象,測試集分割精度提高,具有較強(qiáng)的魯棒性。
圖6 改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)RU-Net
為了解決數(shù)據(jù)量較少引起的過擬合問題,本文將原始的U型網(wǎng)絡(luò)結(jié)構(gòu)改為3個上采樣層和3個下采樣層,且保留收縮路徑和擴(kuò)張路徑之間的跳躍鏈接。
網(wǎng)絡(luò)的左半部分為下采樣部分,根據(jù)ResNet所構(gòu)建,其核心為4組conv 與 MaxPooling,第一組采用了卷積核數(shù)為32的2個3×3卷積運(yùn)算,第二組、第三組和第四組采用3個3×3卷積運(yùn)算,分別是64、128和256卷積核。
網(wǎng)絡(luò)的右半部分上采樣部分,與下采樣相對應(yīng),除了通過上一層采樣獲得的深度抽象特征外,每個conv輸入集還輸出淺層的局部特征。同時深度特征和淺層特征是通過Concat方法融合,以確??臻g信息維度不變。使用ELU函數(shù)優(yōu)化網(wǎng)絡(luò),最后通過softmax對血管與背景進(jìn)行分類,輸出血管分割結(jié)果。
本文的仿真平臺為PyCharm,使用tensorflow端口和keras開發(fā)庫,在DRIVE圖像庫上進(jìn)行實驗。為了在訓(xùn)練過程中盡可能地獲得更多樣本,本文通過隨機(jī)提取圖像塊的方式增加樣本,將提取出的190000樣本送入網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,訓(xùn)練集和驗證集的比例為9:1。最后使用測試集測試網(wǎng)絡(luò)模型的精度。
準(zhǔn)確度Acc、特異性Sp和靈敏度Sn是衡量視網(wǎng)膜眼底圖像血管分割的性能好壞的三個重要指標(biāo),ROC曲線性能是衡量算法優(yōu)越性的另一個重要指標(biāo)。視網(wǎng)膜眼底圖像血管分割后將劃分的結(jié)果和醫(yī)學(xué)專家手動的金標(biāo)準(zhǔn)結(jié)合來判斷是否有效,結(jié)果如表1所示,可以分為四種情況[13]:第一種是分類正確的血管點(diǎn),稱之為真陽性TP;第二種是分類錯誤的血管點(diǎn),稱之為假陽性FP;第三種是分類正確的背景點(diǎn),稱之為真陰性TN;第四種則是分類錯誤的背景點(diǎn),稱之為假陰性FN。
表1 方法血管分割結(jié)果與金標(biāo)準(zhǔn)比較情況
利用上述數(shù)據(jù)可以得到三個衡量算法性能的指標(biāo),分別為準(zhǔn)確度Acc、特異性Sp和靈敏度Sn,公式如下
(7)
(8)
(9)
在需要進(jìn)行二分類問題的性能衡量時,一般都使用ROC曲線。ROC曲線繪制是用靈敏度作為縱向坐標(biāo),用特異度作為橫向坐標(biāo)來描繪出一個曲線。當(dāng)劃分的結(jié)果越趨向于精準(zhǔn),ROC曲線就會越趨近于左上方。衡量血管劃分方法的另一個方法則用ROC曲線下部分的面積來表示,稱之為AUC,其數(shù)值越接近于1時,血管的劃分結(jié)果性能越好。
通過對比金標(biāo)準(zhǔn)圖像和文獻(xiàn)[14]與文獻(xiàn)[15]中的實驗結(jié)果,從圖7中可以看出,本文算法能分割出細(xì)小血管,同時對低對比度的血管圖像也有較好的分割效果。
圖7 不同算法分解結(jié)果比較(a)原始圖像(b)金標(biāo)準(zhǔn)圖像(c)文獻(xiàn)[14](d)文獻(xiàn)[15](e)本文算法
為了證明該方法的可行性,將其與其它方法進(jìn)行了比較,其靈敏度,準(zhǔn)確度均得到了驗證,結(jié)果如表2所示。
表2 不同文獻(xiàn)方法之間性能數(shù)據(jù)對比
為了證明該方法的可行性,將其與其它方法進(jìn)行了比較,其靈敏度,特異性和準(zhǔn)確度均得到了驗證,結(jié)果如表2所示,本文算法的準(zhǔn)確率、特異性和AUC比現(xiàn)有算法略高,其中準(zhǔn)確率達(dá)到0.9738、特異性達(dá)到0.9892、AUC達(dá)到 0.9823??梢钥闯?該算法具有較好的綜合分割性能。
針對現(xiàn)有算法在細(xì)小血管及低對比度血管的分割能力不足的問題,本文在原有的U型網(wǎng)絡(luò)基礎(chǔ)上,通過殘差網(wǎng)絡(luò)和U型網(wǎng)絡(luò)相結(jié)合的方式,使用ELU激活函數(shù)代替網(wǎng)絡(luò)中原有的ReLU激活函數(shù)對網(wǎng)絡(luò)進(jìn)行優(yōu)化。通過和現(xiàn)有算法的分割性能相比較,該方法不僅提高了分割準(zhǔn)確率,同時對于低對比度的細(xì)小血管的分割也有很好的效果。