陳亞浩 張 東
(鄭州大學河南省超級計算中心信息工程學院 河南 鄭州 450000) 2(浪潮電子信息產業股份有限公司 山東 濟南 250101)
視覺信息是人類獲取外部信息的主要來源,感知外部世界的大部分信息都要靠眼睛。目前,世衛組織已經確定眼部的健康與否是人類三大生存質量問題之一[1]。眼部疾病的不可逆失明問題嚴重影響了人們的生活質量。隨著醫學影像分析算法的不斷發展,計算機算力、存儲能力的不斷增強,通過對彩色眼底圖像的分析,可以盡早預防因糖尿病、青光眼、白內障、許多其他原因引起的眼部疾病。現階段,通過彩色眼底圖片進行眼部疾病篩查的主要方式還是依賴醫生的人工判斷,此項工作不僅耗時耗力,而且對醫生的臨床經驗要求極高。因此,用有效的方法檢測眼部疾病是一個很有現實意義的課題。
在深度學習出現之前,傳統的圖像分類[2]識別算法在實施的過程中比較繁瑣、效率低下、準確率不高,同時很多方法具有一定的局限性,近年來,卷積神經網絡得到了研究人員的廣泛關注,并且提出了Alexnet[3]、GoogLeNet[4]、ResNet[5]、VGG[6]等先進模型,此類模型能夠從大量的樣本中自動學習有用特征,具有較高的準確率。針對眼底彩照的分類識別任務,很多學者基于卷積神經網絡嘗試了各種方法并取得了一定的研究成果。丁蓬莉等[7]提出CompactNet對眼底圖像進行識別分類,但由于實驗樣本有限,網絡在訓練的過程中并沒有充分提取到相關特征,導致特征丟失,因此分類準確率并不高。龐浩[8]提出了一個多分支結構的卷積神經網絡用于彩色眼底圖像分類,主要將GoogleNet、VGGNet等作為特征提取網絡,然后緊接著使用一個兩級CNN對提取的特征進行分類從而實現對彩色眼底圖像的檢測。Raghavendra等[9]設計一個 18 層的卷積神經網絡,經過有效訓練提取特征之后進行測試分類。Chai等[10]提出一種多分支神經網絡(MB-NN)模型,利用該模型從圖像中充分提取深層特征并結合醫學領域知識實現分類。徐至研[11]提出的雙模態深度學習卷積神經網絡模型將年齡相關性黃斑病變的二分類準確率提高至87.4%。黃瀟等[12]提出的基于Inception-v3與SVM 結合的機器學習算法將眼底彩照二分類準確率提高至90.22%。
目前彩色眼底圖像的分類工作已經有了比較深入的研究并且取得了不錯的成果,但是在病變分類準確率方面依舊達不到臨床要求。因此,本文提出一種基于深度殘差網絡的眼底彩色圖像分類識別算法,為了提取更具有代表性的特征,對彩色眼底圖像進行DSP-Fs眼底彩照數據集預處理流程,使用拉普拉斯濾波突出不同眼底彩色圖片的特點,然后選擇ResNet50作為主干網絡結構,通過改進和微調實現對眼部疾病患者和正常人眼底圖像的判別。該算法與其他的分類識別算法相比,具有更好的分類識別效果。
本文提出一種基于ResNet的眼底彩色圖像分類識別算法,整體的框架如圖1所示,該算法由三部分組成:基于DSP-Fs的彩色眼底圖像預處理、基于ResNet的特征提取和眼底彩照自動進行正異常分類。

圖1 彩色眼底圖像分類流程
在本文對彩色眼底圖像判斷是否正常的二分類任務中,第一步是對圖像進行預處理操作。采用的是DSP-Fs預處理流程,將其處理結果作為深度殘差網絡的輸入,提取深層次的特征,最后將提取到的特征送入分類器進行最后的分類,從而實現彩色眼底圖像的正異常識別。
由于獲取的原始數據集存在鏡頭污染、尺寸不統一、背景過多、樣本分布不均勻等問題,若直接將數據集輸入模型進行訓練,所得結果將不僅沒有研究價值而且沒有意義。因此為了使此研究更有研究價值,訓練模型能夠獲得更高的準確率,就需要對原始眼底彩色圖片數據集進行諸多步驟的預處理操作。本文提出針對彩色眼底圖像的DSP-Fs預處理流程,具體如圖2所示。其預處理步驟為:首先對圖片進行D處理操作:將無使用價值的眼底彩照從原始數據集中刪除,如圖3(a)所示;然后進行S化處理:將數據集中所有圖片中的眼球做外切裁剪處理,如圖3(b)所示;再使用opencv對圖片S化處理之后的方形圖片進行224×224、448×448,或者N×N多種規格的圖片壓縮處理,如圖3(b)所示;最后壓縮處理后的圖片進行多維度濾波器圖形圖像處理,結果如圖3(c)所示,(目前在Fs盒中我們加入了Laplacian、銳化濾波、黑白二值、黑白二值反轉等濾波)。

圖2 預處理流程

(a) D處理
在1.1節關于眼底圖像的預處理過程中,采用Laplacian濾波[12],運用拉普拉斯算子來增強圖像的細節,找到圖像的邊緣。面對有噪音增強的情況,我們可以在圖片銳化前對要使用的圖像進行平滑處理。Laplacian濾波與圖像某個像素的周圍像素到此像素的突變程度有關。
拉普拉斯算子定義:
(1)
該二階導數近似為:

(2)

(3)
因而有
▽2f=[f(x+1,y)+f(x-1,y)
f(x,y+1),f(x,y-1)]-4f(x,y)
(4)
通過卷積圖像,該表達式可在圖像中的所有點(x,y)處實現:
(5)
至于對角線元素,可用以下掩模來實現:
(6)
用來增強圖像的拉普拉斯算子基本公式如下:
g(x,y)=f(x,y)+c[▽2f(x,y)]
(7)
式中:f(x,y)為輸入圖像;g(x,y)為處理后增強的圖像;若掩模的中心系數為正,我們取c=1,若不為正,我們取c=-1。經過微分運算,圖片常量區域轉化為0,同時使圖片銳化。
眾所周知,在深度學習技術不斷發展的今天,許多網絡結構在ImageNet競賽中脫穎而出,取得了令人矚目的成績,例如VGGNet、Google、NetResNet等。其中,作為里程碑式模型的ResNet一經出世,就在競賽中獲得了圖像分類、定位、檢測三個項目的冠軍。同時近些年來,ResNet網絡在工業中的應用日漸成熟,應用領域也在逐步擴大,所以,本文算法的主干網絡選用ResNet,實現對眼底彩色圖片進行特征提取。
ResNet最主要的貢獻在于提出的殘差學習的思路,這種殘差結構解決了梯度在深度網絡中方向傳播時可能會遇到的梯度消失的問題[13]。即便是非常深的網絡也能夠得到很好的訓練,而且層數加深之后網絡的效果更好。殘差學習單元改變了ResNet網絡學習的目標,網絡中直連通道的加入,使原始輸入的信息允許直接傳到后面層中。假設卷積神經網絡的輸入是x,經過處理后輸出H(x),如果將x傳入輸出作為下一段網絡的初始結果,我們學習的目標就變為F(x)=H(x)-x,具體如圖4所示。

圖4 ResNet的殘差學習單元
ResNet有不同的網絡層數,在本文中,主要選擇了ResNet34、ResNet50、ResNet101作為主干網絡來進行眼底圖像的特征提取效果對比。它們具體的網絡結構如表1所示。

表1 不同層數時的網絡配置
針對具體的彩色圖像的分類識別任務,將最后全連接層改為兩個神經元,然后送入分類器,便于后續的分類。
本實驗依托于河南省超級計算機中心,采用目前主流的深度學習框架Pytorch作為開發環境,硬件配置為:GPU:Nvidia GeForce GTX 1660,內存:24 GB,顯存:6 GB。軟件環境:CUDA10.2,CUD NN7.6,Python 3.6。
實驗中所使用到的數據集為北京大學“智慧之眼”國際眼底圖像智能識別競賽公布的眼底彩照數據集(ODIR-5K),包含5 000名患者雙眼的彩色眼底照片及醫生的診斷關鍵詞。其結構化眼科數據示例如圖5所示,具體分為8個類別。其中:N代表正常眼底;G代表青光眼;D代表糖尿病病變;C代表白內障;A代表黃斑性病變;H代表高血壓;M代表近視;O代表其他病變。但是由于眼底病變因素太多,難度較大,目前本文實現的是眼部疾病患者和正?;颊叩姆诸愖R別,所以要對標簽進行預處理,變成二分類問題。標簽0表示正常眼睛,標簽1表示病變眼睛。數據集中彩色眼底圖像如圖6所示,圖6(a)表示正常眼底,圖6(b) 表示異常眼底。

圖5 結構化眼科數據示例

(a) 正常眼底
實驗中所采用評價指標一律采用訓練集損失(train_loss)、驗證集損失(valid_loss)、錯誤率(error_rate)和單位訓練時間四項指標對實驗內容進行綜合評價。其中,loss值代表的是模型的收斂程度,loss值越小,預測值和標簽就越接近,錯誤率也就越小。單位訓練時間指的是模型訓練一個循環所需要的時間。
為了對比不同網絡結構對分類精度的影響,實驗分別使用ResNet34、ResNet50、ResNet101對預處理之后的數據集進行訓練,其中預處理只包含最基本的篩選、裁剪、壓縮等。表2為不同模型下結果。

表2 不同模型下的實驗結果
可以看出,隨著網絡層數的不斷加深,訓練集和測試集的loss值在不斷減小,錯誤率也在不斷下降,最終達到了0.860 8的準確率,說明模型收斂的效果越來越好,分類的準確率也越來越高。但是,網絡層數越多,相應網絡的復雜度也就越高,訓練時長有所增加。在相同條件下,就分類效果而言,選擇深度神經網絡的分類結果要較好于淺層神經網絡,但是由于硬件性能原因,最終選取ResNet50作為本次實驗的特征提取網絡。
為了驗證不同尺寸的圖片對分類效果的影響,保持ResNet50模型不變,分別使用224×224、448×448的圖片輸入進行訓練,在進行了100次訓練之后,表3為實驗結果。

表3 不同圖片尺寸下的實驗結果
由表3中的兩組實驗結果對比可知,在同一訓練方式、硬件允許且網絡模型合適的條件下,圖片的尺寸越大,網絡提取到的特征越豐富,分類的效果也就越好,所以,本次實驗選取448×448的圖片作為網絡的輸入。為了驗證Laplacian濾波分類效果的影響,本組實驗在ResNet50模型,分別使用Laplacian濾波處理過的圖片和沒有經過Laplacian濾波處理的圖片作為輸入進行訓練。未經過Laplacian濾波處理的圖片如圖7(a)所示,處理之后的效果如圖7(b)所示。經過了100輪的迭代訓練之后得到的結果如表4所示。

表4 不同預處理下的實驗結果

(a) 原始圖片
可以看出,由于經過Laplacian濾波處理過的圖片變為單通道,訓練的時間明顯少于沒有經過Laplacian處理的訓練時間,錯誤率也有一定程度的減小,故而由此可得,Laplacian濾波在一定程度上能夠降低網絡模型訓練的時間復雜度,并且能減少錯誤率,提高分類精度。
對本文算法的有效性進行進一步驗證,首先保證實驗環境相同,預處理環節一致的情況下,對不同的識別方法進行對比實驗。表5總結了不同方法的分類準確率。

表5 不同方法的分類準確率
由表5中的實驗結果可知,與其他模型相比,本文提出的對原始圖片首先經過DSP預處理之后,再進行Laplacian濾波處理后輸入模型進行訓練的方式能夠獲得較高的準確率。
針對彩色眼底圖片的分類識別問題,本文提出一種基于ResNet的自動分類識別算法,該算法首先對原始彩色眼底圖片進行了基于DSP-Fs的預處理操作,使用拉普拉斯濾波突出異常眼底圖片的特點,有效地提高了神經網絡學習的質量,在降低了分類的錯誤率的同時又減少了訓練的時間復雜度。其次,選取ResNet50作為特征提取的主干網絡,重寫全連接層使其適用于彩色眼底圖像的分類識別任務,提取更深層次的特征。與現有的分類識別算法相比,本文算法有效地降低了分類的錯誤率。但是本文算法在分類識別準確度上仍有提升空間,后續將會做進一步優化。