侯松辰,張俊虎
(青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,青島 266061)
眼科專業(yè)人士往往將手工分割后的視網(wǎng)膜眼底圖像作為眼科疾病的診斷依據(jù),從血管的病變情況觀察到一些病癥[1]. 然而血管的手工標(biāo)注工作對(duì)于眼科醫(yī)生來(lái)說(shuō)費(fèi)時(shí)費(fèi)力,處理不及時(shí)還有可能耽誤病人的病情,自動(dòng)高效的血管分割不僅緩解相關(guān)專業(yè)人員的壓力,也有助于患者早發(fā)現(xiàn)早治療,因此實(shí)現(xiàn)智能的血管分割在疾病識(shí)別和預(yù)防方面有重要意義.
早期許多研究利用計(jì)算機(jī)視覺(jué)、有監(jiān)督或無(wú)監(jiān)督的機(jī)器學(xué)習(xí)算法來(lái)實(shí)現(xiàn)眼底圖像的血管分割. 如高向軍[2],王愛(ài)華[3]早期提出的形態(tài)學(xué)分割方法,Chaudhuri等人[4]的匹配濾波方法等無(wú)監(jiān)督算法,以及Wang 等人[5]提出的基于卷積神經(jīng)網(wǎng)絡(luò)的方法等有監(jiān)督算法. 伴隨深度學(xué)習(xí)算法研究的深入,眾多學(xué)者在提高血管分割性能方面的研究愈發(fā)深入,使用深度學(xué)習(xí)架構(gòu)的研究獲得了比現(xiàn)有方法更好的性能,比如,Fu 等人[6]提出的基于深度學(xué)習(xí)與條件隨機(jī)場(chǎng)的分割方法,吳晨玥等人[7]對(duì)于卷積神經(jīng)網(wǎng)絡(luò)的改進(jìn),Rammy 等人[8]提出的基于塊的條件生成對(duì)抗網(wǎng)絡(luò)分割方法以及鐘文煜等人[9]對(duì)改進(jìn)的U-Net 方法等血管分割算法. 這些基于深度學(xué)習(xí)的算法與以往算法相比展現(xiàn)了極大優(yōu)勢(shì),尤其是生成對(duì)抗網(wǎng)絡(luò),在對(duì)于血管分割的問(wèn)題上,準(zhǔn)確率等指標(biāo)都可以看出明顯提升.
當(dāng)前分割仍存在問(wèn)題: (1)眼底血管錯(cuò)綜復(fù)雜導(dǎo)致分割結(jié)果中各類評(píng)價(jià)指標(biāo)還有進(jìn)步空間; (2)對(duì)于血管細(xì)微分支類別的準(zhǔn)確率還有待優(yōu)化. 為了嘗試解決這個(gè)問(wèn)題. 本文提出了將RU-Net 網(wǎng)絡(luò)作為生成器部分的GAN 改進(jìn)版模型,并添加了一種Attention 機(jī)制,應(yīng)用在生成器部分,使分割區(qū)域更明確,提高分割的準(zhǔn)確度和特異度; 判別器選擇卷積神經(jīng)網(wǎng)絡(luò). 在對(duì)數(shù)據(jù)集的預(yù)處理上,本文使用了自動(dòng)色彩均衡ACE 算法[10],并與其他預(yù)處理方式的實(shí)驗(yàn)結(jié)果比對(duì),對(duì)DRIVE 數(shù)據(jù)集通過(guò)翻轉(zhuǎn)、旋轉(zhuǎn)角度、均勻切割等操作將數(shù)據(jù)集擴(kuò)充至3 840 張,實(shí)驗(yàn)顯示,本文的模型展現(xiàn)了更好的性能.
本文將生成對(duì)抗網(wǎng)絡(luò)(generative adversarial network,GAN)與RU-Net 結(jié)合并添加一種Attention 機(jī)制,構(gòu)成Retina-GAN 視網(wǎng)膜血管分割模型,如圖1 所示,Retina-GAN 由3 個(gè)部分組成:
圖1 Retina-GAN 模型整體架構(gòu)
(1)圖像預(yù)處理階段,采用自動(dòng)色彩均衡(ACE),加強(qiáng)圖像對(duì)比度,對(duì)圖像閾值分割得到掩膜圖像,擴(kuò)充數(shù)據(jù)集,每張圖像分成16 個(gè)patch;
(2)生成器部分,該部分采用RU-Net 網(wǎng)絡(luò)[11],添加Retina-Attention 機(jī)制,將模型關(guān)注區(qū)域鎖定在有效視網(wǎng)膜區(qū)域,生成的patch 進(jìn)行重組;
(3)判別器部分,采用卷積神經(jīng)網(wǎng)絡(luò)對(duì)生成的圖像進(jìn)行判別,繼而優(yōu)化損失函數(shù).
GAN 在被Goodfellow 等人[12]提出后迅速發(fā)展,并廣泛應(yīng)用于圖像合成、樣式轉(zhuǎn)換、圖像分類、語(yǔ)義分割等領(lǐng)域. 此外,GAN 在醫(yī)學(xué)圖像處理中也嶄露頭角,如解剖學(xué)圖像精準(zhǔn)采樣、檢測(cè)前列腺癌細(xì)胞病變等. 學(xué)者們基于GAN 模型又提出了多種擴(kuò)展網(wǎng)絡(luò)模型,如Conditional GANs[13]、Wasserstein GAN[14]、Pix2Pix[15]、DCGAN[16]等.
在本文的架構(gòu)中,生成器(generator,G)擔(dān)任著生成眼底血管分割圖的角色,它的輸入是任意一張眼底圖像z,G通過(guò)z生成的視網(wǎng)膜血管圖像,記為G(z). 判別器(discriminator,D)則擔(dān)任著判別血管圖片是否真實(shí)的角色,以專家手工標(biāo)注的血管圖像為標(biāo)準(zhǔn). 判別器的輸入是血管分割圖像x,輸出D(x)是圖像x為專家標(biāo)注真實(shí)圖片的概率,輸出越傾向0,圖片就越虛假,輸出越傾向1,圖像越真實(shí).
對(duì)生成器G和判別器D的訓(xùn)練過(guò)程就是令G生成的眼底圖像G(z)越來(lái)越逼真,使D難以判斷圖像是否為真實(shí)的眼底圖像. 在訓(xùn)練過(guò)程中,G和D逐漸趨向動(dòng)態(tài)平衡. 這個(gè)過(guò)程最理想的狀態(tài)就是在D和G不斷優(yōu)化的同時(shí),G生成的眼底圖像G(z)越來(lái)越真實(shí),令D難以判定其真假性. 對(duì)G,D的訓(xùn)練過(guò)程如式(1)[12].
其中,x為真實(shí)眼底圖像,符合pdata(x)分布,z是輸入到G的噪聲,符合pz(z)先驗(yàn)分布,如高斯分布,G生成的眼底圖像用G(z)表示.D(x)是D判斷x是否真實(shí)的概率,不難得出,D(G(z))就是G(z)是否真實(shí)的概率. 對(duì)于G而言,式(1)越小越好,對(duì)于D而言,式(1)越大越好.
實(shí)驗(yàn)選擇DRIVE 公開(kāi)數(shù)據(jù)集,DRIVE 由40 張彩色視網(wǎng)膜圖像組成以及對(duì)應(yīng)的專家手工分割圖像組成.
對(duì)圖像的預(yù)處理選擇了自動(dòng)色彩均衡ACE,通過(guò)對(duì)ACE 處理過(guò)的圖像水平、垂直翻轉(zhuǎn),旋轉(zhuǎn)角度,平均分割等方式將DRIVE 數(shù)據(jù)集擴(kuò)充至3820 張128×128的圖像.
ACE 是由Gatta 等人[10]提出的,并由Rizzi 等人[17]以及Getreuer 等人[18]進(jìn)一步優(yōu)化. ACE 模仿人類視覺(jué)系統(tǒng)模型來(lái)對(duì)色彩校正和增強(qiáng). 文獻(xiàn)[17]依據(jù)Retinex理論提出了ACE,ACE 能夠?qū)ψ赃m應(yīng)濾波進(jìn)行局部的調(diào)整,使圖像的對(duì)比度、亮度和色彩能夠自適應(yīng)局部或者是非線性特征的情況. 它需要兩個(gè)階段. 第一視覺(jué)編碼階段恢復(fù)場(chǎng)景區(qū)域的外觀,第二顯示映射階段將過(guò)濾后的圖像的值歸一化. 如式(2)[10]、式(3)所示,一階段從輸入像素Ic(p)計(jì)算Rc(p),二階段從Rc(p)計(jì)算增強(qiáng)輸出圖像Oc(p),在一階段,輸出圖像R在色度和空間調(diào)整后被創(chuàng)建,創(chuàng)建后每個(gè)p都要依據(jù)圖像的內(nèi)容再次計(jì)算. 輸出圖像R中的每個(gè)像素分別為每個(gè)通道c計(jì)算.
其中,p和j為兩個(gè)像素點(diǎn),Ic(p)?Ic(j)表示2 個(gè)點(diǎn)的亮度差,d(p,j)是距離度量函數(shù),r(·)為亮度表現(xiàn)函數(shù),且為奇函數(shù),式(2)的作用是調(diào)整局部圖像的對(duì)比度.r(·)的作用是依照局部?jī)?nèi)容動(dòng)態(tài)放縮范圍,比如放大細(xì)微的差異,rmax表示r(·)的最大值,Rc(p)為中間結(jié)果.
對(duì)于輸出圖像Oc(p),sc為線段[(mc,0),(Mc,255)]的斜率,mc=minpRc(p),Mc=maxpRc(p). 使用ACE 的增強(qiáng)結(jié)果如圖2(b)所示.
圖2 使用ACE 的增強(qiáng)結(jié)果
對(duì)于生成器部分,本文引用了RU-Net 結(jié)構(gòu),并添加了一種Attention 機(jī)制對(duì)RU-Net 進(jìn)行優(yōu)化,將其稱為Retina-Attention 機(jī)制.
Alom 等人被RCNN,U-Net 以及深度殘差模型所啟發(fā),提出了基于U-Net 的RCNN[19]模型RU-Net[11],這種方法結(jié)合了這3 種模型的優(yōu)勢(shì),如圖3. 與U-Net模型相比,所提出的模型有3 方面的差異. RU-Net 由卷積編碼和解碼單元兩部分組成,在編碼單元以及解碼單元中,常規(guī)前卷積層被使用循環(huán)卷積層RCL 和帶有殘差單元的RCL 所取代. RCL 單元其本身能包含高效的特征積累方法,帶有RCL 的單元對(duì)模型的深入建設(shè)大有裨益.
圖3 RU-Net 體系結(jié)構(gòu)[11]
其中,RCL 通過(guò)RCNN 的離散時(shí)間步長(zhǎng)進(jìn)行的.顧及殘差RCNN (RRCNN)塊的第l層中的xl輸入樣本和RCL 中第k個(gè)feature map 上的輸入樣本中位于(i,j)的一個(gè)像素,并假設(shè)網(wǎng)絡(luò)Ol ijk(t)在時(shí)間步長(zhǎng)t時(shí)的輸出,可以表示為式(4)[11]:
(t)是標(biāo)準(zhǔn)卷積層的輸入,(t?1)為第l層RCL 的輸入.wkf是k的標(biāo)準(zhǔn)卷積層權(quán)值,wrk是k的RCL 權(quán)值,bk是偏差. RCL 的輸出則被送入標(biāo)準(zhǔn)ReLU激活函數(shù)f,表示為式(5)[11]:
F(xl,wl)表示RCNN 單元第l層的輸出.F(xl,wl)的輸出被用作RU-Net 模型的卷積編碼和解碼單元的下采樣層和上采樣層. RCNN 單元的最終輸出通過(guò)殘差單元,假設(shè)RRCNN 塊的輸出為xl,可通過(guò)式(6)計(jì)算:
RU-Net 在視網(wǎng)膜圖像血管分割上取得了非常不錯(cuò)的分割效果,準(zhǔn)確率達(dá)到0.9528,靈敏度0.7747,特異度0.9770,本文提出的模型意在對(duì)RU-Net 加以改進(jìn),使其作為GAN 的生成器部分進(jìn)一步提高分割效果,由此,本文提出在RU-Net 中添加一種Attention 機(jī)制.
我們平日所說(shuō)的注意力是一個(gè)神經(jīng)生理學(xué)的概念,它表示人類認(rèn)真觀察事務(wù)的時(shí)候能有多專注[20]. 在圖像語(yǔ)義分割領(lǐng)域中,Attention 機(jī)制通過(guò)學(xué)習(xí)獲得一個(gè)對(duì)于目標(biāo)圖像的特征權(quán)重分布,比如我們重點(diǎn)關(guān)注的特征的權(quán)重相對(duì)較高,而不關(guān)心的特征權(quán)重則相對(duì)較低,這個(gè)權(quán)重分布被加到原圖的特征上,為隨后的任務(wù)提供參考,使其更多地關(guān)注重點(diǎn)特征,放棄一些不重要的特征,這樣能夠顯著提高效率.
近年,眾多學(xué)者將Attention 機(jī)制與深度學(xué)習(xí)的結(jié)合研究中不斷探索,使二者相得益彰,其中,提取掩膜(mask)成為一個(gè)很好的手段. 掩膜給圖像添加一層新的權(quán)重,使圖像中的重點(diǎn)變得突出,然后通過(guò)學(xué)習(xí)和訓(xùn)練,讓深度神經(jīng)網(wǎng)絡(luò)在后續(xù)工作中繼承關(guān)注新圖片中的重點(diǎn)或者說(shuō)我們感興趣的區(qū)域,注意力由此而來(lái).
受Self-Attention[21]的啟發(fā),我們需要注意的僅是含有有效視網(wǎng)膜信息的圖像,或者說(shuō)是含有血管信息的圖像,在本文中也就是圓形內(nèi)部的信息這部分是我們的感興趣區(qū)域(ROI). 由此本文在生成器部分添加了一種Attention 機(jī)制,將其命名為Retina-Attention,整體結(jié)構(gòu)如圖4 所示.
圖4 Retina-Attention 結(jié)構(gòu)
該機(jī)制分為兩個(gè)步驟:
(1)提取掩膜,通過(guò)二值分割將ROI 區(qū)域與無(wú)關(guān)背景區(qū)別開(kāi)來(lái),如圖5.
圖5 提取掩膜
(2)將掩膜與RU-Net 的倒數(shù)第2 層特征映射進(jìn)行相乘,如圖4 中長(zhǎng)箭頭所示. 如式(7)所示:
其中,R表示ROI (感興趣區(qū)域),也就是我們注意力要關(guān)注的區(qū)域,F表示特征. 這個(gè)Attention 機(jī)制的作用就是讓G只關(guān)注眼底圖像中有信息的視網(wǎng)膜區(qū)域(圓形內(nèi)部的區(qū)域),放棄沒(méi)有有效信息的噪聲背景(圓形外黑色區(qū)域),這樣做能有效提高分割效率,防止G生成不必要的信息來(lái)占用D的效率. 提取掩膜有時(shí)由于提取之后信息量太少?gòu)亩鴮?dǎo)致分類器網(wǎng)絡(luò)層數(shù)堆疊大大減少的問(wèn)題,采用這種掩膜與RU-Net 中的殘差網(wǎng)絡(luò)結(jié)合的方式對(duì)當(dāng)前網(wǎng)絡(luò)層的信息加上掩膜,同時(shí)也能夠把上一層的信息傳遞下來(lái),可以有效防止提取信息量較少問(wèn)題的發(fā)生.
為了區(qū)別G(z)與真實(shí)值,判別器D設(shè)計(jì)成簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò)并且運(yùn)用全局平均池化層(global average pooling,GAP),選擇GAP 的原因是GAP 能夠削減參數(shù)數(shù)量,有助于給模型訓(xùn)練提速.
由于G(z)是基于塊的,所以在輸入D之前需要先進(jìn)行重組再輸入. 關(guān)于輸入圖像,正樣本是經(jīng)過(guò)ACE處理后的眼底圖像和專家手工分割圖的組合,負(fù)樣本是經(jīng)過(guò)ACE 處理后的眼底圖像和G(z)組合,通道數(shù)設(shè)置成2.
樣本進(jìn)入判別器時(shí),卷積提取特征設(shè)置成步長(zhǎng)2,大小3×3,激活函數(shù)選用ReLU,選取批標(biāo)準(zhǔn)化提高訓(xùn)練進(jìn)度,然后設(shè)置步長(zhǎng)1,大小3×3 的卷積提取特征,如圖6 所示,此時(shí)分辨率沒(méi)有改變,繼而通過(guò)2×2 的max-pooling 使分辨率下降,特征提取多次后,通道數(shù)為512. 最后采用Sigmoid 函數(shù),配合GAP 連接全連接層,得到D(x).
圖6 判別器部分
為了展示Retina-GAN 的性能,我們?cè)贒RIVE 數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn). 對(duì)于DRIVE 數(shù)據(jù)集的處理在第2 節(jié)中已經(jīng)做了一些介紹,選擇其一半圖像作為訓(xùn)練集,另外一半樣本作為測(cè)試集. DRIVE 圖像原始像素為565×584. 為了開(kāi)發(fā)一個(gè)方形數(shù)據(jù)集,我們將圖像壓縮為512×512 像素再進(jìn)行擴(kuò)充到3840 張. 在這個(gè)模型實(shí)現(xiàn)中,我們考慮了從DRIVE 擴(kuò)充數(shù)據(jù)集中隨機(jī)選擇一半圖像的patch 用于訓(xùn)練,其余的patch 用于驗(yàn)證,每個(gè)patch 的大小都是128×128.
實(shí)驗(yàn)選擇Adam 梯度下降方式,動(dòng)量項(xiàng)系數(shù)為默認(rèn)值,學(xué)習(xí)率設(shè)為0.0005,每訓(xùn)練一次G,隨后訓(xùn)練D,交替訓(xùn)練. 關(guān)于硬件,CPU 選擇英特爾i7 處理器,GPU 為英偉達(dá)GTX 1080.
模型訓(xùn)練步驟如下:
(1)將專家手工分割圖像輸入D進(jìn)行訓(xùn)練;
(2)把DRIVE 中的眼底圖像和掩膜輸入G得到G(z),再把G(z)與經(jīng)過(guò)ACE 處理后的眼底圖像標(biāo)記為負(fù)樣本輸入到D進(jìn)行訓(xùn)練;
(3)訓(xùn)練G,得到G(z)后再輸入D中繼續(xù)訓(xùn)練. 反向傳播的過(guò)程中D的參數(shù)沒(méi)有更新,只傳遞誤差,G的參數(shù)要更新和優(yōu)化;
步驟(1)–(3)迭代訓(xùn)練,令G(z)對(duì)于D而言能夠以假亂真.
進(jìn)行定量分析時(shí),選擇使用準(zhǔn)確性(accuracy,Acc)、靈敏度(sensitivity,Sen)以及特異性(specificity,Spe)這3 個(gè)性能指標(biāo). 具體計(jì)算公式如下:
TP代表血管被正確分類為血管的像素點(diǎn)數(shù),FP代表背景被誤分為血管的像素點(diǎn)數(shù),TN代表背景被正確分類為背景的像素點(diǎn)數(shù),FN代表血管被誤分為背景的像素點(diǎn)數(shù).
該方法展現(xiàn)了更精準(zhǔn)的分割效果,圖7 分別為專家手工標(biāo)注以及訓(xùn)練迭代1000 次,2000 次,4000 次的效果,方框里為血管的細(xì)節(jié)分支部分,隨著迭代次數(shù)的增多,血管的分支和細(xì)微部分逐漸詳細(xì).
圖7 血管細(xì)節(jié)圖
圖8 為在DRIVE 數(shù)據(jù)集上使用不同算法的效果;折線圖9–圖11 橫坐標(biāo)為測(cè)試集圖片序號(hào),縱坐標(biāo)為指標(biāo)對(duì)應(yīng)的值,這些數(shù)據(jù)顯示了Retina-GAN 在各個(gè)指標(biāo)上均有提升. 這些數(shù)字表明,與GAN、U-Net、RU-Net等方法相比,本文設(shè)計(jì)的模型在訓(xùn)練和驗(yàn)證階段提供更好的性能,在精確度、靈敏度均有提高. 證實(shí)了Retina-GAN 對(duì)任務(wù)分割的有效性.
圖8 實(shí)驗(yàn)結(jié)果
圖9 多種方法在DRIVE 數(shù)據(jù)集上的準(zhǔn)確率
圖10 多種方法在DRIVE 數(shù)據(jù)集上的靈敏度
圖11 多種方法在DRIVE 數(shù)據(jù)集上的特異度
同時(shí),預(yù)處理方面,為了與滕梓晴[22]和張?zhí)扃鵞23]使用的CLAHE 做比較,我們分別使用ACE 和CLAHE對(duì)DRIVE 數(shù)據(jù)集進(jìn)行預(yù)處理,從表1 和表2 的數(shù)據(jù)可以看出,不管是GAN 還是Retina-GAN 上,ACE 的表現(xiàn)均優(yōu)于CLAHE,實(shí)驗(yàn)效果更好.
表1 多種方法在DRIVE 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
表2 ACE 和CLAHE 在不同算法上的表現(xiàn)
盡管通過(guò)實(shí)驗(yàn)證明了Retina-GAN 結(jié)構(gòu)的效果在以往算法上有了提升,但對(duì)于靈敏度的指標(biāo)還有很大提升空間,未來(lái)的工作將圍繞在不影響準(zhǔn)確率的情況下來(lái)優(yōu)化靈敏度展開(kāi).