趙學功,鄧佳坤,魏浩然,彭真明*
(1. 電子科技大學信息與通信工程學院 成都 611731;2. 電子科技大學光電科學與工程學院 成都 611731)
全球的糖尿病患者日益增多,糖尿病患者到了晚期可能會引起視網(wǎng)膜病變(糖網(wǎng)),最終造成視力下降甚至失明[1]。微血管瘤(microaneurysm, MA)是糖網(wǎng)的初期癥狀,實現(xiàn)對微血管瘤的精確檢測,對判斷視網(wǎng)膜是否正常,具有重大的醫(yī)學意義。
糖尿病患者由于血糖升高,微血管循環(huán)障礙,導致血管管壁變厚、血流減慢,同時也會發(fā)生內(nèi)皮細胞增生等現(xiàn)象,造成局部組織缺氧,進而引發(fā)毛細血管局部擴張,形成微血管瘤[2]。微血管瘤在彩色眼底照片的表現(xiàn)為極小的暗紅色點,局部對比度較低,同時眼底圖像中存在極其容易與微血管瘤混淆的結(jié)構(gòu),如血管末端、背景噪聲等。
微血管瘤的檢測算法一般可以分為基于物理模型的方法、基于分類器的方法和基于深度學習的檢測方法。基于物理模型的方法主要是根據(jù)微血管瘤的灰度分布結(jié)構(gòu)進行數(shù)學建模,如文獻[3]針對MA的類高斯灰度結(jié)構(gòu)設計了圓形雙邊濾波器對MA 進行候選區(qū)提取,再通過局部梯度分析進行精確檢測;文獻[4]主要采用形態(tài)學的方法對糖網(wǎng)圖像進行增強和去除血管、偽影等,進而提取微血管瘤;文獻[5]提出了一種基于特征轉(zhuǎn)移網(wǎng)絡和局部背景抑制的MA 檢測方法,可以降低噪聲?;诜诸惼鞯姆椒ㄖ饕窍忍崛∥⒀芰龊蜻x區(qū),再對微血管瘤候選區(qū)進行分類,如文獻[6]首先采用中值濾波除掉糖網(wǎng)圖像上的微血管瘤,再經(jīng)過形態(tài)學膨脹得到糖網(wǎng)背景圖像,將原圖與糖網(wǎng)背景圖像相減得到微血管瘤的候選區(qū),然后對候選區(qū)提取傳統(tǒng)特征和深度特征用于微血管瘤分類;文獻[7]采用局部收斂濾波(local convergence fiters, LCFs)實現(xiàn)糖網(wǎng)圖像增強與MA 候選區(qū)提取,再結(jié)合LCFs 響應特征與灰度特征實進行精確檢測;文獻[8]通過分析直方圖進行微血管瘤分割,再提取形狀、灰度、紋理等特征進行識別。
基于深度學習的檢測方法主要為搭建端到端的深度神經(jīng)網(wǎng)絡,如文獻[9]基于目標檢測模型YOLO實現(xiàn)了微血管瘤的檢測;文獻[10]提出了基于深度卷積編碼器解碼器的微血管瘤檢測模型;文獻[11]通過改進U-Net 網(wǎng)絡實現(xiàn)了微血管瘤的像素級分割。但這些網(wǎng)絡模型結(jié)構(gòu)復雜,模型訓練時容易發(fā)生過擬合現(xiàn)象。
基于物理模型的方法難以建立適用性更廣泛的算法,因為不同設備采集到的眼底照片亮度和對比度都不一致,極易受到環(huán)境的影響,并且由于類似結(jié)構(gòu)的存在,如小血塊、血管結(jié)構(gòu)、背景噪聲等,容易造成誤檢。基于分類器的方法往往采用濾波、背景估計、形態(tài)學等傳統(tǒng)方法進行候選區(qū)提取,這些傳統(tǒng)方法容易受到參數(shù)的限制,同時糖網(wǎng)圖像復雜,造成微血管瘤檢測精度不高。
針對這些問題,本文采用卷積神經(jīng)網(wǎng)絡(convolutional neural network, CNN)的方式實現(xiàn)微血管瘤的檢測。該網(wǎng)絡設計為簡單的全卷積網(wǎng)絡,原圖像僅通過3 層卷積便能實現(xiàn)MA 的檢測,相比傳統(tǒng)的微血管瘤檢測算法更為精確。同時與基于深度學習的微血管瘤檢測模型相比,該文的網(wǎng)絡設計更為簡單,參數(shù)量更少。
卷積神經(jīng)網(wǎng)絡目前成功地應用在計算機視覺的各個領(lǐng)域,如人臉識別、行人檢測。這些進程中有幾個重要的因素:1) 現(xiàn)代的GPU 越來越強大,更利于網(wǎng)絡模型的訓練;2) 公開數(shù)據(jù)集越來越多,更易于訓練更優(yōu)秀的模型。
微血管瘤檢測既可以采用目標檢測模型又可以采用語義分割模型。經(jīng)典的目標檢測模型如RCNN、SSD、YOLO 等[12]已經(jīng)在行人檢測、車輛檢測、飛行物檢測等各目標檢測領(lǐng)域取得了成功。經(jīng)典的語義分割模型如FCN、U-net 等[13]在醫(yī)學圖像分割、場景分割也取得了成功。這些模型都具有復雜的網(wǎng)絡結(jié)構(gòu),并在各種領(lǐng)域都能夠取得一定效果,若針對不同目標,只采用卷積的方式構(gòu)建模型則難以得到更廣泛的用途。同時這些通用模型都會進行下采樣操作,這是因為任務中目標一般較大,如車輛、行人等,而微血管瘤面積極小,最小的可能只有幾個像素,多次采用下采樣的方式可能讓部分微血管瘤特征消失。在卷積神經(jīng)網(wǎng)絡模型中,也具有單獨采用卷積就能達到某種目的的模型。文獻[14]提出超分辨率重建網(wǎng)絡,該網(wǎng)絡為端到端的超分辨模型,輸入低分辨率圖像,輸出高分辨率圖像。輸入一張低分辨率圖像,首先經(jīng)過雙三次插值形成高分辨率圖像,再通過三層卷積得到更真實、邊緣更清晰的高分辨率圖像。在圖像去雨領(lǐng)域,文獻[15]也只采用了卷積用于圖像中的雨滴提取。因此針對形態(tài)更為規(guī)則的微血管瘤,不需要復雜的深度模型,僅采用卷積也能達到一定效果。
卷積神經(jīng)網(wǎng)絡的具體結(jié)構(gòu)如圖1 所示,主要包括3 層卷積層。3 層卷積層的物理意義分別為糖網(wǎng)圖像特征提取、特征選擇與融合、目標特征重建與響應。
圖1 卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)
本文將輸入224×224 的綠色通道圖片稱為X,通過映射F(X)得到像素標簽圖像Y,由于Y中不僅包含MA,也會包含一些其他眼底結(jié)構(gòu),需要對標記為1 進行再一次判斷。因此可以稱Y為候選區(qū)模板圖像,其中像素為1 的各連通域為微血管瘤候選區(qū)。網(wǎng)絡學習的映射F主要包括以下3 個步驟。
1) 糖網(wǎng)特征提取。在傳統(tǒng)圖像處理算法中,卷積操作能夠?qū)崿F(xiàn)圖像的濾波、邊緣檢測和去噪,采用不同的卷積核變能提取到圖像的不同特征。如Prewitt 算子、Sobel 算子、Laplacian 算子能夠提取圖像各個角度的邊緣信息,高斯濾波、中值濾波、均值濾波能夠?qū)D像進行平滑和去噪操作,可以獲得糖網(wǎng)圖像的背景信息。卷積神經(jīng)網(wǎng)絡中,淺層的卷積一般用于提取輸入圖像的各種細節(jié)特征,如紋理、邊緣、顏色等。因此本文的第一層卷積層可以描述為:
式中,W1和B1為第一層卷積層的濾波器和偏置;*為卷積運算符;W1為n1個c×f1×f1的 濾波器,c為每個濾波器的通道數(shù),與輸入圖像的通道數(shù)相同,f1為 每個濾波器的空間大小,這里f1=15,因為15×15的像素大小能包含微血管瘤,同時也能包含部分背景信息。輸出特征圖像的通道數(shù)由濾波器的個數(shù)決定,因此為n1;B1是 一個n1維的向量,其中的每一個元素都與對應的濾波器相關(guān)聯(lián)。最后采用RELU(m ax(0,x))[16]對濾波結(jié)果進行響應。
2) 特征選擇與融合。第一層卷積得到一個n1層的特征圖,每一層代表一種濾波器濾波的結(jié)果;在第二層卷積需要將n1維 特征映射為n2維的特征,其中n2<n1,以達到特征降維和減少后續(xù)計算量的效果。深度學習中,1*1的卷積正好適合這種解釋。第二層卷積層的計算為:
式中,W2為n2個n1×f2×f2的 濾波器;B2為n2維向量,這里f2=1。 通過第一層卷積得到n1層特征圖,每一層包含了不同濾波器下的糖網(wǎng)圖像信息,如各個方向的邊緣、不同模板下的響應。通過第二層卷積層,可以消除一些冗余信息層,同時還能實現(xiàn)不同層的非線性組合。
3) 目標特征重建與響應。通過第二層卷積已經(jīng)得到糖網(wǎng)圖像各種特征,還需要將不同通道的特征進行組合,同時對每一通道空間進行濾波和平滑操作,最終通過激活函數(shù)得到候選區(qū)模板圖像。第三層的卷積計算為:
式中,W3為c個n2×f3×f3的 濾波器;B3為 一個c維向量。由于是最后一層卷積,輸出需要得到微血管瘤候選區(qū)模板,這里c=1,在微血管瘤候選區(qū)模板圖像中,MA 像素值為1,其他區(qū)域為0。
考慮到微血管瘤在糖網(wǎng)圖像中的占比很小,若直接采用完整糖網(wǎng)圖像以及對應的像素級標簽搭建卷積網(wǎng)絡進行訓練,會造成不收斂的現(xiàn)象。因此,決定首先從糖網(wǎng)圖像和標簽圖像中提取包含微血管瘤的圖像小片和對應標簽圖像小片構(gòu)建訓練集進行訓練。數(shù)據(jù)集獲取過程如圖2 所示。
圖2 訓練數(shù)據(jù)集獲取
原圖像為2 544×1 696 的RGB 圖像,像素級標簽圖像中,對應MA 區(qū)域像素的值為1,其他的為0。由于采集到的糖網(wǎng)圖像具有不同的亮度和對比度,因此首先對原圖像經(jīng)過圖像增強,再從中提取224×224 的圖像小片,由于微血管瘤的主要信息位于綠色通道,最終模型只輸入綠色通道進行實驗。其中的糖網(wǎng)圖像增強采用了文獻[2]的方法:
式中,I為原圖像;Ienhanced為增強后的圖像,表示卷積運算; α、 τ 、 γ 為3 個常數(shù); σ為高斯濾波器的方差。參數(shù)設置如下: α=4 , τ=-4, γ=128,σ=10。
由于微血管瘤中存在大量更易吸收綠光的血紅蛋白,因此綠色通道具有更多微血管瘤的相關(guān)信息,本文采用綠色通道作為最終的輸入訓練集。
為了學習端到端的映射函數(shù)F,需要估計神經(jīng)網(wǎng)絡參數(shù) θ={W1,W2,W3,B1,B2,B3}的值,由輸出的MA 候選區(qū)模板圖像F(X;θ)和對應的像素標簽圖像Y的損失函數(shù)最小化可得到。針對糖網(wǎng)圖像的綠色通道{Xi}和 對應的像素標簽圖像 {Yi},本文使用均方誤差作為損失函數(shù):
損失函數(shù)最小化采用了隨機梯度下降的方法,并選擇Adam 優(yōu)化器進行優(yōu)化,初始學習率設計為0.001。
基于卷積神經(jīng)網(wǎng)絡的MA 檢測算法采用python平臺實現(xiàn),計算機配置為,CPU 處理器:AMD Ryzen 5 3 600 6-Core Processor;主頻:3.6 GHz;內(nèi)存:16 GB。本文采用了6 379 張224×224 的糖網(wǎng)綠色通道圖像小片以及對應的像素級標簽圖像作為數(shù)據(jù)集,并采用5 折交叉驗證的方式進行模型訓練,所有圖像小片都從公開數(shù)據(jù)集e_optha[17]中提取。
為了展示訓練過程中模型輸出的變化,本文記錄訓練過程中不同輪次下測試圖像的輸出結(jié)果,如圖3 所示。可以看到訓練到300 輪次左右,模型開始有了一定的微血管瘤提取效果。
圖3 訓練過程
通過設定閾值可以得到最終的結(jié)果。本文將基于卷積神經(jīng)網(wǎng)絡的MA 檢測算法與傳統(tǒng)檢測算法進行了比較,實驗結(jié)果如圖4 所示。從圖4 看出,基于背景估計法的微血管瘤檢測[6]能有效抑制眼底血管的檢出,但還是有很多背景噪聲被當做MA 檢出;基于微血管瘤灰度結(jié)構(gòu)特性的方法[18]如底帽變換、LCM[18]、MLCM[19]和NLCM[20],也具有一定的檢出效果,但很多血管也被檢測為MA,同時檢測準確性容易受到參數(shù)的限制;本文所提出的基于卷積神經(jīng)網(wǎng)絡的微血管瘤檢測方法能將MA 都檢測出來,同時被檢測出的虛景數(shù)量也遠少于傳統(tǒng)方法,同時對血管具有較好的抑制作用。
圖4 各算法得到的候選區(qū)模板圖
以上算法中,除了MA 被檢出以外,還有一些非MA 結(jié)構(gòu),如血管、背景噪聲存在。為了進一步實現(xiàn)MA 的精確檢測,一般會對MA 候選區(qū)采用機器學習或深度神經(jīng)網(wǎng)絡的方式進一步分類??傮w算法所需時間可以描述如下:
式中,Tpre表示預處理所需時間,如圖像增強、候選區(qū)提取等;Tpost表示后處理所需時間,如將所得到的結(jié)果映射到原圖像上用于顯示;n表示候選區(qū)的個數(shù);tidentify表示對一個候選區(qū)進行鑒別所需的時間。因此,在保證MA 均被檢出的情況下,候選區(qū)的數(shù)量越少,總體算法的檢測時間越少;候選區(qū)的形狀更規(guī)則,后續(xù)特征建模與分類的方式越簡單。
病變視網(wǎng)膜中,微血管瘤可以用個數(shù)進行衡量,每一個MA 候選區(qū)表示該區(qū)域存在一個MA。在保證MA 均被檢出的情況下,通過計算圖像中像素為1 的連通域個數(shù)來表示候選區(qū)個數(shù)。每種方法提取候選區(qū)數(shù)目如表1 所示。該表為傳統(tǒng)算法與CNN 對4 個圖像片的驗證情況,可以看到基于CNN 的微血管瘤檢測算法能得到更少的候選區(qū)。
表1 候選區(qū)個數(shù)實驗結(jié)果 個
在分割任務中,常常使用靈敏度(Se),特異性(PPV)以及綜合考慮靈敏度與特異性的指標Fscore 對每一個像素進行評價。靈敏度表示真實病變區(qū)域中有多少像素被成功分類為病變;特異性表示檢測為病變區(qū)域中有多少像素是真實的病變。但因為微血管瘤以個數(shù)存在,只需知道當前候選區(qū)域是否存在微血管瘤即可,因此本文提出新的評價方式對檢測效果進行衡量。同樣以Se、PPV、F1-score進行衡量,衡量對象不是像素,而是像素值為1 構(gòu)成的連通域。具體計算公式為:
式中,TP(true positives)表示分類器認為該連通域有MA 且實際標記圖也有MA 的連通域個數(shù);FP(false positives)表示分類器認為該連通域有MA,實際標記圖無MA 的連通域個數(shù);FN 表示分類器認為該連通域不存在MA 而實際標記圖存在MA的連通域個數(shù)。最終評價方式如表2 所示,CNN算法的F-score 高于傳統(tǒng)算法,這是因為傳統(tǒng)算法的PPV 值比較低,傳統(tǒng)算法容易收到參數(shù)限制,在復雜環(huán)境中提取的MA 候選區(qū)存在大量雜質(zhì),如圖4 和表1 所顯示。而卷積神經(jīng)網(wǎng)絡具備更強的擬合性能,因此檢測更為精確,負樣本遠少于傳統(tǒng)算法,但也由于卷積神經(jīng)網(wǎng)絡可能存在過擬合現(xiàn)象,部分MA 會檢測不出,因此Se 會少于傳統(tǒng)算法。
表2 基于連通域的不同方法評價指標
本文提出了基于卷積神經(jīng)網(wǎng)絡的微血管瘤病變檢測算法,該方法的效果優(yōu)于傳統(tǒng)的微血管瘤提取算法,其F-score 與PPV 的值遠超傳統(tǒng)算法,分別達到了0.613 2 與0.723 2。PPV 高,則表示MA 候選區(qū)數(shù)量較少,微血管瘤提取更精確,若后續(xù)需要提取特征并進一步檢測,可減少整體算法的時間。同時本文證明了針對某些簡單、具有特定形態(tài)的小目標,可采用簡單的卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)進行檢測,而不一定需要復雜、通用的深度模型。本文也建立了基于卷積神經(jīng)網(wǎng)絡的識別方法與傳統(tǒng)圖像中特征提取和重構(gòu)之間的關(guān)系,這種關(guān)系為網(wǎng)絡結(jié)構(gòu)的設計提供指導意義。由于深度神經(jīng)網(wǎng)絡依賴大數(shù)據(jù),模型訓練容易過擬合,該網(wǎng)絡對于某些細微血管瘤可能會存在漏檢的情況。本文構(gòu)建的網(wǎng)絡模型的卷積、池化、激活函數(shù)、損失函數(shù)等結(jié)構(gòu)均采用基本模式,未來通過優(yōu)化結(jié)構(gòu),可望進一步提升本文方法的檢測性能。