崔少國,文 浩,張宇楠,唐藝菠,杜 興
重慶師范大學(xué)計(jì)算機(jī)與信息科學(xué)學(xué)院,重慶401331
現(xiàn)代醫(yī)學(xué)中,眼睛對人類的重要性不言而喻。而各種視網(wǎng)膜疾病也成為一個(gè)不可忽視的問題。醫(yī)學(xué)影像分割是智能輔助診斷過程中一個(gè)重要的處理步驟,它能幫助醫(yī)生進(jìn)行以圖像為指引的醫(yī)學(xué)干預(yù)或更有效的放射科診斷等。在臨床醫(yī)學(xué)應(yīng)用中,視網(wǎng)膜血管提取技術(shù)[1]通過對視網(wǎng)膜血管進(jìn)行一系列的分析,能夠輔助醫(yī)生診斷患者是否患有眼部相關(guān)疾病和高血壓或糖尿病等一系列疾病。光學(xué)相干斷層掃描成像(optical coherence tomography angiography,OCTA)是建立在光學(xué)相干斷層掃描(optical toherence tomography,OCT)上的一種嶄新的成像模態(tài),是一種新興的非侵入式成像技術(shù),能觀察不同視網(wǎng)膜層的血管信息。因此,OCTA 逐漸成為眼底相關(guān)疾病觀測的重要工具之一。但人工手動分割的方法成本高昂,費(fèi)時(shí)費(fèi)力,分割質(zhì)量與操作者自身的從業(yè)水平息息相關(guān),受主觀因素影像較大,效率較低。因此,隨著日常眼科疾病患者數(shù)量的急劇上升,提出一種高效的視網(wǎng)膜血管分割方法[2]已經(jīng)迫在眉睫。
近年來,通過組合低層特征進(jìn)而形成抽象的深層特征,卷積神經(jīng)網(wǎng)絡(luò)[3-4]能更好地完成各類視覺任務(wù)。深度學(xué)習(xí)[5]通過從數(shù)據(jù)中學(xué)習(xí)的方式去解決各類問題,早期的醫(yī)學(xué)圖像分割算法以全卷積神經(jīng)網(wǎng)絡(luò)(fully convolutional networks,F(xiàn)CN)[6]為核心,旨在重點(diǎn)解決如何更好地從卷積下采樣中恢復(fù)丟掉的信息損失。后來的醫(yī)學(xué)圖像分割算法逐漸發(fā)展為以下三類:首先是以U-net為代表的U形“編解碼對稱”結(jié)構(gòu)設(shè)計(jì)[7-8];其次是以DeepLab[9]為代表的引入空洞卷積的設(shè)計(jì);最后是基于Transformer編碼器中Self-Attention自注意力結(jié)構(gòu)的設(shè)計(jì)[10-11]。視網(wǎng)膜血管數(shù)據(jù)集普遍存在樣本數(shù)量較少的特點(diǎn),而基于自注意力計(jì)算的分割網(wǎng)絡(luò)和DeepLab 系列都需要大量的數(shù)據(jù)進(jìn)行訓(xùn)練才能達(dá)到較好的分割結(jié)果,只有U-net在數(shù)據(jù)集樣本數(shù)量較少的情況下也能取得不錯(cuò)的分割效果。
因此U-net 在醫(yī)學(xué)圖像分割領(lǐng)域得到了極大的關(guān)注,后來的研究者大多也是基于U-net進(jìn)行改進(jìn)的,如肖曉等人[12]通過在U-net 的基礎(chǔ)上增加殘差學(xué)習(xí),提出的Res Unet針對血管細(xì)節(jié)特征的提取方式進(jìn)行再優(yōu)化,但同時(shí)也增加了模型的復(fù)雜度;周縱葦?shù)热薣13]提出的Unet++利用圖像分割中的多尺度特征來重新設(shè)計(jì)跳躍鏈接達(dá)到提高分割質(zhì)量的目的,并設(shè)計(jì)一種新的剪枝方案,加快推理的速度,但勢必也會增加網(wǎng)絡(luò)的深度和計(jì)算量;Valanarasu 等人[14]提出的Medical Transformer 在編解碼器對稱結(jié)構(gòu)的基礎(chǔ)上引入帶門控的軸向注意力機(jī)制,并使用“局部全局”的訓(xùn)練策略進(jìn)一步提高分割性能,但同時(shí)也需要大量的數(shù)據(jù)訓(xùn)練才能達(dá)到較好的效果,并且訓(xùn)練和推理時(shí)間較長。
而基于U-net改進(jìn)的視網(wǎng)膜血管分割方法中[2],F(xiàn)u等人[15]將條件隨機(jī)場引入卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)中用于血管分割優(yōu)化分割結(jié)果。Eladawi等人[16]將馬爾可夫隨機(jī)場和CNN相結(jié)合用于提升OCTA 視網(wǎng)膜血管分割的精度。Gu 等人[17]提出帶有殘差結(jié)構(gòu)和空洞卷積的U 形網(wǎng)絡(luò)用于血管分割并提高分割效果。Li 等人[18]提出一種圖像投影網(wǎng)絡(luò)(IPN),用于進(jìn)行有效的特征選擇和降維,實(shí)現(xiàn)3D輸出到2D的端對端結(jié)構(gòu)的OCTA血管分割。Wu等人[19]提出一種結(jié)合形態(tài)學(xué)特征的連通性分析算法,是用于消除噪聲和偽影的OCTA 微血管算法。蔣蕓等人[20]提出使用條件深度卷積生成對抗網(wǎng)絡(luò)的方法對視網(wǎng)膜進(jìn)行分割提高分割能力。Ma 等人[21]提出一種先分別分割粗血管和細(xì)血管,再將分割結(jié)果融合并優(yōu)化最終分割結(jié)果的OCTA血管分割方法。Boudegga 等人[22]提出基于輕量級卷積塊的U-net,并針對視網(wǎng)膜圖像和血管特征提出預(yù)處理和數(shù)據(jù)增強(qiáng)步驟,提高分割效果。
視網(wǎng)膜血管末端細(xì)小、形狀不規(guī)則、分布不均勻且易與背景混淆是導(dǎo)致用U-net及其改進(jìn)對視網(wǎng)膜血管進(jìn)行分割準(zhǔn)確率下降的主要原因。然而U-net及其改進(jìn)在增加模型復(fù)雜度的同時(shí)也增加了額外的計(jì)算量,所耗費(fèi)的計(jì)算機(jī)資源較高,分割時(shí)間也相對較長。
針對上述問題,本文提出一種將深度可分離卷積和卷積塊注意力機(jī)制相結(jié)合的視網(wǎng)膜血管分割算法。首先,用步長為2的卷積層來代替最大池化層進(jìn)行特征選擇。隨后,在每個(gè)采樣層中用深度可分離卷積代替常規(guī)的卷積進(jìn)行特征學(xué)習(xí)的同時(shí)降低參數(shù)量。最后,添加一個(gè)輕量級高效的卷積塊注意力加權(quán)模塊,采用學(xué)習(xí)的方式獲取特征圖中通道信息和空間信息的重要程度,并且按照學(xué)習(xí)到的重要程度自適應(yīng)地調(diào)整每個(gè)特征圖的權(quán)重,完成對特征圖的重新標(biāo)定。最終本文方法更注重細(xì)微處的分割,提高了分割的精度,同時(shí)占用較少的計(jì)算資源。
本文以U-net 為基準(zhǔn)模型,提出一種基于深度可分離卷積與卷積塊注意力模塊(convolutional block attention module,CBAM)的視網(wǎng)膜血管分割算法。在特征編碼階段,每層使用一個(gè)深度可分離卷積塊進(jìn)行特征提取,然后增加一個(gè)CBAM 模塊,采用學(xué)習(xí)的方式獲取每個(gè)特征圖中通道信息和空間信息的重要程度,并且按照學(xué)習(xí)到的重要程度全自動自適應(yīng)地調(diào)整每個(gè)特征圖的權(quán)重,提高對模型存在積極影響參數(shù)的權(quán)值,降低對模型存在消極影響參數(shù)的權(quán)值,完成對特征圖的重新標(biāo)定,隨后使用步長為2 的卷積層進(jìn)行下采樣縮小特征圖大小。在特征解碼階段,編碼階段的高分辨率特征與上采樣特征進(jìn)行拼接,后接一個(gè)可分離卷積塊和一個(gè)CBAM模塊,在最后一層使用普通的卷積用于輸出最后的預(yù)測圖。模型采用雙線插值對特征圖進(jìn)行上采樣。同時(shí),在卷積運(yùn)算后都執(zhí)行ReLU 函數(shù)使輸出變?yōu)榉蔷€性。具體的結(jié)構(gòu)圖如圖1所示。
圖1 本文方法結(jié)構(gòu)圖Fig.1 Architecture of proposed method
其中,網(wǎng)絡(luò)輸入的通道數(shù)為3,輸出通道數(shù)為2,分別對應(yīng)需要預(yù)測的兩種類別,即劃分為前景的視網(wǎng)膜血管區(qū)域和劃分為背景的非血管區(qū)域。圖中,DSC Block是深度可分離卷積塊,CBAM Block 是CBAM 模塊,Conv Block 是常規(guī)卷積塊,UpSampling 是上采樣層,DownSampling是下采樣層,Copy是跳躍連接。
U-net是Ronneberger等人[23]提出的一種對稱的網(wǎng)絡(luò)結(jié)構(gòu),它的對稱編解碼結(jié)構(gòu)和跳躍連接結(jié)構(gòu),將圖像的高維特征與低維特征相結(jié)合,提高圖像從小尺寸到大尺寸還原過程中填補(bǔ)缺失和空白值的能力,有助于提升網(wǎng)絡(luò)模型進(jìn)行像素級分類的能力。并且U-net 具有簡單、靈活并且在中小型訓(xùn)練數(shù)據(jù)集上也能取得不錯(cuò)的分割效果等優(yōu)點(diǎn)。
U-net中池化層主要有三個(gè)作用,分別是:增加卷積神經(jīng)網(wǎng)絡(luò)特征的平移不變性;池化層的降采樣使得高層特征具有更大的感受野;池化層的逐點(diǎn)操作相比卷積層的加權(quán)和更有利于優(yōu)化求解。但池化操作在跳格平移過程中勢必會出現(xiàn)忽視或丟失細(xì)節(jié)特征等問題。由于OCTA-500分割數(shù)據(jù)集中視網(wǎng)膜血管并不是集中分布在視網(wǎng)膜血管圖像的某一個(gè)區(qū)域中,而是不規(guī)則且不均勻的分布在整張圖像中。如果采用池化操作勢必會出現(xiàn)丟失部分區(qū)域的血管微小處的細(xì)節(jié)特征,從而導(dǎo)致Unet 不能精確分割。因此本文用步長為2 的卷積層代替池化層,可以將其視為是參數(shù)可訓(xùn)的池化層,有效地彌補(bǔ)了傳統(tǒng)U-net分割過程中因池化操作而丟失細(xì)節(jié)特征的問題。讓網(wǎng)絡(luò)通過學(xué)習(xí)的方式自動選擇哪些是分割過程中的冗雜無關(guān)信息需要被拋棄,哪些是血管的細(xì)節(jié)特征不能被拋棄。
深度可分離卷積(depthwise separable convolutions)是Chollet等人[24]提出的一種卷積方式,如圖2所示。卷積的主要作用是特征提取。常規(guī)卷積操作是實(shí)現(xiàn)通道和空間相關(guān)性的聯(lián)合映射。而深度可分離卷積操作是將常規(guī)卷積操作分解為一個(gè)深度卷積加上一個(gè)逐點(diǎn)卷積的過程,使其在執(zhí)行空間卷積的同時(shí),并保持通道之間分離,然后按照深度方向進(jìn)行卷積。
圖2 深度可分離卷積結(jié)構(gòu)圖Fig.2 Deep separable convolutional architecture
與常規(guī)卷積操作相比,深度可分離卷積操作如圖3所示,具有能降低計(jì)算復(fù)雜度,減少參數(shù)量等優(yōu)點(diǎn)。深度可分離卷積分為逐通道卷積和逐點(diǎn)卷積先后兩個(gè)步驟,分別如圖4所示。
圖3 常規(guī)卷積操作Fig.3 Normal convolution
圖4 逐通道卷積操作和逐點(diǎn)卷積操作Fig.4 Depthwise convolution and pointwise convolution
深度可分離卷積和常規(guī)卷積操作相比其擴(kuò)寬了網(wǎng)絡(luò)寬度的同時(shí),也極大地減少了網(wǎng)絡(luò)的參數(shù)量和降低了計(jì)算過程中所耗費(fèi)的資源。已有實(shí)驗(yàn)證明深度可分離卷積能在保證任務(wù)精度的同時(shí)降低參數(shù)量[24-27]。由于OCTA-500 用于分割的數(shù)據(jù)集存在樣本數(shù)量偏少的特點(diǎn),所以深度可分離卷積操作和常規(guī)卷積操作相比,勢必在降低網(wǎng)絡(luò)參數(shù)量、計(jì)算復(fù)雜度的同時(shí)也能獲得更好的學(xué)習(xí)效果。因此本文提出用深度可分離卷積操作代替U-net 每個(gè)采樣層中的常規(guī)卷積操作,將每層中用于特征提取的兩次常規(guī)卷積操作替換為一個(gè)深度可分離卷積塊。
CBAM 模塊是Woo 等人[28]提出,與Hu 等人[29]提出的通道注意力SE模塊(squeeze-and-excitation block)相似,是一種簡單且適用于卷積神經(jīng)網(wǎng)絡(luò)的通道空間注意力模塊。雖然SE 模塊對提升模型性能有效果,但是通常會忽略特征圖的位置信息,而位置信息對于生成空間選擇性特征圖是非常重要的。CBAM 提取空間和通道重要信息并結(jié)合,它提出給定一個(gè)中間特征映射,沿著兩個(gè)獨(dú)立的維度即通道和空間順序推斷注意力映射,然后將注意力映射乘以輸入特征映射以進(jìn)行自適應(yīng)特征細(xì)化。CBAM模塊也適用于分割任務(wù)[30],該模塊能夠自適應(yīng)的細(xì)化特征圖的映射,關(guān)注重要的特征信息并抑制不重要的特征信息,提升分割性能,其結(jié)構(gòu)如圖5所示。
圖5 CBAM塊結(jié)構(gòu)圖Fig.5 CBAM block architecture
CBAM 模塊是一個(gè)融合了兩種注意力機(jī)制的輕量級通用模塊,可以將其添加在任意網(wǎng)絡(luò)的卷積層后面。該模塊具體計(jì)算過程如以下公式所示:
其中,F(xiàn)表示特征圖(C×H×W) 的輸入,Mc是一維(C×1×1)的通道注意力圖,Ms是二維(1×H×W)的空間注意力圖,?表示乘法操作,F(xiàn)′是中間輸出(C×H×W),F(xiàn)″是最終的輸出(C×H×W) ,MLP 是多層感知機(jī),AvgPool 是平均池化操作,MaxPool 是最大池化操作,σ是sigmoid激活函數(shù),f7×7是卷積核大小為7×7 的卷積操作,[;]是通道維度的拼接操作。
圖6是通道注意力子模塊的操作過程,它比SE 模塊多了一個(gè)全局最大池化,而池化操作本身是提取高層次特征,不同的池化意味著提取的高層次特征更加豐富。首先,通過平均池化和最大池化操作聚合一個(gè)特征圖的空間信息,生成兩個(gè)空間上下文描述符:AvgPool(F)和MaxPool(F),這兩個(gè)描述符分別表示平均池化后的特征和最大池化后的特征。然后,這兩個(gè)描述符被前向送入一個(gè)由二者共享的網(wǎng)絡(luò)來生成通道注意力圖。具有一個(gè)隱藏層的多層感知機(jī)組成了這個(gè)共享網(wǎng)絡(luò)。每個(gè)空間上下文描述符經(jīng)過共享網(wǎng)絡(luò)處理之后,使用按位加法融合輸出特征向量通過sigmoid激活后得到Mc(F),將其和原輸入特征圖相乘生成通道注意力特征F′作為通道注意力子模塊的輸出。
圖6 通道注意力塊Fig.6 Channel attention module
圖7是空間注意力子模塊的操作過程。該子模塊將通道注意力子模塊的輸出特征圖作為輸入,首先完成基于通道的全局最大池化和全局平均池化操作,然后將這2 個(gè)結(jié)果基于通道進(jìn)行拼接,合并成一個(gè)通道數(shù)為2的特征圖,然后經(jīng)過一個(gè)卷積核大小為7×7 的標(biāo)準(zhǔn)卷積層后變?yōu)?個(gè)通道。緊接著經(jīng)過sigmoid激活生成空間注意力特征(spatial attention feature)Ms(F),最后將該特征和空間注意力子模塊的輸入特征做乘法,生成的特征圖F″作為空間注意力子模塊的輸出,同時(shí)也是CBAM模塊最終的輸出。
圖7 空間注意力塊Fig.7 Spatial attention module
CBAM 模塊能以極小的計(jì)算代價(jià)實(shí)現(xiàn)放大特征圖中對模型訓(xùn)練有利的參數(shù)的權(quán)重,縮小對模型不利的參數(shù)的權(quán)重,提取空間和通道重要信息并結(jié)合。由于OCTA-500中的視網(wǎng)膜血管圖像普遍存在血管末端細(xì)小且易于背景混淆的問題,而使用傳統(tǒng)U-net 分割過程中部分區(qū)域會出現(xiàn)血管末端丟失和血管細(xì)小處錯(cuò)誤分為背景的問題。因此本文在每個(gè)深度可分離卷積塊后(previous convolutional block)、下個(gè)卷積塊(next convolutional block)之前增加一個(gè)CBAM 模塊,繼續(xù)學(xué)習(xí)特征圖的空間信息和通道信息,提高網(wǎng)絡(luò)分割的精度。將CBAM模塊插入到兩個(gè)相鄰的卷積塊中的示意圖如圖8所示。
圖8 CBAM插入到相鄰的兩個(gè)卷積塊中Fig.8 Insert into two adjacent convolutional blocks
本實(shí)驗(yàn)采用的數(shù)據(jù)集是由陳強(qiáng)教授及其團(tuán)隊(duì)在IEEE-DataPort 上公開的2020 版視網(wǎng)膜血管數(shù)據(jù)集OCTA-500[31],它是目前最大的OCTA圖像數(shù)據(jù)集。OCTA-500包含500 名具有6 mm×6 mm 和3 mm×3 mm 兩種視野類型的測試者,該數(shù)據(jù)集共包含36萬張圖像,大小約為80 GB。OCTA-500 根據(jù)視野類型劃分為兩個(gè)子集OCTA_6M 和OCTA_3M,其中一個(gè)子集OCTA_6M 包含了300 名視野為6 mm×6 mm 的測試者;另一個(gè)子集OCTA_3M 包含了200 名視野為3 mm×3 mm 的測試者。每個(gè)子集都包含了六種不同區(qū)域的視網(wǎng)膜血管投影類型圖像,分別是整個(gè)眼睛(FULL)的OCTA圖像、整個(gè)眼睛的OCT圖像、內(nèi)界膜(ILM)和外叢狀層(OPL)的OCTA 圖像、內(nèi)界膜和外叢狀層的OCT 圖像、外叢狀層和布魯赫膜(BM)的OCTA圖像和外叢狀層和布魯赫膜的OCT圖像;還包含了年齡、性別、左右眼和疾病類型4種文本標(biāo)簽以及視網(wǎng)膜血管和無血管區(qū)兩種像素級分類標(biāo)簽,每個(gè)子數(shù)據(jù)集共包含三種不同的數(shù)據(jù)。
本次實(shí)驗(yàn)只選用了OCTA_6M 子集中用于分割的數(shù)據(jù)集,其中選用的原始圖像是整個(gè)眼睛的OCTA 圖像,選用的標(biāo)簽是視網(wǎng)膜血管分割標(biāo)簽,原始圖像和真實(shí)標(biāo)簽各300幅,原始圖像和真實(shí)標(biāo)簽的示例如圖9所示。
圖9 原始圖片和真實(shí)標(biāo)簽Fig.9 Input image and ground truth
本實(shí)驗(yàn)將數(shù)據(jù)集按照7∶3 的比例通過隨機(jī)抽樣的方式將其劃分為訓(xùn)練集和測試集,分別包含210幅訓(xùn)練圖像和90幅測試圖像。為統(tǒng)一后續(xù)對比實(shí)驗(yàn)中不同網(wǎng)絡(luò)的輸入尺寸,因此在送入網(wǎng)絡(luò)前統(tǒng)一將像素大小調(diào)整為512×512,如表1所示。
表1 數(shù)據(jù)集分布情況Table 1 Dataset distribution
在訓(xùn)練過程中,訓(xùn)練集數(shù)據(jù)量偏少是造成模型欠擬合的重要因素之一。由于OCTA圖像較為稀缺,OCTA-500視網(wǎng)膜血管分割數(shù)據(jù)集中數(shù)據(jù)量較少。因此為降低欠擬合的影響,本文采取對輸入圖像進(jìn)行隨機(jī)裁剪、翻轉(zhuǎn)、縮放、平移等方式對輸入圖像進(jìn)行在線數(shù)據(jù)增強(qiáng),使數(shù)據(jù)更加豐富多樣。
本實(shí)驗(yàn)為了對模型性能進(jìn)行定量比較,因此引入四種量化統(tǒng)計(jì)指標(biāo):(1)真陽性(true positives)指實(shí)際是血管也被準(zhǔn)確識別為血管的像素點(diǎn);(2)假陰性(false negatives)指實(shí)際是血管卻被識別為非血管的像素點(diǎn);(3)真陰性(true negatives)指實(shí)際是非血管也被準(zhǔn)確識別為非血管的像素點(diǎn);(4)假陽性(false positives)指實(shí)際是非血管卻被識別為血管的像素點(diǎn)。在此基礎(chǔ)上為準(zhǔn)確評價(jià)模型分割性能,本文使用綜合評價(jià)指標(biāo)F1 分?jǐn)?shù)(F-measure,F(xiàn)1)、交并比(intersection over union,IoU)、均交并比(mean intersection over union,mIoU)、靈敏度(sensitivity,Se)、特異性(specificity,Sp)、精確率(precision,Pre)和準(zhǔn)確率(accuracy,Acc)作為模型的評價(jià)指標(biāo),具體見參考文獻(xiàn)[7]。
本實(shí)驗(yàn)為了對模型參數(shù)的復(fù)雜度和訓(xùn)練過程中所耗費(fèi)的計(jì)算資源進(jìn)行定量比較,因此引入五種量化統(tǒng)計(jì)指標(biāo),分別是模型總參數(shù)量(params)、浮點(diǎn)運(yùn)算次數(shù)(FLOPs)所占空間大?。╩emory),模型讀取和寫入內(nèi)存的總消耗(Mem R+W)和乘法加法操作(MAdds)。
本實(shí)驗(yàn)是使用惠普(HP)臺式電腦在Windows 10操作系統(tǒng)下完成的,處理器為Intel?CoreTMi9-10920X CPU@3.50 GHz,運(yùn)行內(nèi)存為32 GB,顯卡為NVIDIA GeForce RTX 3080Ti(12 GB顯存),實(shí)驗(yàn)的仿真平臺為PyCharm,使用的Python 3.8編程語言,開源深度學(xué)習(xí)計(jì)算框架采用的版本是Pytorch 1.7.1。
訓(xùn)練過程中選用的優(yōu)化器為Adam,損失函數(shù)設(shè)置為交叉熵?fù)p失,學(xué)習(xí)率設(shè)置為0.000 5,根據(jù)顯卡性能選擇送入網(wǎng)絡(luò)的圖片批量大小為2,并根據(jù)訓(xùn)練結(jié)果保存最優(yōu)模型。
將本文方法與常見的視網(wǎng)膜血管分割方法FCN[6]、U-net[23]、SegNet[32]、U-net++[13]、Res Unet[12]和Medical Transformer[14](M Trans)一起在OCTA-500 數(shù)據(jù)集上進(jìn)行對比實(shí)驗(yàn)。除了Batch_size大小根據(jù)顯卡性能統(tǒng)一設(shè)置為2 以外,其余參數(shù)均使用各自論文中的最優(yōu)參數(shù)。分割結(jié)果如表2所示,訓(xùn)練損失函數(shù)變化曲線圖如圖10所示。
表2 不同網(wǎng)絡(luò)在OCTA-500的分割結(jié)果Table 2 Segmentation results of different networks單位:%
圖10 訓(xùn)練損失函數(shù)變化曲線圖Fig.10 Training loss function change results size
由圖10 可知,本文方法(圖中紅點(diǎn)曲線)在OCTA-500這種小型數(shù)據(jù)集上訓(xùn)練具有較快的收斂速度。本文方法和U-net 以及基于U-net 改進(jìn)的網(wǎng)絡(luò)(即Unet++和Res Unet)相比,訓(xùn)練中具有更小的損失值,并趨于最優(yōu)表現(xiàn)。從圖10可以看出,Unet++的訓(xùn)練損失較高,可能是由于文獻(xiàn)[13]中使用的數(shù)據(jù)集和本文的數(shù)據(jù)集在數(shù)據(jù)特性和樣本數(shù)量上有較大差異,因此直接將其參數(shù)運(yùn)用于本數(shù)據(jù)集并不合適,造成訓(xùn)練損失較大。而Medical Transformer(M Trans)由于網(wǎng)絡(luò)架構(gòu)的不同,雖然能有更小的訓(xùn)練損失值,但訓(xùn)練時(shí)間較長,訓(xùn)練輪次較多。并經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),M Trans 要訓(xùn)練近1 200 輪才能達(dá)到和本文方法訓(xùn)練20輪相近的分割效果。
由表2可知,本文方法與FCN、U-net和Res Unet等網(wǎng)絡(luò)相比能得到更好的分割效果。本文方法的F1分?jǐn)?shù)和U-net 的F1 分?jǐn)?shù)相比提升至80.01%,而IoU、mIoU、Sp、Acc、Pre 各項(xiàng)指標(biāo)也如表2 所示分別提升了5.27、3.25、2.06、1.26、10.27 個(gè)百分點(diǎn)。由于OCTA-500 視網(wǎng)膜血管數(shù)據(jù)集普遍存在圖像背景噪聲多、信噪比低等問題,所以導(dǎo)致U-net和FCN等網(wǎng)絡(luò)最后的分類結(jié)果比較粗糙,容易將血管末端局部區(qū)域錯(cuò)分為背景或?qū)⒉糠直尘板e(cuò)分為血管。
圖11和12 為兩個(gè)分割實(shí)例,分別展示了U-net 和Res Unet 針對上述兩類問題錯(cuò)分的情況以及本文方法的分割結(jié)果。圖11中,U-net和Res Unet將血管末端細(xì)小處的部分區(qū)域誤分為背景,導(dǎo)致假陰性值增大。圖12中,U-net和Res Unet分割過程中將背景錯(cuò)分為血管,導(dǎo)致假陽性值增大。而本文方法針對將血管末端錯(cuò)分為背景或?qū)⒉糠直尘板e(cuò)分為血管這兩類問題都有明顯的改善。
圖11 假陰性(FN)示意圖Fig.11 Example diagram of false negative
圖12 假陽性(FP)示意圖Fig.12 Example diagram of false positive
所有網(wǎng)絡(luò)的分割結(jié)果如圖13 所示。一方面,各個(gè)網(wǎng)絡(luò)的分割結(jié)果中會出現(xiàn)把部分背景錯(cuò)誤分類為血管的情況,如圖13 中case1 和case2 中圈出的部分所示。在case1中所有網(wǎng)絡(luò)的分割結(jié)果中都有將背景和血管發(fā)生不同程度錯(cuò)分的情況,而本文方法錯(cuò)分情況相對較少;在case2 中FCN、SegNet 和Unet++的分割結(jié)果中錯(cuò)分情況較為明顯。另一方面,在各個(gè)網(wǎng)絡(luò)的分割結(jié)果中,血管末端細(xì)小處會發(fā)生不同程度的丟失,如case3、case4 和case5 中圈出的部分所示。case3 中本文方法對血管末端的丟失較少;case4中U-net和Res Unet對血管末端丟失較為嚴(yán)重;case5 中SegNet、Res Unet 和M Trans的分割結(jié)果中血管末端丟失情況較為明顯??傮w上本文方法能更好地改善上述兩類問題,和其他網(wǎng)絡(luò)相比,本文方法的分割結(jié)果更接近真實(shí)結(jié)果。
圖13 不同網(wǎng)絡(luò)的分割結(jié)果圖Fig.13 Segmentation results with different networks
該消融實(shí)驗(yàn)為尋找網(wǎng)絡(luò)的最優(yōu)結(jié)構(gòu),在網(wǎng)絡(luò)結(jié)構(gòu)上做出改進(jìn),使用不同的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行對比實(shí)驗(yàn)。分別從深度可分離卷積塊的個(gè)數(shù)和不同的注意力模塊兩個(gè)角度進(jìn)行測試,并根據(jù)結(jié)果得到最優(yōu)的結(jié)構(gòu)。
2.6.1 深度可分離卷積塊
本文方法首先在U-net 基礎(chǔ)上增加一個(gè)CBAM 模塊;然后用一個(gè)深度可分離卷積塊(DSC Block)來代替每個(gè)采樣層中的兩次常規(guī)卷積操作進(jìn)行特征提取;最后用兩個(gè)深度可分離卷積塊來代替每個(gè)采樣層中的兩次常規(guī)卷積操作進(jìn)行特征提取。具體見表3。
表3 使用不同數(shù)量的深度可分離卷積塊的分割結(jié)果Table 3 Results of different numbers of DSC-Block單位:%
由表3可以發(fā)現(xiàn)U-net和CBAM模塊相結(jié)合的網(wǎng)絡(luò)與傳統(tǒng)的U-net相比,分割性能有輕微的下降,這是因?yàn)镺CTA-500數(shù)據(jù)集本身樣本數(shù)量偏小的特性導(dǎo)致參數(shù)量較大的U-net可能欠擬合。而用深度可分離卷積塊代替?zhèn)鹘y(tǒng)的卷積操作大幅度降低了參數(shù)量,所以帶深度可分離卷積塊的U-net 比傳統(tǒng)的U-net 在數(shù)據(jù)量較少的OCTA-500上的分割效果更好。而使用兩個(gè)深度可分離卷積塊的網(wǎng)絡(luò)結(jié)構(gòu)所得到的分割效果又有所降低。因此,將一個(gè)深度可分離卷積塊和一個(gè)CBAM 模塊相結(jié)合的網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)于其他三種網(wǎng)絡(luò)結(jié)構(gòu),這種網(wǎng)絡(luò)結(jié)構(gòu)在各項(xiàng)指標(biāo)上均能取得較好的結(jié)果。
2.6.2 注意力模塊
本文首先在U-net上用深度可分離卷積操作代替常規(guī)的卷積操作作為該部分實(shí)驗(yàn)的基準(zhǔn)模型(no attention module,NAM);然后在以此為基礎(chǔ)增加一個(gè)通道注意力模塊(channel attention module,CAM);最后將通道注意力模塊替換為通道空間注意力模塊(convolutional block attention module,OM)。具體實(shí)驗(yàn)結(jié)果見表4。
表4 模型改進(jìn)前后分割結(jié)果Table 4 Results of different method 單位:%
實(shí)驗(yàn)結(jié)果表明,增加了通道空間注意力CBAM 模塊的模型與沒有添加注意力模塊和只有通道注意力模塊的兩種模型相比,前者更注重視網(wǎng)膜血管末端細(xì)微處的分割;且在OCTA-500數(shù)據(jù)集上的分割效果更好。
借助Python 提供的工具包ptflops(https://pypi.org/project/ptflops/)計(jì)算并評估不同網(wǎng)絡(luò)的參數(shù)量、FLOPs、內(nèi)存占用量等參數(shù),不同網(wǎng)絡(luò)的復(fù)雜度對比如表5 所示。其中,表中缺失數(shù)據(jù)是由于該工具包只能統(tǒng)計(jì)基于卷積操作的相關(guān)參數(shù)。
表5 不同網(wǎng)絡(luò)的復(fù)雜度對比Table 5 Network complexity results of different models
由表5可知,本方法的參數(shù)量和FLOPs都有顯著的降低,也減少了訓(xùn)練所耗費(fèi)的計(jì)算資源。本文方法與U-net 相比,其參數(shù)量以及FLOPs 分別只有U-net 的19.2%和16.5%。本文方法與Res Unet和U-net++相比,它的參數(shù)量分別減少了79.7%和75.4%;它的FLOPs 也分別減少了87.5%和79.8%。并且本文方法所占用的總內(nèi)存為1 223 MB,讀取和寫入所耗費(fèi)的總內(nèi)存為2.69 GB,乘法加法操作數(shù)量(×109)為60.52,和基于U-net改進(jìn)的網(wǎng)絡(luò)相比,都有不錯(cuò)的表現(xiàn)。而M Trans由于網(wǎng)絡(luò)構(gòu)架的不同,它更多是采用參數(shù)量較少的自注意力計(jì)算代替?zhèn)鹘y(tǒng)的卷積進(jìn)行特征提取,雖然模型的參數(shù)量較少,但讀寫內(nèi)存遠(yuǎn)遠(yuǎn)高于本文方法,耗費(fèi)更多的資源。本文方法具有較低的模型復(fù)雜度,能更好地解決在訓(xùn)練樣本有限的情況下,訓(xùn)練不充分或訓(xùn)練時(shí)間過長等問題。
本文提出一種將可分離卷積和CBAM 模塊相結(jié)合的U-net語義分割模型。視網(wǎng)膜血管分割由于血管末端細(xì)小且易與背景混淆導(dǎo)致難以進(jìn)行精確分割。為了解決該問題,提高視網(wǎng)膜血管的分割精度,本文首先使用深度可分離卷積代替常規(guī)的卷積;然后在深度可分離卷積塊后增加一個(gè)CBAM模塊,使其能在U-net的基礎(chǔ)上更好地提取視網(wǎng)膜血管的細(xì)節(jié)特征;最后,將編碼器和解碼器中對稱的特征圖進(jìn)行跳躍連接,融合上下文的多重語義信息,提高模型的分割性能。在OCTA-500分割數(shù)據(jù)集上使用本文方法和常見的方法進(jìn)行大量對比實(shí)驗(yàn),結(jié)果表明本文方法能達(dá)到較高分割性能的同時(shí),占用較少的計(jì)算資源。
由于OCTA 視網(wǎng)膜血管圖像普遍存在血管連續(xù)且不均勻分布在整張圖像中的特性。因此,分割結(jié)果中可能會出現(xiàn)圖像邊框處的血管被錯(cuò)分為背景的情況,或是出現(xiàn)血管斷裂的情況。后續(xù)的研究一方面是注重于對圖像邊框處的特征提取,改進(jìn)網(wǎng)絡(luò)架構(gòu),能更好的融合各層特征,減少因?yàn)橄虏蓸雍蜕喜蓸舆^程而導(dǎo)致圖像邊框處的血管等重要信息的丟失;另一方面,考慮添加諸如條件隨機(jī)場等后處理方法,用以捕獲整張圖像中完整的血管結(jié)構(gòu),從而避免分割結(jié)果中出現(xiàn)血管斷裂的情況。