亢 潔,丁菊敏,萬 永,雷 濤
(1.陜西科技大學 a.電氣與控制工程學院; b.電子信息與人工智能學院,西安 710021;2.西安交通大學第一附屬醫院 老年外科,西安 710061)
為了方便醫生對肝臟病癥患者進行疾病診斷、功能評估和治療方案制定,需要對肝臟區域進行精準分割[1]。目前,臨床多采用計算機輔助的人機交互方式進行肝臟分割,分割一個病例通常需要30 min~40 min,因此,研究一種快速準確且適合臨床應用的肝臟CT圖像分割算法具有重要意義。然而,肝臟與毗鄰器官灰度值相近,準確判斷肝臟邊界位置具有一定難度,因此,肝臟CT圖像的自動分割仍是一項極具挑戰的任務。截至目前,研究人員已提出大量肝臟圖像分割算法[2],這些算法可大致分為傳統算法和深度學習算法兩大類,其中,傳統算法主要包括水平集法[3-4]、區域生長法[5-6]、圖割法[7-8]和閾值法[9-11]等,而深度學習算法主要有全卷積神經網絡(Fully Convolutional Network,FCN)[12-13]和U-Net[14-15]等。
在傳統肝臟圖像分割算法中,研究人員主要依靠先驗信息設計有效的肝臟描述子,然后對特征進行分類進而實現圖像分割。文獻[16]在利用區域增長算法提取肝臟區域的基礎上通過統一水平集優化分割結果,減小肝臟灰度分布不均對分割準確性的影響,但是該方法對弱邊緣肝臟CT圖像的分割結果不理想。文獻[17]利用傳統圖割理論對背景簡單的肝臟圖像進行分割,文獻[18]在其基礎上進行改進,將亮度和外觀模型融合到圖像分割的能量函數中,提高肝臟與周圍組織的對比度,從而減少誤分割現象,但其不能排除病變區域的干擾。為了提高算法的泛化能力,文獻[19]結合圖形的先驗信息,使用馬爾科夫隨機場作為驅動目標運動的內力,將稀疏表示作為約束目標運動的外力,建立最優搜索框架,該算法分割精度較高,但運算時間復雜度較大。傳統肝臟分割算法主要采用人工設計的特征模板提取圖像特征,其提取的特征數量較少,易將灰度值相近的非肝臟組織錯分為肝臟區域。
相比于傳統肝臟圖像分割算法,深度學習算法能夠利用大量訓練樣本有效學習肝臟器官的圖像特征,其肝臟分割結果優于傳統算法。卷積神經網絡(Convolutional Neural Network,CNN)[20]是一種經典的深度學習算法,可以學習輸入與輸出之間的非線性映射,而FCN可直接實現端到端的圖像分割[21]。文獻[22-23]分別采用VGG-16修改的FCN以及RV-FCN實現肝臟分割,但上述2種方法的分割結果不夠精細,存在誤分割現象。文獻[24]采用級聯的U-Net模型實現肝臟與腫瘤的分割,取得了較好的分割結果。盡管卷積神經網絡能夠有效捕獲肝臟圖像的語義信息,但其池化層導致肝臟圖像的細節信息丟失,影響肝臟分割的精度。
鑒于分水嶺算法對弱邊緣響應良好,本文提出一種基于分水嶺修正與U-Net的肝臟分割算法。利用U-Net模型融合淺層特征與高維特征,得到肝臟初始分割結果并進行形態學膨脹處理。根據原圖得到肝臟擴大區域,并應用分水嶺算法形成的超像素塊對U-Net初始分割結果的邊界進行修正,使最終的肝臟分割邊界更加平滑準確。
U-Net是一種輕量級的全卷積神經網絡,其由收縮路徑(編碼器)和擴張路徑(解碼器)兩部分組成[25],共包括23個卷積層、4個最大池化層(下采樣)和4個反卷積層(上采樣)。其中,收縮路徑遵循典型的卷積網絡結構,在每兩個3×3的卷積層后,放置一個2×2最大池化層,其步長為2。使用修正線性單元(Rectified Linear Unit,ReLU)作為激活函數,每經過一次下采樣操作,特征通道數量加倍。擴張路徑利用2×2的卷積核對特征圖譜進行上采樣,使特征通道數減半,將上采樣后的特征圖譜與來自收縮路徑的特征圖譜相結合,然后利用2次3×3的卷積進行卷積運算,并同樣使用ReLU作為激活函數。最后,利用1×1的卷積核將每一個64維的特征向量映射到網絡的輸出層,即可得到類的數量。
U-Net是對FCN的優化與改進,其結構簡單,參數量小,適用于小數據集和二分類的使用場景[26],而FCN在經過一系列卷積池化后,所得到的高維特征圖丟失了目標位置等淺層細節信息,導致目標定位的精度降低。兩者的不同之處在于,U-Net在卷積層后添加了上采樣過程,其在每個階段都通過編碼器和解碼器之間的跳躍連接,將各階段編碼器與解碼器生成的特征圖在對應位置進行疊加,并利用卷積操作融合圖像的淺層特征與深層特征。由于淺層特征一般為目標位置、邊緣等細節信息,用來解決像素目標的定位問題,而深層特征主要是目標的語義信息,用于進行最終的像素分類,因此,U-Net可兼顧圖像的底層特征與高層語義特征,避免細節信息丟失,進而提高目標分割精度。
雖然U-Net對于小數據集具有較好的分割結果,可以有效避免過擬合現象,但是U-Net的多個池化層導致其難以對肝臟邊緣細節進行精確分割,影響肝臟區域的分割精度。因此,本文將分水嶺算法與U-Net進行結合,以提高肝臟分割的精度。
分水嶺算法是一種建立在數學形態學理論基礎上的區域圖像分割算法[27]。圖像中像素的灰度值可以看作測地學上的拓撲地貌,像素灰度值表示該點的海拔高度,每一個局部極小值及其影響區域稱為集水盆[28],集水盆的邊界即為分水嶺。
圖1給出分水嶺算法的肝臟分割結果,可以看出,該算法的分割精度較高,對腹部CT圖像中肝臟區域的弱邊緣具有良好的響應。此外,在利用分水嶺算法分割腹部CT圖像時,會形成許多封閉的超像素塊和貼合肝臟區域邊緣的超像素輪廓,為后續修正U-Net肝臟分割結果提供了條件。

圖1 分水嶺算法的肝臟圖像分割結果
Fig.1 Result of liver image segmentation using the watershed algorithm
本文基于U-Net模型和分水嶺算法各自的優勢,提出一種新的肝臟分割算法,其基本框架如圖2所示,大致可以分為3個部分。其中,第1個部分進行數據預處理,其目的是抑制無用信息,提高肝臟與其他組織的對比度,第2個部分通過深度卷積神經網絡U-Net融合淺層特征與高維特征,得到初步分割結果,第3個部分利用分水嶺算法形成的超像素塊對初步分割結果進行優化,得到最終的分割結果。

圖2 本文算法框架
CT圖像與自然圖像不同,即使在同一成像條件下,也會因為設備不同而使采集的CT圖像有所差異。為了完整地保留目標區域,需要對獲取的CT圖像進行預處理。
本文應用W/L調窗算法將肝臟CT圖像轉換為灰度圖像。由于肝臟組織的CT值一般在50 Hu~250 Hu之間,為了抑制無用信息,提高肝臟與其他組織的對比度,將窗寬值和窗位值分別設置為200 Hu和150 Hu,圖片分辨率設置為512像素×512像素。在得到肝臟CT圖像的灰度圖以后,使用高斯濾波器對灰度圖進行去噪,所得數據即為下一步U-Net的訓練與預測數據。
U-Net輸入圖像的分辨率為512像素×512像素,經過卷積操作后,第1個卷積層組輸出特征圖的大小為64×512×512,第2個卷積層組輸出特征圖的大小為128×256×256,依此類推。由于卷積操作會使圖像維度發生變化,因此本文在所有卷積層之前均使用padding=1對圖像進行填充,保持圖像維度不變。
反卷積層針對填充后的特征圖進行卷積操作。在U-Net每一個上采樣層中,通過反卷積操作恢復圖像的維度,并將其與對應池化層的特征圖像進行結合,實現池化層特征圖的重用。輸出層采用Softmax作為激活函數,以輸出單通道的概率圖譜,如式(1)所示。
(1)
其中,ak(x)表示每一個像素點對應類的得分,pk(x)為像素對應不同類別的概率,T為總類別數,k為其中一個類別。pk(x)越大表示分類正確的概率越大,當pk(x)≈1時,ak(x)取得極大值,像素x的分類結果最好。網絡的權重計算如下:
(2)
(3)
其中,α為學習率,Ω為所有像素的集合,θj為網絡的權重,通過改變θj可以優化網絡的分類性能。
U-Net算法的分割結果如圖3所示,其中虛線輪廓表示Ground truth,實線輪廓為U-Net分割結果。可以看出,U-Net可分割出肝臟區域的輪廓,但難以對肝臟細節進行精確分割,主要存在以下問題:
1)對肝臟內的病變區域存在誤分割現象,如圖3(a)所示。
2)受到造影劑影響,CT值變化較大的血管區域未包含在分割結果中,如圖3(b)所示。
3)對肝臟邊界存在過分割現象,如圖3(c)所示。

圖3 基于U-Net的肝臟圖像分割結果Fig.3 Results of liver image segmentation using the U-Net algorithm
針對上述問題,本文采用分水嶺算法對肝臟邊緣進行優化,其核心思想是利用分水嶺形成的區域塊對U-Net的初始分割結果進行取補操作。首先進行結構元素為10的膨脹運算,并利用生成的掩膜圖像提取原圖信息,從而得到肝臟擴大區域。然后計算各分水嶺區域塊初始分割結果的像素數在區域塊總像素中的占比Ti(i=1,2,…,N),從而判斷是否對初始分割結果進行了優化,計算過程如式(4)所示。
(4)
利用式(5)判斷是否利用肝臟擴大區域對U-Net初始分割結果進行修正,計算公式如下:
(5)
其中,A根據實驗測試設定為0.5,Ii表示分水嶺算法優化后的區域塊,Mi表示區域塊中肝臟擴大區域的像素數。由式(5)可知,當初始分割結果的像素數與區域塊總像素數的比例大于0.5時,可以有效利用分水嶺形成的區域塊對U-Net的初始分割結果進行修正。
本文算法流程如圖4所示,具體包括以下6個步驟:
步驟1使用形態學閉運算對U-Net初始分割結果進行膨脹,得到肝臟擴大區域。
步驟2把肝臟擴大區域在原圖中相對應的部分提取出來。
步驟3使用分水嶺算法對原圖中的肝臟擴大區域進行分割。
步驟4將得到的分水嶺線疊加在U-Net初始分割結果上,并計算每一個分水嶺區域的像素點占比。
步驟5根據式(5)判斷是否使用膨脹后對應分水嶺區域的像素點替代初始分割結果,對肝臟邊界進行優化。
步驟6輸出最終的分割結果。
提高畢業設計的教學質量,必須要有嚴格的教務管理相匹配。學生依托學校的教學管理系統,按時保質完成各種文檔的提交,并通過在線管理系統實現與指導老師的聯系。通過教務管理可以規范畢業設計的進程,為畢業設計的每一個步驟提供質量保證。

圖4 本文算法流程
分水嶺算法的修正結果如圖5所示,其中,圖5(a)為U-Net分割結果,方框區域為誤分割部分,圖5(b)為誤分割部分的放大圖,圖5(c)為誤分割部分的分水線疊加圖,可以直觀地看出初始分割結果的像素占每個分水嶺小塊的比例,從而判斷是否需要利用式(4)和式(5)進行修正。圖5(d)和圖5(e)分別為分水嶺的最終修正結果及其誤分割部分的修正放大圖,可以看出,使用分水嶺算法進行修正可解決U-Net模型存在的誤分割和過分割問題,優化肝臟邊界區域,提高分割準確度。

圖5 分水嶺修正結果
本文實驗環境如下:CPU為Intel Core i9-9900X10,3.5 GHz,雙GPU為NVIDIA GeForce RTX 2080Ti,128 GB。U-Net在PyTorch 1.0.1開源框架下實現。
選用Data A和3DIRCADb兩個數據集進行實驗。Data A數據集包含100位患者的腹部增強CT數據,由西安交通大學第一附屬醫院提供,每位患者的CT圖像有200張左右,由專業人士使用mimics 20.0醫學影像軟件進行標注,從而形成Ground truth。3DIRCADb數據集包含20位患者的增強CT圖像。在3DIRCADb和Data A數據集中分別選取10位患者和70位患者的CT影像作為U-Net模型的訓練集,剩余患者的數據作為測試集。
本文U-Net模型的初始學習率為1×10-4,且每經過2個周期,學習率衰減20%,經過15個周期后完成訓練,通過隨機梯度下降進行反向傳播,批次大小為4。由于參數A的取值決定了是否對分割結果進行修正,因此需要通過實驗確定參數A的取值。圖6給出不同A值的肝臟分割修正結果,其中實線代表Ground truth,虛線代表U-Net初始分割結果,點劃線代表分水嶺修正結果。可以看出,當A=0.2時,邊界修正程度過大,導致最終修正結果過度修正,當A=0.8時,邊界修正程度太小,使得最終修正結果與U-Net初始分割結果幾乎沒有差別,達不到邊界修正的目的。根據實驗測試,當A=0.5時,可以達到較滿意的修正結果,因此,本文A值選取0.5。

圖6 不同A值的肝臟分割修正結果
Fig.6 Results of liver image segmentation correction using different values ofA
圖7為3DIRCADb數據集中部分肝臟數據的分割結果,其中第1行包含明顯病變,第2行不包含病變,第3行包含輕微病變。圖8為Data A數據集中隨機選取的分割結果,其中第1行、第5行不包含病變,第2行有輕微病變,第3行、第4行包含明顯病變。分別使用文獻[17]算法、文獻[18]算法、文獻[22]算法、文獻[24]算法和本文算法對兩個數據集的肝臟影像進行分割,虛線代表對應算法分割結果,實線代表Ground truth。

圖7 3DIRCADb數據集的部分分割結果

圖8 Data A數據集的部分分割結果
圖割算法基于顏色統計采樣進行圖像分割,其對前景和背景灰度值相差較大的圖像具有較好的分割效果。由圖7、圖8可知,文獻[17]方法能夠較好地分割出灰度值均勻的臟肝區域,但是對于灰度相近的相鄰組織會產生誤識別現象,當肝臟內有嚴重病變時,分割效果較差(如圖7(a)第1行所示)。文獻[18]將亮度模型和外觀模型融合在圖割的能量函數中,提高肝臟區域與周圍組織的對比度,減少非肝臟區域的誤識別現象,但是當肝臟內有嚴重病變時,該算法并不能排除病變區域的干擾,完整地分割出肝臟區域。此外,圖割算法需要人工標記前景與背景,難以實肝臟全自動分割。綜上所述,圖割算法并不能很好地解決肝臟分割問題,而FCN中的池化層受感受野擴大等因素的影響,易丟失細節信息,雖然文獻[22]方法可在一定程度上避免肝內病變的干擾,但對于復雜背景的肝臟影像,仍然難以實現準確定位(如圖8(c)第1行、第3行所示),導致脾臟被錯分割為肝臟,出現誤分割現象。文獻[24]方法可分割出肝臟所在區域的輪廓,但無法獲得肝臟的精確邊界,且分割結果存在孔洞。本文在U-Net分割的基礎上采用分水嶺算法進行修正,由于分水嶺算法對圖像邊緣具有良好的響應,可彌補U-Net分割結果不精確的缺陷,而U-Net可以在一定程度上排除肝臟病變的干擾,確定肝臟初始輪廓,因此本文算法的肝臟圖像分割精度較高。
為了進一步驗證本文算法可行性和有效性,采用MICCAI工作組提出的體積重疊誤差(Volumetric Overlap Error,VOE)、平均對稱表面距離(Average Symmetric Surface Distance,ASD)、最大對稱表面距離(Max Symmetric Surface Distance,MSD)[29]以及醫學圖像中常見的DICE系數4個指標對分割結果進行評價,具體公式如式(6)~式(9)所示。
(6)
其中,A表示分割結果的區域,B表示Ground truth區域,|A∩B|表示A和B相交區域的像素數,|A∪B|表示A并B區域的像素數。EVOE的取值為0~1,其值越小表示分割效果越好。

(7)
其中,S(A)和S(B)分別表示A和B邊界像素的集合,d(p,S)表示像素p到集合S的最短距離。對于完美分割的情況,DASD值為0。
(8)
由式(8)可知,DASD與DMSD的計算類似,當實線完全精確分割時,DMSD的值為0。
(9)
其中,CDICE表示兩個區域相交的面積占總面積的比值,完美分割時,其值為1。
表1給出5種算法在測試集上的分割效果評價指標,可以看出,文獻[22]算法和文獻[24]算法的分割效果優于文獻[17]算法和文獻[18]算法,證明全卷積神經網絡自動分層學習的特征比傳統方式提取的特征更有優勢。與U-Net模型相比,本文算法的CDICE值提高1.12%,EVOE指標降低1.19%,表明本文算法能較好地分割肝臟的細節區域,使得分割結果更加精細,此外,本文算法的DMSD值較小,說明其能夠更好地獲取肝臟邊界。

表1 在測試集上各項指標的平均值及標準差
本文提出一種基于分水嶺修正與U-Net的肝臟圖像自動分割算法。利用U-Net模型融合淺層特征和高維特征,實現肝臟圖像的初始分割,通過分水嶺算法對初始分割結果的邊界進行修正,得到最終的分割結果。實驗結果表明,該算法能夠更加準確地分割出肝臟區域,且泛化性能較好。下一步將對U-Net模型進行改進,在不增加網絡規模的前提下,提高網絡的泛化能力及預測精度,改善肝臟分割算法的性能。