針對現有視網膜血管分割算法存在主血管末端易斷裂、中心黃斑和視盤邊界易誤分割等問題,本文提出一種融合血管輪廓信息與條件生成對抗網絡的視網膜血管分割算法。首先,采用非均勻光照移除和主成分分析處理眼底圖像,增強血管與背景的對比度,并獲得特征信息豐富的單尺度灰度圖像。其次,將集成了帶偏移量的深度可分離卷積和擠壓激勵(SE)模塊的密集塊同時運用到編碼器和解碼器,緩解梯度消失和梯度爆炸,同時使得網絡專注于學習目標的特征信息。然后,引入輪廓損失函數,提升網絡對血管信息和輪廓信息的辨識能力。最后,在 DRIVE 與 STARE 數據集上分別進行實驗,受試者曲線值分別達到 0.982 5 和 0.987 4,準確率分別達到 0.967 7 和 0.975 6。實驗結果表明,本文提出的算法能夠準確辨別輪廓與血管,減少血管斷裂,在臨床眼科疾病診斷中具有一定的應用價值。
引用本文: 梁禮明, 藍智敏, 盛校棋, 謝招犇, 劉萬蓉. 融合輪廓信息與條件生成對抗的視網膜血管分割. 生物醫學工程學雜志, 2021, 38(2): 276-285. doi: 10.7507/1001-5515.202005019 復制
引言
眼底圖像的處理與分析對糖尿病、心血管疾病、黃斑病變等多種疾病的早期發現和治療具有重要意義。視網膜血管分割面臨的挑戰主要有毛細血管與背景對比度低、視盤邊界誤分割和病理斑點的干擾[1]。多年來,研究者針對上述難題對視網膜血管分割算法加以改進與創新,使得分割算法取得長足的進步與發展。
在早期的血管分割算法中,依靠血管結構信息和血管響應函數來解決分割問題,如水平集[2]、血管追蹤[3]和多尺度線性檢測[4]等。但該類算法存在血管交叉區域分割不良和視盤及病理區域誤分割的現象,導致血管網絡結構分析不準確。隨著機器學習的不斷進步,利用非線性分類器提取血管特征成為主流,使得血管中心亮線像素誤分割和主血管分割斷裂的現象得到改善,如極限學習機(extreme learning machine,ELM)[5]、AdaBoost[6]和隨機森林[7]等。但該類算法的特征選擇部分對后續的分割精度具有較大的影響,因此提取血管高識別率的獨立特征是關鍵步驟。如今,深度學習算法的卷積神經網絡已經有效地應用在圖像分類、識別和分割等任務中,如最近鄰域神經網絡[8]、全卷積解碼與編碼網絡[9]和整體嵌套邊緣檢測(holistically-nested edge detection,HED)[10]。該類算法不易受到局部亮度、顏色和梯度信息的干擾,具有良好的泛化性,但實踐中仍存在微血管分割過粗和病理信息誤分割的現象。文獻[11]在 U-net 的基礎上提出一種融合密集型可變形卷積和注意機制的視網膜血管分割算法,能夠自適應地捕獲血管的各種形狀和尺度信息,降低病理信息的影響,但分割性能不夠穩定,分割血管會出現過粗或過細的情況。
針對既往研究算法存在的諸多難題,本研究提出相應的改進方法:為解決文獻[2]的視盤邊界誤分割,引入輪廓損失函數以識別視盤與血管;為解決文獻[7]的特征選取困難,使用深度學習模型以減少手工遴選特征;為解決文獻[11]的分割性能不穩定,采用條件生成對抗網絡(conditional generative adversarial nets,CGANs)以及距離懲罰項對血管進行精確定位。將本文提出的視網膜血管分割網絡命名為邊緣條件生成對抗網絡(edges conditional generative adversarial nets,ECGANs),由 SE-DenseNet 網絡[SE 為擠壓激勵(squeeze-and-excitation)模塊]、卷積自動編碼器和 CGANs 三大部分組成,并在團隊最新研究成果文獻[11]的基礎上加以改進。
1 圖像預處理與數據集增強
1.1 圖像預處理
臨床采集的眼底視網膜圖像可能存在散光、畸變、色差和相當數量的噪聲等問題,造成血管與背景對比度差異不明顯,進而導致微血管分割不足和假陽性高。本文借鑒文獻[12]的預處理方法并加以改進,以解決上述問題。該算法共分為兩部分,分別為非均勻光照移除(non-uniform illumination removal)和主成分分析(principal component analysis,PCA)。預處理流程如圖 1 所示。

1.1.1 非均勻光照移除
首先將彩色圖像通道分離,然后分別在三通道圖像上利用數學形態學閉運算濾去病灶、黃斑和視盤等信息,同時評估背景信息,最后利用雙邊濾波算法(bilateral filter)濾除矯正后圖像的隨機噪聲。形態學光照矯正公式如下:
![]() |
式(1)中,i 分別為 R、G、B 三通道圖像。
1.1.2 主成分分析
將校正后的三通道圖像合并為矢量彩色圖像 ,然后使用傳統的傳遞函數計算
的零均值,得到分離亮度和色度通道的圖像
,再由 PCA 算法計算圖像的特征值
和特征向量
。最終的灰度圖
由原來三種顏色亮度值的線性組合而成。PCA 的第一子空間投影支配顏色到灰度映射的結果,第二和第三子空間投影有助于保留彩色圖像的細節到灰度圖像中。因此,該算法不僅能保證視網膜血管與背景具有最大的對比度信息,而且能有效地保證單尺度灰度圖像具有更多的特征信息。
1.1.3 預處理算法比較
為進一步體現本文預處理算法的有效性,圖 2 依次給出綠色通道圖像、文獻[13]通道加權圖像、文獻[11]K-L 變換圖像和本文預處理圖像,上述預處理算法的灰度直方圖統計如圖 3 所示。

a. 原始圖像;b. 綠色通道;c. 通道加權;d. K-L 變換;e. 本文預處理
Figure2. Preprocessing images with different algorithmsa. original image; b. green channel; c. channel weighting; d. K-L transform; e. preprocessing of this paper

通過觀察圖 2a 到圖 2d 可以看出,雖然血管與背景的灰度值差異略有提升,但是差異性不顯著,且存在黃斑與視盤等非血管噪聲的影響。從圖 2e 觀察出,本文預處理算法所得到的血管與背景對比度更加明顯,同時有效地降低了中心黃斑和視盤等噪聲的影響。由圖 3 灰度直方圖數據可知,K-L 算法相比綠色通道和通道簡單加權所得到的視網膜圖像灰度值分布更加均勻,但血管特征仍缺乏代表性。本文預處理算法的灰度直方圖更加集中,從雙峰型直方圖變為單峰型直方圖,說明其非血管像素干擾性較弱,血管特征更具代表性。
1.2 數據集增強
本文在 DRIVE[14]和 STARE[15]公開眼底視網膜數據集上進行訓練和測試。對小數據集使用生成對抗網絡易過擬合,故須進行數據擴充,即將訓練圖像每次旋轉 3°,共旋轉 360°,然后將旋轉后的圖像采用隨機裁剪算法裁剪。隨機裁剪相當于建立圖像中每個像素特征與相應類別的權重關系,減弱眼底圖像中背景像素的權重,既增加了數據多樣性,又弱化了訓練集的噪聲,還增強了網絡根據視網膜血管的幾何變化進行建模的穩健性。
2 條件生成對抗網絡
生成對抗網絡(generative adversarial nets,GANs)[16]通過極大極小博弈訓練生成器和判別器,使得生成器能夠學習并生成與真實樣本極為“相似”的偽樣本。GANs 雖然應用廣泛,生成的圖像樣本在視覺上相比其他算法更加清晰,但 GANs 往往存在訓練不穩定和難以收斂的問題。對此,本文采用以金標準為約束信息的 CGANs[17]為基本框架(如圖 4 所示),使網絡具有可指導性,組成穩定性較強的有監督學習網絡。

2.1 生成器網絡模型
對于要求精確定位的視覺識別,算法需具有一定的自適應目標尺度或感受野大小的能力,因此,本文生成器采用類似文獻[11]的 U-net,以增強生成對抗網絡對小數據的適應性。區別于文獻[11]的是,在編碼器與解碼器中均利用可變形卷積和密集塊(DenseBlock),同時借鑒文獻[18]的輕量化網絡的思想,與可分離卷積[19]相融合,不僅有效地提升網絡對圖像紋理和尺度信息的定位,而且將卷積層的空間與通道相關性分離,提升網絡數據處理效率。在解碼器結構中,采用能夠學習特征的反卷積操作代替文獻[11]的上池化層操作,防止特征稀疏度過高。此外,加入多尺度通道注意力機制,提高網絡的穩定性。
2.1.1 帶有偏移量的深度可分離卷積模塊
本文將可變形卷積和深度可分離卷積相融合,以較小的計算量自適應地捕捉血管形變信息,該模塊命名為帶有偏移量的深度可分離卷積(depth with offset separates convolution,DOS),其結構圖如圖 5 所示。深度可分離卷積共分為兩大部分:空間卷積和逐點卷積。其中空間卷積側重于二維信道卷積的空間關系建模,逐點卷積側重于跨信道 1 × 1 卷積的信道關系建模[20]。同時本文在空間卷積的基礎上,在每一個通道上加入由附加卷積層學習到的偏移量,使得空間卷積的采樣點能夠聚焦于血管的形狀輪廓信息。

2.1.2 SE-DenseNet 模塊
考慮到生成對抗網絡計算復雜度高,而且網絡隨著深度的增加會出現梯度爆炸和梯度消失的問題[17],本文不僅采用帶有偏移量的深度可分離卷積,還采用帶有轉換層(transition-layer)的 DenseBlock 減輕較深網絡出現“退化”的現象。雖然 DenseNet 網絡[21]相比殘差網絡[22]能夠更有效地利用前后層的特征信息,但仍然不能解決特征冗余的問題,因此在轉換層引入 SE 模塊[23],構成一種帶有通道注意力機制的 DenseBlock 結構,使得各個特征信息更加精煉。受到文獻[24]的啟發,將 SE 模塊放在 DenseBlock 結構后面可以取得比其他結合方式更優異的分割結果,該結構命名為 SE-DenseNet,具體結構如圖 6 所示。

SE-DenseNet 主要分為三部分:帶有偏移量的深度可分離卷積(DOS)、帶通道有注意力的轉換層(SE-Transition)[25]和正則化層(drop-block)[26]。其中,SE-Transition 結構如圖 6 右側所示,該結構在空間上根據損失(loss)對特征映射進行加權,使得有效特征圖權重變大,以此來弱化背景等噪聲信息。同時,通道注意力也有利于減弱生成對抗存在的不穩定性,并防止過擬合以及激發新的特征學習[25]。Drop-Block 層旨在解決 Drop-Out 層在丟掉激活單元后網絡仍會學習的問題,使得網絡專注于學習目標的特征信息。
2.1.3 生成器總體網絡結構
本文利用文獻[27]的具有軟區域的注意力機制(attention-gated networks,AGs)實現 U-net 深淺層不同類別特征信息的有效融合。在進行特征信息融合之前加入 AGs,既能夠將上層的特征信息跳過反卷積層直接用于生成選通信號,又能結合 U-net 的跳躍連接的特征信息,使得在不同位置的特征信息權重不同,從而抑制與分割任務不相關的噪聲信息,提高算法分割的靈敏度和泛化性。生成器的總體網絡結構如圖 7 所示。

2.2 判別器模型
根據判別器輸出尺寸從像素點到整幅圖,可分別設計基于 Pixel、Patch()和 Image 的判別器[13]。Pixel 判別器對空間銳度沒有影響,只增加色度[28],于視網膜血管分割任務無益,且像素級的比較忽略了特征之間的關聯性,不利于區分血管壁和視網膜背景。于是本文僅在 Image 和 Patch 上實驗,實驗結果表明基于 Patch 判別器的分割效果圖和指標均優于 Image 判別器,其網絡結構如圖 8 所示。該判別器網絡共包含 10 個
卷積層、1 個 1 × 1 卷積層和 4 個池化操作,其中深度為 32 和 64 的卷積層各包含一個步長為 2 的卷積。

2.3 損失函數
CGANs 通過判別器 D 和生成器 G 交替優化,以解決對抗性極大極小問題。設為輸入的眼底視網膜圖像,
為專家手動分割的視網膜血管圖像,CGANs 的優化函數為:
![]() |
式(2)中, 表示視網膜血管金標準圖像的概率圖,
為生成器生成的視網膜血管概率圖。為使判別器能更好地辨識生成的圖像,需要
得到最大化;為使生成器能夠產生與真實數據難以區分的輸出,需要目標函數定義為最小值。
2.3.1 輪廓損失函數
輪廓損失函數[29]綜合考慮預測圖像邊緣信息與金標準圖像的像素值,對正負像素設置不同的權重信息,解決邊緣像素數量分割不平衡的問題,同時懲罰與金標準之間的距離,降低視盤周圍主血管與微血管分割斷裂的情況。該損失函數通過二進制交叉熵進行實現,即
![]() |
式(3)中,n 為圖像編號,N 為圖像總和; 和
分別為非邊緣像素與邊緣像素的權重。設
和
分別為邊緣像素和非邊緣像素的數目,
為
和
的總和,因此有
和
。
2.3.2 ECGANs 損失函數
為有效地估計預測圖像與可用邊緣信息相似性概率,引入對抗性損失函數,如式(4)所示。考慮到傳統的
是一種遵循經驗最小化準則的函數,存在一定過擬合的風險,需減少參數的空間信息,引入 L2 正則化。最終,本文網絡模型 ECGANs 的損失函數如式(5)所示:
![]() |
![]() |
式(5)中, 和
分別表示對抗性損失函數和 L2 正則化損失函數的權重,
為模型的參數。
3 實驗結果與分析
本文在 DRIVE 和 STARE 數據集進行相關實驗驗證,并且設計兩種判別器網絡(Image 和 Patch)在 ECGANs 網絡架構下進行實驗驗證。同時,在其最優分割結果的 Patch 判別器以及 CGANs 原有損失函數基礎上僅加 L1 正則項損失函數、二值交叉熵和本文設計的損失函數進行相關實驗驗證,并記 TP(This Paper)為本文分割算法。
3.1 ECGANs 在不同判別器的分割結果
ECGANs 基于 Image 判別器和 Patch 判別器的視網膜血管分割效果圖如圖 9 所示,從總體效果觀察發現,在基于 Patch 判別器得到的眼底圖像血管分割效果基本優于基于 Image 判別器的分割效果。從局部細節(紅色矩形框)中可觀察出,本文算法基于 Patch 判別器的分割結果不僅與第一專家或者第二專家金標準圖像非常相近,而且能互補兩個金標準圖像之間的細小差異,在微血管方面基本不會出現分割過細的現象。然而基于 Image 判別器的分割結果存在視盤周圍血管分割斷裂以及微血管末端斷裂的現象。這是因為 Patch 較 Image 能夠辨別更多尺度的血管,有利于提升生成器的泛化性,且具有更少的參數,利于網絡的訓練。

表 1 給出在 DRIVE 與 STARE 數據集上,傳統 U-net 網絡以及未改進的 U-GAN 和本文算法在 Patch 與 Image 判別器上的 AU-ROC(area under the receiver operating characteristic)值與 AU-PR(area under the precision and recall curve)值,AU-ROC 值越大表明血管分割的數量越多,AU-PR 值越大表明算法分割的精確度越高。從表 1 可看出,未改進的 U-GAN 和本文算法在兩種判別器上的總體性能指標均超過傳統 U-net 算法,說明生成對抗網絡優于傳統 U-net,而本文算法在兩種判別器上的總體性能指標均超過未改進的 U-GAN,進一步說明本文設計的生成器網絡架構的有效性。同時,綜合觀察基于判別器 Image 與 Patch 的 ROC 與 PR 值和圖 9 可看出,基于 Patch 的 ECGANs 在 DRIVE 與 STARE 數據集上不僅分割效果優異,而且在兩個數據集上的指標性能的差異性較小,從而說明本文算法在魯棒性和泛化性方面均有較優異的性能,而且 Patch 判別器較 Image 判別器更適用于臨床診療。

3.2 不同損失函數的分割結果
本文網絡模型在最優判別器(Patch)下,對不同損失函數組合進行相關實驗,其中共設計三部分:① 在原有生成器損失函數上引入 L1 正則化,記為 CGAN-L1;② 將本文損失函數中 L2 正則化改為 L1 正則化,記為 TP-L1;③ 利用未改進的二值交叉熵與
結合,記為 CGAN-Cross。在 DRIVE 數據集分別進行實驗驗證,圖 10 為相應的分割效果圖。

a. 第一專家金標準;b. 第二專家金標準;c. TP;d. CGAN-Cross;e. TP-L1;f. CGAN-L1
Figure10. The segmentation results using ECGANs with different loss functions in DRIVE dataseta. first expert gold standard; b. second expert gold standard; c. TP; d. CGAN-Cross; e. TP-L1; f. CGAN-L1
圖 10c 算法在視盤處和主血管末端處分割的血管數量相比圖 10d、e 和 f 更多,且不易出現斷裂的現象。圖 10f 的算法僅加入 L1 正則化,雖能使網絡參數稀疏化,但易造成丟失部分特征信息,存在微血管分割不足的現象。圖 10e 雖然引入本文輪廓損失函,能分割出更多血管,但其引入 L1 正則化卻造成主血管與微血管斷裂的現象,從而驗證本文 L2 正則化引入的合理性。圖 10d 算法雖然能夠分割出大部分主血管和微血管信息,但是相比圖 10c 和金標準圖像仍會出現微血管分割不全的現象,進一步說明本文對交叉熵改進的有效性。表 2 給出在不同損失函數下 ECGANs 在 DRIVE 數據集上的 AU-ROC 值、AU-PR 值和準確率(Acc)指標,客觀反映了本文所提出的損失函數的有效性和合理性。

3.3 不同分割算法之間的效果圖比較
圖 11 給出不同算法在 DRIVE 和 STARE 數據集上的分割效果圖。由圖 11 第一行與第三行的健康視網膜血管分割圖像可知,本文算法與文獻[30]、文獻[10]和文獻[13]的算法相比,在微血管分割上均具有較好的魯棒性。雖然文獻[30]與文獻[10]分割的微血管數量相比本文算法看似更多,但是該類算法不僅產生與金標準不一樣的額外分割,而且存在主血管和微血管分割過粗的現象,導致準確率與精確率大幅下降。同時,觀察第二行與第四行病變視網膜血管分割圖像,本文算法相比文獻[13]的生成對抗方法在病變區域主血管分割斷裂的情況較少。但是在第四行的病變圖像中,由于視盤周圍病變較嚴重,本文算法分割效果相對金標準、文獻[30]和文獻[10]算法有部分主血管未分割出,但總體分割性能較為優異。

3.4 不同分割算法之間的性能指標比較
表 3[8, 10-13, 17, 30-32] 給出近幾年以第一專家金標準作為測試標簽的不同分割算法的 AU-ROC 值、Acc 和 F1-measure(F1)等指標,綜合評價本文方法的有效性。

文獻[12]的 AU-ROC 值相比其他算法具有較好的表現,說明該算法能夠衡量背景與血管之間的有效比例,但該算法在視盤處會出現血管誤分割的現象,導致整體精度不能得到保證。文獻[17]將殘差模塊與 U-net 網絡引入到生成對抗網絡中,對主血管的分割性能表現良好,在 STARE 數據集上 Acc 和 F1-measure 達到 0.977 1 和 0.850 2,但該算法較本文算法存在微血管分割較弱的現象。可見本文算法與上述兩種算法比較,雖總體性能指標相差不大,但在微血管分割方面稍勝一籌。
為直觀展現本文算法的有效性,將輸出的概率圖利用大津閾值法進行二值化,并與金標準計算重合效果圖。同時,利用不同顏色進行相應的標注,其中紅色為欠分割部分,綠色為正確分割部分,藍色為過分割部分,如圖 12 所示,第二、三行分別為本文算法和文獻[13]算法重合率效果圖。

由圖 12 可以看出,本文算法無論在健康視網膜圖像上還是在病變視網膜圖像上,均比文獻[13]的算法具有更強的魯棒性,而且分割的血管信息更加全面,再一次驗證本文算法總體性能的優異性,以及上述綜合指標 F1-measure 和 AU-ROC 的可靠性。雖然本文算法仍然在兩個數據集上存在些許視盤周圍血管與微血管欠分割和過分割的現象,但是所占的像素比例并不能大幅降低本文算法的準確率,本文算法已具備臨床應用價值。
4 結論
本文將融合輪廓損失函數和距離懲罰項的 CGANs 應用于視網膜血管分割。首先對數據集進行預處理以增強對比度和減少噪聲影響,隨后對數據集加以擴充以提高網絡對數據的適應性。其次在 CGANs 的基礎上,對生成器和判別器分別進行詳盡設計,使網絡易于訓練且自適應地學習多尺度血管特征和辨別血管與非血管信息。然后定義網絡的損失函數,提高血管信息和邊緣信息的識別率,降低過擬合的可能,解決邊緣像素數量分割不平衡和視盤周圍血管斷裂問題。最后,在 DRIVE 數據集和 STARE 數據集進行實驗,取得了優異的分割效果,相較于文獻[7]不需要人工篩選血管特征,分割性能穩定性優于文獻[11],且較好地解決了文獻[2]出現的血管過分割和視盤邊界誤分割的問題,能夠分割出更多的微血管。但是,本文設計的算法雖有較強的辨別血管信息與非血管信息的能力,由于存在 DenseBlock,即使引入 SE 模塊,仍有一定量的冗余特征信息使得網絡訓練出現波動,下一步可以考慮通過網絡單元剪枝或權重剪枝的思想,去除部分對網絡性能影響較小的神經元,進而提升網絡收斂能力。
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
引言
眼底圖像的處理與分析對糖尿病、心血管疾病、黃斑病變等多種疾病的早期發現和治療具有重要意義。視網膜血管分割面臨的挑戰主要有毛細血管與背景對比度低、視盤邊界誤分割和病理斑點的干擾[1]。多年來,研究者針對上述難題對視網膜血管分割算法加以改進與創新,使得分割算法取得長足的進步與發展。
在早期的血管分割算法中,依靠血管結構信息和血管響應函數來解決分割問題,如水平集[2]、血管追蹤[3]和多尺度線性檢測[4]等。但該類算法存在血管交叉區域分割不良和視盤及病理區域誤分割的現象,導致血管網絡結構分析不準確。隨著機器學習的不斷進步,利用非線性分類器提取血管特征成為主流,使得血管中心亮線像素誤分割和主血管分割斷裂的現象得到改善,如極限學習機(extreme learning machine,ELM)[5]、AdaBoost[6]和隨機森林[7]等。但該類算法的特征選擇部分對后續的分割精度具有較大的影響,因此提取血管高識別率的獨立特征是關鍵步驟。如今,深度學習算法的卷積神經網絡已經有效地應用在圖像分類、識別和分割等任務中,如最近鄰域神經網絡[8]、全卷積解碼與編碼網絡[9]和整體嵌套邊緣檢測(holistically-nested edge detection,HED)[10]。該類算法不易受到局部亮度、顏色和梯度信息的干擾,具有良好的泛化性,但實踐中仍存在微血管分割過粗和病理信息誤分割的現象。文獻[11]在 U-net 的基礎上提出一種融合密集型可變形卷積和注意機制的視網膜血管分割算法,能夠自適應地捕獲血管的各種形狀和尺度信息,降低病理信息的影響,但分割性能不夠穩定,分割血管會出現過粗或過細的情況。
針對既往研究算法存在的諸多難題,本研究提出相應的改進方法:為解決文獻[2]的視盤邊界誤分割,引入輪廓損失函數以識別視盤與血管;為解決文獻[7]的特征選取困難,使用深度學習模型以減少手工遴選特征;為解決文獻[11]的分割性能不穩定,采用條件生成對抗網絡(conditional generative adversarial nets,CGANs)以及距離懲罰項對血管進行精確定位。將本文提出的視網膜血管分割網絡命名為邊緣條件生成對抗網絡(edges conditional generative adversarial nets,ECGANs),由 SE-DenseNet 網絡[SE 為擠壓激勵(squeeze-and-excitation)模塊]、卷積自動編碼器和 CGANs 三大部分組成,并在團隊最新研究成果文獻[11]的基礎上加以改進。
1 圖像預處理與數據集增強
1.1 圖像預處理
臨床采集的眼底視網膜圖像可能存在散光、畸變、色差和相當數量的噪聲等問題,造成血管與背景對比度差異不明顯,進而導致微血管分割不足和假陽性高。本文借鑒文獻[12]的預處理方法并加以改進,以解決上述問題。該算法共分為兩部分,分別為非均勻光照移除(non-uniform illumination removal)和主成分分析(principal component analysis,PCA)。預處理流程如圖 1 所示。

1.1.1 非均勻光照移除
首先將彩色圖像通道分離,然后分別在三通道圖像上利用數學形態學閉運算濾去病灶、黃斑和視盤等信息,同時評估背景信息,最后利用雙邊濾波算法(bilateral filter)濾除矯正后圖像的隨機噪聲。形態學光照矯正公式如下:
![]() |
式(1)中,i 分別為 R、G、B 三通道圖像。
1.1.2 主成分分析
將校正后的三通道圖像合并為矢量彩色圖像 ,然后使用傳統的傳遞函數計算
的零均值,得到分離亮度和色度通道的圖像
,再由 PCA 算法計算圖像的特征值
和特征向量
。最終的灰度圖
由原來三種顏色亮度值的線性組合而成。PCA 的第一子空間投影支配顏色到灰度映射的結果,第二和第三子空間投影有助于保留彩色圖像的細節到灰度圖像中。因此,該算法不僅能保證視網膜血管與背景具有最大的對比度信息,而且能有效地保證單尺度灰度圖像具有更多的特征信息。
1.1.3 預處理算法比較
為進一步體現本文預處理算法的有效性,圖 2 依次給出綠色通道圖像、文獻[13]通道加權圖像、文獻[11]K-L 變換圖像和本文預處理圖像,上述預處理算法的灰度直方圖統計如圖 3 所示。

a. 原始圖像;b. 綠色通道;c. 通道加權;d. K-L 變換;e. 本文預處理
Figure2. Preprocessing images with different algorithmsa. original image; b. green channel; c. channel weighting; d. K-L transform; e. preprocessing of this paper

通過觀察圖 2a 到圖 2d 可以看出,雖然血管與背景的灰度值差異略有提升,但是差異性不顯著,且存在黃斑與視盤等非血管噪聲的影響。從圖 2e 觀察出,本文預處理算法所得到的血管與背景對比度更加明顯,同時有效地降低了中心黃斑和視盤等噪聲的影響。由圖 3 灰度直方圖數據可知,K-L 算法相比綠色通道和通道簡單加權所得到的視網膜圖像灰度值分布更加均勻,但血管特征仍缺乏代表性。本文預處理算法的灰度直方圖更加集中,從雙峰型直方圖變為單峰型直方圖,說明其非血管像素干擾性較弱,血管特征更具代表性。
1.2 數據集增強
本文在 DRIVE[14]和 STARE[15]公開眼底視網膜數據集上進行訓練和測試。對小數據集使用生成對抗網絡易過擬合,故須進行數據擴充,即將訓練圖像每次旋轉 3°,共旋轉 360°,然后將旋轉后的圖像采用隨機裁剪算法裁剪。隨機裁剪相當于建立圖像中每個像素特征與相應類別的權重關系,減弱眼底圖像中背景像素的權重,既增加了數據多樣性,又弱化了訓練集的噪聲,還增強了網絡根據視網膜血管的幾何變化進行建模的穩健性。
2 條件生成對抗網絡
生成對抗網絡(generative adversarial nets,GANs)[16]通過極大極小博弈訓練生成器和判別器,使得生成器能夠學習并生成與真實樣本極為“相似”的偽樣本。GANs 雖然應用廣泛,生成的圖像樣本在視覺上相比其他算法更加清晰,但 GANs 往往存在訓練不穩定和難以收斂的問題。對此,本文采用以金標準為約束信息的 CGANs[17]為基本框架(如圖 4 所示),使網絡具有可指導性,組成穩定性較強的有監督學習網絡。

2.1 生成器網絡模型
對于要求精確定位的視覺識別,算法需具有一定的自適應目標尺度或感受野大小的能力,因此,本文生成器采用類似文獻[11]的 U-net,以增強生成對抗網絡對小數據的適應性。區別于文獻[11]的是,在編碼器與解碼器中均利用可變形卷積和密集塊(DenseBlock),同時借鑒文獻[18]的輕量化網絡的思想,與可分離卷積[19]相融合,不僅有效地提升網絡對圖像紋理和尺度信息的定位,而且將卷積層的空間與通道相關性分離,提升網絡數據處理效率。在解碼器結構中,采用能夠學習特征的反卷積操作代替文獻[11]的上池化層操作,防止特征稀疏度過高。此外,加入多尺度通道注意力機制,提高網絡的穩定性。
2.1.1 帶有偏移量的深度可分離卷積模塊
本文將可變形卷積和深度可分離卷積相融合,以較小的計算量自適應地捕捉血管形變信息,該模塊命名為帶有偏移量的深度可分離卷積(depth with offset separates convolution,DOS),其結構圖如圖 5 所示。深度可分離卷積共分為兩大部分:空間卷積和逐點卷積。其中空間卷積側重于二維信道卷積的空間關系建模,逐點卷積側重于跨信道 1 × 1 卷積的信道關系建模[20]。同時本文在空間卷積的基礎上,在每一個通道上加入由附加卷積層學習到的偏移量,使得空間卷積的采樣點能夠聚焦于血管的形狀輪廓信息。

2.1.2 SE-DenseNet 模塊
考慮到生成對抗網絡計算復雜度高,而且網絡隨著深度的增加會出現梯度爆炸和梯度消失的問題[17],本文不僅采用帶有偏移量的深度可分離卷積,還采用帶有轉換層(transition-layer)的 DenseBlock 減輕較深網絡出現“退化”的現象。雖然 DenseNet 網絡[21]相比殘差網絡[22]能夠更有效地利用前后層的特征信息,但仍然不能解決特征冗余的問題,因此在轉換層引入 SE 模塊[23],構成一種帶有通道注意力機制的 DenseBlock 結構,使得各個特征信息更加精煉。受到文獻[24]的啟發,將 SE 模塊放在 DenseBlock 結構后面可以取得比其他結合方式更優異的分割結果,該結構命名為 SE-DenseNet,具體結構如圖 6 所示。

SE-DenseNet 主要分為三部分:帶有偏移量的深度可分離卷積(DOS)、帶通道有注意力的轉換層(SE-Transition)[25]和正則化層(drop-block)[26]。其中,SE-Transition 結構如圖 6 右側所示,該結構在空間上根據損失(loss)對特征映射進行加權,使得有效特征圖權重變大,以此來弱化背景等噪聲信息。同時,通道注意力也有利于減弱生成對抗存在的不穩定性,并防止過擬合以及激發新的特征學習[25]。Drop-Block 層旨在解決 Drop-Out 層在丟掉激活單元后網絡仍會學習的問題,使得網絡專注于學習目標的特征信息。
2.1.3 生成器總體網絡結構
本文利用文獻[27]的具有軟區域的注意力機制(attention-gated networks,AGs)實現 U-net 深淺層不同類別特征信息的有效融合。在進行特征信息融合之前加入 AGs,既能夠將上層的特征信息跳過反卷積層直接用于生成選通信號,又能結合 U-net 的跳躍連接的特征信息,使得在不同位置的特征信息權重不同,從而抑制與分割任務不相關的噪聲信息,提高算法分割的靈敏度和泛化性。生成器的總體網絡結構如圖 7 所示。

2.2 判別器模型
根據判別器輸出尺寸從像素點到整幅圖,可分別設計基于 Pixel、Patch()和 Image 的判別器[13]。Pixel 判別器對空間銳度沒有影響,只增加色度[28],于視網膜血管分割任務無益,且像素級的比較忽略了特征之間的關聯性,不利于區分血管壁和視網膜背景。于是本文僅在 Image 和 Patch 上實驗,實驗結果表明基于 Patch 判別器的分割效果圖和指標均優于 Image 判別器,其網絡結構如圖 8 所示。該判別器網絡共包含 10 個
卷積層、1 個 1 × 1 卷積層和 4 個池化操作,其中深度為 32 和 64 的卷積層各包含一個步長為 2 的卷積。

2.3 損失函數
CGANs 通過判別器 D 和生成器 G 交替優化,以解決對抗性極大極小問題。設為輸入的眼底視網膜圖像,
為專家手動分割的視網膜血管圖像,CGANs 的優化函數為:
![]() |
式(2)中, 表示視網膜血管金標準圖像的概率圖,
為生成器生成的視網膜血管概率圖。為使判別器能更好地辨識生成的圖像,需要
得到最大化;為使生成器能夠產生與真實數據難以區分的輸出,需要目標函數定義為最小值。
2.3.1 輪廓損失函數
輪廓損失函數[29]綜合考慮預測圖像邊緣信息與金標準圖像的像素值,對正負像素設置不同的權重信息,解決邊緣像素數量分割不平衡的問題,同時懲罰與金標準之間的距離,降低視盤周圍主血管與微血管分割斷裂的情況。該損失函數通過二進制交叉熵進行實現,即
![]() |
式(3)中,n 為圖像編號,N 為圖像總和; 和
分別為非邊緣像素與邊緣像素的權重。設
和
分別為邊緣像素和非邊緣像素的數目,
為
和
的總和,因此有
和
。
2.3.2 ECGANs 損失函數
為有效地估計預測圖像與可用邊緣信息相似性概率,引入對抗性損失函數,如式(4)所示。考慮到傳統的
是一種遵循經驗最小化準則的函數,存在一定過擬合的風險,需減少參數的空間信息,引入 L2 正則化。最終,本文網絡模型 ECGANs 的損失函數如式(5)所示:
![]() |
![]() |
式(5)中, 和
分別表示對抗性損失函數和 L2 正則化損失函數的權重,
為模型的參數。
3 實驗結果與分析
本文在 DRIVE 和 STARE 數據集進行相關實驗驗證,并且設計兩種判別器網絡(Image 和 Patch)在 ECGANs 網絡架構下進行實驗驗證。同時,在其最優分割結果的 Patch 判別器以及 CGANs 原有損失函數基礎上僅加 L1 正則項損失函數、二值交叉熵和本文設計的損失函數進行相關實驗驗證,并記 TP(This Paper)為本文分割算法。
3.1 ECGANs 在不同判別器的分割結果
ECGANs 基于 Image 判別器和 Patch 判別器的視網膜血管分割效果圖如圖 9 所示,從總體效果觀察發現,在基于 Patch 判別器得到的眼底圖像血管分割效果基本優于基于 Image 判別器的分割效果。從局部細節(紅色矩形框)中可觀察出,本文算法基于 Patch 判別器的分割結果不僅與第一專家或者第二專家金標準圖像非常相近,而且能互補兩個金標準圖像之間的細小差異,在微血管方面基本不會出現分割過細的現象。然而基于 Image 判別器的分割結果存在視盤周圍血管分割斷裂以及微血管末端斷裂的現象。這是因為 Patch 較 Image 能夠辨別更多尺度的血管,有利于提升生成器的泛化性,且具有更少的參數,利于網絡的訓練。

表 1 給出在 DRIVE 與 STARE 數據集上,傳統 U-net 網絡以及未改進的 U-GAN 和本文算法在 Patch 與 Image 判別器上的 AU-ROC(area under the receiver operating characteristic)值與 AU-PR(area under the precision and recall curve)值,AU-ROC 值越大表明血管分割的數量越多,AU-PR 值越大表明算法分割的精確度越高。從表 1 可看出,未改進的 U-GAN 和本文算法在兩種判別器上的總體性能指標均超過傳統 U-net 算法,說明生成對抗網絡優于傳統 U-net,而本文算法在兩種判別器上的總體性能指標均超過未改進的 U-GAN,進一步說明本文設計的生成器網絡架構的有效性。同時,綜合觀察基于判別器 Image 與 Patch 的 ROC 與 PR 值和圖 9 可看出,基于 Patch 的 ECGANs 在 DRIVE 與 STARE 數據集上不僅分割效果優異,而且在兩個數據集上的指標性能的差異性較小,從而說明本文算法在魯棒性和泛化性方面均有較優異的性能,而且 Patch 判別器較 Image 判別器更適用于臨床診療。

3.2 不同損失函數的分割結果
本文網絡模型在最優判別器(Patch)下,對不同損失函數組合進行相關實驗,其中共設計三部分:① 在原有生成器損失函數上引入 L1 正則化,記為 CGAN-L1;② 將本文損失函數中 L2 正則化改為 L1 正則化,記為 TP-L1;③ 利用未改進的二值交叉熵與
結合,記為 CGAN-Cross。在 DRIVE 數據集分別進行實驗驗證,圖 10 為相應的分割效果圖。

a. 第一專家金標準;b. 第二專家金標準;c. TP;d. CGAN-Cross;e. TP-L1;f. CGAN-L1
Figure10. The segmentation results using ECGANs with different loss functions in DRIVE dataseta. first expert gold standard; b. second expert gold standard; c. TP; d. CGAN-Cross; e. TP-L1; f. CGAN-L1
圖 10c 算法在視盤處和主血管末端處分割的血管數量相比圖 10d、e 和 f 更多,且不易出現斷裂的現象。圖 10f 的算法僅加入 L1 正則化,雖能使網絡參數稀疏化,但易造成丟失部分特征信息,存在微血管分割不足的現象。圖 10e 雖然引入本文輪廓損失函,能分割出更多血管,但其引入 L1 正則化卻造成主血管與微血管斷裂的現象,從而驗證本文 L2 正則化引入的合理性。圖 10d 算法雖然能夠分割出大部分主血管和微血管信息,但是相比圖 10c 和金標準圖像仍會出現微血管分割不全的現象,進一步說明本文對交叉熵改進的有效性。表 2 給出在不同損失函數下 ECGANs 在 DRIVE 數據集上的 AU-ROC 值、AU-PR 值和準確率(Acc)指標,客觀反映了本文所提出的損失函數的有效性和合理性。

3.3 不同分割算法之間的效果圖比較
圖 11 給出不同算法在 DRIVE 和 STARE 數據集上的分割效果圖。由圖 11 第一行與第三行的健康視網膜血管分割圖像可知,本文算法與文獻[30]、文獻[10]和文獻[13]的算法相比,在微血管分割上均具有較好的魯棒性。雖然文獻[30]與文獻[10]分割的微血管數量相比本文算法看似更多,但是該類算法不僅產生與金標準不一樣的額外分割,而且存在主血管和微血管分割過粗的現象,導致準確率與精確率大幅下降。同時,觀察第二行與第四行病變視網膜血管分割圖像,本文算法相比文獻[13]的生成對抗方法在病變區域主血管分割斷裂的情況較少。但是在第四行的病變圖像中,由于視盤周圍病變較嚴重,本文算法分割效果相對金標準、文獻[30]和文獻[10]算法有部分主血管未分割出,但總體分割性能較為優異。

3.4 不同分割算法之間的性能指標比較
表 3[8, 10-13, 17, 30-32] 給出近幾年以第一專家金標準作為測試標簽的不同分割算法的 AU-ROC 值、Acc 和 F1-measure(F1)等指標,綜合評價本文方法的有效性。

文獻[12]的 AU-ROC 值相比其他算法具有較好的表現,說明該算法能夠衡量背景與血管之間的有效比例,但該算法在視盤處會出現血管誤分割的現象,導致整體精度不能得到保證。文獻[17]將殘差模塊與 U-net 網絡引入到生成對抗網絡中,對主血管的分割性能表現良好,在 STARE 數據集上 Acc 和 F1-measure 達到 0.977 1 和 0.850 2,但該算法較本文算法存在微血管分割較弱的現象。可見本文算法與上述兩種算法比較,雖總體性能指標相差不大,但在微血管分割方面稍勝一籌。
為直觀展現本文算法的有效性,將輸出的概率圖利用大津閾值法進行二值化,并與金標準計算重合效果圖。同時,利用不同顏色進行相應的標注,其中紅色為欠分割部分,綠色為正確分割部分,藍色為過分割部分,如圖 12 所示,第二、三行分別為本文算法和文獻[13]算法重合率效果圖。

由圖 12 可以看出,本文算法無論在健康視網膜圖像上還是在病變視網膜圖像上,均比文獻[13]的算法具有更強的魯棒性,而且分割的血管信息更加全面,再一次驗證本文算法總體性能的優異性,以及上述綜合指標 F1-measure 和 AU-ROC 的可靠性。雖然本文算法仍然在兩個數據集上存在些許視盤周圍血管與微血管欠分割和過分割的現象,但是所占的像素比例并不能大幅降低本文算法的準確率,本文算法已具備臨床應用價值。
4 結論
本文將融合輪廓損失函數和距離懲罰項的 CGANs 應用于視網膜血管分割。首先對數據集進行預處理以增強對比度和減少噪聲影響,隨后對數據集加以擴充以提高網絡對數據的適應性。其次在 CGANs 的基礎上,對生成器和判別器分別進行詳盡設計,使網絡易于訓練且自適應地學習多尺度血管特征和辨別血管與非血管信息。然后定義網絡的損失函數,提高血管信息和邊緣信息的識別率,降低過擬合的可能,解決邊緣像素數量分割不平衡和視盤周圍血管斷裂問題。最后,在 DRIVE 數據集和 STARE 數據集進行實驗,取得了優異的分割效果,相較于文獻[7]不需要人工篩選血管特征,分割性能穩定性優于文獻[11],且較好地解決了文獻[2]出現的血管過分割和視盤邊界誤分割的問題,能夠分割出更多的微血管。但是,本文設計的算法雖有較強的辨別血管信息與非血管信息的能力,由于存在 DenseBlock,即使引入 SE 模塊,仍有一定量的冗余特征信息使得網絡訓練出現波動,下一步可以考慮通過網絡單元剪枝或權重剪枝的思想,去除部分對網絡性能影響較小的神經元,進而提升網絡收斂能力。
利益沖突聲明:本文全體作者均聲明不存在利益沖突。