朱詩生,王慧娟,李淳鑫
(汕頭大學 計算機系,廣東 汕頭 515063)
隨著國內工業發展迅速、吸煙人群年輕化,肺部疾病發病率每年呈上升趨勢[1]。根據2019年國家癌癥中心發布的全國癌癥病情統計數據,肺癌的發病率和死亡率仍位居首位[2]。早發現、準確診斷以及正確治療,可以讓肺癌病人的死亡率降低。肺結節是肺癌早期的表現形式,準確地對肺結節進行分割可以提升醫生對肺結節惡性度的判斷水平,降低誤診率。為此,近年來許多研究人員專注于利用計算機輔助診斷系統實現肺結節分割的研究[3-5],提出了不同的分割理論和方法,如:形態學方法、閾值、聚類以及區域生長法等,但這些方法基本上都存在缺陷。Wu等人[6]在提取肺結節時采用了閾值法可用于提高靈敏度,但效率不高。Fischer B等人[7]對肺結節提取時使用了區域生長法,這種方法簡單且效果挺好,但它需要醫生事先勾畫出種子點,不能實現自動檢測,所以在臨床上不太適用。Li等人[8]采用改進的隨機游走算法對肺結節自動分割。潘子妍等人[9]提出一種基于多特征融合和XGBoost的肺結節檢測模型。
隨著機器學習和深度學習技術的快速發展以及廣泛使用,國內外的許多研究人員在肺結節的分割研究中使用深度學習技術。Wang S等人[10]采用多尺度卷積神經網絡算法來對肺結節進行檢測和分割。Setio等人[11]提出了一種多視圖卷積神經網絡來對肺結節進行檢測。Long等人[12]在卷積神經網絡的基礎上,提出了一種全卷積神經網絡(Fully Convolutional Network,FCN),用卷積層替換卷積神經網絡中的全連接層以獲得圖像中每個像素的分類結果,最終實現圖像分割;Ronneberger等人[13]提出了一種新的全卷積神經網絡(U-Net)。苗光等人[14]為了提高肺結節檢測的效率,提出了一種改進的U-Net模型,U-Net模型可以將網絡高層和底層的信息相結合,比較適合用于處理一些復雜的醫學圖像,該網絡模型在醫學圖像領域中的使用率較高。Xie等人[15]提出兩個區域建立網絡和一個反卷積層,改變Faster R-CNN的結構來檢測候選結節,從而定位和提取肺結節。Chi等人[16]提出用擴展層取代卷積層,增加了感受域,提高網絡學習圖像全局信息的能力,對U-Net網絡改進后構成DCNN(Deep Convolutional Neural Network)模型。
雖然目前已有較多肺結節檢測的方法,但是,肺結節等醫學圖像具有特征復雜、目標區域小等特點,僅僅使用單個模型對其訓練,仍存在分割精準度不高的問題,且還未達到臨床應用的要求。因此,為了提高肺結節的分割精準度,該文提出了一種基于深度學習與模型集成的肺結節分割方法。該方法在數據采樣上提出一種新的采樣方法來處理類別不平衡問題,并通過在模型中連接條件隨機場來進一步優化分割結果,最后對U-Net、LinkNet和SegNet這三個模型采用模型集成的方法,以提高肺結節分割的精準度。主要貢獻有三個方面:
(1)提出了一種新的采樣方法(隨機方向采樣法),可以有效緩解類別不平衡問題,避免模型對圖像中肺結節位置的過度學習,并提高模型性能;
(2)提出在模型中加入全連接條件隨機場對模型分割結果進行優化的方法,可以提高肺結節分割精準度;
(3)提出的模型集成方法,通過對多個模型分割結果的集成,可以進一步提高肺結節分割精準度。
該文主要使用了三種分割模型:U-Net、LinkNet和SegNet。這三種分割模型的結構相似,都是基于編碼-解碼結構,在編碼部分都是由卷積層和池化層構成,解碼部分則是進行上采樣;其主要區別是每個模型解碼部分的上采樣操作不同。U-Net為全卷積網絡,由卷積層、最大池化層(下采樣)、反卷積層(上采樣)以及ReLU非線性激活函數組成,在U-Net模型中,上采樣的操作是:對特征圖進行反卷積,然后和高分辨率的特征圖相加,即結合下采樣各層信息和上采樣的輸入信息來還原細節信息。在LinkNet模型中,上采樣的操作是:將每個編碼器與解碼器相連接,編碼器的輸入連接到對應解碼器的輸出上,在一定程度上可以減少處理時間,可以恢復降采樣操作中丟失的信息,解碼器可以共享從編碼器的每一層學習到的參數,從而減少解碼器的參數。SegNet模型,是一個對稱網絡,上采樣操作是:使用最大池化的索引,依據編碼中池化時的位置將特征圖的值映射到新的特征圖上,再在上池化層之后接一個反卷積層。
該文提出在分割模型中連接全連接條件隨機場對模型分割結果進行優化。模型結構是由前后兩部分組成,前一部分是分割模型結構,后一部分是全連接條件隨機場結構。在前一部分,主要是用于特征提取,利用分割模型的結構特點,可以有效地結合深層(底層)和淺層(高層)信息,深層信息可以為類別識別提供依據,淺層信息可以為準確定位和分割提供依據。在后一部分,全連接條件隨機場是一個概率圖模型,可以利用它來考慮周圍像素點的相關性,從而讓分割的結果更加精準。
全連接條件隨機場是對樣本分布采取迭代擬合的方式,使原分布與樣本分布之間的KL散度達到最小,從而優化分割結果。
條件隨機場滿足吉布斯分布:
(1)
其中,E(x|I)為能量函數,I為全局觀測值;能量函數為:
(2)
能量函數是由一元勢函數和二元勢函數組成;其中一元勢函數來自于前端模型的輸出。二元勢函數是用于描述像素點之間的關系,其計算公式如下:
(3)
其中,k(m)是一個高斯核,fi和fj表示i和j這兩個像素點的特征向量,μ(xi,xj)是類別兼容性函數,w(m)是高斯核組合權重。該文使用的是兩核勢函數:
(4)
假設X的兩個離散概率分布為P(x)和Q(x),則P對Q的相對熵為:
D(P‖Q)=∑(P(x)log(P(x)/Q(x)))
(5)
通過迭代優化KL散度,取得原分布的近似。
(6)
迭代過程為:
(1)初始化Q。
(7)
(2)更新節點分布。
(8)
(3)兼容性轉換。
(9)
(4)更新Q。
(10)
(5)歸一化Q。
(6)迭代(2)~(5),直至收斂。
原始胸部CT圖像中除了包含肺部區域外,還含有其他的邊界噪聲。為了減少圖像中邊界噪聲對肺結節分割實驗結果的影響,先對原始圖像進行肺實質分割是很有必要的。下面將描述在文中對CT切片圖進行肺實質分割操作采用的方法和步驟:
(1)標準化數據:對圖像中像素點的值進行歸一化;
(2)使用K-Means聚類方法:在這一步先選取肺部附近的圖像,然后使用K-Means方法將透明組織和不透明組織(肺)進行分離;
(3)對第2步中的圖像進行形態學操作:先對上一步中的圖像進行腐蝕操作,用于除去顆粒狀雜質,然后使用膨脹操作(吞噬部分血管);
(4)篩選連通區域:對第3步中的圖像進行連通區域標記,然后對其進行排序和篩選;
(5)膨脹操作:對上一步中的肺部mask圖進行膨脹操作,填充一些空洞;
(6)得到最后的肺實質圖像。
在對肺結節圖像數據進行采樣時,比較常用的方法是,先確定肺結節的位置,比如通過肺結節的輪廓計算出質心坐標,即代表肺結節在圖像中的坐標位置,然后再以質心坐標為中心,截取一定尺寸的圖像(比如32×32或者64×64),同時獲得其相應的標簽圖,最后當成實驗的數據集。這種方法操作比較簡單方便,但是這種采樣方法會讓采樣所得圖像中肺結節的位置都是在圖像的中心位置,在用于訓練模型時,會出現模型對肺結節位置過度學習的現象,導致模型泛化性能低下。
針對上面提到的問題,該文提出了一種新的采樣方法(隨機方向采樣法),它可以增加數據的多樣性,提高模型的泛化性能。具體采樣步驟為:首先,依據肺結節的輪廓坐標確定肺結節的正最小外接矩形,得到正外接矩形的左上角坐標(x,y)以及高(h)和寬(w);然后,隨機地對點(x,y)旋轉某一角度,再依據其旋轉方向對其進行采樣。下面給出所提采樣方法的坐標計算公式。
假設一個肺結節輪廓的正外接矩形左上角的坐標為(x,y),寬為w,高為h,坐標(x,y)可旋轉的角度為θ,θ的可能取值為:
當坐標不旋轉時,θ=0;
其中,ω可取任意整數。若ω=1,采樣圖像的尺寸為64×64,則該采樣圖像在原圖中左上角和右下角的坐標分別為:(x,y-64+h)、(x+64,y+h)。


圖1 隨機方向采樣示例圖
為了進一步提高肺結節分割的精準度,提出了模型集成的方法。模型集成是將多個訓練好的模型進行融合,基于某種方式來實現測試數據的多模型融合,使最終的結果能夠“取長補短”,融合各個模型的學習能力,提高最終模型的泛化能力。
該文依據權重將三個模型的分割結果進行集成,得到一個更精準的分割結果,模型集成公式為:
result=w1×m1+w2×m2+w3×m3
(11)
其中,result為肺結節的最后分割結果,m1、m2、m3分別為三個模型的肺結節分割結果,w1、w2、w3分別為三個模型的權重,且w1+w2+w3=1;模型權重的初始值為:w1=w2=w3,為得到更精準的分割結果,需要不斷對權重進行更新迭代,當模型分割結果達到最優時,即分別得到三個模型的最優權重w1、w2、w3。
圖2為模型集成的示例圖,給出了模型集成方法的整個流程。

圖2 模型集成示例圖
實驗所用的數據來源于LIDC-IDRI公開數據集,從數據集中挑選了920張含有肺結節的切片,然后將挑選出的切片數據劃分成三個數據集:訓練集、驗證集和測試集。其中訓練集包含736張切片,驗證集和測試集分別包含92張切片。

圖3 訓練集數據示例圖
在實驗進行之前,需要對數據進行預處理。由于肺部CT圖像中肺結節的尺寸較小,若直接將512*512尺寸的圖像當成訓練集數據,將會影響模型分割結果;所以,先將肺結節圖像裁剪成64*64的大小,再對圖像進行歸一化和去均值處理,然后用于模型訓練。圖3為訓練集數據示例圖。
在對肺結節的分割實驗中,對不同模型的分割結果使用了一種評價指標─Dice系數。Dice系數,是一種相似度度量函數,可以很好地度量兩個對象的相似度。下面給出它的計算公式:
(12)
其中,|X|與|Y|分別表示對象X與Y中包含元素的個數,|X∩Y|表示對象X與Y的交集。
實驗環境是基于深度學習框架PyTorch結合Python編程語言搭建,操作系統為Windows10。在模型的訓練過程中,使用Adam優化器進行優化,其中batch-size大小為16,模型初始學習率為0.01。
2.4.1 不同采樣方法的分割結果比較
圖4為U-Net模型使用不同采樣方法在測試集上的分割結果。圖4(a)為專家標注的肺結節圖,圖4(b)是使用傳統采樣方法的分割結果圖,圖4(c)是使用提出的隨機方向采樣方法的分割結果圖。從圖中可以知道,圖4(b)中出現較多的假陽性結節,而圖4(c)中由于使用了提出的新采樣方法可以有效地避免模型對肺結節位置的過度學習,以提升模型性能,所以出現的假陽性結節較少。

圖4 不同采樣方式的分割結果
2.4.2 有無全連接條件隨機場的分割結果比較
圖5為U-Net模型是否有連接全連接條件隨機場在測試集上的分割結果。圖5(a)是專家標注的肺結節圖,圖5(b)是U-Net模型的分割結果圖,圖5(c)是在U-Net模型中有連接全連接條件隨機場的分割結果圖。從圖中可以知道,圖5(b)中的分割結果周邊含有少量假陽性結節,而在圖5(c)中,因為使用了全連接條件隨機場來對分割結果進行優化,所以分割結果中假陽性結節更少。
表1給出了使用不同采樣方法以及有無連接全連接條件隨機場的模型在測試集上的分割結果。從表中可以看出,使用傳統采樣方法的分割結果明顯低于新采樣方法的分割結果,沒有使用全連接條件隨機場的分割結果也明顯低于沒有使用全連接條件隨機場的分割結果,這是由于傳統采樣方法不能避免模型對肺結節位置的過度學習,全連接條件隨機場可以通過結合肺結節周邊像素點的信息來優化分割結果。所以可以得出,提出的新的采樣方法(隨機方向采樣法)可以有效地提升模型性能;采用的優化算法(全連接條件隨機場),可以有效地優化分割結果。

圖5 有無全連接條件隨機場的分割結果

表1 模型分割結果對比
2.4.3 不同模型的分割結果比較
圖6為不同模型在測試集上的分割結果,這三種模型的訓練集和驗證集數據都是使用隨機方向采樣法采樣的數據,且在模型后均有連接全連接條件隨機場。圖6(a)為U-Net模型分割的結果圖,圖6(b)為LinkNet模型的分割結果圖, 圖6(c)為SegNet模型的分割結果圖,圖6(d)為模型集成的分割結果圖。

圖6 不同模型的分割結果
由圖6可以知道,提出的模型集成方法可以有效提高肺結節分割的精準度;不同模型在訓練中,主要學習的特征也不一致,而模型集成方法可以結合不同模型特點,集成不同模型的分割結果,來獲得一個最優的分割結果。它們的Dice系數評估結果見表2。

表2 單個模型與模型集成分割結果對比
2.4.4 模型集成法與其他方法的分割結果對比
表3為模型集成方法在測試集上與其他方法的分割結果對比,從表中可以看出,提出的模型集成方法比Level Set[17]、Graph Cut[18]、Improved U-Net[19]以及FCN_32s有更好的分割性能。

表3 模型集成方法與其他方法的分割結果對比
為了進一步提高肺結節分割的精準度,提出了一種基于深度學習和模型集成的肺結節分割方法。該方法包括:在數據采樣上使用提出的采樣方法(隨機方向采樣法)來處理類別不平衡問題,避免模型對圖像中肺結節位置的過度學習,以提高模型性能;提出在模型后面連接全連接條件隨機場以進一步優化分割結果;最后利用提出的模型集成方法,對U-Net、SegNet和LinkNet這三個模型的分割結果進行集成,從而提高肺結節分割的精準度。在LIDC-IDRI肺結節公開數據庫中實驗驗證表明,提出的肺結節分割算法可以提高肺結節分割的精準度。但是該算法也存在一些局限性,例如,在實驗數據的選擇上,只使用了公開數據集中的一部分數據;在方法上,使用的是2D的分割模型,只關注了單張CT切片中的肺結節區域,忽略了相鄰切片之間存在的信息。因此,算法還有待進一步完善。