董喜超,高志軍,董春游
(黑龍江科技大學 計算機與信息工程學院,哈爾濱150022)
脈絡膜新生血管(CNV)、糖尿病性黃斑水腫(DME)和玻璃膜疣(DRUSEN)是常見的視網(wǎng)膜黃斑病變。其中,CNV出現(xiàn)的早期,無癥狀。隨著其逐漸擴大、滲漏和破裂出血,可致視力減退、視物變形,出現(xiàn)黃斑中心或旁中心暗點,癥狀反復發(fā)作者,黃斑部受到嚴重破壞,可造成永久性視力障礙[1];DME是導致糖尿病患者視力損害的常見原因,嚴重影響患者的視力功能和生活質量[2];DRUSEN患者會出現(xiàn)視力障礙,早期黃斑部多有玻璃膜疣侵犯,其視力尚可正常、有時有視物變形及中心視力下降[3]。視網(wǎng)膜光學相干斷層掃描(OCT)成像具有無接觸、無侵入和高分辨率成像特點,通過視網(wǎng)膜OCT圖像對眼部患者進行自動和準確地識別是輔助眼科醫(yī)生診斷和分級黃斑病變的關鍵手段。然而在臨床診斷中,眼科醫(yī)生需要花費較長時間在2維視網(wǎng)膜OCT圖像上手動識別這些病變,然后對眼部患者做出診斷決定。顯然,這種人工分析對眼科醫(yī)生來說既費時又費力,也容易受眼科醫(yī)生主觀因素影響,對患者產(chǎn)生漏診或誤診現(xiàn)象。因此,為了有效地輔助眼科醫(yī)生篩查和診斷視網(wǎng)膜黃斑病變,眼病視網(wǎng)膜OCT圖像黃斑病變識別方法和分析技術成為近期學者們研究的熱點和重點。
2011年,Liu等人利用局部二值模式(LBP)特征,對視網(wǎng)膜OCT圖像的紋理信息和形狀信息進行特征編碼,隨后結合支持向量機(SVM)實現(xiàn)了OCT圖像的自動分類[4];Srinivasan等人通過計算OCT圖像的多尺度方向梯度直方圖(HOG)特征,識別了正常視網(wǎng)膜、年齡相關性黃斑變性和黃斑水腫[5]。
由于全卷積神經(jīng)網(wǎng)絡等深度學習方法能夠實現(xiàn)端到端的自動學習,已被廣泛有效地應用于醫(yī)學圖像處理中。2017年,Lee應用深度學習方法有效地對正常和年齡相關性黃斑變性OCT圖像進行了二分類[6];2017年,Rasti等人應用多尺度卷積神經(jīng)網(wǎng)絡實現(xiàn)了對黃斑病變OCT圖像的分類[7];2018年,Rasti等人又引入了基于小波的CNN提取深部小波特征,利用隨機森林分類器對黃斑OCT圖像進行了分類[8];2018年,F(xiàn)auw等人采用U-Net結構對視網(wǎng)膜OCT圖像進行分割,將分割后的圖像用于視網(wǎng)膜病變的診斷[9];此外,Karri等人提出了一種新的基于CNN的技術,可以用較少的訓練OCT圖像來識別黃斑病變,同時仍然顯示出有效的結果[10];2018年Kermany等人建立了一個基于深度學習框架(Image-Based Deep Learning,IDL)的診斷工具,用于篩查常見的和可致盲性的視網(wǎng)膜疾病的患者[11]。
現(xiàn)有的基于深度學習的視網(wǎng)膜OCT圖像病變分類或識別方法多采用全局圖像作為網(wǎng)絡學習的輸入,而眼部疾病有些發(fā)生在疾病特異性的(小)局部區(qū)域。應用全局圖像訓練卷積神經(jīng)網(wǎng)絡可能會受到若干無關噪聲區(qū)域的影響,易導致錯誤的識別或診斷。
本文針對上述問題,受眼科醫(yī)生閱讀視網(wǎng)膜OCT圖像時“先整體,再局部,最后再結合整體”的診斷思路啟發(fā),即先整體觀察圖像中是否有疑似病理區(qū)域,然后再集中精力察看有病理可能的局部區(qū)域,最后在結合整張圖像觀察,確定病理結論。基于注意力引導卷積神經(jīng)網(wǎng)絡(AG-CNN)模型,在其全局分支、局部分支和融合分支基礎上,又引入了層分割分支,提出了一種改進的AG-CNN的視網(wǎng)膜OCT圖像的黃斑病變識別方法,從疾病特定區(qū)域學習,以避免噪聲干擾,用全局分支和層分割分支來補償由局部分支丟失的鑒別線索,從而實現(xiàn)對CNV、DME和DRUSEN等常見的視網(wǎng)膜黃斑病變的自動準確識別。
2018年,Zhong等人提出了AG-CNN算法,其模型框架如圖1紅色框所示,展示了一個以ResNet-50網(wǎng)絡為主干的框架圖,AG-CNN由全局分支、局部分支和融合分支等3個分支組成。其中,全局分支和局部分支均分別由5個卷積塊組成,具有批處理規(guī)范化和激活函數(shù)ReLU,每一個都連接到一個最大池化層(Pool5)、一個完全連接(FC)層和一個激活函數(shù)ReLU。除此以外,局部分支的輸入是由全局分支生成的掩膜裁剪出的局部病變圖片,將這兩個分支連接到融合分支中,“BCE”表示二進制交叉熵損失。輸入圖像將添加到熱圖中進行可視化。

圖1 改進的注意力引導卷積神經(jīng)網(wǎng)絡的總體框架Fig.1 Overall framework of the improved AG-CNN
AG-CNN利用注意力引導的掩膜推理過程定位顯著區(qū)域,并學習判別特征進行識別。與依賴于邊界框標注的方法相比,該方法只需要圖像級的標簽,而不需要任何額外的信息。
用5維向量L=[l1,l2,…,lC]的多維標簽標記每個圖像,其中l(wèi)c∈{0,1},表示是否有病理,即1代表存在,0代表缺席,C=5,L的最后一個元素表示帶有“No Finding”的標簽。
1.1.1 全局分支
全局OCT圖像作為全局分支的輸入,在全局分支中訓練ResNet-50的變體被作為主干模型[12]。其由5個下采樣塊組成,接著是一個全局最大池化層和一個用于分類的5維全連接(FC)層。最后,通過增加一個激活函數(shù)ReLU層對FC層的輸出向量進行非線性化和歸一化處理,式(1):

式中,I表示全局圖像表示I屬于第c類的概率分數(shù);c∈{1,2,…,C}。最小化二進制交叉熵(BCE)損失函數(shù)被用來優(yōu)化全局分支的參數(shù)Wg,式(2):

式中:lc表示第c類的真實標簽,C表示病理數(shù)量。
1.1.2 局部分支
局部分支具有與全局分支相同的卷積網(wǎng)絡結構。但這2個分支不共享權重,因為二者有不同的用途。被用來表示局部分支的概率得分,Wl表示局部分支的參數(shù)。其中,Ic是本地分支機構的輸入圖像,執(zhí)行與全局分支相同的規(guī)范化和優(yōu)化。
1.1.3 融合分支
融合分支首先連接全局分支和局部分支,再由級聯(lián)層連接到5維FC層以進行最終分類,概率得分為表示融合分支的參數(shù),并用公式(2)對Wf進行優(yōu)化。
注意力引導掩膜推理,一個二值掩膜被構造用來定位全局圖像中用于識別的判別區(qū)域。通過對特征圖進行閾值化操作而產(chǎn)生的,可以看作是一個注意力過程。該過程如下:給定一個全局圖像,讓表示最后一個卷積層輸出的第k個信道中空間位置(x,y)的激活,其中k∈{1,…,K},K=2048;g表示全局分支。 首先,在位置(x,y)取激活值的絕對值;其次,通過計算通道上的最大值生成注意力熱圖Hg,式(3):

Hg中的值直接表示識別激活的重要性,觀察到圖像的識別區(qū)域(病變區(qū)域)被激活。熱圖可以通過計算通道尺寸上的不同統(tǒng)計值來構建,如L1距離為
一個二進制掩膜M被設計來定位具有大激活值的區(qū)域。若熱圖中某個空間位置(x,y)的值大于閾值τ,則掩模中相應位置的值被賦值為1,否則為0,式(4):或L2距離為

其中:τ表示控制參與區(qū)域大小的閾值。
τ越大,區(qū)域越小,反之亦然。利用掩膜M,一個覆蓋M中判別點的最大連通區(qū)域被畫出,最大連通區(qū)域表示為水平和垂直軸上的最小和最大坐標[Xmin,Ymin,Xmax,Ymax]。最后,從輸入圖像I中裁剪出局部判別區(qū)域Ic,并將其調整到與I相同的大小。
改進的AG-CNN如圖1所示,由于CNV、DME和DRUSEN等常見的視網(wǎng)膜黃斑病變會導致患者視網(wǎng)膜層及其內層部分區(qū)域發(fā)生形變和厚度變化,故在原AG-CNN(紅色框)的基礎上引入層分割分支(藍色框),并連接到融合分支,減少圖像噪聲對視網(wǎng)膜黃斑病變的錯誤識別。
新引入的層分割分支采用RelayNet算法實現(xiàn),ReLayNet使用卷積塊的收縮路徑來學習上下文特征的層次結構,然后使用卷積塊的擴展路徑來進行圖像像素級的語義分割[13]。此外,引入將編碼器輸出中間到匹配解碼器輸入的跳過連接,以恢復在下采樣期間丟失的空間信息。將視網(wǎng)膜OCT圖像分割成7層,獲得各層厚度信息。
改進的AG-CNN的視網(wǎng)膜OCT圖像病變識別算法:
步驟1輸入:輸入圖像I,標簽向量L,閾值τ;
步驟2初始化:全局和局部分支權重;
步驟3用I學習Wg,計算用公式(2)進行優(yōu)化;
步驟4計算掩膜M和邊界框坐標[Xmin,Ymin,Xmax,Ymax],從I中裁剪出Ic;
步驟5使用Ic學習Wl,計算通過公式(2)進行優(yōu)化;
步驟6集中poolg和pooll學習Wf,計算I,Ic|),通過公式(2)進行優(yōu)化;
步驟7輸出:輸出概率得分
2.1.1 實驗數(shù)據(jù)集
完整的ImageNet數(shù)據(jù)集有1 400多萬幅圖片,涵蓋20 000多個類別標注與超過百萬的邊界的框標注,每個類別有500到1 000幅圖片。
UCSD數(shù)據(jù)集由84 484幅OCT B掃描組成。其中有8 866幅患有DRUSEN,37 455幅患有CNV,11 598幅患有DME和26 565幅正常的OCT圖像。本文用250幅正常的、250幅患有DRUSEN、250幅患有CNV和250幅患有DME的OCT圖像作為測試集。
2.1.2 實驗設置
本文采用pytorch框架來實現(xiàn)改進的AG-CNN算法,并在GTX1050Ti GPU上進行訓練和驗證。在動量為0.9的情況下,采用隨機梯度下降進行訓練,初始學習率設置為0.01,初始學習率隨指數(shù)衰減而降低,冪次為0.9,深度模型訓練時間為26 h。
2.1.3 訓練過程
第一階段,利用ImageNet預訓練的全局分支網(wǎng)絡進行微調由公式(1)歸一化;
第二階段,當用閾值τ進行掩模推理得到局部圖像后,將其送入局部分支進行微調也可通過公式(1)歸一化,微調局部分支時全局分支中的權重是固定的;
第三階段,分別讓Poolg和Pooll代表全局分支和局部分支的Pool5層輸出,將其串聯(lián)起來進行最后的微調,并用公式(1)將概率分數(shù)歸一化,同樣當微調融合分支的權值時,前2個分支的權重是固定的。
2.1.4 評估指標
本文采用準確度(ACC)、靈敏度(SE)、精確度(PR)、特異性(SP)和混淆矩陣等評估指標評估算法的識別性能,每一個都是針對獨立類計算的。對于獨立類的靈敏度是預測精度,而對于每個類別標簽,其特異度的定義是相同的,其中負樣本是不在考慮類別中的樣本。由于樣本在不同類別之間的不平衡,總體靈敏度(OS)、總體精度(OP)和總體準確度(OA)等評估指標也被計算用于評估算法的識別性能,式(5)~式(8):

式中:nTP——將正樣本識別為正樣本數(shù);
nTN——將負樣本識別為負樣本數(shù);
nFP——將負樣本識別為正樣本數(shù);
nFN——將正樣本識別為負樣本數(shù)。

VGG16和IDL 2種方法與本文方法在UCSD數(shù)據(jù)集上的定量評估結果見表1。首先,在最后3列的OS、OP和OA等3個總體量化評估指標上,改進AG-CNN分別為97%、97%和98.5%,比IDL分別略高0.9%、0.9%和0.4%,比VGG16顯著性提高20.9%、20.8%和7.1%;其次,具體比較其中較好的識別方法IDL,在正常類別中,準確率提高0.3%、靈敏度提高0.7%、精確度提高0.4%和特異性提高0.2%;在DME類別中,準確率提高0.5%、靈敏度提高0.9%、精確度提高1.2%和特異性提高0.4%;在DRUSEN類別中,準確率提高0.5%、靈敏度提高0.9%、精確度提高0.2%和特異性提高0.4%;在CNV類別中,準確率提高0.5%、靈敏度提高1.1%、精確度提高0.8%和特異性提高0.3%。綜上,本文方法在UCSD數(shù)據(jù)集上的識別評估指標均有較高的提升,表明文中的改進算法在視網(wǎng)膜OCT黃斑病變識別上有更好的識別性能。

表1 3種方法識別結果(百分數(shù))Tab.1 The identification results with three methods(percentages)
為了研究有無訓練過程對第一階段實驗結果的影響,本文進行了對比實驗來驗證訓練過程第一階段的性能表現(xiàn),見表2。比較實驗評估結果,在最后3列的OS、OP和OA等總體量化評估指標上,有訓練過程第一階段實驗結果分別為97.0%、97.0%和98.5%,比無訓練過程第一階段實驗結果分別提高2.9%、2.9%和1.5%。具體來說,在正常類別中,準確率、靈敏度、精確度和特異性分別提高1.6%、3.1%、2.8%和1.0%;在DME類別中,準確率、靈敏度、精確度和特異性提高1.3%、1.8%、3.8%、1.4%;在DRUSEN類別中,準確率、靈敏度、精確度和特異性提高2.1%、4.5%、3.6%、1.2%;在CNV類別中,準確率、靈敏度、精確度和特異性提高1.1%、2.3%、2.0%、0.7%。綜上,表明訓練過程第一階段對OCT圖像識別效果提升起到顯著性作用。

表2 有無訓練過程第一階段實驗對比結果(百分數(shù))Tab.2 Comparative results of the first stage experiment with and without training process(percentages)
VGG16、IDL和文中方法識別結果的混淆矩陣如圖2所示。對角線(藍色)是正確識別的個數(shù),非對角線為錯分到相應類別的個數(shù)。相比較而言,在正常人眼上,本文方法的正確識別的個數(shù)為247,比VGG16和IDL分別多39個和1個;在DME上,本文方法的正確識別的個數(shù)為240,比VGG16和IDL分別多54個和3個;在DRUSEN上,本文方法的正確識別的個數(shù)為239,比VGG16和IDL分別多103個和3個;在CNV上,本文方法的正確識別的個數(shù)為244,比VGG16和IDL分別多14個和2個。可見本文方法在該OCT圖像驗證集上每類的正確識別均有所提升,具有更佳的識別效果。

圖2 不同方法的混淆矩陣Fig.2 Confusion matrix of different methods
為了研究每個分支對實驗結果的影響,本文進行了消融實驗來驗證全局分支、局部分支和文中新引入的層分割分支的性能表現(xiàn),見表3。基線1只有全局分支,基線2有全局分支、局部分支和融合分支,改進AG-CNN包含所有4個分支。比較基線1和基線2的結果,在最后3列的OS、OP和OA等總體量化評估指標上,基線2實驗結果分別為96.0%、96.2%和97.6%,比基線1實驗結果分別提高0.8%、1.1%和1.3%;在正常類別中,準確率、靈敏度、精確度和特異性提高1.2%、1.1%、0.8%、0.6%;在DME類別中,準確率、靈敏度、精確度和特異性提高1.6%、1.9%、1.0%、0.7%;在DRUSEN類別中,準確率、靈敏度、精確度和特異性提高1.3%、1.0%、0.4%、0.7%;在CNV類別中,準確率、靈敏度、精確度和特異性提高1.2%、1.0%、2.4%、1.8%。綜上說明局部分支對OCT圖像識別效果提升有顯著性作用。比較基線2和改進AG-CNN的結果,在最后3列的OS、OP和OA等總體量化評估指標上,改進AGCNN實驗結果分別為97.0%、97.0%和98.5%,比基線2實驗結果分別提高1.0%、0.8%和0.9%;在正常類別中,準確率、靈敏度、精確度和特異性提高0.3%、0.3%、0.8%、0.4%;在DME類別中,準確率、靈敏度、精確度和特異性提高1.1%、1.6%、0.8%、0.4%;在DRUSEN類別中,準確率、靈敏度、精確度和特異性提高1.0%、1.1%、0.6%、0.2%;在CNV類別中,準確率、靈敏度、精確度和特異性提高1.1%、1.3%、1.0%、0.4%。綜上表明層分割分支對OCT圖像識別提升有進一步的的作用。綜上所述,全局分支、局部分支和層分割分支對提升OCT圖像識別力均具有顯著的作用。

表3 消融實驗結果(百分數(shù))Tab.3 Ablation results(percentages)
VGG16、IDL和文中方法在正常的、DRUSEN、CNV和DME的測試集上的ROC曲線如圖3所示。在所有類別里,文中方法(紅色線)在VGG16(藍色點虛線)和IDL(綠色虛線)上,圍成的面積AUC更大,表明文中方法比VGG16和IDL在視網(wǎng)膜OCT圖像識別力更強,和算法的識別性能更優(yōu)。其中,本文方法在與較好的IDL方法相比,在正常類別中AUC提高5.1%,在糖尿病性黃斑水腫類別中AUC提高4.6%,在玻璃膜疣類別中AUC提高5.8%,在脈絡膜新生血管類別中AUC提高3.4%。

圖3 各類別的ROC曲線Fig.3 ROC curve of each category
盡管本文方法在公開數(shù)據(jù)集上的大部分B掃描圖像上取得了比較令人滿意的識別結果,但是對于一些B掃描圖像,由于原OCT圖像模糊或病變特征不顯著,存在一些錯誤識別樣本,如圖4所示。圖4(a)為將正常樣本錯分為DRUSEN病變樣本;圖4(b)為將DME病變樣本錯分為正常樣本;圖4(c)為DRUSEN病變樣本錯分為正常樣本;圖4(d)為CNV病變樣本錯分為DRUSEN病變樣本。

圖4 識別錯誤部分樣本Fig.4 Partial sample of identification error
為了避免全局圖像訓練卷積神經(jīng)網(wǎng)絡可能會受到若干無關噪聲區(qū)域的影響,易導致錯誤的識別或診斷等問題,本文提出了一個注意力引導的4分支卷積神經(jīng)網(wǎng)絡方法,用于眼部黃斑疾病的識別。該網(wǎng)絡通過考慮全局分支、局部分支、層分割分支中的全局、局部和各層厚度信息進行訓練,與以往單純依賴全局信息的方法不同,利用注意力熱圖對重要區(qū)域進行掩膜,用于訓練局部分支。實驗結果表明,本文提出的方法在視網(wǎng)膜OCT圖像數(shù)據(jù)集上對于識別準確度和識別性能的提升具有顯著的作用。當然,識別性能還需要進一步提高,今后可將病變分割分支引入到本文模型,提高識別的準確率和識別性能。