沈雪雯,王曉東,姚 宇
(1.中國科學(xué)院成都計(jì)算機(jī)應(yīng)用研究所,成都 610041;2.中國科學(xué)院大學(xué),北京 100049)
(?通信作者電子郵箱shenxuewen18@mails.ucas.ac.cn)
心臟作為人體內(nèi)最重要的器官之一,通過機(jī)械做功推動血液的流動維持身體各器官、組織的正常工作,而它的效率與心臟的形態(tài)、心臟四腔體的大小息息相關(guān)。因此,準(zhǔn)確分割獲取心臟不同時期的輪廓是評定心功能或者心臟疾病必要又重要的程序。在臨床醫(yī)學(xué)中,心臟的多種成像方式為心臟結(jié)構(gòu)和功能的評估、診斷、疾病檢測、治療計(jì)劃等提供了有力的支持,如磁共振成像(Magnetic Resonance Imaging,MRI)、計(jì)算機(jī)斷層掃 描(Computed Tomography,CT)成 像、超 聲(UltraSound,US)等。而其中,超聲成像以其價(jià)廉、簡便、迅速、無創(chuàng)、無輻射、可連續(xù)動態(tài)及重復(fù)掃描等優(yōu)點(diǎn),成為醫(yī)學(xué)中使用率高,受眾面廣的影像檢查技術(shù)。因此,從二維超聲心動圖中提取臨床指標(biāo)進(jìn)行數(shù)據(jù)分析,對臨床常規(guī)檢測心臟形態(tài)、功能及診斷具有重要意義。例如,提取左室射血分?jǐn)?shù)(Left Ventricular Ejection Fractions,LVEF)需要準(zhǔn)確地描繪舒張末期(End-Diastolic,ED)和收縮末期(End-Systole,ES)的左室內(nèi)膜。在臨床上,由于全自動心臟切分方法缺乏準(zhǔn)確性和可重復(fù)性,半自動或手動的心臟切分仍然是龐大而繁重的日常工作。近年來,深度學(xué)習(xí)在圖像分割領(lǐng)域的迅速崛起,讓計(jì)算機(jī)科學(xué)與醫(yī)療知識的結(jié)合成為可能,醫(yī)工交叉領(lǐng)域的研究也成為熱點(diǎn)。
深度學(xué)習(xí)結(jié)合圖像數(shù)據(jù)來輔助疾病診斷能夠更加準(zhǔn)確利用技術(shù)來解決人體的生理疾病,但由于超聲成像噪聲大、腔體邊界不清晰的特點(diǎn),同時醫(yī)學(xué)超聲樣本很少,表現(xiàn)優(yōu)異的自然圖像分割網(wǎng)絡(luò)應(yīng)用在醫(yī)學(xué)圖像分割任務(wù)上往往達(dá)不到同等優(yōu)秀的效 果。Long 等[1]在全卷 積網(wǎng)絡(luò)(Fully Convolutional Network,F(xiàn)CN)中最早提出編碼-解碼(Encoder-Decoder)結(jié)構(gòu),為實(shí)現(xiàn)更為精確的分割引入了上下文信息,這成為圖像分割的開山之作;2015 年MICCAI(Medical Image Computing and Computer-Assisted Intervention)會議上U-Net[2]修改并擴(kuò)大了FCN 的網(wǎng)絡(luò)框架,它的跳躍連接(Skip-connection)和深淺層特征融合的思想,讓少量的訓(xùn)練樣本就能得到精確的分割結(jié)果,也成為現(xiàn)在大多做醫(yī)學(xué)影像分割任務(wù)的基線網(wǎng)絡(luò);Oktay 等[3]提出的Attention U-Net加入了Attention Gate結(jié)構(gòu),為醫(yī)學(xué)圖像分割打開了新思路;同時還有很多研究通過將U-Net 與ResNet[4]、DenseNet[5]相結(jié)合等方法都得到了不錯的效果。
當(dāng)前的醫(yī)學(xué)圖像分割多為二類分割,超聲心臟分割也大多只分割了左心室或者右心室。全心臟超聲序列圖像含有豐富的心臟運(yùn)動信息,但從超聲序列圖像中提取心臟四腔的同步特性的研究還較少,當(dāng)臨床醫(yī)生診斷心臟病,例如擴(kuò)張型心肌病、右心室不正常等病癥時,醫(yī)生需要患者左、右心室和左、右心房的分割結(jié)果來進(jìn)一步計(jì)算各種臨床指標(biāo),以便作出疾病診斷。本文提出了一種基于空間分頻的超聲圖像分割注意力網(wǎng)絡(luò)(Spatial Frequency Divided Attention Network for ultrasound image segmentation,SFDA-Net),該方法基于++引入圖像空間分頻與注意力機(jī)制多類分割。根據(jù)實(shí)驗(yàn)室現(xiàn)有的數(shù)據(jù)資源,從病例庫中選取二尖瓣成像數(shù)據(jù),獲得心臟四腔心標(biāo)準(zhǔn)切面,使用SFDA-Net 分割心臟超聲圖像中的左、右心房和左、右心室,得到心臟各腔體的輪廓。
醫(yī)學(xué)圖像有著邊界模糊、梯度復(fù)雜的特點(diǎn),需要高分辨率信息用于邊界輪廓精準(zhǔn)分割;同時人體內(nèi)部結(jié)構(gòu)相對固定,分割目標(biāo)在人體圖像中的分布具有規(guī)律,且語義簡單明確,需要充分利用低分辨率信息來進(jìn)行目標(biāo)物體的識別。醫(yī)學(xué)圖像分割的特殊需求在U-Net的編碼-解碼(Encoder-Decoder)結(jié)構(gòu)得到了滿足。但在實(shí)際分割任務(wù)中,大物體邊緣信息和小物體本身很容易被網(wǎng)絡(luò)在降采樣和升采樣中丟失,不同于FCN 和Deeplab[6]等,U-Net沒有直接在高級語義特征上進(jìn)行監(jiān)督和損失誤差(Loss)的反向傳播,而是利用跳躍連接進(jìn)行深淺層特征融合,獲得更多的信息,幫助還原降采樣所帶來的信息損失。
但U-Net對于特征的利用程度仍然是有限的,Zhou等[7]受到ResUNet、DenseUNet 的啟發(fā)提出UNet++,讓不同深度的U-Net 學(xué)習(xí)不同深度的特征,共享一個特征提取器。UNet++沒有直接使用U-Net 的跳躍連接,而是改為使用短連接與長連接的結(jié)合,長連接就是跳躍連接,短連接則是把每個分支U-Net在同一層相同尺寸的特征都連接起來,讓模型的中間部分參數(shù)能夠有效參與訓(xùn)練,這個改動把1~4 層的分支U-Net全部連了起來。
UNet++編碼(Encoder)操作中使用了4 次下采樣,用來降低運(yùn)算量,增加對輸入圖像小擾動的魯棒性,同時擴(kuò)大了深層結(jié)構(gòu)的感受野;對稱地,在解碼(Decoder)操作也進(jìn)行4次上采樣,將Encoder 得到的高級語義特征圖恢復(fù)到原圖片的分辨率,分類輸出。同時UNet++還使用了深監(jiān)督(Deep Supervision),具體實(shí)現(xiàn)是在4個分支U-Net的輸出后分別進(jìn)行1×1的卷積,計(jì)算4個Loss,主要是為了讓模型選擇做一個平均再得到最終輸出,或者從其中的所有分支輸出選擇一個作為輸出。本文沒有使用UNet++的深監(jiān)督方式,而是在最后一個輸出層對每個分支U-Net的輸出X01、X02、X03、X04以及對輸入的初始化層輸出X00 進(jìn)行拼接,最后用一個1×1 的卷積分類輸出,利用中間部分收到傳遞過來的梯度共同計(jì)算Loss。本文SFDA-Net結(jié)構(gòu)如圖1所示。
圖1 SFDA-Net結(jié)構(gòu)示意圖Fig.1 Structure schematic diagram of SFDA-Net
在自然圖像中,信息以不同的頻率在傳遞,同樣,對于卷積層輸出的特征圖也可以看作是不同頻率下信息的混合。Chen 等[8]提出了一種新的Octave 卷積(Octconv),用來存儲和處理空間分辨率較低且空間變化較慢的特征圖。Octave 卷積的正交性和互補(bǔ)性對于建立更好的拓?fù)浣Y(jié)構(gòu)和減少深度卷積網(wǎng)絡(luò)中低頻信息帶來的空間冗余有良好的效果,在提高精度的同時,節(jié)約計(jì)算資源的消耗。Octconv 使用一個α系數(shù)將特征圖分解為高分辨率(高頻)分量(XH)和低分辨率(低頻)分量(XL)兩個部分,低頻部分保存圖像的抽象信息,信息數(shù)據(jù)量少;高頻部分保存圖像的邊緣、輪廓等細(xì)節(jié)信息,信息數(shù)據(jù)量大。同時還提出了多頻特征表示方法將平滑變化的低頻映射存儲在低分辨率張量中,可以減少空間冗余。
如圖2所示,αin為輸入的低頻通道占總通道的比例,總輸入張量的尺寸為cin×w×h,總輸出張量的尺寸為cout×w×h,Wp→q為相應(yīng)卷積核。取卷積尺寸為cin×cout×k×k(stride=1,padding=same),普通卷積對于輸出特征圖(feature map)中的每個數(shù)據(jù),需要進(jìn)行cin×k×k次乘加計(jì)算,可以得出總計(jì)算量為Cconv=(cin×k×k)×(cout×w×h)。對比普通卷積,Octave 卷積有一定的比例是低頻通道,操作會有一定的復(fù)雜性,但在性能和計(jì)算量上總體都優(yōu)于普通卷積。Octconv 直接作用于XH、XL,兩組頻率之間會通過上采樣和下采樣進(jìn)行信息交互,輸出高、低頻分量(YH、YL),這能夠?yàn)榫W(wǎng)絡(luò)帶來更加多元的信息,內(nèi)部共有四個操作。
圖2 Octave卷積Fig.2 Octave convolution
1.2.1 高頻到高頻
使用指定卷積核WH→H對高頻分量XH直接卷積,得到:
計(jì)算量為:
1.2.2 高頻到低頻
首先進(jìn)行步長和尺度為2 的平均池化,之后卷積生成與YL通道數(shù)相同的特征,得到:
計(jì)算量為:
1.2.3 低頻到高頻
通過上采樣生成與XL長寬相同的張量,得到:
計(jì)算量為:
1.2.4 低頻到低頻
操作同YH→H,使用指定卷積核WL→L對低頻分量XL直接卷積,得到:
計(jì)算量為:
最后通過式(1)、(3)得到高頻輸出YH=YH→H+YL→H,通過式(2)、(4)得到低頻輸出YL=YH→L+YL→L,Octave 卷積四個操作的計(jì)算量相加得到總計(jì)算量Coctconv,有:
在αin∈[0,1]中單調(diào)遞減,當(dāng)取αin=1時,有Octave 卷積的計(jì)算量僅為普通卷積的1/4;當(dāng)取αin=0 時,輸入沒有低頻通道,此時Octave卷積與普通卷積相同。
在引入注意力機(jī)制之前,長距離信息會被弱化,一些重要的信息在經(jīng)過層層處理之后會丟失,所以將有限的注意力集中在重要的信息上,快速獲得有效信息成為了模型優(yōu)化的突破點(diǎn)。Vaswani 等[9]提出了不使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)或卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)等復(fù)雜的模型,僅僅依賴注意力模型可以使訓(xùn)練并行化且擁有全局信息。注意力建模在自然語言處理領(lǐng)域的成功,激發(fā)了它在計(jì)算機(jī)視覺領(lǐng)域的應(yīng)用。在計(jì)算機(jī)視覺中注意力機(jī)制(Visual Attention)的實(shí)現(xiàn)有兩種方式:一種是Mask RCNN[10]采用的添加先驗(yàn)來引入注意力,假如目標(biāo)是分割小狗,首先檢測出小狗的邊框(bounding box,bbox)后再對bbox內(nèi)的小狗進(jìn)行分割,可看作目標(biāo)檢測和語義分割的結(jié)合,常用于實(shí)例分割,屬于硬注意力(Hard Attention)。另一種是讓網(wǎng)絡(luò)利用全局信息有效地增強(qiáng)有益特征通道同時抑制無用特征通道,從而實(shí)現(xiàn)特征通道自適應(yīng)校準(zhǔn),這就是Hu 等[11]提出的SENet(Squeeze-and-Excitation Network),屬于軟注意力(Soft Attention)。Woo 等[12]基于SENet 進(jìn)行了進(jìn)一步拓展,提出了一種結(jié)合通道和空間的卷積塊注意模塊(Convolutional Block Attention Module,CBAM),把通道注意力模塊(Channel Attention Module)和空間注意力模塊(Spatial Attention Module)串聯(lián)起來,先找到“哪個特征是重要的”,再關(guān)注“哪里的特征是有意義的”,找出圖片信息中需要被關(guān)注的區(qū)域,通過對應(yīng)的空間變換把關(guān)鍵信息提取出來[13]。CBAM 結(jié)構(gòu)如圖3所示。
圖3 CBAM結(jié)構(gòu)Fig.3 Structure of CBAM
1)通道注意力模塊。首先將H×W×C的輸入特征F分別經(jīng)過全局最大池化(MaxPool)和全局平均池化(AvgPool)得到兩個1×1×C的通道描述,把它們分別送進(jìn)一個參數(shù)共享的兩層的神經(jīng)網(wǎng)絡(luò)MLP(Multi-Layer Perceptron)。第一層神經(jīng)元個數(shù)為C/r,激活函數(shù)為線性整流函數(shù)(Rectified Linear Unit,ReLU),第二層神經(jīng)元個數(shù)為C,將得到的兩個特征相加后經(jīng)過一個Sigmoid激活函數(shù)得到權(quán)重系數(shù):
最后把Mc(F)與F相乘即可得到縮放后的新特征F'。
2)空間注意力模塊。關(guān)注“哪里的特征是有意義的”,對通道注意力的輸出F'先分別進(jìn)行一個通道維度的平均池化和最大池化得到兩個H×W×1 的通道描述,并將這兩個描述按照通道拼接在一起。然后經(jīng)過一個7×7的卷積層,激活函數(shù)為Sigmoid,得到權(quán)重系數(shù):
最后Ms(F)和F'相乘即可得到縮放后的新特征F"。
這兩個模塊形成了互補(bǔ),并且在模塊內(nèi)使用全局最大池化和全局平局池化并行的方法,降低池化操作帶來的損失的同時獲得了更加多元的信息,使得CBAM 相較于SENet 只關(guān)注通道的注意力機(jī)制可以取得更好的效果,并且在小模型上添加CBAM 只需要增加少量的計(jì)算量,就能帶來穩(wěn)定的性能提升。
在Encoder 時,需要對圖像進(jìn)行下采樣,降低計(jì)算量的同時進(jìn)行特征提取,但在這個過程中圖片的分辨率也在降低。于是在Decoder 的部分,本文使用雙線性插值上采樣(Bilinear Upsampling)恢復(fù)各層最后輸出的特征圖的大小,到最終輸出層得到與原圖像大小尺寸一樣的輸出。雙線性插值上采樣利用原圖像中目標(biāo)點(diǎn)四周的四個真實(shí)存在的像素值來共同決定目標(biāo)圖中的一個像素值,其核心思想是在兩個方向分別進(jìn)行一次線性插值。
如圖4所示,已知Q12、Q22、Q11、Q21,但是要插值的點(diǎn)為P點(diǎn),首先在X軸方向上對R1和R2兩個點(diǎn)進(jìn)行插值,得到:
圖4 雙線性插值上采樣Fig.4 Bilinear interpolation upsampling
然后在Y軸方向上根據(jù)R1和R2對P點(diǎn)進(jìn)行插值,得到:
普通的上采樣將一個點(diǎn)復(fù)制作為周圍四個點(diǎn)的像素值,雙線性插值上采樣需要周圍四個點(diǎn)共同線性計(jì)算,不易產(chǎn)生像素突變,要更加穩(wěn)健,同時雙線性插值上采樣方法不需要進(jìn)行學(xué)習(xí),運(yùn)行速度快,操作簡單。
UNet++的主要優(yōu)勢在于連接了每個分支U-Net 共享一個編碼層,讓模型中間部分都參與了訓(xùn)練,使Encoder 過程中出現(xiàn)的未知信息損失得到一定程度的修復(fù),從而在增加的參數(shù)量不多的基礎(chǔ)上,獲得了明顯的性能提升。但每個分支U-Net共享一條Encoder路徑,這使得它們在下采樣過程中丟失掉的是同樣的信息,UNet++雖然在Decoder 過程中雖然獲得了不同深度的U-Net 特征,但這種特征差異性是在每個分支U-Net進(jìn)行各自的上采樣之后得到的,所以UNet++在特征恢復(fù)的過程中的信息補(bǔ)充是有限的,同時缺乏針對性。
本文提出了一種基于空間分頻的超聲圖像注意力網(wǎng)絡(luò)(SFDA-Net),使用UNet++作為基礎(chǔ)框架,共設(shè)計(jì)5 層,如圖1所示,其中圖1 中的U1 內(nèi)部實(shí)現(xiàn)結(jié)構(gòu)如圖5 所示,SFDA-Net分頻框架示意圖如圖6 所示。用Octconv 取代傳統(tǒng)二維卷積(2-D Convolution,Conv2D),將整個框架分為高、低頻同步并行的兩個具有完整UNet++結(jié)構(gòu)的支路,在編碼-解碼的每一層都使用Octconv讓高頻支路和低頻支路進(jìn)行一次信息交互。這個改進(jìn)一方面可以降低模型的參數(shù)量,另一方面是為了減少每個編碼層在下采樣中引入的信息丟失,同時讓整個網(wǎng)絡(luò)獲得更加豐富的信息。在解碼部分雙線性插值上采樣進(jìn)行圖像恢復(fù),在每個上采樣之后,都與同層(stage)、同尺度的特征進(jìn)行拼接,拼接后緊跟CBAM,用于提高模型注意力,加強(qiáng)模型在接下來卷積操作中對目標(biāo)區(qū)域的關(guān)注,實(shí)現(xiàn)更為精準(zhǔn)的像素類別分類。同時SFDA-Net 在Encorder 中使用雙線性插值上采樣,盡可能避免恢復(fù)特征出現(xiàn)偏移等問題,使網(wǎng)絡(luò)更加穩(wěn)健。
圖5 U1內(nèi)部實(shí)現(xiàn)結(jié)構(gòu)Fig.5 Internal implementation structure of U1
圖6 SFDA-Net分頻框架示意圖Fig.6 Schematic diagram of SFDA-Net framework with frequency division
實(shí)驗(yàn)中使用到了三種Octconv:1)initial octconv(init-oct)。在網(wǎng)絡(luò)的輸入層使用(此時輸入作為高頻),首先對輸入進(jìn)行下采樣得到低頻特征,然后進(jìn)行Octconv,得到高頻輸出、低頻輸出。2)common octconv(com-oct)。除了輸入層和輸入層,模型其他部分均采用com-oct,輸入為高頻、低頻特征,直接進(jìn)行Octconv,可以通過超參α控制輸出高、低頻的通道占比;3)final octconv(fin-oct)。在最后的輸出層使用,輸入為高頻、低頻特征,在卷積之后,將低頻上采樣與高頻相加,輸出高頻。
在圖1 的框架中,X00_[H,L]是輸入張量(Input Tensor)通過init-oct 得到,U4 的解碼最頂層X04_[H,L]經(jīng)過fin-oct 后得到一個與原輸入尺寸相同的X04,將X04 再進(jìn)行1×1 的卷積分類輸出。由于Octconv的高低頻輸出特性,網(wǎng)絡(luò)所有層都有高頻支線、低頻支線平行處理,在每層的com-oct 處進(jìn)行高低頻信息交互,Encoder 和Decoder 通過拼接操作(Concat)進(jìn)行特征融合。在模型底部時沒有使用fin-oct 得到Bottom,是為了獲得更高一級的抽象特征,所以通過融合操作(Merge)將低頻上采樣與高頻相加。
Tversky 系數(shù)是Dice 系數(shù)和Jaccard 系數(shù)(IoU 系數(shù))的廣義系數(shù),它的計(jì)算式為:
其中:X表示真值;Y表示預(yù)測值。α和β均為0.5 時,式(15)就是Dice 系數(shù);α和β均為1 時,式(15)就是Jaccard 系數(shù)。實(shí)際上Dice Loss 是Tversky Loss 的一種特殊形式。醫(yī)學(xué)圖像分割中,特別是小病灶類分割,常使用Dice Loss 作為目標(biāo)函數(shù),它在樣本極度不均衡的情況有良好的表現(xiàn),但一般情況下使用會對反向傳播有不利的影響,使訓(xùn)練不穩(wěn)定。在項(xiàng)目中,心臟四腔體四類所占的目標(biāo)區(qū)域與背景類相差不多,使用Dice Loss作為目標(biāo)函數(shù)(Loss Function)效果并不理想,在訓(xùn)練中波動幅度比較大。
本文使用了Focal Tversky Loss[14-15]作為目標(biāo)函數(shù),它降低簡單樣本(預(yù)測概率大的樣本)的權(quán)重,給難分類的樣本較大的權(quán)重,從而加強(qiáng)對困難樣本(Hard Examples)的關(guān)注。直觀來說就是,對于正樣本,使簡單樣本得到的Loss 變小,而困難樣本的Loss變大。Focal Tversky Loss 引入γ系數(shù),學(xué)習(xí)帶有小目標(biāo)感興趣區(qū)域(Region Of Interest,ROI)的困難樣本:
其中:TI是Tversky系數(shù);γ∈[1,3]。
實(shí)驗(yàn)數(shù)據(jù)來源于合作醫(yī)院,采用飛利浦IE33 超聲監(jiān)測設(shè)備采集的術(shù)中超聲心動圖序列,并轉(zhuǎn)換為.avi 視頻。通過視頻抽幀、數(shù)據(jù)篩選,過濾掉成像過度扭曲、目標(biāo)區(qū)域清晰度太低的圖像,最后保留了699 張圖像,大部分都為心臟二尖瓣切面,包含有四個腔體。為了避免數(shù)據(jù)量太少導(dǎo)致網(wǎng)絡(luò)過擬合,進(jìn)行了數(shù)據(jù)增強(qiáng),最終制作投入使用的訓(xùn)練集圖片2 400 張,驗(yàn)證集圖片800張,測試集圖片295張。數(shù)據(jù)標(biāo)注與預(yù)測中紅色(深灰色)為左心房(Left Atrium,LA),黃色(淺灰色)為右心房(Right Atrium,RA),綠色(中灰色)為左心室(Left Ventricle,LV),藍(lán)色(偏黑色)為右心室(Right Ventricle,RV)。
3.2.1 CBAM性能分析
圖像在層層下采樣之后,不可避免地會丟失細(xì)節(jié)信息,Encoder-Decoder 和短連接的結(jié)構(gòu)能夠降低損失,但是通過上采樣進(jìn)行圖像恢復(fù)后,在多噪聲的影響下網(wǎng)絡(luò)仍然會難以關(guān)注所需要關(guān)注的細(xì)節(jié)信息,不能準(zhǔn)確定位目標(biāo)類別的輪廓界限,所以SFDA-Net在每個stage特征拼接之后使用CBAM注意力模塊,目的是讓模型在接下來的特征恢復(fù)和提取中,更加關(guān)注目標(biāo)區(qū)域,而不被背景類吞噬,從而實(shí)現(xiàn)更為精準(zhǔn)的分割。圖7展示了SFDA-Net及其在去掉CBAM的情況下的分割可視化對比,CBAM 對目標(biāo)區(qū)域的類間像素分離是有效的,CBAM使網(wǎng)絡(luò)的精度從92.28%提升至94.48%,Dice得分從90.53%提升到93.48%,效果明顯。
圖7 SFDA-Net使用CBAM所帶來的性能提升Fig.7 Performance improvement of SFDA-Net using CBAM
3.2.2 Focal Tversky Loss性能比較
實(shí)驗(yàn)對比了交叉熵?fù)p失函數(shù)、Dice Loss、Focal Tversky Loss作為目標(biāo)函數(shù)時模型的表現(xiàn)情況,如表1和圖8所示。
圖8 三種損失函數(shù)輸出的可視化結(jié)果對比Fig.8 Comparison of visualization results output by three loss functions
表1 不同損失函數(shù)時SFDA-Net的性能Tab.1 Performance of SFDA-Net with different loss functions
由表1 可以看出,交叉熵?fù)p失是多類分割常用的損失函數(shù),它的訓(xùn)練數(shù)據(jù)精度能夠達(dá)到0.968 2,Loss 能夠低至0.100 7,但是驗(yàn)證Loss卻比訓(xùn)練Loss高出接近0.2,模型的泛化性能不優(yōu)秀,并且Dice 得分不高。Dice Loss 是醫(yī)學(xué)圖像中常用的、性能優(yōu)秀的損失函數(shù),它能夠有效地降低訓(xùn)練Loss、提高訓(xùn)練精度。但在本實(shí)驗(yàn)中,模型使用Dice Loss 時訓(xùn)練過程不穩(wěn)定,同時得到的驗(yàn)證數(shù)據(jù)和訓(xùn)練數(shù)據(jù)差距較大,有可能存在過擬合風(fēng)險(xiǎn),對于難分類區(qū)域(RA、RV 之間)不能準(zhǔn)確界定邊界,分類誤判較大,不穩(wěn)健。所以本實(shí)驗(yàn)中將Dice Loss作為度量學(xué)習(xí)(Metric Learning)衡量方式。而Focal Tversky Loss不僅僅只是訓(xùn)練數(shù)據(jù)綜合最優(yōu),驗(yàn)證數(shù)據(jù)也是最優(yōu)的,它通過加大難分割區(qū)域的權(quán)重,讓難分界的RA、RV之間有了明顯界限。交叉熵?fù)p失和Dice Loss 在LV 左下角處存在像素類別誤判,Dice Loss的LA 輪廓和噪聲多的地方分類為RA,這些細(xì)節(jié)被Focal Tversky Loss 優(yōu)化掉,極大降低了像素分類錯誤的可能。
3.2.3 不同方法的分類輸出結(jié)果對比
本次實(shí)驗(yàn)在Ubuntu16.04 平臺下進(jìn)行,訓(xùn)練環(huán)境是基于Tensorflow 1.14.0 版本下的Keras 2.2.4 框架,訓(xùn)練使用NVIDIA Tesla P40 和GTX 1070 Ti。訓(xùn)練分20 個epoch,每個epoch 迭代100 次,模型在epoch=10 時訓(xùn)練精度上升到0.909 9;epoch=14 時逐漸趨于收斂,訓(xùn)練精度達(dá)到0.95 左右;epoch=17 時,訓(xùn)練精度穩(wěn)定在0.96。圖9 是在模型深度相同的情況下不同算法對于相同數(shù)據(jù)的預(yù)測輸出可視化結(jié)果對比。
模型輸入圖像與標(biāo)簽(label)尺寸為460×600,本文使用labelme 3.16.7 標(biāo)注得到JSON 格式封裝的標(biāo)簽,隨后對JSON文件解碼得到.png格式的彩色可視化label,如圖9(b)。但此時的label 是索引圖,沒有實(shí)際像素值,所以在把label 投入模型之前,需要將其轉(zhuǎn)為灰度圖。
圖9 不同算法的分割結(jié)果對比Fig.9 Segmentation result comparison of different algorithms
在本數(shù)據(jù)集上,U-Net 能夠大致識別出心臟目標(biāo)分割區(qū)域,但是無法準(zhǔn)確區(qū)分各個類別,在大部分預(yù)測效果中沒有分割出RA,被分類為RV,且LV 左下角缺失嚴(yán)重,四個腔體的中間“十”字邊界不清晰。UNet++的短連接和多個分支U-Net聯(lián)合的改進(jìn)是有效的,在一定程度上彌補(bǔ)了U-Net 在LV 邊界上的丟失,整體表現(xiàn)優(yōu)于U-Net。
不同算法的參數(shù)量和精度如表2 所示。相較于U-Net 和UNet++兩個算法,SFDA-Net 借助Octave 卷積實(shí)現(xiàn)了空間分頻,以獲得更加多元、豐富的信息,其高低頻系數(shù)α設(shè)為0.5;在加入的CBAM 中,通道注意力部分需要調(diào)節(jié)參數(shù)共享的第一層MLP 神經(jīng)元個數(shù),通過實(shí)驗(yàn)得出設(shè)置r=8 時,模型有最優(yōu)秀的性能表現(xiàn)。SFDA-Net 能夠準(zhǔn)確識別四個腔體的位置,類間分類誤差極大降低,邊界輪廓雖然存在缺失,但心臟四個腔體的大小形狀預(yù)測是連貫完整的。U-Net的精度為86.8%,UNet++增加了2×106的參數(shù)量但是模型精度提升不到2 個百分點(diǎn),基于UNet++改進(jìn)的SFDA-Net 精度達(dá)到了94.5%,相較于UNet++提升了6.2個百分點(diǎn)。
表2 不同算法的參數(shù)量和精度Tab.2 Parameter numbers and accuracies of different algorithms
3.2.4 評價(jià)指標(biāo)
本文主要使用Dice 得分(dice score)、類別平均像素精度(mean Pixel Accuracy,mPA)和平均交并比(mean Intersection over Union,mIoU)三項(xiàng)指標(biāo)評價(jià)算法性能。
Dice 得分是用來度量集合相似度的函數(shù),通常用于計(jì)算兩樣本之間的像素[16],計(jì)算式如下:
其中:X是真值;Y是預(yù)測值;dice_score的取值范圍是[0,1]。
mPA計(jì)算每一類分類正確的像素點(diǎn)數(shù)與該類的所有像素點(diǎn)數(shù)的比值,然后求均值,獲得評價(jià):
mIoU 是均值交并比,用來計(jì)算真值和預(yù)測值的交集和并集之比,將每一類的IoU 計(jì)算之后累加,再進(jìn)行平均,得到全局評價(jià):
其中:i表示真值;j表示預(yù)測值表示真實(shí)情況下第i類表示預(yù)測為第i類的像素總數(shù)。的像素總數(shù)
由表3 可以看出,SFDA-Net 在三種評估指標(biāo)上表現(xiàn)都優(yōu)于其他兩個網(wǎng)絡(luò)。其中,U-Net的預(yù)測有心臟的大致輪廓與位置,但在各目標(biāo)類別的像素誤判較大,RA和RV幾乎沒有分開而被歸為一類,LV 右下方出現(xiàn)了大量丟失而被判為背景類,所以它的mIoU 較低。UNet++雖然適當(dāng)提升了U-Net 的性能,但是預(yù)測各類間的邊界仍然不清晰,預(yù)測像素不連續(xù),存在缺失。SFDA-Net 的預(yù)測也存在一定誤差,各類像素間存在少量誤判,但四個腔室獨(dú)立而完整,相較于UNet++,它的mIoU 提高了10個百分點(diǎn)左右。
表3 不同算法的評價(jià)結(jié)果對比Tab.3 Comparison of evaluation results of different algorithms
3.2.5 SFDA-Net在CAMUS數(shù)據(jù)集上的表現(xiàn)
將SFDA-Net 應(yīng)用于公開的CAMUS 數(shù)據(jù)集,實(shí)驗(yàn)結(jié)果如表4 所示和圖10 所示。該數(shù)據(jù)集由500 名患者的臨床檢查組成,原始輸入圖像為.raw 和.mhd 文件格式,它的標(biāo)注為左心室、左心房、心肌內(nèi)膜。本文對原始數(shù)據(jù)進(jìn)行相應(yīng)處理后用于SFDA-Net得到了不錯的效果,模型在epoch=18時接近收斂,訓(xùn)練精度穩(wěn)定在0.94 左右。由表4 可以看出,SFDA-Net 并不只限于本實(shí)驗(yàn)數(shù)據(jù)集是有效的,對于其他的超聲圖像多類分割同樣適用。
表4 SFDA-Net在CAMUS數(shù)據(jù)集上的性能Tab.4 Performance of SFDA-Net on CAMUS dataset
圖10 SFDA-Net在CAMUS數(shù)據(jù)集上的分割結(jié)果Fig.10 Segmentation results of SFDA-Net on CAMUS dataset
本文針對超聲圖像的特殊性提出了一種引入注意力機(jī)制的空間分頻圖像分割網(wǎng)絡(luò)SFDA-Net,對心臟超聲圖像四腔體進(jìn)行分割,并使用Octave卷積代替普通卷積,在降低參數(shù)量和計(jì)算量的同時,穩(wěn)步提高了網(wǎng)絡(luò)性能。同時SFDA-Net 使用CBAM 和Focal Tversky Loss 結(jié)合讓模型更加關(guān)注難以分割的模糊目標(biāo)區(qū)域,避免一些位置和邊緣信息的損失,進(jìn)行更為精準(zhǔn)的圖像恢復(fù),相較于UNet++準(zhǔn)確率提高了6.2個百分點(diǎn)。
實(shí)驗(yàn)所使用的數(shù)據(jù)是病人患病時的心臟彩超,所以超聲心臟圖就會有一些彩色高亮非心臟區(qū)域出現(xiàn)在圖像上,且超聲圖源本身存在亮度低、像素多為黑色、邊界不連續(xù)[17]的情況,這都會給分割帶來困難。超聲心臟數(shù)據(jù)太少,基于這個原因在數(shù)據(jù)清洗方面無法做到那么嚴(yán)格,使用的數(shù)據(jù)沒有那么優(yōu)質(zhì)。同時數(shù)據(jù)標(biāo)注是在醫(yī)院專家的指導(dǎo)下完成的,標(biāo)注的邊界和輪廓沒有專家的專業(yè)標(biāo)注那么精準(zhǔn),所以在預(yù)測左、右心房邊界時會出現(xiàn)一些邊界像素點(diǎn)分類錯誤。盡管在數(shù)據(jù)上會給分割任務(wù)引入一些擾動,但是SFDA-Net仍然取得了不錯的成績,有益于對超聲醫(yī)學(xué)圖像分割的實(shí)現(xiàn)和發(fā)展[18-19],后續(xù)將針對SFDA-Net存在的上述問題作進(jìn)一步的研究。