彭仁杰, 梁禮明, 馮駿, 尹江
(江西理工大學電氣工程與自動化學院, 贛州 341000)
視網(wǎng)膜疾病如糖尿病型視網(wǎng)膜病[1]嚴重損害人們的血液循環(huán)系統(tǒng),可能導致高血壓等疾病。而臨床中視網(wǎng)膜中的血管必須依靠眼底照相機輔助觀察,由于血管結(jié)構復雜、不均勻血管且對比度差,同時照明不均勻和存在大量非血管背景等原因,利用計算機對眼部血管進行輔助分割是非常具有挑戰(zhàn)性的課題。在傳統(tǒng)圖像處理領域如水平集[2]算法和傳統(tǒng)機器學習領域如隨機森林[3]算法,其算法效果對特征選擇有強依賴性,不具備很強的泛化性。隨著深度學習的發(fā)展,對于圖像分割不再需要手工設計提取特征,CcNet[4]通過交叉連接融合主要和次要路徑的多級特征分割血管,然而該網(wǎng)絡在分割病灶附近的血管時會誤認為細的血管也要用細的和粗的血管融合來獲得完整血管。文獻[5]采用U-Net架構并引入上下文解碼器,這種上下文解碼器使用密集擴張卷積來提取更多高級特征。在DDNet[6]中將密集擴張塊結(jié)合到編碼解碼架構中使得網(wǎng)絡更加有效,但是多個擴張塊在提取特征的過程中會導致特征彌散,分割血管出現(xiàn)過粗現(xiàn)象。文獻[7]提出邊緣條件的生成對抗網(wǎng)絡,在融合輪廓信息的同時進行多路徑特征提取,但是網(wǎng)絡參數(shù)量極大且訓練過程不穩(wěn)定。
上述算法存在的諸多問題,現(xiàn)提出對應改進方案:針對文獻[7]存在參數(shù)量極大且訓練不穩(wěn)定的問題,本文算法采用編碼解碼結(jié)構,其中編碼器采用多感受野殘差編碼模塊大幅度縮減網(wǎng)絡參數(shù)量并引入空間注意力和特征映射保證訓練過程的穩(wěn)定性;針對文獻[5]在血管分割過程中采用雙路徑導致細血管分割過粗問題,在網(wǎng)絡內(nèi)部采用多分支U-block結(jié)構通過網(wǎng)絡訓練自動融合特征,同時解決淺層卷積特征映射過程中特征提取不充分的問題;為了解決文獻[5-6]中大量擴張卷積導致的特征彌散問題,引入非對稱金字塔非局部模塊和非對稱融合非局部塊直接提取圖像中存在的長期依賴關系并融合網(wǎng)絡中的上下文信息,同時通過自注意機制緩解特征彌散情況,以期提升模型的準確性和泛化性。
對于給定圖像I,利用霍特林變換(Karhunen-Loeve, K-L)分析三個通道統(tǒng)計信息,篩選出最不相關的組合方式,并將三通道圖片加權融合成一張灰度圖??紤]到經(jīng)過變換融合后的灰度圖像血管結(jié)構和背景對比度并不明顯,因此在圖像歸一化后采用限制對比度自適應直方圖均衡化操作,同時引入gamma矯正和非銳化掩蔽抑制噪聲并進一步提高血管與背景對比度。
(1)
Id=Iγ+λ(Iγ-Iγ*Gσ)
(2)
式中:Ig為經(jīng)過加權融合后的灰度圖像;γ為gamma矯正系數(shù);Iγ為gamma矯正的灰度圖像;Id為預處理后的灰度圖片;λ為邊緣增強系數(shù);*為卷積操作;Gσ為二維高斯卷積核,即
(3)
式(3)中:x、y為對應圖片像素點坐標;σ為高斯函數(shù)標準差。最后得到的圖片去除了大部分噪聲,同時提升血管與背景的對比度,如圖1所示。
圖1 原圖及預處理后的圖片F(xiàn)ig.1 Original image and preprocessed image
早期通過不同大小的卷積核、短連接和殘差模塊使多尺度特征學習能力不斷深化。與大多數(shù)利用不同分辨率的特征方法提高效果不同,文獻[8]提出一種簡單而有效的多尺度處理方法,該網(wǎng)絡多尺度是指在更精細水平上的多個可用感受野。用多個低通道的卷積核代替一個3×3的高通道卷積核,并以類似于殘差分層的方式連接。將特征圖按照通道方向分裂成大小一致的4個部分:第一部分特征直接映射;第二部分經(jīng)過3×3卷積后特征圖一部分直接映射,而另一部分與下一部分特征圖融合,并進入下一部分卷積中,如此重復。最后將4部分特征圖用1×1卷積核融合。所提方法在更精細的級別上利用多尺度的潛力,與以往單個3×3卷積相比,改進模塊分別擁有1、3、5、7四重感受野。具體公式為
(4)
式(4)中:i為對應支路;ki為對應支路3×3卷積操作;xi為模塊對應支路輸入的特征圖;yi為模塊對應支路輸出的特征圖。結(jié)構如圖2所示。
為了更加有效地提取圖片中微小血管的信息,本文將兩個多尺度殘差瓶頸塊串聯(lián)堆疊以實現(xiàn)更大的感受野,并引入改進空間注意力機制使得編碼模塊更加關注于感興趣的重要特征部分。改進空間注意力機制在原有文獻[9]的基礎上,僅保留最大
圖2 多感受野殘差模塊Fig.2 Multi-receptive field residual module
池化操作匯集特征,并在此之前用1×1卷積降維減少參數(shù)量,并通過步長為2的卷積操作減少特征圖大小。再利用最大池化層匯集特征后由兩個3×3卷積代替原有7×7卷積。然后通過上采樣操作恢復到原來的分辨率并與未進行處理的特征進行融合提高網(wǎng)絡泛化性,最后通過1×1卷積恢復到原來的通道數(shù)并通過sigmoid歸一化獲得注意力特征圖(圖3)。
圖3 改進空間注意力層Fig.3 Improved spatial attention layer
一些研究表明,如果充分利用網(wǎng)絡的長期依賴關系,性能可以得到大幅度的改善[10]。卷積計算和遞歸計算分別在空間和時間上處理局部鄰域,需要逐步傳播信息才能捕捉長期依賴關系。由于單個卷積核的感受野非常有限,僅依賴卷積操作難以完全覆蓋相關的區(qū)域。但如果使用大的卷積核或者深的網(wǎng)絡則需要大量的計算量和參數(shù),效率低下。雖然近幾年擴張卷積的出現(xiàn)緩解了這個問題,但是擴張率過大會導致提取的特征彌散,反而對最終的結(jié)果造成不利的影響。而后出現(xiàn)的多尺度全局操作如空洞空間卷積池化[11]( atrous spatial pyramid pooling, ASPP)、金字塔池化[12]( pyramid pooling module, PPM)一定程度上緩解了上述問題。
為了整合更多場景級語義上下文信息和語境信息,提出諸如條件隨機場(conditional random field,CRF)等技術以引入全局上下文和結(jié)構化信息,雖然功能強大但是體系結(jié)構復雜。文獻[13]將
深度學習和傳統(tǒng)非局部塊(non-local block)方法結(jié)合起來。將給定輸入量分為Query、Key和Value三條支路,將Query和Key兩條支路的每張?zhí)卣鲌D轉(zhuǎn)換成一維,并進行矩陣乘法得到一個關聯(lián)型矩陣,再通過softmax層后實現(xiàn)注意力機制。接著將歸一化后的關聯(lián)矩陣與Value支路矩陣相乘,得到經(jīng)過距離依賴加強后的特征圖??紤]到矩陣乘法所帶來的高復雜性,同時Key和Value兩條支路只需要抽取幾個代表性的點就能顯著提高性能。文獻[14]提出一種簡單而有效的非對稱金字塔非局部模塊(asymmetric pyramid non-local,APN),將金字塔池化策略和非本地塊相結(jié)合起來,既可大幅度減少計算量,又能減小冗余特征的干擾,能夠簡單高效地捕捉深度神經(jīng)網(wǎng)絡的長期依賴性。網(wǎng)絡結(jié)構如圖4所示。
同時不同層次的特征融合有利于最終的分割效果[15]。針對一般的非局部模塊僅有一個輸入,本文引入非對稱融合非局部塊(asymmetric fusion non-local block, AFN),從兩個不同的層次獲取輸入特征圖,能夠繼承APN的優(yōu)點,在不影響性能的情況下更高效地提取整張圖片隱含的長期依賴關系。其表達公式為
(5)
(6)
(7)
(8)
將得到的相似性矩陣歸一化并與Value支路中的二維特征向量矩陣相乘并用1×1卷積恢復其通道數(shù)。
圖4 特征融合模塊Fig.4 Feature fusion module
YF=Wo(WsVFθv)
(9)
式(9)中:Ws為softmax矩陣歸一化操作;Wo為1×1卷積操作;YF為最終輸出。
以往解碼模塊大多采用多個卷積核串聯(lián)堆疊,從底部特征圖和同分辨率編碼器特征映射融合解碼。但從底部傳遞的特征在下采樣過程中會出現(xiàn)特征損失,而從編碼器映射過來的特征提取并不充分,僅通過單個卷積層線性堆疊很難進行有效的解碼。文獻[16]提出了兩級嵌套U型結(jié)構,顯著性對象檢測取得巨大成功。受此啟發(fā),提出一種微型U型特征解碼模塊(U-block)作為解碼單元,針對以往的U-net網(wǎng)絡解碼器收集來自底層部分缺失特征和同分辨率編碼部分的特征提取不充分問題。該模塊以中間特征圖為輸入,融合多尺度上下文信息并進行二次編碼,有效地提取來自編碼器未充分編碼的特征,提高特征聚合能力。多尺度特征在逐步下采樣的過程中蒸餾信息,并通過逐漸上采樣、連接和卷積解碼成高分辨率的特征圖。該過程減輕了由高通道3×3卷積直接上采樣導致的精細細節(jié)損失。同時模塊使用多個池化操作且卷積核個數(shù)較少使得增加了整個體系結(jié)構的深度而并沒有顯著增加計算成本。為了兼顧速度,考慮到越小特征圖在池化過程中信息丟失越嚴重的問題,對不同位置的U-block塊深度進行調(diào)整。
基于上下文特征的視網(wǎng)膜血管分割算法,其網(wǎng)絡主要分為3個部分:解碼器、編碼器和上下文特征融合。解碼器由3組多感受野殘差編碼器模塊組成,中間由3組最大池化層連接,對經(jīng)過預處理后的圖片進行特征提取。上下文特征提取模型由3個擴張率分別為1、2、4的3×3擴張卷積以及兩個長期依賴關系提取模塊組成:AFN和APN,能夠最大化的提取到圖片中存在的長期依賴關系并進行有效的特征融合。解碼器則由3個不同深度的U-block組成,對來自底層和同分辨率編碼器特征映射兩部分進行融合并二次編碼,再進行深度解碼,盡可能多地解碼出特征,通過上采樣操作將特征圖還原到初始分辨率大小,最后通過sigmoid層獲得最終的分割;如圖5所示。
基于Ubuntu16.04操作系統(tǒng),使用tensorflow2.0端口進行模型訓練。計算機配置為Nvidia GeFore GTX2070 GPU,Intel Core TM i7-6700H CPU,16 G內(nèi)存。CUDA版本為10.0。優(yōu)化器采用Nadam優(yōu)化算法,epoch為50,初始學習率為1×10-3,前20個epoch不衰減,batch size為16。
選用DRIVE數(shù)據(jù)集來評估所提方法,采用第一金標準圖片作為訓練標簽,第二金標準圖片作為測試標簽。DRIVE數(shù)據(jù)集包括分辨率為565×584的20張訓練集圖片和20張測試集圖片。
由于數(shù)據(jù)集在原始采集過程中會出現(xiàn)偽影、畸變等情況,血管與背景之間的對比并不明顯。因此先采用K-L變換加權融合三通道圖片獲得最優(yōu)灰度圖,然后利用自適應直方圖均衡各部分圖片亮度,并采用上面提到的預處理進一步提升血管與背景之間的對比度。同時因為DRIVE數(shù)據(jù)集訓練集數(shù)據(jù)量小,因此對數(shù)據(jù)進行旋轉(zhuǎn),每隔18°旋轉(zhuǎn)一次,這樣可以將數(shù)據(jù)擴充到原來的20倍,即DRIVE數(shù)據(jù)集400張訓練圖片。雖然經(jīng)過一定量的數(shù)據(jù)擴充,但是如果拿整張圖片進行訓練模型容易過擬合并在測試階段圖像出現(xiàn)誤分割形成偽影。因此為了更好地適應小數(shù)據(jù)模型,同時增強泛化能力,采用大小64×64的滑動窗口對原圖進行隨機采樣,并取其中信息熵最高的20 000張小碎塊作為訓練圖片。測試時將原圖均勻裁剪成64×64的小碎塊,滑動步長為10,每個像素點的值有多個碎塊加權求得,并通過預設閾值確定像素點的種類。
圖5 網(wǎng)絡結(jié)構圖Fig.5 Network structure diagram
3.3 視網(wǎng)膜血管評價指標
定義以下指標用于定量分析網(wǎng)絡性能:
(10)
(11)
(12)
式中:TP、TN、Fp和FN分別為真陽性、真陰性、假陽性和假陰性;σaccuracy為準確率,是指正確分類血管像素和正確分類背景占整張圖片像素的百分比;σsensitivity為敏感度,指的是正確分類血管像素占真實血管像素的百分比;σspecificity為特異性,指的是正確分類的非血管像素占真實非血管像素的百分比。同時通過真陽性率和假陰性率之間的關系繪制受試者工作特征曲線(receiver operating characteristic curve, ROC)并求出ROC曲線下與坐標軸圍成的面積(area under curve, AUC)。
3.4.1 不同視網(wǎng)膜分割算法對比分析
為了更好地反映本文算法血管分割性能,現(xiàn)與多位其他學者提出的算法進行對比,表1給出了不同算法的準確率、靈敏度、特異性和AUC值。
本文算法與傳統(tǒng)U-Net算法相比在算法準確率、敏感度、特異性和AUC方面分別提高了0.09%、6.11%、2.76%,算法整體性能較優(yōu)。雖然本文算法在準確度方面低于文獻[24],但是在其他三個方面都有很大提升。圖6為部分實驗對比結(jié)果。
視網(wǎng)膜血管結(jié)構復雜且多變,而且數(shù)據(jù)集樣本數(shù)量少,極易受到外界條件和病變區(qū)域干擾。圖7為血管局部的一些分割細節(jié)對比圖,包括交叉血管、微血管和低對比度血管。從對比分割結(jié)果來看,本文所提算法通過引入多感受野編碼模塊、捕捉長期依賴關系的非對稱金字塔局部模塊及多個U-Block,有效地避免網(wǎng)絡分割過程中出現(xiàn)偽影、微血管斷裂和誤分割的情況。能夠克服低對比度、病變等因素的影響。
表1 DRIVE數(shù)據(jù)集視網(wǎng)膜血管分割結(jié)果對比Table 1 Comparison of retinal vessel segmentation results in DRIVE dataset
圖6 不同算法對比圖 Fig.6 Comparison results of different algorithms
圖7 局部血管區(qū)域分割圖Fig.7 Partial vessel region segmentation images
提出了一種新的基于編碼-解碼結(jié)構的視網(wǎng)膜血管分割算法[24]。首先利用K-L變換轉(zhuǎn)換成灰度圖,融合經(jīng)過自適應直方圖均衡化、gamma矯正和非銳化掩蔽,在去除噪聲的同時提升血管與背景的對比度;然后利用3個多感受野殘差編碼模塊對輸入的圖片進行特征提取,并在底部進行全局長期依賴關系的獲得并進行有效的特征融合;最后經(jīng)過3個深度不一的U-Block及上采樣對圖形進行重構。本文算法能夠較好地解決由于樣本不足而造成的誤分割,能夠很好地捕捉到目標復雜的形態(tài)。但是對于部分微小血管依然有誤分割,無法完美識別病灶區(qū)域,同時模型參數(shù)量較高。因此以后的工作重點集中在對病灶部分的識別和對部分網(wǎng)絡結(jié)構優(yōu)化以減少參數(shù)量。