引用本文: 萬程, 周雪婷, 周鵬, 沈建新, 俞秋麗. 基于深度學習的眼底圖像視盤定位與分割方法. 中華眼底病雜志, 2020, 36(8): 628-632. doi: 10.3760/cma.j.cn511434-20190712-00224 復制
視網膜圖像分析和處理是眼科醫生評估糖尿病視網膜病變(DR)、黃斑變性、青光眼等眼底疾病的關鍵[1]。視盤是視網膜中的關鍵解剖學結構,其形狀、面積和深度等參數是衡量眼底健康狀況的重要指標,準確定位和分割視盤區域是眼底圖像分析和處理的關鍵步驟。目前主要是根據視盤圖形特征和血管結構這兩種方式定位視盤。前者利用視盤的亮度、形狀等特征進行定位,該方法簡單、快速,能夠準確地定位健康眼底圖像的視盤區域[2];但當眼底圖像中存在滲出物等亮斑病癥時,效果不佳。后者利用視盤是血管匯聚中心這一特征定位視盤,其適用于不同的眼底圖像,但算法復雜,需要大量的計算和時間消耗,同時對血管分割的效果要求比較高[3]。視盤分割方法可以大致分為基于模板的方法[4]、基于形變模型的方法[5-7]和基于像素點分類的方法[8]。前兩種主要基于視盤的邊緣特征,對眼底圖像質量要求較高,對于視盤邊界模糊的圖像,分割效果不佳;基于像素點分類的方法極大受限于高分辨率圖像的較高像素點數量,要實現在像素級別的模型優化十分困難。作為神經網絡的一種特殊結構,卷積神經網絡(CNN)在近幾年發展迅速,被廣泛研究和使用于圖像分類、物體識別等計算機視覺領域[9-11]。CNN可以直接了解人造設計過濾器必須創建的其他算法的特征,其最重要的優點是不依賴于先前的知識和人為干預。為探尋更優的視盤定位和分割方法,本研究提出一種基于深度學習的視盤定位方法和基于像素點分類的視盤分割方法,通過CNN模型對眼底圖像迅速且準確地定位視盤并實現視盤分割。現將結果報道如下。
1 對象和方法
1.1 視盤定位
采用滑動窗口將原圖切割成許多小塊圖片,通過深度CNN判別各個小塊圖片是否包含完整視盤結構,從而找到視盤所在區域。采用一個800×800的滑動窗口對原圖片進行切割,步長設置為50,每張3072×2048的圖片可以切割成1150張。將包含完整視盤結構的標簽設為1,其余設為0。由于每張眼底圖像包含完整視盤的分割圖片僅有70張左右,因此采用水平翻轉、平移旋轉變換、增加高斯白噪聲對數據進行擴充。隨機選取標簽為1的正樣本經過平移旋轉等操作后擴充到35萬張,雖然圖像的靜態屬性決定了其具有旋轉不變性,為了防止這些操作對特征提取的可能影響,在標簽為0的負樣本中也適當進行相同操作。隨機選取一些負樣本進行擴充,使其數量也大概為35萬張,大致達到1:1的比例。約70萬張圖片作為訓練集,再用相同方法選取約15萬張圖片作為測試集(表1)。

受到AlexNet網絡結構的啟發,設計出一種精簡的便于訓練的CNN。該網絡主要有7層:4層卷積層、2層全連接層和1層分類層(圖1)。在所有卷積層和全連接層均采用ReLU非線性激活函數,在前兩個最大池化層后添加了局部響應歸一化操作,在全連接層采用dropout方法有效防止過擬合現象,網絡的損失函數采用交叉熵函數,最后的分類層輸出目標圖像分別屬于正類和負類的概率,概率高者為最終所屬類別。由于視盤的亮邊緣和亮損傷區易被錯誤定位為視盤,因而在訓練過程中,采用滑動窗口選擇包含視盤和不包含視盤的區域塊,使網絡更全面地學習視盤特征。

1.2 血管去除
為避免血管對視盤分割產生影響,在分割視盤邊界之前去除視盤區域的血管。對提取區域進行血管分割,之后以血管分割圖像為掩膜對血管區域進行擦除(圖2)。采用基于Mumford-Shah-Euler模型的圖像修補方法以減少擦除血管對視盤邊界的不利影響[12]。

1.3 視盤分割
采用基于圖像像素點分類的視盤分割深度網絡,該網絡以VGG網絡為基礎;出于圖像分割的目的,移除了原VGG網絡用于分類任務的全連接層,因此該網絡主要由卷積層、池化層和ReLU激活函數組成,是一種全卷積網絡(圖3)。網絡中有5個卷積塊,每個卷積塊由多個卷積層和ReLU激活函數組成,在每個卷積塊之間都有一個池化層用于縮減特征圖的尺寸。為了更加有效地利用每個卷積塊的特征信息,將后4個卷積塊進行反卷積操作,處理成16通道的與原輸入圖像大小相同的特征圖并串聯起來。同時在訓練時對每個卷積塊的內部卷積中加入監督信息,即對每個卷積塊的卷積結果回歸對應的分割圖像,并計算相應損失。在網絡的最后使用卷積層線性組合之前的串接特征圖以產生最后的分割結果。

在訓練好網絡并將網絡用于視盤分割時,為了平滑分割后視盤的邊緣,根據視盤的物理形態為橢圓形這一先驗知識,利用最小二乘法擬合出到分割邊界點代數距離最小的橢圓[13],實現對深度網絡分割結果的平滑擬合以獲得最終的視盤分割結果(圖4)。

1.4 數據集與評價指標
ORIGA數據集是一個青光眼疾病眼底圖像數據集,總共有650張圖像,其中患有青光眼的圖像有168張,健康的眼底圖像482張。每張圖像為3072×2048的高清晰度圖像,同時配有專業醫生標注的視盤邊界標簽[14]。本研究在ORIGA數據集上訓練和評估基于深度學習的視盤定位和分割方法。在深度學習的Caffe框架上構建深度CNN,實驗在Inter(R)Core(TM)i7-6700 CPU、3.4GHz主頻、16GB內存、GTX1080顯卡、8GB顯存的計算機上運行。
采用受試者操作特征曲線下面積(AUC)作為評估模型視盤定位性能的重要指標。在實際應用中,AUC的值越大表示網絡性能越好。以定位準確率比較本研究視盤定位法與基于血管定位、AlexNet、GoogleNet、ResNet50等不同視盤定位方法在視盤定位時的準確性及定位所需時間。定位準確率=T/N,T代表視盤定位正確的眼底圖像數量,N代表總共用于定位的眼底圖像數量。
采用重疊誤差(overlap error)比較視盤分割結果與實際視盤邊界的誤差大小。
![]() |
其中,E代表重疊誤差,S和G分別代表視盤的分割結果和實際的視盤區域。對比分析本研究的視盤分割方法與修正的Chan-Vese模型(MCV)[5]、基于橢圓霍夫變換的方法(EHT)[4]、改進的形變模型(MDM)[15]和基于超像素分類的方法(SCM)[16]等傳統視盤分割方法在不同重疊誤差區間所占比例和平均重疊誤差(μE)。
采用平均杯盤比誤差μδ及診斷準確率AUC值衡量不同視盤分割方法的精確度,包括本研究方法、基于亮度閾值的方法(Thresholding)[14]、基于視杯附近相關血管彎曲的方法(R-bend)[5]、主動形狀模型的方法(ASM)[6]、基于滑動窗口的回歸方法(Regression)[17]和SCM[16]。
2 結果
2.1 視盤定位準確性
在ORIGA數據集,相較于基于血管的傳統方法,基于深度學習的視盤定位法效果更佳,能精準地找到視盤所在區域,且定位速度提高80多倍。與其他幾種較為復雜的CNN網絡相比,基于深度學習的視盤定位法在定位準確率、定位時間及AUC上都具有一定的優越性(表2)。

2.2 視盤分割準確度
與其他傳統視盤分割方法比較,本研究采用的視盤分割方法在各個小誤差區間中有更高的重疊百分比。其中,在小誤差區間(E≤0.25)里,本研究方法在分割結果中達到99%的最高比例(表3)。在圖像分割的速度上,本研究方法在每幅圖像上平均僅需10 ms。

2.3 平均杯盤比誤差
在青光眼診斷中,與其他診斷方法相比,本研究視盤分割方法在青光眼圖像和正常圖像上均有最小的平均杯盤比誤差(表4)。

3 討論
視盤是診斷多種眼部疾病的重要依據,在眼底圖像的計算機輔助診斷中具有至關重要的作用。對于DR,視盤旁神經纖維層的改變往往先于微血管異常的發生,視盤區域對DR的早期診斷有指導意義。老年性黃斑變性(AMD)導致黃斑區域的結構性變化,可通過定位視盤區域及其與黃斑的相對位置關系來確定黃斑區域,對視盤的準確定位有助于AMD的診斷。臨床上,青光眼診斷的常用指標是杯盤比,杯盤比越大代表患病風險越大,杯盤比的計算需要視杯與視盤的垂直高度;因此,視盤的準確分割對青光眼的診斷十分重要。
本研究結果顯示,相較于基于血管的視盤定位方法,本研究方法在視盤定位準確度和速度上都有很大提升。這是由于基于血管的視盤定位方法對血管依賴過強,一旦眼底圖像中血管結構不清晰時,視盤定位性能相對較差;并且,基于血管的定位方法計算過程相對復雜,因而定位時間較長。我們還發現,相比于其他視盤分割網絡,本研究方法取得更高的誤差區間所占比例和更低的平均重疊誤差,且相比于目前較好的基于超像素分類方法減少了25.3%的誤差。這說明本研究提出的視盤分割深度網絡在準確率和分割速度上相比于其他需要復雜計算的傳統方法有明顯的優勢。
在青光眼診斷的實際應用中,與SCM方法相比,本研究方法的AUC值稍低。這可能是由于數據集中青光眼與正常眼底圖像的數量存在差異,分割模型對青光眼圖像的特征學習不夠充分,導致對青光眼圖片分割訓練不足,存在低估視杯分割邊界的問題;而在SCM方法中,針對青光眼的診斷是人工選擇相應的直方圖與圖像統計特征,因此在診斷時具有較高性能。
本研究這種基于深度學習的視盤定位與分割方法,將顯著圖與深度CNN有效結合,準確地定位視盤所在區域,然后去除視盤中的血管,最后根據去除血管后的視盤感興趣區域分割出視盤邊界。實驗結果表明,該方法能夠快速且準確地找出眼底圖像中視盤位置,并提取出視盤感興趣區域;可以去除視盤感興趣區域中幾乎所有的血管,減少分割過程中的干擾。同時,其在青光眼診斷中也取得了最小的杯盤比誤差。這提示本研究方法可直接用于DR、AMD、青光眼等眼部疾病的計算機輔助診斷。在未來的研究中,可進一步優化數據集,提高網絡的泛化能力,并利用這一方法計算視盤面積、視杯面積等更多參數供以臨床診斷所用。
視網膜圖像分析和處理是眼科醫生評估糖尿病視網膜病變(DR)、黃斑變性、青光眼等眼底疾病的關鍵[1]。視盤是視網膜中的關鍵解剖學結構,其形狀、面積和深度等參數是衡量眼底健康狀況的重要指標,準確定位和分割視盤區域是眼底圖像分析和處理的關鍵步驟。目前主要是根據視盤圖形特征和血管結構這兩種方式定位視盤。前者利用視盤的亮度、形狀等特征進行定位,該方法簡單、快速,能夠準確地定位健康眼底圖像的視盤區域[2];但當眼底圖像中存在滲出物等亮斑病癥時,效果不佳。后者利用視盤是血管匯聚中心這一特征定位視盤,其適用于不同的眼底圖像,但算法復雜,需要大量的計算和時間消耗,同時對血管分割的效果要求比較高[3]。視盤分割方法可以大致分為基于模板的方法[4]、基于形變模型的方法[5-7]和基于像素點分類的方法[8]。前兩種主要基于視盤的邊緣特征,對眼底圖像質量要求較高,對于視盤邊界模糊的圖像,分割效果不佳;基于像素點分類的方法極大受限于高分辨率圖像的較高像素點數量,要實現在像素級別的模型優化十分困難。作為神經網絡的一種特殊結構,卷積神經網絡(CNN)在近幾年發展迅速,被廣泛研究和使用于圖像分類、物體識別等計算機視覺領域[9-11]。CNN可以直接了解人造設計過濾器必須創建的其他算法的特征,其最重要的優點是不依賴于先前的知識和人為干預。為探尋更優的視盤定位和分割方法,本研究提出一種基于深度學習的視盤定位方法和基于像素點分類的視盤分割方法,通過CNN模型對眼底圖像迅速且準確地定位視盤并實現視盤分割。現將結果報道如下。
1 對象和方法
1.1 視盤定位
采用滑動窗口將原圖切割成許多小塊圖片,通過深度CNN判別各個小塊圖片是否包含完整視盤結構,從而找到視盤所在區域。采用一個800×800的滑動窗口對原圖片進行切割,步長設置為50,每張3072×2048的圖片可以切割成1150張。將包含完整視盤結構的標簽設為1,其余設為0。由于每張眼底圖像包含完整視盤的分割圖片僅有70張左右,因此采用水平翻轉、平移旋轉變換、增加高斯白噪聲對數據進行擴充。隨機選取標簽為1的正樣本經過平移旋轉等操作后擴充到35萬張,雖然圖像的靜態屬性決定了其具有旋轉不變性,為了防止這些操作對特征提取的可能影響,在標簽為0的負樣本中也適當進行相同操作。隨機選取一些負樣本進行擴充,使其數量也大概為35萬張,大致達到1:1的比例。約70萬張圖片作為訓練集,再用相同方法選取約15萬張圖片作為測試集(表1)。

受到AlexNet網絡結構的啟發,設計出一種精簡的便于訓練的CNN。該網絡主要有7層:4層卷積層、2層全連接層和1層分類層(圖1)。在所有卷積層和全連接層均采用ReLU非線性激活函數,在前兩個最大池化層后添加了局部響應歸一化操作,在全連接層采用dropout方法有效防止過擬合現象,網絡的損失函數采用交叉熵函數,最后的分類層輸出目標圖像分別屬于正類和負類的概率,概率高者為最終所屬類別。由于視盤的亮邊緣和亮損傷區易被錯誤定位為視盤,因而在訓練過程中,采用滑動窗口選擇包含視盤和不包含視盤的區域塊,使網絡更全面地學習視盤特征。

1.2 血管去除
為避免血管對視盤分割產生影響,在分割視盤邊界之前去除視盤區域的血管。對提取區域進行血管分割,之后以血管分割圖像為掩膜對血管區域進行擦除(圖2)。采用基于Mumford-Shah-Euler模型的圖像修補方法以減少擦除血管對視盤邊界的不利影響[12]。

1.3 視盤分割
采用基于圖像像素點分類的視盤分割深度網絡,該網絡以VGG網絡為基礎;出于圖像分割的目的,移除了原VGG網絡用于分類任務的全連接層,因此該網絡主要由卷積層、池化層和ReLU激活函數組成,是一種全卷積網絡(圖3)。網絡中有5個卷積塊,每個卷積塊由多個卷積層和ReLU激活函數組成,在每個卷積塊之間都有一個池化層用于縮減特征圖的尺寸。為了更加有效地利用每個卷積塊的特征信息,將后4個卷積塊進行反卷積操作,處理成16通道的與原輸入圖像大小相同的特征圖并串聯起來。同時在訓練時對每個卷積塊的內部卷積中加入監督信息,即對每個卷積塊的卷積結果回歸對應的分割圖像,并計算相應損失。在網絡的最后使用卷積層線性組合之前的串接特征圖以產生最后的分割結果。

在訓練好網絡并將網絡用于視盤分割時,為了平滑分割后視盤的邊緣,根據視盤的物理形態為橢圓形這一先驗知識,利用最小二乘法擬合出到分割邊界點代數距離最小的橢圓[13],實現對深度網絡分割結果的平滑擬合以獲得最終的視盤分割結果(圖4)。

1.4 數據集與評價指標
ORIGA數據集是一個青光眼疾病眼底圖像數據集,總共有650張圖像,其中患有青光眼的圖像有168張,健康的眼底圖像482張。每張圖像為3072×2048的高清晰度圖像,同時配有專業醫生標注的視盤邊界標簽[14]。本研究在ORIGA數據集上訓練和評估基于深度學習的視盤定位和分割方法。在深度學習的Caffe框架上構建深度CNN,實驗在Inter(R)Core(TM)i7-6700 CPU、3.4GHz主頻、16GB內存、GTX1080顯卡、8GB顯存的計算機上運行。
采用受試者操作特征曲線下面積(AUC)作為評估模型視盤定位性能的重要指標。在實際應用中,AUC的值越大表示網絡性能越好。以定位準確率比較本研究視盤定位法與基于血管定位、AlexNet、GoogleNet、ResNet50等不同視盤定位方法在視盤定位時的準確性及定位所需時間。定位準確率=T/N,T代表視盤定位正確的眼底圖像數量,N代表總共用于定位的眼底圖像數量。
采用重疊誤差(overlap error)比較視盤分割結果與實際視盤邊界的誤差大小。
![]() |
其中,E代表重疊誤差,S和G分別代表視盤的分割結果和實際的視盤區域。對比分析本研究的視盤分割方法與修正的Chan-Vese模型(MCV)[5]、基于橢圓霍夫變換的方法(EHT)[4]、改進的形變模型(MDM)[15]和基于超像素分類的方法(SCM)[16]等傳統視盤分割方法在不同重疊誤差區間所占比例和平均重疊誤差(μE)。
采用平均杯盤比誤差μδ及診斷準確率AUC值衡量不同視盤分割方法的精確度,包括本研究方法、基于亮度閾值的方法(Thresholding)[14]、基于視杯附近相關血管彎曲的方法(R-bend)[5]、主動形狀模型的方法(ASM)[6]、基于滑動窗口的回歸方法(Regression)[17]和SCM[16]。
2 結果
2.1 視盤定位準確性
在ORIGA數據集,相較于基于血管的傳統方法,基于深度學習的視盤定位法效果更佳,能精準地找到視盤所在區域,且定位速度提高80多倍。與其他幾種較為復雜的CNN網絡相比,基于深度學習的視盤定位法在定位準確率、定位時間及AUC上都具有一定的優越性(表2)。

2.2 視盤分割準確度
與其他傳統視盤分割方法比較,本研究采用的視盤分割方法在各個小誤差區間中有更高的重疊百分比。其中,在小誤差區間(E≤0.25)里,本研究方法在分割結果中達到99%的最高比例(表3)。在圖像分割的速度上,本研究方法在每幅圖像上平均僅需10 ms。

2.3 平均杯盤比誤差
在青光眼診斷中,與其他診斷方法相比,本研究視盤分割方法在青光眼圖像和正常圖像上均有最小的平均杯盤比誤差(表4)。

3 討論
視盤是診斷多種眼部疾病的重要依據,在眼底圖像的計算機輔助診斷中具有至關重要的作用。對于DR,視盤旁神經纖維層的改變往往先于微血管異常的發生,視盤區域對DR的早期診斷有指導意義。老年性黃斑變性(AMD)導致黃斑區域的結構性變化,可通過定位視盤區域及其與黃斑的相對位置關系來確定黃斑區域,對視盤的準確定位有助于AMD的診斷。臨床上,青光眼診斷的常用指標是杯盤比,杯盤比越大代表患病風險越大,杯盤比的計算需要視杯與視盤的垂直高度;因此,視盤的準確分割對青光眼的診斷十分重要。
本研究結果顯示,相較于基于血管的視盤定位方法,本研究方法在視盤定位準確度和速度上都有很大提升。這是由于基于血管的視盤定位方法對血管依賴過強,一旦眼底圖像中血管結構不清晰時,視盤定位性能相對較差;并且,基于血管的定位方法計算過程相對復雜,因而定位時間較長。我們還發現,相比于其他視盤分割網絡,本研究方法取得更高的誤差區間所占比例和更低的平均重疊誤差,且相比于目前較好的基于超像素分類方法減少了25.3%的誤差。這說明本研究提出的視盤分割深度網絡在準確率和分割速度上相比于其他需要復雜計算的傳統方法有明顯的優勢。
在青光眼診斷的實際應用中,與SCM方法相比,本研究方法的AUC值稍低。這可能是由于數據集中青光眼與正常眼底圖像的數量存在差異,分割模型對青光眼圖像的特征學習不夠充分,導致對青光眼圖片分割訓練不足,存在低估視杯分割邊界的問題;而在SCM方法中,針對青光眼的診斷是人工選擇相應的直方圖與圖像統計特征,因此在診斷時具有較高性能。
本研究這種基于深度學習的視盤定位與分割方法,將顯著圖與深度CNN有效結合,準確地定位視盤所在區域,然后去除視盤中的血管,最后根據去除血管后的視盤感興趣區域分割出視盤邊界。實驗結果表明,該方法能夠快速且準確地找出眼底圖像中視盤位置,并提取出視盤感興趣區域;可以去除視盤感興趣區域中幾乎所有的血管,減少分割過程中的干擾。同時,其在青光眼診斷中也取得了最小的杯盤比誤差。這提示本研究方法可直接用于DR、AMD、青光眼等眼部疾病的計算機輔助診斷。在未來的研究中,可進一步優化數據集,提高網絡的泛化能力,并利用這一方法計算視盤面積、視杯面積等更多參數供以臨床診斷所用。