陳 筱,朱向冰*,吳昌凡,余 燕,張鵬飛
(1.安徽師范大學物理與電子信息學院,安徽蕪湖241000;2.皖南醫(yī)學院第一附屬醫(yī)院眼科,安徽蕪湖241000)
白內(nèi)障、糖尿病視網(wǎng)膜病變(Diabetic Retinopathy,DR)、青光眼、年齡性黃斑變性是致盲的主要疾病。一些疾病的初始階段往往是無癥狀的,臨床表現(xiàn)僅僅出現(xiàn)在該疾病的晚期,對多種眼底疾病的早期診斷可以防止眼部病情的惡化。開展大規(guī)模的早期疾病篩查需要大量的醫(yī)生,在現(xiàn)階段有困難,采用計算機篩查眼底圖像判斷疾病可以有效地緩解醫(yī)生的工作量[1-2],便于實現(xiàn)大規(guī)模的早期篩查[3]。
傳統(tǒng)的圖像特征提取方法可以對圖像的形狀、顏色、結(jié)構(gòu)、紋理等低層信息進行表示,并已被證明可用于圖像分類、檢索、分割等任務(wù)中[4-5]。深度學習(Deep Learning,DL)[6-7]是一種新興的技術(shù),在眾多領(lǐng)域中得到廣泛的應(yīng)用[8-10]。在眼科學中,深度學習方法可用于評估各種疾病,包括白內(nèi)障、青光眼、年齡相關(guān)性黃斑變性(Age-related Macular Degeneration,AMD)和DR,它們可以采用彩色眼底圖像和光學相干斷層掃描圖像[11],簡化了眼底病變的診斷過程,并且使用這些深度學習算法對眼底疾病的診斷已證明了與眼科醫(yī)生相媲美的識別能力。由于在眼底檢查中可以發(fā)現(xiàn)各種各樣的異常和疾病,因此用于篩查多種眼底疾病狀況的深度學習算法可能更適合臨床應(yīng)用。許多研究人員不斷對深度學習模型進行改進,自從AlexNet[12]的出現(xiàn)以后,深度學習方法取得了很多成果。其中,EfficientNet[13]模型在ImageNet上達到了最優(yōu)的性能指標,比以往的模型具有更高的準確性和效率,并已被證明在其它數(shù)據(jù)集上得到了非常優(yōu)秀的性能。
本文旨在尋找可用于區(qū)分健康眼底圖像和病理眼底圖像的最佳方法并建立完整的軟件,同時對模型通過熱力圖突顯出預測結(jié)果的依據(jù),在臨床中輔助醫(yī)生診斷,并為患者自行篩查眼底疾病提供一種可能。為了開發(fā)該軟件,我們進行了多次實驗,并使用紋理、形狀和預訓練的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)描述符作為隨機森林(Random Forest,RF)[14]、支持向量機(Support Vector Machine,SVM)[15]、深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)和XGBoost[16]的輸入。在這些實驗的基礎(chǔ)上,我們通過結(jié)合特征融合[17]獲得了更高的性能指標,該軟件已提供了網(wǎng)頁可以對眼底圖像進行預測。
Zhe Wang等[18]提出了一種“Zoom-in-Net”算法,用于診斷DR并突出顯示可疑區(qū)域。該算法由用于DR分類的網(wǎng)絡(luò)“Main-Net”、生成注意力圖的子網(wǎng)絡(luò)“Attention-Net”和子網(wǎng)絡(luò)“Crop-Net”共同組成。在DR數(shù)據(jù)集EyePACS和Messidor上,準確度達到了86.5%。
VarunGulshan等[19]應(yīng)用深度學習創(chuàng)建了一種自動檢測眼底照片中的DR和糖尿病性黃斑水腫的算法,在EyePACS-1和Messidor-2數(shù)據(jù)集上分別進行研究,證明了基于深度機器學習的算法具有很高的靈敏度和特異性。
JoonYul Choi等[20]基于VGG-19架構(gòu)的隨機森林遷移學習對眼底圖片進行多類別分類,包括正常的和9種不正常的視網(wǎng)膜眼底疾病,并證明了隨著類別數(shù)量的增加,深度學習模型的性能逐漸下降。在10個類別上獲得的準確度為30.5%。
Emran Saleh等[21]探討了模糊隨機森林和基于優(yōu)勢關(guān)系粗糙集平衡規(guī)則集成兩種分類器在眼底圖片上的應(yīng)用。在2323張眼底圖片中進行有無DR風險二分類,兩種分類器在測試集上分別獲得了80.29%和77.32%的準確度。
熊荔[22]提出一種用于白內(nèi)障自動診斷分級算法,首先提取眼底圖片的多閾值分割的可見眼底結(jié)構(gòu)、可見眼底結(jié)構(gòu)增強平均值以及局部標準方差等局部特征,應(yīng)用決策樹方法實現(xiàn)了最終的白內(nèi)障模糊度分級,準確率為94.85%。
李建強等[23]采用預訓練的AlexNet進行微調(diào)和訓練,對白內(nèi)障眼底進行分級。該方法在白內(nèi)障四個嚴重程度等級分類任務(wù)中達到81.86%的平均準確率。
TurimerlaPratap等[24]使用800張公開的白內(nèi)障眼底圖片,將預訓練的CNN模型用于圖片特征提取,然后將提取的特征應(yīng)用于SVM分類器,在200張測試集上獲得的四級分類準確度為92.91%。
柯士園等[25]提出集成學習算法,對杯盤比和視神經(jīng)纖維層厚度分別提取出二維特征,并將這兩種特征融合起來作為線性分類器和非線性分類器的輸入,用于診斷青光眼。實驗證明了對兩個視圖上的預測進行融合后,預測準確率有較大的提高。
Maila Claro等[26]使用特征融合的方法,將灰度共生矩陣(Gray-Level Co-occurrence Matrix,GLCM)算法和4種遷移學習模型提取的圖片特征進行拼接并通過增益比的特征選擇方法,使用RF分類器,在青光眼檢測中獲得了93.61%的準確度。
通過對國內(nèi)外眼底圖片分類的調(diào)研,有關(guān)視網(wǎng)膜圖像分類的研究大多數(shù)都選擇了二元分類解決“有無某種眼底疾病”的問題,或者根據(jù)某一種疾病的嚴重程度進行分級,他們的模型對各種各樣的異常眼底不具備識別能力,不能保證在檢測各種眼底病變上表現(xiàn)出良好的性能,且一些方法沒有進行模型可視化解釋,無法保證模型的可信度。本文旨在構(gòu)建檢測眼底幾種常見致盲疾病和其它眼底疾病的自動篩查系統(tǒng),并對模型預測的結(jié)果做可視化解釋,在臨床中更具備應(yīng)用價值,并將該系統(tǒng)制作為軟件以及網(wǎng)絡(luò)程序,減少醫(yī)生檢查眼底疾病的工作量,方便病人自己進行眼底病的篩查,解決偏遠地區(qū)缺少有經(jīng)驗的醫(yī)生的問題。
本文所提出的方法遵循圖1所示的流程圖。首先修改并微調(diào)訓練EfficientNet-B0(E-B0)和EfficientNet-B7(E-B7)模型,微調(diào)后保存模型用于提取眼底圖片的特征,然后將兩個模型提取的特征以串聯(lián)的方式進行融合,最后使用DNN分類器檢測異常眼底。

圖1 本文提出的檢測異常眼底的流程圖Fig.1 Flowchart of proposed method to detect abnormal fundus.
3.1.1 內(nèi)部數(shù)據(jù)集
內(nèi)部數(shù)據(jù)集是由皖南醫(yī)學院第一附屬醫(yī)院收集的929張眼底圖像。將存在以下情況的圖片刪除:(1)模糊區(qū)域占50%或更多;(2)黃斑或視盤缺失;(3)黃斑區(qū)域的血管無法區(qū)分。最后用于本研究的圖片共917張。圖片尺寸為3 352×3 264,受試者年齡在10~85歲之間。
首先由三位資深眼科醫(yī)生為圖片分類,共分為正常的眼底和異常的眼底圖片兩類。其中,異常的眼底圖片包括青光眼、高度近視視網(wǎng)膜病變、視網(wǎng)膜靜脈阻塞、AMD、白內(nèi)障、DR、視網(wǎng)膜下出血、玻璃體病變、視乳頭炎癥等12種眼底疾病。正常眼底的圖片數(shù)量為358張,異常的有559張,三位醫(yī)生對所有圖片的分類都是一致的。圖2展示了內(nèi)部數(shù)據(jù)集中的部分眼底圖片。

圖2 內(nèi)部數(shù)據(jù)中的正常和異常眼底圖片F(xiàn)ig.2 Abnormal and normal fundus images in internal dataset
3.1.2外部數(shù)據(jù)集
外部數(shù)據(jù)集是汕頭國際眼科中心收集的眼底圖片(Joint Shantou International Eye Centre,JSIEC),該公開的JSIEC數(shù)據(jù)集共有1 000張,分為正常、大杯盤比、豹紋狀眼底、動脈阻塞等39個類別。本文的目標是快速篩查異常的眼底圖片,由于其中的大杯盤比的眼底圖片需要結(jié)合患者的病史判斷是否異常,因此在測試集中沒有使用該類的眼底圖片,僅使用了正常的和其他37種異常眼底圖片作為外部測試集,用于測試模型的性能。

表1 內(nèi)部數(shù)據(jù)集和外部數(shù)據(jù)集的數(shù)量Tab.1 Number of fundus images in internal and external datasets
在本研究中使用多種特征提取方法,這幾種方法已被證明在圖像特征提取方面取得較好的性能,本文對比了這幾種特征提取方法在眼底圖像分類上的性能,并探究特征融合與特征選擇的影響。
3.2.1 深度學習與模型選擇
隨著深度學習的不斷發(fā)展,采用深度學習模型用于圖像任務(wù)如目標檢測、圖像識別、圖像檢索等性能得到大幅度提高。
用于圖像任務(wù)的深度學習模型往往采用CNN,在訓練過程中不需要復雜的預處理,可以自動從圖像中提取和學習豐富的相關(guān)特性,通過不斷地優(yōu)化來獲得網(wǎng)絡(luò)所需參數(shù),避免了人工特征提取。另外,CNN通過結(jié)合局部感知區(qū)域、共享權(quán)重、空間上的降采樣來充分利用數(shù)據(jù)本身的局部特征,并且能一定程度上保證位移和旋轉(zhuǎn)的不變性,通過前人的研究[18-20],表明CNN特征能夠很好地表征眼底圖像中的有用信息。
然而由于深度學習網(wǎng)絡(luò)較深,涉及的參數(shù)很多,在數(shù)據(jù)集較少的情況下訓練模型很容易出現(xiàn)過擬合現(xiàn)象,采用遷移學習方法[27]可以將在大型數(shù)據(jù)集中學習好的特征重新用到新的任務(wù)中,解決新任務(wù)中數(shù)據(jù)比較少、數(shù)據(jù)對模型的初始化很敏感的問題,適用于本文數(shù)據(jù)較少的情況。
本文使用在ImageNet上訓練好的Efficient-Net-B0和EfficientNet-B7作為微調(diào)的模型。VGG16[28]是從神經(jīng)網(wǎng)絡(luò)的深度對CNN模型進行擴展,Inception-ResNet-V2(I-R-V2)[29]是將Inception模塊以ResNet方式連接,從增大網(wǎng)絡(luò)的寬度和深度優(yōu)化CNN的特征提取能力。本文的模型是采用神經(jīng)架構(gòu)搜索設(shè)計基線網(wǎng)絡(luò),從模型寬度、深度和圖片分辨率三個方面進行擴展得到一系列模型,稱為EfficientNets。分別為EfficientNet-B0,EfficientNet-B1,…,EfficientNet-B7。其中,EfficientNet-B0為基線模型,Efficient-Net-B7在ImageNet上獲得了當時最優(yōu)的84.4%的top-1準確度和97.1%的top-5準確度,同時比當時最好的卷積網(wǎng)絡(luò)大小縮小了8.4倍、速度提高了6.1倍。該模型所提出的思想如圖所示。

圖3 EfficientNets模型采用的復合縮放方法Fig.3 Scaling method used by the EfficientNet model
由于該模型的源任務(wù)用于ImageNet圖像的分類,與本文分類數(shù)不同,因此需要先對模型進行修改,且ImageNet中圖像與眼底圖像差別較大因此采用微調(diào)的方式進行遷移學習。將EfficientNet-B0和EfficientNet-B7模型的全連接層的輸出維度改為本研究中的眼底圖像二分類類別數(shù)。然后對數(shù)據(jù)集進行劃分,隨機選取所有數(shù)據(jù)集的60%用做訓練集,20%用作驗證集,剩下的作為測試集,為防止模型出現(xiàn)過擬合,將訓練集和驗證集的數(shù)據(jù)分別進行旋轉(zhuǎn)、鏡像、翻轉(zhuǎn)和放大操作,擴充后的數(shù)據(jù)分別是3 000和1 000張。訓練中,本文采用隨機梯度下降更新網(wǎng)絡(luò)的權(quán)值和偏置并微調(diào)整個模型的參數(shù),超參數(shù)批處理大小、迭代數(shù)、學習率、和動量分別設(shè)置為8,50,0.001和0.9。保存在驗證集上性能最好的模型,用于測試集的測試和提取眼底圖片中的特征,并探究CNN特征結(jié)合其它分類器以及多種特征融合的影響。使用微調(diào)后的EfficientNet-B0(Fine-tuned EfficientNet-B0,F(xiàn)T-E-B0)和EfficientNet-B7(Fine-tuned EfficientNet-B7,F(xiàn)T-EB7)提取每張圖片特征分別產(chǎn)生1 280和2 560個描述符。
3.2.2 局部二進制模式
局部二進制模式(Local Binary Pattern,LBP)是一種紋理特征描述符,可以用于計算紋理的局部表示。本文使用Ojala等人提出的旋轉(zhuǎn)不變均勻LBP描述子[30],該算法引入了兩個參數(shù):圓形對稱鄰域中的點數(shù)p和圓的半徑r。
旋轉(zhuǎn)不變均勻LBP描述子是對原始的LBP描述子進行的改進,其具有旋轉(zhuǎn)不變性,用于提取眼底圖像的特征時,通過LBP算法提取的特征不會因為拍攝對象(人眼)的傾斜而發(fā)生改變,均勻LBP描述子則起到了降維的作用,均勻模式占了全部模式中的絕大多數(shù)信息,因此該旋轉(zhuǎn)不變均勻LBP描述子能夠很好地提取圖像的本質(zhì)特征,文獻[26]采用該方法提取彩色眼底圖像特征用于識別青光眼,并證明了能夠獲得一定的準確度。
旋轉(zhuǎn)不變均勻LBP模式提取的特征數(shù)完全取決于p的數(shù)量,均勻模式僅p+1類,所有非均勻模式歸為1類,最后用于表示整幅紋理圖像的旋轉(zhuǎn)不變LBP描述子的直方圖矢量特征僅p+2維。在本實驗中,將圖片轉(zhuǎn)化為灰度圖并調(diào)整圖片尺寸為1 024×1 024,點數(shù)p設(shè)為24,半徑r設(shè)為8,因此LBP算法在每一張圖片上產(chǎn)生了26個描述符。
3.2.3 GLCM
GLCM是一種計算紋理的統(tǒng)計方法,該方法考慮了像素的空間關(guān)系[31]。GLCM通過計算圖像中具有特定值和指定空間關(guān)系的像素對出現(xiàn)的頻率創(chuàng)建GLCM。然后從該矩陣中提取統(tǒng)計信息來表征圖像的紋理。相關(guān)的統(tǒng)計信息包括對比度、逆差矩、能量、同質(zhì)性、熵、自相關(guān)性等。其中,對比度反應(yīng)了圖像的清晰度和紋理的溝紋深淺;逆差矩反映了圖像紋理的清晰程度和紋理程度,度量圖像紋理局部變化的多少;熵表示圖像中紋理的非均勻程度或復雜程度;自相關(guān)值大小反映了圖像中局部灰度相關(guān)性。眼底圖像中具有非常復雜的紋理信息,灰度共生矩陣不僅提供了圖像中灰度方向、間隔和變化幅度的信息,在GLCM的基礎(chǔ)上通過計算紋理特征統(tǒng)計屬性來定量描述紋理特征進而實現(xiàn)更好地描述眼底圖像。
本文在眼底圖像灰度圖上使用能量、同質(zhì)性、自相關(guān)性、對比度和差異性描述圖像的特征,空間位置關(guān)系設(shè)置為0°,90°,135°和180°,相鄰元素之間的距離設(shè)置為1,2,3,4,因此每張圖片上產(chǎn)生80個描述符。
3.2.4 方向梯度直方圖
方向梯度直方圖(Histogram of Oriented Gradient,HOG)描述符[32]主要用于描述圖像中對象的結(jié)構(gòu)形狀和外觀,常用于圖像分類。
HOG是在網(wǎng)格密集、大小統(tǒng)一的細胞單元上進行計算,通過將細胞單元組成更大的塊并歸一化塊內(nèi)的所有細胞單元來實現(xiàn)對直方圖進行對比度歸一化,因此HOG對光照和陰影有更好的不變性,可以減少光線對眼底照片拍攝過程造成的影響;由于HOG捕獲了局部強度梯度和邊緣方向,因此它提供了良好的紋理描述符,考慮到眼底圖像中具有豐富的紋理信息,因此本文也使用了HOG方法提取特征。
在本文中,將單元大小設(shè)置為16×16,塊的大小設(shè)置為2×2,并在9個方向上計算眼底圖像的HOG描述符,產(chǎn)生了8 100個描述符。
特征融合可以實現(xiàn)各種方法提取的特征之間的信息互補,能夠從融合中涉及的多個原始特征集中獲得最具差異性的信息。LBP,GLCM和HOG是三種傳統(tǒng)的特征提取方式,能有效提取圖片中的低階紋理信息。FT-E-B0和FT-EB7是深度學習模型,可以自動學習到圖像中的高階信息。本文將提取的特征使用串聯(lián)方式進行特征融合,主要有兩組實驗:
(1)LBP,GLCM,HOG提取的低層特征與FT-E-B0和FT-E-B7提取的高層特征以串聯(lián)的方式融合;
(2)FT-E-B0和FT-E-B7特征描述符以串聯(lián)的方式融合。
實驗的具體實現(xiàn)方法是:首先對每一張眼底圖片采用3.2節(jié)中介紹的LBP,GLCM,HOG方法以及FT-E-B0,F(xiàn)T-E-B7模型提取特征向量,各種方法在一張眼底圖上產(chǎn)生的特征向量大小為26,80,8 100,1 280和2 560。上述實驗(1)中采用串聯(lián)方式融合所有特征后,每一張圖的特征向量大小為12 046;實驗(2)采用串聯(lián)方式進行融合兩種模型提取的特征后,每一張圖的特征向量大小為3 840。通過兩組實驗對比,探究傳統(tǒng)特征提取方法提取的特征與CNN特征進行融合對分類的影響。
包裝法是一種特征選擇與算法訓練同時進行的方法[33]。經(jīng)過包裝法篩選后的特征可以在特征數(shù)量很少時就能達到非常優(yōu)秀的效果。遞歸特征消除法(Recursive Feature Elimination,RFE)使用的是一種典型的包裝法的目標函數(shù)[34],帶有交叉驗證的RFE(RFECV)是在RFE的基礎(chǔ)上對不同的特征組合進行交叉驗證,得到不同特征組合性能指標的重要程度,然后保留最佳的特征組合。
對兩組融合特征進行特征選擇的具體做法是:采用scikit-learn中RFECV函數(shù)實現(xiàn),分類器使用參數(shù)為500棵樹的隨機森林分類器,采用10折分層采樣方式對數(shù)據(jù)進行采樣,在篩選特征過程中以準確度作為評估模型的標準觀察不同特征數(shù)量時得到的結(jié)果,每訓練一步特征數(shù)量減少50,如果減少特征會造成性能損失,那么將不會去除任何特征。
本文中用于實驗的分類器是SVM,DNN,XGBoost和RF,其中RF和XGBoost參數(shù)設(shè)置500棵樹,DNN中使用500個隱藏層,其余參數(shù)均為默認參數(shù)。
本文采用醫(yī)學圖像分類中常用的評估指標:準確度、特異度、靈敏度、F1度量和曲線下面積(Area Under Curve,AUC)評估分類器性能。標簽異常且預測異常的為真陽性(True Positive,TP),標簽異常且預測正常的為假陰性(False Negative,F(xiàn)N),標簽正常且預測異常的為假陽性(False Positive,F(xiàn)P),標簽正常且預測正常的為真陰性(True Negative,TN),準確度、特異度、靈敏度、F1度量的計算公式如下,其中F1度量能夠綜合評估精確度和靈敏度,受試者工作特性曲線(Receiver Operating Characteristic curve,ROC)曲線能夠顯示靈敏度和特異度的變化。

內(nèi)部數(shù)據(jù)上使用的驗證方法是10折交叉驗證。將數(shù)據(jù)分割成10個子集,1個單獨的子集作為測試模型的數(shù)據(jù),計算得到上述的相關(guān)指標,其他9個子集用來訓練。交叉驗證重復10次,每個子集驗證一次,平均10次的結(jié)果,最終得到一個單一估測。10折交叉驗證是在數(shù)據(jù)較少時評估模型性能的常用方法,能夠更好地反映模型的泛化性。
本實驗中,所有程序在Ubuntu18.04 LTS 64-bit系統(tǒng)上運行以及使用Python3.6進行編程,CPU為Intel?CoreTM i3-8100。HOG,LBP,GLCM算法采用scikit-image庫實現(xiàn)。微調(diào)使用Py-Torch深度學習框架實現(xiàn),并使用一個NVIDIA GTX 1080Ti的GPU微調(diào)預訓練的E-B0和EB7。采用scikit-learn機器學習庫實現(xiàn)四種分類器和RFECV。
4.1.1 內(nèi)部數(shù)據(jù)上的分類結(jié)果與分析
表2 展示了使用內(nèi)部數(shù)據(jù)集提取圖片的11種特征描述符和兩種融合后的特征描述符在四種分類器上的分類準確度和F1度量。其中,融合(1)描述符表示GLCM,LBP,HOG,F(xiàn)T-E-B0和FT-E-B7提取的特征串聯(lián)融合。融合(2)描述符表示FT-E-B0和FT-E-B7提取的特征串聯(lián)融合。

表2 13種不同的特征在4種分類器上的準確度和F1度量Tab.2 Accuracy and F1-score of 13 different features on 4 classifiers
從表中的每一行對比可以發(fā)現(xiàn):
(1)微 調(diào) 的AlexNet,VGG16,I-R-V2,DenseNet121,F(xiàn)T-E-B0和FT-E-B7模型與3種傳統(tǒng)特征提取方法相比,在4個分類器都得到了更高的準確度和F1度量,因此微調(diào)模型具有比傳統(tǒng)特征描述符更強的特征提取能力;
(2)AlexNet,VGG16,I-R-V2,DenseNet121,F(xiàn)T-E-B0和FT-E-B7微調(diào)模型中,F(xiàn)T-E-B0和FT-E-B7在四種分類器獲得的準確度高于其他任何一種模型,表明FT-E-B0和FT-E-B7模型提取方法能更好地提取眼底的復雜信息;
(3)未進行微調(diào)的E-B0和E-B7模型獲得的最高準確度為76.66%,微調(diào)后的E-B0和E-B7模型即FT-E-B0和FT-E-B7模型獲得的最高準確度94.76%,因此采用微調(diào)方式獲得了極大的改善;
(4)兩種融合后的描述符與單一的描述符相比,在4個分類器上的準確度和F1度量均有所改善,表明多特征融合可以提高分類的性能;
(5)融合(1)得到的特征與融合(2)得到的特征相比,五種描述符融合后的特征數(shù)量是FT-E-B0和FT-E-B7融合后的3倍,準確度和F1度量僅在XGBOOST和SVM分類器上高于FT-E-B0和FT-E-B7融合后特征0.1%左右,且最好的結(jié)果是FT-E-B0和FT-E-B7融合后特征采用DNN分類獲得,因此僅僅采用兩種CNN特征進行融合的分類性能比傳統(tǒng)方法提取的特征與CNN特征融合的效果更好,表明傳統(tǒng)方法提取的特征中包含了一定的冗余信息,對分類的結(jié)果產(chǎn)生了負面的效果,且僅僅采用兩種CNN特征描述符不僅不會丟失眼底圖片中的有用信息,且實現(xiàn)了融合后的特征改進了分類性能。
FT-E-B0和FT-E-B7融合后的特征采用DNN分類的十折交叉驗證得到的ROC曲線和AUC值如圖4,其中黑色線表示十折交叉驗證平均后的ROC曲線。
本文也探究了特征選擇對本實驗的影響,圖5展示了使用基于隨機森林分類器的RFECV篩選后的特征數(shù)量與對應(yīng)的準確度。由圖可以看到,用250左右的描述符就能將模型的準確度達到95%,最高的準確度仍在所有的特征均保留時獲得,因此可以推斷FT-E-B0和FT-E-B7提取的特征幾乎不包含冗余信息,本文使用該融合特征結(jié)合DNN分類器用于內(nèi)部數(shù)據(jù)集和外部數(shù)據(jù)集的測試。

圖4 FT-E-B0和FT-E-B7融合后的特征在DNN上交叉驗證的ROC曲線以及AUC值Fig.4 10-fold cross-validated ROC curve and AUC value of FT-E-B0 and FT-E-B7 fusion features on DNN

圖5 基于隨機森林分類器篩選的重要特征數(shù)與相應(yīng)的準確度Fig.5 Number of important features and the corresponding accuracy based on the random forest classifier
4.1.2 內(nèi)部數(shù)據(jù)的測試結(jié)果并與其它方法進行比較
將本文提出的FT-E-B0+FT-E-B7+DNN方法與其他文獻中提到的方法進行比較,由于其他文獻的數(shù)據(jù)和實驗目的與本文的不同,因此本文復現(xiàn)了其他文獻中的方法,并與本文提出的FT-E-B0+FT-E-B7+DNN方法進行對比,在內(nèi)部數(shù)據(jù)集上的測試結(jié)果如表3。

表3 本文方法與其他方法在內(nèi)部數(shù)據(jù)集測試結(jié)果Tab.3 Test results of this method and other methods on internal dataset
由表3得到,本文提出的FT-E-B0+FT-EB7+DNN方法在內(nèi)部數(shù)據(jù)集的測試中得到了最佳的性能指標,該方法與文獻[21],[23],[36]都采用了深度學習模型,與文獻[35],[37]的傳統(tǒng)機器學習方法相比,性能都得到很大改善;與文獻[21]、文獻[23]、文獻[36]相比,本文采用微調(diào)的E-B0和E-B7模型結(jié)合DNN分類器更適用于異常眼底篩查任務(wù)。
4.1.3 外部數(shù)據(jù)測試結(jié)果并與其他方法行比較
在外部數(shù)據(jù)的測試中,本文的FT-E-B0+FT-E-B7+DNN方法得到了最高的準確的、特異度和AUC,盡管在文獻[21]獲得了最高的靈敏度,但是特異度較低,僅有50%,特異度較低表明模型將正常的眼底樣本預測為異常的數(shù)量較多,這將耗費過多的醫(yī)療資源,與開發(fā)該模型的目的相違背,本文的方法能綜合考慮特異度和靈敏度,有較高的實用價值。

表4 本文方法與其他方法在外部數(shù)據(jù)集測試結(jié)果Tab.4 Test results of this method and other methods on external dataset
采用本文提出的FT-E-B0+FT-E-B7+DNN方法診斷一張眼底圖片僅需要約0.4 s的時間,實現(xiàn)了高效的自動診斷,有利于大規(guī)模篩查異常眼底。
深度學習模型在圖像識別任務(wù)中取得了非常出色的效果,但是人們往往不知道模型為什么會做出這樣的預測,即模型的可解釋性較差。尤其在醫(yī)學圖像的應(yīng)用中,對模型進行特征重要性分析和可視化研究非常重要,可以輔助醫(yī)生找到病變的位置,做出可靠的診斷。本文采用加權(quán)梯度類激活熱力圖(Gradient-weighted Class Activation Mapping,Grad-CAM)[38]方法對FT-E-B0和FT-E-B7模型進行可視化解釋,該方法通過構(gòu)建熱力圖以顯示輸入的圖像中具體區(qū)域?qū)D像最終的分類判斷起到了作用。圖6展示了在JSIEC數(shù)據(jù)集中眼底圖片可視化解釋的例子。圖中,4張眼底圖片的原圖均為異常眼底,圖(a)為視盤異常;圖(b)為黃斑區(qū)存在可見微血管瘤和小出血點;圖(c)為視盤周圍有可見棉絨斑;圖(d)為黃斑區(qū)異常,有滲出和色素沉著。每張原圖的右側(cè)為原圖對應(yīng)的熱力圖,其中紅色區(qū)域是模型認為圖片異常的位置,與醫(yī)生讀片結(jié)果一致(彩圖見期刊電子版)。

圖6 JSIEC數(shù)據(jù)集中異常眼底圖片的熱力圖Fig.6 Heatmaps of abnormal fundus images in JSIEC dataset
將本文提出的FT-E-B0+FT-E-B7+DNN方法制作成軟件,軟件界面如圖7,該軟件已上傳到網(wǎng)址:https://www.wzyrr520.xyz/blog/post/admin/pyqt-fundus,且已在醫(yī)院眼科進行安裝測試。該模型的網(wǎng)頁版的程序位于:http://fundusimages-recognition.top,將需要測試的眼底圖像上傳到網(wǎng)頁,在服務(wù)器端進行自動診斷,診斷結(jié)果顯示在用戶的瀏覽器中,實現(xiàn)患者的自行篩查。

圖7 眼底疾病自動篩查軟件界面Fig.7 Surface of fundus diseases automatic screening software
本文探索了多種傳統(tǒng)特征提取方法和多個深度學習模型提取眼底圖像特征取得的效果,并探究了特征融合對檢測異常眼底的影響。本文的最佳結(jié)果通過將微調(diào)后的EfficientNet-B0和EfiicientNet-B7模型提取的眼底圖像特征融合后在DNN分類器上獲得,最高的準確度和靈敏度分別為95.74%,96.46%。因此微調(diào)后的EfficientNet-B0和EfficientNet-B7模型提取特征并融合能夠更加高效地反映眼底圖像中復雜的紋理特征,方法在公開數(shù)據(jù)集中也取得了較好的性能。本文所提出的FT-E-B0+FT-E-B7+DNN方法能夠?qū)崿F(xiàn)自動化識別異常眼底,并采用Grad-CAM方法對模型進行可視化解釋,為模型預測提供可靠的預測依據(jù)。盡管本文探究的僅是二分類,但在眼底圖像分類中是基礎(chǔ)且重要的。該方法已制作成軟件與網(wǎng)頁程序提供給醫(yī)院測試。
本文的外部測試結(jié)果僅展示了在國內(nèi)的JSIEC數(shù)據(jù)集的性能,由于國外的公開數(shù)據(jù)集與國內(nèi)數(shù)據(jù)集之間在顏色、照度、分辨率、質(zhì)量以及分類標準等方面有很大的差異,因此沒有得到較好的性能,限制了軟件的使用范圍。在未來工作中,將提高軟件的通用性,提高對國外異常眼底數(shù)據(jù)的篩查性能,并將異常眼底疾病進一步分類,完善能實現(xiàn)多種常見致盲疾病的篩查軟件。