劉從軍,徐佳陳,肖志勇,柴志雷
(1.江蘇科技大學計算機學院,江蘇 鎮江 212003;2.江南大學人工智能與計算機學院,江蘇 無錫 214122)
心血管疾病是世界三大常見病之一,其致死率已經達到了每年1 500萬人[1]。心臟核磁共振成像技術CMRI(Cardiac Magnetic Resonance Imaging)是診斷心血管疾病的重要手段之一,被視為評估心臟功能的金標準。因此,如何對CMRI進行精確的分割已經成為一個重要的醫學圖像學問題。
在過去的幾年中,卷積神經網絡在醫學圖像學領域展現出了強大的分割能力。比如,U-Net(U-shaped Network)[2],自2015年提出以來不斷發展成為了醫學圖像分割任務中最常用的框架,人們對其的改進層出不窮。Zhang等[3]提出了可以連接多尺度特征的MDU-Net(Multi-scale Densely connected U-Net);Chen等[4]提出了適用于樣本數量較小的橋連接網絡Bridge U-Net;Oktay等[5]在U-Net結構中添加注意門機制(Attention Gate),使得目標器官在訓練過程中能夠獲得更高的權重,讓網絡更集中于分割目標器官;孫錦峰等[6]根據肝靜脈和肝門靜脈在三維結構上的差異,將2個U-Net結合起來提出了一種自動學習全部肝血管特征的W-Net。同時,由于醫學圖像大多數為3D數據,研究人員對U-Net的研究也擴展到了3D領域。Milletari等[7]在U-Net的基礎上提出了適用于3D數據的V-Net;Isensee等[8]提出了一種基于自適應框架的nnU-Net(no new U-Net),在MICCAI (international conference on Medical Image Computing and Computer Assisted Intervention)2018年十項全能的比賽中取得了較好的成績;Huang等[9]提出的3D U2-Net(Universal U-Net)利用可分離卷積獲取跨通道相關性。
3D網絡的表現雖然優于2D網絡,但沒有考慮到切片的厚度,在實際情況下切片的厚度也是影響分割結果的一個重要因素。文獻[10]已表明,當數據集Z軸較厚時,Z軸的信息量比較稀疏,3D卷積的邊界效應會影響中間可用信息,從而影響分割效果。因此,對于Z軸切片較少的厚層數據,2D網絡的分割效果往往會好于3D網絡。本文選取的ACDC(Automated Cardiac Diagnosis Challenge)[11]心臟分割挑戰數據集為短軸動態磁共振圖像,是典型的厚層數據,其Z軸切片數僅為8~16,厚度為5~10 mm,因此Z軸的信息量比較稀疏。針對這一情況,本文選擇以2D U-Net++[12]作為網絡的基礎框架,構建了由5個編碼塊與10個解碼塊組成的U型全卷積神經網絡MFF U-Net(Multiscale Feature Fusion U-Net)。
本文所提算法的特點:首先,在編碼部分,為了充分利用每一次下采樣生成的特征圖信息,本文在殘差模塊(Res Block)[13]的基礎上引入了密集連接網絡dense-Net[14]中密集連接的思想,提出了密集殘差模塊,顯著地增加了特征圖的復用率,從而提高了網絡的分割能力;其次,在解碼部分首先參考VGG(Visual Geometry Group)的思想,用多個卷積核來擴大網絡的感受野,并利用長距離依賴模塊GC block(Global Context block)[15]來獲取圖像全局的上下文信息,從而使得網絡編碼還原的結果更為可靠;最后,考慮到目標器官的唯一性與連貫性,本文在網絡的最后添加了獲取最大連通域以及填充細小孔洞的后處理操作。
實驗數據選取ACDC心臟分割挑戰數據集,該數據集包含150名志愿者的舒張末期(ed)與收縮末期(es)的心臟核磁共振圖像。該數據集將其中的100名志愿者的相關圖像劃分為訓練數據集,將剩余的50名志愿者的相關圖像劃分為測試集。該數據集未公布測試集數據對應的真實標簽圖(Ground Truth),本文的實驗結果來源于官方在線評估網站(https:∥acdc.creatis.insa-lyon.fr/)。數據集的真實標簽由2名超過10年經驗的醫生手動繪制。每幅圖像的標簽有4個值:0,1,2和3,分別表示背景、右心室(Rv)、心肌(MYO)和左心室(Lv)。
本文對ACDC數據集做了如下預處理:(1)為消除異常點(Outliers)對于圖像的影響,本文選擇圖像中從小到大排列第1%與第99%的灰度值作為鑒定異常值分布的界限來修正異常值。并對每一幅圖的灰度值進行歸一化處理。(2)對于圖像沿Z軸進行二維切片時出現的大小不一的情況,本文將每一張切片裁剪為224×224大小,以方便網絡訓練和進一步減少無關信息對于分割結果的影響。
受文獻[16]的啟發,本文在U-Net++的編碼部分應用了密集殘差模塊。
殘差模塊是將網絡單元的輸入x與輸出F(x)相加后再作為輸入一起輸入到下一個單元,如式(1)所示:
H(x)=F(x)+x
(1)
殘差模塊利用式(1)中包含的恒等映射:當F(x)=0時,H(x)=x,將相對低層的輸入直接傳播到任意高層單元,在一定程度上解決了網絡退化的問題。
與殘差模塊不同,dense-Net提出了一個更為密集的連接方法,它使得每一個網絡單元都會接受前面所有單元的輸出作為其額外的輸入,如式(2)所示:
xl=Hl([x0,x1,…,xl-1])
(2)
其中,下標l表示當前網絡單元所在的層數,Hl(·)表示第l層的非線性激活函數,[·]表示通道連接操作。由式(2)可以看出,dense-Net中的密集連接是將其他層的輸入與當前層的輸入進行通道連接,而非直接相加。這種密集連接實現了特征復用,縮短了層與層之間的距離,有利于特征的傳播。同時,它也可以將底層的輸入直接傳播到任意高層單元,同樣起到了避免網絡退化的作用。
由文獻[17]可知,將殘差模塊與dense-Net相結合可以進一步強化特征傳播,實現特征復用,提升網絡性能。因此,本文設計了在殘差模塊中引入密集連接思想的密集殘差模塊DR block(Dense_Res block),密集連接殘差塊內部的卷積,縮短殘差塊內部的距離,其具體結構如圖1所示。圖1中CL表示第L層的通道數,H和W分別表示特征圖的高和寬。圖1中一個卷積層包括3個部分:Conv(3×3)、BN和ReLU。其中,Conv(3×3)表示卷積核大小為3×3的卷積、BN表示批量歸一化,ReLU是線性修正函數。

Figure 1 Structure of DR block圖1 密集殘差結構圖
密集殘差模塊將第1卷積層的輸出與第2層的輸出密集連接后再輸入到壓縮(Compression)層。壓縮層是由卷積核大小為1×1的卷積、BN與ReLU函數構成,其作用是壓縮特征圖的通道數,避免網絡過寬。圖1上半部分是一個1×1的卷積w1和批量歸一化操作,其作用是增加當前單元輸入的通道數,使其與壓縮層的輸出相一致。最后,再將右半部分的輸出與壓縮層的輸出相加,得到該模塊的輸出。
鑒于圖像中左心室、右心室、左心肌的位置關系(即左心肌包裹著左心室,右心室緊貼著左心肌)較為固定,解碼過程中能否盡可能地獲取全局的上下文信息顯得尤為重要。基于此,本文在解碼部分參考VGG的思想,利用多個小卷積核代替大卷積,以此來增加網絡的感受野,并結合長距離依賴模塊,提出了VGG-GC模塊。
普通的n×n大小的卷積核在進行卷積操作時,處理的僅僅是n×n大小的局部的信息。通過增大卷積核尺寸的方法來增大感受野,會導致計算量暴增,從而降低網絡計算效率。VGG模塊的基本思想是利用多個3×3的小卷積核來代替5×5和7×7的大卷積核。這樣做的好處在于利用小卷積核來代替大卷積核,可以明顯地減少參數量;而且卷積核數量的增加可以使網絡的感受野更廣,對于不同類別的區分能力更強。然而一味地通過添加3×3的卷積核來達到大卷積核的效果又會導致網絡深度過深,易產生網絡退化、梯度爆炸等問題。為了解決這一問題,本文設計了VGG-GC模塊,其結構如圖2所示。該模塊利用2個3×3大小的卷積核代替5×5的卷積核,并在第2個卷積后面添加了長距離依賴模塊,使網絡在上采樣過程中可以獲得全局的上下文信息,進一步擴大卷積的感受野。
長距離依賴模塊的主要思想是獲取一個全局的注意力矩陣(Attention Map)來聚集全局的上下文信息,并對所有位置共享該矩陣。該模塊可以抽象為2個步驟:(1)獲取圖像全局信息:在獲取全文信息階段首先利用卷積wk和Sigmoid函數來獲取圖像權值;再將得到的權值與圖像進行元素相乘,得到全局信息。(2)特征信息轉換:利用2個1×1的卷積wv1與wv2來捕獲通道間的依賴關系,并為了降低優化難度在2個卷積之間加入層歸一化(Layer Normalization)[18]。長距離依賴的計算如式(3)所示:
(3)
(4)
其中,Np為圖像中所有的位數;i的取值在[1,Np],表示第i個位置;xi與zi分別是輸入與輸出;αj是獲取全局信息階段得到的權值;LN(·)是層歸一化操作。

Figure 2 Structure of VGG-GC block圖2 VGG-GC模塊結構圖
本文所提出的算法以U-Net++作為基本網絡框架。與傳統U-Net相比,U-Net++通過將不同尺寸的子U-Net結構融合在一個網絡里解決了U-Net到底要有多深的問題。
U-Net結構由編碼塊、解碼塊與跳躍連接組成。
跳躍連接將編碼塊學習到的高層特征圖與上一層解碼塊還原出的特征圖進行通道連接后再進行解碼操作。圖3a是深度為2的U-Net。
U-Net++則在U-Net的基礎上做了更進一步的改進,它將處于同一層中不同尺寸的子U-Net的解碼塊特征通道連接后輸入到后面的所有模塊中去,因此U-Net++的每一個編碼塊的輸出結果如式(5)所示:

(5)
由式(5)可以看出,在U-Net++的結構中深層網絡可以直接獲得淺層網絡的還原結果,這樣可以使網絡自己去學習不同深度特征的重要性。同時,將深層網絡的結果與淺層網絡的結果融合起來,又避免了在下采樣過程中出現信息丟失的情況。圖3b是深度為3的U-Net++,其融合了深度為2和3的2個子U-Net結構。

Figure 3 Framework of U-Net圖3 U-Net算法結構
本文算法的網絡結構如圖3c所示,采用的是5層的U-Net++的架構。該架構包含5個編碼塊與10個解碼塊,網絡每一層的通道數由上往下分別是32,64,128,256和512。編碼塊的內部結構包括密集殘差模塊DR block與最大池化層。最大池化層的卷積核大小為2×2,步長為2,其作用是將特征圖縮小為原有的1/2。解碼塊由上采樣(Upsampling)層與VGG-GC模塊組成。上采樣層的作用是將縮小的特征圖還原成原始尺寸,然后通過跳躍連接與對應的編碼階段形成的特征圖合并,最后輸入到VGG-GC模塊。最后網絡的輸出結果通過Sigmoid函數輸出。
本文算法是將三維數據沿著Z軸做二維切片后再進行訓練。這種方式雖然適合厚層數據,但因為在訓練過程中忽略了圖像三維序列上的相關信息,會在少量切片上出現分割異常點。為了盡可能地消除這些異常點,本文對于改進后的U-Net++的分割結果還進行了后處理:考慮到目標器官的唯一性,選取每個目標器官的最大連通域;考慮到雙心室的連貫性,對雙心室進行細小孔洞填充。本文連通域與空洞的判定方式都選用的是8鄰接判定,細小孔洞的面積閾值為5 000。
本文使用聯合損失函數,包括交叉熵(Cross Entropy)損失函數與Dice損失函數。交叉熵損失函數常用于圖像分割領域,它表示圖像中每一個像素與真實標簽進行結果對比的平均值。Dice損失函數是評價2個樣本的重疊部分,重疊部分越大,Dice損失函數值就越小,分割效果越好。本文使用的聯合損失函數的計算公式如式(6)所示:
L=Ldice+0.5Lce
(6)
其中,Lce表示交叉熵損失函數,其定義如式(7)所示:
(1-y(i))log(1-logp(i)))
(7)
Ldice表示Dice損失函數,其定義如式(8)所示:
(8)
其中,N為樣本總數,i表示第i個樣本,y(i)表示第i個樣本的真實標簽值,p(i)表示第i個樣本的預測值。
實驗選用的處理器為Intel Core i7,顯卡為NVIDIA GTX1080Ti。深度學習框架是1.4.0版的PyTorch。網絡的優化器選用了Adam[19]優化器,學習率設置為0.03。圖4為損失函數的收斂圖。

Figure 4 Convergence of the loss function圖4 損失函數收斂圖
為定量評估本文算法的性能,使用在線評測網站給出的2種評價指標,包括相似性系數DSC(Dice Similarity Coefficient)與豪斯多夫距離HD(Hausdorff Distance),對舒張末期(ed)與收縮末期(es)的左心室(Lv)、左心肌(MYO)和右心室(Rv)的分割結果進行評估。DSC和HD的計算分別如式(9)和式(10)所示:
(9)
HD(P,Y)=max{dpy,dyp}=

(10)
其中,P表示算法的預測結果,Y表示真實標簽值,Y∩P代表預測結果與真實標簽值的交集,p和y分別表示P與Y上對應的像素點。
本文提供的精度值均由官方在線測試平臺給出。
為探究后處理對于目標器官分割結果的影響,本文對比了在測試集上添加了后處理的分割結果與沒有添加后處理的分割結果。表1和表2分別展示了相似性系數與豪斯多夫距離上的結果對比。
由表1和表2可以看出,后處理在不影響相似性系數精度的基礎上有效地減小了目標器官的豪斯多夫距離。這是因為選取最大連通域可以有效地刪除異常點,填充細小空洞可以使分割結果更光滑,更加接近真實標簽圖。

Table 1 Comparison of DSC with post-process and without post-process

Table 2 Comparison of HD with post-process and without post-process
圖5顯示了隨機選取的訓練集中2組數據的分割結果。該2組數據在分割時都將無關信息誤分割成了目標器官,違背了目標器官的唯一性,且第2個例子中左心室存在孔洞。這2種異常由于所占像素較少對相似性系數精度的影響較小,但對豪斯多夫距離的影響較大。觀察經過后處理的分割結果可以看出,通過選取最大連通域和填充細小孔洞可以有效地消除這類問題。

Figure 5 Comparison of effect with post-process and without post-process圖5 后處理使用前后的效果對比
為了探究VGG-GC 模塊以及密集殘差模塊對雙心室和左心肌分割效果的影響,本文在原始U-Net++架構的基礎上分別添加VGG-GC block與密集殘差模塊,訓練出了2個算法:VGG-GC block+U-Net++算法和VGG-GC block+dense_res block+U-Net++算法,分別記為GC-U-Net++和MFF U-Net。同時也訓練了原始的U-Net++算法與原始的U-Net算法。其相似性系數和豪斯多夫距離對比結果分別如表3和表4所示。可以看出,本文算法在2個指標上都優于其他算法。
對比表3和表4中GC-U-Net++算法與原始U-Net++算法的結果可以看出,通過添加VGG-GC模塊對所有位置共享圖像的全局上下文信息,可以使網絡較好地學習目標器官之間的關系,增強網絡對于目標器官形狀大小多變的適應能力,使其具有較好的魯棒性。

Table 3 DSC comparison of four algorithms

Table 4 HD comparison of four algorithms
對比GC-U-Net++算法與MFF U-Net的結果可以看出,在GC-U-Net++的基礎上加入密集殘差模塊后分割精度有了進一步的提升,這說明密集殘差模塊可以有效地增加特征圖的復用率,提高網絡的抗退化性,從而提升網絡的性能。

Figure 6 Comparison of the 3D segmentation results of four algorithms圖6 4種算法的三維分割效果對比
為了更好地說明本文所提MFF U-Net算法的分割性能,本文在驗證集中隨機選取舒張期末期(ed)和收縮期末期(es)圖像在4種算法下的分割效果圖。如圖6所示,其中前2行為舒張期末期圖像,后2行為收縮期末期圖像。從圖6可以看出,直接用U-Net分割的效果不太理想,尤其是左心室與左心肌的邊界分割得比較模糊。使用U-Net++后分割效果有了一定的改善,但依舊與真實標簽圖存在較大的區別,甚至在一些數據中出現了左心肌外包了右心室的情況。在U-Net++中添加長距離依賴模塊有效地避免了這種失誤,這說明長距離依賴模塊在每個單元中共享了圖像的全局上下文信息,使得網絡能夠更好地學習目標器官的相對關系,從而具有更好的魯棒性。再對比圖6中GC-U-Net++與MFF U-Net的分割結果可以看出,添加了密集殘差模塊網絡的分割結果更加接近真實標簽圖,這說明密集殘差模塊能夠有效地實現特征復用,縮短網絡內部距離,更有利于特征的傳播。本文所提的MFF U-Net相較于其他的對比算法可以更為準確地分割出目標器官,且分割細節更為細膩,分割效果更加接近真實標簽圖。圖7為MFF U-Net在測試集上的相似性系數箱型圖。

Figure 7 DSC box diagram of the proposed algorithm on test set圖7 本文算法測試集相似性系數箱型圖
本節將本文算法與其他論文所提出的算法進行對比。
Grinias等[20]提出的基于時間序列對整個感興趣區域的切片進行跟蹤的算法記為Algorithm1;Wolterink等[21]提出的將隨機森林與卷積神經網絡相結合的算法記為Algorithm2;Khened等[22]提出的用密集卷積網絡進行分割的算法記為Algorithm3;Chang等[23]提出的利用YOLO[24]網絡提取感興趣區域,再將感興趣區域反饋到全卷積網絡的算法記為Algorithm4;Liu等[25]提出的殘差雙向長短記憶網絡記為Algorithm5。實驗結果如表5和表6所示。
由表5和表6可以看出,本文MFF U-Net算法通過優化U-Net++的編碼結構與解碼結構以及添加后處理操作有效地完成了雙心室與左心肌的分割任務,獲得了較好的性能指標。
U-Net是醫學圖像分割領域最常用的神經網絡框架。U-Net++通過共享編碼塊來融合不同尺寸的U-Net,并將所有子網絡的解碼結果都連接起來。這樣做不但解決了網絡到底要有多深的問題,也使得網絡的內部連接更為緊湊,減少了編碼塊與解碼塊之間的信息差距。本文研究基于U-Net++網絡,通過分析左右心室與左心肌的特性,改進了U-Net++的編碼結構與解碼結構,并在網絡的最后添加了后處理操作。通過大量的實驗結果表明,本文改進后的編碼塊能夠提取出更加具有區分度的特征圖,這是因為本文通過密集連接殘差塊內部卷積層,提高了特征的復用率,避免了一些有用信息在卷積過程中丟失。但是一味地增加殘差塊內部卷積核的數量會形成高密度的密集連接塊,這樣反而會導致分割精度的降低,這主要是因為在卷積核過多的情況下進行密集連接,本應舍去的無用信息的數量也會增加,進而影響實驗結果。本文在解碼階段還結合了長距離依賴模塊與VGG模塊來使得網絡在解碼過程能最大程度地獲取圖像的全局上下文信息,以此來限制網絡產生不符合目標器官相對關系的分割異常點。然而由于做的是二維切片,算法依舊會產生一些異常點,這些異常點在二維上符合目標器官的相對關系,但在三維上忽略了目標器官的連貫性與唯一性,因此本文在網絡最后又增加了后處理操作,通過選取最大連通域和填充細小孔洞來解決該問題。

Table 5 DSC comparison of five algorithms

Table 6 HD comparison of five algorithms
本文在舒張期末期的分割結果上取得了相當不錯的效果,然而對收縮期末期的左心室的分割效果還不太理想。后續將針對這一問題展開研究工作。
針對左右心室和左心肌的特性,本文提出了MFF U-Net算法:首先在編碼部分,通過密集連接殘差模塊內部的卷積,提高特征圖的復用率,使得網絡能提取更多的有效特征;在解碼部分,利用多個卷積核與長距離依賴模塊盡可能地提高了網絡的感受野,使得每次解碼過程都能獲得圖像的全局上下文特征,讓分割結果更加接近真實圖像。從實驗結果可以看出,本文提出的算法相較于傳統的U-Net、U-Net++和現有的其它算法,其分割準確性都有明顯的提升。