楊 云, 周舒婕, 李程輝, 張娟娟
(1. 陜西科技大學 人工智能研究所,陜西 西安 710021; 2. 陜西科技大學 電子信息與人工智能學院,陜西 西安 710021)
眼底視網膜血管作為人體中唯一可以直接肉眼觀察到的血管,是許多慢性疾病診斷的一項重要指標。傳統方法憑借醫生的個人經驗和主觀判斷對視網膜血管分割存在諸多的弊端,如研究人員前期需要花費大量的時間和精力學習微細血管和整體結構的分割工作、不同研究人員在分割同一張視網膜血管圖像時往往存在較大的差異性等。因此,將計算機作為輔助技術對于準確、快速分割視網膜血管圖像起著至關重要的作用。
目前研究人員根據是否需要人工標記訓練集,將眼底視網膜圖像的血管分割方法大致分為兩類:無監督學習方法和監督學習方法。常見的無監督學習方法有血管跟蹤法[1]、形態學處理方法[2]、匹配濾波方法[3]等。基于深度學習的分割方法是一種常見的監督學習方法,例如:Oliveira[4]等人提出了將平穩小波變換提供的多尺度分析與多尺度全卷積神經網絡相結合的方法來分割視網膜血管,從而提高網絡性能;Guo[5]等人提出了基于全卷積U-Net的網絡結構,該方法摒棄了傳統卷積神經網絡的Dropout層,而是使用正則化方法來提高模型性能;Roy[6]等人提出了ReLayNet網絡結構,該網絡在訓練過程中同時使用了交叉熵和Dice損失函數進行優化;Gu[7]等人提出了上下文編碼器網絡來捕獲更多的深層信息,該網絡結構在特征編碼和特征解碼器之間加入了上下文提取器,該方法不僅適用于視網膜圖像的分割還可以用于其他醫學圖像的分割。
由于視網膜血管中布滿了豐富的細小血管,上述方法在分割過程中容易出現邊緣細節粗糙、梯度復雜、識別分辨率低等問題。因此,本文在循環生成對抗網絡的基礎上進行改進設計,具體工作如下:
(1)使用生成對抗網絡的特殊變體循環生成對抗網絡框架,通過兩個生成器、兩個判別器進行對抗訓練,優化分割模型并設計一種全新的基于循環分割對抗網絡的視網膜血管分割方法。
(2)將生成網絡替換成改進后的分割網絡,分割網絡的編碼器、解碼器部分的網絡結構替換成U型網絡和密集連接相結合的模型結構,保證在提高分割精度的同時減少模型分割所需要的時間。
(3)將對抗損失函數替換為最小二乘損失函數,在還原圖像分割細節的同時,保留血管末梢的細節信息,提高分割效率。
近些年,由Goodfellow[8]等人提出的生成對抗網絡(Generative Adversarial Network,GAN)超越了傳統神經網絡,可以生成更加真實、清晰的圖像。在此基礎上,研究人員對GAN的改進模型進行了設計與研究,例如CGAN[9]、DCGAN[10]、WGAN[11]等不同的模型結構,在圖像處理任務中可獲得更好的性能。2017年由Zhu[12]等人提出的循環生成對抗網絡(Cycle-consistent Generative Adversarial Networks,CycleGAN)是傳統生成對抗網絡的變體,它包含兩個相互對稱的生成對抗網絡,并通過共用兩個生成器、兩個判別器來實現圖像端到端的相互映射。CycleGAN對架構的擴展之處在于使用了循環一致性,其第一個生成器輸出的圖像可以用作第二個生成器的輸入圖像,第二個生成器的輸出圖像應與原始圖像匹配,反之亦然。它最大的特點是不需要圖片的一對一配對,就能將一張圖像從源領域映射到目標領域,以此方式來提高訓練網絡的穩定性。
CycleGAN網絡結構是由生成器模型和判別器模型組成。生成器包括編碼器、轉換器以及解碼器。編碼器通過卷積層提取圖像的特征信息;轉換器由6個殘差塊組成,每個殘差塊包含兩個卷積層,可以保留更多圖像的原始信息;解碼器使用3層反卷積操作將圖像還原為原始尺寸。
CycleGAN網絡的判別器由5層卷積神經網絡組成,可以從圖像中提取特征信息并且預測其為原始圖像或是生成器生成的圖像。
DU-CycleGAN網絡訓練圖如圖1所示。該網絡由兩個分割器G和F、兩個判別器DX和DY組成,該模型包含G:X→Y的映射以及F:Y→X的逆映射,并且加入一個循環一致性損失函數以確保F(G(X))≈X。同時將原始圖像和分割圖像送入DX和DY中來判別分割網絡分割的真偽,這種循環的訓練模式,分割器和判別器通過博弈式動態競爭,使判別器無法區分是真實的圖像還是分割的圖像,最終達到網絡的動態均衡狀態。

(a) DU-CycleGAN模型結構(a) DU-CycleGAN model structure

(b) 正向訓練過程(b) Positive training process

(c) 反向訓練過程(c) Reverse training process圖1 DU-CycleGAN網絡訓練圖Fig.1 DU-CycleGAN network training diagram
本文使用了由兩個1×1卷積層和一個3×3卷積層組成的固定殘差塊。如圖2所示,改進后的殘差塊具有一個瓶頸結構可以進行降維操作,減少圖像的通道數。與原模型相比,通過修改殘差塊的數目和結構,在提高輸出圖像質量的同時減少了參數,從而減少了計算量和處理時間。

圖2 ResNet網絡結構Fig.2 ResNet network structure
3.1.1 U型分割網絡
U型卷積神經網絡(U-Net)是由Ronneberger[13]等人提出,其方法特點就是通過上、下采樣以及跳躍連接將淺層特征信息和深層特征信息融合,擴充特征信息,從而減輕訓練負擔,使圖像中的邊緣信息更加準確。由于視網膜血管具有復雜的表現特征,在分割的過程中容易產生血管不連續、邊緣區域分割較為模糊等問題。因此,本文將DU-CycleGAN網絡的分割器替換成改進后的U-Net網絡,以此提高模型的分割準確率。

圖3 DU-CycleGAN分割器網絡結構Fig.3 Network structure of DU-CycleGAN splitter
本文改進后的分割器模型如圖3所示,分割器網絡由編碼器、轉換器和解碼器組成。編碼器包含3個密集連接模塊和3個下采樣卷積操作,每經過一次下采樣操作其特征圖會縮小為原圖像的1/2,經過3次下采樣操作之后,特征圖縮小為原圖的1/8并輸入到轉換器中。特征轉換器由6個殘差塊構成,它不改變特征圖大小,特征圖經過殘差模塊后輸出到解碼器部分。解碼器同樣包含了3個密集連接模塊,采用了與下采樣對稱的反卷積操作,其特征通道的變化與下采樣操作相反,每次經過反卷積層后特征圖的尺寸都會變為原來的2倍,最終特征圖像還原到原始尺寸。當編碼階段和解碼階段特征圖像尺寸相同時,會通過跳躍連接將深層特征信息和淺層特征信息融合,從而增強細節信息的補充。
與此同時,為了加快網絡模型的收斂,在每一層卷積操作后使用批量歸一化(BN)層。BN可以對網絡的輸入數據歸一化,使得特征輸入值的均值與方差都在規定范圍內,在一定程度上緩解了梯度消失現象。激活函數每一層均使用LReLU激活函數來替代原模型中的ReLU激活函數。ReLU激活函數在訓練過程中很可能會導致神經元死亡,相應的參數無法更新。本文所使用的LReLU激活函數在特征輸入小于0時會有一個負數的輸出,可以緩解神經元死亡的問題。公式定義如下:

(1)
DU-CycleGAN分割網絡在訓練過程中的各層參數的設置以及具體輸出如表1所示。

表1 DU-CycleGAN分割網絡各層參數設置Tab.1 Parameter setting of each layer of DU-CycleGAN
3.1.2 密集連接網絡
U-Net通過下采樣減少空間維度,通過上采樣恢復圖像的細節及空間維度,經過上、下采樣操作后會對數據信息造成一定的損失并且訓練精度和測試精度會呈下降趨勢。針對上述問題,本算法引入了密集卷積網絡(Densely Connected Convolutional Networks,DenseNet)[14],它在減少了參數數量的同時加強了特征信息的傳播和重復利用。
傳統的卷積網絡有L層時會有L個網絡連接,而DenseNet有L層時包含L(L+1)/2個連接,可以更好地加強特征傳播以及特征重復利用,提高網絡的分割準確率[15]。DenseNet改變了網絡模型結構的梯度流動方式,將每層網絡的最初輸入信息和損失函數直接連接起來,使得整個網絡模型結構更加清晰。DenseNet公式定義如下:
xl=Hl([x0,x1,…,xl-1]),
(2)
其中:x表示特征信息的輸出,l表示網絡結構層數,Hl(·)代表非線性轉化函數,它包括3個相同的3×3卷積操作,同時在每個卷積層后添加了BN層以及ReLU激活函數進行激活操作,以此提高密集連接模塊的性能。DenseNet網絡結構如圖4所示。

圖4 DenseNet網絡結構Fig.4 Densenet network structure
3.1.3 判別網絡
判別器模型由5層卷積神經網絡構成,其主要目的是預測分割的結果是真實圖像還是分割網絡分割的圖像。判別器實際相當于二分類器,用來判斷圖像的分布是否一致,判斷為真實圖像輸出結果為1,判斷為生成圖像輸出結果為0。判別器網絡結構如圖5所示。

圖5 DU-CycleGAN判別器網絡結構Fig.5 Network structure of DU-CycleGAN discriminator
損失函數可以衡量吻合度、調整參數以及權重,使得映射的結果和實際類別相吻合,訓練的結果更加準確。本文中損失函數是由對抗損失和循環一致性損失兩部分組成。
3.2.1 對抗損失函數
傳統生成對抗網絡使用的損失函數在訓練過程中容易出現梯度彌漫、網絡訓練不穩定等問題。本文使用最小二乘損失函數來構成對抗損失,使分割結果更加接近于真實圖像。最小二乘損失函數定義如下:其中,Ey~Pdata(y)表示樣本Y分布的期望值,Ex~Pdata(x)表示樣本X分布的期望值,分割模型G:X→Y及對應的判別模型DY,式(3)代表映射函數X→Y的過程。
LGAN(G,DY,X,Y)=Ey~Pdata(y)[(DY(y)-1)2]+
Ex~Pdata(y)[(DY(G(x)))2].
(3)
對于分割模型F:Y→X及對應的判別模型DX,式(4)代表映射函數Y→X的過程:
LGAN(F,DX,Y,X)=Ex~Pdata(x)[(DX(x)-1)2]+
Ey~Pdata(y)[(DX(F(y)))2].
(4)
3.2.2 循環一致性損失函數
為了保持原始圖像和轉換后圖像的高度一致性,本文采用了循環一致性損失函數。目標域X的圖像通過循環性可以將圖像轉換為原始圖像,公式可表示為F(G(x))≈x;同理,對于向后的循環一致性可采用公式G(F(y))≈y表示[12]。本文引入L1范數來衡量原始圖像和生成圖像之間的差距,公式定義如下:
Lcyc(G,F)=[Ex~Pdata(x)‖F(G(x))-x‖1]+
Ey~Pdata(y)[(‖G(F(y))-y‖1].
(5)
綜上,本文網絡的復合損失函數用公式(6)表示:
L(G,F,DX,DY)=LGAN(G,DY,X,Y)+
LGAN(F,DX,Y,X)+λLcyc(G,F),
(6)
最終對網絡的損失函數進行優化,為使分割圖像與真實圖像達到最大相似性,網絡的總訓練目標如下:
(7)
實驗平臺基于Python3.6環境搭建,使用TensorFlow來構建網絡框架,實驗環境均在Intel(R) i7-8565U CPU以及顯卡RTX2080Ti進行,使用MATLAB R2017b對圖像進行預處理操作。網絡采用Adam優化算法,學習率Lr設為0.000 2,以指數衰減的方式迭代更新學習率,網絡迭代次數設為200個周期,訓練時batch_size設為1。
為了驗證本文算法的有效性和實用性,采用DRIVE和CHASE_DB1公共視網膜數據集。DRIVE數據集目前在視網膜圖像處理領域中應用較為廣泛。該數據集共包含40張眼底彩色視網膜圖像,圖像的分辨率為584×565大小像素,其中20張用于訓練,其余20張用于測試。CHASE數據集共有28張眼底彩色視網膜圖像,收集自14名兒童的雙眼,每幅圖像的分辨率為999×960,其中14張用于訓練,其余14張用于測試。
在深度學習中,需要大規模的訓練樣本才能提升模型的魯棒性,使模型具有更強的泛化能力。由于視網膜血管樣本集數量較少,在網絡模型的訓練過程中,極易出現過擬合現象。因此,為了獲得顯著的訓練結果,需要對數據集進行數據增強操作,通過圖像的旋轉、平移變換等操作對訓練集進行擴充。此外,對于擴充后的圖像進行剪裁,通過向四周平移像素點將每張圖像隨機剪裁,最終DRIVE和CHASE數據集分別得到15 620張和12 000張尺寸大小為512×512的patch塊,其中90%用作網絡訓練,10%用作網絡驗證。
由于原始視網膜圖像存在噪聲干擾、光照不均以及血管特征不明顯等現象,直接分割會影響圖像的分割效果。為了改善模型性能,需要對視網膜圖像進行如下預處理操作:
(1)為了提高血管樹對比度,本文提取視網膜綠色通道。由圖6(c)可以看出視網膜血管在綠色通道中血管輪廓與背景的對比度較為明顯。
(2)為了加快模型的收斂速度,讓訓練數據分布一致,需要對視網膜圖像數據進行歸一化處理,使像素在(0,1)的范圍內。歸一化公式如下:
(8)
其中:xi表示圖像的像素點,max(x)和min(x)分別代表圖像的最大像素點和最小像素點。
(3)為了增強圖像的對比度突出血管輪廓,本文使用MATLAB語言對圖像進行自適應直方圖均衡化操作。圖像預處理前后效果對比如圖6(e)、(f)所示。

圖6 圖像預處理前后效果對比圖。(a) 原圖像;(b) 紅色通道;(c) 綠色通道;(d) 藍色通道;(e) 預處理前;(f) 預處理后。Fig.6 Image preprocessing before and after the effect comparison. (a) Original image;(b) Red channel;(c) Green channel;(d) Blue channel;(e) Before pretreatment;(f) After pretreatment.
為了系統驗證本文算法對視網膜血管分割的效果,實驗采用分割準確性(Accuracy,Acc)、特異性(Specificity,Spe)和敏感性(Sensitivity,Sen)對網絡性能評估。
Acc可以預測正確的血管數目占總樣本數目的百分比,它的取值范圍為0~1,Acc的值越接近1,分割的準確率越高。公式如下:
(9)
在公式(9)中,真陽性(True Positive,TP)表示將視網膜血管圖像正確分類的像素個數;真陰性(True Negative,TN)表示將非血管正確分類的像素個數;假陽性(False Positive,FP)表示將非血管錯誤分類為血管的像素數量;假陰性(False Negative,FN)表示將血管錯誤分類為非血管的像素數量。同時,上述4個值也用于計算特異性以及敏感性。特異性是指實際為非血管的樣本占非血管總樣本數目的百分比;敏感性是指正確的血管數目占血管總樣本數目的百分比。特異性、敏感性的計算如公式(10)、(11)所示:
(10)
(11)
除此之外,本文還引入模型評估指標AUC(Area Under Curve)。AUC的值可以判斷模型的性能,AUC的值越大,正確率就越高,它的取值范圍為[0,1]。
本實驗使用DU-CycleGAN網絡、U-Net以及DenseNet和U-Net(DU-Net)相結合的網絡模型進行分割效果對比。考慮到實驗嚴謹性,在訓練網絡模型時,采用與本文方法相同的數據擴充和數據預處理方法。實驗結果如表2所示。在DRIVE數據集中,本文網絡模型分割的準確性較U-Net提高了1.31%,達到了96.93%;本文提出的算法在敏感性、特異性以及AUC指標上均有所提升,優于U-Net以及其他算法,說明本算法改進網絡的有效性。同理,表3列舉了CHASE數據集實驗對比結果,從中可以看出,本文算法的評估指標要略高于其他算法,其中,準確性具有一定的優勢。實驗結果表明該網絡模型具有較好的視網膜血管圖像分割性能。

表2 DRIVE數據集上的分割結果Tab.2 Segmentation results on the DRIVE dataset

表3 CHASE數據集上的分割結果Tab.3 Segmentation results on CHASE dataset
為了更直觀地表現出DU-CycleGAN算法的優越性,圖7、圖8是本文算法與DU-Net、U-Net算法分別在DRIVE和CHASE數據集的受試者工作特征曲線(ROC)對比圖,從圖中可以看出本文算法的AUC面積要大于DU-Net以及U-Net網絡。本算法最靠近左上角的臨界值,縱坐標的真陽性率(True Positive Rate, TPR)較高,橫坐標的假陽性率(False Positive Rate, FPR)低,表明本實驗正確分割血管圖像的可能性高,實驗的診斷更有價值。
為了對DU-CycleGAN算法進行更加詳細的比較和分析,圖9從左到右分別列出了原始圖像、金標準圖像、基于U-Net算法、基于DU-Net算法以及本文算法的微細血管末端局部放大圖。通過局部分析3種不同模型的分割結果可得出,U-Net算法以及DU-Net算法對于視網膜血管的細小區域處理效果不佳。由于血管樹的形態結構過于復雜,U-Net算法在經過上、下采樣操作后會對血管的細節特征以及空間維度造成一定的損失,從而出現漏分割、分割斷裂等現象。如圖9(e)所示,本文經過優化改進后的模型可以捕捉更多微細血管的特征信息,不僅可以分割出粗細合理的血管樹,還可以有效緩解漏分割現象。

圖7 DRIVE數據集ROC曲線對比圖Fig.7 ROC curve comparison chart of DRIVE dataset

圖8 CHASE數據集ROC曲線對比圖Fig.8 ROC curve comparison chart of CHASE dataset

圖9 各分割算法末端微細血管局部放大。(a) 原圖像;(b) 金標準圖像;(c) U-Net算法;(d) DU-Net算法;(e) 本文算法。Fig.9 Each segmentation algorithm enlarges the end microvascular. (a) Original image;(b) Gold standard image;(c) U-Net algorithm;(d) DU-Net algorithm;(e) Our algorithm.

圖10 視網膜分割效果圖。(a) 原圖像;(b) 預處理后圖像;(c) 金標準圖像;(d) U-Net算法;(e) 本文算法。Fig.10 Effect picture of retinal segmentation. (a) Original image;(b) Preprocessed image;(c) Gold standard image;(d) U-Net algorithm;(e) Our algorithm.
圖10列舉了本文算法以及U-Net算法在DRIVE和CHASE數據集上視網膜血管分割的效果圖。從圖10(d)可以看出,U-Net分割結果會將部分細小血管劃分到背景區域中,雖然圖像中含有的噪聲較少,但血管連續性較差,對于血管末端的分叉處無法進行準確的分割,同時會出現血管斷裂、細小血管分割較為模糊等細節問題。圖10(e)列出了本文的分割結果,DU-CycleGAN網絡在上、下采樣過程中添加了密集連接結構,進一步提高了分割精度,使分割器可以更加有效地訓練數據;同時,改進后的分割模型增加了網絡的層數,使網絡模型可以提取并擬合更多用于分割的特征信息。如圖10(e)所示,DU-CycleGAN網絡可以更完整地對細小血管及其分叉處進行分割,網絡模型準確地擬合了特征信息,保留了更多的血管細節信息,使血管具有較好的連續性,更加接近金標準圖像。
為了更好地體現DU-CycleGAN算法的有效性,表4、表5分別列舉了不同分割算法使用DRIVE和CHASE數據集的性能指標。如表4所示,在DRIVE數據集中,本文算法無論在準確性還是特異性上都具有一定的優勢,尤其是敏感性比文獻[16]高了7.39%。而在CHASE數據集中,文獻[19]提出了一種基于U-Net模型的遞歸殘差卷積神經網絡,該算法的特異性指標相比于其他算法具有較好的表現,但該算法分割的準確度不夠高,對于細小血管的分割容易出現斷裂現象。文獻[22]提出了基于U-Net的多分支卷機神經網絡,并且增加了特征信息流路徑,該模型與其他算法相比具有較好的分割性能,在CHASE數據集中AUC值也達到了98.39%,但在具體分割過程中,該算法存在微細血管分割較為模糊的現象。本文算法與文獻[19]、文獻[22]的算法模型相比,在總體性能指標相差不大的情況下,可以準確地擬合特征信息,保留更多的血管細節信息。由此可見,本文網絡模型具有良好的魯棒性和泛化能力。

表4 DRIVE數據集分割結果比較

表5 CHASE數據集分割結果比較

續 表
本文提出了一種基于循環分割對抗網絡的視網膜圖像分割算法,使用了U型網絡和密集連接相結合的模型作為分割器的網絡模型結構,并添加了最小二乘損失函數。實驗結果證明,所改進的網絡模型在DRIVE和CHASE數據集中,兩者分割的準確性、敏感性分別達到了96.93%、84.30%以及96.94%、79.92%,說明同其他深度學習算法模型相比,本文網絡模型分割效果更為精細。但在具體實驗中,本文的網絡模型過于復雜,對實驗設備有著較高的要求,并且網絡因為層數過多導致分割效率低于預期。在未來的工作中還需要對網絡模型進一步優化,在不影響性能的情況下,降低網絡復雜度,從而獲得更優的分割結果。