薛文渲,劉建霞
(太原理工大學信息與計算機學院,山西晉中 030600)
眼底RGB 圖像是眼睛內表面的投影,由于其不同的形狀、分叉、延伸程度的結構特征,可以用于分析判斷視網膜上的血管分布[1-10]。其中,血管樹是醫學圖像中最穩定的特征,可用于生物識別。眼科醫生可以通過眼底圖像中呈現的血管形態進行有效的篩選和判斷,以確定糖尿病視網膜病變、青光眼和微動脈瘤的眼科狀況[11-14]。傳統的非監督學習方法有匹配濾波方法[15]、形態學處理方法[16]、形變模型方法[14]等,雖然無需專家手工標注的金標準圖,但由于不同眼底圖像形態的特征復雜度差別極大,傳統方法編碼[1]較為簡單,對血管特征提取程度差,分割效果不佳,無法滿足實際臨床輔助的需求。為滿足實際臨床輔助視網膜分割的需要,實現更好的視網膜圖像分割水平,文中提出基于U-Net[2]的視網膜眼底圖像分割混合算法,用以克服原始U-Net 網絡層數過深導致的網絡計算量過大和細小血管信息丟失的問題[3]。文中方法通過學習眼底金標準圖像對復雜多變的眼底血管像素點進行預測,提供更為精準的視網膜血管形態、尺度場景等信息,具有分割精度高、抗干擾性強、計算效率快等優勢。文中提出的模型方法使用TensorFlow 框架進行實驗,實驗表明文中方法有助于解決分割結果在細微血管分叉處不連續、復雜曲度形態血管丟失的問題,從而可以達到更好的分割性能,具有一定的臨床應用的價值。
由于眼底視網膜圖像中血管與背景之間的明暗特征不全,視盤區域亮度過高,圖像分割干擾較強,視網膜血管直徑、分叉特征差別大等問題,文中提出了一種基于改進U-Net的網絡模型算法,如圖1 所示。該網絡由編碼器、金字塔型空洞卷積[4]與解碼器組成,將網絡中的原始卷積層改為Inception 模塊[5],使用多個不同尺度的卷積增強網絡的泛化能力和神經網絡的學習能力,并引入金字塔型空洞卷積,在保證網絡參數不過度增大的情況下極大地保留了視網膜圖像特征映射的感受野,從而減小分割結果中細小血管的丟失程度。

圖1 文中網絡模型算法
在實際網絡學習過程中,眼底視網膜圖像經過預處理后輸入編碼器。在編碼部分,文中算法將一個3×3的原始普通卷積層作為第一層,其后為4 個Inception 模塊,該模塊為1×1、3×3 和5×5 卷積層并聯連接,用以提取尺度不同的視網膜血管特征進行融合,并接入1×1 卷積,減少輸入信息尺度,防止運算體量過大;然后經過2×2的池化層接入金字塔空洞卷積,其通道數為512。在解碼部分,反卷積層仍使用Inception 模塊,并通過SoftMax 激活函數針對視網膜血管有效像素點與背景噪聲像素點進行分類,隨后輸出其分割結果。
原始U-Net 網絡中卷積層在視網膜血管分割任務中存在著細節丟失,特征信息提取不全面的問題。為增加卷積性能,眾多學者運用改進卷積層深度與寬度的方式,但這種改進方式會使參數劇增,在實際訓練過程中很易產生過擬合現象,使計算量過載。因此,文中算法將U-Net 中的傳統卷積層改進為Inception 模塊,使用不同多尺度的卷積核,提高非線性結構表達力與網絡泛化能力,提高神經網絡學習視網膜血管學習水平。該算法使用的Inception 模塊結構如圖2 所示。

圖2 Inception模塊結構
如圖2 所示,模塊中原始的卷積層變為1×1、3×3、5×5 3 種不同尺度特征的卷積核進行特征提取,并在卷積后使用3×3 最大池化層進行眼底視網膜血管特征信息融合。經過池化層融合后的特征信息輸入到1×1 卷積層進行尺度壓縮,解決了不同尺度信息提取過程中網絡參數和特征量冗余的問題。
為解決原始U-Net 網絡在視網膜血管分割任務中池化層存在信息損失,在分割結果中細小血管無法分離清楚的問題,文中算法增大了視網膜血管有效位置與噪聲區域特征映射的感受野,將原始U-Net 網絡底部的池化層改為金字塔型空洞卷積,以提升算法敏感度與準確性。為防止U-Net 卷積層編碼器中網絡參數復雜度過大,文中算法未改動下采樣過程中的池化層,有助于減少編碼過程中的網絡特征復雜程度,使視網膜血管特征具有更好的線性不變性。金字塔型空洞卷積模塊結構如圖3所示。

圖3 金字塔型空洞卷積模塊結構
空洞卷積又名擴張卷積,定義為將普通卷積層內插零,從而增加網絡中的擴張率r,在未增加網絡參數的條件下增大了特征提取的感受野。圖3(a)為r=1的普通3×3 卷積;圖3(b)為r=2的3×3 空洞卷積(實際為5×5 卷積);圖3(c)為r=3的3×3 空洞卷積(實際為7×7 卷積)。
在視網膜血管分割任務中,設輸出特征值為y,像素點值為i,則空洞卷積的定義為:

式中,ω為卷積運算,k為原始卷積的尺寸,x為卷積輸入特征值,r為空洞卷積擴張率。上述算法有效解決了原始卷積層對特征提取水平過低的問題,但在網絡訓練過程中,采用過大的擴張率會使上采樣過程中特征向量過于稀疏,導致無法進行特征采樣,分割結果信息不連續[6]。因此文中算法采用金字塔型空洞卷積結構,將擴張率限制在中等的閾值之中。其擴張率設置公式[7]為:

式中,Ml為第l層的最大擴張率,rl為第l層的擴張率。改進后的金字塔空洞卷積使用小擴張率的卷積層提升視網膜血管細節的檢測能力,使用大擴張率的卷積層增大特征映射的感受野,改善因圖像對比度低導致準確率低的問題,解決原始空洞卷積中擴張率選擇不當導致分割效果差的情況。
文中實驗模型基于TensorFlow 框架,實驗環境配置為Intel Core i7-6850K 處理器,顯卡為NVIDIA GeForce GTX 1080Ti,內存為11 GB。
文中實驗數據庫采用眼底視網膜分割研究常用的數據庫:DRIVE 數據庫[8]。該數據庫包含40 張分辨率為565×584的視網膜眼底圖像,由官方劃分為20 張訓練集和20 張數據集,自帶兩張金標準圖像和掩膜。
為提高分割結果水平與訓練學習能力,在網絡訓練前對該數據庫中的訓練集首先進行綠色通道[9]提取預處理,再進行數據擴充。數據擴充的過程為:以0°、45°、90°、135°、180°為旋轉軸旋轉,再進行水平、垂直和鏡像翻轉擴充到原來的15 倍,將原始DRIVE 訓練集圖像變為300 張;將圖像隨機裁剪為48×48的訓練集圖像塊,抽取180 000 塊進行下一步實驗。測試集不進行數據預處理。
為驗證分析文中方法對眼底視網膜血管的分割性能,確定其算法水平,除了使用準確率(AC)、敏感性(SE)、特異性(SP)3 個最常用的參數進行評估,還用了F1 值評估分割水平[2]。F1 值越高,表示該算法對眼底視網膜的分割結果與金標準圖越相似。其公式如下:

其中,TP、FP、TN、FN分別表示真陽率、假陽率、真陰率和假陰率,實驗結果如表1 所示。通過與金標準圖像結果進行比較,可以驗證文中算法基本可以完成眼底視網膜血管分割任務。

表1 算法分割性能結果
DRIVE 數據庫部分圖像分割結果,如圖4 所示。由圖可知,文中算法在血管分叉處分割出更詳盡的細小血管形態,在粗細血管交替處中也有較好的連通性,分割血管處較完整,較原始U-Net 算法信息完整度與敏感性都有較大提升。

圖4 DRIVE數據庫部分圖像分割結果
為更好地說明文中所提算法在視網膜血管分割方法領域的水平,使用上述的評價指標將文中算法與當前文獻進行了比較,結果如表2 所示。基于DRIVE 數據庫進行對比,文中方法的準確率AC達到 了0.953 9,SE為0.784 2,SP為0.980 4,F1 值 為0.821 3,與文獻[2]中原始U-Net 分割結果相比,準確率、敏感度有明顯的提升,說明文中算法具有先進的血管分割能力,在一定程度上提升了原始算法的綜合性能。

表2 算法分割性能結果比較
文中改進了原始U-Net 視網膜血管分割算法,將編碼器與解碼器中的原始卷積層改為Inception 模塊結構,在不擴大網絡學習參數的同時增大了提取信息特征向量的感受野;將原始U-Net的底部池化層改為金字塔型的空洞卷積,提取多尺度血管特征,有效解決了細小血管能力較差、背景混亂導致的分割結果誤差,更好地捕捉了目標的形態結構。在未來的工作中,可以研究由于圖像存在不同病灶、眼底血管復雜多變條件下的分割方法,對現實臨床醫學工作有著重要的意義。