陳亞浩 張 東
(鄭州大學(xué)河南省超級(jí)計(jì)算中心信息工程學(xué)院 河南 鄭州 450000) 2(浪潮電子信息產(chǎn)業(yè)股份有限公司 山東 濟(jì)南 250101)
視覺(jué)信息是人類(lèi)獲取外部信息的主要來(lái)源,感知外部世界的大部分信息都要靠眼睛。目前,世衛(wèi)組織已經(jīng)確定眼部的健康與否是人類(lèi)三大生存質(zhì)量問(wèn)題之一[1]。眼部疾病的不可逆失明問(wèn)題嚴(yán)重影響了人們的生活質(zhì)量。隨著醫(yī)學(xué)影像分析算法的不斷發(fā)展,計(jì)算機(jī)算力、存儲(chǔ)能力的不斷增強(qiáng),通過(guò)對(duì)彩色眼底圖像的分析,可以盡早預(yù)防因糖尿病、青光眼、白內(nèi)障、許多其他原因引起的眼部疾病?,F(xiàn)階段,通過(guò)彩色眼底圖片進(jìn)行眼部疾病篩查的主要方式還是依賴醫(yī)生的人工判斷,此項(xiàng)工作不僅耗時(shí)耗力,而且對(duì)醫(yī)生的臨床經(jīng)驗(yàn)要求極高。因此,用有效的方法檢測(cè)眼部疾病是一個(gè)很有現(xiàn)實(shí)意義的課題。
在深度學(xué)習(xí)出現(xiàn)之前,傳統(tǒng)的圖像分類(lèi)[2]識(shí)別算法在實(shí)施的過(guò)程中比較繁瑣、效率低下、準(zhǔn)確率不高,同時(shí)很多方法具有一定的局限性,近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)得到了研究人員的廣泛關(guān)注,并且提出了Alexnet[3]、GoogLeNet[4]、ResNet[5]、VGG[6]等先進(jìn)模型,此類(lèi)模型能夠從大量的樣本中自動(dòng)學(xué)習(xí)有用特征,具有較高的準(zhǔn)確率。針對(duì)眼底彩照的分類(lèi)識(shí)別任務(wù),很多學(xué)者基于卷積神經(jīng)網(wǎng)絡(luò)嘗試了各種方法并取得了一定的研究成果。丁蓬莉等[7]提出CompactNet對(duì)眼底圖像進(jìn)行識(shí)別分類(lèi),但由于實(shí)驗(yàn)樣本有限,網(wǎng)絡(luò)在訓(xùn)練的過(guò)程中并沒(méi)有充分提取到相關(guān)特征,導(dǎo)致特征丟失,因此分類(lèi)準(zhǔn)確率并不高。龐浩[8]提出了一個(gè)多分支結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)用于彩色眼底圖像分類(lèi),主要將GoogleNet、VGGNet等作為特征提取網(wǎng)絡(luò),然后緊接著使用一個(gè)兩級(jí)CNN對(duì)提取的特征進(jìn)行分類(lèi)從而實(shí)現(xiàn)對(duì)彩色眼底圖像的檢測(cè)。Raghavendra等[9]設(shè)計(jì)一個(gè) 18 層的卷積神經(jīng)網(wǎng)絡(luò),經(jīng)過(guò)有效訓(xùn)練提取特征之后進(jìn)行測(cè)試分類(lèi)。Chai等[10]提出一種多分支神經(jīng)網(wǎng)絡(luò)(MB-NN)模型,利用該模型從圖像中充分提取深層特征并結(jié)合醫(yī)學(xué)領(lǐng)域知識(shí)實(shí)現(xiàn)分類(lèi)。徐至研[11]提出的雙模態(tài)深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)模型將年齡相關(guān)性黃斑病變的二分類(lèi)準(zhǔn)確率提高至87.4%。黃瀟等[12]提出的基于Inception-v3與SVM 結(jié)合的機(jī)器學(xué)習(xí)算法將眼底彩照二分類(lèi)準(zhǔn)確率提高至90.22%。
目前彩色眼底圖像的分類(lèi)工作已經(jīng)有了比較深入的研究并且取得了不錯(cuò)的成果,但是在病變分類(lèi)準(zhǔn)確率方面依舊達(dá)不到臨床要求。因此,本文提出一種基于深度殘差網(wǎng)絡(luò)的眼底彩色圖像分類(lèi)識(shí)別算法,為了提取更具有代表性的特征,對(duì)彩色眼底圖像進(jìn)行DSP-Fs眼底彩照數(shù)據(jù)集預(yù)處理流程,使用拉普拉斯濾波突出不同眼底彩色圖片的特點(diǎn),然后選擇ResNet50作為主干網(wǎng)絡(luò)結(jié)構(gòu),通過(guò)改進(jìn)和微調(diào)實(shí)現(xiàn)對(duì)眼部疾病患者和正常人眼底圖像的判別。該算法與其他的分類(lèi)識(shí)別算法相比,具有更好的分類(lèi)識(shí)別效果。
本文提出一種基于ResNet的眼底彩色圖像分類(lèi)識(shí)別算法,整體的框架如圖1所示,該算法由三部分組成:基于DSP-Fs的彩色眼底圖像預(yù)處理、基于ResNet的特征提取和眼底彩照自動(dòng)進(jìn)行正異常分類(lèi)。
圖1 彩色眼底圖像分類(lèi)流程
在本文對(duì)彩色眼底圖像判斷是否正常的二分類(lèi)任務(wù)中,第一步是對(duì)圖像進(jìn)行預(yù)處理操作。采用的是DSP-Fs預(yù)處理流程,將其處理結(jié)果作為深度殘差網(wǎng)絡(luò)的輸入,提取深層次的特征,最后將提取到的特征送入分類(lèi)器進(jìn)行最后的分類(lèi),從而實(shí)現(xiàn)彩色眼底圖像的正異常識(shí)別。
由于獲取的原始數(shù)據(jù)集存在鏡頭污染、尺寸不統(tǒng)一、背景過(guò)多、樣本分布不均勻等問(wèn)題,若直接將數(shù)據(jù)集輸入模型進(jìn)行訓(xùn)練,所得結(jié)果將不僅沒(méi)有研究?jī)r(jià)值而且沒(méi)有意義。因此為了使此研究更有研究?jī)r(jià)值,訓(xùn)練模型能夠獲得更高的準(zhǔn)確率,就需要對(duì)原始眼底彩色圖片數(shù)據(jù)集進(jìn)行諸多步驟的預(yù)處理操作。本文提出針對(duì)彩色眼底圖像的DSP-Fs預(yù)處理流程,具體如圖2所示。其預(yù)處理步驟為:首先對(duì)圖片進(jìn)行D處理操作:將無(wú)使用價(jià)值的眼底彩照從原始數(shù)據(jù)集中刪除,如圖3(a)所示;然后進(jìn)行S化處理:將數(shù)據(jù)集中所有圖片中的眼球做外切裁剪處理,如圖3(b)所示;再使用opencv對(duì)圖片S化處理之后的方形圖片進(jìn)行224×224、448×448,或者N×N多種規(guī)格的圖片壓縮處理,如圖3(b)所示;最后壓縮處理后的圖片進(jìn)行多維度濾波器圖形圖像處理,結(jié)果如圖3(c)所示,(目前在Fs盒中我們加入了Laplacian、銳化濾波、黑白二值、黑白二值反轉(zhuǎn)等濾波)。
圖2 預(yù)處理流程
(a) D處理
在1.1節(jié)關(guān)于眼底圖像的預(yù)處理過(guò)程中,采用Laplacian濾波[12],運(yùn)用拉普拉斯算子來(lái)增強(qiáng)圖像的細(xì)節(jié),找到圖像的邊緣。面對(duì)有噪音增強(qiáng)的情況,我們可以在圖片銳化前對(duì)要使用的圖像進(jìn)行平滑處理。Laplacian濾波與圖像某個(gè)像素的周?chē)袼氐酱讼袼氐耐蛔兂潭扔嘘P(guān)。
拉普拉斯算子定義:
(1)
該二階導(dǎo)數(shù)近似為:
(2)
(3)
因而有
▽2f=[f(x+1,y)+f(x-1,y)
f(x,y+1),f(x,y-1)]-4f(x,y)
(4)
通過(guò)卷積圖像,該表達(dá)式可在圖像中的所有點(diǎn)(x,y)處實(shí)現(xiàn):
(5)
至于對(duì)角線元素,可用以下掩模來(lái)實(shí)現(xiàn):
(6)
用來(lái)增強(qiáng)圖像的拉普拉斯算子基本公式如下:
g(x,y)=f(x,y)+c[▽2f(x,y)]
(7)
式中:f(x,y)為輸入圖像;g(x,y)為處理后增強(qiáng)的圖像;若掩模的中心系數(shù)為正,我們?nèi)=1,若不為正,我們?nèi)=-1。經(jīng)過(guò)微分運(yùn)算,圖片常量區(qū)域轉(zhuǎn)化為0,同時(shí)使圖片銳化。
眾所周知,在深度學(xué)習(xí)技術(shù)不斷發(fā)展的今天,許多網(wǎng)絡(luò)結(jié)構(gòu)在ImageNet競(jìng)賽中脫穎而出,取得了令人矚目的成績(jī),例如VGGNet、Google、NetResNet等。其中,作為里程碑式模型的ResNet一經(jīng)出世,就在競(jìng)賽中獲得了圖像分類(lèi)、定位、檢測(cè)三個(gè)項(xiàng)目的冠軍。同時(shí)近些年來(lái),ResNet網(wǎng)絡(luò)在工業(yè)中的應(yīng)用日漸成熟,應(yīng)用領(lǐng)域也在逐步擴(kuò)大,所以,本文算法的主干網(wǎng)絡(luò)選用ResNet,實(shí)現(xiàn)對(duì)眼底彩色圖片進(jìn)行特征提取。
ResNet最主要的貢獻(xiàn)在于提出的殘差學(xué)習(xí)的思路,這種殘差結(jié)構(gòu)解決了梯度在深度網(wǎng)絡(luò)中方向傳播時(shí)可能會(huì)遇到的梯度消失的問(wèn)題[13]。即便是非常深的網(wǎng)絡(luò)也能夠得到很好的訓(xùn)練,而且層數(shù)加深之后網(wǎng)絡(luò)的效果更好。殘差學(xué)習(xí)單元改變了ResNet網(wǎng)絡(luò)學(xué)習(xí)的目標(biāo),網(wǎng)絡(luò)中直連通道的加入,使原始輸入的信息允許直接傳到后面層中。假設(shè)卷積神經(jīng)網(wǎng)絡(luò)的輸入是x,經(jīng)過(guò)處理后輸出H(x),如果將x傳入輸出作為下一段網(wǎng)絡(luò)的初始結(jié)果,我們學(xué)習(xí)的目標(biāo)就變?yōu)镕(x)=H(x)-x,具體如圖4所示。
圖4 ResNet的殘差學(xué)習(xí)單元
ResNet有不同的網(wǎng)絡(luò)層數(shù),在本文中,主要選擇了ResNet34、ResNet50、ResNet101作為主干網(wǎng)絡(luò)來(lái)進(jìn)行眼底圖像的特征提取效果對(duì)比。它們具體的網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
表1 不同層數(shù)時(shí)的網(wǎng)絡(luò)配置
針對(duì)具體的彩色圖像的分類(lèi)識(shí)別任務(wù),將最后全連接層改為兩個(gè)神經(jīng)元,然后送入分類(lèi)器,便于后續(xù)的分類(lèi)。
本實(shí)驗(yàn)依托于河南省超級(jí)計(jì)算機(jī)中心,采用目前主流的深度學(xué)習(xí)框架Pytorch作為開(kāi)發(fā)環(huán)境,硬件配置為:GPU:Nvidia GeForce GTX 1660,內(nèi)存:24 GB,顯存:6 GB。軟件環(huán)境:CUDA10.2,CUD NN7.6,Python 3.6。
實(shí)驗(yàn)中所使用到的數(shù)據(jù)集為北京大學(xué)“智慧之眼”國(guó)際眼底圖像智能識(shí)別競(jìng)賽公布的眼底彩照數(shù)據(jù)集(ODIR-5K),包含5 000名患者雙眼的彩色眼底照片及醫(yī)生的診斷關(guān)鍵詞。其結(jié)構(gòu)化眼科數(shù)據(jù)示例如圖5所示,具體分為8個(gè)類(lèi)別。其中:N代表正常眼底;G代表青光眼;D代表糖尿病病變;C代表白內(nèi)障;A代表黃斑性病變;H代表高血壓;M代表近視;O代表其他病變。但是由于眼底病變因素太多,難度較大,目前本文實(shí)現(xiàn)的是眼部疾病患者和正常患者的分類(lèi)識(shí)別,所以要對(duì)標(biāo)簽進(jìn)行預(yù)處理,變成二分類(lèi)問(wèn)題。標(biāo)簽0表示正常眼睛,標(biāo)簽1表示病變眼睛。數(shù)據(jù)集中彩色眼底圖像如圖6所示,圖6(a)表示正常眼底,圖6(b) 表示異常眼底。
圖5 結(jié)構(gòu)化眼科數(shù)據(jù)示例
(a) 正常眼底
實(shí)驗(yàn)中所采用評(píng)價(jià)指標(biāo)一律采用訓(xùn)練集損失(train_loss)、驗(yàn)證集損失(valid_loss)、錯(cuò)誤率(error_rate)和單位訓(xùn)練時(shí)間四項(xiàng)指標(biāo)對(duì)實(shí)驗(yàn)內(nèi)容進(jìn)行綜合評(píng)價(jià)。其中,loss值代表的是模型的收斂程度,loss值越小,預(yù)測(cè)值和標(biāo)簽就越接近,錯(cuò)誤率也就越小。單位訓(xùn)練時(shí)間指的是模型訓(xùn)練一個(gè)循環(huán)所需要的時(shí)間。
為了對(duì)比不同網(wǎng)絡(luò)結(jié)構(gòu)對(duì)分類(lèi)精度的影響,實(shí)驗(yàn)分別使用ResNet34、ResNet50、ResNet101對(duì)預(yù)處理之后的數(shù)據(jù)集進(jìn)行訓(xùn)練,其中預(yù)處理只包含最基本的篩選、裁剪、壓縮等。表2為不同模型下結(jié)果。
表2 不同模型下的實(shí)驗(yàn)結(jié)果
可以看出,隨著網(wǎng)絡(luò)層數(shù)的不斷加深,訓(xùn)練集和測(cè)試集的loss值在不斷減小,錯(cuò)誤率也在不斷下降,最終達(dá)到了0.860 8的準(zhǔn)確率,說(shuō)明模型收斂的效果越來(lái)越好,分類(lèi)的準(zhǔn)確率也越來(lái)越高。但是,網(wǎng)絡(luò)層數(shù)越多,相應(yīng)網(wǎng)絡(luò)的復(fù)雜度也就越高,訓(xùn)練時(shí)長(zhǎng)有所增加。在相同條件下,就分類(lèi)效果而言,選擇深度神經(jīng)網(wǎng)絡(luò)的分類(lèi)結(jié)果要較好于淺層神經(jīng)網(wǎng)絡(luò),但是由于硬件性能原因,最終選取ResNet50作為本次實(shí)驗(yàn)的特征提取網(wǎng)絡(luò)。
為了驗(yàn)證不同尺寸的圖片對(duì)分類(lèi)效果的影響,保持ResNet50模型不變,分別使用224×224、448×448的圖片輸入進(jìn)行訓(xùn)練,在進(jìn)行了100次訓(xùn)練之后,表3為實(shí)驗(yàn)結(jié)果。
表3 不同圖片尺寸下的實(shí)驗(yàn)結(jié)果
由表3中的兩組實(shí)驗(yàn)結(jié)果對(duì)比可知,在同一訓(xùn)練方式、硬件允許且網(wǎng)絡(luò)模型合適的條件下,圖片的尺寸越大,網(wǎng)絡(luò)提取到的特征越豐富,分類(lèi)的效果也就越好,所以,本次實(shí)驗(yàn)選取448×448的圖片作為網(wǎng)絡(luò)的輸入。為了驗(yàn)證Laplacian濾波分類(lèi)效果的影響,本組實(shí)驗(yàn)在ResNet50模型,分別使用Laplacian濾波處理過(guò)的圖片和沒(méi)有經(jīng)過(guò)Laplacian濾波處理的圖片作為輸入進(jìn)行訓(xùn)練。未經(jīng)過(guò)Laplacian濾波處理的圖片如圖7(a)所示,處理之后的效果如圖7(b)所示。經(jīng)過(guò)了100輪的迭代訓(xùn)練之后得到的結(jié)果如表4所示。
表4 不同預(yù)處理下的實(shí)驗(yàn)結(jié)果
(a) 原始圖片
可以看出,由于經(jīng)過(guò)Laplacian濾波處理過(guò)的圖片變?yōu)閱瓮ǖ?訓(xùn)練的時(shí)間明顯少于沒(méi)有經(jīng)過(guò)Laplacian處理的訓(xùn)練時(shí)間,錯(cuò)誤率也有一定程度的減小,故而由此可得,Laplacian濾波在一定程度上能夠降低網(wǎng)絡(luò)模型訓(xùn)練的時(shí)間復(fù)雜度,并且能減少錯(cuò)誤率,提高分類(lèi)精度。
對(duì)本文算法的有效性進(jìn)行進(jìn)一步驗(yàn)證,首先保證實(shí)驗(yàn)環(huán)境相同,預(yù)處理環(huán)節(jié)一致的情況下,對(duì)不同的識(shí)別方法進(jìn)行對(duì)比實(shí)驗(yàn)。表5總結(jié)了不同方法的分類(lèi)準(zhǔn)確率。
表5 不同方法的分類(lèi)準(zhǔn)確率
由表5中的實(shí)驗(yàn)結(jié)果可知,與其他模型相比,本文提出的對(duì)原始圖片首先經(jīng)過(guò)DSP預(yù)處理之后,再進(jìn)行Laplacian濾波處理后輸入模型進(jìn)行訓(xùn)練的方式能夠獲得較高的準(zhǔn)確率。
針對(duì)彩色眼底圖片的分類(lèi)識(shí)別問(wèn)題,本文提出一種基于ResNet的自動(dòng)分類(lèi)識(shí)別算法,該算法首先對(duì)原始彩色眼底圖片進(jìn)行了基于DSP-Fs的預(yù)處理操作,使用拉普拉斯濾波突出異常眼底圖片的特點(diǎn),有效地提高了神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的質(zhì)量,在降低了分類(lèi)的錯(cuò)誤率的同時(shí)又減少了訓(xùn)練的時(shí)間復(fù)雜度。其次,選取ResNet50作為特征提取的主干網(wǎng)絡(luò),重寫(xiě)全連接層使其適用于彩色眼底圖像的分類(lèi)識(shí)別任務(wù),提取更深層次的特征。與現(xiàn)有的分類(lèi)識(shí)別算法相比,本文算法有效地降低了分類(lèi)的錯(cuò)誤率。但是本文算法在分類(lèi)識(shí)別準(zhǔn)確度上仍有提升空間,后續(xù)將會(huì)做進(jìn)一步優(yōu)化。