尹雅晴,郭 瑩
(沈陽(yáng)工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,沈陽(yáng) 110870)
青光眼是僅次于白內(nèi)障的第二大致盲疾病,是導(dǎo)致不可逆性視力喪失的主要原因之一,又被稱(chēng)為“無(wú)聲的視力竊賊”[1]。在當(dāng)前的醫(yī)學(xué)檢查中,青光眼疾病的發(fā)展具有較強(qiáng)的隱蔽性,一旦確診,很難完全治愈;早期輔助診斷是避免青光眼失明的關(guān)鍵。雖然目前尚無(wú)成熟的青光眼診斷方法,但早期治療已被證明可將致盲率降低50%左右。因此,早期診斷出青光眼疾病并及時(shí)治療,可以進(jìn)一步控制疾病惡化,是預(yù)防青光眼疾病的必由之路。
近年來(lái),一些國(guó)內(nèi)外學(xué)者進(jìn)行了深入研究。文獻(xiàn)[2]提出一種基于集成學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)方法,使用熵采樣來(lái)選擇信息點(diǎn),優(yōu)于均勻采樣,同時(shí)降低了計(jì)算復(fù)雜度。付華柱等人[2]將視盤(pán)(OD)和視杯(OC)采用多標(biāo)簽深度網(wǎng)絡(luò)進(jìn)行聯(lián)合分割,然后計(jì)算CDR 值以驗(yàn)證青光眼的檢測(cè)。Abbas 等人[4]通過(guò)將眼底圖像輸入卷積神經(jīng)網(wǎng)絡(luò)(CNN)來(lái)提取各層相關(guān)特征,并采用有監(jiān)督的網(wǎng)絡(luò)來(lái)優(yōu)化模型提取特征過(guò)程,然后對(duì)比使用支持向量機(jī)(SVM)和Softmax 分類(lèi)器進(jìn)行青光眼分類(lèi),該方法需要對(duì)OD 和OC 區(qū)域進(jìn)行分割,因此不僅需要大量的圖像處理技術(shù),還需要具備專(zhuān)家知識(shí)來(lái)選擇最具鑒別能力的特征。為解決小樣本學(xué)習(xí)能力不足、分類(lèi)精度低等問(wèn)題,文 獻(xiàn) [5]采用深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu),對(duì)眼底圖像進(jìn)行青光眼檢測(cè),經(jīng)實(shí)驗(yàn),該方法在分類(lèi)性能上有所提高,但網(wǎng)絡(luò)結(jié)構(gòu)較復(fù)雜且耗時(shí)較長(zhǎng)。
根據(jù)現(xiàn)有研究,目前基于深度學(xué)習(xí)的青光眼診斷方法有了很大進(jìn)展,但仍存在一些問(wèn)題,需要大量的數(shù)據(jù)集進(jìn)行模型評(píng)估。與自然圖像相比,醫(yī)學(xué)中缺乏對(duì)大規(guī)模的青光眼數(shù)據(jù)集進(jìn)行臨床評(píng)估的測(cè)試。因此,為了更好地為青光眼診斷提供臨床輔助信息,在此設(shè)計(jì)一種模型,針對(duì)公開(kāi)的具有少量標(biāo)注的青光眼圖像進(jìn)行數(shù)據(jù)增強(qiáng)處理,然后利用遷移學(xué)習(xí)的思想對(duì)CNN 網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行青光眼診斷,使其能夠?qū)嶋H應(yīng)用于臨床系統(tǒng)。
為驗(yàn)證方法的可靠性和魯棒性,選取Drishti-GS1[6]和REFUGE[7]兩個(gè)公開(kāi)數(shù)據(jù)庫(kù)來(lái)驗(yàn)證模型的分類(lèi)性能。其中Drishti-GS1 數(shù)據(jù)庫(kù)包含101 張眼底圖像、70 張青光眼圖像、21 張正常眼,分辨率約2047×1760 像素,且每幅圖像由4 位專(zhuān)家對(duì)青光眼像素的CDR 值進(jìn)行注釋。REFUGE 數(shù)據(jù)庫(kù)包含1200 張眼底圖像、120 張青光眼圖像、1080 張正常眼,分辨率包含2124×2056 像素和1624×1624 像素。該數(shù)據(jù)庫(kù)包含用于青光眼識(shí)別的基于地面的真實(shí)視盤(pán)和視杯分割、黃斑定位的可靠參考標(biāo)準(zhǔn)。
為解決數(shù)據(jù)量過(guò)少的問(wèn)題,改善CNN 診斷青光眼方法的效果,提高模型的準(zhǔn)確性和魯棒性,設(shè)計(jì)對(duì)Drishti-GS1 數(shù)據(jù)庫(kù)和REFUGE 數(shù)據(jù)庫(kù)圖像分別采用多種圖像處理方法進(jìn)行數(shù)據(jù)擴(kuò)充,以避免出現(xiàn)過(guò)擬合情況,這些方法包括:
縮放:將原始圖像尺寸統(tǒng)一為540×540 像素;
平移:將圖像按上下左右4 個(gè)方向分別移動(dòng)20個(gè)像素;翻轉(zhuǎn):對(duì)圖像進(jìn)行水平、垂直、水平垂直翻轉(zhuǎn);旋轉(zhuǎn):將圖像在[0°,260°]區(qū)間內(nèi)以15°間隔進(jìn)行順時(shí)針旋轉(zhuǎn)。
通過(guò)前三種數(shù)據(jù)增強(qiáng)方法,每張圖像相當(dāng)于擴(kuò)充為9 倍;而使用上述四種數(shù)據(jù)增強(qiáng)方法,每張圖像相當(dāng)于擴(kuò)充為22 倍。采用不同的數(shù)據(jù)增強(qiáng)處理,Drishti-GS1 和REFUGE 數(shù)據(jù)庫(kù)由原始1201 張圖像分別擴(kuò)增為11709 張和41622 張。圖1 所示為擴(kuò)充后的眼底圖像示例。
圖1 數(shù)據(jù)庫(kù)增強(qiáng)圖像
原始Inception 網(wǎng)絡(luò)模型結(jié)構(gòu)使用1×1、2×2 和5×5 大小的卷積核來(lái)提取圖像不同尺度的特征,然后進(jìn)行特征融合[8]。然而卷積核越大,網(wǎng)絡(luò)參數(shù)量就越大,進(jìn)而加大計(jì)算成本。例如5×5 卷積核的參數(shù)量約1.2 億個(gè),計(jì)算量是2×2 卷積核的2.78 倍。
在Inception-V2 網(wǎng)絡(luò)模型中,通過(guò)優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)來(lái)降低參數(shù)計(jì)算量,用較小的n×1 卷積核代替原始的Inception 模型結(jié)構(gòu)中較大的2×2、5×5 卷積核。該模型主要從兩個(gè)方面對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了改進(jìn):一方面,該網(wǎng)絡(luò)結(jié)構(gòu)在原始的Inception 模型的基礎(chǔ)上,在卷積層中大量地使用降維,將二維的卷積核降解為一維的,降低了網(wǎng)絡(luò)參數(shù)量;另一方面,選取了25×25、17×17 和8×8 三種不同的結(jié)構(gòu)來(lái)加深網(wǎng)絡(luò)結(jié)構(gòu)對(duì)模塊進(jìn)行優(yōu)化,而前面還是普通的卷積層。此外,該網(wǎng)絡(luò)采用2×2、步長(zhǎng)為2 的卷積核進(jìn)行Maxpooling 運(yùn)算,實(shí)現(xiàn)對(duì)輸入圖像的大小壓縮,提取青光眼圖像的抽象特征。
在CNN 中,選取的網(wǎng)絡(luò)模型參數(shù)量越多,網(wǎng)絡(luò)訓(xùn)練的時(shí)間越長(zhǎng),有時(shí)甚至需要數(shù)周時(shí)間,而且從頭開(kāi)始訓(xùn)練一個(gè)網(wǎng)絡(luò)模型往往會(huì)遇到擬合或損失函數(shù)振蕩發(fā)散的情況。遷移學(xué)習(xí)方法[9]的引入可以利用已有的知識(shí)來(lái)解決目標(biāo)域中只有少量標(biāo)記數(shù)據(jù)樣本的問(wèn)題。此外,可以通過(guò)凍結(jié)前面的網(wǎng)絡(luò)層只微調(diào)后面的全連接層來(lái)減少網(wǎng)絡(luò)訓(xùn)練的參數(shù)量,而凍結(jié)的層數(shù)需要根據(jù)預(yù)訓(xùn)練網(wǎng)絡(luò)模型中的數(shù)據(jù)與所使用的新數(shù)據(jù)之間的差異來(lái)評(píng)估,網(wǎng)絡(luò)凍結(jié)層數(shù)越少,可以微調(diào)整的層數(shù)越多,可擬合新數(shù)據(jù)分布的參數(shù)越多。
因此,針對(duì)CNN 中存在的問(wèn)題,采用遷移學(xué)習(xí)方法選擇泛化能力強(qiáng)的模型,然后通過(guò)凍結(jié)前面的卷積層參數(shù),只微調(diào)最后一個(gè)全連接層的參數(shù)來(lái)減少大量的參數(shù)調(diào)整工作,減少訓(xùn)練模型所需的時(shí)間,加快模型的收斂速度,提高模型分類(lèi)精度。
2.2.1 網(wǎng)絡(luò)訓(xùn)練策略
首先,在大尺度自然圖像數(shù)據(jù)集(ImageNet)中預(yù)訓(xùn)練好Inception-V2 網(wǎng)絡(luò)模型,將數(shù)據(jù)擴(kuò)增后的兩個(gè)公開(kāi)的青光眼數(shù)據(jù)庫(kù)圖像輸入其中進(jìn)行訓(xùn)練,并將預(yù)訓(xùn)練得到的網(wǎng)絡(luò)各層的權(quán)重和偏差作為初始參數(shù),接著再用fine-tune 方法繼續(xù)訓(xùn)練網(wǎng)絡(luò)模型中的權(quán)重參數(shù),完成青光眼圖像的特征提取。
然后,根據(jù)青光眼圖像所需的分類(lèi)數(shù)量,微調(diào)網(wǎng)絡(luò)最后一個(gè)全連接層的參數(shù),即將Inception-V2網(wǎng)絡(luò)模型中最后一層的1000 個(gè)神經(jīng)元替換為兩個(gè)神經(jīng)元進(jìn)行眼底圖像中青光眼和正常眼的分類(lèi)。
最后,將網(wǎng)絡(luò)提取到的各種底層特征進(jìn)行融合并組成高級(jí)特征,用Softmax 分類(lèi)器進(jìn)行青光眼二分類(lèi)。如圖2 所示為基于遷移學(xué)習(xí)的CNN 采用Inception-V2 網(wǎng)絡(luò)模型進(jìn)行青光眼輔助診斷方法的訓(xùn)練策略。
圖2 基于遷移學(xué)習(xí)的CNN 網(wǎng)絡(luò)模型訓(xùn)練策略圖
2.2.2 網(wǎng)絡(luò)參數(shù)設(shè)置
在訓(xùn)練過(guò)程中,每運(yùn)行一次迭代(iteration),參數(shù)權(quán)值需要更新一次,每次更新都需要對(duì)batch_size個(gè)樣本進(jìn)行運(yùn)算學(xué)習(xí),再根據(jù)運(yùn)算結(jié)果對(duì)參數(shù)進(jìn)行一次調(diào)整。因此,批量大小的設(shè)置非常重要,它將影響模型的優(yōu)化程度和速度。設(shè)置過(guò)小會(huì)導(dǎo)致效率低下和無(wú)法收斂。當(dāng)它增加到一定程度時(shí),下降的方向變化很小,這就需要大量的內(nèi)存支持,計(jì)算方法為:
式中,n 為總的樣本量,epoch 為學(xué)習(xí)時(shí)期,batch_size是批尺寸。
在CNN 訓(xùn)練過(guò)程中,采用動(dòng)量法(Momentum)對(duì)模型進(jìn)行優(yōu)化。該方法解決了隨機(jī)梯度下降法中每次迭代的梯度都含有較大噪聲的問(wèn)題,避免了網(wǎng)絡(luò)梯度方向影響網(wǎng)絡(luò)學(xué)習(xí)速率的問(wèn)題。但學(xué)習(xí)率需要逐步降低,否則模型無(wú)法收斂。在此,將學(xué)習(xí)率手動(dòng)設(shè)置為從0.01 開(kāi)始,訓(xùn)練50 個(gè)epoch,在Drishti-GS1 數(shù)據(jù)庫(kù)訓(xùn)練集包含的1940 張圖像和REFUGE數(shù)據(jù)庫(kù)訓(xùn)練集包含的22040 張圖像中,共24980 張訓(xùn)練圖像,每個(gè)epoch 迭代780 次,經(jīng)過(guò)29000 次迭代后下降到0.001。同時(shí),將batch_size 設(shè)置為22,即1 次迭代使用的樣本量為22,Momentum 參數(shù)設(shè)置為0.9,Dropout 策略的比率設(shè)置為0.75。
實(shí)驗(yàn)選取用基于Pycharm 環(huán)境的Python 版本2.6,OpenCV 版本2.2.0,使用一個(gè)用Python 編寫(xiě)的以TensorFlow 為后端的Keras 2.2.5 版本的開(kāi)源深度學(xué)習(xí)框架,通過(guò)連接阿里云服務(wù)器進(jìn)行環(huán)境配置。為了更加客觀地評(píng)價(jià)模型的分類(lèi)性能,采用基于混淆矩陣得出的接受者操作特征曲線即ROC 曲線,用來(lái)評(píng)價(jià)模型的預(yù)測(cè)能力,此外使用準(zhǔn)確率(ACC)及ROC 下曲線面積值(AUC)作為評(píng)價(jià)指標(biāo),對(duì)模型性能進(jìn)行評(píng)估。精確度Accuracy 是青光眼分類(lèi)性能的總體度量,即眼底圖像分類(lèi)正確的樣本數(shù)與總體樣本數(shù)之比,ACC 值越高表示青光眼分類(lèi)的準(zhǔn)確率越高。AUC 值可以用來(lái)衡量模型分類(lèi)性能的優(yōu)劣,分類(lèi)器的AUC 值越大,分類(lèi)性能越好。相關(guān)計(jì)算如以下各式來(lái)實(shí)現(xiàn):
其中,TP 是真陽(yáng)性,TN 是真陰性,代表所有眼底圖像中被正確分類(lèi)的樣本數(shù)量。
在ROC 曲線中,縱軸為真陽(yáng)性率(TPR),即預(yù)測(cè)正確的青光眼樣本與青光眼總數(shù)量之比;橫軸為假陽(yáng)性率(FPR),即預(yù)測(cè)錯(cuò)誤的青光眼與正常眼總數(shù)量之比。TPR 值越大,表示預(yù)測(cè)青光眼類(lèi)中實(shí)際為青光眼類(lèi)越多;而FPR 值越大,表示預(yù)測(cè)青光眼類(lèi)中實(shí)際為正常眼類(lèi)越多。在ROC 曲線中(0,1)坐標(biāo)點(diǎn)的性能最好,越靠攏該點(diǎn),越偏離對(duì)角線y=x,得到的AUC 值越大,越能表明該模型的青光眼圖像分類(lèi)性能良好。
為了使CNN 網(wǎng)絡(luò)模型能更好地提取青光眼特征、提高后續(xù)青光眼分類(lèi)性能,在此對(duì)Drishti-GS1和REFUGE 兩個(gè)數(shù)據(jù)庫(kù)的原始圖像樣本通過(guò)數(shù)據(jù)擴(kuò)增方法來(lái)增加眼底圖像數(shù)量,使之包含更多的青光眼特征。
此外,針對(duì)小數(shù)據(jù)集圖像進(jìn)行CNN 網(wǎng)絡(luò)模型訓(xùn)練時(shí),需要對(duì)數(shù)據(jù)集進(jìn)行劃分。一般將訓(xùn)練集、驗(yàn)證集和測(cè)試集按6:2:2 的比例進(jìn)行劃分。表1 所示為實(shí)驗(yàn)采用的兩個(gè)數(shù)據(jù)庫(kù)使用不同的數(shù)據(jù)增強(qiáng)方法分別擴(kuò)增9 倍和22 倍后的數(shù)據(jù)對(duì)比,并且按比例對(duì)擴(kuò)充后的數(shù)據(jù)集重新劃分。如表2 所示為實(shí)驗(yàn)測(cè)試集樣本分布情況。
表1 擴(kuò)增不同倍數(shù)后的實(shí)驗(yàn)數(shù)據(jù)單位:幅
表2 實(shí)驗(yàn)測(cè)試集樣本分布情況單位:幅
為了避免由于青光眼或正常眼分布偏差產(chǎn)生的過(guò)度適應(yīng),對(duì)擴(kuò)增后數(shù)據(jù)庫(kù)的訓(xùn)練集和驗(yàn)證集圖像采用交叉驗(yàn)證策略。圖2 所示為訓(xùn)練50 個(gè)epoch 的訓(xùn)練集和驗(yàn)證集的損失率變化情況。由可知,數(shù)據(jù)擴(kuò)增22 倍后的網(wǎng)絡(luò)損失率下降速度要比擴(kuò)增9 倍后的網(wǎng)絡(luò)損失率下降速度快,且優(yōu)于數(shù)據(jù)擴(kuò)增9 倍后的收斂性能。
圖3 實(shí)驗(yàn)訓(xùn)練集和驗(yàn)證集的損失率
為驗(yàn)證隨著數(shù)據(jù)量的不斷擴(kuò)增,Inception-V2網(wǎng)絡(luò)模型青光眼圖像分類(lèi)法的性能越好,分別對(duì)數(shù)據(jù)擴(kuò)增9 倍和22 倍后的兩個(gè)數(shù)據(jù)庫(kù)中測(cè)試集樣本進(jìn)行青光眼測(cè)試。表2 所示為基于遷移學(xué)習(xí)CNN 的青光眼診斷方法分別對(duì)Drishti-GS1 和REFUGE 數(shù)據(jù)庫(kù)在不同數(shù)據(jù)擴(kuò)增后的測(cè)試集圖像上進(jìn)行青光眼測(cè)試并計(jì)算平均準(zhǔn)確率和AUC 值得到最終的測(cè)試結(jié)果。
如圖4 所示為使用該方法后在兩個(gè)數(shù)據(jù)庫(kù)中分別搭配不同數(shù)據(jù)擴(kuò)增方案得到的ROC 曲線及AUC值對(duì)比。
圖4 不同數(shù)據(jù)測(cè)試結(jié)果對(duì)比
表3 實(shí)驗(yàn)測(cè)試結(jié)果
由圖可知,數(shù)據(jù)擴(kuò)充22 倍后的模型分類(lèi)性能要優(yōu)于擴(kuò)充9 倍后的模型分類(lèi)性能。這也證實(shí)了在深度學(xué)習(xí)網(wǎng)絡(luò)中對(duì)數(shù)據(jù)少且標(biāo)注較少的數(shù)據(jù)集進(jìn)行數(shù)據(jù)擴(kuò)充的效果,此法確實(shí)有利于提高模型的泛化能力和分類(lèi)性能。
由于REFUGE 數(shù)據(jù)庫(kù)沒(méi)有普遍被用于青光眼診斷的研究,在此對(duì)現(xiàn)有深度學(xué)習(xí)方法診斷青光眼與本研究方法在Drishti-GS1 眼底圖像數(shù)據(jù)庫(kù)的準(zhǔn)確率和AUC 值進(jìn)行對(duì)比分析,如表4 所示。
表4 不同深度學(xué)習(xí)診斷青光眼方法對(duì)比
由表4 可知,與現(xiàn)有的一些方法相比,本方法數(shù)據(jù)擴(kuò)增22 倍后的準(zhǔn)確率優(yōu)于基于集成學(xué)習(xí)的方法,僅次于基于深度形態(tài)特征估計(jì)青光眼診斷的方法,但該方法數(shù)據(jù)擴(kuò)增22 倍的AUC 值與文獻(xiàn)[10]達(dá)到相同效果,表明本方法具有較好的分類(lèi)性能。
基于眼底圖像和專(zhuān)家標(biāo)注的青光眼癥狀標(biāo)簽,提出利用深度學(xué)習(xí)中卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練Inception-V2 網(wǎng)絡(luò)模型,提取青光眼特征,借助計(jì)算機(jī)系統(tǒng)構(gòu)建相應(yīng)的分類(lèi)器,對(duì)數(shù)據(jù)擴(kuò)增不同倍數(shù)的青光眼圖像庫(kù)進(jìn)行判別。實(shí)驗(yàn)結(jié)果表明,隨著數(shù)據(jù)量增加,該網(wǎng)絡(luò)模型的分類(lèi)性能有提高的趨勢(shì),且與現(xiàn)有一些方法相比,該方法滿(mǎn)足基于眼底圖像輔助診斷青光眼疾病的要求,對(duì)進(jìn)一步研究青光眼診斷系統(tǒng)具有重要意義和實(shí)用性。