梅旭璋,江 紅,孫 軍
(華東師范大學 計算機科學與軟件工程學院,上海 200062)
視網膜血管的形態結構變化是高血壓、動脈硬化、冠心病等疾病診斷的重要指標之一。視網膜血管作為人體內唯一可以通過無創手段觀察到的清晰血管,其檢測與分析對預測和診斷上述疾病有非常重要的應用價值。但是,視網膜血管的分布十分密集而復雜,其分割需要專業的醫生進行手工標注,耗時較長,無法滿足大量圖像分割的需要,同時也容易受到人的主觀因素影響,難以保證高質量。眼底視網膜圖像存在較多干擾因素[1]且數據集缺乏,相較于通用圖像分割領域數以萬計的數據量,視網膜圖像數據集標注較為困難。因此,視網膜血管的自動分割技術是醫學圖像分割領域的熱點和難點。
截止目前,國內外的專家學者提出了大量的自動分割方法并已取得不錯的成果,自動分割方法主要可以分為無監督學習和監督學習兩類。無監督學習的策略包括基于組合濾波器[2]的方法、基于多尺度檢測器[3]的方法等,其通過學習和利用特征信息的內在聯系來識別血管的輪廓,優點是不需要已標記的血管圖像作為標準,便于進行訓練和應用。但是,相較于監督學習方法,無監督學習的精度較低。監督學習中的傳統機器學習策略在提取特征后進行像素分類,文獻[4]提取血管方向信息,利用決策樹和集成學習進行分類,文獻[5]提出結合支持向量機和全連接隨機場進行血管分割的方法。
近年來,深度學習在圖像處理領域取得了突破性的進展[6]。卷積神經網絡通過對輸入的數據進行從低層到高層的特征提取,有效提取高層的語義特征,提高了分類模型的準確性,在圖像分割領域取得了顯著的成果[7-8]。在眼底視網膜圖像分割方面,文獻[9]通過深度神經網絡進行血管的像素分類,文獻[10]提出跨模態學習的策略進行分割,文獻[11]將條件隨機場和帶側輸出的卷積神經網絡進行結合,文獻[12]在全卷積網絡結構上引入空間金字塔池化進行血管分割。
本文對基本的編碼器-解碼器全卷積神經網絡(U-net)結構進行改進和優化,提出基于密集注意力網絡的視網膜血管圖像分割算法。采用三層下采樣的全卷積神經網絡,并將密集連接的思想融入其中,將卷積層組合構建成密集連接塊。通過把前層特征直接輸入到后層,在不改變既有網絡層數的情況下,最大程度地提取圖片的特征,在網絡的解碼器端,引入注意力門模塊,抑制不必要的特征傳播,以提高血管分割的準確性。
卷積神經網絡是一種具有局部連接和權重共享的前饋神經網絡,利用卷積層和池化層來提取圖像的特征,通過建立多層的網絡結構來將輸入特征映射到輸出空間,在圖像處理上取得了卓越的成果。
全卷積神經網絡是文獻[7]在2014年提出的應用于圖像分割的方法,其核心思想是在卷積神經網絡的基礎上,將網絡后半段的全連接層輸出類別替換為反卷積,將圖像還原到原尺寸,然后逐個像素進行Softmax計算,實現像素級分類,在醫學圖像處理領域取得了較好的成果[13]。在全卷積神經網絡的基礎上,文獻[8]在2015年提出U-net,它是對稱的編碼器-解碼器結構的全卷積神經網絡,在醫學圖像分割方面取得了良好的效果。在網絡的解碼器端,通過跨層的跳躍連接結合下采樣產生的信息和多尺度特征圖的信息,還原圖像尺寸,在此基礎上進行逐像素的分類計算,以得到分割結果。
注意力機制源于對人類視覺的研究。在認知科學中,由于信息處理的局限性,人類會選擇性地關注所有信息中的一部分,而忽略其他可見的信息,稱為注意力機制。
近幾年,注意力機制被廣泛應用于自然語言處理、圖像處理等各種深度學習任務中[14-15]。在計算機視覺領域,注意力機制被用于視覺信息處理,常見的局部圖像特征提取、顯著性檢測等方法都可以視為注意力機制的應用。
注意力機制可以幫助模型對輸入的X的每個部分賦予不同的權重,提取關鍵信息并抑制無用信息,使模型做出更準確的判斷,同時不會對模型的計算和存儲帶來較大的額外開銷。注意力機制常與編碼器-解碼器結構的模型結合使用[16]。
從作用方法的角度來看,注意力機制可以分為柔性注意力和硬性注意力兩類。硬性注意力是個隨機過程,不會選擇模型的全部作為輸入,按照概率來采樣一部分進行計算。為實現梯度的反向傳播,硬性注意力采用蒙特卡洛的方法來估計模塊的梯度。柔性注意力具有參數化、可導且可嵌入到模型中等特點,可直接進行訓練,神經網絡的梯度也可以通過柔性注意力模塊反向傳播到模型的其他部分。由于可以直接進行反向傳播,因此目前的研究和應用更傾向于使用柔性注意力。
本文的網絡結構基于編碼器-解碼器全卷積神經網絡,選用對稱的3次下采樣網絡結構。首先進行特征提取,輸入圖像通過卷積轉化為指定通道數的特征圖。特征圖經過兩組批量歸一化、Relu激活和卷積層后進行Max pooling下采樣,在每次下采樣之后,特征圖的尺寸變為之前的一半。重復上面的激活、卷積和下采樣操作3次之后,得到編碼器的輸出。
在網絡解碼器的部分,編碼器的輸出被還原到原始圖像的尺寸。網絡中采用3次上采樣來逐步還原特征圖的尺寸,在上采樣還原的過程中,合并對應下采樣通過跳躍連接傳播的特征。后續的批處理歸一化、Relu激活和卷積層操作與下采樣保持一致。
DenseNet是文獻[17]提出的一種網絡結構,具有密集連接的思想。密集連接指網絡每一層的輸入都是前面所有層輸出的并集,每一層的輸出也會直接傳給之后的所有層作為輸入。設網絡第l層的輸出為Xl,其計算公式如下:
Xl=Hl([X0,X1,…,Xl-1]>)
(1)
其中,Hl是l層的非線性變換函數,其可以是批量歸一化、激活、池化或者卷積的復合函數,[X0,X1,…,Xl-1]表示將0到l-1層的輸出進行合并。
眼底視網膜圖像的數據規模小,在進行神經網絡訓練時易出現過擬合的現象,而密集連接具有較好的抗過擬合性能。隨著深度的增加,相較于傳統神經網絡依賴于最后一層的特征來進行分類,密集連接可以充分利用淺層的特征,深淺層不同復雜度的特征綜合利用,可增強抗擬合性,更容易得到泛化性能更好的決策函數。
本文在基礎的編碼器-解碼器的全卷積神經網絡中引入密集連接網絡的思想,將其中基礎的卷積模塊替換為密集連接模塊。在密集連接塊內將所有的卷積層進行連接和合并輸出,然后將其輸入壓縮層,以解決密集連接層的特征圖連接導致特征通道過多的問題,并采用卷積核為1×1的卷積層對特征通道進行壓縮。本文構建的一個完整的密集連接塊如圖1所示。其中,批歸一化操作、修正單元激活、卷積3個部分組成一層,將每一層的輸出進行密集連接,合并所有輸出的特征通道。最后,將所有的合并特征圖輸入到壓縮層中,壓縮特征通道后輸出結果。

圖1 密集連接塊結構
本文在基礎網絡的解碼器端引入注意力門模塊[18],對編碼器中通過跳躍連接傳播得到的特征進行處理。注意力門模塊是一種柔性注意力機制的應用,具體的內部結構如圖2所示。

圖2 注意力門模塊結構
注意力門的輸入是門控信號g和特征映射x。模塊的構成包括線性變換Wg、Wx和ψ,偏置項為bg和bψ,激活函數為Relu和Sigmoid。其中,線性變換通過1×1×1通道的卷積實現,線性變換Wg和Wx的結果通過相加的方式進行結合,其目標是對每個像素矢量xi計算注意力系數αi∈[0,1]>,σ2函數以前的計算過程如下:
(2)

本文提出的完整神經網絡結構如圖3所示,主要由密集連接塊、注意力門模塊和編解碼器結構組成。
網絡采用三層下采樣全卷積神經網絡結構,先對輸入的圖像進行1×1的卷積,其包含32個卷積核,從單通道的灰度圖映射到32通道的特征圖,圖片尺寸為96像素×96像素,輸入編碼器中。
編碼器和解碼器中都采用密集連接塊進行特征傳播,密集連接塊由兩組批歸一化、Relu激活、3×3卷積組成,優化了特征的傳遞。
在編碼器端的密集連接塊之后,一方面通過跳躍連接將特征圖傳遞到解碼器端進行合并,網絡中共有3次跳躍連接傳播特征,另一方面通過一個核大小為2×2、步長為2的最大池化層將特征圖尺寸縮小到原本的1/2,完成一次下采樣,并將其傳輸到下一個密集連接塊。在編碼器端3次下采樣過程中,3個密集連接卷積塊的輸出通道數分別為64、64和128,特征圖的尺寸最終縮小到12像素×12像素。
在解碼器還原圖像尺寸的過程中,對下采樣跳躍連接傳播來的特征利用注意力門模塊進行處理。下采樣傳遞的特征是圖2中的輸入特征映射x,解碼器端密集連接塊傳遞的特征作為圖2中的門控信號g。借助解碼器端的特征信息進行計算,以抑制不必要的特征,處理完的特征繼續與上采樣之后的特征圖進行合并。通過轉置卷積操作進行上采樣,每次上采樣后的圖像尺寸變為之前的2倍,3次上采樣之后實現輸入圖像尺寸的還原。
將網絡生成的高分辨率特征圖通過1×1的卷積映射轉化為通道數為2的特征圖,送入Softmax分類器以獲得每個像素為血管的概率值,得到血管的分割概率圖。選用交叉熵函數作為損失函數,其計算公式如下:
(3)

本文的實驗環境是以TensorFlow為后端的Keras開源框架,硬件配置是Intel E5-2650 v4和Nvidia P-100 GPU,實驗操作系統為Red Hat Enterprise linux7。
實驗所使用的數據集是DRIVE[19]和STARE[20]公共數據集。DRIVE數據集來源于荷蘭的糖尿病視網膜病變篩查項目,從征集的400名患病受試者拍攝的眼底圖像中隨機抽取40張圖像,指定其中20張作為訓練集,20張作為測試集。每張圖片的大小為584像素×565像素,每張圖片都由專家進行手動標注,測試集中有兩名專家的分割標準圖,第1名專家手工分割圖作為分割的金標準,第2名專家手工分割圖用來進行結果對比。STARE數據集包括20張眼底視網膜圖像,分辨率為605像素×700像素,第1名專家手工分割圖作為金標準,第2名專家分割圖作為對比。由于STARE數據集沒有指定訓練集和測試集,本文選擇留一法進行交叉驗證訓練,重復20次,每次選取一幅圖像作為測試集,其余作為訓練集,最后對結果取均值。
眼底視網膜圖像數據集中有背景的干擾,存在光照不均與對比度不夠的情況,會對網絡的訓練造成影響。本文對數據集中的每一幅圖片進行數據預處理操作。首先將原始數據集進行灰度轉換和歸一化,接著用受限制的自適應直方圖均衡化[21]算法和gamma亮度調整來增強圖像的對比度。
為了進行數據增強并使其易于分割,在數據預處理之后,采用滑窗的方式對圖片進行裁剪,以步長為5,在每幅眼底圖像中裁剪出尺寸為96像素×96像素的重疊圖像塊,如圖4所示。

圖4 預處理后的圖像塊
將DRIVE數據集中的每張視網膜圖像分成9 405個圖像塊,綜合來看,訓練集包含188 100個圖像塊,測試集包含188 100個圖像塊。STARE數據集中的視網膜圖像被分成12 566個圖像塊,留一法的訓練集包含238 754個圖像塊,訓練集包含12 566個圖像塊。之后的訓練、運算和測試都針對這些單獨的圖像塊進行,最后把這些子塊聚合恢復成原始的圖片。
訓練網絡的權重初始化策略是正態分布隨機初始化,選擇交叉熵函數作為損失函數。本文采用Adam[22]優化器對損失函數進行優化,初始的學習率設為0.001。神經網絡訓練時的batch size設為16,epoch設置為100,選擇訓練集中20%的圖像數據塊作為驗證集。
本文的視網膜血管分割本質上是對于像素點的二分類任務,即判斷圖中的像素點是不是血管,實驗的結果要與第1名專家分割標準進行逐像素點對比。對于DRIVE和STARE數據集圖像中的血管像素點而言,如果網絡分割結果對比金標準(第1名專家分割結果)結果一致,則為真陽性(TP),如果網絡結果對比金標準錯誤,則為假陽性(FP)。而對于圖像中的非血管像素而言,如果網絡分割結果對比正確,則為真陰性(TN),分割結果對比錯誤則為假陰性(FN)。
為準確有效地對實驗結果進行對比,本文主要采用4種通用的評價指標對實驗結果進行評估,包括敏感性Ssen、特異性Sspe、準確性Aacc和AUC(Area Under Curve)值。前3種指標的具體定義如下:
(4)
(5)
(6)
AUC值表示ROC(Receiver Operating Characteristic)曲線下方的面積,是衡量分類器效果的重要指標。ROC曲線將偽陽性率(FPR,即1-Sspe值)作為橫坐標,將真陽性率(TPR,即Ssen值)作為縱坐標,隨著模型設定不同的閾值描繪出曲線,AUC值越接近于1表明分割的效果越好。
本文在DRIVE和STARE數據集上進行實驗,實驗結果如圖5和圖6所示。

圖5 DRIVE數據集上的分割結果

圖6 STARE數據集上的分割結果
由圖5、圖6可以看出,本文算法的血管分割圖準確清晰,與金標準分割結果基本一致,直觀地證明本文方法有不錯的分割效果。
表1和表2給出本文算法和其他6種算法在DRIVE和STARE數據集上的分割性能對比,最優結果加粗表示。可以看出,本文算法在敏感性、特異性、準確性和AUC上均取得了很好的結果。在敏感性方面表現優異,在DRIVE和STARE數據集上均高于所有的對比方法,證明本文算法可以有效減少血管漏判。在特異性方面,本文算法高于大部分對比算法,僅在STARE數據集上比文獻[10]算法差。在準確性方面,本文算法高于所有的對比算法,AUC值高于大部分算法,僅在STARE數據集上低于文獻[10]算法。從綜合指標上來看,本文算法取得了非常不錯的結果,雖然在STARE數據集的少量指標上低于文獻[10]算法,但是本文所構建的端到端網絡訓練更加方便,簡化了訓練步驟,在整體的性能表現上更優。
表1 7種算法在DRIVE數據集上的分割性能對比
Table 1 Comparison of segmentation performance of seven algorithms on DRIVE dataset

算法SsenSspeAaccAUC值文獻[4]算法0.740 60.980 70.948 00.974 7文獻[5]算法0.789 70.968 40.945 40.950 6文獻[9]算法0.776 30.976 80.949 50.972 0文獻[10]算法0.756 90.981 60.952 70.973 8文獻[11]算法0.760 3—0.952 3—文獻[12]算法0.805 30.976 70.954 60.977 1本文算法0.811 50.982 30.966 30.982 1
表2 7種算法在STARE數據集上的分割性能對比
Table 2 Comparison of segmentation performance of seven algorithms on STARE dataset

算法SsenSspeAaccAUC值文獻[4]算法0.754 80.976 30.953 40.976 8文獻[5]算法0.768 00.973 80.951 90.957 0文獻[9]算法0.786 70.975 40.956 60.978 5文獻[10]算法0.772 60.984 40.962 80.987 9文獻[11]算法0.741 2—0.958 5—文獻[12]算法0.829 90.979 40.968 40.981 7本文算法0.830 80.982 90.969 50.984 8
本文提出一種基于密集注意力網絡的全卷積神經網絡視網膜血管圖像自動分割算法。采用3次下采樣的編碼器-解碼器全卷積神經網絡,通過將網絡中卷積層進行密集連接,構建密集連接塊結構,以充分學習眼底視網膜圖像的血管細節。同時,在編碼器到解碼器的跳躍連接過程中引入注意力門模塊,抑制不必要的特征傳播,減少噪音干擾。實驗結果表明,該算法的敏感性較高,分割結果更準確。下一步將研究本文算法在其他醫學圖像分割問題上的應用,提高網絡模型的泛化能力。