白杰,張 賽,李艷萍
(太原理工大學(xué)信息與計算機(jī)學(xué)院,山西榆次 030600)
糖尿病視網(wǎng)膜病變(DR)是導(dǎo)致人類失明的主要因素之一。在目前臨床診斷中,該疾病主要依賴眼科醫(yī)生對彩色眼底圖像進(jìn)行詳查后對患者的病情進(jìn)行評估[1]。大量的DR 患者受限于糖尿病患者數(shù)量龐大、地區(qū)醫(yī)療資源匱乏,無法得到及時的診斷與治療,從而錯過了最佳的治療機(jī)會,最終造成不可逆轉(zhuǎn)的視力損傷乃至失明的嚴(yán)重后果。此外,人工診斷的效果極度依賴臨床醫(yī)生的診治經(jīng)驗,部分醫(yī)生經(jīng)驗不足等原因造成的誤診、漏診時有發(fā)生[2]。因此,提出一種利用圖像處理、模式識別以及機(jī)器學(xué)習(xí)等技術(shù)對彩色眼底圖像進(jìn)行自動、準(zhǔn)確處理與分析的算法,是一項十分迫切的任務(wù)[3]。
現(xiàn)有DR 檢測診斷算法大致分為兩類,第一類是基于傳統(tǒng)圖像特征提取方法,如文獻(xiàn)[4]利用形態(tài)學(xué)方法提取眼底圖像的病變特征,結(jié)合機(jī)器學(xué)習(xí)中SVM 分類器進(jìn)行分類;第二類是基于卷積神經(jīng)網(wǎng)絡(luò)的方法,如文獻(xiàn)[5],通過遷移學(xué)習(xí)引入ResNet 與Inception-ResNet-v2 網(wǎng)絡(luò)模型自動診斷DR 病變程度,在Diabetic Retinopathy Detection 競賽數(shù)據(jù)集上驗證得到二次加權(quán)(Kappa)值為0.76。文獻(xiàn)[6]利用不同卷積神經(jīng)網(wǎng)絡(luò)做對比實驗,同樣在Diabetic Retinopathy Detection 競賽數(shù)據(jù)集上驗證,二次加權(quán)(Kappa)值達(dá)到了0.786。
針對高質(zhì)量無標(biāo)簽眼底圖像利用率較低及DR不同病變等級之間特征差異小、模型難以捕捉所有分類微細(xì)節(jié)而造成診斷效率欠佳的問題,文中提出了PL-EfficientNet(Pseudo-Label EfficientNet) DR 檢測算法,引入高效網(wǎng)絡(luò)模型[7],通過半監(jiān)督偽標(biāo)簽技術(shù)[8],將無標(biāo)簽眼底圖像數(shù)據(jù)加入訓(xùn)練數(shù)據(jù)集,既有效防止過擬合的發(fā)生,又提高了模型的檢測及診斷效率,同時也避免了高質(zhì)量眼底圖像數(shù)據(jù)的浪費。
為了提高DR 分類模型的診斷效率,文中將遷移學(xué)習(xí)技術(shù)引入高效模型,由于實驗使用的眼底圖像數(shù)據(jù)集與ImageNet 數(shù)據(jù)集特征差異較大,因此對模型重新初始化訓(xùn)練。使用高效模型系統(tǒng)地研究了模型縮放,通過使用簡單而高效的復(fù)合系數(shù)平衡網(wǎng)絡(luò)深度、寬度和分辨率,以實現(xiàn)更好的性能。與以往卷積神經(jīng)網(wǎng)絡(luò)相比,高效模型效率更佳[9]。
一個卷積網(wǎng)絡(luò)層i可以定義為一個函數(shù)Yi=Fi(Xi),其中Fi是運算函數(shù),Yi是輸出張量,Xi是輸入張量;張量維度為其中Hi和Wi是空間維度(分辨率),Ci是通道維度(寬度)。一個卷積網(wǎng)絡(luò)層N用組合表示為:
在實際應(yīng)用中,卷積網(wǎng)絡(luò)層通常被劃分為多個階段,每個階段的所有層共享相同的架構(gòu)。例如,ResNet 有五個階段,每個階段的所有層都具有相同的卷積類型,但第一層執(zhí)行向下采樣。因此,可以將卷積神經(jīng)網(wǎng)絡(luò)定義為:
式(2)中,表示在階段i中Fi被重復(fù)Li次,表示第i層輸入張量的類型,卷積空間維度逐漸縮小,但通道維度是擴(kuò)展的。設(shè)計卷積網(wǎng)絡(luò)層主要用于尋找最佳的層架構(gòu)Fi,模型縮放試圖擴(kuò)展網(wǎng)絡(luò)長度Li、寬度Ci和分辨率Wi、Hi,但不更改基線網(wǎng)絡(luò)中預(yù)定義的Fi。通過固定Fi,模型縮放簡化了新的資源約束的設(shè)計問題,但它仍然有一個大的設(shè)計空間,以探索不同的Li、Ci、Hi、Wi的每一層。為了進(jìn)一步縮小設(shè)計空間,使用復(fù)合系數(shù)φ統(tǒng)一擴(kuò)展網(wǎng)絡(luò)寬度、深度和分辨率,如式(3)-(5)所示:
其中,α、β、γ是常量,由一個小網(wǎng)格搜索,分別代表深度、長度和寬度,φ為規(guī)定的系數(shù),用來擴(kuò)展網(wǎng)絡(luò)大小。約束如式(6)、(7)所示:
當(dāng)前DR 檢測算法中,多數(shù)學(xué)者采用監(jiān)督學(xué)習(xí)進(jìn)行研究,利用改進(jìn)的深度卷積網(wǎng)絡(luò)實現(xiàn)較優(yōu)的DR 檢測分類結(jié)果,而半監(jiān)督學(xué)習(xí)訓(xùn)練數(shù)據(jù)時,同時存在標(biāo)簽數(shù)據(jù)和無標(biāo)簽數(shù)據(jù)。偽標(biāo)簽技術(shù)則是使用無標(biāo)簽數(shù)據(jù)提高泛化性能。聚類假設(shè)指出,決策邊界應(yīng)位于低密度區(qū)域以提高泛化性能,而概率較高的數(shù)據(jù)點相同類別的可能性較大,因此偽標(biāo)簽具有較高的可信度[8]。偽標(biāo)簽流程如圖1 所示。
圖1 偽標(biāo)簽流程圖
為了提高算法的普遍適用性,實驗使用53 576 幅高質(zhì)量無標(biāo)簽眼底圖像,其標(biāo)簽由完成預(yù)訓(xùn)練的EfficientNet-b4 及EfficientNet-b5 模型按不同權(quán)重預(yù)測得到。不同病變等級眼底圖像數(shù)量及采樣后各病變等級眼底圖像數(shù)量如表1 所示。
表1 預(yù)測無標(biāo)簽數(shù)據(jù)病變等級
由表1 可知,預(yù)測得到的眼底圖像各病變等級圖像數(shù)量分布極不平衡,針對這一問題,實驗采用欠采樣抽樣方式平衡各病變等級圖像數(shù)量。
實驗使用Kaggle國際競賽中的Diabetic Retinopathy Detection(DR 2015)、Aptos 2019 Blindness Detection(DR 2019)競賽數(shù)據(jù)集,其中DR 2015 數(shù)據(jù)集來自于免費視網(wǎng)膜篩選平臺EyePacs,包括88 702 幅高分辨率彩色眼底圖像[10]。DR 2019 數(shù)據(jù)集來自于印度Aravind 眼科醫(yī)院,含有高質(zhì)量彩色眼底圖像5 580幅[11]。根據(jù)DR 不同病變類型,眼底圖像分為非增殖性糖尿病視網(wǎng)膜病(NPDR),如圖2(a)-(d)所示,以及增殖性糖尿病視網(wǎng)膜病(PDR),圖2(e)所示。
圖2 糖尿病視網(wǎng)膜病變圖像
為了解決眼底圖像中存在的偽影、失焦以及曝光不足或曝光過度等影響圖像像素強(qiáng)度值和引起誤差變化等情況,對原始數(shù)據(jù)集所有彩色眼底圖像進(jìn)行預(yù)處理[12]。
眼底圖像歸一化預(yù)處理過程:首先剔除損壞圖像,去除無信息黑色背景邊緣,對亮度不一的圖像進(jìn)行亮度均衡、對比度均衡處理[12]。實驗將圖像輸入尺寸設(shè)置為256×256 像素。DR 圖像歸一化預(yù)處理前后對比圖如圖3 所示。
圖3 歸一化預(yù)處理前后DR圖像對比圖
針對數(shù)據(jù)集中各病變等級標(biāo)簽眼底圖像數(shù)量分布不平衡(如圖4 所示)的問題,采用數(shù)據(jù)增強(qiáng)方法擴(kuò)充數(shù)據(jù),從而提高模型的泛化性能。將圖像隨機(jī)旋轉(zhuǎn)(-180°,180°),同時進(jìn)行水平、垂直翻轉(zhuǎn)及移動,增加圖像數(shù)量少的樣本數(shù)量,解決數(shù)據(jù)不平衡的問題[13]。
圖4 DR不平衡數(shù)據(jù)分布圖
Kappa 值是評價判斷一致性程度指標(biāo),同時也是描述診斷一致性較為理想的指標(biāo),在臨床試驗中得到廣泛應(yīng)用[14]。在國際性競賽中,平方加權(quán)值是評估模型的主要指標(biāo),它將線性加權(quán)的權(quán)值平方,放大距離大的兩個類別的判斷不一致程度:
其中,i、j代表類別編號,其差值代表兩個類別的距離。N為類別總數(shù),Wi,j代表放大的平方差值,Oi,j代表將第i類判別為第j類的個數(shù),Ei,j代表真實列表,由公式計算可得到平方加權(quán)Kappa 值(k),實驗采用k值作為模型參考指標(biāo)。
為了使模型更加充分學(xué)習(xí)到眼底圖像深層次細(xì)節(jié)信息,實驗對眼底圖像進(jìn)行預(yù)處理后通過數(shù)據(jù)增強(qiáng)擴(kuò)充數(shù)據(jù),重新初始化訓(xùn)練EfficientNet-b4 及EfficientNet-b5 模型,并使用DR 2019 標(biāo)簽數(shù)據(jù)進(jìn)行微調(diào),利用模型較優(yōu)性能預(yù)測DR 2015 測試集中53 576 幅無標(biāo)簽眼底圖像所對應(yīng)的標(biāo)簽,之后結(jié)合標(biāo)簽數(shù)據(jù)二次訓(xùn)練得到最優(yōu)模型及參數(shù)。
實驗 在Win10系統(tǒng)、GeForce GT-X 1080 Ti顯卡、Pytorch-GPU上進(jìn)行。采用CrossEntropyLoss 損失函數(shù)、SGD 優(yōu)化器,初始學(xué)習(xí)率設(shè)置為0.001,K 折交叉驗證設(shè)置為3 折,Epoch 設(shè)置為150。
1)高效模型與其他模型對比
為了驗證高效模型效率優(yōu)于其他先進(jìn)模型以及進(jìn)一步得出偽標(biāo)簽技術(shù)可以有效提高模型診斷效率的結(jié)論,設(shè)置多組對比實驗,各模型所得k值如表2所示。由表中數(shù)據(jù)可知,在相同實驗環(huán)境下,各實驗?zāi)P途〉幂^優(yōu)性能,但是EfficientNet 系列模型整體優(yōu)于RegNetY1_6GF 及其他模型,因此采用EfficientNet 系列模型進(jìn)行后續(xù)實驗。與此同時,證實了偽標(biāo)簽技術(shù)可有效優(yōu)化EfficientNet 系列模型性能,既提高了眼底圖像使用效率,又提升了檢測算法診斷準(zhǔn)確性。
表2 高效模型與其他模型k 值對比
2)與其他先進(jìn)算法對比
為了證實所提算法在糖尿病視網(wǎng)膜病變檢測中的先進(jìn)性與有效性,使用k值作為評估指標(biāo),將所提算法與文獻(xiàn)[5-6,11,15-16]進(jìn)行比較,結(jié)果如表3 所示。所有算法均建立在Kaggle 公開競賽數(shù)據(jù)集上進(jìn)行驗證,所提算法k值達(dá)到0.918,優(yōu)于其他先進(jìn)算法,并優(yōu)于DR 2015、DR 2019 競賽中的部分模型,證實該算法在DR 檢測中,可以得到更高的診斷準(zhǔn)確率。
表3 文中模型與其他先進(jìn)模型k 值對比
文中提出PL-EfficientNet糖尿病視網(wǎng)膜病變檢測算法,基于高效網(wǎng)絡(luò)與偽標(biāo)簽技術(shù),為了克服DR不同病變等級之間特征差異小,模型難以捕捉分類微細(xì)節(jié)而造成效率欠佳以及高質(zhì)量無標(biāo)簽眼底圖像利用率低的問題,選用重新初始化權(quán)重的高效網(wǎng)絡(luò)模型,更容易提取眼底圖像病灶特征。利用偽標(biāo)簽技術(shù)融合無標(biāo)簽數(shù)據(jù),有效抑制模型過擬合,優(yōu)化模型性能。與其他先進(jìn)算法相比,該算法k值更優(yōu),模型魯棒性更佳,因此文中所提算法在實際臨床診斷應(yīng)用中比其他方法更具潛力。在后續(xù)工作中,將繼續(xù)改進(jìn)及完善該算法,實現(xiàn)更高的檢測診斷效率,并擴(kuò)展其使用領(lǐng)域。