喬麗?喬晶晶?蘭靜



摘要:本文提出了一種基于EfficientNet的糖尿病視網膜病變診斷,通過使用MBConv卷積模塊對原始圖像進行卷積處理,通過“壓縮-激勵”模塊對圖像病灶施加注意力機制,并使用激活函數對神經網絡進行調整。該方法在Kaggle APTOS數據集上取得了78.3%的五分類準確度及92.2%的二分類準確度,證明該方法的有效性,并且與文中提及的其他方法(VGG16,Inception等)對比有更高的準確率。
關鍵字:EfficientNet;糖尿病視網膜;MBConv卷積模塊;Kaggle APTOS
糖尿病視網膜病變(Diabetic Retinopathy,DR)是糖尿病患者最常見的并發癥之一,也是致盲性眼病之一[1]。早期治療可以有效地控制病情發展,避免失明。因此,糖尿病患者應該定期進行眼科檢查,及時發現和治療糖尿病視網膜病變。傳統的眼科檢查方法包括眼底照相、光學相干斷層掃描(OCT)等,但這些方法的診斷效果不佳,容易誤診或漏診。而基于深度學習的算法可以通過自動分析視網膜圖像的特征,準確地檢測出糖尿病視網膜病變的存在[2]。基于深度學習的算法可以通過識別圖像中的特征,提前發現糖尿病視網膜病變的早期癥狀,從而為患者提供更早期的干預和治療。
一、相關文獻
當前已有大量對基于機器學習的糖尿病視網膜病變診斷研究。對于傳統的機器學習方法,Abramoff等人[3]使用k-近鄰(k-NN)分類器對糖尿病視網膜進行二分法(正常,病變),取得了0.839的AUC分數。Noronha等人[4]使用SVM對疾病進行二元分類,獲得了99.1%的準確率。Acharya等人[5]則應用SVM對糖尿病視網膜病變進行分類。
Rakhlin等人[6]修改了VGG16并在兩個數據集上進行了測試。在Kaggle EyePACS數據集上,模型取得了92%的敏感性和72%的特異度。在Messidor數據集上,取得了99%的靈敏度和71%的特異度。Garcia等人[7]使用EyePACS數據集來訓練和測試一些不同的模型,在VGG16模型上達到74.3%的二分類準確率,在VGG16noFC模型上達到83.68%的準確率和54.47%的靈敏度。
Zhang等人[8]提出了一個高質量的糖尿病視網膜病變數據集,并開發了一個高效的糖尿病視網膜病變識別系統,其靈敏度為97.5%。Zhou等人[9]提出了一個多細胞多任務CNN,旨在解決一些不容易檢測到的微小病灶。使用這種技術,在Kaggle EyePACS數據集的五個分類任務中,Kappa score達到了0.841。
二、實驗方法
本文采用EfficientNet模型對糖尿病視網膜病變進行分類。它在2019年由Google Brain團隊提出,并在ImageNet數據集上取得了比較高的準確率。EfficientNet通過使用復合縮放系數(Compound Scaling Coefficient)來平衡網絡的深度、寬度和分辨率。通過增加網絡深度以增強特征提取能力,同時增加網絡寬度來增加網絡的表達能力,最后增加輸入圖像的分辨率提高網絡的視覺表現力。該方法在保持網絡大小和計算資源不變的情況下,顯著提高網絡的準確率。并且采用Swish激活函數、SE模塊(Squeeze-and-Excitation Module)和移動翻轉瓶頸卷積(Mobile Inverted Residual Block, MBConv)等。
(一)Swish激活函數
Swish是一種新型的激活函數,它由Google在2017年提出。Swish激活函數的數學表達式為公式(1)。
f (x) = x×sigmoid (x) (1)
其中sigmoid (x)具體形式為公式(2)。
sigmoid (x) = 1 / (1+ exp (-x) )(2)
Swish激活函數的主要特點是具有非常平滑的梯度,因此在優化深度神經網絡時可以更好地保持梯度的穩定性和信息流動性。相比于ReLU及其變種,Swish在一些圖像分類和目標檢測任務中能夠達到更好的性能。
(二)壓縮激勵模塊SE
SE模塊包括兩個步驟,第一個步驟是“Squeeze”(壓縮)步驟,它通過全局池化操作將每個特征通道的空間信息壓縮為一個標量。第二個步驟是“Excitation”(激勵)步驟,它使用一個簡單的全連接層來學習每個通道的權重。這些權重表示每個通道對于網絡的重要性,并且用于對每個通道進行加權,以增強網絡的特征表達能力。最后,SE模塊將加權的特征通道相加,形成最終的輸出。
(三)MBConv模塊
MBConv是一種輕量級的卷積神經網絡(CNN)模塊,該模塊的設計旨在提高網絡的表達能力,同時保持計算效率。MBConv模塊采用了一種稱為“Inverted Residual”(反向殘差)的結構,它包含了兩個重要的組成部分:深度可分離卷積(Depthwise Separable Convolution)和跨通道連接(Channel Shuffle)。深度可分離卷積是一種在深度和空間維度上分離卷積操作的卷積方式,它可以將模型大小和計算量大大減少。跨通道連接則是一種將不同特征通道混合的方法,可以增強模型的表達能力。
三、實驗分析
(一)數據集
Kaggle APTOS數據集包含了一系列眼底圖像,用于檢測糖尿病視網膜病變。該數據集包括了3662張訓練集圖像和1928張測試集圖像,每張圖像的分辨率為2588×1958像素。每張圖像都被標注了一個0-4之間的數字標簽,表示病變的程度。具體來說,0表示無病變,1表示輕微病變,2表示中等病變,3表示嚴重病變,4表示增殖性病變。
(二)實驗環境
本實驗在AMD Ryzen 5900HX,RTX 3080 16GB RAM 下運行。
(三)實驗分析
本實驗在Kaggle APTOS數據集上進行了多種分類實驗,并且取得了良好的效果。
本文首先在五分類任務上進行了實驗,并且取得了78.3%的準確度。不僅如此,為了確認本文實驗的穩定性,還進行了5折交叉實驗。表1是本文的五分類五折交叉實驗結果,其說明本文實驗的穩定性。圖1為模型的五分類混淆矩陣,通過模型可以看出在中度和重度問題分類上存在一定的困難,這是由于前文所提到的標準所導致的分類困難。
其次,進行了三分類任務的實驗,并通過五折交叉驗證取得了85.4%的準確度。表2展示了三分類五折交叉驗證的結果,而圖3.2則顯示了模型的三分類混淆矩陣。由于只需對圖像進行正常/非增殖性病變/增殖性病變三種分類,因此分類難度降低,準確度也相應提高。在三分類任務上進行了五折交叉驗證的實驗,并且取得了85.4%的準確度。表2是本文的三分類五折交叉實驗結果,圖2是模型的三分類結果混淆矩陣,由于只需要將對圖像進行正常/非增殖性病變/增殖性病變三種分類。因此分類難度下降了,準確度也隨之升高。
最后本文在二分類任務上進行了五折交叉驗證的實驗,并且取得了92%的準確度。表3是本文的二分類五折交叉實驗結果,圖3是模型的二分類結果混淆矩陣,其在二分類任務上取得了較高的準確度。
四、結果對比
本文與其他文獻中記載的結果進行了對比,表4是本文與其他方法的對比結果,可以看出本文在五分類準確度上優于其他三種方法,在二分類準確度上與VGG16持平。
參考文獻
[1]孫雨琛,劉宇紅,張達峰,等.基于深度學習的糖尿病視網膜病變診斷方法[J].激光與光電子學進展,2020,57(24):359-366.
[2]黃瀟,谷碩,馬曉曄,等.人工智能糖網眼底圖像識別在真實世界的應用[J].情報工程,2018,4(01):24-30.
[3]朱承璋,鄒北驥,向遙,等.彩色眼底圖像視網膜血管分割方法研究進展[J].計算機輔助設計與圖形學學報,2015,27(11):2046-2057.
[4]范家偉,張如如,陸萌,等.深度學習方法在糖尿病視網膜病變診斷中的應用[J].自動化學報,2021,47(05):985-1004.
[5]趙乾,沈琳琳,賴銘瑩.基于機器學習的人工智能技術在眼科中的應用進展[J].國際眼科雜志,2018,18(09):1630-1634.
[6]劉旭,王霞,何媛.糖尿病視網膜病變危險因素與預防研究進展[J].眼科新進展,2018,38(07):687-691.
[7]翁銘,鄭博,吳茂念,等.基于深度學習的DR篩查智能診斷系統的初步研究[J].國際眼科雜志,2018,18(03):568-571.
[8]黃瀟,谷碩,馬曉曄,等.人工智能糖網眼底圖像識別在真實世界的應用[J].情報工程,2018,4(01):24-30.
[9]龍巧燕,陳玉華,劉姣,等.糖尿病視網膜病變的診斷與治療研究進展[J].西部醫學,2016,28(10):1478-1480.