李果璟,夏秋婷,李 宏
(杭州電子科技大學(xué)自動(dòng)化(人工智能)學(xué)院,浙江 杭州310018)
眼底是人體唯一能直接看到血液循環(huán)狀況及微循環(huán)結(jié)構(gòu)的部分[1]。 傳統(tǒng)眼底檢查的流程是患者前往醫(yī)院拍攝眼底照片,眼科醫(yī)生依據(jù)圖像進(jìn)行診斷。 但日益上升的患者人數(shù)造成專(zhuān)業(yè)眼科醫(yī)生短缺,醫(yī)生工作愈發(fā)繁重等問(wèn)題逐漸顯現(xiàn)。 并且,僅僅憑靠醫(yī)生肉眼觀察分析的傳統(tǒng)診斷方法所帶來(lái)的效率低下、誤診、漏診等問(wèn)題也不容忽視。 因而,利用計(jì)算機(jī)技術(shù)輔助眼底診斷,進(jìn)行眼底健康篩查十分必要。
糖尿病(Diabetes Mellitus,DM)和眼底病變的發(fā)生存在一定的關(guān)聯(lián)性,由胰島素分泌缺陷或者胰島素作用障礙造成的糖尿病會(huì)給患者帶來(lái)血糖升高,血管性改變等后果[2]。 在全球范圍內(nèi),糖尿病引發(fā)的眼底視網(wǎng)膜病變(Diabetic retinopathy,DR)是致盲的首要因素,是許多國(guó)家成年人失明的最主要病因之一[2-4]。
深度學(xué)習(xí)[5-10](Deep Learning) 是機(jī)器學(xué)習(xí)(Machine Learning)方法中的一種。 深度學(xué)習(xí)在眼科上的應(yīng)用目前取得了很多成果。 Gulshan 等人[11]在2016年就利用Inception-v3 結(jié)構(gòu)將深度學(xué)習(xí)技術(shù)應(yīng)用在糖尿病眼底視網(wǎng)膜病變的診斷上,且實(shí)驗(yàn)結(jié)果十分成功;Muhammad 等人[12]設(shè)計(jì)了一種基于Alexnet 網(wǎng)絡(luò)與隨機(jī)森林方法混合的深度學(xué)習(xí)方法(HDLM),基于OCT 眼底圖像對(duì)52 名青光眼患者眼底圖像進(jìn)行是否為青光眼的診斷;Felix 等人[13]設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)與隨機(jī)神經(jīng)結(jié)合的模型,對(duì)年齡相關(guān)性黃斑病變進(jìn)行12 個(gè)等級(jí)的分類(lèi)。
本文利用全局信息對(duì)整個(gè)眼底圖像進(jìn)行特征提取,隨后進(jìn)行分類(lèi)。 其創(chuàng)新點(diǎn)在于,提出了一種針對(duì)眼底視網(wǎng)膜圖像的多疾病多標(biāo)簽分類(lèi)的解決方案;針對(duì)視網(wǎng)膜圖像中多種疾病的多標(biāo)簽分類(lèi),提出了構(gòu)建多分支模型多任務(wù)學(xué)習(xí)的解決方法;為增強(qiáng)模型對(duì)病灶學(xué)習(xí)能力,引入了注意力機(jī)制來(lái)提高疾病分類(lèi)的精度;采用多模型融合技術(shù),對(duì)不同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)進(jìn)行融合以提升模型效果。
本文所用數(shù)據(jù)集來(lái)源于2019年北京大學(xué)“智慧之眼” 國(guó)際眼底圖像智能識(shí)別競(jìng)賽(Peking University International Competition on Ocular Disease Intelligent Recognition,ODIR-2019),由北京上工醫(yī)信科技有限公司提供。 數(shù)據(jù)來(lái)源于在上工醫(yī)信合作醫(yī)院及醫(yī)療機(jī)構(gòu)進(jìn)行眼健康檢查的患者,數(shù)據(jù)提供了3500 組結(jié)構(gòu)化脫敏信息作為訓(xùn)練集。 以下簡(jiǎn)稱(chēng)數(shù)據(jù)集為ODIR。
從醫(yī)學(xué)角度上分析病灶特征,正常眼眼底圖像中血管清晰,包括小血管在內(nèi)的多個(gè)血管走行方向明確,視盤(pán)呈正常淡紅色。 無(wú)絮狀物或結(jié)節(jié)狀物體出現(xiàn)。 而糖尿病視網(wǎng)膜病變的眼底圖像上可能會(huì)存在微動(dòng)脈瘤(Microaneurysms,MA),軟性滲出(Soft Exudates,SE),硬性滲出(Hard exudates,EX)以及出血(Hemorrhages,HE)等癥狀。 微動(dòng)脈瘤是由于毛細(xì)血管壁局部變薄而膨脹引起的,他們被認(rèn)為是糖尿病視網(wǎng)膜病變發(fā)生時(shí)最早可見(jiàn)的體征。 滲出是由于毛細(xì)血管內(nèi)血漿的滲漏,再根據(jù)顏色及邊界是否明顯區(qū)分為硬性或軟性滲出。 淺層的出血通常呈火焰狀,在視網(wǎng)膜深層的血管破裂將導(dǎo)致斑點(diǎn)狀圓形病灶[14]。
1.2.1 實(shí)驗(yàn)環(huán)境
本文提出了新的眼底視網(wǎng)膜圖像病變檢測(cè)分類(lèi)方法,并進(jìn)行優(yōu)化。 本實(shí)驗(yàn)設(shè)計(jì)多組對(duì)比實(shí)驗(yàn),先確定了整體的分類(lèi)器模型構(gòu)建思路: 選擇以Resnet50[7]為主干網(wǎng)絡(luò),在此基礎(chǔ)上對(duì)結(jié)構(gòu)進(jìn)行修改,結(jié)合特征融合技術(shù)并采用多任務(wù)學(xué)習(xí)得到基準(zhǔn)模型。
通過(guò)設(shè)計(jì)多組對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)環(huán)境配置表如表1 所示,所設(shè)計(jì)的深度學(xué)習(xí)方法實(shí)現(xiàn)是基于Pytorch1.1.0 以及torchvision0.3.0 框架。
表1 實(shí)驗(yàn)環(huán)境配置
1.2.2 評(píng)價(jià)指標(biāo)
本實(shí)驗(yàn)利用留出法進(jìn)行模型選擇和評(píng)估,選擇所有數(shù)據(jù)中的90%左右為訓(xùn)練數(shù)據(jù),10%為測(cè)試數(shù)據(jù)。 本實(shí)驗(yàn)為多標(biāo)簽分類(lèi)問(wèn)題,輸入示例可以由多個(gè)標(biāo)簽進(jìn)行標(biāo)記且不互斥。 采用的評(píng)價(jià)策略分為兩個(gè)部分,首先是對(duì)于所有類(lèi)別評(píng)估模型整體的準(zhǔn)確率(accuracy,acc)、基于標(biāo)簽的評(píng)價(jià)指標(biāo)(f1-score)、受試者工作特征曲線下面積(Area of receiver operating characteristic curve,AUC)以及杰卡德指數(shù)(Jaccard Index);其次,針對(duì)每個(gè)類(lèi)別,進(jìn)行acc、f1-score、AUC、查準(zhǔn)率、敏感性(Sensitivity)以及特異性(specificity)的評(píng)估。 通過(guò)綜合指標(biāo)的考量,更為全面地判斷模型性能好壞。 上述指標(biāo)大多借助混淆矩陣得分統(tǒng)計(jì),如表2 所示。
表2 混淆矩陣分析
準(zhǔn)確率表示所有被預(yù)測(cè)正確的數(shù)據(jù)比例,計(jì)算公式為:
查準(zhǔn)率(precision)表示預(yù)測(cè)值為正例時(shí)預(yù)測(cè)正確的比例,計(jì)算公式為:
敏感性表示真實(shí)值為正例的情況下,預(yù)測(cè)正確的比例,計(jì)算公式為:
特異性(Specifity)表示預(yù)測(cè)值為負(fù)例的情況下,預(yù)測(cè)正確的比例,計(jì)算公式為:
F1-score 事實(shí)上是查準(zhǔn)率和敏感性的調(diào)和平均數(shù)Fβ的一種特殊情況,來(lái)評(píng)估樣本不平衡情況下的模型總體表現(xiàn)。 其計(jì)算公式為:
分類(lèi)過(guò)程中按照不同閾值設(shè)定,可得到一系列的橫坐標(biāo)為假陽(yáng)性率(false positive rate,F(xiàn)PR)和縱坐標(biāo)為真陽(yáng)性率(true positive rate)即敏感性數(shù)值對(duì),并按照假正例率進(jìn)行排序。 然后將閾值設(shè)為最大值,那么所有的樣本均為負(fù)例,再按照排列順序?qū)㈤撝翟O(shè)為每個(gè)預(yù)測(cè)值,可繪制得到曲線。 該曲線為受試者工作特征(Receiver Operating Characteristic,ROC)曲線。 該曲線右下方面積為AUC,AUC 越大表示性能越佳。
Jaccard 指標(biāo)是預(yù)測(cè)值和真實(shí)值都為正例占預(yù)測(cè)為正例或者真實(shí)值為正例的比例,其所代表的含義是比較兩個(gè)樣本之間的差異程度,Jaccard 指數(shù)越大,說(shuō)明差異性越小。 假設(shè)標(biāo)簽集合為T(mén),預(yù)測(cè)結(jié)果為P,計(jì)算公式可以表示為:
1.2.3 特征融合與多任務(wù)學(xué)習(xí)
本實(shí)驗(yàn)中包含兩組對(duì)比實(shí)驗(yàn),分別為:
①用于選擇輸入模式,驗(yàn)證本實(shí)驗(yàn)中對(duì)輸入進(jìn)行特征融合是必要的。 ②不同的輸出策略對(duì)結(jié)果的影響,設(shè)計(jì)適用于本實(shí)驗(yàn)的多任務(wù)學(xué)習(xí)方案。
同一位患者的左右眼存在一定相關(guān)性,從而進(jìn)行猜想:訓(xùn)練模型同時(shí)參考左眼和右眼圖像信息將提高實(shí)驗(yàn)結(jié)果。 為驗(yàn)證該猜想設(shè)計(jì)如下實(shí)驗(yàn):
對(duì)ODIR 信息標(biāo)簽表中“Left-Diagnostic Keywords”和“Right-Diagnostic Keywords”采用正則匹配手段,依照關(guān)鍵詞信息,提取并生成相應(yīng)的左眼和右眼各個(gè)疾病的單眼級(jí)別的標(biāo)簽(image label)。 在預(yù)測(cè)的時(shí)候,根據(jù)同一患者的ID 選擇出左右眼,然后利用訓(xùn)練好的模型分別針對(duì)其左眼和右眼進(jìn)行預(yù)測(cè),然后對(duì)雙眼結(jié)果進(jìn)行融合得到最終診斷結(jié)果。在預(yù)測(cè)診斷階段,綜合左眼和右眼結(jié)果進(jìn)行融合,并整合成診斷意見(jiàn),指出患者是否存在相應(yīng)眼底疾病。
采用信息標(biāo)簽表中已有數(shù)據(jù)(雙眼各疾病類(lèi)別標(biāo)簽)。 相應(yīng)采取的訓(xùn)練策略是先將左眼和右眼分別讀入,然后將雙眼圖像做拼接處理后輸入卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。 輸出結(jié)果即為患者診斷信息。
最終訓(xùn)練集和驗(yàn)證集中各類(lèi)別數(shù)據(jù)分布如表3所示,其中訓(xùn)練集為9417 張,驗(yàn)證集為290 張。 其中,N 表示正常眼,D 表示糖尿病視網(wǎng)膜病變,G 表示青光眼,C 表示白內(nèi)障,A 表示年齡相關(guān)性黃斑病變,H 表示高血壓,M 表示近視。 在訓(xùn)練策略上,設(shè)置初始學(xué)習(xí)率為3×10-4,每8 次迭代完成后學(xué)習(xí)率衰減為原來(lái)的0.6;批量大小表示網(wǎng)絡(luò)每一次輸入的樣例個(gè)數(shù),本實(shí)驗(yàn)中設(shè)置為10。 實(shí)驗(yàn)所采用的優(yōu)化器是SGD,動(dòng)量設(shè)置為0.9,網(wǎng)絡(luò)損失函數(shù)采用二元交叉熵。
表3 訓(xùn)練集與驗(yàn)證集各類(lèi)別數(shù)量及比例統(tǒng)計(jì)
如表4 所示,雙眼級(jí)別多任務(wù)學(xué)習(xí)除AUC 指標(biāo)外,在其他指標(biāo)上均比單眼突出,驗(yàn)證了雙眼級(jí)別預(yù)測(cè)模型效果比單眼級(jí)別效果更好。 在特異性、敏感性、查準(zhǔn)率和F1-score 上,雙眼級(jí)別模型結(jié)果比單眼級(jí)別更優(yōu)。
表4 基于單/雙眼級(jí)別不同輸出分支模型結(jié)果統(tǒng)計(jì)
單眼與雙眼級(jí)別多分支情況下每個(gè)類(lèi)別的分類(lèi)情況評(píng)價(jià)指標(biāo)對(duì)比如圖1 所示。 從準(zhǔn)確度來(lái)講對(duì)于正常眼(N)以及糖尿病視網(wǎng)膜病變(D)的分類(lèi)效果最差。
圖1 單眼或雙眼級(jí)別多任務(wù)學(xué)習(xí)模型每個(gè)類(lèi)別評(píng)價(jià)指標(biāo)對(duì)比
實(shí)驗(yàn)2 中,同樣參數(shù)條件下,對(duì)比雙眼級(jí)別多任務(wù)學(xué)習(xí)模型及其分類(lèi)效果。 分析loss 曲線及ROC曲線,如圖2,雙眼級(jí)別單分支模型未能成功收斂,效果十分不理想。 由此,模型訓(xùn)練結(jié)構(gòu)為多眼級(jí)別多分支結(jié)構(gòu)。
圖2 雙眼級(jí)別單分支模型訓(xùn)練
最終在迭代了總共32 次后,模型最佳結(jié)果各項(xiàng)指標(biāo)如表5,將其定義為基準(zhǔn)模型Resnet50_M(jìn)。
表5 Resnet50_M(jìn) 模型整體評(píng)估指標(biāo)
針對(duì)當(dāng)前所獲得的基準(zhǔn)模型Resnet50_M(jìn),進(jìn)一步調(diào)整參數(shù)來(lái)優(yōu)化,設(shè)計(jì)了以下方案:
①更改學(xué)習(xí)率衰減策略,將訓(xùn)練得到模型記為new_lr 觀察Resnet50_M(jìn) 模型loss 下降曲線。 僅調(diào)整學(xué)習(xí)率衰減策略,即始終保持3×10-4不變,Resnet50_M(jìn)模型訓(xùn)練時(shí)其他超參數(shù)設(shè)置均不改變,重新訓(xùn)練模型。
②更改loss 函數(shù)為Focal Loss,將訓(xùn)練得到模型命名為focal_loss。 與方案(1)中其余超參數(shù)保持一致,進(jìn)行訓(xùn)練,并且設(shè)置Focal Loss 中γ=1,α=1。
如表6,重新訓(xùn)練后,new_lr 模型的準(zhǔn)確率、AUC、F1-score、Jaccard 有所提升。 但是再進(jìn)一步采用Focal_Loss 方案后,部分指標(biāo)略微有些下降。
表6 Resnet50_M(jìn)/new_lr/focal_loss 模型評(píng)估指標(biāo)
從單個(gè)類(lèi)別的多項(xiàng)評(píng)估指標(biāo)來(lái)看,如圖3 所示,new_lr 以及focal_loss 效果均比Resnet50_M(jìn) 優(yōu)良。new_lr 以及focal_loss 模型查準(zhǔn)率較優(yōu),表明模型正樣本預(yù)測(cè)的準(zhǔn)確率較高,也代表對(duì)正樣本的“過(guò)濾能力”較佳。 對(duì)于不同類(lèi)別在敏感性評(píng)估前三種模型各有所長(zhǎng)。 使用Focal Loss 時(shí),效果略微下降。
圖3 Resnet50_M(jìn)/new_lr/focal_loss 在單類(lèi)別中評(píng)估指標(biāo)
本實(shí)驗(yàn)中,將SE 模塊添加至Resnet50 結(jié)構(gòu)中,記為SE_Resnet50_M(jìn),并嘗試更換zuiho 新的主干網(wǎng)絡(luò)為Xception 及孿生網(wǎng)絡(luò)。 訓(xùn)練數(shù)據(jù)集預(yù)處理方式都與其他設(shè)置與new_lr 模型基本相同,但由于內(nèi)存有限,batch size 只能設(shè)為8。 將學(xué)習(xí)率初始化為3×10-4,每迭代32 次后衰減為原來(lái)的0.2,即在loss下降較為平穩(wěn)時(shí)候,主動(dòng)調(diào)整學(xué)習(xí)率繼續(xù)訓(xùn)練。
由表7 可以發(fā)現(xiàn),SE-Resnet50_M(jìn) 使模型整體效果提升較大。 acc 和Jaccard 指數(shù)大幅度提升。 但Xception_M(jìn) 模型中,acc 下降較大,更換孿生網(wǎng)絡(luò)后模型未能擬合。
表7 Resnet50_M(jìn)/SE-Resnet50_M(jìn)/Xception_M(jìn)評(píng)估指標(biāo)
從圖4 看,SE_Resnet50_M(jìn) 在高血壓(H)上的查準(zhǔn)率、敏感性和f1-score 中出現(xiàn)了0 值,這說(shuō)明高血壓類(lèi)別較難正確分類(lèi)。
圖4 Resnet50_M(jìn)/SE-Resnet50_M(jìn)/Xception_M(jìn) 在單類(lèi)別中評(píng)估指標(biāo)
將Resnet50_M(jìn) 與SE_Resnet50_M(jìn) 使用加權(quán)平均法實(shí)現(xiàn)模型融合,如表8 所示,其中,α表示Resnet50_M(jìn)的權(quán)重,γ表示SE_Resnet50_M(jìn) 的權(quán)重,兩個(gè)模型在不同的權(quán)重比例下,得到結(jié)果為表8。
表8 不同權(quán)重比例下模型評(píng)估指標(biāo)
因此,在α=0.5,γ=0.5 時(shí)候,模型融合效果為最佳。 對(duì)比基準(zhǔn)網(wǎng)絡(luò)Resnet50_M(jìn),最終結(jié)果在其基礎(chǔ)上有所提升。
從單個(gè)類(lèi)別的結(jié)果來(lái)看,最終得到結(jié)果如表9所示。 從準(zhǔn)確度acc 來(lái)看,正常眼(N)和糖尿病(D)預(yù)測(cè)結(jié)果最差。 在本實(shí)驗(yàn)中,AUC 考慮了閾值變動(dòng)情況,為二分類(lèi)中最常用,評(píng)估價(jià)值最高的指標(biāo)。Gulshan 等利用Inception-v3 結(jié)構(gòu)在兩個(gè)數(shù)據(jù)集上分別進(jìn)行驗(yàn)證得到的AUC 分別為0.991 和0.990。
表9 多模型融合后單個(gè)類(lèi)別下模型評(píng)估指標(biāo)
本實(shí)驗(yàn)針對(duì)左右眼之間的相關(guān)性,提出了一種左右眼拼接的特征融合方法;針對(duì)視網(wǎng)膜圖像中的多種疾病多標(biāo)簽分類(lèi),提出了利用多任務(wù)學(xué)習(xí)構(gòu)建多分支模型的解決方法;為增強(qiáng)模型對(duì)病灶學(xué)習(xí)能力,引入了注意力機(jī)制來(lái)提高對(duì)疾病分類(lèi)的精度;采用多模型融合技術(shù),對(duì)不同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)進(jìn)行融合提升模型效果。
在確定模型架構(gòu)為“雙眼級(jí)別輸入-網(wǎng)絡(luò)-多分支輸出”的情況下,進(jìn)行參數(shù)優(yōu)化,得到基準(zhǔn)模型Resnet50_M(jìn)。 在對(duì)比實(shí)驗(yàn)中,發(fā)現(xiàn)注意力機(jī)制有利于特征的學(xué)習(xí),并且準(zhǔn)確率大幅度提升。 利用多模型融合技術(shù),綜合考量Resnet50_M(jìn) 與SE_Resnet50_M(jìn) 模型預(yù)測(cè)結(jié)果,準(zhǔn)確率提升了21.17%達(dá)到0.7103,AUC 提升了10.07%達(dá)到0.9458,F(xiàn)1-score 提高了4.620%達(dá)到0.9261,Jaccard 指數(shù)提高了36.94%達(dá)到0.6042。