張 彤,孟 亮
(太原理工大學(xué)信息與計算機學(xué)院,山西 晉中 030600)
糖尿病視網(wǎng)膜病變DR(Diabetic Retinopathy)是由糖尿病引起的一種主要致盲疾病[1],由于糖尿病患者體內(nèi)過高的血糖會使視網(wǎng)膜內(nèi)形成滲出物、厚血管、微動脈瘤甚至出血等,進而影響視覺[2]。在造成成年人失明的諸多因素中,DR占據(jù)首位[3],如果糖尿病患者能夠較早發(fā)現(xiàn)并及時獲得規(guī)范的治療,大多數(shù)患者就可以抑制DR病情的發(fā)展,進而避免失明的風(fēng)險。因此,對DR的分類研究不僅有重要的意義,而且有很大的臨床應(yīng)用價值,這已經(jīng)成為目前研究的熱點[4]。
在實際診斷DR中,分類準(zhǔn)確率主要受以下因素的影響:過度依賴于眼科醫(yī)生多年積累的臨床經(jīng)驗;視網(wǎng)膜圖像的質(zhì)量會受到光線、設(shè)備和操作技術(shù)等方面影響;圖像中存在一些難以用肉眼分辨的微小特征等[5]。目前卷積神經(jīng)網(wǎng)絡(luò)可以很好地解決上述問題,許多經(jīng)典的網(wǎng)絡(luò)可以用于處理和識別醫(yī)學(xué)圖像,很大程度上提高了對醫(yī)學(xué)圖像識別的準(zhǔn)確率。但是,目前很多文獻使用卷積神經(jīng)網(wǎng)絡(luò)對DR圖像進行二分類或三分類,對五分類問題研究較少,并且存在數(shù)據(jù)處理復(fù)雜、識別準(zhǔn)確率較低和網(wǎng)絡(luò)性能不高的問題。
目前,國內(nèi)研究人員使用卷積神經(jīng)網(wǎng)絡(luò)對DR圖像進行識別分類的研究現(xiàn)狀如下所示:丁蓬莉等[4]使用CompactNet經(jīng)典網(wǎng)絡(luò)對DR圖像進行分類,分類準(zhǔn)確率達(dá)到69%。Zhang等[6]采用深層殘差網(wǎng)絡(luò)對DR圖像進行三分類,分類準(zhǔn)確率達(dá)到80.8%。Luo等[7]對經(jīng)典的殘差網(wǎng)絡(luò)進行改進,使用改進后的模型對DR圖像進行分類,最終分類準(zhǔn)確率為93.04%。陳榕[8]提出了一種改進的AlexNet深度學(xué)習(xí)方法對DR圖像進行三分類,在小數(shù)據(jù)集上取得了較理想的效果,分類準(zhǔn)確率達(dá)到了96.64%。熊彪[9]利用遷移學(xué)習(xí)的方法對DR圖像進行分類,分類準(zhǔn)確率有所提升。國外研究人員利用卷積神經(jīng)網(wǎng)絡(luò)對DR圖像進行分類的相關(guān)研究如下所示:Ghosh等[10]利用卷積神經(jīng)網(wǎng)絡(luò)識別視網(wǎng)膜上微動脈瘤和出血等特征,在二分類和五分類任務(wù)上分別取得了95%和85%的準(zhǔn)確率。Pratt等[11]利用支持向量機對DR進行三分類,最終取得75%的準(zhǔn)確率。Shankar等[12]使用協(xié)同深度學(xué)習(xí)模型SDL對眼底圖像進行五分類,在1 200幅彩色眼底圖像上達(dá)到了95.5%的準(zhǔn)確率。
上述方法中對DR進行細(xì)粒度分類的研究較少,且存在數(shù)據(jù)預(yù)處理較復(fù)雜、識別準(zhǔn)確率較低和網(wǎng)絡(luò)性能不高的問題。本文對目前廣泛應(yīng)用在圖像識別領(lǐng)域中的DenseNet進行改進,針對網(wǎng)絡(luò)中連接數(shù)和參數(shù)數(shù)量規(guī)模較大的問題,利用二階馬爾可夫的思想對DenseNet進行改進,提出了2-DenseNet網(wǎng)絡(luò),提高了網(wǎng)絡(luò)收斂速度和泛化能力。深度學(xué)習(xí)中注意力機制可以指導(dǎo)網(wǎng)絡(luò)關(guān)注圖像中最有辨識度的信息,能有效提高糖尿病視網(wǎng)膜這類細(xì)粒度圖像的分類準(zhǔn)確率。目前,國內(nèi)外很少利用嵌入注意力模塊的卷積神經(jīng)網(wǎng)絡(luò)對DR圖像進行分類。將SE(Squeeze-and-Excitation)注意力機制引入到2-DenseNet中,對準(zhǔn)確率的提高并不明顯。因此,本文借助殘差網(wǎng)絡(luò)中的Shortcut連接思想對SE進行改進,將其引入到2-DenseNet中,對DR圖像進行正常、輕度、中度、嚴(yán)重和增殖性五分類,進一步提高了網(wǎng)絡(luò)性能和分類準(zhǔn)確率。
研究表明,可以通過增加網(wǎng)絡(luò)深度或?qū)挾葋硖岣呔矸e神經(jīng)網(wǎng)絡(luò)識別圖像的準(zhǔn)確率,但當(dāng)網(wǎng)絡(luò)深度或?qū)挾仍黾拥揭欢ǔ潭鹊臅r候,會出現(xiàn)一個問題:當(dāng)輸入信息或梯度信息通過很多層之后,可能會消失。為了解決梯度消失,保持前饋特性并確保層與層之間的最大信息流,DenseNet的每一層均連接到前面所有的層,并將當(dāng)前層的特征映射作為所有后續(xù)層的輸入。DenseNet模型由密集塊和連接密集塊的過渡層組成,圖1表示模型中某個密集塊。
Figure 1 A dense block in DenseNet
在一個l層的密集塊中,每一層的輸入定義為x1,x2,…,xl,則第l層的輸入可用式(1)來表示:
xl=Fl(?(xl-1,xl-2,xl-3,…,x1))
(1)
其中,函數(shù)Fl(·)是由3個連續(xù)運算的復(fù)合函數(shù)組成的,這3個函數(shù)分別執(zhí)行批標(biāo)準(zhǔn)化BN(Batch Normalization)、ReLU(Rectified Linear Units)激活操作和卷積操作;?是聚合操作符,表示將各層的特征圖連接起來。
DenseNet雖然緩解了梯度消失問題,加強了特征重用且有利于特征的傳播,但由于每2層之間都有直接的連接,所以會出現(xiàn)過度擬合和大內(nèi)存消耗的問題。
N階馬爾可夫模型[13]是一種統(tǒng)計模型,其當(dāng)前的狀態(tài)僅僅依賴于前N個狀態(tài),與前N個狀態(tài)之前的狀態(tài)無關(guān)。P(·)表示依賴關(guān)系,其定義如式(2)所示:
P(xt|xt-1,xt-2,…,x1)=
P(xt|xt-1,xt-2,…,xt-N)
(2)
二階馬爾可夫模型是N階馬爾可夫模型的子模型,其當(dāng)前狀態(tài)只與前2個狀態(tài)有關(guān),并且有更高的分類準(zhǔn)確率和泛化能力[14],已廣泛應(yīng)用在自然語言處理和語音識別等領(lǐng)域。
DenseNet和二階馬爾可夫模型在原理上均強調(diào)當(dāng)前狀態(tài)依賴于之前的狀態(tài),并對之前的狀態(tài)或特征進行利用。因此,本文利用二階馬爾可夫的思想來簡化DenseNet,提出了2-DenseNet,該網(wǎng)絡(luò)通過聚合前2層的輸入供后續(xù)層使用,減少了連接數(shù),從而減少了網(wǎng)絡(luò)參數(shù),提高了網(wǎng)絡(luò)收斂速度。與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)相比,該模型有更好的分類準(zhǔn)確率和較優(yōu)的泛化能力。在2-DenseNet中的某個密集塊中,第l層的輸入僅來自于前2層,如圖2所示,其可用式(3)來表示:
xl=Fl(?(xl-1,xl-2))
(3)
Figure 2 A dense block in 2-DenseNet
通過對比圖1和圖2可知,DenseNet和2-DenseNet的相同點是第l層都依賴于之前的層,實現(xiàn)了特征重用;不同點是前者第l層需連接之前所有的層,后者的連接具有針對性和規(guī)律性,第l層僅依賴于前2層。為了進一步探究DenseNet和2-DenseNet的運算量,對某個密集塊中第l層的前向傳播運算定義如式(4)所示:
Xl(i,j)=[Xl-1?w](i,j)+b=
(4)
其中,向量Xl-1和Xl分別表示第l層的輸入和輸出,w和b分別表示權(quán)重值和偏置值,?表示卷積運算,k表示通道總數(shù),m和n是卷積核的尺寸。假設(shè)有M個密集塊,L為密集塊中的層數(shù),DenseNet網(wǎng)絡(luò)中有ML(L-1)/2個連接,2-DenseNet網(wǎng)絡(luò)中有2M(L-1)個連接。當(dāng)L=5時,2-DenseNet相比DenseNet連接數(shù)減少了46.7%,參數(shù)量也隨之減少。
上述分析表明,2-DenseNet除了可以實現(xiàn)特征重用、緩解梯度消失外,還可以減少連接的數(shù)量,極大減少運算量,使得網(wǎng)絡(luò)收斂速度更快并且運行時間更短,在保證分類精度的前提下,解決了DenseNet中出現(xiàn)的問題。
當(dāng)觀察一幅圖像時,人類視覺會快速掃描整個區(qū)域,獲得需要重點關(guān)注的目標(biāo)區(qū)域,并在這個區(qū)域投入更多的精力,從而獲得有用的信息,這就是人類大腦中所特有的視覺注意力機制,深度學(xué)習(xí)中的注意力機制即受此啟發(fā)得以產(chǎn)生。最近,注意力機制在語音識別、圖像識別和自然語言處理等領(lǐng)域都得到了廣泛應(yīng)用,該機制可用于指導(dǎo)網(wǎng)絡(luò)關(guān)注圖像中最有辨識度的信息,因此適用于糖尿病視網(wǎng)膜這類細(xì)粒度圖像的分類[15]。
神經(jīng)網(wǎng)絡(luò)可以在空間維度、通道維度或者混合維度上引入注意力機制,SE-Net[16]是在通道維度上引入的。SE-Net通過自動學(xué)習(xí)來獲取每個通道的重要程度,然后根據(jù)重要程度為每個通道賦予權(quán)值,使得神經(jīng)網(wǎng)絡(luò)重點關(guān)注權(quán)值大的通道并學(xué)習(xí)有用的特征。已有研究表明,在ResNet、Inception和Inception-Restion傳統(tǒng)網(wǎng)絡(luò)中加入SE模塊會明顯提高網(wǎng)絡(luò)性能,但將該模塊引入到2-DenseNet中實驗效果并不明顯。
為了進一步增強網(wǎng)絡(luò)性能,本文針對SE模塊進行改進,提出了一種新的注意力機制模塊,該模塊由卷積模塊和注意力模塊組成,如圖3所示。
Figure 3 Attention mechanism module
注意力機制以主網(wǎng)絡(luò)2-DenseNet的特征映射為輸入,假設(shè)輸入向量為x,圖3左邊是卷積模塊,用H(x)表示,右邊是注意力模塊,用F(x)表示。卷積模塊是2-DenseNet密集塊中的3×3卷積,注意力機制模塊由1個全局池化層和2個1×1卷積模塊組成。通過在H×W×C的特征圖上進行全局池化,可得到一個1×1×C的一維特征向量,代表的是每個通道信息的重要程度。1×1卷積模塊執(zhí)行BN、ReLU 和1×1 卷積操作,是為了對全局池化之后的結(jié)果進行非線性變換。殘差網(wǎng)絡(luò)中通過加入Shortcut連接,變得更容易被優(yōu)化,本文借鑒Shortcut連接思想,將全局池化層和第1個卷積模塊的輸出作為第2個卷積模塊的輸入,第2個卷積模塊的輸出用于調(diào)整原始網(wǎng)絡(luò)的輸出,其輸出的特征圖大小為1×1×C,最后將輸入的H×W×C特征圖與1×1×C特征圖進行全乘操作得到每個通道的權(quán)值,網(wǎng)絡(luò)將自動關(guān)注權(quán)值大的通道并學(xué)習(xí)有用特征。經(jīng)過注意力機制模塊最后的結(jié)果可表示為H(x)+H(x)×F(x)。
注意力機制有助于增強模型的特征表達(dá)能力[17],綜合不同信息,提高網(wǎng)絡(luò)的理解能力[18]。將深度學(xué)習(xí)中的注意力機制應(yīng)用在卷積神經(jīng)網(wǎng)絡(luò)中,使得神經(jīng)網(wǎng)絡(luò)可以自動獲取到DR圖像特征通道中的重要信息[19],比如微動脈瘤、滲出物、厚血管和出血等有價值的特征,進而加快網(wǎng)絡(luò)的訓(xùn)練速度,提高網(wǎng)絡(luò)性能和識別準(zhǔn)確率。
本文在2-DenseNet中引入注意力機制模塊后,總體框架如圖4 所示。網(wǎng)絡(luò)中包含了3個密集塊,塊之間的層稱為過渡層,它執(zhí)行卷積和合并操作,過渡層由1×1 卷積層和2×2 平均池化層組成。在每個密集塊之后執(zhí)行全局平均池化,然后附加一個Softmax 分類器,用來監(jiān)督網(wǎng)絡(luò)模型的學(xué)習(xí)。引入注意力機制,進一步提高了網(wǎng)絡(luò)性能和DR圖像分類精度。
Figure 4 Network framework
實驗數(shù)據(jù)來源于Kaggle社區(qū)競賽的EYEPACS數(shù)據(jù)集,數(shù)據(jù)集中圖像有多種分辨率,每位被試者有左右2幅眼底圖像,這2幅眼底圖像有相同的分辨率。該數(shù)據(jù)集包含35 126幅由7名專業(yè)眼科醫(yī)生診斷為不同嚴(yán)重程度的高分辨率視網(wǎng)膜圖像,其嚴(yán)重程度分為正常、輕度、中度、嚴(yán)重和增殖性5大類,且已被標(biāo)注圖像病變程度,數(shù)字0~4表示嚴(yán)重程度,其中,“0”表示正常,“1”表示輕度,以此類推。如圖5所示,圖5a對應(yīng)正常DR圖像,圖5b對應(yīng)輕度DR圖像,以此類推,圖5e對應(yīng)增殖性DR圖像。從圖5可以看出,各類DR圖像之間的差異并不明顯,輕度DR和中度DR圖像病變特征難以用肉眼區(qū)分,人為地進行特征提取并分類病變程度可能會導(dǎo)致錯誤。
EYEPACS數(shù)據(jù)集在不同病變程度上的圖像數(shù)量如表1所示,從表1中可以看出各類視網(wǎng)膜圖像數(shù)據(jù)分布嚴(yán)重不平衡。
Table 1 Distribution of EYEPACS dataset
各類視網(wǎng)膜圖像之間數(shù)據(jù)分布差距較大,在訓(xùn)練過程中經(jīng)過多層卷積后,可能在一定程度上導(dǎo)致梯度方向發(fā)生變化。為了解決這個問題,本文對分類器訓(xùn)練集中5類圖像進行批歸一化處理,且各類中的圖像數(shù)量相等,該處理使分類器偏向某個類的機會減小。
數(shù)據(jù)集的大小對于模型訓(xùn)練結(jié)果起著至關(guān)重要的作用,本文采用了一些數(shù)據(jù)增強的方法,比如旋轉(zhuǎn)180°和270°。原始圖像的分辨率、亮度和對比度各不相同,本文采用歸一化技術(shù)使得圖像具有相同的分辨率,所有圖像均被調(diào)整為512像素。同時還根據(jù)視網(wǎng)膜圖像中眼球的半徑進行裁剪,使得所有圖像具有相同的視場半徑。為了固定圖像的亮度和增強對比度,本文采用直方圖均衡化增強有價值的特征,如微動脈瘤、滲出物、厚血管和出血等特征。此外,為了增強有價值的特征并調(diào)整圖像大小,本文采用高斯消去函數(shù)來減少圖像模糊,使得特征更加明顯,這樣血管、微動脈瘤和滲出物等特征非常突出,使得模型更容易學(xué)習(xí)。最后,本文利用輪廓技術(shù)去除視網(wǎng)膜的外邊界,避免了網(wǎng)絡(luò)學(xué)習(xí)無用的特征。圖6顯示了預(yù)處理的過程。
Figure 6 Examples of image preprocessing
混淆矩陣是評價網(wǎng)絡(luò)精度的一種標(biāo)準(zhǔn)形式,通常將數(shù)據(jù)集中的標(biāo)簽按照真實的類別和網(wǎng)絡(luò)預(yù)測的類別用n×n的矩陣表示?;煜仃囉蠺P、FN、FP、TN等變量,其中,TP表示將正類樣本預(yù)測為正類樣本的數(shù)量,樣本真實值為0,預(yù)測值也為0;FN表示將正類樣本預(yù)測為負(fù)類樣本的數(shù)量,樣本真實值為0,預(yù)測值為1;FP表示將負(fù)類樣本預(yù)測為正類樣本的數(shù)量,樣本真實值為1,預(yù)測值為0;TN表示將負(fù)類樣本預(yù)測為負(fù)類樣本的數(shù)量,樣本真實值為1,預(yù)測值也為1。
準(zhǔn)確率Accuracy是深度學(xué)習(xí)識別任務(wù)中最常見且最直觀的評價指標(biāo),它表示預(yù)測正確的樣本占所有樣本的比例,如式(5)所示:
(5)
但是,在正負(fù)樣本數(shù)量不平衡的情況下,準(zhǔn)確率無法對負(fù)類樣本進行評價,因此還需要其他評價指標(biāo)對負(fù)類樣本的預(yù)測情況進行評價。
靈敏度Sensitivity表示預(yù)測正確的正類樣本占真實正類樣本的比例,用于衡量分類器對正類的識別能力,該評價指標(biāo)在醫(yī)學(xué)圖像分類中非常重要,因為在臨床診斷中必須極力降低漏診率。靈敏度公式如式(6)所示:
(6)
特異性Specificity表示預(yù)測正確的負(fù)類樣本占真實負(fù)類樣本的比例,其公式表示如式(7)所示:
(7)
本實驗基于TensorFlow深度學(xué)習(xí)框架,采用Python作為編程語言,在Anaconda平臺上實現(xiàn)了引入注意力機制的2-DenseNet算法,在GPU平臺上運行。為了在訓(xùn)練DR圖像時進行交叉驗證并用學(xué)習(xí)好的模型進行測試,將數(shù)據(jù)集隨機劃分為3部分:70%的數(shù)據(jù)組成訓(xùn)練集,20%的數(shù)據(jù)組成驗證集,10%的數(shù)據(jù)組成測試集。
用混淆矩陣對本文注意力模型進行評價,圖7a 表示使用嵌入注意力模型的2-DenseNet在測試集上預(yù)測的結(jié)果,圖7b表示2-DenseNet的預(yù)測結(jié)果。實驗結(jié)果表明,2個網(wǎng)絡(luò)的分類結(jié)果大部分都分布在混淆矩陣的對角線上,引入注意力模型明顯降低了分類錯誤率,說明注意力機制可以進一步提高網(wǎng)絡(luò)性能和分類精確率。
Figure 7 Predicted results
在訓(xùn)練集和驗證集上用引入注意力機制的2-DenseNet網(wǎng)絡(luò)進行訓(xùn)練和交叉驗證,圖8展示了訓(xùn)練精度和驗證精度隨迭代次數(shù)的變化情況。從圖8可看出,隨著迭代次數(shù)的增加,訓(xùn)練精度和驗證精度越來越高,最終網(wǎng)絡(luò)的分類識別率達(dá)到了97.2%。在Kaggle數(shù)據(jù)集上對多個網(wǎng)絡(luò)進行實驗對比,圖9是DenseNet、GoogLeNet、VGGNet、ResNet、SparseNet、ResNext和本文網(wǎng)絡(luò)的對比結(jié)果。從圖9可以看出,改進后的網(wǎng)絡(luò)分類準(zhǔn)確率高于其他對比網(wǎng)絡(luò)的。
Figure 8 Training accuracy and verification accuracy of improved network
Figure 9 Comparison of training accuracy of different networks
由圖9和表2可得出以下結(jié)論:相比DenseNet,本文網(wǎng)絡(luò)參數(shù)少,收斂速度快,且準(zhǔn)確率、靈敏度和特異性都較高;由于GoogLeNet、VGGNet、SparseNet和ResNet總參數(shù)少,所以收斂速度稍微快于本文網(wǎng)絡(luò)的,但是本文網(wǎng)絡(luò)在準(zhǔn)確率、靈敏度和特異性3個指標(biāo)上均高于這4個網(wǎng)絡(luò),并且有更好的平衡性。實驗表明,改進后的網(wǎng)絡(luò)分類性能優(yōu)于傳統(tǒng)網(wǎng)絡(luò)。
Table 2 Comparison of indicators of different networks
本文還在Kaggle數(shù)據(jù)集上對識別準(zhǔn)確率較高的相關(guān)網(wǎng)絡(luò)在運行時間上分別進行了比較,運行時間為處理一幅視網(wǎng)膜圖像的時間,如表3所示。通過實驗結(jié)果可以看出,改進后的網(wǎng)絡(luò)運行時間最短,表明了本文改進方法的合理性,同時也驗證了本文方法的有效性,該網(wǎng)絡(luò)在臨床診斷DR過程中具有很好的參考價值。
Table 3 Time comparison of different networks
針對目前使用神經(jīng)網(wǎng)絡(luò)對糖尿病視網(wǎng)膜病變識別存在的網(wǎng)絡(luò)性能不高、識別精度較低的問題,本文對經(jīng)典的DenseNet網(wǎng)絡(luò)進行改進,通過有針對性地減少DenseNet中的連接數(shù),并引入一種新的注意力機制來改進。實驗結(jié)果表明,本文方法有效提高了網(wǎng)絡(luò)性能和識別準(zhǔn)確率,并加快了運行速度。在實驗過程中發(fā)現(xiàn),數(shù)據(jù)集中存在視網(wǎng)膜圖像各類別之間數(shù)據(jù)分布不平衡,以及原始圖像的分辨率、亮度和對比度各不相同等主要問題,因此需要在訓(xùn)練之前對視網(wǎng)膜圖像進行預(yù)處理。本文先對圖像進行批歸一化處理,使分類器偏向某個類的機會減小,采用直方圖均衡化和高斯消去法來固定圖像的分辨率、亮度和對比度。其次,有針對性地減少DenseNet網(wǎng)絡(luò)中連接數(shù),得到2-DenseNet網(wǎng)絡(luò),并將注意力模型嵌入到該模型中,使網(wǎng)絡(luò)關(guān)注圖像中最有辨識度的區(qū)域并自動獲取圖像深層病變特征,從而加快網(wǎng)絡(luò)收斂速度并提高網(wǎng)絡(luò)性能。實驗結(jié)果表明了注意力機制對提高糖尿病視網(wǎng)膜這類細(xì)粒度圖像分類精度具有較大貢獻,該分類模型在DR五分類任務(wù)上取得了較高的準(zhǔn)確率,有助于提高醫(yī)生在臨床診斷中的效率和準(zhǔn)確率。在后續(xù)工作中,將嘗試將該模型應(yīng)用在其他計算機視覺分類任務(wù)上,提高對其他醫(yī)學(xué)圖像的分類精度。