吳詩雨, 卓廣平, 朱俊東, 張光華
(1. 太原師范學(xué)院 計算機科學(xué)與技術(shù)學(xué)院, 山西 晉中 030619; 2. 太原學(xué)院 智能與自動化系, 山西 太原 030032)
眼底視網(wǎng)膜血管是全身唯一可以無創(chuàng)無痛觀測到的血管, 視網(wǎng)膜血管的分割圖像為毛細血管瘤、 視網(wǎng)膜出血斑、 血流分析、 視網(wǎng)膜圖像配準或視網(wǎng)膜圖像合成等血管疾病提供了診斷依據(jù)[1]。 目前, 視網(wǎng)膜動脈和靜脈的分割大多是眼科醫(yī)生從眼底圖像中根據(jù)動靜脈血管的顏色深淺、 口徑粗細、 分支情況等進行識別, 但是, 人工分割視網(wǎng)膜血管區(qū)分動靜脈的方法耗時多, 而且受主觀因素影響嚴重, 具有很多不確定性。 因此, 根據(jù)眼底視網(wǎng)膜血管分割結(jié)果進行動靜脈自動準確分類, 對臨床研究有著重要的意義。
近年來, 深度學(xué)習(xí)技術(shù)在圖像語義分割領(lǐng)域受到了許多計算機視覺和機器學(xué)習(xí)研究者的關(guān)注[2]。 現(xiàn)階段視網(wǎng)膜血管自動分割算法主要分為兩類: 監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)[3]。 監(jiān)督學(xué)習(xí)算法利用已有的先驗標記信息來判斷圖像中像素點是屬于血管還是背景, 無監(jiān)督學(xué)習(xí)算法不需要先驗標記信息, 而是讓圖像像素自主學(xué)習(xí)完成分類。 目前在深度學(xué)習(xí)中使用較多的是監(jiān)督學(xué)習(xí), 監(jiān)督學(xué)習(xí)算法根據(jù)先驗標記信息可以自動、 準確地識別圖像像素信息, 結(jié)果也更加準確。 目前, 先進的監(jiān)督方法模型是從眼科專家分割的圖像中獲取, 根據(jù)特征提取訓(xùn)練分類器, 并利用這個分類器進行血管動脈和靜脈的自動分類和分割。 Mirsharif等[4]利用一組像素特征和一組不同的分類器來實現(xiàn)動靜脈分離。 Relan等[5]提出使用最小二乘支持向量學(xué)習(xí)分類器[6]來分割血管, 提高了小動脈和靜脈分類的準確率。 Wang等[7]提出一種結(jié)合卷積神經(jīng)網(wǎng)絡(luò) (CNN) 和隨機森林 (RF) 的算法完成了對視網(wǎng)膜血管分割的任務(wù)。 Liskowski 等[8]通過實驗證明將深度卷積神經(jīng)網(wǎng)絡(luò)引入視網(wǎng)膜血管分割領(lǐng)域, 能有效解決傳統(tǒng)機器學(xué)習(xí)毛細血管難以分割的問題。 高宏杰[9]提出了一種基于U-Net網(wǎng)絡(luò)的視網(wǎng)膜血管分割方法, 該方法修改了卷積層之間的連接方式, 并且添加了PReLU激活函數(shù)和批量歸一化優(yōu)化模型。 Jin等[10]提出的DU-Net 網(wǎng)絡(luò)結(jié)合了可變形卷積和U-Net網(wǎng)絡(luò)的優(yōu)點, 針對眼底視網(wǎng)膜血管細小、 分割精度較低等問題, 增加了大量的上采樣算子的特征通道用于提取上下文信息, 進而提高了輸出的分辨率。 Alom等[11]提出了U-Net++, 設(shè)計了網(wǎng)狀跳躍連接, 聚合解碼器子網(wǎng)絡(luò)上不同的語義尺度特征, 形成高度靈活的特征融合方案。 Yang等[12]提出了一種拓撲結(jié)構(gòu)約束的生成對抗網(wǎng)絡(luò)(topGAN)來自動識別和區(qū)分視網(wǎng)膜圖像中的動脈和靜脈。 盡管針對視網(wǎng)膜動靜脈血管分類已經(jīng)提出了許多方法, 但是現(xiàn)有的眼底圖像視網(wǎng)膜動靜脈分類中仍存在許多問題, 例如微細血管末端出現(xiàn)假陽性、 對血管分割不足、 對病灶敏感、 血管連通性差和分類準確率低等[13]。
本文中針對上述不足, 對傳統(tǒng)U-Net模型進行改進, 提出FUnet(Four-U-net)模型算法。 經(jīng)過多次串聯(lián)的改進U-Net網(wǎng)絡(luò), 將編碼器中提取的特征經(jīng)過特征融合輸入解碼器中恢復(fù)圖像大小, 經(jīng)過多次的融合、 分割、 合并, 根據(jù)像素特征進行動靜脈分類, 最終得到眼底視網(wǎng)膜動靜脈血管分割圖像。 視網(wǎng)膜血管動靜脈分類是在血管分割結(jié)果的基礎(chǔ)上對背景像素進行標注分類, FUnet將預(yù)測結(jié)果傳到下一級網(wǎng)絡(luò)中, 進而細化分類結(jié)果, 能夠平衡動靜脈標注的分布, 解決了傳統(tǒng)U-Net網(wǎng)絡(luò)模型中動靜脈分類存在偏差的問題。
U-Net最初就是用于醫(yī)學(xué)影像分割, 并以其在醫(yī)學(xué)領(lǐng)域的杰出表現(xiàn)而聞名于世。 2015年, U-Net網(wǎng)絡(luò)模型由Ronneberger等在MICCAI會議上提出[14], 它是一種卷積自動編碼器, 下采樣由CNN組成。 U-Net網(wǎng)絡(luò)包含跳過連接, 通過連接或激活卷從下采樣路徑鏈接到上采樣路徑, 以使獲取更高分辨率信息。
U-Net是基于全卷積網(wǎng)絡(luò)的分割模型, 模型左右對稱, 可分為編碼器和解碼器。 U-Net模型編碼器采用3×3的卷積層, 激活函數(shù)為ReLU, 每兩個卷積層之后連接1個池化層進行特征提取, 每經(jīng)歷1次下采樣都會使圖像尺寸和分辨率減小為原來的1/2。 編碼器和解碼器中間通過跳躍連接Skip-Concatenate, 將圖像各層次的多維要素進行融合, 提高網(wǎng)絡(luò)對特征信息的學(xué)習(xí)能力和獲取的敏感度[15]。 U-Net在解碼器階段進行上采樣操作, 反卷積后的特征圖通過跳躍連接同一級層編碼器輸出的特征圖, 經(jīng)過特征融合之后作為下一層的輸入, 繼續(xù)上采樣, 提取圖片的特征, 還原圖像尺寸和分辨率, 最后輸出一個有效特征圖對特征點進行分類。
圖1 U-Net模型結(jié)構(gòu)示意圖[14]
本文提出一種基于U-Net模型改進而來的FUnet, 用于對視網(wǎng)膜血管進行分割和動靜脈分類, 整體分割示意圖如圖2 所示。 首先, 對U-Net模型進行改造, 在每次卷積操作之后插入批量歸一化, 并在全連接層添加跳躍連接, 提高模型訓(xùn)練速度; 然后, 將改造后的4個連續(xù)的U-Net模型串聯(lián)組成FUnet網(wǎng)絡(luò)模型, 在FUnet中自定義模型層需要訓(xùn)練的參數(shù), 對圖像進行多次的像素級訓(xùn)練, 將每次生成的血管預(yù)測圖像和原始血管圖像進行像素相乘并作為輸入再次進行預(yù)測, 提取血管的局部信息; 最后, 經(jīng)過4次預(yù)測, 輸出動脈和靜脈血管分類預(yù)測結(jié)果圖像, 訓(xùn)練結(jié)束后保留最佳模型。 通過對血管特征的不斷提取和融合, 捕獲更多的血管特征信息, 更大程度地保留血管分割的完整性。
圖2 FUnet分割示意圖
原始圖像中的像素包括視網(wǎng)膜動脈、 靜脈和背景。 在FUnet模型訓(xùn)練時, 通過Mask掩碼圖像去除圖像黑色背景, 保留視網(wǎng)膜目標部分, 更大程度地提取血管信息。 預(yù)測結(jié)果圖像中, 根據(jù)像素將動脈血管標記為紅色, 靜脈血管標記為藍色。
FUnet訓(xùn)練時采用交叉熵損失函數(shù)計算輸出損失, 公式為
(1)
通過對比不同優(yōu)化器, 最終采用效果優(yōu)于其它優(yōu)化器的Adam優(yōu)化器, Adam吸收了Adagrad(自適應(yīng)學(xué)習(xí)率的梯度下降算法)和PMSprop(動態(tài)梯度下降算法)的優(yōu)點, 在訓(xùn)練過程中為不同的參數(shù)計算不同的自適應(yīng)學(xué)習(xí)率, 這樣有利于網(wǎng)絡(luò)的優(yōu)化, 可適用于含大規(guī)模參數(shù)的問題, 并且其對內(nèi)存的需求較小[16]。 設(shè)置學(xué)習(xí)率的最大值為10-2, 最小值為10-8, 采用余弦退火策略進行調(diào)整。 余弦退火是采用余弦函數(shù)來降低學(xué)習(xí)率, 前半個周期從最大值降到最小值, 后半個周期從最小值升到最大值, 原理如下:
(2)
余弦函數(shù)的特點是開始時緩慢下降, 中間加速下降, 接著再減速下降。 隨著模型的訓(xùn)練, 所需要的參數(shù)量越來越少, 所以需要更小的學(xué)習(xí)率, 使網(wǎng)絡(luò)得到更好的收斂。 當梯度為0時, 模型就無法進行更新訓(xùn)練, 所以當訓(xùn)練梯度陷入到局部最小值時, 要通過提高學(xué)習(xí)率來更新參數(shù), 提高權(quán)重, 使模型跳出局部最小值。 動態(tài)調(diào)整每次迭代訓(xùn)練的學(xué)習(xí)率, 在相同的批處理中采用同一個學(xué)習(xí)率, 不同的批處理中采用不同的學(xué)習(xí)率。
實驗的仿真平臺為Pycharm, 使用PyTorch框架對模型進行訓(xùn)練、 驗證和測試。 整個實驗的GPU為Nvidia GeForce RTX 208 。 迭代次數(shù)為50次, 每次迭代40個批處理大小, batch size為4, 學(xué)習(xí)率最大值設(shè)置為10-2, 最小值設(shè)置為10-8, 并進行動態(tài)調(diào)整。
本文使用公開的視網(wǎng)膜血管分割的DRIVE數(shù)據(jù)集和HRF數(shù)據(jù)集。 DRIVE數(shù)據(jù)集包含40張像素尺寸為568×584的清晰眼底彩色圖像, 16張為訓(xùn)練圖像, 4張為驗證圖像, 20張為測試圖像。 其中, 33張為沒有病理的正常圖像, 其余7張為顯示輕度早期糖尿病視網(wǎng)膜病變跡象的圖像。 HRF數(shù)據(jù)集包含45張像素尺寸為3 504×2 336的眼底彩色圖像, 33張為訓(xùn)練圖像, 6張為驗證圖像, 6張為測試圖像。 其中, 15張為健康患者的圖像, 15張為糖尿病性視網(wǎng)膜病變患者的圖像, 15張為青光眼患者的圖像。
分別從受試者工作特征曲線(ROC曲線)下的面積(AUC)、 準確度A(Accuracy)、 特異度S(Specificity)3個方面對FUnet模型的分割性能進行評價。 AUC表示正樣本大于負樣本的概率, 可由ROC曲線的面積直接獲取。 AUC的取值范圍為[0,1], AUC越接近1, 表示檢測方法的準確性越高。 準確度、 特異度按式(3)、 式(4)來計算。
(3)
(4)
式中:TP為正類預(yù)測的正類數(shù);TN為負類預(yù)測的負類數(shù);FN為負類預(yù)測的正類數(shù);FP為負類預(yù)測的正類數(shù)。
數(shù)據(jù)集DRIVE和HRF中的病變圖像和健康圖像對比如圖3 所示, 由圖可以看到, 病變圖像中出現(xiàn)明顯的色素上皮萎縮和糖尿病視網(wǎng)膜病變跡象。 比較圖中圈出的細節(jié)可發(fā)現(xiàn), 不論是視盤周圍血管還是末梢血管, FUnet方法均能精確分割血管, 對動脈和靜脈的分類也更加明顯, 表現(xiàn)優(yōu)于U-Net方法。
圖3 病變圖像和健康圖像的動靜脈分割和分類圖
在DRIVE和HRF眼底圖像數(shù)據(jù)集上分別進行實驗, 對比U-Net和FUnet算法的性能, 結(jié)果見表1 和表2。
表1 DRIVE數(shù)據(jù)集分割結(jié)果
表2 HRF數(shù)據(jù)集分割結(jié)果
從表1 可以看出, FUnet算法在DRIVE數(shù)據(jù)集上的AUC、 準確度和特異度分別為0.849 7, 0.979 2 和0.991 2, 同傳統(tǒng)U-Net模型算法相比分別提升了4.11%, 7.61%和0.06%。 從表2 可以看出, 本文算法在HRF數(shù)據(jù)集上的AUC、 準確度和特異度分別為0.823 9, 0.927 2 和0.999 4, 同傳統(tǒng)U-Net模型算法相比分別提升了17.24%, 0.6%和0.18%。 以上分析表明, FUnet模型各指標均優(yōu)于U-Net模型。
圖4 為U-Net和FUnet兩種視網(wǎng)膜動靜脈分類算法在兩個數(shù)據(jù)集上的分割結(jié)果。 在眼底視網(wǎng)膜動靜脈分割中, 通過Mask圖像去除背景, 可以更有效更精準地對視網(wǎng)膜血管進行分割。 從圖4 中可以看出, 與專家標記圖像相比, U-Net算法在血管交叉點和血管末梢會出現(xiàn)斷裂、 缺失, 血管連通性差。 相比較而言, FUnet可以更好地分割出血管, 減少了微小血管的丟失, 保留了血管的更多細節(jié), 也能更加準確地對動脈和靜脈進行分類。 FUnet能有效提升血管分割的性能并對動脈和靜脈進行準確分類, 并能更好地保留眼底視網(wǎng)膜血管的完整性、 連接性和準確性。
圖4 視網(wǎng)膜動靜脈分類結(jié)果對比圖
本文基于U-Net網(wǎng)絡(luò)模型提出了一種用于視網(wǎng)膜血管分割和動靜脈分類的神經(jīng)網(wǎng)絡(luò)FUnet模型算法。 與U-Net模型相比, FUnet模型在DRIVE和HRF數(shù)據(jù)集上的AUC分別提升了4.11% 和17.24%, 準確度分別提升了7.61%和0.6%, 特異度分別提升了0.06%和0.18%。 結(jié)果表明, 采用FUne網(wǎng)絡(luò)模型可以有效分割動靜脈血管, 提高動靜脈分類的準確性。 下一步將研究更優(yōu)的動靜脈分類模型, 利用血管分割的任務(wù), 減少微小血管分類不準確的問題, 提高對眼底視網(wǎng)膜動靜脈分類的性能。