王師瑋,陳 俊,易才鍵
(福州大學(xué) 物理與信息工程學(xué)院,福州 350108)
據(jù)統(tǒng)計報告,中國是世界上盲人最多的國家之一,約有1 200萬盲人,占全世界盲人的18%。失明的重要原因之一就是眼底視網(wǎng)膜血管病變,在眾多致盲疾病的案例中,有許多病例是可以通過視網(wǎng)膜檢查來進(jìn)行防治的。以糖尿病視網(wǎng)膜病變?yōu)槔袊薪?億糖尿病患者,在已知病史的糖尿病患者中視網(wǎng)膜病變的患病率65.2%,糖尿病患者眼底3~5年發(fā)病率為38.1%,5~15年發(fā)病率為39.58%,15年以上發(fā)病率為50%。如果患者能夠在確診為糖尿病后及時做眼底檢查,記錄自己的眼底視網(wǎng)膜影像并按期復(fù)查,就能在病變一出現(xiàn)苗頭時及時治療,這將大大降低后期出現(xiàn)視力損傷、致盲的概率。因此,建立眼科影像檔案來進(jìn)行視網(wǎng)膜病變的早期篩查工作就變得十分重要。
眼底視網(wǎng)膜血管是全身血管系統(tǒng)中唯一可以直接無創(chuàng)觀測到的部分,其自身變化,例如:血管長度、寬度、彎曲度、分叉模式等結(jié)構(gòu)特性的變化,均可作為診斷與血管相關(guān)疾病的依據(jù)。許多眼部疾病的病變情況可以在視網(wǎng)膜血管上觀察到,例如:青光眼、糖尿病視網(wǎng)膜病變、老年性黃斑病變等。通過對視網(wǎng)膜血管的結(jié)構(gòu)特性進(jìn)行專業(yè)分析,就可以觀察到這些眼底疾病病變的具體臨床表現(xiàn),這為后續(xù)的診斷和治療有著重要意義。視網(wǎng)膜血管分割是獲取這些結(jié)構(gòu)特性的重要步驟,良好的分割結(jié)果將使后續(xù)的檢測分析更準(zhǔn)確。由于眼底存在許多微小的毛細(xì)血管,視網(wǎng)膜血管結(jié)構(gòu)又相對復(fù)雜、不規(guī)律,采用人工分割視網(wǎng)膜血管圖像的方式將會十分繁瑣,因此研究出一種高效、精確的視網(wǎng)膜血管自動分割算法是非常有必要的。
目前,國內(nèi)外的眾多學(xué)者提出了許多優(yōu)秀的視網(wǎng)膜血管自動分割算法,根據(jù)是否需要標(biāo)簽分為兩大類:無監(jiān)督算法和有監(jiān)督算法。
視網(wǎng)膜血管分割算法中的無監(jiān)督算法主要有:基于形態(tài)學(xué)處理的方法、基于匹配濾波的方法、基于形變模型的方法等。無監(jiān)督算法在分割過程中不需要利用專家手工標(biāo)注的金標(biāo)準(zhǔn)圖,主要是根據(jù)血管的原始信息來設(shè)計算法,此類算法易受數(shù)據(jù)的個體特征影響而無法廣泛應(yīng)用,且分割精度較難提高。
有監(jiān)督算法在分割過程中需要依靠專家手工標(biāo)注的金標(biāo)準(zhǔn)圖來訓(xùn)練模型并進(jìn)行迭代學(xué)習(xí),得到最好的模型結(jié)果,此類算法在血管分割上通常能夠得到比無監(jiān)督算法更好的效果。近年來,隨著基于有監(jiān)督的深度學(xué)習(xí)技術(shù)的快速發(fā)展及其在計算機視覺任務(wù)中的良好表現(xiàn),越來越多的學(xué)者將深度學(xué)習(xí)技術(shù)應(yīng)用于目標(biāo)分割領(lǐng)域。2014年Long等人提出全卷積網(wǎng)絡(luò)(Fully Convolutional Networks,F(xiàn)CN),開創(chuàng)性地將網(wǎng)絡(luò)中的全連接層改成卷積層,從而使整個網(wǎng)絡(luò)結(jié)構(gòu)中只有卷積層,并將其運用到分割任務(wù)中;Ronneberger等人提出了具有對稱性結(jié)構(gòu)的U-Net網(wǎng)絡(luò),其中包括了編碼-解碼過程,使用了跳躍連接方式在上采樣階段將淺層特征進(jìn)行融合。U-Net特別的網(wǎng)絡(luò)結(jié)構(gòu)使得其在醫(yī)學(xué)圖像分割領(lǐng)域上表現(xiàn)出良好的性能,現(xiàn)有的很多模型也是在傳統(tǒng)U-Net的基礎(chǔ)上改進(jìn)的。Zhang Zhengxin等和Zeng Yuanyi等分別受到殘差連接和密集連接的啟發(fā),將U-Net的子模塊分別替換為具有殘差連接和密集連接的形式,由此設(shè)計了Res-UNet和Dense-Unet;Alom提出了R2U-Net,將殘差連接與循環(huán)卷積的方法相結(jié)合,替換U-net的子模塊;Lian等人在U-Net中引入注意力機制,在特征拼接之前,使用了一個注意力模塊,該模塊生成一個門控信號,用來控制不同空間位置處特征的重要性;Zongwei Zhou等人提出的U-Net++網(wǎng)絡(luò),可以抓取不同層次的特征并以特征疊加的方式進(jìn)行融合;CAO Hu提出了首個基于純Transformer的U形醫(yī)學(xué)圖像分割網(wǎng)絡(luò)Swin-UNet,也取得了不錯的效果。
為了減少在視網(wǎng)膜血管分割過程中的細(xì)節(jié)丟失問題,提升分割精度,本文設(shè)計了一種改進(jìn)U-Net網(wǎng)絡(luò)模型結(jié)構(gòu)。經(jīng)驗證,本文算法較現(xiàn)有的先進(jìn)模型在分割效果上有一定的提升,可為臨床醫(yī)學(xué)診斷提供輔助信息。
針對傳統(tǒng)算法在眼底視網(wǎng)膜血管分割過程中的特征提取困難、細(xì)節(jié)區(qū)域分割不精確的問題,本文在U-Net網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行改進(jìn),提出了一種能更好進(jìn)行血管分割的算法CSD-UNet,其整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。該網(wǎng)絡(luò)在原U-Net的卷積過程中引入卷積注意力模塊(Convolutional Block Attention Module,CBAM),構(gòu)成一個新的卷積模塊CD-Conv,以此來對血管的細(xì)微結(jié)構(gòu)進(jìn)行通道和空間增強;使用SoftPool的池化方法、密集上采樣卷積(Dense Upsampling Convolution,DUC)方法,解決結(jié)構(gòu)信息丟失、損耗的問題。CSD-UNet算法能夠在不丟失信息的情況下,進(jìn)一步增加感受野并提高對細(xì)微特征的提取能力,進(jìn)而提高分割準(zhǔn)確率。
圖1 CSD-UNet整體網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Overall network structure of CSD-UNet
CD-Conv模塊是由CBAM模塊和雙層卷積構(gòu)成的,其結(jié)構(gòu)如圖2所示。在本文的血管分割任務(wù)中,考慮引入通道注意力來增強通道間的關(guān)聯(lián)性,解決神經(jīng)網(wǎng)絡(luò)中不同通道對特征選擇有不同依賴性的問題;考慮引入空間注意力來捕獲不同尺度的空間位置信息,突出血管區(qū)域特征抑制背景噪聲。CBAM模塊正是這兩者很好的結(jié)合,并且其是一個輕量級的通用模塊,可以無縫集成于本文的分割網(wǎng)絡(luò)之中,其結(jié)構(gòu)如圖3所示。
圖2 CD-Conv模塊結(jié)構(gòu)Fig.2 The structure of CD-Conv module
圖3 CBAM模塊結(jié)構(gòu)Fig.3 The structure of CBAM module
給定一個中間特征映射∈R,CBAM模塊順序地沿著通道和空間兩個獨立的維度進(jìn)行推導(dǎo),分別得到注意力圖M∈R、M∈,其中?表示按位相乘,F是最終的細(xì)化輸出。完整過程可歸納為式(1)~式(2):
其中,M是由通道注意力模塊獲得的,M是由空間注意力模塊獲得的,可定義為式(3)~式(4):
CBAM的通道注意力模塊、空間注意力模塊的結(jié)構(gòu)如圖4和圖5所示。
圖4 通道注意力模塊結(jié)構(gòu)Fig.4 The structure of channel attention module
圖5 空間注意力模塊結(jié)構(gòu)Fig.5 The structure of spatial attention module
SoftPool能較好地參考特征區(qū)域內(nèi)的激活值分布,進(jìn)而服從一定的概率分布,能夠很好地保留視網(wǎng)膜血管的細(xì)微特征表達(dá)。
視網(wǎng)膜中存在的許多細(xì)微血管結(jié)構(gòu)往往會在訓(xùn)練過程中丟失,造成視網(wǎng)膜血管分割精度降低。因此,選擇密集上采樣卷積作為本算法的上采樣方法,產(chǎn)生密集的像素級預(yù)測映射,且在上采樣過程中捕獲更多細(xì)節(jié)信息。其結(jié)構(gòu)如圖6所示。
圖6 密集上采樣卷積模塊結(jié)構(gòu)Fig.6 The structure of DUC module
給定輸入圖片,整個網(wǎng)絡(luò)在預(yù)測前的輸出特征映射大小為,其中:,,為下采樣因子。DUC方法通過通道維度來彌補長寬尺寸上的損失,將轉(zhuǎn)為(),是分割類別的數(shù)目,最后再reshape回尺寸。其DUC的核心思想就是將整個標(biāo)簽映射劃分為與特征映射等尺寸的子部分,這些子部分被疊加次后又會直接得到整個標(biāo)簽映射。
CSD-UNet模型的開發(fā)集成環(huán)境為PyCharm,基于開源的Pytorch框架,運行平臺為Windows系統(tǒng),GPU為NVIDIA GeForce RTX 2070,內(nèi)存為16 GB。使用DRIVE數(shù)據(jù)集和CHASE_DB1數(shù)據(jù)集來驗證本文的算法。
DRIVE數(shù)據(jù)集共有40張565×584彩色眼底圖像,其中33張為正常眼底圖像,7張存在輕度早期糖尿病視網(wǎng)膜病變,本文從中選擇訓(xùn)練集和測試集各20張;CHASE_DB1數(shù)據(jù)集包括從14名學(xué)童的雙眼中拍攝的28張視網(wǎng)膜圖像,每幅圖像的大小為999×960,本文從中選擇20張用于訓(xùn)練,8張用于測試。
為了提高模型分割血管的精度,要先對圖像進(jìn)行預(yù)處理之后再輸入網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。預(yù)處理方法主要包括以下步驟:
(1)提取視網(wǎng)膜圖像的G通道,并轉(zhuǎn)為灰度圖;
(2)歸一化處理后再采用自適應(yīng)直方圖均衡化方法(CLAHE),增強血管與背景對比度的同時不放大噪聲;
(3)使用伽馬算法對圖像進(jìn)行對比度的均勻增強;
(4)采用隨機裁剪的方式進(jìn)行數(shù)據(jù)擴充。
測試集不進(jìn)行數(shù)據(jù)預(yù)處理。
在DRIVE、CHASE_DB1數(shù)據(jù)集上對本文算法進(jìn)行測試,視網(wǎng)膜血管分割結(jié)果如圖7、8所示,第一列是原始圖像,第二列是本文算法的分割結(jié)果,第三列是本文算法的分割二值圖像,第四列是手工標(biāo)記的分割結(jié)果圖??梢钥闯?,本文的CSD-UNet模型可以較好地克服血管分割的難點,得到良好的分割結(jié)果。
圖7 DRIVE數(shù)據(jù)集上的分割結(jié)果Fig.7 Segmentation results on DRIVE dataset
圖8 CHASE_DB1數(shù)據(jù)集上的分割結(jié)果Fig.8 Segmentation results on CHASE_DB1 dataset
將本文算法與近年用于視網(wǎng)膜血管分割的幾種先進(jìn)算法進(jìn)行對比,采用了準(zhǔn)確率(Accuracy,),敏感度(Sensitivity,),特異性(Specificity,),1(1score)以及(Area Under Curve)5種常用的衡量算法性能的指標(biāo)來進(jìn)行分析,其定義分別如式(7)~式(10):
其中,(真陽性)表示將正例預(yù)測為正例的數(shù)量;(假陽性)表示將負(fù)例預(yù)測為正例的數(shù)量;(假陰性)表示將負(fù)例預(yù)測為負(fù)例的數(shù)量;(真陰性)表示將正例預(yù)測為負(fù)例的數(shù)量。
為ROC曲線下方的面積,ROC(Receiver Operating Characteristic,ROC)曲線以(真陽性率)、(假陽性率)為縱、橫坐標(biāo),計算為式(11)~式(12):
其中,N表示金標(biāo)準(zhǔn)圖中正例數(shù)量;N表示金標(biāo)準(zhǔn)圖中負(fù)例數(shù)量;表示預(yù)測結(jié)果中正例數(shù)量;表示預(yù)測結(jié)果中負(fù)例數(shù)量。
在DRIVE、CHASE_DB1測試集上的實驗結(jié)果見表1、表2。實驗結(jié)果表明,CSD-UNet方法在視網(wǎng)膜血管分割任務(wù)上的性能較其他方法有一定的提升。在DRIVE、CHASE_DB1數(shù)據(jù)集上的曲線和曲線如圖9、圖10所示。
圖9 DRIVE數(shù)據(jù)集上的PR曲線和ROC曲線Fig.9 PR curve and ROC curve on DRIVE dataset
圖10 CHASE_DB1數(shù)據(jù)集上的PR曲線和ROC曲線Fig.10 PR curve and ROC curve on CHASE_DB1 dataset
表1 DRIVE數(shù)據(jù)集上各種算法的實驗結(jié)果Tab.1 Experimental results of various algorithms on DRIVE dataset
表2 CHASE_DB1數(shù)據(jù)集上各種算法的實驗結(jié)果Tab.2 Experimental results of various algorithms on DRIVE dataset
本文基于U-Net網(wǎng)絡(luò),引入CBAM、SoftPool、DUC方法,設(shè)計了一種能夠更好地進(jìn)行眼底視網(wǎng)膜血管分割的算法CSD-UNet。該算法在公開數(shù)據(jù)集DRIVE、CHASE_DB1上進(jìn)行驗證,得到結(jié)果值為0.956 8、0.965 9,值為0.979 3、0.987 8,1值為0.824 1、0.832 3,值為0.795 2、0.764 0,值為0.980 4、0.991 1。分割結(jié)果的客觀評價指標(biāo)與主觀視覺驗證了該算法在分割精度方面的有效性,且較現(xiàn)有的先進(jìn)算法有一定的提升。