呂佳,馬 超,程超
重慶師范大學 計算機與信息科學學院,重慶401331
視網膜血管異常與一些常見疾病,諸如糖尿病、白內障、動脈硬化等有著密切的聯系。血管分割圖像是計算機輔助診斷視網膜疾病的重要依據[1],因此如何高效準確地對視網膜血管進行分割成為臨床診斷的迫切要求。視網膜血管分割常用的方法有基于傳統算法和基于深度學習的方法兩大類。傳統算法包括區域生長法[2]、形態學法、閾值分割法[3]和傳統機器學習方法[4-5]等。但是這些方法容易受到專家的主觀因素干擾且需要復雜的人工預處理和大量的時間成本,不利于大規模臨床應用。因此研究一種快捷、準確的視網膜血管分割算法來輔助系統的診斷、篩查、治療具有重要的應用價值[6]。
近些年來,深度學習在圖像領域迅速發展,最初全卷積神經網絡(fully convolutional networks,FCN)[7]被提出,該網絡舍去了之前網絡結構的全連接層實現圖片的端到端輸出,提高了網絡模型的分割準度,也很快被應用到視網膜血管任務上。但是由于FCN最后單次大跨度的上采樣損失了較多血管細節信息,導致最后分割結果不佳。U-Net 網絡[8]同樣是端到端結構,通過采用跳躍連接復合了淺層和深層的空間特征,能夠一定程度保留血管的細節信息。Huang 等人[9]提出了DenseNet,減輕了消失梯度的問題,增強了特征傳播,鼓勵功能復用,并大幅減少參數數量。之后,Jégou 等人[10]將U-Net 中的卷積層替換為稠密聚集塊,使網絡更加準確且易于訓練,不只局限于單一的結構。生成對抗網絡(generative adversarial networks,GAN)也被越來越多人用于血管分割。Liang 等人[11]將輪廓信息和GAN 合并在一起,使用不均勻的光去除和主成分分析來處理眼底圖像,增強了血管與背景之間的對比度,并獲得了具有豐富特征信息的單比例灰度圖像。He 等人[12]提出了基于GAN 的端到端視網膜血管分割模型,通過添加一個自制的放大器來放大眼底圖像,用于生成器,最后生成視網膜血管的概率圖進行分割。Kamran 等人[13]提出了RVGAN(retinal vessel generative adversarial networks)的多尺度生成架構,通過使用兩個生成器和兩個基于多尺度自動編碼器的鑒別器,以實現更好的微血管定位和分割。Zhou 等人[14]提出了一個端到端合成神經網絡,包含一個對稱平衡生成對抗網絡(symmetric equilibrium generative adversarial networks,SEGAN)多尺度特征細化塊和注意機制,避免了高分辨率特征被模糊,從而更好地合并多尺度特征。在最新的研究中,Mou 等人[15]依據血管的連通性,利用血管初始檢測和概率正則化來提高分段血管的連通性,提出了一種新的分割算法。Samuel等人[16]使用雙容器提取層,并在基礎VGG-16 網絡上增加監督。血管提取層包括血管特有的卷積塊來定位血管,跳連接卷積層使豐富的特征傳播。Khan 等人[17]在解碼器的上采樣階段共享從編碼器中獲得的信息,降低了計算量和內存需求,提高了捕獲細小血管的魯棒性能。將不同尺度分辨率的特征進行融合已經被證明是一種能夠提升網絡性能的有效方法[18]。Zhuang[19]通過增加梯形子網提供了更多的信息流路徑,并在視網膜血管分割任務上驗證了其優越性。Wang等人[20]在多路徑中添加注意力機制,實現高低層像素的有效融合,能夠解決細小血管分割問題。Fang 等人[21]提出了一種監督廣義線性模型和無監督對比度受限自適應直方圖均衡的組合算法,使用Gabor 小波變換與多尺度信息集成廣義線性模型,提出的監督過程可以提取出視網膜血管的更多突出特征。Ding等人[22]在梯度提升過程中加入了注意力機制,增強了粗略分割的信息。并在三維U-Net 分割網絡中引入了CAB(category attention block)模塊,構建了一個新的多尺度提升模型,加強了網絡中的梯度流,充分利用了低分辨率的特征信息。Jin 等人[23]在基礎網絡中添加了可變形卷積使得網絡能夠結合低級特征和高級特征來提取上下文信息并實現精確定位;并且還可以根據血管的尺度和形狀自適應地調整感受野來捕捉不同形狀和尺度的視網膜血管。Yang 等人[24]將初始結構引入到多尺度特征提取編碼器部分,并將最大池化指數應用于改進網絡的特征融合解碼器中,使得編碼器的特征能夠映射傳輸到對應的解碼器上。Atli 等人[25]提出了一種正弦網絡模型,首先應用上采樣、下采樣分別捕獲淺層和深層特征,以攜帶更多的上下文信息到更深的層次。
然而,隨著深層網絡中上采樣的次數越多,融合后的淺層信息越容易被稀釋,最終導致對于分割結果的貢獻度降低。
基于以上分析,本文提出了一種新的血管分割模型,主要創新點如下:
(1)利用血管的淺層信息,通過引用概率分布注意力機制的提升算法來改變其權值分布,避免被過度稀釋,最后提高在最終分割結果中的貢獻度。
(2)在深度監督側輸出的線性聚合方式的基礎上,引入了一種非對稱聚合結構,并在實驗上證明了其有效性。
集成學習是將弱分類器訓練成強分類器的算法,其機制是通過多個基礎學習器依次迭代提升,最終將它們進行加權結合,其基本原理在文獻[26]中得到了以下闡述。
這里為了便于理解,將各個基礎學習器之間的結合方式選擇為簡單的相加,f(x)為多個學習器相加之和。
其中,a0和h(x;a0)分別為初始參數和初始基礎學習器。am是優化參數,βm是擴展系數,M是基礎學習器的個數。
通過逐步迭代的方式優化f(x),并假設初始值為f0(x),則:
由于評估f(x)的方式是逐步迭代,故假設當迭代步數為(m-1)th時,f(x)表示為fm-1(x),則此時擴展系數βm為:
這里βmh(x;am)的本質為y與fm-1(x)之間的殘差值,將其抽象為gm,則得到:
深度監督和側輸出層線性聚合預測,已被證明在許多[27-30]醫學分割任務中是有效的。它能夠補充各層的梯度流,避免模型在訓練過程中發生梯度消失的現象,導致反向傳播損失計算時對接近輸入層的有效性降低。另一方面正如Zhang 等人[31]所指出的,通常在U-Net 中使用的低級別和高級別特征的簡單融合可能不那么有效,因為這兩個特征在這方面存在語義水平和空間分辨率差距。因此,使用深監督學習更多“語義”的低級特征可以幫助網絡獲得更好的U-Net 體系結構性能。圖1(a)是U-Net 網絡,(b)、(c)是兩種常見的深度監督聚合方式,(d)是本文引入的非對稱聚合方式。

圖1 深監督聚合方式Fig.1 Deep supervision aggregation method
本文提出了一個新的網絡結構。淺層信息隨著網絡加深會變得稀薄,為了采集豐富的淺層語義信息,在下采樣階段,通過將前兩個編碼器提取的特征信息保留,并由單獨路徑傳輸作為此后第一個提升算法塊的輸入。上采樣階段,每一層通過跳躍連接會接受到大量的淺層信息,這對網絡的分割性能具有積極的作用。基于此,本文選擇將提升模塊嵌入到側面,接收每次上采樣之前的語義特征,作為提升塊的輸入。提升塊中概率分布注意力機制會保留淺層信息,同時也會生成相應的特征信息。之后,第一個提升塊的輸出和之后的上采樣之前的融合信息再作為第二個特征塊的輸入,迭代往后,逐層保留,直至最后一層。考慮到上采樣的弊端,采用雙線性插值來調整每一層特征圖的尺寸。由于三次提升會得到三個不同層次的特征信息,將其定義為底層、中層和最終層。不同層的特征信息會包含不同程度的語義信息,考慮到全局性,通過深度監督計算各層側輸出損失,如圖2 所示。

圖2 網絡模型結構圖Fig.2 Network model structure
將淺深層的特征信息融合在一起能夠確保分割的完整性。顧佳等人[32-33]對基礎網絡添加分級聚合并激活高低層特征信息,會提高分割精度。但在上采樣的過程中融合信息當中的底層信息會被稀釋,且上采樣次數越多,稀釋越嚴重,導致對分割結果的貢獻度降低。
受到CAB 方法[22]的啟發,本文將其引入血管分割任務,如圖3 所示。假定淺層信息流定義為Fˉ,fi(i=1,2,…)分別為基礎網絡U-Net 三次上采樣的輸出,K為大小1×1 的卷積核。通過將原始信息流和f1作為第一個提升塊的輸入,進行如下點積運算:

圖3 提升結構Fig.3 Lifting structure
其中,u、v為特征向量,T 為轉置操作,||為正則化。再經過1×1 的卷積降低通道,減少參數。最后和F通過一個殘差結構相加,最大化保留原始特征。依次經過三個提升塊進行迭代,并通過雙線性鄰差值來調整每一次迭代前輸入特征的尺寸大小以保持一致,最后輸出結果為F。整個過程如式(8)所示。
對于淺層信息被稀釋問題,按照文獻[22]的方法將其轉換到概率空間,并通過引入一種概率分布注意力機制來改變淺層信息被映射到概率空間后的權重,直到上采樣結束。分別定義在概率空間淺層信息和深層信息為=P(c,i,θ)和Fi=P(c,i,θ)。令:
其中,圖片I的大小為N,c代表不同的分割類型:血管的主干、分支以及末梢等。Xi為像素值。
于是,利用Softmax 函數可以進行概率轉化:
淺層信息可以為最終分割提供全局的指導作用。通過式(9)將分割結果通過Softmax 引入到概率空間后,可以得出不同類型的概率圖。因淺層信息的分割結果較粗糙,相應的血管主干得到的概率權重會比較大。對于每個類別概率圖,再將其與fi每個像素點對位相乘(選擇每次跳躍連接后,并且在未經過上采樣操作之前的信息作為fi,因為此時的fi融合了淺深層網絡信息,包含豐富的淺層語義信息),然后將所有類型的注意力特征圖拼接在一起得到FCA。換言之,FCA的每一個特征圖為每個單一特征圖和每一個類型概率圖對應像素相乘。如圖4 所示,F是經過注意機制之后得到的新的血管特征信息。F與的關系為:

圖4 概率分布注意力Fig.4 Probability distribution attention
其中,soft(·)為概率分布映射操作,本文采用的是多分類器Softmax。
1.2 節已經介紹了深度監督的一般結構。此前的工作[30]通過深監督將U-Net 網絡上采樣三個階段的損失線性聚合起來,可以提高模型的分割能力,但是作者發現通過對深度監督各個側輸出層損失采用非線性的聚合方式,可以在原來的基礎上獲得更好的效果,并利用實驗進行了驗證。
本文引入的深度監督非對稱聚合結構如圖5 所示,首先對每個分支采用3×3 卷積來調整通道數。然后,將特征映射上采樣到與原始圖像相同的大小,以生成側輸出特征。側輸出特征可以使用一個簡單的1×1 卷積來預測結果,其次將所有的側輸出層特征連接起來,以構造包含豐富的多尺度和多層次信息的混合特征。之后利用非對稱卷積n×n進行非線性聚合,非對稱卷積的選擇原因有兩點:其一可以分為兩個大尺度的卷積核1×n、n×1 來更好地提取高分辨率的信息,并通過實驗對比可以得出n=7 為最佳選擇;其二可以減少模型計算的參數量。由于在聚合之后加了ReLU,深監督的特征聚合也具有非線性。
在模型解碼階段中,假設從左往右三個解碼塊分別稱為低層、中間層和輸出層。定義W是網絡的權重,Wl、Wm、Wf分別為三個解碼器的權重。其中某一層采用交叉熵損失函數可以定義:
其中,X是訓練樣本的數量,p(yi=t(xi)|xi;W,wc)為屬于樣本X的xi被正確分類為對應類標簽t(xi)的概率。c∈{l,m,f}為解碼器索引,最后損失函數被定義為:
其中,αl、αm、αf是三個損失的權重,控制不同解碼器的強度。在本文實驗中,αl、αm、αf分別被設置為0.3、0.3 和0.4。
另外將低層和中間層上采樣到原圖像尺寸,再和輸出層拼接,利用交叉熵函數計算拼接后的損失。
其中,N代表類別的數目,pn,i為當像素i屬于第n類時的預測概率值,gn,i為像素i對應的真實標簽值。
最后模型總體損失為:
其中,λ為權重系數,本文采用的λ為0.5。在3.4.2小節中對不同λ值進行了實驗分析。
為了驗證算法模型的有效性,本文選擇在DRIVE[34]和STARE[35]兩個公開眼底數據集上進行訓練和預測。
DRIVE 數據集是Niemeijer 團隊在2004 年根據荷蘭糖尿病視網膜病變篩查工作建立的彩色眼底圖庫。其圖像是從453 名25~90 歲的不同個體拍攝得到,隨機抽取了其中40 幅,分成訓練集和測試集,每個子集20 幅圖像,每幅圖像對應2 個專家手動分割的結果和對應的掩膜,如圖6 所示。其中7 幅有早期糖尿病視網膜病變,33 幅是沒有視網膜病變的眼底圖,每幅像素為565×584。

圖6 數據集Fig.6 Datasets
STARE 數據集是用來進行視網膜血管分割的彩色眼底圖數據庫,包括20 幅眼底圖像,其中10 幅有病變,10 幅沒有病變,圖像分辨率為605×700,每幅圖像對應2 個專家手動分割的結果,是最常用的眼底圖標準庫之一,但是需要自己手動設置掩膜。為了方便訓練,在已有的數據集基礎上進行擴充和劃分,如表1 所示。

表1 數據集設置Table 1 Setting of dataset
在視網膜血管分割中,將血管圖中的像素分為真陽性(ture positive,TP)、假陽性(false positive,FP)、假陰性(false negative,FN)和真陰性(ture negative,TN),并與相應的真實標簽進行比較。然后,采用準確性(accuracy,ACC)、敏感性(sensitivity,SE)、特異性(specificity,SP)和F1-score 評價模型的性能。為了進一步評估不同神經網絡的性能,還計算接收者工作特性曲線(receiver operating characteristic,ROC)下的面積(area under ROC curve,AUC),如表2 所示。

表2 評價指標Table 2 Evaluation index
實驗所用的計算機型號為HP Z6 G4 工作站,CPU 為Intel Xeon Silver 4114(×2)20C/40T,操作系統為Windows 10,顯卡為NVIDA TITAN V,顯存為12 GB。本文方法使用Pytorch 框架和Python 語言進行實驗,批數量(batch size)設置為64,用帶有默認參數的Adam優化器來訓練模型,并使用余弦退火方法輔助訓練,初始學習率設置為0.000 5,訓練迭代次數為50 輪。
3.4.1 對比實驗
視網膜血管分割前期的粗糙信息和高階特征有效融合能夠提升血管分割效果的精確度。提出的融合概率分布注意力的提升算法能夠在特征融合的過程中降低前期信息的稀釋度,增強對于最終分割的參與度,達到較為準確的分割效果。在提出的提升算法基礎上進一步引入了深度監督,補充不同提升塊的梯度流,增強模型性能和魯棒性。為了驗證本文算法的有效性,分別與4 種經典算法以及5 種最新算法在DRIVE 和STARE 數據集上進行對比實驗。
表3 顯示了不同算法的F1、SE、SP、ACC 和AUC。本文方法在DRIVE 數據集上,總體上均取得了比較優秀的性能,其中SP 均取得了最好的表現,優于現有的最高指標;在STARE 數據集上,SP 也達到了最先進的水平,其他指標也表現不錯。

表3 不同算法對比Table 3 Comparison of different algorithms
圖7 顯示了在DRIVE 數據集上不同算法分割效果可視化對比圖。

圖7 DRIVE 數據集分割可視化Fig.7 Visual segmentation of DRIVE dataset
考慮到添加非對稱聚合模塊會增大模型復雜度,本文在不同模型上統一使用DRIVE 數據集進行對比實驗。其中選取了FLOPs、參數量以及每張圖片的平均推斷時間作為評價指標從多個方面進行綜合評價,如表4 所示。
從表4 中可以看出,因為用1×1 卷積替換了全連接層,添加了非對稱模塊以及提升模塊并不會使模型的參數量大大提高。本文所提出的模型網絡參數量有5.3×107,對運行內存的需求不是很高。值得一提的是,在FLOPs 為3.0×109的情況下測試時間只有1.710 s,相較于其他算法,具有一定的實際應用潛力。

表4 復雜度對比Table 4 Complexity comparison
圖8 顯示了不同方法下對于微小血管的可視化結果。從對比結果可知,本文方法通過減少高低層融合信息的稀釋,使得分割結果更加精細化,對于細小末梢血管的分割更加明顯。

圖8 細節放大對比Fig.8 Detail zoom comparison
3.4.2 消融實驗
為了探究不同權值的λ對算法的影響,分別對其取了6 組不同的數值。為了方便訓練,以下4 個消融實驗只取2 000 樣本進行訓練。通過實驗結果比較得出相對最優結果,見表5。
由表5 可知,當λ=0.5 時,AUC 達到了最好的效果。特別地,當λ=0 時,由式(13)可知,模型深監督聚合方式變成了線性,對于算法的性能增益并不明顯。當λ=1.0時,深監督的聚合方式又只有非對稱性,相對于線性聚合,對模型性能提升要大。因此,線性和非對稱聚合方式的結合更能有效提高算法性能。

表5 不同λ 取值分析Table 5 Analysis of different λ
為了得到一組較好的損失權重,在已有的經驗基礎上,本文設定了6 組權重系數對比分析。由表6可以看出,從第一組開始隨著αl逐漸增大,ACC 也隨之上升,這是因為3 個不同上采樣階段,特征信息豐富度不同,越往后網絡提取到的血管信息越多,也越接近真實值。基于以上分析,本文將第3 組權重系數作為實驗超參數。

表6 不同α 系數取值分析Table 6 Analysis of different coefficient α
在非對稱卷積核選取方面,不同尺寸的卷積核信息提取能力不同,大尺寸的卷積核能夠提取到的信息內容更多,但是相應會帶來更多的參數計算。為了更客觀地得出對比效果,選擇U-Net 作為基礎網絡,選取3×3、7×7、9×9 三種尺寸的卷積核,并將每個尺寸的卷積核拆分成非對稱形卷積后進行實驗分析。
由表7 可以看出,隨著卷積核尺寸變大,算法最終分割的準確率有所提升,但是增加到9×9 以后,準確率提升效果不明顯,而參數量越來越大,故從計算成本和分割精度綜合考慮,最終選擇的卷積核大小為7×7。

表7 不同尺寸卷積核Table 7 Convolution kernels of different sizes
表8 選取了U-Net 網絡對深監督非對稱聚合方式進行消融對比。從采用線性聚合和非對稱聚合的實驗結果可以得出,深監督非對稱聚合方式能夠更好適應原始圖像分辨率,從而提高分割性能,且具有一定的泛化性。

表8 不同聚合方式Table 8 Different aggregation methods
本文從淺層信息在多次上下采樣過程中容易被稀釋的問題出發,引入了淺層信息被稀釋帶來的兩個問題:降低對最后分割的貢獻度和梯度流失。通過加入融合了概率分布注意力機制的提升塊能夠層層助推淺層信息,提高在最終分割中的作用;此外引入的深監督能夠補充淺層梯度流,引用的非對稱聚合方式相對于線性聚合對模型性能的效果更好。對于醫學圖像獲取大量標簽數據困難的問題,如何利用自監督方法進行處理,將是下一步的工作方向。